Opened 3 months ago
Last modified 6 weeks ago
#18962 assigned bug
virtio devices often timeout (never receive interrupts) under guarded heap
Reported by: | waddlesplash | Owned by: | korli |
---|---|---|---|
Priority: | normal | Milestone: | Unscheduled |
Component: | Drivers | Version: | R1/Development |
Keywords: | Cc: | ||
Blocked By: | Blocking: | #19125 | |
Platform: | All |
Description
I built an image with the guarded heap enabled (USE_GUARDED_HEAP_FOR_MALLOC=1, USE_GUARDED_HEAP_FOR_OBJECT_CACHE=0
). When booting it in QEMU with software emulation (no KVM), virtio-scsi and virtio-net often fail to initialize. Sometimes virtio-scsi will work but virtio-net will not; sometimes virtio-scsi will fail to initialize with these messages:
msix configured for 4 vectors msi-x enabled: 0x8003 virtio_pci: using MSI-X count 4 starting at 24 virtio_scsi: wait failed with status: 0x80000009
(and thus the boot will fail.)
When the devices have failed to initialize, the interrupt count as displayed by "ints" always seems to be 0.
When not using the guarded heap, I haven't gotten equivalent failures yet. The fact that it only happens sometimes under the guarded heap sounds like it could be a race condition.
This is with current master and QEMU 7.0. QEMU invocation:
qemu-system-x86_64 -display sdl -m 4G -nic model=virtio -device virtio-scsi-pci -device scsi-hd,drive=x0 -drive file=haiku-minimum.image,format=raw,if=none,id=x0 -serial stdio -s
Attachments (3)
Change History (5)
comment:1 by , 6 weeks ago
Blocking: | 19125 added |
---|
comment:2 by , 6 weeks ago
by , 6 weeks ago
Attachment: | debug-log.txt added |
---|
debug log. Guarded heap + debug in virtio_pci / virtio_scsi
by , 6 weeks ago
Attachment: | guarded_heaps.png added |
---|
guarded heap area info. interrupt data addresses
reproduced with:
Plus https://review.haiku-os.org/c/haiku/+/8369