Re: [PATCH v2 7/7] vhost: Add new UAPI to support change to task mode

From: Mike Christie
Date: Mon Oct 14 2024 - 16:56:51 EST


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.