I tested this patch with virtio-net regression tests, everything works fine. Tested-by: Lei Yang <leiyang@xxxxxxxxxx> On Tue, Nov 5, 2024 at 3:27 PM Cindy Lu <lulu@xxxxxxxxxx> wrote: > > In commit 6e890c5d5021 ("vhost: use vhost_tasks for worker threads"), > The vhost now use vhost_task and workers working as a child of the owner thread, > which aligns with containerization principles. However, this change has caused > confusion for some legacy userspace applications. > Therefore, we are reintroducing support for the kthread API. > > In this patch, we introduce a module_param that allows users to select the > operating mode. Additionally, a new UAPI is implemented to enable > userspace applications to set their desired 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 > > Tested with QEMU. > > Cindy Lu (9): > vhost: Add a new parameter to allow user select kthread > vhost: Add the vhost_worker to support kthread > vhost: Add the cgroup related function > vhost: Add kthread support in function vhost_worker_create > vhost: Add kthread support in function vhost_worker_queue() > vhost: Add kthread support in function vhost_worker_destroy() > vhost: Add new UAPI to support change to task mode > vhost_scsi: Add check for inherit_owner status > vhost: Expose the modparam inherit_owner_default > > drivers/vhost/scsi.c | 5 + > drivers/vhost/vhost.c | 194 ++++++++++++++++++++++++++++++++++--- > drivers/vhost/vhost.h | 7 ++ > include/uapi/linux/vhost.h | 2 + > 4 files changed, 193 insertions(+), 15 deletions(-) > > -- > 2.45.0 > >