]> git.baikalelectronics.ru Git - kernel.git/commit
netlink: add tracepoint at NL_SET_ERR_MSG
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Thu, 4 Feb 2021 01:48:16 +0000 (22:48 -0300)
committerJakub Kicinski <kuba@kernel.org>
Fri, 5 Feb 2021 02:05:59 +0000 (18:05 -0800)
commit89b59bea62a92396c5eec591585ea1e24df0d5ee
tree75378ed0ac8eec98aee1da3221abbfb160b2aa43
parenta110194772298a5a8d6d3ff6cefc1ac0d2f3d06c
netlink: add tracepoint at NL_SET_ERR_MSG

Often userspace won't request the extack information, or they don't log it
because of log level or so, and even when they do, sometimes it's not
enough to know exactly what caused the error.

Netlink extack is the standard way of reporting erros with descriptive
error messages. With a trace point on it, we then can know exactly where
the error happened, regardless of userspace app. Also, we can even see if
the err msg was overwritten.

The wrapper do_trace_netlink_extack() is because trace points shouldn't be
called from .h files, as trace points are not that small, and the function
call to do_trace_netlink_extack() on the macros is not protected by
tracepoint_enabled() because the macros are called from modules, and this
would require exporting some trace structs. As this is error path, it's
better to export just the wrapper instead.

v2: removed leftover tracepoint declaration

Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/4546b63e67b2989789d146498b13cc09e1fdc543.1612403190.git.marcelo.leitner@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/netlink.h
include/trace/events/netlink.h [new file with mode: 0644]
net/netlink/af_netlink.c