Re: [PATCH v5 0/6] vhost: Add support of kthread API
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2025-01-08 12:23:16
Also in:
lkml, virtualization
On Mon, Dec 30, 2024 at 08:43:47PM +0800, Cindy Lu wrote:
In commit 6e890c5d5021 ("vhost: use vhost_tasks for worker threads"),
the vhost now uses vhost_task and operates as a child of the
owner thread. This aligns with containerization principles.
However, this change has caused confusion for some legacy
userspace applications. Therefore, we are reintroducing
support for the kthread API. I briefly applied this, but there seem to be a bit too many nits. So I will wait for v6 with everything addressed. Thanks!
In this series, a new UAPI is implemented to allow userspace applications to configure their thread mode. Changelog v2: 1. Change the module_param's name to enforce_inherit_owner, and the default value is true. 2. Change the UAPI's name to VHOST_SET_INHERIT_FROM_OWNER. Changelog v3: 1. Change the module_param's name to inherit_owner_default, and the default value is true. 2. Add a structure for task function; the worker will select a different mode based on the value inherit_owner. 3. device will have their own inherit_owner in struct vhost_dev 4. Address other comments Changelog v4: 1. remove the module_param, only keep the UAPI 2. remove the structure for task function; change to use the function pointer in vhost_worker 3. fix the issue in vhost_worker_create and vhost_dev_ioctl 4. Address other comments Changelog v5: 1. Change wakeup and stop function pointers in struct vhost_worker to void. 2. merging patches 4, 5, 6 in a single patch 3. Fix spelling issues and address other comments. Tested with QEMU with kthread mode/task mode/kthread+task mode Cindy Lu (6): vhost: Add a new parameter in vhost_dev to allow user select kthread vhost: Add the vhost_worker to support kthread vhost: Add the cgroup related function vhost: Add worker related functions to support kthread vhost: Add new UAPI to support change to task mode vhost_scsi: Add check for inherit_owner status drivers/vhost/scsi.c | 8 ++ drivers/vhost/vhost.c | 178 +++++++++++++++++++++++++++++++++---- drivers/vhost/vhost.h | 4 + include/uapi/linux/vhost.h | 19 ++++ 4 files changed, 192 insertions(+), 17 deletions(-) -- 2.45.0