On Mon, Jul 14, 2025 at 3:13 PM Cindy Lu <lulu@xxxxxxxxxx> wrote: > > 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 > > - 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> > --- Acked-by: Jason Wang <jasowang@xxxxxxxxxx> Thanks