OpenCloudOS-Kernel/include
Balbir Singh 846c7bb055 Add cgroupstats
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 <balbir@linux.vnet.ibm.com>
Cc: Paul Menage <menage@google.com>
Cc: Jay Lan <jlan@engr.sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-19 11:53:36 -07:00
..
acpi ACPI: CONFIG_ACPI_SLEEP=n power off regression in 2.6.23-rc8 (NOT in rc7) 2007-09-25 17:58:52 -04:00
asm-alpha remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-arm remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-arm26 softlockup: make asm/irq_regs.h available on every platform 2007-10-17 08:42:47 -07:00
asm-avr32 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-blackfin remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-cris remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-frv remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-generic bitops: introduce lock ops 2007-10-18 14:37:29 -07:00
asm-h8300 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-ia64 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-m32r remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-m68k remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-m68knommu remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-mips remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-parisc remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-powerpc remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-ppc Replace __attribute_pure__ with __pure 2007-10-18 14:37:32 -07:00
asm-s390 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sh remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sh64 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sparc remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-sparc64 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-um remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-v850 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-x86 remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
asm-xtensa remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
crypto [CRYPTO] sha: Add header file for SHA definitions 2007-10-10 16:55:50 -07:00
keys KEYS: Make request_key() and co fundamentally asynchronous 2007-10-17 08:42:57 -07:00
linux Add cgroupstats 2007-10-19 11:53:36 -07:00
math-emu Fix <math-emu/soft-fp.h> tpyo 2007-08-18 17:15:17 -07:00
media v4l: copy_to_user() is not a good method name 2007-10-13 09:58:59 -07:00
mtd
net [IPSEC]: Rename mode to outer_mode and add inner_mode 2007-10-17 21:35:51 -07:00
pcmcia pcmcia: use DMA_MASK_NONE for the default for all pcmcia devices 2007-10-16 09:42:50 -07:00
rdma IB/cm: Modify interface to send MRAs in response to duplicate messages 2007-10-09 19:59:17 -07:00
rxrpc
scsi do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00
sound [ALSA] version 1.0.15 2007-10-16 16:57:46 +02:00
video pm2fb: hardware cursor support for the Permedia2 2007-10-16 09:43:18 -07:00
xen xen: fix incorrect vcpu_register_vcpu_info hypercall argument 2007-10-16 11:51:31 -07:00
Kbuild do not export /usr/include/scsi in make headers_install 2007-10-17 08:42:52 -07:00