Opened 22 months ago
Last modified 20 months ago
#21757 new defect
Second VirtIO SCSI disk controller does not work on vbox
Reported by: | cmos007 | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox-7.0.6 |
Keywords: | Cc: | ||
Guest type: | other | Host type: | other |
Description ¶
I'm running the latest virtualbox build 7.0.8 and I also tried a test build of 7.0.9 (158070) and I cannot get the second VirtIO SCSI controller to work. I'm working for VSI (VMS Software Inc) which is porting the OpenVMS operating system to x86. I have a driver and successfully configure and use multiple disks on a single VirtIO SCSI controller. However, on the second controller, I can initialize the port/controller, send an IO request to the device and it gets processed. The device is then setting the bit in the ISR register, but it *DOES NOT* assert the interrupt, hence the driver never get notified and the I/O hangs. Thoughts?
Change History (4)
comment:1 by , 22 months ago
comment:2 by , 20 months ago
Reproduced the issue locally, the issue is that the second controller is behind a PCI bridge (I assumed that you use the ICH9 chipset as the PIIX3 supports only one Virtio SCSI controller) which gets interrupt routing wrong somehow. This issue is present since 6.1 (showing how rarely used this feature is). Unforunately I can't give an estimate on how long it takes to fix currently.
per Virtio specs in section: 4.1.4.5.1 Device Requirements: ISR status capability If MSI-X capability is disabled, the device MUST set the Interrupt Status bit in the PCI Status register in the PCI Configuration Header of the device to the logical OR of all bits in ISR status of the device. The device then asserts/deasserts INT#x interrupts unless masked according to standard PCI rules [PCI].
The device does indeed set the bit in the ISR, but it does not assert the INT#x interrupt.