On Wed, 30 Apr 2025 13:02:31 +0200 Nam Cao <[email protected]> wrote:
> Page fault trace points are interesting for other architectures as well. > Move them to be generic. > > Signed-off-by: Nam Cao <[email protected]> > --- > Cc: Thomas Gleixner <[email protected]> > Cc: Ingo Molnar <[email protected]> > Cc: Borislav Petkov <[email protected]> > Cc: Dave Hansen <[email protected]> > Cc: [email protected] > Cc: "H. Peter Anvin" <[email protected]> > Cc: Andy Lutomirski <[email protected]> > Cc: Peter Zijlstra <[email protected]> > --- > arch/x86/mm/fault.c | 2 +- > .../asm/trace => include/trace/events}/exceptions.h | 13 ++++--------- > 2 files changed, 5 insertions(+), 10 deletions(-) > rename {arch/x86/include/asm/trace => include/trace/events}/exceptions.h > (79%) > > diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c > index 7e3e51fa1f95..ad4cb1502316 100644 > --- a/arch/x86/mm/fault.c > +++ b/arch/x86/mm/fault.c > @@ -38,7 +38,7 @@ > #include <asm/sev.h> /* snp_dump_hva_rmpentry() */ > > #define CREATE_TRACE_POINTS > -#include <asm/trace/exceptions.h> > +#include <trace/events/exceptions.h> Note, this requires also changing arch/x86/mm/Makefile: diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile index 32035d5be5a0..629a8bf12219 100644 --- a/arch/x86/mm/Makefile +++ b/arch/x86/mm/Makefile @@ -34,8 +34,6 @@ obj-y += pat/ CFLAGS_physaddr.o := -fno-stack-protector CFLAGS_mem_encrypt_identity.o := -fno-stack-protector -CFLAGS_fault.o := -I $(src)/../include/asm/trace - obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o As that CFLAGS_fault.o was needed to access the asm/trace/exceptions.h file. -- Steve > > /* > * Returns 0 if mmiotrace is disabled, or if the fault is not > diff --git a/arch/x86/include/asm/trace/exceptions.h > b/include/trace/events/exceptions.h > similarity index 79% > rename from arch/x86/include/asm/trace/exceptions.h > rename to include/trace/events/exceptions.h > index 34bc8214a2d7..a631f8de8917 100644 > --- a/arch/x86/include/asm/trace/exceptions.h > +++ b/include/trace/events/exceptions.h > @@ -7,7 +7,7 @@ > > #include <linux/tracepoint.h> > > -DECLARE_EVENT_CLASS(x86_exceptions, > +DECLARE_EVENT_CLASS(exceptions, > > TP_PROTO(unsigned long address, struct pt_regs *regs, > unsigned long error_code), > @@ -22,7 +22,7 @@ DECLARE_EVENT_CLASS(x86_exceptions, > > TP_fast_assign( > __entry->address = address; > - __entry->ip = regs->ip; > + __entry->ip = instruction_pointer(regs); > __entry->error_code = error_code; > ), > > @@ -30,18 +30,13 @@ DECLARE_EVENT_CLASS(x86_exceptions, > (void *)__entry->address, (void *)__entry->ip, > __entry->error_code) ); > > -DEFINE_EVENT(x86_exceptions, page_fault_user, > +DEFINE_EVENT(exceptions, page_fault_user, > TP_PROTO(unsigned long address, struct pt_regs *regs, unsigned long > error_code), > TP_ARGS(address, regs, error_code)); > - > -DEFINE_EVENT(x86_exceptions, page_fault_kernel, > +DEFINE_EVENT(exceptions, page_fault_kernel, > TP_PROTO(unsigned long address, struct pt_regs *regs, unsigned long > error_code), > TP_ARGS(address, regs, error_code)); > > -#undef TRACE_INCLUDE_PATH > -#undef TRACE_INCLUDE_FILE > -#define TRACE_INCLUDE_PATH . > -#define TRACE_INCLUDE_FILE exceptions > #endif /* _TRACE_PAGE_FAULT_H */ > > /* This part must be outside protection */
