[pve-devel] FW: issues with Virtio-SCSI devicde on Proxmox...

Christian Moser cmos at maklee.com
Wed Aug 14 08:42:15 CEST 2024


Alexandre,

thank you for your information. On another KVM, the virtio-scsi device has the hardware id of 0x10481AF4, whereas on Proxmox is has 0x10041AF4, which is a legacy device.

But after more testing, I do not think that the issue is related to legacy vs modern device, but rather interrupt related, because our driver on Proxmox does not receive the device interrupt. I'm doing now more homework on our side to see if the system (i.e. OpenVMS) does get the interrupt, but is not delivering it to the device. So I'm looking at out bus support code to check out things related to interrupt delivery. If the system does get the interrupt (since the virtio-scsi device did set the interrupt bit in the ISR register), then the issue is on our side. If we do not get the interrupt at all, then there is still something going with Proxmox and OpenVMS guest OS.

Thanks for your answers and pointers, but for now, I do some more homework

/cmos 

_______________________________________________________
Christian Moser
Mobile:    +358-40-5022105			
Email:     cmos at maklee.com
URL:       www.maklee.com
-----Original Message-----
From: DERUMIER, Alexandre <alexandre.derumier at groupe-cyllene.com> 
Sent: Tuesday, August 13, 2024 19:13
To: pve-devel at lists.proxmox.com
Cc: cmos at maklee.com
Subject: Re: [pve-devel] issues with Virtio-SCSI devicde on Proxmox...

Hi,

Currently they are no way to add custom options for virtio-devices command line from vm config, so it should be patched to add support for openvms os and add special tuning.

for
example:https://git.proxmox.com/?p=qemu-server.git;a=blob_plain;f=PVE/QemuServer.pm;hb=HEAD
sub print_netdevice_full {
 ....

if ($conf->{ostype} && $conf->{ostype} eq 'openvms') {
    tmpstr .= ",disable_legacy=on";
}


>>I have tried both “virtio-scsi-pci” and “virtio-scsi-single”, but no 
>>luck. The emulated virtio-scsi device is a legacy device
>>
>>
>>Questions:
>>*	is there a way to configure a modern virtio-scsi devcie (i.e.
>>disable_legacy=on) ?
>>

Do you mean than currently on proxmox, the default is legacy mode and and not modern ?  I was pretty sure than qemu was defaulting to modern,

and that you need to use  ",disable-legacy=off,disable-modern=true" to switch to legacy.

(and AFAIK, proxmox qemu version don't have any patch forcing legacy)

but maybe I'm wrong



maybe it's only enabled by default with pci-express (using q35 machine
model) ?

https://github.com/qemu/qemu/blob/9eb51530c12ae645b91e308d16196c68563ea883/docs/pcie.txt
"Virtio devices plugged into PCI Express ports are PCI Express devices and have "1.0" behavior by default without IO support.
In both cases disable-legacy and disable-modern properties can be used to override the behaviour."


in qemu code I see:

https://github.com/qemu/qemu/blob/9eb51530c12ae645b91e308d16196c68563ea883/hw/core/machine.c#L258
GlobalProperty hw_compat_2_6[] = {
    { "virtio-mmio", "format_transport_address", "off" },
    /* Optional because not all virtio-pci devices support legacy mode */
    { "virtio-pci", "disable-modern", "on",  .optional = true },
    { "virtio-pci", "disable-legacy", "off", .optional = true }, }; const size_t hw_compat_2_6_len = G_N_ELEMENTS(hw_compat_2_6);

so I'm really not sure what is the real default


do you have qemu command line of another kvm hypervisor
(ovirt,rhev,...) where it's working correctly ?  Maybe they are enabling modern bits manually , when a virtio device is supporting it ?



-------- Message initial --------
De: Christian Moser <cmos at maklee.com>
Répondre à: Proxmox VE development discussion <pve- devel at lists.proxmox.com>
À: pve-devel at lists.proxmox.com
Cc: Christian Moser <cmos at maklee.com>
Objet: [pve-devel] issues with Virtio-SCSI devicde on Proxmox...
Date: 12/08/2024 12:40:10

Hello,

I work for VSI (VMS Software Inc) which is porting the OpenVMS operating system to x86. At this point we successfully on various hypervisors, but have some issues on the KVM running on Proxmox.

The OpenVMS VM works just fine with SATA disks and it also works with for example virtio-network device etc., but trying to use virtio-scsi hangs  the driver. I have debugged this and I can successfully configure the port/controller, send the IO request to the device. It then gets processed by the device, which posts the results and sets the interrupt bit in the ISR register, but it never asserts the interrupt hence the driver never gets notified and the I/O hangs.

I have tried both “virtio-scsi-pci” and “virtio-scsi-single”, but no luck. The emulated virtio-scsi device is a legacy device. But then again, the virtio-network device is also a legacy device and here we are getting interrupts. One thing which bothers me is the fact that the “legacy interrupt disable” bit is set in the PCI config space of the virtio-scsi device (i.e. bit 10 at offset 4)

Questions:
*	is there a way to configure a modern virtio-scsi devcie (i.e.
disable_legacy=on) ?
*	why is the legacy interrupt bit set in the PCI config space ?
*	Are there any working driver for virtio-scsi on this KVM using
Q35 machine? i.e. any other OS

Any thoughts why these interrupts are not getting delivered on the PCIE bus?

thanks

/cmos

_______________________________________________________
Christian Moser
Mobile:    +358-40-5022105			
Email:      cmos at maklee.com
URL:       www.maklee.com

_______________________________________________
pve-devel mailing list
pve-devel at lists.proxmox.com
https://antiphishing.vadesecure.com/v4?f=MXNCQ25TYXBra2RFV0VXZHojMIIFPS
zCvkhJApFQpU82zfAhP9K7STA7y-
wx1jAbgWgLhPFHm0qw3LR0qKok0w&i=cVVpR014Sk93Z0c1QzFSMs3n08s7G9NqllHFFNJ9
1W0&k=ThnE&r=VWoxMWNDTTl5UmRwenhPYicvAeXd4xlreb0WEHQKfL1pVhoIeFvTknKKfK
g5BYLZ&s=c0303a1ebcdeef9c5d38eaa27d25b873b9eed7bddb72bc270d5944f93d63bb
ec&u=https%3A%2F%2Flists.proxmox.com%2Fcgi-
bin%2Fmailman%2Flistinfo%2Fpve-devel





More information about the pve-devel mailing list