samples/bpf: update tracex[23] examples to use per-cpu maps
Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
df570f5772
commit
3059303f59
@@ -20,11 +20,13 @@
|
||||
|
||||
static void clear_stats(int fd)
|
||||
{
|
||||
unsigned int nr_cpus = sysconf(_SC_NPROCESSORS_CONF);
|
||||
__u64 values[nr_cpus];
|
||||
__u32 key;
|
||||
__u64 value = 0;
|
||||
|
||||
memset(values, 0, sizeof(values));
|
||||
for (key = 0; key < SLOTS; key++)
|
||||
bpf_update_elem(fd, &key, &value, BPF_ANY);
|
||||
bpf_update_elem(fd, &key, values, BPF_ANY);
|
||||
}
|
||||
|
||||
const char *color[] = {
|
||||
@@ -75,15 +77,20 @@ static void print_banner(void)
|
||||
|
||||
static void print_hist(int fd)
|
||||
{
|
||||
__u32 key;
|
||||
__u64 value;
|
||||
__u64 cnt[SLOTS];
|
||||
__u64 max_cnt = 0;
|
||||
unsigned int nr_cpus = sysconf(_SC_NPROCESSORS_CONF);
|
||||
__u64 total_events = 0;
|
||||
long values[nr_cpus];
|
||||
__u64 max_cnt = 0;
|
||||
__u64 cnt[SLOTS];
|
||||
__u64 value;
|
||||
__u32 key;
|
||||
int i;
|
||||
|
||||
for (key = 0; key < SLOTS; key++) {
|
||||
bpf_lookup_elem(fd, &key, values);
|
||||
value = 0;
|
||||
bpf_lookup_elem(fd, &key, &value);
|
||||
for (i = 0; i < nr_cpus; i++)
|
||||
value += values[i];
|
||||
cnt[key] = value;
|
||||
total_events += value;
|
||||
if (value > max_cnt)
|
||||
|
Reference in New Issue
Block a user