if there are lots of tracepoints (and the union of _all_ useful tracepoints that i ever encountered in my life goes into the thousands) then the overhead is not zero at all.
also, the other disadvantages i listed very much count too. Static tracepoints are fundamentally limited because:
- they can only be added at the source code level
- modifying them requires a reboot which is not practical in a
production environment
- there can only be a limited set of them, while many problems need
finegrained tracepoints tailored to the problem at hand
- conditional tracepoints are typically either nonexistent or very
limited.
for me these are all _independent_ grounds for rejection, as a generic kernel infrastructure.