summaryrefslogtreecommitdiffstats
path: root/collectors/ebpf.plugin/ebpf_process.c
diff options
context:
space:
mode:
Diffstat (limited to 'collectors/ebpf.plugin/ebpf_process.c')
-rw-r--r--collectors/ebpf.plugin/ebpf_process.c31
1 files changed, 8 insertions, 23 deletions
diff --git a/collectors/ebpf.plugin/ebpf_process.c b/collectors/ebpf.plugin/ebpf_process.c
index 5fa930b2d..9b15c8407 100644
--- a/collectors/ebpf.plugin/ebpf_process.c
+++ b/collectors/ebpf.plugin/ebpf_process.c
@@ -18,6 +18,10 @@ static char *process_id_names[NETDATA_KEY_PUBLISH_PROCESS_END] = { "do_sys_open"
"release_task", "_do_fork", "sys_clone" };
static char *status[] = { "process", "zombie" };
+static ebpf_local_maps_t process_maps[] = {{.name = "tbl_pid_stats", .internal_input = ND_EBPF_DEFAULT_PID_SIZE,
+ .user_input = 0},
+ {.name = NULL, .internal_input = 0, .user_input = 0}};
+
static netdata_idx_t *process_hash_values = NULL;
static netdata_syscall_stat_t process_aggregated_data[NETDATA_KEY_PUBLISH_PROCESS_END];
static netdata_publish_syscall_t process_publish_aggregated[NETDATA_KEY_PUBLISH_PROCESS_END];
@@ -464,7 +468,7 @@ static void ebpf_process_update_apps_data()
* @param family the chart family
* @param name the chart name
* @param axis the axis label
- * @param web the group name used to attach the chart on dashaboard
+ * @param web the group name used to attach the chart on dashboard
* @param order the order number of the specified chart
* @param algorithm the algorithm used to make the charts.
*/
@@ -494,7 +498,7 @@ static void ebpf_create_io_chart(char *family, char *name, char *axis, char *web
* @param family the chart family
* @param name the chart name
* @param axis the axis label
- * @param web the group name used to attach the chart on dashaboard
+ * @param web the group name used to attach the chart on dashboard
* @param order the order number of the specified chart
*/
static void ebpf_process_status_chart(char *family, char *name, char *axis,
@@ -905,26 +909,6 @@ void clean_global_memory() {
}
}
-void clean_pid_on_target(struct pid_on_target *ptr) {
- while (ptr) {
- struct pid_on_target *next = ptr->next;
- freez(ptr);
-
- ptr = next;
- }
-}
-
-void clean_apps_structures(struct target *ptr) {
- struct target *agdt = ptr;
- while (agdt) {
- struct target *next = agdt->next;
- clean_pid_on_target(agdt->root_pid);
- freez(agdt);
-
- agdt = next;
- }
-}
-
/**
* Clean up the main thread.
*
@@ -949,7 +933,6 @@ static void ebpf_process_cleanup(void *ptr)
freez(global_process_stats);
freez(current_apps_data);
- clean_apps_structures(apps_groups_root_target);
freez(process_data.map_fd);
struct bpf_program *prog;
@@ -1050,6 +1033,7 @@ void *ebpf_process_thread(void *ptr)
netdata_thread_cleanup_push(ebpf_process_cleanup, ptr);
ebpf_module_t *em = (ebpf_module_t *)ptr;
+ em->maps = process_maps;
process_enabled = em->enabled;
fill_ebpf_data(&process_data);
@@ -1062,6 +1046,7 @@ void *ebpf_process_thread(void *ptr)
}
ebpf_update_module(em, &process_config, NETDATA_PROCESS_CONFIG_FILE);
+ ebpf_update_pid_table(&process_maps[0], em);
set_local_pointers();
probe_links = ebpf_load_program(ebpf_plugin_dir, em, kernel_string, &objects, process_data.map_fd);