Skip to content

Commit d2974cc

Browse files
committed
sched_ext: Factor out scx_dsq_list_node cursor initialization into INIT_DSQ_LIST_CURSOR
Factor out scx_dsq_list_node cursor initialization into INIT_DSQ_LIST_CURSOR macro in preparation for additional users. Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com> Cc: Dan Schatzberg <schatzberg.dan@gmail.com> Acked-by: Andrea Righi <arighi@nvidia.com> Signed-off-by: Tejun Heo <tj@kernel.org>
1 parent c948d9f commit d2974cc

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

include/linux/sched/ext.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,13 @@ struct scx_dsq_list_node {
149149
u32 priv; /* can be used by iter cursor */
150150
};
151151

152+
#define INIT_DSQ_LIST_CURSOR(__node, __flags, __priv) \
153+
(struct scx_dsq_list_node) { \
154+
.node = LIST_HEAD_INIT((__node).node), \
155+
.flags = SCX_DSQ_LNODE_ITER_CURSOR | (__flags), \
156+
.priv = (__priv), \
157+
}
158+
152159
/*
153160
* The following is embedded in task_struct and contains all fields necessary
154161
* for a task to be scheduled by SCX.

kernel/sched/ext.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6253,9 +6253,8 @@ __bpf_kfunc int bpf_iter_scx_dsq_new(struct bpf_iter_scx_dsq *it, u64 dsq_id,
62536253
if (!kit->dsq)
62546254
return -ENOENT;
62556255

6256-
INIT_LIST_HEAD(&kit->cursor.node);
6257-
kit->cursor.flags = SCX_DSQ_LNODE_ITER_CURSOR | flags;
6258-
kit->cursor.priv = READ_ONCE(kit->dsq->seq);
6256+
kit->cursor = INIT_DSQ_LIST_CURSOR(kit->cursor, flags,
6257+
READ_ONCE(kit->dsq->seq));
62596258

62606259
return 0;
62616260
}

0 commit comments

Comments
 (0)