• Stephen Boyd's avatar
    timers: Provide a better debugobjects hint for delayed works · 317f29c1
    Stephen Boyd authored
    With debugobjects enabled the timer hint for freeing of active timers
    embedded inside delayed works is always the same, i.e. the hint is
    delayed_work_timer_fn, even though the function the delayed work is going
    to run can be wildly different depending on what work was queued.  Enabling
    workqueue debugobjects doesn't help either because the delayed work isn't
    considered active until it is actually queued to run on a workqueue. If the
    work is freed while the timer is pending the work isn't considered active
    so there is no information from workqueue debugobjects.
    
    Special case delayed works in the timer debugobjects hint logic so that the
    delayed work function is returned instead of the delayed_work_timer_fn.
    This will help to understand which delayed work was pending that got
    freed.
    
    Apply the same treatment for kthread_delayed_work because it follows the
    same pattern.
    Suggested-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarStephen Boyd <swboyd@chromium.org>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Link: https://lore.kernel.org/r/20220511201951.42408-1-swboyd@chromium.org
    317f29c1
timer.c 61.6 KB