Messages in this thread | | | Date | Thu, 1 May 2014 00:43:41 +0100 | From | Al Viro <> | Subject | Re: dcache shrink list corruption? |
| |
On Wed, Apr 30, 2014 at 04:14:14PM -0700, Linus Torvalds wrote: > On Wed, Apr 30, 2014 at 4:04 PM, Linus Torvalds > <torvalds@linux-foundation.org> wrote: > > > > Let me go talk to the paravirt people. Maybe they don't need this, and > > I don't know exactly *how* they use that lock pointer after the unlock > > in the "kick waiters" part. Maybe it's all good. > > .. looking at current users (xen and kvm) it does in fact look all > good. Yes, we "kick" possible waiters after the unlock, but the lock > itself is not touched by that, it just uses the pointer to the lock as > a way to figure out who to kick. > > In fact, I kind of knew that, but had forgotten. We very much depend > on spin_unlock being safe wrt immediate deleton already: the > "completion" code very much depends on it. It does a "spin_unlock()" > to release the completion, and it can get reused immediately (it might > be on the stack, it might be in some data structure that gets freed). > > So I'd suggest removing that whole RCU thing, because it should be > safe to unlock something that can go away immediately. We'd have huge > problems elsewhere if it wasn't safe.
OK, done and force-pushed. Should propagate in a few...
| |