• M
    tracing, page-allocator: add a postprocessing script for page-allocator-related ftrace events · c9d05cfc
    Mel Gorman 提交于
    This patch adds a simple post-processing script for the
    page-allocator-related trace events.  It can be used to give an indication
    of who the most allocator-intensive processes are and how often the zone
    lock was taken during the tracing period.  Example output looks like
    
    Process                   Pages      Pages      Pages    Pages       PCPU     PCPU     PCPU   Fragment Fragment  MigType Fragment Fragment  Unknown
    details                  allocd     allocd      freed    freed      pages   drains  refills   Fallback  Causing  Changed   Severe Moderate
                                    under lock     direct  pagevec      drain
    swapper-0                     0          0          2        0          0        0        0          0        0        0        0        0        0
    Xorg-3770                 10603       5952       3685     6978       5996      194      192          0        0        0        0        0        0
    modprobe-21397               51          0          0       86         31        1        0          0        0        0        0        0        0
    xchat-5370                  228         93          0        0          0        0        3          0        0        0        0        0        0
    awesome-4317                 32         32          0        0          0        0       32          0        0        0        0        0        0
    thinkfan-3863                 2          0          1        1          0        0        0          0        0        0        0        0        0
    hald-addon-stor-3935          2          0          0        0          0        0        0          0        0        0        0        0        0
    akregator-4506                1          1          0        0          0        0        1          0        0        0        0        0        0
    xmms-14888                    0          0          1        0          0        0        0          0        0        0        0        0        0
    khelper-12                    1          0          0        0          0        0        0          0        0        0        0        0        0
    
    Optionally, the output can include information on the parent or aggregate
    based on process name instead of aggregating based on each pid. Example output
    including parent information and stripped out the PID looks something like;
    
    Process                        Pages      Pages      Pages    Pages       PCPU     PCPU     PCPU   Fragment Fragment  MigType Fragment Fragment  Unknown
    details                       allocd     allocd      freed    freed      pages   drains  refills   Fallback  Causing  Changed   Severe Moderate
                                         under lock     direct  pagevec      drain
    gdm-3756 :: Xorg-3770           3796       2976         99     3813       3224      104       98          0        0        0        0        0        0
    init-1 :: hald-3892                1          0          0        0          0        0        0          0        0        0        0        0        0
    git-21447 :: editor-21448          4          0          4        0          0        0        0          0        0        0        0        0        0
    
    This says that Xorg allocated 3796 pages and it's parent process is gdm
    with a PID of 3756;
    
    The postprocessor parses the text output of tracing.  While there is a
    binary format, the expectation is that the binary output can be readily
    translated into text and post-processed offline.  Obviously if the text
    format changes, the parser will break but the regular expression parser is
    fairly rudimentary so should be readily adjustable.
    Signed-off-by: NMel Gorman <mel@csn.ul.ie>
    Cc: Rik van Riel <riel@redhat.com>
    Reviewed-by: NIngo Molnar <mingo@elte.hu>
    Cc: Larry Woodman <lwoodman@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Li Ming Chun <macli@brc.ubc.ca>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    c9d05cfc
trace-pagealloc-postprocess.pl 12.4 KB