Messages in this thread | | | Date | Fri, 4 Aug 2006 08:18:06 -0700 | From | Andrew Morton <> | Subject | Re: [patch 12/23] invalidate_bdev() speedup |
| |
On Fri, 04 Aug 2006 15:08:49 +0200 Arjan van de Ven <arjan@infradead.org> wrote:
> On Fri, 2006-08-04 at 02:04 -0700, Andrew Morton wrote: > > On Fri, 4 Aug 2006 09:50:13 +0100 > > Christoph Hellwig <hch@infradead.org> wrote: > > > > > On Thu, Aug 03, 2006 at 10:39:42PM -0700, Greg KH wrote: > > > > -stable review patch. If anyone has any objections, please let us know. > > > > > > This is a feature. Definitly not -stable material. > > > > Apparently that regular IPI storm is causing the SGI machines some > > significant problems. > > a tiny performance drop :) If that meets the stable policy.. open > question :)
The interrupt holdoff problem is one which is important to Altix users (for reasons which I've never understood). Apparently, quite important - this is I think the third time we've fixed problems in this area for Altix.
> > It's not the biggest problem we've ever had, but if this patch is wrong, > > the pagecache/buffer_head layer is utterly busted. And it isn't. > > > are you sure? > > + struct address_space *mapping = bdev->bd_inode->i_mapping; > + > + if (mapping->nrpages == 0) > + return; > + > invalidate_bh_lrus(); > > what happens if a bdev used to have pagecache and at some point stops > having that due to page reclaim... will that page reclaim call > invalidate_bh_lrus() ? If not, who will ? If the answer is "nobody", is > that really the right answer?
invalidate_bdev() calls invalidate_bh_lrus() to release any references which the bh lru has against the the bdev's pagecache, so that invalidate_inode_pages() can take down the bdev's pagecache.
If the bdev has no pagecache then there's no need to call invalidate_bh_lrus(). (or invalidate_inode_pages, or truncate_inode_pages, btw)
(In fact, even if the inode _does_ have pagecache, we still don't need to call invalidate_bh_lrus(): both invalidate_inodes_pages() and truncate_inode_pages() will still remove this page from the inode. The bh lru is left holding the last reference to the now-anonymous page, and this will later expire, finally freeing the page).
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |