X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttng-context.c;h=9f84172799c99f171f292ec00228a34393869fba;hb=317d755778c7d6f4a291db9fa6ba7a3cb19e4c02;hp=825eda5eb75acaeff3f7a0e0e81d1d0688faf160;hpb=b7cdc18250880cc44edeef4a4b42c8ac7a135a6d;p=lttng-modules.git diff --git a/lttng-context.c b/lttng-context.c index 825eda5e..9f841727 100644 --- a/lttng-context.c +++ b/lttng-context.c @@ -11,7 +11,6 @@ #include #include #include -#include /* for wrapper_vmalloc_sync_all() */ #include #include @@ -82,12 +81,13 @@ struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p) struct lttng_ctx_field *new_fields; ctx->allocated_fields = max_t(size_t, 1, 2 * ctx->allocated_fields); - new_fields = lttng_kvzalloc(ctx->allocated_fields * sizeof(struct lttng_ctx_field), GFP_KERNEL); + new_fields = kvzalloc_node(ctx->allocated_fields * sizeof(struct lttng_ctx_field), + GFP_KERNEL, NUMA_NO_NODE); if (!new_fields) return NULL; if (ctx->fields) memcpy(new_fields, ctx->fields, sizeof(*ctx->fields) * ctx->nr_fields); - lttng_kvfree(ctx->fields); + kvfree(ctx->fields); ctx->fields = new_fields; } field = &ctx->fields[ctx->nr_fields]; @@ -112,95 +112,65 @@ void lttng_context_update(struct lttng_ctx *ctx) type = &ctx->fields[i].event_field.type; switch (type->atype) { case atype_integer: - field_align = type->u.basic.integer.alignment; + field_align = type->u.integer.alignment; break; - case atype_array: - case atype_array_bitfield: + case atype_array_nestable: { - struct lttng_basic_type *btype; + const struct lttng_type *nested_type; - btype = &type->u.array.elem_type; - switch (btype->atype) { + nested_type = type->u.array_nestable.elem_type; + switch (nested_type->atype) { case atype_integer: - field_align = btype->u.basic.integer.alignment; + field_align = nested_type->u.integer.alignment; break; case atype_string: break; - case atype_array: - case atype_sequence: - case atype_array_bitfield: - case atype_sequence_bitfield: - case atype_struct: - case atype_array_compound: - case atype_sequence_compound: - case atype_variant: + case atype_array_nestable: + case atype_sequence_nestable: + case atype_struct_nestable: + case atype_variant_nestable: default: WARN_ON_ONCE(1); break; } + field_align = max_t(size_t, field_align, + type->u.array_nestable.alignment); break; } - case atype_sequence: - case atype_sequence_bitfield: + case atype_sequence_nestable: { - struct lttng_basic_type *btype; + const struct lttng_type *nested_type; - btype = &type->u.sequence.length_type; - switch (btype->atype) { + nested_type = type->u.sequence_nestable.elem_type; + switch (nested_type->atype) { case atype_integer: - field_align = btype->u.basic.integer.alignment; - break; - - case atype_string: - case atype_array: - case atype_sequence: - case atype_array_bitfield: - case atype_sequence_bitfield: - case atype_struct: - case atype_array_compound: - case atype_sequence_compound: - case atype_variant: - default: - WARN_ON_ONCE(1); - break; - } - - btype = &type->u.sequence.elem_type; - switch (btype->atype) { - case atype_integer: - field_align = max_t(size_t, - field_align, - btype->u.basic.integer.alignment); + field_align = nested_type->u.integer.alignment; break; case atype_string: break; - case atype_array: - case atype_sequence: - case atype_array_bitfield: - case atype_sequence_bitfield: - case atype_struct: - case atype_array_compound: - case atype_sequence_compound: - case atype_variant: + case atype_array_nestable: + case atype_sequence_nestable: + case atype_struct_nestable: + case atype_variant_nestable: default: WARN_ON_ONCE(1); break; } + field_align = max_t(size_t, field_align, + type->u.sequence_nestable.alignment); break; } case atype_string: break; - case atype_struct: - case atype_array_compound: - case atype_sequence_compound: - case atype_variant: + case atype_struct_nestable: + case atype_variant_nestable: break; - case atype_enum: + case atype_enum_nestable: default: WARN_ON_ONCE(1); break; @@ -235,7 +205,7 @@ void lttng_destroy_context(struct lttng_ctx *ctx) if (ctx->fields[i].destroy) ctx->fields[i].destroy(&ctx->fields[i]); } - lttng_kvfree(ctx->fields); + kvfree(ctx->fields); kfree(ctx); }