Message ID | 20220703102359.30f12e39@rorschach.local.home (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tracing/ipv4/ipv6: Give size to name field in fib*_lookup_table event | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On 7/3/22 8:23 AM, Steven Rostedt wrote: > From: "Steven Rostedt (Google)" <rostedt@goodmis.org> > > The fib_lookup_table and fib6_lookup_table events declare name as a > dynamic_array, but also give it a fixed size, which defeats the purpose of > the dynamic array, especially since the dynamic array also includes meta > data in the event to specify its size. > > Considering that the intent was to only reserve the size needed for the > name and not a fixed size, convert the size part of the __dynamic_array() > field to contain the necessary code to determine the size needed to save > the name. > > Alternatively, if the intent was to use a fixed size, then it should be > converted into __array() of type char, which will remove the meta data in > the event that stores the size. I would prefer this option over duplicating the all of the checks to save 14B.
On Sun, 3 Jul 2022 13:03:20 -0600 David Ahern <dsahern@gmail.com> wrote: > > Alternatively, if the intent was to use a fixed size, then it should be > > converted into __array() of type char, which will remove the meta data in > > the event that stores the size. > > I would prefer this option over duplicating the all of the checks to > save 14B. That's why I mentioned the alternative. To give you that option. I'll send a v2 later that uses the static array. -- Steve
diff --git a/include/trace/events/fib.h b/include/trace/events/fib.h index 6f2a4dc35e37..76f925f5519a 100644 --- a/include/trace/events/fib.h +++ b/include/trace/events/fib.h @@ -32,7 +32,7 @@ TRACE_EVENT(fib_table_lookup, __array( __u8, gw6, 16 ) __field( u16, sport ) __field( u16, dport ) - __dynamic_array(char, name, IFNAMSIZ ) + __dynamic_array(char, name, nhc && nhc->nhc_dev ? strlen(nhc->nhc_dev->name) + 1 : sizeof("-") ) ), TP_fast_assign( diff --git a/include/trace/events/fib6.h b/include/trace/events/fib6.h index c6abdcc77c12..d3aee58e58fd 100644 --- a/include/trace/events/fib6.h +++ b/include/trace/events/fib6.h @@ -31,7 +31,8 @@ TRACE_EVENT(fib6_table_lookup, __field( u16, dport ) __field( u8, proto ) __field( u8, rt_type ) - __dynamic_array( char, name, IFNAMSIZ ) + __dynamic_array( char, name, res->nh && res->nh->fib_nh_dev ? + strlen(res->nh->fib_nh_dev->name) + 1 : sizeof("-") ) __array( __u8, gw, 16 ) ),