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.fe...@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(-)