[RFC PATCH 0/4] kmemtrace RFC (resend 2)

From: Eduard - Gabriel Munteanu
Date: Tue Jul 22 2008 - 14:33:41 EST

Hi everyone,

I hopefully fixed all your previous objections. I have also set up a git tree
for anyone who'd like to try kmemtrace (gitweb URL):


Comment on the patchset and please try running kmemtrace if possible. Check
the docs for information on how to get the userspace tool and set it up.

Important: the kmemtrace-user repo went stable and I'll not alter the revision
history anymore. BTW, don't be scared if you see many errors being reported by
kmemtrace-report, this is a known issue (I could use some advice on this if
you know what's going on).

Changes since last submission:
1. fixed allocator tracing
2. wrote more documentation
3. reworked the ABI and documented it in Documentation/ABI; we don't include
kernel headers in userspace anymore
4. added support for disabling kmemtrace at boot-time
5. added provisions for disabling kmemtrace at runtime
6. changed slab allocators to use __always_inline instead of plain inline,
so that we're sure the return address is valid
7. removed some useless cast, as pointed out by Pekka Enberg

Since the changes were quite extensive, I chose not to preserve any tags such
as "Reviewed-by".

I'm waiting for your input on this.


P.S.: Pekka, I followed your advice on adding a field containing the struct
size (managed to make room for it without adding to the current struct size).
This allows us to do crazy stuff in the future, like exporting the whole
stack trace on every allocation. Not sure how useful this is right now, but
let's keep the ABI extensible.

Eduard - Gabriel Munteanu (4):
kmemtrace: Core implementation.
kmemtrace: SLAB hooks.
kmemtrace: SLUB hooks.
kmemtrace: SLOB hooks.

Documentation/ABI/testing/debugfs-kmemtrace | 58 +++++++
Documentation/kernel-parameters.txt | 10 +
Documentation/vm/kmemtrace.txt | 126 ++++++++++++++
include/linux/kmemtrace.h | 110 ++++++++++++
include/linux/slab_def.h | 68 +++++++-
include/linux/slob_def.h | 9 +-
include/linux/slub_def.h | 53 ++++++-
init/main.c | 2 +
lib/Kconfig.debug | 28 +++
mm/Makefile | 2 +-
mm/kmemtrace.c | 244 +++++++++++++++++++++++++++
mm/slab.c | 71 +++++++-
mm/slob.c | 37 ++++-
mm/slub.c | 66 +++++++-
15 files changed, 854 insertions(+), 36 deletions(-)
create mode 100644 Documentation/ABI/testing/debugfs-kmemtrace
create mode 100644 Documentation/vm/kmemtrace.txt
create mode 100644 include/linux/kmemtrace.h
create mode 100644 mm/kmemtrace.c

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/