• Arjan van de Ven's avatar
    workqueue: Add basic tracepoints to track workqueue execution · e36c886a
    Arjan van de Ven authored
    With the introduction of the new unified work queue thread pools,
    we lost one feature: It's no longer possible to know which worker
    is causing the CPU to wake out of idle. The result is that PowerTOP
    now reports a lot of "kworker/a:b" instead of more readable results.
    
    This patch adds a pair of tracepoints to the new workqueue code,
    similar in style to the timer/hrtimer tracepoints.
    
    With this pair of tracepoints, the next PowerTOP can correctly
    report which work item caused the wakeup (and how long it took):
    
    Interrupt (43)            i915      time   3.51ms    wakeups 141
    Work      ieee80211_iface_work      time   0.81ms    wakeups  29
    Work              do_dbs_timer      time   0.55ms    wakeups  24
    Process                   Xorg      time  21.36ms    wakeups   4
    Timer    sched_rt_period_timer      time   0.01ms    wakeups   1
    Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e36c886a
workqueue.h 1.2 KB