Messages in this thread | | | Date | Sun, 17 Jan 2010 11:16:08 -0800 | From | Arjan van de Ven <> | Subject | Re: [RFC PATCH 2/8] jump label v4 - x86: Introduce generic jump patching without stop_machine |
| |
On Sun, 17 Jan 2010 13:55:39 -0500 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
> * H. Peter Anvin (hpa@zytor.com) wrote: > > On 01/14/2010 07:32 AM, Steven Rostedt wrote: > > >> + > > >> + /* Replacing 1 byte can be done atomically. */ > > >> + if (unlikely(len <= 1)) > > >> + return text_poke(addr, opcode, len); > > > > > > This part bothers me. The text_poke just writes over the text > > > directly (using a separate mapping). But if that memory is in the > > > pipeline of another CPU, I think this could cause a GPF. > > > > > > > Could you clarify why you think that? > > Basically, what Steven and I were concerned about in this particular > patch version is the fact that this code took a "shortcut" for > single-byte text modification, thus bypassing the int3-bypass scheme > altogether.
single byte instruction updates are likely 100x safer than any scheme of multi-byte instruction scheme that I have seen, other than a full stop_machine().
That does not mean it is safe, it just means it's an order of complexity less to analyze ;-)
-- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org
| |