lkml.org 
[lkml]   [2019]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v3 0/6] Static calls
    On Fri, Jan 11, 2019 at 11:03:30AM -0800, Linus Torvalds wrote:
    > The we'd change the end of poke_int3_handler() to do something like
    > this instead:
    >
    > void *newip = bp_int3_handler;
    > ..
    > if (new == magic_static_call_bp_int3_handler) {
    > if (regs->flags &X86_FLAGS_IF) {
    > newip = magic_static_call_bp_int3_handler_sti;
    > regs->flags &= ~X86_FLAGS_IF;
    > }
    > regs->ip = (unsigned long) newip;
    > return 1;
    >
    > AAND now we're *really* done.
    >
    > Does anybody see any issues in this?

    This sounds ok, with a possible tweak: instead of the sti tricks,
    couldn't we just use synchronize_rcu_tasks() (as Jason suggested), to
    make sure the stubs are no longer used by a preempted task?

    But really, to me, having to create and manage all those custom
    trampolines still feels a lot more complex than just making a gap on the
    stack.

    --
    Josh

    \
     
     \ /
      Last update: 2019-01-11 21:05    [W:2.084 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site