qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 00/29] PowerPC interrupt rework


From: Daniel Henrique Barboza
Subject: Re: [PATCH v3 00/29] PowerPC interrupt rework
Date: Thu, 20 Oct 2022 08:18:07 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1



On 10/19/22 18:55, Daniel Henrique Barboza wrote:
Matheus,

This series fails 'make check-avocado' in an e500 test. This is the error 
output:

Scrap that.

This avocado test is also failing on master 10% of the time, give or take.
It might be case that patch 27 makes the failure more consistent, but I can't
say it's the culprit.


I'll take a closer look and see if I can diagnose one particular commit that
is making the patch fail 1 out of 10 times. It can be case where I might need
to skip the test altogether.


Thanks,


Daniel




& make -j && \
     make check-avocado 
AVOCADO_TESTS=tests/avocado/replay_kernel.py:ReplayKernelNormal.test_ppc64_e500

(...)

Fetching asset from 
tests/avocado/replay_kernel.py:ReplayKernelNormal.test_ppc64_e500
JOB ID     : 506b6b07bf40cf1bffcf3911a0f9b8948de6553c
JOB LOG    : 
/home/danielhb/qemu/build/tests/results/job-2022-10-19T17.37-506b6b0/job.log
  (1/1) tests/avocado/replay_kernel.py:ReplayKernelNormal.test_ppc64_e500: 
INTERRUPTED: Test interrupted by SIGTERM\nRunner error occurred: Timeout 
reached\nOriginal status: ERROR\n{'name': 
'1-tests/avocado/replay_kernel.py:ReplayKernelNormal.test_ppc64_e500', 
'logdir': 
'/home/danielhb/qemu/build/tests/results/job-2022-10-19T17.37-506b6b0/test-... 
(120.31 s)
RESULTS    : PASS 0 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 1 | CANCEL 0
JOB TIME   : 121.00 s



'git bisect' pointed the following commit as the culprit:

d9bdb6192edc5c74cda754a6cd32237b1b9272f0 is the first bad commit
commit d9bdb6192edc5c74cda754a6cd32237b1b9272f0
Author: Matheus Ferst <matheus.ferst@eldorado.org.br>
Date:   Tue Oct 11 17:48:27 2022 -0300

     target/ppc: introduce ppc_maybe_interrupt

This would be patch 27.


As a benchmark, this test when successful takes around 11 seconds in my test
env:

  (33/42) tests/avocado/replay_kernel.py:ReplayKernelNormal.test_ppc64_e500: 
PASS (11.02 s)


Cedric's qemu-ppc-boot test suit works fine with this series, so I'd say that
this avocado test is doing something else that is causing the problem.


I'll test patches 1-26 later and see if all tests pass. In that case I'll push
1-26 to ppc-next and then you can work on 27-29.


Thanks,


Daniel



On 10/11/22 17:48, Matheus Ferst wrote:
Link to v2: https://lists.gnu.org/archive/html/qemu-ppc/2022-09/msg00556.html
This series is also available as a git branch: 
https://github.com/PPC64/qemu/tree/ferst-interrupt-fix-v3
Patches without review: 3-27

This new version rebases the patch series on the current master and
fixes some problems pointed out by Fabiano on v2.

Matheus Ferst (29):
   target/ppc: define PPC_INTERRUPT_* values directly
   target/ppc: always use ppc_set_irq to set env->pending_interrupts
   target/ppc: split interrupt masking and delivery from ppc_hw_interrupt
   target/ppc: prepare to split interrupt masking and delivery by excp_model
   target/ppc: create an interrupt masking method for POWER9/POWER10
   target/ppc: remove unused interrupts from p9_next_unmasked_interrupt
   target/ppc: create an interrupt deliver method for POWER9/POWER10
   target/ppc: remove unused interrupts from p9_deliver_interrupt
   target/ppc: remove generic architecture checks from p9_deliver_interrupt
   target/ppc: move power-saving interrupt masking out of cpu_has_work_POWER9
   target/ppc: add power-saving interrupt masking logic to 
p9_next_unmasked_interrupt
   target/ppc: create an interrupt masking method for POWER8
   target/ppc: remove unused interrupts from p8_next_unmasked_interrupt
   target/ppc: create an interrupt deliver method for POWER8
   target/ppc: remove unused interrupts from p8_deliver_interrupt
   target/ppc: remove generic architecture checks from p8_deliver_interrupt
   target/ppc: move power-saving interrupt masking out of cpu_has_work_POWER8
   target/ppc: add power-saving interrupt masking logic to 
p8_next_unmasked_interrupt
   target/ppc: create an interrupt masking method for POWER7
   target/ppc: remove unused interrupts from p7_next_unmasked_interrupt
   target/ppc: create an interrupt deliver method for POWER7
   target/ppc: remove unused interrupts from p7_deliver_interrupt
   target/ppc: remove generic architecture checks from p7_deliver_interrupt
   target/ppc: move power-saving interrupt masking out of cpu_has_work_POWER7
   target/ppc: add power-saving interrupt masking logic to 
p7_next_unmasked_interrupt
   target/ppc: remove ppc_store_lpcr from CONFIG_USER_ONLY builds
   target/ppc: introduce ppc_maybe_interrupt
   target/ppc: unify cpu->has_work based on cs->interrupt_request
   target/ppc: move the p*_interrupt_powersave methods to excp_helper.c

  hw/ppc/pnv_core.c        |   1 +
  hw/ppc/ppc.c             |  17 +-
  hw/ppc/spapr_hcall.c     |   6 +
  hw/ppc/spapr_rtas.c      |   2 +-
  hw/ppc/trace-events      |   2 +-
  target/ppc/cpu.c         |   4 +
  target/ppc/cpu.h         |  43 +-
  target/ppc/cpu_init.c    | 212 +---------
  target/ppc/excp_helper.c | 887 ++++++++++++++++++++++++++++++++++-----
  target/ppc/helper.h      |   1 +
  target/ppc/helper_regs.c |   2 +
  target/ppc/misc_helper.c |  11 +-
  target/ppc/translate.c   |   2 +
  13 files changed, 833 insertions(+), 357 deletions(-)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]