X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-statedump-impl.c;h=6d91a2c1d28dea1374a427b465e25d0567e294b8;hb=950ed24b44975b929576a926206a559c64b4867c;hp=ecec4f0bc42bb12f84ce5a9ac1fa33c62edbf3df;hpb=9f36eaed6f91d5897924b551b44d1edd8cee00e2;p=lttng-modules.git diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c index ecec4f0b..6d91a2c1 100644 --- a/lttng-statedump-impl.c +++ b/lttng-statedump-impl.c @@ -63,6 +63,9 @@ DEFINE_TRACE(lttng_statedump_file_descriptor); DEFINE_TRACE(lttng_statedump_start); DEFINE_TRACE(lttng_statedump_process_state); DEFINE_TRACE(lttng_statedump_network_interface); +#ifdef LTTNG_HAVE_STATEDUMP_CPU_TOPOLOGY +DEFINE_TRACE(lttng_statedump_cpu_topology); +#endif struct lttng_fd_ctx { char *page; @@ -279,6 +282,28 @@ int lttng_enumerate_file_descriptors(struct lttng_session *session) return 0; } +#ifdef LTTNG_HAVE_STATEDUMP_CPU_TOPOLOGY +static +int lttng_enumerate_cpu_topology(struct lttng_session *session) +{ + int cpu; + const cpumask_t *cpumask = cpu_possible_mask; + + for (cpu = cpumask_first(cpumask); cpu < nr_cpu_ids; + cpu = cpumask_next(cpu, cpumask)) { + trace_lttng_statedump_cpu_topology(session, &cpu_data(cpu)); + } + + return 0; +} +#else +static +int lttng_enumerate_cpu_topology(struct lttng_session *session) +{ + return 0; +} +#endif + #if 0 /* * FIXME: we cannot take a mmap_sem while in a RCU read-side critical section @@ -489,6 +514,9 @@ int do_lttng_statedump(struct lttng_session *session) default: return ret; } + ret = lttng_enumerate_cpu_topology(session); + if (ret) + return ret; /* TODO lttng_dump_idt_table(session); */ /* TODO lttng_dump_softirq_vec(session); */