brintos

brintos / linux-shallow public Read only

0
0
Text · 6.3 KiB · af2755b Raw
303 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#undef TRACE_SYSTEM3#define TRACE_SYSTEM cgroup4 5#if !defined(_TRACE_CGROUP_H) || defined(TRACE_HEADER_MULTI_READ)6#define _TRACE_CGROUP_H7 8#include <linux/cgroup.h>9#include <linux/tracepoint.h>10 11DECLARE_EVENT_CLASS(cgroup_root,12 13	TP_PROTO(struct cgroup_root *root),14 15	TP_ARGS(root),16 17	TP_STRUCT__entry(18		__field(	int,		root			)19		__field(	u16,		ss_mask			)20		__string(	name,		root->name		)21	),22 23	TP_fast_assign(24		__entry->root = root->hierarchy_id;25		__entry->ss_mask = root->subsys_mask;26		__assign_str(name);27	),28 29	TP_printk("root=%d ss_mask=%#x name=%s",30		  __entry->root, __entry->ss_mask, __get_str(name))31);32 33DEFINE_EVENT(cgroup_root, cgroup_setup_root,34 35	TP_PROTO(struct cgroup_root *root),36 37	TP_ARGS(root)38);39 40DEFINE_EVENT(cgroup_root, cgroup_destroy_root,41 42	TP_PROTO(struct cgroup_root *root),43 44	TP_ARGS(root)45);46 47DEFINE_EVENT(cgroup_root, cgroup_remount,48 49	TP_PROTO(struct cgroup_root *root),50 51	TP_ARGS(root)52);53 54DECLARE_EVENT_CLASS(cgroup,55 56	TP_PROTO(struct cgroup *cgrp, const char *path),57 58	TP_ARGS(cgrp, path),59 60	TP_STRUCT__entry(61		__field(	int,		root			)62		__field(	int,		level			)63		__field(	u64,		id			)64		__string(	path,		path			)65	),66 67	TP_fast_assign(68		__entry->root = cgrp->root->hierarchy_id;69		__entry->id = cgroup_id(cgrp);70		__entry->level = cgrp->level;71		__assign_str(path);72	),73 74	TP_printk("root=%d id=%llu level=%d path=%s",75		  __entry->root, __entry->id, __entry->level, __get_str(path))76);77 78DEFINE_EVENT(cgroup, cgroup_mkdir,79 80	TP_PROTO(struct cgroup *cgrp, const char *path),81 82	TP_ARGS(cgrp, path)83);84 85DEFINE_EVENT(cgroup, cgroup_rmdir,86 87	TP_PROTO(struct cgroup *cgrp, const char *path),88 89	TP_ARGS(cgrp, path)90);91 92DEFINE_EVENT(cgroup, cgroup_release,93 94	TP_PROTO(struct cgroup *cgrp, const char *path),95 96	TP_ARGS(cgrp, path)97);98 99DEFINE_EVENT(cgroup, cgroup_rename,100 101	TP_PROTO(struct cgroup *cgrp, const char *path),102 103	TP_ARGS(cgrp, path)104);105 106DEFINE_EVENT(cgroup, cgroup_freeze,107 108	TP_PROTO(struct cgroup *cgrp, const char *path),109 110	TP_ARGS(cgrp, path)111);112 113DEFINE_EVENT(cgroup, cgroup_unfreeze,114 115	TP_PROTO(struct cgroup *cgrp, const char *path),116 117	TP_ARGS(cgrp, path)118);119 120DECLARE_EVENT_CLASS(cgroup_migrate,121 122	TP_PROTO(struct cgroup *dst_cgrp, const char *path,123		 struct task_struct *task, bool threadgroup),124 125	TP_ARGS(dst_cgrp, path, task, threadgroup),126 127	TP_STRUCT__entry(128		__field(	int,		dst_root		)129		__field(	int,		dst_level		)130		__field(	u64,		dst_id			)131		__field(	int,		pid			)132		__string(	dst_path,	path			)133		__string(	comm,		task->comm		)134	),135 136	TP_fast_assign(137		__entry->dst_root = dst_cgrp->root->hierarchy_id;138		__entry->dst_id = cgroup_id(dst_cgrp);139		__entry->dst_level = dst_cgrp->level;140		__assign_str(dst_path);141		__entry->pid = task->pid;142		__assign_str(comm);143	),144 145	TP_printk("dst_root=%d dst_id=%llu dst_level=%d dst_path=%s pid=%d comm=%s",146		  __entry->dst_root, __entry->dst_id, __entry->dst_level,147		  __get_str(dst_path), __entry->pid, __get_str(comm))148);149 150DEFINE_EVENT(cgroup_migrate, cgroup_attach_task,151 152	TP_PROTO(struct cgroup *dst_cgrp, const char *path,153		 struct task_struct *task, bool threadgroup),154 155	TP_ARGS(dst_cgrp, path, task, threadgroup)156);157 158DEFINE_EVENT(cgroup_migrate, cgroup_transfer_tasks,159 160	TP_PROTO(struct cgroup *dst_cgrp, const char *path,161		 struct task_struct *task, bool threadgroup),162 163	TP_ARGS(dst_cgrp, path, task, threadgroup)164);165 166DECLARE_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);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 193DEFINE_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 200DEFINE_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 207DECLARE_EVENT_CLASS(cgroup_rstat,208 209	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),210 211	TP_ARGS(cgrp, cpu, contended),212 213	TP_STRUCT__entry(214		__field(	int,		root			)215		__field(	int,		level			)216		__field(	u64,		id			)217		__field(	int,		cpu			)218		__field(	bool,		contended		)219	),220 221	TP_fast_assign(222		__entry->root = cgrp->root->hierarchy_id;223		__entry->id = cgroup_id(cgrp);224		__entry->level = cgrp->level;225		__entry->cpu = cpu;226		__entry->contended = contended;227	),228 229	TP_printk("root=%d id=%llu level=%d cpu=%d lock contended:%d",230		  __entry->root, __entry->id, __entry->level,231		  __entry->cpu, __entry->contended)232);233 234/* Related to global: cgroup_rstat_lock */235DEFINE_EVENT(cgroup_rstat, cgroup_rstat_lock_contended,236 237	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),238 239	TP_ARGS(cgrp, cpu, contended)240);241 242DEFINE_EVENT(cgroup_rstat, cgroup_rstat_locked,243 244	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),245 246	TP_ARGS(cgrp, cpu, contended)247);248 249DEFINE_EVENT(cgroup_rstat, cgroup_rstat_unlock,250 251	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),252 253	TP_ARGS(cgrp, cpu, contended)254);255 256/* Related to per CPU: cgroup_rstat_cpu_lock */257DEFINE_EVENT(cgroup_rstat, cgroup_rstat_cpu_lock_contended,258 259	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),260 261	TP_ARGS(cgrp, cpu, contended)262);263 264DEFINE_EVENT(cgroup_rstat, cgroup_rstat_cpu_lock_contended_fastpath,265 266	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),267 268	TP_ARGS(cgrp, cpu, contended)269);270 271DEFINE_EVENT(cgroup_rstat, cgroup_rstat_cpu_locked,272 273	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),274 275	TP_ARGS(cgrp, cpu, contended)276);277 278DEFINE_EVENT(cgroup_rstat, cgroup_rstat_cpu_locked_fastpath,279 280	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),281 282	TP_ARGS(cgrp, cpu, contended)283);284 285DEFINE_EVENT(cgroup_rstat, cgroup_rstat_cpu_unlock,286 287	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),288 289	TP_ARGS(cgrp, cpu, contended)290);291 292DEFINE_EVENT(cgroup_rstat, cgroup_rstat_cpu_unlock_fastpath,293 294	TP_PROTO(struct cgroup *cgrp, int cpu, bool contended),295 296	TP_ARGS(cgrp, cpu, contended)297);298 299#endif /* _TRACE_CGROUP_H */300 301/* This part must be outside protection */302#include <trace/define_trace.h>303