X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-context.c;h=406f479de92994217b2c1e5c480086752b173e27;hb=69dba5101ba45567167ee30c6236baa33d4ddd0d;hp=c2ce68d7557e5be924b4a6e901f036765b59e32b;hpb=f127e61ee231d002fb9a7803643a157e06f6d2e2;p=lttng-modules.git diff --git a/lttng-context.c b/lttng-context.c index c2ce68d7..406f479d 100644 --- a/lttng-context.c +++ b/lttng-context.c @@ -24,9 +24,9 @@ #include #include #include -#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ -#include "lttng-events.h" -#include "lttng-tracer.h" +#include /* for wrapper_vmalloc_sync_all() */ +#include +#include /* * The filter implementation requires that two consecutive "get" for the @@ -56,14 +56,20 @@ EXPORT_SYMBOL_GPL(lttng_find_context); int lttng_get_context_index(struct lttng_ctx *ctx, const char *name) { unsigned int i; + const char *subname; if (!ctx) return -1; + if (strncmp(name, "$ctx.", strlen("$ctx.")) == 0) { + subname = name + strlen("$ctx."); + } else { + subname = name; + } for (i = 0; i < ctx->nr_fields; i++) { /* Skip allocated (but non-initialized) contexts */ if (!ctx->fields[i].event_field.name) continue; - if (!strcmp(ctx->fields[i].event_field.name, name)) + if (!strcmp(ctx->fields[i].event_field.name, subname)) return i; } return -1; @@ -135,6 +141,10 @@ void lttng_context_update(struct lttng_ctx *ctx) case atype_array: case atype_sequence: + case atype_struct: + case atype_array_compound: + case atype_sequence_compound: + case atype_variant: default: WARN_ON_ONCE(1); break; @@ -154,6 +164,10 @@ void lttng_context_update(struct lttng_ctx *ctx) case atype_string: case atype_array: case atype_sequence: + case atype_struct: + case atype_array_compound: + case atype_sequence_compound: + case atype_variant: default: WARN_ON_ONCE(1); break; @@ -172,6 +186,10 @@ void lttng_context_update(struct lttng_ctx *ctx) case atype_array: case atype_sequence: + case atype_struct: + case atype_array_compound: + case atype_sequence_compound: + case atype_variant: default: WARN_ON_ONCE(1); break; @@ -181,6 +199,12 @@ void lttng_context_update(struct lttng_ctx *ctx) case atype_string: break; + case atype_struct: + case atype_array_compound: + case atype_sequence_compound: + case atype_variant: + break; + case atype_enum: default: WARN_ON_ONCE(1); @@ -226,43 +250,63 @@ int lttng_context_init(void) ret = lttng_add_hostname_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_hostname_to_ctx"); } ret = lttng_add_nice_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_nice_to_ctx"); } ret = lttng_add_pid_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_pthread_id_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_pid_to_ctx"); } ret = lttng_add_ppid_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_ppid_to_ctx"); } ret = lttng_add_prio_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_vpid_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_prio_to_ctx"); } ret = lttng_add_procname_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_vtid_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); } ret = lttng_add_tid_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_tid_to_ctx"); } ret = lttng_add_vppid_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_vppid_to_ctx"); } ret = lttng_add_vtid_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_vtid_to_ctx"); } ret = lttng_add_vpid_to_ctx(<tng_static_ctx); if (ret) { - printk(KERN_WARNING "Cannot add context lttng_add_procname_to_ctx"); + printk(KERN_WARNING "Cannot add context lttng_add_vpid_to_ctx"); + } + ret = lttng_add_cpu_id_to_ctx(<tng_static_ctx); + if (ret) { + printk(KERN_WARNING "Cannot add context lttng_add_cpu_id_to_ctx"); + } + ret = lttng_add_interruptible_to_ctx(<tng_static_ctx); + if (ret) { + printk(KERN_WARNING "Cannot add context lttng_add_interruptible_to_ctx"); + } + ret = lttng_add_need_reschedule_to_ctx(<tng_static_ctx); + if (ret) { + printk(KERN_WARNING "Cannot add context lttng_add_need_reschedule_to_ctx"); + } + ret = lttng_add_preemptible_to_ctx(<tng_static_ctx); + if (ret && ret != -ENOSYS) { + printk(KERN_WARNING "Cannot add context lttng_add_preemptible_to_ctx"); + } + ret = lttng_add_migratable_to_ctx(<tng_static_ctx); + if (ret && ret != -ENOSYS) { + printk(KERN_WARNING "Cannot add context lttng_add_migratable_to_ctx"); } /* TODO: perf counters for filtering */ return 0;