On Sat, 13 Apr 2024 at 07:56, Andrea Righi <andrea.righi@xxxxxxxxxxxxx> wrote: > > On Fri, Apr 12, 2024 at 11:43:22PM +0200, Ricardo Ribalda wrote: > > Hi > > Hi Ricardo, Hi Andrea! > > > > > I am using virtme to do some CI around linux-media. > > > > Everything works as expected, but when I enable KASAN, I am starting > > to get a lot of timeouts when the Method _PRT is executed. Eg: > > > > [ 56.335875] ACPI Error: Aborting method \_SB.PCI0._PRT due to > > previous error (AE_AML_LOOP_TIMEOUT) (20230628/psparse-529) > > [ 56.529826] ACPI Error: Method execution failed \_SB.PCI0._PRT due > > to previous error (AE_AML_LOOP_TIMEOUT) (20230628/uteval-68) > > [ 56.532391] virtio-pci 0000:00:02.0: can't derive routing for PCI INT A > > [ 56.532823] virtio-pci 0000:00:02.0: PCI INT A: no GSI > > [ 86.877471] ACPI Error: Aborting method \_SB.PCI0._PRT due to > > previous error (AE_AML_LOOP_TIMEOUT) (20230628/psparse-529) > > [ 87.073854] ACPI Error: Method execution failed \_SB.PCI0._PRT due > > to previous error (AE_AML_LOOP_TIMEOUT) (20230628/uteval-68) > > [ 87.075550] virtio-pci 0000:00:04.0: can't derive routing for PCI INT A > > [ 87.075810] virtio-pci 0000:00:04.0: PCI INT A: no GSI > > > > 0000:00:04.0 and 0000:00:02.0 are virtio devices (console and 9p-filesystem) > > > > If I increase the timeout (ACPI_MAX_LOOP_TIMEOUT), then the Method is > > always executed, but it is very annoying that I have to wait more than > > 5 minutes to start the vm. > > > > Despite not having kvm enabled, the machine is quite decent, so I > > would expect that it could run that method relatively fast. > > > > Do you have any hint of what I should be looking at? > > I'm wondering if it's a microvm-related issue... > > Can you try to add --disable-microvm to your virtme command line and see > if it makes any difference? I get the same results :(. BTW, this is the service that I think it is taking lots of time: Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table { Local0 = Package (0x80){} Local1 = Zero While ((Local1 < 0x80)) { Local2 = (Local1 >> 0x02) Local3 = ((Local1 + Local2) & 0x03) If ((Local3 == Zero)) { Local4 = Package (0x04) { Zero, Zero, LNKD, Zero } } If ((Local3 == One)) { If ((Local1 == 0x04)) { Local4 = Package (0x04) { Zero, Zero, LNKS, Zero } } Else { Local4 = Package (0x04) { Zero, Zero, LNKA, Zero } } } If ((Local3 == 0x02)) { Local4 = Package (0x04) { Zero, Zero, LNKB, Zero } } If ((Local3 == 0x03)) { Local4 = Package (0x04) { Zero, Zero, LNKC, Zero } } Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) Local4 [One] = (Local1 & 0x03) Local0 [Local1] = Local4 Local1++ } Return (Local0) } } > > Thanks, > -Andrea > > > > > Thanks! > > > > ``` > > # virtme-ng --version > > virtme-ng 1.23 > > # qemu-system-amd64 --version > > QEMU emulator version 8.2.1 (Debian 1:8.2.1+ds-2) > > Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers > > # git describe > > v6.9-rc3-208-g586b5dfb51b96 > > > > # virtme-configkernel --defconfig --arch x86_64 > > # scripts/config -e KASAN > > # make olddefconfig > > # make all -j 256 > > # virtme-run --kdir . --mods=auto --show-command --show-boot-console > > --verbose --cpus 2 --memory 4G --script-sh "echo HelloWorld" > > ``` > > > > > > > > -- > > Ricardo Ribalda > > Software Engineer > > ribalda@xxxxxxxxxx -- Ricardo Ribalda