File: /Users/paulross/dev/linux/linux-3.13/include/uapi/linux/cgroupstats.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: /* cgroupstats.h - exporting per-cgroup statistics
       2:  *
       3:  * Copyright IBM Corporation, 2007
       4:  * Author Balbir Singh <balbir@linux.vnet.ibm.com>
       5:  *
       6:  * This program is free software; you can redistribute it and/or modify it
       7:  * under the terms of version 2.1 of the GNU Lesser General Public License
       8:  * as published by the Free Software Foundation.
       9:  *
      10:  * This program is distributed in the hope that it would be useful, but
      11:  * WITHOUT ANY WARRANTY; without even the implied warranty of
      12:  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      13:  */
      14: 
      15: #ifndef _LINUX_CGROUPSTATS_H
      16: #define _LINUX_CGROUPSTATS_H
      17: 
      18: #include <linux/types.h>
      19: #include <linux/taskstats.h>
      20: 
      21: /*
      22:  * Data shared between user space and kernel space on a per cgroup
      23:  * basis. This data is shared using taskstats.
      24:  *
      25:  * Most of these states are derived by looking at the task->state value
      26:  * For the nr_io_wait state, a flag in the delay accounting structure
      27:  * indicates that the task is waiting on IO
      28:  *
      29:  * Each member is aligned to a 8 byte boundary.
      30:  */
      31: struct cgroupstats {
      32:     __u64    nr_sleeping;        /* Number of tasks sleeping */
      33:     __u64    nr_running;        /* Number of tasks running */
      34:     __u64    nr_stopped;        /* Number of tasks in stopped state */
      35:     __u64    nr_uninterruptible;    /* Number of tasks in uninterruptible */
      36:                     /* state */
      37:     __u64    nr_io_wait;        /* Number of tasks waiting on IO */
      38: };
      39: 
      40: /*
      41:  * Commands sent from userspace
      42:  * Not versioned. New commands should only be inserted at the enum's end
      43:  * prior to __CGROUPSTATS_CMD_MAX
      44:  */
      45: 
      46: enum {
      47:     CGROUPSTATS_CMD_UNSPEC = __TASKSTATS_CMD_MAX,    /* Reserved */
      48:     CGROUPSTATS_CMD_GET,        /* user->kernel request/get-response */
      49:     CGROUPSTATS_CMD_NEW,        /* kernel->user event */
      50:     __CGROUPSTATS_CMD_MAX,
      51: };
      52: 
      53: #define CGROUPSTATS_CMD_MAX (__CGROUPSTATS_CMD_MAX - 1)
      54: 
      55: enum {
      56:     CGROUPSTATS_TYPE_UNSPEC = 0,    /* Reserved */
      57:     CGROUPSTATS_TYPE_CGROUP_STATS,    /* contains name + stats */
      58:     __CGROUPSTATS_TYPE_MAX,
      59: };
      60: 
      61: #define CGROUPSTATS_TYPE_MAX (__CGROUPSTATS_TYPE_MAX - 1)
      62: 
      63: enum {
      64:     CGROUPSTATS_CMD_ATTR_UNSPEC = 0,
      65:     CGROUPSTATS_CMD_ATTR_FD,
      66:     __CGROUPSTATS_CMD_ATTR_MAX,
      67: };
      68: 
      69: #define CGROUPSTATS_CMD_ATTR_MAX (__CGROUPSTATS_CMD_ATTR_MAX - 1)
      70: 
      71: #endif /* _LINUX_CGROUPSTATS_H */
      72: