lkml.org 
[lkml]   [2013]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC] [PATCH 1/2 v2] x86: introduce int3-based instruction patching
    On 07/10/2013 02:48 PM, Borislav Petkov wrote:
    > On Wed, Jul 10, 2013 at 02:36:41PM -0700, H. Peter Anvin wrote:
    >> I'm wondering if it would be easier/more general to just return to the
    >> instruction. The "more general" bit would allow this to be used for
    >> other things, like alternatives, and perhaps eventually dynamic call
    >> patching.
    >
    > Well, the aspect of not using stop_machine in alternatives is a don't
    > care because there we do text_poke_early on the BSP anyway. However,
    > there we toggle interrupts so it would probably be interesting to see
    > whether a non-interrupt-disabling variant would be faster.
    >
    >> Returning to the instruction will, in effect, be a busy-wait for
    >> the faulted CPU until the patch is complete; more or less what
    >> stop_machine would do, but only for a CPU which actually strays into
    >> the affected region.
    >
    > Oh, something like we patch in a two-byte jump first:
    >
    > 1:
    > jmp 1b
    >
    > until we finish patching the rest? Ha, interesting :).
    >

    No, the idea is that the affected CPU will simply execute int3 -> iret
    ad nauseam until the first byte is repatched, at that point execution
    will resume normally.

    -hpa



    \
     
     \ /
      Last update: 2013-07-11 00:41    [W:2.441 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site