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 <marcandre.lureau@redhat.com>
--
Marc-André Lureau <marcandre.lureau@redhat.com>