On Wed, Jun 18, 2025 at 8:06 PM Nicolas Dichtel <nicolas.dichtel@xxxxxxxxx> wrote: > > Le 16/06/2025 à 08:28, Cindy Lu a écrit : > > This patch reintroduces kthread mode for vhost workers and provides > > configuration to select between kthread and task worker. > > > > - Add 'fork_owner' parameter to vhost_dev to let users select kthread > > or task mode. Default mode is task mode(VHOST_FORK_OWNER_TASK). > > > > - Reintroduce kthread mode support: > > * Bring back the original vhost_worker() implementation, > > and renamed to vhost_run_work_kthread_list(). > > * Add cgroup support for the kthread > > * Introduce struct vhost_worker_ops: > > - Encapsulates create / stop / wake‑up callbacks. > > - vhost_worker_create() selects the proper ops according to > > inherit_owner. > > > > - Userspace configuration interface: > > * New IOCTLs: > > - VHOST_SET_FORK_FROM_OWNER lets userspace select task mode > > (VHOST_FORK_OWNER_TASK) or kthread mode (VHOST_FORK_OWNER_KTHREAD) > > - VHOST_GET_FORK_FROM_OWNER reads the current worker mode > > * Expose module parameter 'fork_from_owner_default' to allow system > > administrators to configure the default mode for vhost workers > > * Kconfig option CONFIG_VHOST_ENABLE_FORK_OWNER_CONTROL controls whether > > these IOCTLs and the parameter are available (for distros that may > > want to disable them) > > > > - The VHOST_NEW_WORKER functionality requires fork_owner to be set > > to true, with validation added to ensure proper configuration > > > > This partially reverts or improves upon: > > commit 6e890c5d5021 ("vhost: use vhost_tasks for worker threads") > > commit 1cdaafa1b8b4 ("vhost: replace single worker pointer with xarray") > > > > Signed-off-by: Cindy Lu <lulu@xxxxxxxxxx> > > --- > > drivers/vhost/Kconfig | 17 +++ > > drivers/vhost/vhost.c | 244 ++++++++++++++++++++++++++++++++++--- > > drivers/vhost/vhost.h | 22 ++++ > > include/uapi/linux/vhost.h | 29 +++++ > > 4 files changed, 294 insertions(+), 18 deletions(-) > > > > diff --git a/drivers/vhost/Kconfig b/drivers/vhost/Kconfig > > index 020d4fbb947c..1b3602b1f8e2 100644 > > --- a/drivers/vhost/Kconfig > > +++ b/drivers/vhost/Kconfig > > @@ -95,4 +95,21 @@ config VHOST_CROSS_ENDIAN_LEGACY > > > > If unsure, say "N". > > > > +config VHOST_ENABLE_FORK_OWNER_CONTROL > > + bool "Enable VHOST_ENABLE_FORK_OWNER_CONTROL" > > + default n > Why disabling this option by default? I think we should enable this by default. Thanks > > Regards, > Nicolas >