diff options
author | Jens Axboe <axboe@kernel.dk> | 2021-03-04 22:21:05 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-03-05 01:45:03 +0300 |
commit | cc440e8738e5c875297ac0e90316745093be7e28 (patch) | |
tree | afa5104417c11531b4d4ec48ef7b0c3a6b0a45dd /include | |
parent | dd59a3d595cc10230ded4c8b727b096e16bceeb5 (diff) | |
download | linux-cc440e8738e5c875297ac0e90316745093be7e28.tar.xz |
kernel: provide create_io_thread() helper
Provide a generic helper for setting up an io_uring worker. Returns a
task_struct so that the caller can do whatever setup is needed, then call
wake_up_new_task() to kick it into gear.
Add a kernel_clone_args member, io_thread, which tells copy_process() to
mark the task with PF_IO_WORKER.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/sched/task.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h index c0f71f2e7160..ef02be869cf2 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -31,6 +31,7 @@ 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; }; @@ -82,6 +83,7 @@ extern void exit_files(struct task_struct *); extern void exit_itimers(struct signal_struct *); extern pid_t kernel_clone(struct kernel_clone_args *kargs); +struct task_struct *create_io_thread(int (*fn)(void *), void *arg, int node); struct task_struct *fork_idle(int); struct mm_struct *copy_init_mm(void); extern pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags); |