[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20060804081806.3c06d101.akpm@osdl.org>
Date: Fri, 4 Aug 2006 08:18:06 -0700
From: Andrew Morton <akpm@...l.org>
To: Arjan van de Ven <arjan@...radead.org>
Cc: hch@...radead.org, gregkh@...e.de, linux-kernel@...r.kernel.org,
stable@...nel.org, torvalds@...l.org, jmforbes@...uxtx.org,
zwane@....linux.org.uk, tytso@....edu, rdunlap@...otime.net,
davej@...hat.com, chuckw@...ntumlinux.com, reviews@...cw.f00f.org,
alan@...rguk.ukuu.org.uk, jes@...ined-monkey.org, jes@....com
Subject: Re: [patch 12/23] invalidate_bdev() speedup
On Fri, 04 Aug 2006 15:08:49 +0200
Arjan van de Ven <arjan@...radead.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@...radead.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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists