On 2023/4/18 21:50, wangjian (AN) wrote: > > On 4/15/23 15:48, wangjian (AN) wrote: >> Hi Guys, >> >> >> >> Currently qemu and spdk already support vhost-user-scsi, but there is >> no vhost-user-scsi configuration in libvirt. >> >> We hope that libvirt supports the following configurations to >> facilitate docking with qemu. >> >> >> >> <controller type='scsi' index='0' model='vhost-user-scsi'> >> >> <driver queues='4'/> >> >> <source type='unix' path='/var/tmp/scsi'> >> >> <reconnect enabled='yes' timeout='3'/> >> >> </source> >> >> <address type='pci' domain='0x0000' bus='0x02' slot='0x02' >> function='0x0'/> >> >> </controller> >> >> >> >> The usage in qemu like this: >> >> -chardev socket,id=chr-vu-virtio-disk10,path=/var/tmp/scsi,reconnect=3 >> >> -device >> vhost-user-blk-pci,num-queues=4,bus=pci.2,addr=0x0,chardev=chr-vu-virt >> io-disk10,id=scsi0 >> >> >> >> Could anyone give some suggestions? >> > > That's very likely because nobody wrote patches for it. I do not think there was a discussion where we decided to deliberately not support it. > But I guess, what advantage there is in letting an external helper manage a <controller/> ? I though, vhost-user-* is ideal for individual devices rather than controllers. > > Meanwhile, for testing purposes (definitely NOT production), you can use qemu:command line passthrough: > > https://libvirt.org/kbase/qemu-passthrough-security.html > > Michal > In spdk, a vhost-user-blk controller will only be associated with one disk, and a vhost-user-blk controller will only be associated with one socket file. Therefore, for the vhost-user-blk disk, it is appropriate to use the vhost-user-blk disk associated socket file configuration in libvirt. But in spdk, a vhost-user-scsi controller will be associated with multiple disks, and a vhost-user-scsi controller will only be associated with one socket file. Therefore, we think that for vhost-user-scsi, it is appropriate to use the controller to associate the socket file configuration in libvirt.