This patch adds the map id to the bpf tracepoints
that can be used when monitoring or inspecting map
related functions.

Signed-off-by: Sebastiano Miano <[email protected]>
Suggested-by: Jesper Dangaard Brouer <[email protected]>
---
 include/trace/events/bpf.h |   29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/include/trace/events/bpf.h b/include/trace/events/bpf.h
index 1501856..d7c9726 100644
--- a/include/trace/events/bpf.h
+++ b/include/trace/events/bpf.h
@@ -130,6 +130,7 @@ TRACE_EVENT(bpf_map_create,
                __field(u32, max_entries)
                __field(u32, flags)
                __field(int, ufd)
+               __field(u32, id)
        ),
 
        TP_fast_assign(
@@ -139,9 +140,11 @@ TRACE_EVENT(bpf_map_create,
                __entry->max_entries = map->max_entries;
                __entry->flags       = map->map_flags;
                __entry->ufd         = ufd;
+               __entry->id          = map->id;
        ),
 
-       TP_printk("map type=%s ufd=%d key=%u val=%u max=%u flags=%x",
+       TP_printk("id=%u type=%s ufd=%d key=%u val=%u max=%u flags=%x",
+                 __entry->id,
                  __print_symbolic(__entry->type, __MAP_TYPE_SYM_TAB),
                  __entry->ufd, __entry->size_key, __entry->size_value,
                  __entry->max_entries, __entry->flags)
@@ -199,17 +202,20 @@ DECLARE_EVENT_CLASS(bpf_obj_map,
                __field(u32, type)
                __field(int, ufd)
                __string(path, pname->name)
+               __field(u32, id)
        ),
 
        TP_fast_assign(
                __assign_str(path, pname->name);
                __entry->type = map->map_type;
                __entry->ufd  = ufd;
+               __entry->id   = map->id;
        ),
 
-       TP_printk("map type=%s ufd=%d path=%s",
-                 __print_symbolic(__entry->type, __MAP_TYPE_SYM_TAB),
-                 __entry->ufd, __get_str(path))
+       TP_printk("map id=%u type=%s ufd=%d path=%s",
+               __entry->id,
+               __print_symbolic(__entry->type, __MAP_TYPE_SYM_TAB),
+               __entry->ufd, __get_str(path))
 );
 
 DEFINE_EVENT(bpf_obj_map, bpf_obj_pin_map,
@@ -244,6 +250,7 @@ DECLARE_EVENT_CLASS(bpf_map_keyval,
                __dynamic_array(u8, val, map->value_size)
                __field(bool, val_trunc)
                __field(int, ufd)
+               __field(u32, id)
        ),
 
        TP_fast_assign(
@@ -255,9 +262,11 @@ DECLARE_EVENT_CLASS(bpf_map_keyval,
                __entry->val_len   = min(map->value_size, 16U);
                __entry->val_trunc = map->value_size != __entry->val_len;
                __entry->ufd       = ufd;
+               __entry->id        = map->id;
        ),
 
-       TP_printk("map type=%s ufd=%d key=[%s%s] val=[%s%s]",
+       TP_printk("map id=%d type=%s ufd=%d key=[%s%s] val=[%s%s]",
+                 __entry->id,
                  __print_symbolic(__entry->type, __MAP_TYPE_SYM_TAB),
                  __entry->ufd,
                  __print_hex(__get_dynamic_array(key), __entry->key_len),
@@ -295,6 +304,7 @@ TRACE_EVENT(bpf_map_delete_elem,
                __dynamic_array(u8, key, map->key_size)
                __field(bool, key_trunc)
                __field(int, ufd)
+               __field(u32, id)
        ),
 
        TP_fast_assign(
@@ -303,9 +313,11 @@ TRACE_EVENT(bpf_map_delete_elem,
                __entry->key_len   = min(map->key_size, 16U);
                __entry->key_trunc = map->key_size != __entry->key_len;
                __entry->ufd       = ufd;
+               __entry->id        = map->id;
        ),
 
-       TP_printk("map type=%s ufd=%d key=[%s%s]",
+       TP_printk("map id=%d type=%s ufd=%d key=[%s%s]",
+                 __entry->id,
                  __print_symbolic(__entry->type, __MAP_TYPE_SYM_TAB),
                  __entry->ufd,
                  __print_hex(__get_dynamic_array(key), __entry->key_len),
@@ -327,6 +339,7 @@ TRACE_EVENT(bpf_map_next_key,
                __field(bool, key_trunc)
                __field(bool, key_null)
                __field(int, ufd)
+               __field(u32, id)
        ),
 
        TP_fast_assign(
@@ -338,9 +351,11 @@ TRACE_EVENT(bpf_map_next_key,
                __entry->key_len   = min(map->key_size, 16U);
                __entry->key_trunc = map->key_size != __entry->key_len;
                __entry->ufd       = ufd;
+               __entry->id        = map->id;
        ),
 
-       TP_printk("map type=%s ufd=%d key=[%s%s] next=[%s%s]",
+       TP_printk("map id=%d type=%s ufd=%d key=[%s%s] next=[%s%s]",
+                 __entry->id,
                  __print_symbolic(__entry->type, __MAP_TYPE_SYM_TAB),
                  __entry->ufd,
                  __entry->key_null ? "NULL" : 
__print_hex(__get_dynamic_array(key),

Reply via email to