Date: Mon, 18 May 2009 23:07:13 -0400 From: Ben Kelly <ben@wanderview.com> To: Kip Macy <kmacy@freebsd.org> Cc: Adam McDougall <mcdouga9@egr.msu.edu>, current@freebsd.org, Larry Rosenman <ler@lerctr.org> Subject: Re: Fatal trap 12: page fault panic with recent kernel with ZFS Message-ID: <68B339AA-75CF-41FC-9E09-81D20D6F1FBA@wanderview.com> In-Reply-To: <3c1674c90905181945g179173b9rb064e8b37ba7148@mail.gmail.com> References: <20090518145614.GF82547@egr.msu.edu> <alpine.BSF.2.00.0905181031240.35767@thebighonker.lerctr.org> <alpine.BSF.2.00.0905181830490.1756@borg> <3c1674c90905181659g1d20f0f1w3f623966ae4440ec@mail.gmail.com> <alpine.BSF.2.00.0905181906001.2008@borg> <20090519012202.GR82547@egr.msu.edu> <3c1674c90905181826p787a346cie90429324444a9c4@mail.gmail.com> <1F20825F-BD11-40D1-9024-07F6E707DD08@wanderview.com> <3c1674c90905181945g179173b9rb064e8b37ba7148@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On May 18, 2009, at 10:45 PM, Kip Macy wrote: > On Mon, May 18, 2009 at 7:34 PM, Ben Kelly <ben@wanderview.com> wrote: >> On May 18, 2009, at 9:26 PM, Kip Macy wrote: >> On the low memory front it seems like the arc needs a way to tell >> the pager >> to mark some vnodes inactive. I've seen many cases where the arc >> size >> greatly exceeded the target, but it couldn't evict any memory >> because all >> its buffers were still referenced. This seems to behave a little >> better >> with code that increments vm_pageout_deficit and signals the >> pageout daemon >> when the arc is too far above its target. The normal buffer cache >> seems to >> do this as well when its low on memory. > > > Good point. Patches welcome. Otherwise I'll look in to it when I get > the chance. I do some of that in this patch: http://www.wanderview.com/svn/public/misc/zfs/zfs_kmem_limit.diff But I trigger it based on kmem thresholds. See arc_reclaim_pages(). I can try to put together a smaller patch tomorrow evening that signals the pager based on size vs. c target. The main reason I didn't implement it in my previous patch was because I was concerned with the arc being prevented from growing at all once its been shrunk. It only grows when size exceeds its current target by a certain amount. This may require some careful balancing or hysteresis or something. Thanks. - Ben
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?68B339AA-75CF-41FC-9E09-81D20D6F1FBA>