From: Mike Christie <michael.christie@oracle.com> To: hdanton@sina.com, hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, christian.brauner@ubuntu.com, axboe@kernel.dk, linux-kernel@vger.kernel.org Subject: [PATCH V2 1/9] fork: Make IO worker options flag based Date: Tue, 21 Sep 2021 16:52:10 -0500 [thread overview] Message-ID: <20210921215218.89844-2-michael.christie@oracle.com> (raw) In-Reply-To: <20210921215218.89844-1-michael.christie@oracle.com> This patchset adds a couple new options to kernel_clone_args for IO thread like/related users. Instead of adding new fields to kernel_clone_args for each option, this moves us to a flags based approach by first converting io_thread. Signed-off-by: Mike Christie <michael.christie@oracle.com> --- include/linux/sched/task.h | 4 +++- kernel/fork.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index ef02be869cf2..48417c735438 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -18,8 +18,11 @@ struct css_set; /* All the bits taken by the old clone syscall. */ #define CLONE_LEGACY_FLAGS 0xffffffffULL +#define KERN_WORKER_IO BIT(0) + struct kernel_clone_args { u64 flags; + u32 worker_flags; int __user *pidfd; int __user *child_tid; int __user *parent_tid; @@ -31,7 +34,6 @@ struct kernel_clone_args { /* Number of elements in *set_tid */ size_t set_tid_size; int cgroup; - int io_thread; struct cgroup *cgrp; struct css_set *cset; }; diff --git a/kernel/fork.c b/kernel/fork.c index 38681ad44c76..3988106e9609 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2026,7 +2026,7 @@ static __latent_entropy struct task_struct *copy_process( p = dup_task_struct(current, node); if (!p) goto fork_out; - if (args->io_thread) { + if (args->worker_flags & KERN_WORKER_IO) { /* * Mark us an IO worker, and block any signal that isn't * fatal or STOP @@ -2526,7 +2526,7 @@ struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node) .exit_signal = (lower_32_bits(flags) & CSIGNAL), .stack = (unsigned long)fn, .stack_size = (unsigned long)arg, - .io_thread = 1, + .worker_flags = KERN_WORKER_IO, }; return copy_process(NULL, 0, node, &args); -- 2.25.1 _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID (diff)
From: Mike Christie <michael.christie@oracle.com> To: hdanton@sina.com, hch@infradead.org, stefanha@redhat.com, jasowang@redhat.com, mst@redhat.com, sgarzare@redhat.com, virtualization@lists.linux-foundation.org, christian.brauner@ubuntu.com, axboe@kernel.dk, linux-kernel@vger.kernel.org Cc: Mike Christie <michael.christie@oracle.com> Subject: [PATCH V2 1/9] fork: Make IO worker options flag based Date: Tue, 21 Sep 2021 16:52:10 -0500 [thread overview] Message-ID: <20210921215218.89844-2-michael.christie@oracle.com> (raw) In-Reply-To: <20210921215218.89844-1-michael.christie@oracle.com> This patchset adds a couple new options to kernel_clone_args for IO thread like/related users. Instead of adding new fields to kernel_clone_args for each option, this moves us to a flags based approach by first converting io_thread. Signed-off-by: Mike Christie <michael.christie@oracle.com> --- include/linux/sched/task.h | 4 +++- kernel/fork.c | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index ef02be869cf2..48417c735438 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -18,8 +18,11 @@ struct css_set; /* All the bits taken by the old clone syscall. */ #define CLONE_LEGACY_FLAGS 0xffffffffULL +#define KERN_WORKER_IO BIT(0) + struct kernel_clone_args { u64 flags; + u32 worker_flags; int __user *pidfd; int __user *child_tid; int __user *parent_tid; @@ -31,7 +34,6 @@ struct kernel_clone_args { /* Number of elements in *set_tid */ size_t set_tid_size; int cgroup; - int io_thread; struct cgroup *cgrp; struct css_set *cset; }; diff --git a/kernel/fork.c b/kernel/fork.c index 38681ad44c76..3988106e9609 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -2026,7 +2026,7 @@ static __latent_entropy struct task_struct *copy_process( p = dup_task_struct(current, node); if (!p) goto fork_out; - if (args->io_thread) { + if (args->worker_flags & KERN_WORKER_IO) { /* * Mark us an IO worker, and block any signal that isn't * fatal or STOP @@ -2526,7 +2526,7 @@ struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node) .exit_signal = (lower_32_bits(flags) & CSIGNAL), .stack = (unsigned long)fn, .stack_size = (unsigned long)arg, - .io_thread = 1, + .worker_flags = KERN_WORKER_IO, }; return copy_process(NULL, 0, node, &args); -- 2.25.1
next prev parent reply other threads:[~2021-09-21 21:53 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-21 21:52 [PATCH V2 0/9] Use copy_process/create_io_thread in vhost layer Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-09-21 21:52 ` Mike Christie [this message] 2021-09-21 21:52 ` [PATCH V2 1/9] fork: Make IO worker options flag based Mike Christie 2021-09-22 12:44 ` Christian Brauner 2021-09-21 21:52 ` [PATCH V2 2/9] fork: pass worker_flags to copy_thread Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-09-22 12:42 ` Christian Brauner 2021-09-22 14:18 ` Geert Uytterhoeven 2021-09-22 14:18 ` Geert Uytterhoeven 2021-09-21 21:52 ` [PATCH V2 3/9] fork: move PF_IO_WORKER's kernel frame setup to new flag Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-09-22 12:32 ` Geert Uytterhoeven 2021-09-22 12:32 ` Geert Uytterhoeven 2021-09-22 12:39 ` Christian Brauner 2021-09-22 12:45 ` Christian Brauner 2021-09-21 21:52 ` [PATCH V2 4/9] fork: add option to not clone or dup files Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-09-22 12:46 ` Christian Brauner 2021-09-21 21:52 ` [PATCH V2 5/9] fork: add helper to clone a process Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-09-22 12:50 ` Christian Brauner 2021-09-21 21:52 ` [PATCH V2 6/9] io_uring: switch to kernel_worker Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-09-22 12:53 ` Christian Brauner 2021-09-21 21:52 ` [PATCH V2 7/9] fork: Add worker flag to ignore signals Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-09-22 12:52 ` Christian Brauner 2021-09-21 21:52 ` [PATCH V2 8/9] vhost: move worker thread fields to new struct Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-10-04 13:12 ` Michael S. Tsirkin 2021-10-04 13:12 ` Michael S. Tsirkin 2021-09-21 21:52 ` [PATCH V2 9/9] vhost: use kernel_worker to check RLIMITs and inherit v2 cgroups Mike Christie 2021-09-21 21:52 ` Mike Christie 2021-10-04 13:12 ` Michael S. Tsirkin 2021-10-04 13:12 ` Michael S. Tsirkin
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=20210921215218.89844-2-michael.christie@oracle.com \ --to=michael.christie@oracle.com \ --cc=axboe@kernel.dk \ --cc=christian.brauner@ubuntu.com \ --cc=hch@infradead.org \ --cc=hdanton@sina.com \ --cc=jasowang@redhat.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mst@redhat.com \ --cc=sgarzare@redhat.com \ --cc=stefanha@redhat.com \ --cc=virtualization@lists.linux-foundation.org \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.