Re: [PATCH] Linux Kernel Markers

Pavel Machek
2006-09-22T18:53:16Z

Hi!

> > > > 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.
>
> 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.

What about replacing int3 with old instruction (i.e. marker being
deleted)?
Pavel

--
Thanks for all the (sleeping) penguins.