| .. | .. |
|---|
| 59 | 59 | |
|---|
| 60 | 60 | TP_STRUCT__entry( |
|---|
| 61 | 61 | __field( int, root ) |
|---|
| 62 | | - __field( int, id ) |
|---|
| 63 | 62 | __field( int, level ) |
|---|
| 63 | + __field( u64, id ) |
|---|
| 64 | 64 | __string( path, path ) |
|---|
| 65 | 65 | ), |
|---|
| 66 | 66 | |
|---|
| 67 | 67 | TP_fast_assign( |
|---|
| 68 | 68 | __entry->root = cgrp->root->hierarchy_id; |
|---|
| 69 | | - __entry->id = cgrp->id; |
|---|
| 69 | + __entry->id = cgroup_id(cgrp); |
|---|
| 70 | 70 | __entry->level = cgrp->level; |
|---|
| 71 | 71 | __assign_str(path, path); |
|---|
| 72 | 72 | ), |
|---|
| 73 | 73 | |
|---|
| 74 | | - TP_printk("root=%d id=%d level=%d path=%s", |
|---|
| 74 | + TP_printk("root=%d id=%llu level=%d path=%s", |
|---|
| 75 | 75 | __entry->root, __entry->id, __entry->level, __get_str(path)) |
|---|
| 76 | 76 | ); |
|---|
| 77 | 77 | |
|---|
| .. | .. |
|---|
| 103 | 103 | TP_ARGS(cgrp, path) |
|---|
| 104 | 104 | ); |
|---|
| 105 | 105 | |
|---|
| 106 | +DEFINE_EVENT(cgroup, cgroup_freeze, |
|---|
| 107 | + |
|---|
| 108 | + TP_PROTO(struct cgroup *cgrp, const char *path), |
|---|
| 109 | + |
|---|
| 110 | + TP_ARGS(cgrp, path) |
|---|
| 111 | +); |
|---|
| 112 | + |
|---|
| 113 | +DEFINE_EVENT(cgroup, cgroup_unfreeze, |
|---|
| 114 | + |
|---|
| 115 | + TP_PROTO(struct cgroup *cgrp, const char *path), |
|---|
| 116 | + |
|---|
| 117 | + TP_ARGS(cgrp, path) |
|---|
| 118 | +); |
|---|
| 119 | + |
|---|
| 106 | 120 | DECLARE_EVENT_CLASS(cgroup_migrate, |
|---|
| 107 | 121 | |
|---|
| 108 | 122 | TP_PROTO(struct cgroup *dst_cgrp, const char *path, |
|---|
| .. | .. |
|---|
| 112 | 126 | |
|---|
| 113 | 127 | TP_STRUCT__entry( |
|---|
| 114 | 128 | __field( int, dst_root ) |
|---|
| 115 | | - __field( int, dst_id ) |
|---|
| 116 | 129 | __field( int, dst_level ) |
|---|
| 130 | + __field( u64, dst_id ) |
|---|
| 117 | 131 | __field( int, pid ) |
|---|
| 118 | 132 | __string( dst_path, path ) |
|---|
| 119 | 133 | __string( comm, task->comm ) |
|---|
| .. | .. |
|---|
| 121 | 135 | |
|---|
| 122 | 136 | TP_fast_assign( |
|---|
| 123 | 137 | __entry->dst_root = dst_cgrp->root->hierarchy_id; |
|---|
| 124 | | - __entry->dst_id = dst_cgrp->id; |
|---|
| 138 | + __entry->dst_id = cgroup_id(dst_cgrp); |
|---|
| 125 | 139 | __entry->dst_level = dst_cgrp->level; |
|---|
| 126 | 140 | __assign_str(dst_path, path); |
|---|
| 127 | 141 | __entry->pid = task->pid; |
|---|
| 128 | 142 | __assign_str(comm, task->comm); |
|---|
| 129 | 143 | ), |
|---|
| 130 | 144 | |
|---|
| 131 | | - TP_printk("dst_root=%d dst_id=%d dst_level=%d dst_path=%s pid=%d comm=%s", |
|---|
| 145 | + TP_printk("dst_root=%d dst_id=%llu dst_level=%d dst_path=%s pid=%d comm=%s", |
|---|
| 132 | 146 | __entry->dst_root, __entry->dst_id, __entry->dst_level, |
|---|
| 133 | 147 | __get_str(dst_path), __entry->pid, __get_str(comm)) |
|---|
| 134 | 148 | ); |
|---|
| .. | .. |
|---|
| 149 | 163 | TP_ARGS(dst_cgrp, path, task, threadgroup) |
|---|
| 150 | 164 | ); |
|---|
| 151 | 165 | |
|---|
| 166 | +DECLARE_EVENT_CLASS(cgroup_event, |
|---|
| 167 | + |
|---|
| 168 | + TP_PROTO(struct cgroup *cgrp, const char *path, int val), |
|---|
| 169 | + |
|---|
| 170 | + TP_ARGS(cgrp, path, val), |
|---|
| 171 | + |
|---|
| 172 | + TP_STRUCT__entry( |
|---|
| 173 | + __field( int, root ) |
|---|
| 174 | + __field( int, level ) |
|---|
| 175 | + __field( u64, id ) |
|---|
| 176 | + __string( path, path ) |
|---|
| 177 | + __field( int, val ) |
|---|
| 178 | + ), |
|---|
| 179 | + |
|---|
| 180 | + TP_fast_assign( |
|---|
| 181 | + __entry->root = cgrp->root->hierarchy_id; |
|---|
| 182 | + __entry->id = cgroup_id(cgrp); |
|---|
| 183 | + __entry->level = cgrp->level; |
|---|
| 184 | + __assign_str(path, path); |
|---|
| 185 | + __entry->val = val; |
|---|
| 186 | + ), |
|---|
| 187 | + |
|---|
| 188 | + TP_printk("root=%d id=%llu level=%d path=%s val=%d", |
|---|
| 189 | + __entry->root, __entry->id, __entry->level, __get_str(path), |
|---|
| 190 | + __entry->val) |
|---|
| 191 | +); |
|---|
| 192 | + |
|---|
| 193 | +DEFINE_EVENT(cgroup_event, cgroup_notify_populated, |
|---|
| 194 | + |
|---|
| 195 | + TP_PROTO(struct cgroup *cgrp, const char *path, int val), |
|---|
| 196 | + |
|---|
| 197 | + TP_ARGS(cgrp, path, val) |
|---|
| 198 | +); |
|---|
| 199 | + |
|---|
| 200 | +DEFINE_EVENT(cgroup_event, cgroup_notify_frozen, |
|---|
| 201 | + |
|---|
| 202 | + TP_PROTO(struct cgroup *cgrp, const char *path, int val), |
|---|
| 203 | + |
|---|
| 204 | + TP_ARGS(cgrp, path, val) |
|---|
| 205 | +); |
|---|
| 206 | + |
|---|
| 152 | 207 | #endif /* _TRACE_CGROUP_H */ |
|---|
| 153 | 208 | |
|---|
| 154 | 209 | /* This part must be outside protection */ |
|---|