One of the things I'm starting to work on is adding support for your kernel markers to systemtap. I know the marker stuff is still in a bit of flux because you are trying to meet the (sometimes conflicting) requirements of the people on lkml. One of the things systemtap is going to need is to be able to parse the '__markers' section so it will be able to look up a user-specified marker. For instance, if the user says 'probe kernel.mark("foo") {}', I've got to see if marker "foo" really exists. There are 2 problems with this currently, since systemtap is a user-land program: 1) include/linux/markers.h isn't currently installed by "make headers_install" 2) even if include/linux/markers.h was installed, it is completely surrounded by "#ifdef __KERNEL__" So, I've attached a patch that tries to fix those 2 problems. I've moved "#ifdef __KERNEL__" down a bit past the structure and flag definitions and included marker.h in Kbuild so it will get installed. I'd appreciate any comments you have. I'd like to get either this patch or something like it included in the next version you post to lkml. Signed-off-by: David Smith Signed-off-by: Mathieu Desnoyers --- include/linux/Kbuild | 1 + include/linux/marker.h | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) Index: linux-2.6-lttng/include/linux/marker.h =================================================================== --- linux-2.6-lttng.orig/include/linux/marker.h 2007-05-09 18:15:55.000000000 -0400 +++ linux-2.6-lttng/include/linux/marker.h 2007-05-09 21:44:47.000000000 -0400 @@ -14,8 +14,6 @@ * See the file COPYING for more details. */ -#ifdef __KERNEL__ - struct __mark_marker_data; typedef void marker_probe_func(const struct __mark_marker_data *mdata, @@ -35,8 +33,6 @@ void *enable; } __attribute__((packed)); -#ifdef CONFIG_MARKERS - /* Marker flags : selects the mechanism used to connect the probes to the * markers and what can be executed within the probes. This is primarily * used at reentrancy-unfriendly sites. */ @@ -45,6 +41,10 @@ #define MF_PRINTK (1 << 2) /* vprintk can be called in the probe */ #define _MF_NR 3 /* Number of marker flags */ +#ifdef __KERNEL__ + +#ifdef CONFIG_MARKERS + /* Generic marker flavor always available */ #define trace_mark_generic(flags, name, format, args...) \ do { \ Index: linux-2.6-lttng/include/linux/Kbuild =================================================================== --- linux-2.6-lttng.orig/include/linux/Kbuild 2007-05-09 21:41:55.000000000 -0400 +++ linux-2.6-lttng/include/linux/Kbuild 2007-05-09 21:46:07.000000000 -0400 @@ -254,6 +254,7 @@ unifdef-y += llc.h unifdef-y += loop.h unifdef-y += lp.h +unifdef-y += marker.h unifdef-y += mempolicy.h unifdef-y += mii.h unifdef-y += mman.h -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/