• KOSAKI Motohiro's avatar
    proc: partially revert "procfs: provide stack information for threads" · 1306d603
    KOSAKI Motohiro authored
    Commit d899bf7b (procfs: provide stack information for threads) introduced
    to show stack information in /proc/{pid}/status.  But it cause large
    performance regression.  Unfortunately /proc/{pid}/status is used ps
    command too and ps is one of most important component.  Because both to
    take mmap_sem and page table walk are heavily operation.
    
    If many process run, the ps performance is,
    
    [before d899bf7b]
    
    % perf stat ps >/dev/null
    
     Performance counter stats for 'ps':
    
         4090.435806  task-clock-msecs         #      0.032 CPUs
                 229  context-switches         #      0.000 M/sec
                   0  CPU-migrations           #      0.000 M/sec
                 234  page-faults              #      0.000 M/sec
          8587565207  cycles                   #   2099.425 M/sec
          9866662403  instructions             #      1.149 IPC
          3789415411  cache-references         #    926.409 M/sec
            30419509  cache-misses             #      7.437 M/sec
    
       128.859521955  seconds time elapsed
    
    [after d899bf7b]
    
    % perf stat  ps  > /dev/null
    
     Performance counter stats for 'ps':
    
         4305.081146  task-clock-msecs         #      0.028 CPUs
                 480  context-switches         #      0.000 M/sec
                   2  CPU-migrations           #      0.000 M/sec
                 237  page-faults              #      0.000 M/sec
          9021211334  cycles                   #   2095.480 M/sec
         10605887536  instructions             #      1.176 IPC
          3612650999  cache-references         #    839.160 M/sec
            23917502  cache-misses             #      5.556 M/sec
    
       152.277819582  seconds time elapsed
    
    Thus, this patch revert it. Fortunately /proc/{pid}/task/{tid}/smaps
    provide almost same information. we can use it.
    
    Commit d899bf7b introduced two features:
    
     1) Add the annotattion of [thread stack: xxxx] mark to
        /proc/{pid}/task/{tid}/maps.
     2) Add StackUsage field to /proc/{pid}/status.
    
    I only revert (2), because I haven't seen (1) cause regression.
    Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Stefani Seibold <stefani@seibold.net>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Randy Dunlap <randy.dunlap@oracle.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andi Kleen <andi@firstfloor.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1306d603
proc.txt 63.1 KB