Re: [PATCH] Linux Kernel Markers

Richard J Moore
2006-09-20T08:18:42Z

systemtap-owner@sourceware.org wrote on 20/09/2006 02:08:52:

> Hi Alan,
>
> On Wed, Sep 20, 2006 at 01:08:45AM +0100, Alan Cox wrote:
> > Ar Maw, 2006-09-19 am 13:54 -0400, ysgrifennodd Mathieu Desnoyers:
> > > Very good idea.. However, overwriting the second instruction
> with a jump could
> > > be dangerous on preemptible and SMP kernels, because we never
> know if a thread
> > > has an IP in any of its contexts that would return exactly at
> the middle of the
> > > jump.
> >
> > No: on x86 it is the *same* case for all of these even writing an int3.
> > One byte or a megabyte,
> >
> > You MUST ensure that every CPU executes a serializing instruction
before
> > it hits code that was modified by another processor. Otherwise you get
> > CPU errata and the CPU produces results which vendors like to describe
> > as "undefined".
>
> Are you referring to Intel erratum "unsynchronized cross-modifying code"
> - where it refers to the practice of modifying code on one processor
> where another has prefetched the unmodified version of the code.
>
> Thanks
> Prasanna

In the special case of replacing an opcode with int3 that erratum doesn't
apply. I know that's not in the manuals but it has been confirmed by the
Intel microarchitecture group. And it's not reasonable to it to be any
other way.

- -
Richard J Moore
IBM Advanced Linux Response Team - Linux Technology Centre
MOBEX: 264807; Mobile (+44) (0)7739-875237
Office: (+44) (0)1962-817072