On Sun, 9 Mar 2025 at 10:35, Paolo Bonzini <[email protected]> wrote:
>
> Generalize timer_and_addr() to decode all registers into a single enum
> HPETRegister, and use the TryInto derive to separate valid and
> invalid values.
>
> The main advantage lies in checking that all registers are enumerated
> in the "match" statements.
>
> Signed-off-by: Paolo Bonzini <[email protected]>

Hi; this commit seems to break 'make check-functional'. Several
x86 tests fail; the one I looked at was x86_64_tuxrun:

$ (cd build/rust; PYTHONPATH=../../python:../../tests/functional
QEMU_TEST_QEMU_BINARY=./qemu-system-x86_64 ./pyvenv/bin/python3
../../tests/functional/test_x86_64_tuxrun.py; )

TAP version 13
/home/petmay01/.cache/qemu/download/4b8b2a99117519c5290e1202cb36eb6c7aaba92b357b5160f5970cf5fb78a751:
1073741824 bytes
Traceback (most recent call last):
  File 
"/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/tests/functional/test_x86_64_tuxrun.py",
line 31, in test_x86_64
    self.common_tuxrun(kernel_asset=self.ASSET_X86_64_KERNEL,
  File 
"/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/tests/functional/qemu_test/tuxruntest.py",
line 147, in common_tuxrun
    self.run_tuxtest_tests(haltmsg)
  File 
"/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/tests/functional/qemu_test/tuxruntest.py",
line 117, in run_tuxtest_tests
    self.wait_for_console_pattern('tuxtest login:')
  File 
"/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/tests/functional/qemu_test/tuxruntest.py",
line 67, in wait_for_console_pattern
    wait_for_console_pattern(self, success_message,
  File 
"/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/tests/functional/qemu_test/cmd.py",
line 160, in wait_for_console_pattern
    _console_interaction(test, success_message, failure_message, None, vm=vm)
  File 
"/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/tests/functional/qemu_test/cmd.py",
line 116, in _console_interaction
    if _console_read_line_until_match(test, vm,
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File 
"/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/tests/functional/qemu_test/cmd.py",
line 67, in _console_read_line_until_match
    test.fail(
AssertionError: 'b'Kernel panic - not syncing'' found in console,
expected 'b'tuxtest login:''

not ok 1 test_x86_64_tuxrun.TuxRunX86Test.test_x86_64
1..1

The console output from the guest shows that it fails trying to set
up the timer:

2025-03-21 12:01:10,676: printk: console [ttyS0] enabled
2025-03-21 12:01:10,678: ACPI: Core revision 20230331
2025-03-21 12:01:10,695: clocksource: hpet: mask: 0xffffffff
max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns
2025-03-21 12:01:10,714: APIC: Switch to symmetric I/O mode setup
2025-03-21 12:01:10,728: ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
2025-03-21 12:01:10,774: ..MP-BIOS bug: 8254 timer not connected to IO-APIC
2025-03-21 12:01:10,774: ...trying to set up timer (IRQ0) through the 8259A ...
2025-03-21 12:01:10,775: ..... (found apic 0 pin 2) ...
2025-03-21 12:01:10,818: ....... failed.
2025-03-21 12:01:10,818: ...trying to set up timer as Virtual Wire IRQ...
2025-03-21 12:01:10,862: ..... failed.
2025-03-21 12:01:10,862: ...trying to set up timer as ExtINT IRQ...
2025-03-21 12:01:10,910: ..... failed :(.

Incidentally, this is the second case of a 'make check-functional'
failure I've found in this pullreq, which suggests we should improve
our CI coverage so that it's doing a check-functional test on
a config with Rust enabled for at least the arm and x86 targets.

thanks
-- PMM

Reply via email to