Greetings Peter,> Sent: Thursday, October 15, 2020 at 2:01 PM > From: "Peter Krempa" <pkrempa@redhat.com> > To: "daggs" <daggs@gmx.com> > Cc: "libvirt-usersredhat.com" <libvirt-users@redhat.com> > Subject: Re: scsi passthrough differs between guests > > [...] > > > -drive file=/dev/sg5,if=none,format=raw,id=drive-hostdev0,readonly=on \ > > -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-hostdev0,id=hostdev0 \ > > [...] > > > the bad one: > > /usr/bin/qemu-system-x86_64 \ > > [...] > > > -blockdev '{"driver":"host_device","filename":"/dev/sg0","node-name":"libvirt-hostdev0-backend","read-only":true}' \ > > -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=libvirt-hostdev0-backend,id=hostdev0 \ > > This doesn't corelate with the version numbers you've mentioned, because > the "new" syntax which uses -blockdev was present both in 6.7.0 and > 6.8.0.the "good" syntax was created with libvirt of version which is earlier than 6.7, libvirt was upgraded several times since the vm creation. I don't know if the syntax is changed every version or not.> > Anyways the problem is almost certainly that the hostdev code doesn't > detect that it's a cdrom. We have such a hack in the disk code which > turns a 'host_device' into a 'host_cdrom'. I'll try fixing it but I > don't have a machine with a cdrom handy, so it would be nice if you > could test it afterwards. > > Thanks for the report. > >my system is gentoo, hence, every pkg is compiled, if you provide a patch, I can test it easily. Thanks for the effort, Dagg.
On Thu, Oct 15, 2020 at 13:14:56 +0200, daggs wrote:> Greetings Peter, > > > Sent: Thursday, October 15, 2020 at 2:01 PM > > From: "Peter Krempa" <pkrempa@redhat.com> > > To: "daggs" <daggs@gmx.com> > > Cc: "libvirt-usersredhat.com" <libvirt-users@redhat.com> > > Subject: Re: scsi passthrough differs between guests > > > > [...] > > > > > -drive file=/dev/sg5,if=none,format=raw,id=drive-hostdev0,readonly=on \ > > > -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-hostdev0,id=hostdev0 \ > > > > [...] > > > > > the bad one: > > > /usr/bin/qemu-system-x86_64 \ > > > > [...] > > > > > -blockdev '{"driver":"host_device","filename":"/dev/sg0","node-name":"libvirt-hostdev0-backend","read-only":true}' \ > > > -device scsi-generic,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=libvirt-hostdev0-backend,id=hostdev0 \ > > > > This doesn't corelate with the version numbers you've mentioned, because > > the "new" syntax which uses -blockdev was present both in 6.7.0 and > > 6.8.0. > the "good" syntax was created with libvirt of version which is earlier than 6.7, libvirt was upgraded several times since the vm creation. > I don't know if the syntax is changed every version or not.The new syntax was added in libvirt-6.6.0. Your VM probably was started with libvirt-6.6.0 and you then upgraded your system to newer version. All running VMs keep their configuration. Restarting it will use the new syntax and thus break.> > Anyways the problem is almost certainly that the hostdev code doesn't > > detect that it's a cdrom. We have such a hack in the disk code which > > turns a 'host_device' into a 'host_cdrom'. I'll try fixing it but I > > don't have a machine with a cdrom handy, so it would be nice if you > > could test it afterwards. > > > > Thanks for the report. > > > > > > my system is gentoo, hence, every pkg is compiled, if you provide a patch, I can test it easily.Cool. I'll CC you on the patches, I need to do some changes to the test suite first though as we didn't even have unit tests for this case.
Greetings Peter,> Sent: Thursday, October 15, 2020 at 2:23 PM > From: "Peter Krempa" <pkrempa@redhat.com> > To: "daggs" <daggs@gmx.com> > Cc: "libvirt-usersredhat.com" <libvirt-users@redhat.com> > Subject: Re: scsi passthrough differs between guests > > The new syntax was added in libvirt-6.6.0. Your VM probably was started > with libvirt-6.6.0 and you then upgraded your system to newer version. > All running VMs keep their configuration. Restarting it will use the new > syntax and thus break.I've checked the log, first vm boot was with libvirt version: 5.6.0, qemu version: 4.0.0, kernel: 5.3.5> Cool. I'll CC you on the patches, I need to do some changes to the test > suite first though as we didn't even have unit tests for this case.np. send them when you can. Dagg.