X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fmodprobe.cpp;h=90ed3ff14479b43a9dcdbf43ad5440358d311923;hb=64803277bbdbe0a943360d918298a48157d9da55;hp=fb2bcc8aad8147077f4e3d9a13bc377fae633b8f;hpb=f46376a14da2eb796690cb4e718e8b213839d6ea;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/modprobe.cpp b/src/bin/lttng-sessiond/modprobe.cpp index fb2bcc8aa..90ed3ff14 100644 --- a/src/bin/lttng-sessiond/modprobe.cpp +++ b/src/bin/lttng-sessiond/modprobe.cpp @@ -18,50 +18,59 @@ #include #include -#include -#include +#include +#include -#include "modprobe.h" -#include "kern-modules.h" -#include "lttng-sessiond.h" +#include "modprobe.hpp" +#include "kern-modules.hpp" +#include "lttng-sessiond.hpp" /* LTTng kernel tracer mandatory core modules list */ struct kern_modules_param kern_modules_control_core[] = { { .name = (char *) "lttng-ring-buffer-client-discard", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED, + .loaded = false, }, { .name = (char *) "lttng-ring-buffer-client-overwrite", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED, + .loaded = false, }, { .name = (char *) "lttng-ring-buffer-metadata-client", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED, + .loaded = false, }, { .name = (char *) "lttng-ring-buffer-client-mmap-discard", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED, + .loaded = false, }, { .name = (char *) "lttng-ring-buffer-client-mmap-overwrite", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED, + .loaded = false, }, { .name = (char *) "lttng-ring-buffer-metadata-mmap-client", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_REQUIRED, + .loaded = false, }, { .name = (char *) "lttng-ring-buffer-event_notifier-client", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-counter-client-percpu-64-modular", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-counter-client-percpu-32-modular", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, }; @@ -70,170 +79,212 @@ struct kern_modules_param kern_modules_probes_default[] = { { .name = (char *) "lttng-probe-asoc", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-block", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-btrfs", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-compaction", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-ext3", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-ext4", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-gpio", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-i2c", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-irq", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-jbd", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-jbd2", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-kmem", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-kvm", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-kvm-x86", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-kvm-x86-mmu", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-lock", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-module", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-napi", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-net", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-power", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-preemptirq", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-printk", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-random", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-rcu", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-regmap", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-regulator", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-rpm", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-sched", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-scsi", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-signal", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-skb", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-sock", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-statedump", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-sunrpc", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-timer", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-udp", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-vmscan", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-v4l2", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-workqueue", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-writeback", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-x86-irq-vectors", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, { .name = (char *) "lttng-probe-x86-exceptions", .load_policy = KERNEL_MODULE_PROPERTY_LOAD_POLICY_OPTIONAL, + .loaded = false, }, }; @@ -615,7 +666,7 @@ static int grow_probes(void) /* Initialize capacity to 1 if 0. */ if (probes_capacity == 0) { - probes = (kern_modules_param *) zmalloc(sizeof(*probes)); + probes = zmalloc(); if (!probes) { PERROR("malloc probe list"); return -ENOMEM; @@ -628,7 +679,7 @@ static int grow_probes(void) /* Double size. */ probes_capacity *= 2; - tmp_probes = (kern_modules_param *) zmalloc(sizeof(*tmp_probes) * probes_capacity); + tmp_probes = calloc(probes_capacity); if (!tmp_probes) { PERROR("malloc probe list"); return -ENOMEM; @@ -690,7 +741,7 @@ static int append_list_to_probes(const char *list) name_len = strlen(next) + 13; cur_mod = &probes[nr_probes]; - cur_mod->name = (char *) zmalloc(name_len); + cur_mod->name = calloc(name_len); if (!cur_mod->name) { PERROR("malloc probe list"); ret = -ENOMEM; @@ -741,7 +792,7 @@ int modprobe_lttng_data(void) /* Default probes. */ int def_len = ARRAY_SIZE(kern_modules_probes_default); - probes = (kern_modules_param *) zmalloc(sizeof(*probes) * def_len); + probes = calloc(def_len); if (!probes) { PERROR("malloc probe list"); return -ENOMEM;