Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[sfrench/cifs-2.6.git] / include / linux / taskstats.h
index 45248806ae9c5916a416102d9bd1a8c9b54a03a2..a46104a28f66db62236b34c587e09a9422213574 100644 (file)
@@ -31,7 +31,7 @@
  */
 
 
-#define TASKSTATS_VERSION      2
+#define TASKSTATS_VERSION      4
 #define TS_COMM_LEN            32      /* should be >= TASK_COMM_LEN
                                         * in linux/sched.h */
 
@@ -66,7 +66,7 @@ struct taskstats {
        /* Delay waiting for cpu, while runnable
         * count, delay_total NOT updated atomically
         */
-       __u64   cpu_count;
+       __u64   cpu_count __attribute__((aligned(8)));
        __u64   cpu_delay_total;
 
        /* Following four fields atomically updated using task->delays->lock */
@@ -101,45 +101,54 @@ struct taskstats {
 
        /* Basic Accounting Fields start */
        char    ac_comm[TS_COMM_LEN];   /* Command name */
-       __u8    ac_sched;               /* Scheduling discipline */
+       __u8    ac_sched __attribute__((aligned(8)));
+                                       /* Scheduling discipline */
        __u8    ac_pad[3];
-       __u32   ac_uid;                 /* User ID */
+       __u32   ac_uid __attribute__((aligned(8)));
+                                       /* User ID */
        __u32   ac_gid;                 /* Group ID */
        __u32   ac_pid;                 /* Process ID */
        __u32   ac_ppid;                /* Parent process ID */
        __u32   ac_btime;               /* Begin time [sec since 1970] */
-       __u64   ac_etime;               /* Elapsed time [usec] */
+       __u64   ac_etime __attribute__((aligned(8)));
+                                       /* Elapsed time [usec] */
        __u64   ac_utime;               /* User CPU time [usec] */
        __u64   ac_stime;               /* SYstem CPU time [usec] */
        __u64   ac_minflt;              /* Minor Page Fault Count */
        __u64   ac_majflt;              /* Major Page Fault Count */
        /* Basic Accounting Fields end */
 
-       /* Extended accounting fields start */
+       /* Extended accounting fields start */
        /* Accumulated RSS usage in duration of a task, in MBytes-usecs.
         * The current rss usage is added to this counter every time
         * a tick is charged to a task's system time. So, at the end we
         * will have memory usage multiplied by system time. Thus an
         * average usage per system time unit can be calculated.
         */
-       __u64   coremem;                /* accumulated RSS usage in MB-usec */
+       __u64   coremem;                /* accumulated RSS usage in MB-usec */
        /* Accumulated virtual memory usage in duration of a task.
         * Same as acct_rss_mem1 above except that we keep track of VM usage.
         */
-       __u64   virtmem;                /* accumulated VM  usage in MB-usec */
+       __u64   virtmem;                /* accumulated VM  usage in MB-usec */
 
        /* High watermark of RSS and virtual memory usage in duration of
         * a task, in KBytes.
         */
-       __u64   hiwater_rss;            /* High-watermark of RSS usage, in KB */
-       __u64   hiwater_vm;             /* High-water VM usage, in KB */
+       __u64   hiwater_rss;            /* High-watermark of RSS usage, in KB */
+       __u64   hiwater_vm;             /* High-water VM usage, in KB */
 
        /* The following four fields are I/O statistics of a task. */
-       __u64   read_char;              /* bytes read */
-       __u64   write_char;             /* bytes written */
-       __u64   read_syscalls;          /* read syscalls */
-       __u64   write_syscalls;         /* write syscalls */
-       /* Extended accounting fields end */
+       __u64   read_char;              /* bytes read */
+       __u64   write_char;             /* bytes written */
+       __u64   read_syscalls;          /* read syscalls */
+       __u64   write_syscalls;         /* write syscalls */
+       /* Extended accounting fields end */
+
+#define TASKSTATS_HAS_IO_ACCOUNTING
+       /* Per-task storage I/O accounting starts */
+       __u64   read_bytes;             /* bytes of read I/O */
+       __u64   write_bytes;            /* bytes of write I/O */
+       __u64   cancelled_write_bytes;  /* bytes of cancelled write I/O */
 };