Re: Fatal trap 12: page fault panic with recent kernel with ZFS

From: Ben Kelly <ben_at_wanderview.com>
Date: Mon, 18 May 2009 23:07:13 -0400
On May 18, 2009, at 10:45 PM, Kip Macy wrote:
> On Mon, May 18, 2009 at 7:34 PM, Ben Kelly <ben_at_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
Received on Tue May 19 2009 - 01:07:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:47 UTC