• N
    perf kmem: Analyze page allocator events also · 0d68bc92
    Namhyung Kim 提交于
    The perf kmem command records and analyze kernel memory allocation only
    for SLAB objects.  This patch implement a simple page allocator analyzer
    using kmem:mm_page_alloc and kmem:mm_page_free events.
    
    It adds two new options of --slab and --page.  The --slab option is for
    analyzing SLAB allocator and that's what perf kmem currently does.
    
    The new --page option enables page allocator events and analyze kernel
    memory usage in page unit.  Currently, 'stat --alloc' subcommand is
    implemented only.
    
    If none of these --slab nor --page is specified, --slab is implied.
    
    First run 'perf kmem record' to generate a suitable perf.data file:
    
      # perf kmem record --page sleep 5
    
    Then run 'perf kmem stat' to postprocess the perf.data file:
    
      # perf kmem stat --page --alloc --line 10
    
      -------------------------------------------------------------------------------
       PFN              | Total alloc (KB) | Hits     | Order | Mig.type | GFP flags
      -------------------------------------------------------------------------------
                4045014 |               16 |        1 |     2 |  RECLAIM |  00285250
                4143980 |               16 |        1 |     2 |  RECLAIM |  00285250
                3938658 |               16 |        1 |     2 |  RECLAIM |  00285250
                4045400 |               16 |        1 |     2 |  RECLAIM |  00285250
                3568708 |               16 |        1 |     2 |  RECLAIM |  00285250
                3729824 |               16 |        1 |     2 |  RECLAIM |  00285250
                3657210 |               16 |        1 |     2 |  RECLAIM |  00285250
                4120750 |               16 |        1 |     2 |  RECLAIM |  00285250
                3678850 |               16 |        1 |     2 |  RECLAIM |  00285250
                3693874 |               16 |        1 |     2 |  RECLAIM |  00285250
       ...              | ...              | ...      | ...   | ...      | ...
      -------------------------------------------------------------------------------
    
      SUMMARY (page allocator)
      ========================
      Total allocation requests     :           44,260   [          177,256 KB ]
      Total free requests           :              117   [              468 KB ]
    
      Total alloc+freed requests    :               49   [              196 KB ]
      Total alloc-only requests     :           44,211   [          177,060 KB ]
      Total free-only requests      :               68   [              272 KB ]
    
      Total allocation failures     :                0   [                0 KB ]
    
      Order     Unmovable   Reclaimable       Movable      Reserved  CMA/Isolated
      -----  ------------  ------------  ------------  ------------  ------------
          0            32             .        44,210             .             .
          1             .             .             .             .             .
          2             .            18             .             .             .
          3             .             .             .             .             .
          4             .             .             .             .             .
          5             .             .             .             .             .
          6             .             .             .             .             .
          7             .             .             .             .             .
          8             .             .             .             .             .
          9             .             .             .             .             .
         10             .             .             .             .             .
    Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
    Tested-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Joonsoo Kim <js1304@gmail.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/1428298576-9785-4-git-send-email-namhyung@kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    0d68bc92
builtin-kmem.c 27.7 KB