• Tejun Heo's avatar
    sched_ext: Take out ->priq and ->flags from scx_dsq_node · d4af01c3
    Tejun Heo authored
    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: default avatarTejun Heo <tj@kernel.org>
    Suggested-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Cc: David Vernet <void@manifault.com>
    d4af01c3
init_task.c 6.51 KB