On Fri, 16 May 2014 12:45:15 -0700 Dave Hansen <[email protected]> wrote: > > Steven had an alternative to this which has zero overhead when > tracing is off where this includes the standard noops even when > tracing is disabled. I'm unconvinced that the extra complexity > of his apporach: > > http://lkml.kernel.org/r/[email protected] > > is worth it, expecially considering that the KVM code is already > making page fault entry slower here. This solution is > dirt-simple.
I just threw it out there as a suggestion. I don't care either way. Acked-by: Steven Rostedt <[email protected]> You probably need an acked-by from hpa or one of the other x86 maintainers as it touches the generic traps.h header. -- Steve > > Gleb, please apply. > > Signed-off-by: Dave Hansen <[email protected]> > Cc: Thomas Gleixner <[email protected]> > Cc: [email protected] > Cc: Peter Zijlstra <[email protected]> > Cc: Gleb Natapov <[email protected]> > Cc: "H. Peter Anvin" <[email protected]> > Cc: [email protected] > Cc: Paolo Bonzini <[email protected]> > Cc: Steven Rostedt <[email protected]> > --- > > b/arch/x86/include/asm/traps.h | 5 +++++ > b/arch/x86/kernel/kvm.c | 2 +- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff -puN arch/x86/include/asm/traps.h~muck-with-kvm-guest-code > arch/x86/include/asm/traps.h > --- a/arch/x86/include/asm/traps.h~muck-with-kvm-guest-code 2014-05-16 > 12:29:23.900429347 -0700 > +++ b/arch/x86/include/asm/traps.h 2014-05-16 12:29:23.905429570 -0700 > @@ -74,6 +74,11 @@ dotraplinkage void do_general_protection > dotraplinkage void do_page_fault(struct pt_regs *, unsigned long); > #ifdef CONFIG_TRACING > dotraplinkage void trace_do_page_fault(struct pt_regs *, unsigned long); > +#else > +static inline void trace_do_page_fault(struct pt_regs *regs, unsigned long > error) > +{ > + do_page_fault(regs, error); > +} > #endif > dotraplinkage void do_spurious_interrupt_bug(struct pt_regs *, long); > dotraplinkage void do_coprocessor_error(struct pt_regs *, long); > diff -puN arch/x86/kernel/kvm.c~muck-with-kvm-guest-code arch/x86/kernel/kvm.c > --- a/arch/x86/kernel/kvm.c~muck-with-kvm-guest-code 2014-05-16 > 12:29:23.902429437 -0700 > +++ b/arch/x86/kernel/kvm.c 2014-05-16 12:29:23.906429615 -0700 > @@ -259,7 +259,7 @@ do_async_page_fault(struct pt_regs *regs > > switch (kvm_read_and_reset_pf_reason()) { > default: > - do_page_fault(regs, error_code); > + trace_do_page_fault(regs, error_code); > break; > case KVM_PV_REASON_PAGE_NOT_PRESENT: > /* page is swapped out by the host. */ > _ -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
