On 10/3/24 8:58 PM, Cindy Lu wrote: > Add a new UAPI to support setting the vhost device to > use task mode. The user space application needs to use > VHOST_SET_INHERIT_FROM_OWNER to set the mode. > This setting must be set before VHOST_SET_OWNER is set. > > Signed-off-by: Cindy Lu <lulu@xxxxxxxxxx> > --- > drivers/vhost/vhost.c | 18 +++++++++++++++++- > include/uapi/linux/vhost.h | 2 ++ > 2 files changed, 19 insertions(+), 1 deletion(-) > > diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c > index 08c9e77916ca..0e5c81026acd 100644 > --- a/drivers/vhost/vhost.c > +++ b/drivers/vhost/vhost.c > @@ -2341,8 +2341,24 @@ long vhost_dev_ioctl(struct vhost_dev *d, unsigned int ioctl, void __user *argp) > { > struct eventfd_ctx *ctx; > u64 p; > - long r; > + long r = 0; > int i, fd; > + bool inherit_owner; > + > + if (ioctl == VHOST_SET_INHERIT_FROM_OWNER) { Maybe instead of a modparam and this ioctl we just want a new ioctl: /* * This will setup the owner based on the calling thread instead of * using kthread. */ #define VHOST_INHERIT_OWNER _IO(VHOST_VIRTIO, 0x83) It would initially be used by vhost-scsi when worker_per_virtqueue=true since that is a new use case and there will be no regressions. For the other cases we default to VHOST_SET_OWNER. Other QEMU cases or tool XYZ can use the new ioctl when they are ready.