lkml.org 
[lkml]   [2015]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: live patching design (was: Re: [PATCH 1/3] sched: add sched_task_call())

    * Jiri Kosina <jkosina@suse.cz> wrote:

    > On Sat, 21 Feb 2015, Ingo Molnar wrote:
    >
    > > > Plus a lot of processes would see EINTR, causing more
    > > > havoc.
    > >
    > > Parking threads safely in user mode does not require
    > > the propagation of syscall interruption to user-space.
    >
    > BTW how exactly do you envision this will work? Do I
    > understand your proposal correctly that EINTR will be
    > "handled" somewhere in the "live patching special signal
    > handler" and then have the interrupted syscall restarted?

    If you want to think about it in signal handling terms then
    it's a new automatic in-kernel handler, which does not
    actually return back to user-mode at all.

    We can do it via the signals machinery (mainly to reuse all
    the existing signal_pending() code in various syscalls), or
    via new TIF flags like the user work machinery: the
    principle is the same: interrupt out of syscall functions
    into a central place and restart them, and return to
    user-space later on as if a single call had been performed.

    This necessarily means some changes to syscalls, but not
    insurmountable ones - and checkpoint/restore support would
    want to have similar changes in any case so we can hit two
    birds with the same stone.

    > Even without EINTR propagation to userspace, this would
    > make a lot of new syscall restarts that were not there
    > before, [...]

    That's only a problem if you do system call restarts by
    restarting them via user-space system call restart handler
    - I'm not proposing that.

    I'm suggesting a completely user-space transparent way to
    execute long lasting system calls in a smarter way. I.e. it
    would not be observable via strace either.

    Thanks,

    Ingo


    \
     
     \ /
      Last update: 2015-02-22 11:21    [W:3.662 / U:0.272 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site