lkml.org 
[lkml]   [2014]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 3.14-rc2 XFS backtrace because irqs_disabled.
    On Wed, Feb 12, 2014 at 01:32:55PM -0800, Linus Torvalds wrote:
    > On Wed, Feb 12, 2014 at 1:14 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
    > >
    > > Umm... What if we delay __sigqueue_free()? After all, that's where the
    > > fat sucker normally comes from. That way we might get away with much
    > > smaller structure on stack...
    >
    > Sounds like the RightThing(tm) to do to me, and I don't see why it
    > wouldn't work.
    >
    > We'd have to teach each user of "dequeue_signal()" to free the siginfo
    > thing. Which shouldn't be too bad - I think we've collected all of
    > that into generic code, and there isn't the mass or architecture code
    > that knows about these things any more. But there are a few odd
    > drivers etc and signalfd. I didn't look at what the lifetimes were.

    Only signalfd, AFAICS. And there we'd want to use the same small structure -
    it's used in
    do {
    ret = signalfd_dequeue(ctx, &info, nonblock);
    if (unlikely(ret <= 0))
    break;
    ret = signalfd_copyinfo(siginfo, &info);
    if (ret < 0)
    break;
    siginfo++;
    total += ret;
    nonblock = 1;
    } while (--count);
    and using a smaller struct would actually speed the things up - skips one
    copying. sigqueue would be freed as soon as we'd done signalfd_copyinfo()
    (if not by signalfd_copyinfo() itself).

    I'll try to put something along those lines together, if you or Oleg don't
    do it first.


    \
     
     \ /
      Last update: 2014-02-12 23:21    [W:2.207 / U:1.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site