• Frederic Weisbecker's avatar
    perf: New migration tool overview · 880d22f2
    Frederic Weisbecker authored
    This brings a GUI tool that displays an overview of the load
    of tasks proportion in each CPUs.
    
    The CPUs forward progress is cut in timeslices. A new timeslice
    is created for every runqueue event: a task gets pushed out or
    pulled in the runqueue.
    
    For each timeslice, every CPUs rectangle is colored with a red
    power that describes the local load against the total load.
    This more red is the rectangle, the higher is the given CPU load.
    This load is the number of tasks running on the CPU, without
    any distinction against the scheduler policy of the tasks, for
    now.
    
    Also for each timeslice, the event origin is depicted on the
    CPUs that triggered it using a thin colored line on top of the
    rectangle timeslice.
    
    These events are:
    
    * sleep: a task went to sleep and has then been pulled out the
      runqueue. The origin color in the thin line is dark blue.
    
    * wake up: a task woke up and has then been pushed in the
      runqueue. The origin color is yellow.
    
    * wake up new: a new task woke up and has then been pushed in the
      runqueue. The origin color is green.
    
    * migrate in: a task migrated in the runqueue due to a load
      balancing operation. The origin color is violet.
    
    * migrate out: reverse of the previous one. Migrate in events
      usually have paired migrate out events in another runqueue.
      The origin color is light blue.
    
    Clicking on a timeslice provides the runqueue event details
    and the runqueue state.
    
    The CPU rectangles can be navigated using the usual arrow
    controls. Horizontal zooming in/out is possible with the
    "+" and "-" buttons.
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Li Zefan <lizf@cn.fujitsu.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Tom Zanussi <tzanussi@gmail.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Venkatesh Pallipadi <venki@google.com>
    Cc: Pierre Tardy <tardyp@gmail.com>
    Cc: Nikhil Rao <ncrao@google.com>
    Cc: Li Zefan <lizf@cn.fujitsu.com>
    880d22f2
sched-migration.py 15.7 KB