By Jonathan Corbet
May 5, 2010
Support for tracing in the Linux kernel has made great strides over the
last couple of years. One of the key features of a mature tracing system,
though, is a long list of well-defined, well-documented tracepoints which
allow a system administrator to hook into kernel events without
understanding the kernel code itself. The kernel has slowly been gaining
those tracepoints, but, as Steven Rostedt has
pointed out, there is a problem:
each tracepoint adds something between 1KB and 5KB to the size of the
kernel. When one starts to think about adding hundreds (or more)
tracepoints, that overhead starts to add up.
Steven, of course, is as good a person as any to blame for this problem, so
he has set out to fix it. His nine-part patch moves some information to
shared locations and eliminates unneeded stuff; the result was a 100KB size
reduction in the size of his kernel. Needless to say, this seems like a
savings worth having; it makes it that much more likely that tracepoints
will actually be enabled in production kernels.
Of course, most of us will have to take Steven's word for it that the
patches make sense; they are written in that special dialect of C
preprocessor macros that mere kernel hackers fear to touch. So most of us
are likely to take the memory savings, but won't look too closely at how
they are achieved.
(
Log in to post comments)