summaryrefslogtreecommitdiffstats
path: root/init/init_task.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2024-07-09 02:30:55 +0200
committerTejun Heo <tj@kernel.org>2024-07-09 02:30:55 +0200
commitd4af01c3731ff9c6e224d7183f8226a56d72b56c (patch)
treeb572171f55eaad7f4114970e75f0a58e14f7cfc6 /init/init_task.c
parentsched, sched_ext: Move some declarations from kernel/sched/ext.h to sched.h (diff)
downloadlinux-d4af01c3731ff9c6e224d7183f8226a56d72b56c.tar.xz
linux-d4af01c3731ff9c6e224d7183f8226a56d72b56c.zip
sched_ext: Take out ->priq and ->flags from scx_dsq_node
struct scx_dsq_node contains two data structure nodes to link the containing task to a DSQ and a flags field that is protected by the lock of the associated DSQ. One reason why they are grouped into a struct is to use the type independently as a cursor node when iterating tasks on a DSQ. However, when iterating, the cursor only needs to be linked on the FIFO list and the rb_node part ends up inflating the size of the iterator data structure unnecessarily making it potentially too expensive to place it on stack. Take ->priq and ->flags out of scx_dsq_node and put them in sched_ext_entity as ->dsq_priq and ->dsq_flags, respectively. scx_dsq_node is renamed to scx_dsq_list_node and the field names are renamed accordingly. This will help implementing DSQ task iterator that can be allocated on stack. No functional change intended. Signed-off-by: Tejun Heo <tj@kernel.org> Suggested-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Alexei Starovoitov <ast@kernel.org> Cc: David Vernet <void@manifault.com>
Diffstat (limited to 'init/init_task.c')
-rw-r--r--init/init_task.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/init/init_task.c b/init/init_task.c
index 5726b3a0eea9..e222722e790b 100644
--- a/init/init_task.c
+++ b/init/init_task.c
@@ -102,7 +102,7 @@ struct task_struct init_task __aligned(L1_CACHE_BYTES) = {
#endif
#ifdef CONFIG_SCHED_CLASS_EXT
.scx = {
- .dsq_node.list = LIST_HEAD_INIT(init_task.scx.dsq_node.list),
+ .dsq_list.node = LIST_HEAD_INIT(init_task.scx.dsq_list.node),
.sticky_cpu = -1,
.holding_cpu = -1,
.runnable_node = LIST_HEAD_INIT(init_task.scx.runnable_node),