diff options
author | Vivek Goyal <vgoyal@redhat.com> | 2009-12-03 12:59:49 -0500 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-12-03 13:28:52 -0500 |
commit | 220841906fccafaf4094e87bdb6d252e20cf8c7c (patch) | |
tree | f25b1f057887cf2a05bb8309e0b757149e052797 /block/blk-cgroup.h | |
parent | 2868ef7b39490e6b41c2c61cd9a5cd891e778b54 (diff) |
blkio: Export disk time and sectors used by a group to user space
o Export disk time and sector used by a group to user space through cgroup
interface.
o Also export a "dequeue" interface to cgroup which keeps track of how many
a times a group was deleted from service tree. Helps in debugging.
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-cgroup.h')
-rw-r--r-- | block/blk-cgroup.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h index 3573199b298b..b24ab71db826 100644 --- a/block/blk-cgroup.h +++ b/block/blk-cgroup.h | |||
@@ -30,7 +30,15 @@ struct blkio_group { | |||
30 | #ifdef CONFIG_DEBUG_BLK_CGROUP | 30 | #ifdef CONFIG_DEBUG_BLK_CGROUP |
31 | /* Store cgroup path */ | 31 | /* Store cgroup path */ |
32 | char path[128]; | 32 | char path[128]; |
33 | /* How many times this group has been removed from service tree */ | ||
34 | unsigned long dequeue; | ||
33 | #endif | 35 | #endif |
36 | /* The device MKDEV(major, minor), this group has been created for */ | ||
37 | dev_t dev; | ||
38 | |||
39 | /* total disk time and nr sectors dispatched by this group */ | ||
40 | unsigned long time; | ||
41 | unsigned long sectors; | ||
34 | }; | 42 | }; |
35 | 43 | ||
36 | #define BLKIO_WEIGHT_MIN 100 | 44 | #define BLKIO_WEIGHT_MIN 100 |
@@ -42,24 +50,30 @@ static inline char *blkg_path(struct blkio_group *blkg) | |||
42 | { | 50 | { |
43 | return blkg->path; | 51 | return blkg->path; |
44 | } | 52 | } |
53 | void blkiocg_update_blkio_group_dequeue_stats(struct blkio_group *blkg, | ||
54 | unsigned long dequeue); | ||
45 | #else | 55 | #else |
46 | static inline char *blkg_path(struct blkio_group *blkg) { return NULL; } | 56 | static inline char *blkg_path(struct blkio_group *blkg) { return NULL; } |
57 | static inline void blkiocg_update_blkio_group_dequeue_stats( | ||
58 | struct blkio_group *blkg, unsigned long dequeue) {} | ||
47 | #endif | 59 | #endif |
48 | 60 | ||
49 | #ifdef CONFIG_BLK_CGROUP | 61 | #ifdef CONFIG_BLK_CGROUP |
50 | extern struct blkio_cgroup blkio_root_cgroup; | 62 | extern struct blkio_cgroup blkio_root_cgroup; |
51 | extern struct blkio_cgroup *cgroup_to_blkio_cgroup(struct cgroup *cgroup); | 63 | extern struct blkio_cgroup *cgroup_to_blkio_cgroup(struct cgroup *cgroup); |
52 | extern void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, | 64 | extern void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, |
53 | struct blkio_group *blkg, void *key); | 65 | struct blkio_group *blkg, void *key, dev_t dev); |
54 | extern int blkiocg_del_blkio_group(struct blkio_group *blkg); | 66 | extern int blkiocg_del_blkio_group(struct blkio_group *blkg); |
55 | extern struct blkio_group *blkiocg_lookup_group(struct blkio_cgroup *blkcg, | 67 | extern struct blkio_group *blkiocg_lookup_group(struct blkio_cgroup *blkcg, |
56 | void *key); | 68 | void *key); |
69 | void blkiocg_update_blkio_group_stats(struct blkio_group *blkg, | ||
70 | unsigned long time, unsigned long sectors); | ||
57 | #else | 71 | #else |
58 | static inline struct blkio_cgroup * | 72 | static inline struct blkio_cgroup * |
59 | cgroup_to_blkio_cgroup(struct cgroup *cgroup) { return NULL; } | 73 | cgroup_to_blkio_cgroup(struct cgroup *cgroup) { return NULL; } |
60 | 74 | ||
61 | static inline void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, | 75 | static inline void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, |
62 | struct blkio_group *blkg, void *key) | 76 | struct blkio_group *blkg, void *key, dev_t dev) |
63 | { | 77 | { |
64 | } | 78 | } |
65 | 79 | ||
@@ -68,5 +82,9 @@ blkiocg_del_blkio_group(struct blkio_group *blkg) { return 0; } | |||
68 | 82 | ||
69 | static inline struct blkio_group * | 83 | static inline struct blkio_group * |
70 | blkiocg_lookup_group(struct blkio_cgroup *blkcg, void *key) { return NULL; } | 84 | blkiocg_lookup_group(struct blkio_cgroup *blkcg, void *key) { return NULL; } |
85 | static inline void blkiocg_update_blkio_group_stats(struct blkio_group *blkg, | ||
86 | unsigned long time, unsigned long sectors) | ||
87 | { | ||
88 | } | ||
71 | #endif | 89 | #endif |
72 | #endif /* _BLK_CGROUP_H */ | 90 | #endif /* _BLK_CGROUP_H */ |