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. Changelog v6: 1. move the check of VHOST_NEW_WORKER from vhost_scsi to vhost 2. Change the ioctl name VHOST_SET_INHERIT_FROM_OWNER to VHOST_FORK_FROM_OWNER 3. reuse the function __vhost_worker_flush 4. use a ops sturct to support worker relates function 5. reset the value of inherit_owner in vhost_dev_reset_owner. Changelog v7: 1. add a KConfig knob to disable legacy app support 2. Split the changes into two patches to separately introduce the ops and add kthread support. 3. Utilized INX_MAX to avoid modifications in __vhost_worker_flush 4. Rebased on the latest kernel 5. Address other comments Changelog v8: 1. Rebased on the latest kernel 2. Address some other comments Changelog v9: 1. Rebased on the latest kernel. 2. Squashed patches 6‑7. 3. Squashed patches 2‑4. 4. Minor fixes in commit log Changelog v10: 1.Add support for the module_param. 2.Squash patches 3 and 4. 3.Make minor fixes in the commit log. 4.Fix the mismatched tabs in Kconfig. 5.Rebase on the latest kernel. Changelog v11: 1.make the module_param under Kconfig 2.Make minor fixes in the commit log. 3.change the name inherit_owner to fork_owner 4.add NEW ioctl VHOST_GET_FORK_FROM_OWNER 5.Rebase on the latest kernel Tested with QEMU with kthread mode/task mode/kthread+task mode Cindy Lu (3): vhost: Add a new parameter in vhost_dev to allow user select kthread vhost: Reintroduce kthread mode support in vhost vhost: Add configuration controls for vhost worker's mode drivers/vhost/Kconfig | 17 +++ drivers/vhost/vhost.c | 234 ++++++++++++++++++++++++++++++++++--- drivers/vhost/vhost.h | 22 ++++ include/uapi/linux/vhost.h | 25 ++++ 4 files changed, 280 insertions(+), 18 deletions(-) -- 2.45.0