From: Michael Jeanson Date: Tue, 19 Feb 2019 21:14:38 +0000 (-0500) Subject: Cleanup: statedump process state event pid namespace fields X-Git-Tag: v2.12.0-pre~21 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=d2a927acb6018b445a2b254b7aa11e63acb77858;p=lttng-modules.git Cleanup: statedump process state event pid namespace fields Now that we have namespace specific events in the statedump, remove the duplicated information in the process state event and make it a single event instead of recursing on the pid namespace hierarchy. Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- diff --git a/instrumentation/events/lttng-module/lttng-statedump.h b/instrumentation/events/lttng-module/lttng-statedump.h index 5ce94fa6..b65a1c25 100644 --- a/instrumentation/events/lttng-module/lttng-statedump.h +++ b/instrumentation/events/lttng-module/lttng-statedump.h @@ -40,14 +40,11 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_end, LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state, TP_PROTO(struct lttng_session *session, struct task_struct *p, - int type, int mode, int submode, int status, - struct pid_namespace *pid_ns), - TP_ARGS(session, p, type, mode, submode, status, pid_ns), + int type, int mode, int submode, int status), + TP_ARGS(session, p, type, mode, submode, status), TP_FIELDS( ctf_integer(pid_t, tid, p->pid) - ctf_integer(pid_t, vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0) ctf_integer(pid_t, pid, p->tgid) - ctf_integer(pid_t, vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0) ctf_integer(pid_t, ppid, ({ pid_t ret; @@ -57,28 +54,11 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_process_state, rcu_read_unlock(); ret; })) - ctf_integer(pid_t, vppid, - ({ - struct task_struct *parent; - pid_t ret = 0; - - if (pid_ns) { - rcu_read_lock(); - parent = rcu_dereference(p->real_parent); - ret = task_tgid_nr_ns(parent, pid_ns); - rcu_read_unlock(); - } - ret; - })) ctf_array_text(char, name, p->comm, TASK_COMM_LEN) ctf_integer(int, type, type) ctf_integer(int, mode, mode) ctf_integer(int, submode, submode) ctf_integer(int, status, status) - ctf_integer(int, ns_level, pid_ns ? pid_ns->level : 0) -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) - ctf_integer(unsigned int, ns_inum, pid_ns ? pid_ns->lttng_proc_inum : 0) -#endif ctf_integer(unsigned int, cpu, task_cpu(p)) ) ) diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c index a707c775..066b9612 100644 --- a/lttng-statedump-impl.c +++ b/lttng-statedump-impl.c @@ -425,8 +425,6 @@ void lttng_statedump_process_ns(struct lttng_session *session, */ pid_ns = task_active_pid_ns(p); do { - trace_lttng_statedump_process_state(session, - p, type, mode, submode, status, pid_ns); trace_lttng_statedump_process_pid_ns(session, p, pid_ns); pid_ns = pid_ns->parent; } while (pid_ns); @@ -523,6 +521,9 @@ int lttng_enumerate_process_states(struct lttng_session *session) type = LTTNG_USER_THREAD; else type = LTTNG_KERNEL_THREAD; + + trace_lttng_statedump_process_state(session, + p, type, mode, submode, status); lttng_statedump_process_ns(session, p, type, mode, submode, status); task_unlock(p);