X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-context-callstack.c;h=195990a6e3e1292bebce8277a7b3bdefbd0d5acb;hb=1e543e7c292839b931f808ad341c85f24a859d00;hp=3fccfcf270bf34e48053a5ab30b761d1dc5bffd6;hpb=b6ee48d2a69c34bf5dd44319cba19bedbbd35fca;p=lttng-modules.git diff --git a/lttng-context-callstack.c b/lttng-context-callstack.c index 3fccfcf2..195990a6 100644 --- a/lttng-context-callstack.c +++ b/lttng-context-callstack.c @@ -49,7 +49,11 @@ #include "wrapper/vmalloc.h" #include "lttng-tracer.h" +#ifdef CONFIG_ARCH_STACKWALK +#include "lttng-context-callstack-stackwalk-impl.h" +#else #include "lttng-context-callstack-legacy-impl.h" +#endif static void field_data_free(struct field_data *fdata) @@ -63,7 +67,6 @@ void field_data_free(struct field_data *fdata) static struct field_data __percpu *field_data_create(enum lttng_cs_ctx_modes mode) { - int cpu, i; struct lttng_cs __percpu *cs_set; struct field_data *fdata; @@ -73,20 +76,8 @@ struct field_data __percpu *field_data_create(enum lttng_cs_ctx_modes mode) cs_set = alloc_percpu(struct lttng_cs); if (!cs_set) goto error_alloc; - + lttng_cs_set_init(cs_set); fdata->cs_percpu = cs_set; - for_each_possible_cpu(cpu) { - struct lttng_cs *cs; - - cs = per_cpu_ptr(cs_set, cpu); - for (i = 0; i < RING_BUFFER_MAX_NESTING; i++) { - struct lttng_cs_dispatch *dispatch; - - dispatch = &cs->dispatch[i]; - dispatch->stack_trace.entries = dispatch->entries; - dispatch->stack_trace.max_entries = MAX_ENTRIES; - } - } fdata->mode = mode; return fdata; @@ -107,7 +98,7 @@ static int __lttng_add_callstack_generic(struct lttng_ctx **ctx, enum lttng_cs_ctx_modes mode) { - const char *ctx_name = cs_types[mode].name; + const char *ctx_name = lttng_cs_ctx_mode_name(mode); struct lttng_ctx_field *field; struct field_data *fdata; int ret;