diff options
author | Jens Axboe <axboe@kernel.dk> | 2021-02-16 14:15:30 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-02-21 17:25:22 -0700 |
commit | 3bfe6106693b6b4ba175ad1f929c4660b8f59ca8 (patch) | |
tree | aba6783414bf41a0274cc07c5cf4d11912de3ba6 /include | |
parent | 6fb8f43cede0e4bd3ead847de78d531424a96be9 (diff) | |
download | linux-stable-3bfe6106693b6b4ba175ad1f929c4660b8f59ca8.tar.gz linux-stable-3bfe6106693b6b4ba175ad1f929c4660b8f59ca8.tar.bz2 linux-stable-3bfe6106693b6b4ba175ad1f929c4660b8f59ca8.zip |
io-wq: fork worker threads from original task
Instead of using regular kthread kernel threads, create kernel threads
that are like a real thread that the task would create. This ensures that
we get all the context that we need, without having to carry that state
around. This greatly reduces the code complexity, and the risk of missing
state for a given request type.
With the move away from kthread, we can also dump everything related to
assigned state to the new threads.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/sched.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 26f499810dfa..ef00bb22164c 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -895,6 +895,9 @@ struct task_struct { /* CLONE_CHILD_CLEARTID: */ int __user *clear_child_tid; + /* PF_IO_WORKER */ + void *pf_io_worker; + u64 utime; u64 stime; #ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME |