scsi passthrough differs between guests

Peter Krempa pkrempa at redhat.com
Thu Oct 15 11:23:36 UTC 2020


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 at redhat.com>
> > To: "daggs" <daggs at gmx.com>
> > Cc: "libvirt-usersredhat.com" <libvirt-users at 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.




More information about the libvirt-users mailing list