[lkml]   [2011]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RESEND] [RFC][PATCH X86_32 1/2]: Call do_notify_resume() with interrupts enabled
    On 10/26, Russell King wrote:
    > I've been toying with a similar patch for ARM, but I keep feeling uneasy
    > about having interrupts enabled in this path (even though they get enabled
    > in the depths of the signal handling code.)
    > I worry about are race condition like the following:
    > syscall enter
    > ...
    > syscall returns -ERESTARTNOHAND
    > check for signal
    > signal pending, but no handler, setup for restart
    > interrupt happens, sets need_resched
    > need_resched set
    > switch to another thread
    > ...
    > something happens which queues SIGIO
    > switch back to this thread

    I don't understand how "interrupts disabled" can help... A signal
    can come without preempt_schedule().

    > check for signal
    > signal pending, has handler, but we've setup for a restart
    > return to userspace
    > run SIGIO handler
    > restart syscall
    > This feels like it violates the expectations of the syscall being
    > restarted - which explicitly asks to be restarted only if there wasn't
    > a handler run.

    But this doesn't differ from the case when this signal comes after
    the sycall was already restarted?

    > However, that doesn't solve the (probably unsolvable) case where an
    > ERESTARTSYS syscall is interrupted by a SA_RESTART-marked handler, and
    > while that handler is running it is then interrupted by a non-SA_RESTART-
    > marked handler. I think that is far too an obscure case to care about
    > though.

    If I understand correctly, this was already discussed:

    Re: HR timers prevent an itimer from generating EINTR?

    Unfortunately, doesn't show the authoritative reply from
    Roland, but he agreed with "not a problem".

    Or I misunderstood?


     \ /
      Last update: 2011-10-26 21:05    [W:0.029 / U:2.224 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site