On Mon, 1 Feb 2021 15:12:19 -0300 Marcelo Ricardo Leitner wrote: > 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. > > Signed-off-by: Marcelo Ricardo Leitner <marcelo.leit...@gmail.com>
Did you measure the allyesconfig bloat from this? How valuable is it to have the tracepoint in at the time it's set? IIRC extack is passed in to the callbacks from the netlink core, it's just not reported to user space if not requested. So we could capture the message in af_netlink.c, no?