From: Oleg Nesterov <oleg@redhat.com>
To: Eric Wong <normalperson@yhbt.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Dave Jones <davej@redhat.com>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Al Viro <viro@zeniv.linux.org.uk>,
Davide Libenzi <davidel@xmailserver.org>,
Pekka Enberg <penberg@cs.helsinki.fi>,
Peter Hurley <peter@hurleysoftware.com>,
Eric Dumazet <edumazet@google.com>
Subject: Re: epoll oops.
Date: Thu, 17 Oct 2013 15:53:39 +0200 [thread overview]
Message-ID: <20131017135339.GA29182@redhat.com> (raw)
In-Reply-To: <20131016223922.GA18383@dcvr.yhbt.net>
On 10/16, Eric Wong wrote:
>
> Oleg Nesterov <oleg@redhat.com> wrote:
> > Yes. Before that 971316f0503a hack epoll can't even know if the task
> > which did signalfd_poll() exits and frees the active signalfd_wqh.
> > If for example that task forked a child before exit.
> >
> > And the whole RCU logic is only needed if exit/ep_remove_wait_queue
> > actually race with each other.
>
> Is there any chance this oops is caused by (or at least more easily
> exposed by) commit 91cf5ab60ff82ecf4550a596867787c1e360dd3f ?
> (epoll: add a reschedule point in ep_free())
>
> I thought 91cf5ab would be benign, except...
>
> > Yes, ugly, agreed. d80e731ecab4 even tries to docunent that this all
> > is the hack.
>
> .. the following sentence from d80e731ecab4 caught my eye:
>
> It also assumes that nobody can take tasklist_lock under epoll
> locks, this seems to be true.
This just reminds that with this patch __wake_up/ep_poll_callback can
be called under write_lock(tasklist).
> I haven't been able to trace if cond_resched() can take tasklist_lock.
No, it can't hold the non-sleepable rwlock_t. And the sentence above
doesn't mean the locks like epmutex, it is mostlt about ep->lock.
Oleg.
next prev parent reply other threads:[~2013-10-17 14:00 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-14 15:46 epoll oops Dave Jones
2013-10-14 17:31 ` Linus Torvalds
2013-10-14 19:17 ` Oleg Nesterov
2013-10-14 20:57 ` Linus Torvalds
2013-10-15 15:48 ` Oleg Nesterov
2013-10-15 19:28 ` Dave Jones
2013-10-16 22:39 ` Eric Wong
2013-10-17 13:53 ` Oleg Nesterov [this message]
2013-10-23 9:08 ` Pekka Enberg
2013-10-23 13:43 ` Peter Hurley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131017135339.GA29182@redhat.com \
--to=oleg@redhat.com \
--cc=davej@redhat.com \
--cc=davidel@xmailserver.org \
--cc=edumazet@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=normalperson@yhbt.net \
--cc=penberg@cs.helsinki.fi \
--cc=peter@hurleysoftware.com \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.