Re: [PATCH v12 1/1] vhost: Reintroduces support of kthread API and adds mode selection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>






[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux