Messages in this thread |  | | | Date | Tue, 14 Apr 2009 15:33:19 -0700 | | From | Jeremy Fitzhardinge <> | | Subject | Re: [PATCH 0/8] [GIT PULL] TRACE_EVENT for modules |
Steven Rostedt wrote: > On Tue, 14 Apr 2009, Jeremy Fitzhardinge wrote: > > >> Theodore Tso wrote: >> >>> Any chance you could support something like this? >>> >>> >>> >> I think that's already there. I'm defining >> arch/x86/include/asm/paravirt-trace.h with: >> >> #ifndef _ASM_X86_PARAVIRT_TRACE_H >> #define _ASM_X86_PARAVIRT_TRACE_H >> >> #include <linux/tracepoint.h> >> #include <asm/paravirt_types.h> >> >> #undef TRACE_SYSTEM >> #define TRACE_SYSTEM pvops >> >> #define TRACE_INCLUDE_FILE paravirt-trace >> #define TRACE_INCLUDE_PATH asm >> [...] >> >> >> Which ends up including <asm/paravirt-trace.h> >> > > Not quite. It ends up looking like > > #include "asm/paravirt-trace.h" > > As long as there is no "asm" directory in the include/trace directory, I > think that is fine.
OK.
I'm having a bit of trouble with paravirt-trace.h when I actually include it in paravirt.h. asm/paravirt.h is itself included in lots of places, and so its fairly easy to end up with cyclic include dependencies which are fairly painful. In this case I'm seeing asm/paravirt.h -> linux/tracepoint.h -> linux/rcupate.h -> {lots of stuff}, which gives errors like: CC arch/x86/kernel/asm-offsets.s In file included from /home/jeremy/git/linux/include/linux/thread_info.h:55, from /home/jeremy/git/linux/include/linux/preempt.h:9, from /home/jeremy/git/linux/include/linux/spinlock.h:50, from /home/jeremy/git/linux/include/linux/rcupdate.h:37, from /home/jeremy/git/linux/include/linux/tracepoint.h:18, from /home/jeremy/git/linux/arch/x86/include/asm/paravirt-trace.h:4, from /home/jeremy/git/linux/arch/x86/include/asm/paravirt.h:18, from /home/jeremy/git/linux/arch/x86/include/asm/irqflags.h:55, from /home/jeremy/git/linux/include/linux/irqflags.h:57, from /home/jeremy/git/linux/arch/x86/include/asm/system.h:11, from /home/jeremy/git/linux/arch/x86/include/asm/processor.h:17, from /home/jeremy/git/linux/include/linux/prefetch.h:14, from /home/jeremy/git/linux/include/linux/list.h:6, from /home/jeremy/git/linux/include/linux/module.h:9, from /home/jeremy/git/linux/include/linux/crypto.h:21, from /home/jeremy/git/linux/arch/x86/kernel/asm-offsets_64.c:7, from /home/jeremy/git/linux/arch/x86/kernel/asm-offsets.c:4: /home/jeremy/git/linux/arch/x86/include/asm/thread_info.h:34: error: expected specifier-qualifier-list before 'mm_segment_t'
I'm wondering if there's much downside in making the code __DO_TRACE() out of line so that we can make tracepoint.h have absolutely minimal include dependencies?
J
|  |