• Daniel Thompson's avatar
    kdb: Adopt scheduler's task classification · b77dbc86
    Daniel Thompson authored
    Currently kdb contains some open-coded routines to generate a summary
    character for each task. This code currently issues warnings, is
    almost certainly broken and won't make sense to any kernel dev who
    has ever used /proc to examine task states.
    
    Fix both the warning and the potential for confusion by adopting the
    scheduler's task classification. Whilst doing this we also simplify the
    filtering by using mask strings directly (which means we don't have to
    guess all the characters the scheduler might give us).
    
    Unfortunately we can't quite match the scheduler classification completely.
    We add four extra states: - for idle loops and i, m and s for sleeping
    system daemons (which means kthreads in one of the I, M and S states).
    These extra states are used to manage the filters for tools to make the
    output of ps and bta less noisy.
    
    Note: The Fixes below is the last point the original dubious code was
          moved; it was not introduced by that patch. However it gives us
          the last point to which this patch can be easily backported.
          Happily that should be enough to cover the introduction of
          CONFIG_WERROR!
    
    Fixes: 2f064a59 ("sched: Change task_struct::state")
    Link: https://lore.kernel.org/r/20211102173158.3315227-1-daniel.thompson@linaro.orgReviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
    Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
    b77dbc86
kdb_private.h 8.78 KB