Hi, > This series started off with fixing some compile failures seen > with dtrace and ust backends, and got somewhat out of hand as > I looked more deeply at the trace code. So it ended up doing > various bits of code cleanup and memory usage optimizations. > > The optimizations aren't huge against each individual binaries. > There are too many scenarios to show the full set, but here > are some binary size examples > > The current git master baseline for different enabled > backends on the x86_64 emulator: > > nop 88546360 > dtrace 90604496 > ftrace 93265944 > log 93799528 > syslog 93962704 > simple 97064528 > ust 162999944 > dtrace,ftrace,log,syslog,simple,ust 174438088 > > 'ust' has insanely high overhead in terms of binary sizes, > inexplicably insane. > > 'ftrace/log/syslog' are all similar because their overhead > is dominated by the printf() format strings which are > identical in all. > > 'simple' is a bit worse because of the helper functions we > must generated for each probe > > After this series is applied the results for x86_64 are > > nop 88510248 > dtrace 90576160 > ftrace 93156320 > log 93735064 > syslog 93853480 > simple 97050856 > ust 162957256 > dtrace,ftrace,log,syslog,simple,ust 174431128 > > IOW, for 'dtrace', we save 28k, for 'log' we save 62k > > For the aarch64 binary, we see bigger saving in some > cases: > > baseline dtrace 127610144 > baseline log 131050320 > trace dtrace 127459264 > trace log 130998872 > > IOW, for 'dtrace' we save 150k, for 'log' we only save > 50k. No clue why the saving is not so significant for > the 'log' backend but not a big deal.
Need tracing.rst update, and maybe better commit message, but lgtm otherwise, series: Reviewed-by: Marc-André Lureau <[email protected]> -- Marc-André Lureau <[email protected]>
