Re: Spinlocks waiting with interrupts disabled / preempt disabled.

From: Peter Zijlstra
Date: Fri May 09 2008 - 14:07:04 EST


On Fri, 2008-05-09 at 11:00 -0700, Christoph Lameter wrote:
> On Fri, 9 May 2008, Peter Zijlstra wrote:
>
> > > A third solution would be to look at this problem on a case-by-case
> > > basis. In the case under discussion, there may be other kernel bugs
> > > that aggravate the problem (it is an old kernel after all) and maybe
> > > this just means the address_space.tree_lock ought to be replaced with
> > > something else (though I wouldn't claim to know what).
> >
> > That has been done by Nick Piggin, the lockless pagecache work removes
> > the read side of the tree_lock.
>
> When is that going to get merged? find_get_page is still:
>
> struct page * find_get_page(struct address_space *mapping, pgoff_t offset)
> {
> struct page *page;
>
> read_lock_irq(&mapping->tree_lock);
> page = radix_tree_lookup(&mapping->page_tree, offset);
> if (page)
> page_cache_get(page);
> read_unlock_irq(&mapping->tree_lock);
> return page;
> }
> EXPORT_SYMBOL(find_get_page);

Yeah, no idea when - although it looks like Nick has got another
speculative reference user lined up, which would greatly help its case.

Nick, can you post a series of patches against something recent that has
the latest lockless pagecache and all the fast_gup work in it, including
the power bits that use sepculative get?

We can then go over all this stuff and perhaps manage to trick Andrew
and Linus into taking it for .27.

Linus seemed interrested enough in the fast_gup bits.

And just in case someone forgot, the lockless pagecache has been in -rt
for a long long time - so far I've never seen issues with it.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/