From: Christian Brauner <christian.brauner@ubuntu.com>
To: michael.christie@oracle.com
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
geert@linux-m68k.org, vverma@digitalocean.com, hdanton@sina.com,
hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com,
sgarzare@redhat.com, virtualization@lists.linux-foundation.org,
axboe@kernel.dk, linux-kernel@vger.kernel.org
Subject: Re: [PATCH V6 01/10] Use copy_process in vhost layer
Date: Thu, 9 Dec 2021 10:32:24 +0100 [thread overview]
Message-ID: <20211209093224.3e5hvwap3egzjdkc@wittgenstein> (raw)
In-Reply-To: <a10f709a-e8a0-841e-c0a0-f0b896433f6e@oracle.com>
On Wed, Dec 08, 2021 at 04:13:27PM -0600, michael.christie@oracle.com wrote:
> On 12/8/21 2:34 PM, Michael S. Tsirkin wrote:
> > On Mon, Nov 29, 2021 at 01:46:57PM -0600, Mike Christie wrote:
> >> The following patches made over Linus's tree, allow the vhost layer to do
> >> a copy_process on the thread that does the VHOST_SET_OWNER ioctl like how
> >> io_uring does a copy_process against its userspace app. This allows the
> >> vhost layer's worker threads to inherit cgroups, namespaces, address
> >> space, etc and this worker thread will also be accounted for against that
> >> owner/parent process's RLIMIT_NPROC limit.
> >>
> >> If you are not familiar with qemu and vhost here is more detailed
> >> problem description:
> >>
> >> Qemu will create vhost devices in the kernel which perform network, SCSI,
> >> etc IO and management operations from worker threads created by the
> >> kthread API. Because the kthread API does a copy_process on the kthreadd
> >> thread, the vhost layer has to use kthread_use_mm to access the Qemu
> >> thread's memory and cgroup_attach_task_all to add itself to the Qemu
> >> thread's cgroups.
> >>
> >> The problem with this approach is that we then have to add new functions/
> >> args/functionality for every thing we want to inherit. I started doing
> >> that here:
> >>
> >> https://urldefense.com/v3/__https://lkml.org/lkml/2021/6/23/1233__;!!ACWV5N9M2RV99hQ!ceUHd4m4MTJFOGccB9N5r7WonxVoYYT2XPiYwWt2-Vt1Y-DmQirRN8OqKozFLN1h73N6$
> >>
> >> for the RLIMIT_NPROC check, but it seems it might be easier to just
> >> inherit everything from the beginning, becuase I'd need to do something
> >> like that patch several times.
> >
> >
> > So who's merging this? Me? Did all patches get acked by appropriate
> > maintainers?
> >
>
> Not yet.
>
> Jens, The last open review comment was from you for the name change
> and additional patch description info.
>
> In this posting, I changed the name from:
>
> kernel_worker/kernel_worker_start
>
> to
>
> user_worker_create/user_worker_start
>
> I didn't do the start/create_user_worker format originally discussed
> because a while back Christoph had given me a review comment about trying
> to tie everything together into an API. Everything having the user_worker
> prefix felt nicer in that it was easy to tell the functions and flags went
> together, and so I thought it would handle his comment too.
>
> And patch:
>
> [PATCH V6 07/10] io_uring: switch to user_worker
>
> should better explain the reason for the switch.
I was waiting on Jens to give his review since io_uring is currently the
biggest users of this before the vhost switch.
Christian
next prev parent reply other threads:[~2021-12-09 9:32 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-29 19:46 Mike Christie
2021-11-29 19:46 ` [PATCH V6 01/10] fork: Make IO worker options flag based Mike Christie
2021-11-29 19:46 ` [PATCH V6 02/10] fork/vm: Move common PF_IO_WORKER behavior to new flag Mike Christie
2021-11-29 19:47 ` [PATCH V6 03/10] fork: add USER_WORKER flag to not dup/clone files Mike Christie
2021-11-29 19:47 ` [PATCH V6 04/10] fork: Add USER_WORKER flag to ignore signals Mike Christie
2021-11-29 19:47 ` [PATCH V6 05/10] signal: Perfom autoreap for PF_USER_WORKER Mike Christie
2021-12-17 18:42 ` Eric W. Biederman
2021-11-29 19:47 ` [PATCH V6 06/10] fork: add helpers to clone a process for kernel use Mike Christie
2021-12-17 18:53 ` Eric W. Biederman
2021-11-29 19:47 ` [PATCH V6 07/10] io_uring: switch to user_worker Mike Christie
2021-11-29 19:47 ` [PATCH V6 08/10] fork: remove create_io_thread Mike Christie
2021-11-29 19:47 ` [PATCH V6 09/10] vhost: move worker thread fields to new struct Mike Christie
2021-11-29 19:47 ` [PATCH V6 10/10] vhost: use user_worker to check RLIMITs Mike Christie
2021-12-17 19:01 ` Eric W. Biederman
2021-12-08 20:34 ` [PATCH V6 01/10] Use copy_process in vhost layer Michael S. Tsirkin
2021-12-08 22:13 ` michael.christie
2021-12-09 9:32 ` Christian Brauner [this message]
2021-12-17 19:26 ` Eric W. Biederman
2021-12-17 22:08 ` michael.christie
2021-12-22 0:20 ` Eric W. Biederman
2021-12-22 17:32 ` Mike Christie
2021-12-22 18:24 ` Eric W. Biederman
2021-12-22 20:25 ` Michael S. Tsirkin
2022-01-17 16:41 ` Mike Christie
2022-01-17 17:31 ` Eric W. Biederman
2022-01-18 18:51 ` Mike Christie
2022-01-18 19:00 ` Mike Christie
2022-01-18 19:12 ` Eric W. Biederman
2022-02-02 21:02 ` Mike Christie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211209093224.3e5hvwap3egzjdkc@wittgenstein \
--to=christian.brauner@ubuntu.com \
--cc=axboe@kernel.dk \
--cc=geert@linux-m68k.org \
--cc=hch@infradead.org \
--cc=hdanton@sina.com \
--cc=jasowang@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=michael.christie@oracle.com \
--cc=mst@redhat.com \
--cc=sgarzare@redhat.com \
--cc=stefanha@redhat.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=vverma@digitalocean.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®