Messages in this thread | | | Date | Thu, 24 Sep 2009 14:59:27 -0700 | From | Masami Hiramatsu <> | Subject | Re: [RFC patch] Immediate Values - x86 Optimization NMI and MCE support |
| |
Mathieu Desnoyers wrote: > [Ingo: this patch is for RFC only. Do not merge.] > > * Peter Zijlstra (peterz@infradead.org) wrote: >> On Thu, 2009-09-24 at 11:03 -0400, Mathieu Desnoyers wrote: >>> * Peter Zijlstra (peterz@infradead.org) wrote: >>>> On Thu, 2009-09-24 at 09:26 -0400, Mathieu Desnoyers wrote: >>>>> plain text document attachment (tracepoints-immediate-values.patch) >>>>> Use immediate values in tracepoints. >>>> >>>> I might have missed it, but did both the Intel and AMD cpu folks clear >>>> the SMP code rewrite bits? >>>> >>> >>> SMP handling is performed with stop_machine() in this patchset. Nothing >>> fancy here. >>> >>> I've got other patches, not included in this patchset, which implements >>> nmi-safe code modification, based on a scheme using breakpoints and >>> IPIs, inspired from djprobes. That one might be worth clearing with >>> intel/amd devs before merging. >>> >>> However, doing code patching within stop_machine() is pretty safe, given >>> all other CPUs are busy-looping with interrupts off while this happens. >>> Ftrace already does this. >> >> Agreed, I missed this relied on stopmachine. No problem then. >> >> It would be good to reduce reliance on stopmachine, so it would be good >> to get some CPU folks looking at your alternative implementation. >> >> Thanks! >> > > Sure, here is the patch applying on top of the immediate values > patchset. It implements the breakpoint-based instruction patching > scheme. I just provide this one for review. There is a following patch > which makes the immediate values infrastructure use this arch-specific > file, which I'll leave out for now.
Mathieu, could you check my previous patch? http://lkml.org/lkml/2009/9/14/551
I think we can share some code and ideas about generic XMC:-). But since it seems that the imv requires a dedicated method, I don't think we can share the code entirely. :-)
> +#include <asm/cacheflush.h> > + > +#define BREAKPOINT_INSTRUCTION 0xcc > +#define BREAKPOINT_INS_LEN 1 > +#define NR_NOPS 10
Why don't you reuse macros in asm/include/kprobes.h? :)
Thank you,
-- Masami Hiramatsu
Software Engineer Hitachi Computer Products (America), Inc. Software Solutions Division
e-mail: mhiramat@redhat.com
| |