16 Jun, 2011

1 commit

  • According to commit 676db4af0430 ("cgroupfs: create /sys/fs/cgroup to
    mount cgroupfs on") the canonical mountpoint for the cgroup filesystem
    is /sys/fs/cgroup. Hence, this should be used in the documentation.

    Signed-off-by: Jörg Sommer
    Acked-by: Paul Menage
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Jörg Sommer
     

27 May, 2011

3 commits

  • I find it very handy to show the average delays in milliseconds.

    Example output (on 100 concurrent dd reading sparse files):

    CPU count real total virtual total delay total delay average
    986 3223509952 3207643301 38863410579 39.415ms
    IO count delay total delay average
    0 0 0ms
    SWAP count delay total delay average
    0 0 0ms
    RECLAIM count delay total delay average
    1059 5131834899 4ms
    dd: read=0, write=0, cancelled_write=0

    Signed-off-by: Wu Fengguang
    Cc: Mel Gorman
    Cc: Balbir Singh
    Reviewed-by: Satoru Moriya
    Reviewed-by: KOSAKI Motohiro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wu Fengguang
     
  • Fixes

    Documentation/accounting/getdelays.c: In function `get_family_id':
    Documentation/accounting/getdelays.c:172:14: warning: variable `rc' set but not used [-Wunused-but-set-variable]

    Reported-by: "Justin P. Mattock"
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Fixes

    Documentation/accounting/getdelays.c: In function `main':
    Documentation/accounting/getdelays.c:436:7: warning: variable `i' set but not used [-Wunused-but-set-variable]

    Signed-off-by: Justin P. Mattock
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Justin P. Mattock
     

23 Dec, 2010

1 commit

  • The taskstats structure is internally aligned on 8 byte boundaries but the
    layout of the aggregrate reply, with two NLA headers and the pid (each 4
    bytes), actually force the entire structure to be unaligned. This causes
    the kernel to issue unaligned access warnings on some architectures like
    ia64. Unfortunately, some software out there doesn't properly unroll the
    NLA packet and assumes that the start of the taskstats structure will
    always be 20 bytes from the start of the netlink payload. Aligning the
    start of the taskstats structure breaks this software, which we don't
    want. So, for now the alignment only happens on architectures that
    require it and those users will have to update to fixed versions of those
    packages. Space is reserved in the packet only when needed. This ifdef
    should be removed in several years e.g. 2012 once we can be confident
    that fixed versions are installed on most systems. We add the padding
    before the aggregate since the aggregate is already a defined type.

    Commit 85893120 ("delayacct: align to 8 byte boundary on 64-bit systems")
    previously addressed the alignment issues by padding out the pid field.
    This was supposed to be a compatible change but the circumstances
    described above mean that it wasn't. This patch backs out that change,
    since it was a hack, and introduces a new NULL attribute type to provide
    the padding. Padding the response with 4 bytes avoids allocating an
    aligned taskstats structure and copying it back. Since the structure
    weighs in at 328 bytes, it's too big to do it on the stack.

    Signed-off-by: Jeff Mahoney
    Reported-by: Brian Rogers
    Cc: Jeff Mahoney
    Cc: Guillaume Chazarain
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Mahoney
     

28 Oct, 2010

1 commit

  • 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: Mel Gorman
    Acked-by: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     

23 Sep, 2009

1 commit


17 Jun, 2009

1 commit


16 Jan, 2009

1 commit


31 Oct, 2008

1 commit


13 Aug, 2008

2 commits

  • Fix printf format type warnings (seen on alpha & ia64):

    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 6 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 7 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 8 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 9 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 12 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 13 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 16 has type '__u64'
    Documentation/accounting/getdelays.c:206: warning: format '%15llu' expects type 'long long unsigned int', but argument 17 has type '__u64'
    Documentation/accounting/getdelays.c:214: warning: format '%15llu' expects type 'long long unsigned int', but argument 4 has type '__u64'
    Documentation/accounting/getdelays.c:214: warning: format '%15llu' expects type 'long long unsigned int', but argument 5 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 2 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 3 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 4 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 5 has type '__u64'
    Documentation/accounting/getdelays.c:221: warning: format '%llu' expects type 'long long unsigned int', but argument 6 has type '__u64'
    Documentation/accounting/getdelays.c:236: warning: 'cmd_type' may be used uninitialized in this function

    Signed-off-by: Randy Dunlap
    Cc: Balbir Singh
    Cc: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Currently source files in the Documentation/ sub-dir can easily bit-rot
    since they are not generally buildable, either because they are hidden in
    text files or because there are no Makefile rules for them. This needs to
    be fixed so that the source files remain usable and good examples of code
    instead of bad examples.

    Add the ability to build source files that are in the Documentation/ dir.
    Add to Kconfig as "BUILD_DOCSRC" config symbol.

    Use "CONFIG_BUILD_DOCSRC=1 make ..." to build objects from the
    Documentation/ sources. Or enable BUILD_DOCSRC in the *config system.
    However, this symbol depends on HEADERS_CHECK since the header files need
    to be installed (for userspace builds).

    Built (using cross-tools) for x86-64, i386, alpha, ia64, sparc32,
    sparc64, powerpc, sh, m68k, & mips.

    Signed-off-by: Randy Dunlap
    Reviewed-by: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

27 Jul, 2008

1 commit


26 Jul, 2008

2 commits


05 Jul, 2008

1 commit


09 Feb, 2008

1 commit

  • Fix gcc warnings in getdelays.c:

    Documentation/accounting/getdelays.c: In function 'task_context_switch_counts':
    Documentation/accounting/getdelays.c:214: warning: format '%15lu' expects type 'long unsigned int', but argument 4 has type '__u64'
    Documentation/accounting/getdelays.c:214: warning: format '%15lu' expects type 'long unsigned int', but argument 5 has type '__u64'
    Documentation/accounting/getdelays.c: In function 'main':
    Documentation/accounting/getdelays.c:402: warning: format '%d' expects type 'int', but argument 2 has type 'long unsigned int'
    Documentation/accounting/getdelays.c: In function 'get_family_id':
    Documentation/accounting/getdelays.c:171: warning: 'id' may be used uninitialized in this function

    One warning is not a problem and can be dismissed:
    Documentation/accounting/getdelays.c: In function 'main':
    Documentation/accounting/getdelays.c:236: warning: 'cmd_type' may be used uninitialized in this function

    Signed-off-by: Randy Dunlap
    Acked-by: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

15 Nov, 2007

1 commit

  • Update the getdelays utility to become cgroupstats aware. A new -C option has
    been added. It takes in a control group path and prints out a summary of the
    states of tasks in the control group

    Signed-off-by: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     

20 Oct, 2007

1 commit

  • This patch is inspired by the discussion at
    http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics
    as suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263. The
    patch is on top of 2.6.21-mm1 with Paul's cgroups v9 patches (forward
    ported)

    This patch implements per cgroup statistics infrastructure and re-uses
    code from the taskstats interface. A new set of cgroup operations are
    registered with commands and attributes. It should be very easy to
    *extend* per cgroup statistics, by adding members to the cgroupstats
    structure.

    The current model for cgroupstats is a pull, a push model (to post
    statistics on interesting events), should be very easy to add. Currently
    user space requests for statistics by passing the cgroup file
    descriptor. Statistics about the state of all the tasks in the cgroup
    is returned to user space.

    TODO's/NOTE:

    This patch provides an infrastructure for implementing cgroup statistics.
    Based on the needs of each controller, we can incrementally add more statistics,
    event based support for notification of statistics, accumulation of taskstats
    into cgroup statistics in the future.

    Sample output

    # ./cgroupstats -C /cgroup/a
    sleeping 2, blocked 0, running 1, stopped 0, uninterruptible 0

    # ./cgroupstats -C /cgroup/
    sleeping 154, blocked 0, running 0, stopped 0, uninterruptible 0

    If the approach looks good, I'll enhance and post the user space utility for
    the same

    Feedback, comments, test results are always welcome!

    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Balbir Singh
    Cc: Paul Menage
    Cc: Jay Lan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     

17 Oct, 2007

1 commit


23 Aug, 2007

1 commit

  • Commit b663a79c191508f27cd885224b592a878c0ba0f6 ("taskstats: add
    context-switch counters") incorrectly removed a comma from a printf
    statement. This causes corruption in the output printing or a seg
    fault.

    Signed-off-by: Michael Neuling
    Acked-by: Balbir Singh
    Signed-off-by: Linus Torvalds

    Michael Neuling
     

17 Jul, 2007

1 commit

  • Make available to the user the following task and process performance
    statistics:

    * Involuntary Context Switches (task_struct->nivcsw)
    * Voluntary Context Switches (task_struct->nvcsw)

    Statistics information is available from:
    1. taskstats interface (Documentation/accounting/)
    2. /proc/PID/status (task only).

    This data is useful for detecting hyperactivity patterns between processes.

    [akpm@linux-foundation.org: cleanup]
    Signed-off-by: Maxim Uvarov
    Cc: Shailabh Nagar
    Cc: Balbir Singh
    Cc: Jay Lan
    Cc: Jonathan Lim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Maxim Uvarov
     

09 May, 2007

2 commits


11 Dec, 2006

2 commits

  • Wire up the IO accounting into getdelays.c.

    Usage:

    To display I/O stats for each exitting task:

    vmm:/home/akpm> ./getdelays -m0,1,2,3 -i -l
    cpumask 0 maskset 1
    printing IO accounting
    listen forever
    rm: read=8192, write=0, cancelled_write=0
    cvs: read=733184, write=4255744, cancelled_write=4096
    make: read=217088, write=0, cancelled_write=0
    cc1: read=4263936, write=12288, cancelled_write=0
    as: read=811008, write=8192, cancelled_write=0
    gcc: read=323584, write=0, cancelled_write=12288
    cc1: read=0, write=8192, cancelled_write=0
    as: read=4096, write=4096, cancelled_write=0
    gcc: read=16384, write=0, cancelled_write=4096
    as: read=4096, write=4096, cancelled_write=0
    gcc: read=16384, write=0, cancelled_write=8192
    ld: read=1011712, write=16384, cancelled_write=0
    collect2: read=626688, write=0, cancelled_write=0
    gcc: read=204800, write=0, cancelled_write=0
    cc1: read=0, write=8192, cancelled_write=0
    as: read=4096, write=4096, cancelled_write=0
    gcc: read=16384, write=0, cancelled_write=8192
    ld: read=8192, write=16384, cancelled_write=0
    collect2: read=49152, write=0, cancelled_write=0
    gcc: read=0, write=0, cancelled_write=0
    cc1: read=0, write=4096, cancelled_write=0
    ld: read=4096, write=12288, cancelled_write=0
    collect2: read=49152, write=0, cancelled_write=0
    gcc: read=0, write=0, cancelled_write=0

    To display I/O stats for a particular presently-running task:

    vmm:/home/akpm> ./getdelays -i -p $(pidof crond)
    printing IO accounting
    crond: read=61440, write=0, cancelled_write=0

    Cc: Jay Lan
    Cc: Shailabh Nagar
    Cc: Balbir Singh
    Cc: Chris Sturtivant
    Cc: Tony Ernst
    Cc: Guillaume Thouvenin
    Cc: David Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • - Various cleanups

    - Report errors to stderr, not stdout

    - A printf was missing a \n and was hiding from me.

    Cc: Jay Lan
    Cc: Shailabh Nagar
    Cc: Balbir Singh
    Cc: Chris Sturtivant
    Cc: Tony Ernst
    Cc: Guillaume Thouvenin
    Cc: David Wright
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

30 Nov, 2006

2 commits

  • This patch fixes typos in various Documentation txts. The patch addresses some
    +words starting with the letters 'U-Z'.

    Looks like I made it through the alphabet...just in time to start over again
    +too! Maybe I can fit more profound fixes into the next round...? Time will
    +tell. :)

    Signed-off-by: Matt LaPlante
    Acked-by: Randy Dunlap
    Signed-off-by: Adrian Bunk

    Matt LaPlante
     
  • This patch fixes typos in various Documentation txts. The patch addresses some
    +words starting with the letter 'T'.

    Signed-off-by: Matt LaPlante
    Acked-by: Randy Dunlap
    Signed-off-by: Adrian Bunk

    Matt LaPlante
     

04 Nov, 2006

1 commit


01 Oct, 2006

2 commits

  • ChangeLog:
    Feedbacks from Andrew Morton:
    - define TS_COMM_LEN to 32
    - change acct_stimexpd field of task_struct to be of
    cputime_t, which is to be used to save the tsk->stime
    of last timer interrupt update.
    - a new Documentation/accounting/taskstats-struct.txt
    to describe fields of taskstats struct.

    Feedback from Balbir Singh:
    - keep the stime of a task to be zero when both stime
    and utime are zero as recoreded in task_struct.

    Misc:
    - convert accumulated RSS/VM from platform dependent
    pages-ticks to MBytes-usecs in the kernel

    Cc: Shailabh Nagar
    Cc: Balbir Singh
    Cc: Jes Sorensen
    Cc: Chris Sturtivant
    Cc: Tony Ernst
    Cc: Guillaume Thouvenin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jay Lan
     
  • Fix the length passed while (un)registering cpumask. We were passing sizeof
    the array, make it strlen().

    Error value printed in fatal errors should be derived from the message. The
    message contains an nlmsgerr embedded with an error value. We must report
    that value to the user.

    Signed-off-by: Balbir Singh
    Cc: Jamal Hadi
    Cc: Shailabh Nagar
    Cc: Thomas Graf
    Cc: "David S. Miller"
    Cc: Jay Lan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Balbir Singh
     

01 Aug, 2006

1 commit

  • Enable delay accounting by default so that feature gets coverage testing
    without requiring special measures.

    Earlier, it was off by default and had to be enabled via a boot time param.
    This patch reverses the default behaviour to improve coverage testing. It
    can be removed late in the kernel development cycle if its believed users
    shouldn't have to incur any cost if they don't want delay accounting. Or
    it can be retained forever if the utility of the stats is deemed common
    enough to warrant keeping the feature on.

    Signed-off-by: Shailabh Nagar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shailabh Nagar
     

15 Jul, 2006

4 commits

  • Change documentation and example program to reflect the flow control issues
    being addressed by the cpumask changes.

    Signed-off-by: Shailabh Nagar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shailabh Nagar
     
  • Send per-tgid data only once during exit of a thread group instead of once
    with each member thread exit.

    Currently, when a thread exits, besides its per-tid data, the per-tgid data
    of its thread group is also sent out, if its thread group is non-empty.
    The per-tgid data sent consists of the sum of per-tid stats for all
    *remaining* threads of the thread group.

    This patch modifies this sending in two ways:

    - the per-tgid data is sent only when the last thread of a thread group
    exits. This cuts down heavily on the overhead of sending/receiving
    per-tgid data, especially when other exploiters of the taskstats
    interface aren't interested in per-tgid stats

    - the semantics of the per-tgid data sent are changed. Instead of being
    the sum of per-tid data for remaining threads, the value now sent is the
    true total accumalated statistics for all threads that are/were part of
    the thread group.

    The patch also addresses a minor issue where failure of one accounting
    subsystem to fill in the taskstats structure was causing the send of
    taskstats to not be sent at all.

    The patch has been tested for stability and run cerberus for over 4 hours
    on an SMP.

    [akpm@osdl.org: bugfixes]
    Signed-off-by: Shailabh Nagar
    Signed-off-by: Balbir Singh
    Cc: Jay Lan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shailabh Nagar
     
  • Some documentation for delay accounting.

    Signed-off-by: Shailabh Nagar
    Signed-off-by: Balbir Singh
    Cc: Jes Sorensen
    Cc: Peter Chubb
    Cc: Erich Focht
    Cc: Levent Serinol
    Cc: Jay Lan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shailabh Nagar
     
  • Create a "taskstats" interface based on generic netlink (NETLINK_GENERIC
    family), for getting statistics of tasks and thread groups during their
    lifetime and when they exit. The interface is intended for use by multiple
    accounting packages though it is being created in the context of delay
    accounting.

    This patch creates the interface without populating the fields of the data
    that is sent to the user in response to a command or upon the exit of a task.
    Each accounting package interested in using taskstats has to provide an
    additional patch to add its stats to the common structure.

    [akpm@osdl.org: cleanups, Kconfig fix]
    Signed-off-by: Shailabh Nagar
    Signed-off-by: Balbir Singh
    Cc: Jes Sorensen
    Cc: Peter Chubb
    Cc: Erich Focht
    Cc: Levent Serinol
    Cc: Jay Lan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Shailabh Nagar