• Mel Gorman's avatar
    delay-accounting: reimplement -c for getdelays.c to report information on a target command · db9e5679
    Mel Gorman authored
    Task delay-accounting was identified as one means of determining how long
    a process spends in congestion_wait() without adding new statistics.  For
    example, if the workload should not be doing IO, delay-accounting could
    reveal how long it was spending in unexpected IO or delays.
    Unfortunately, on closer examination it was clear that getdelays does not
    act as documented.
    
    Commit a3baf649 ("per-task-delay-accounting: documentation") added
    Documentation/accounting/getdelays.c with a -c switch that was documented
    to fork/exec a child and report statistics on it but for reasons that are
    unclear to me, commit 9e06d3f9 deleted support for this switch but did not
    update the documentation.  It might be an oversight or it might be because
    the control flow of the program meant that accounting information would be
    printed once early in the lifetime of the program making it of limited
    use.
    
    This patch reimplements -c for getdelays.c to act as documented.  Unlike
    the original version, it waits until the command completes before printing
    any information on it.  An example of it being used looks like
    
    $ ./getdelays -d -c find /home/mel -name mel
    print delayacct stats ON
    /home/mel
    /home/mel/.notes-wine/drive_c/windows/profiles/mel
    /home/mel/.wine/drive_c/windows/profiles/mel
    /home/mel/git-configs/dot.kde/share/apps/konqueror/home/mel
    PID	5923
    
    CPU             count     real total  virtual total    delay total
                    42779     5051232096     5164722692      564207988
    IO              count    delay total
                    41727    97804147758
    SWAP            count    delay total
                        0              0
    RECLAIM         count    delay total
                        0              0
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
    Acked-by: default avatarBalbir Singh <balbir@in.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    db9e5679
getdelays.c 12.8 KB