aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2021-03-04 12:21:05 -0700
committerJens Axboe <axboe@kernel.dk>2021-03-04 15:45:03 -0700
commitcc440e8738e5c875297ac0e90316745093be7e28 (patch)
treeafa5104417c11531b4d4ec48ef7b0c3a6b0a45dd /include/linux
parentio_uring: reliably cancel linked timeouts (diff)
downloadlinux-dev-cc440e8738e5c875297ac0e90316745093be7e28.tar.xz
linux-dev-cc440e8738e5c875297ac0e90316745093be7e28.zip
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/linux')
-rw-r--r--include/linux/sched/task.h2
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);