libbpf-tools/syscount: use atomic_add for counter
authorWei Fu <fuweid89@gmail.com>
Sat, 4 Sep 2021 05:42:05 +0000 (13:42 +0800)
committeryonghong-song <ys114321@gmail.com>
Wed, 8 Sep 2021 19:31:50 +0000 (12:31 -0700)
Signed-off-by: Wei Fu <fuweid89@gmail.com>
libbpf-tools/syscount.bpf.c

index 3719177f6dc74c3fa8c1bb2cffc778002b240ace..d6909dcf49b7f29b9dc80f0a1758e902645df56c 100644 (file)
@@ -91,11 +91,11 @@ int sys_exit(struct trace_event_raw_sys_exit *args)
        key = (count_by_process) ? pid : args->id;
        val = bpf_map_lookup_or_try_init(&data, &key, &zero);
        if (val) {
-               val->count++;
+               __sync_fetch_and_add(&val->count, 1);
                if (count_by_process)
                        save_proc_name(val);
                if (measure_latency)
-                       val->total_ns += bpf_ktime_get_ns() - *start_ts;
+                       __sync_fetch_and_add(&val->total_ns, bpf_ktime_get_ns() - *start_ts);
        }
        return 0;
 }