On Thursday 28 August 2014 17:30:17 Alan Cox wrote:
> On 08/28/2014 16:15, Matthew D. Fuller wrote:
> > On Thu, Aug 28, 2014 at 10:11:39PM +0100 I heard the voice of
> > 
> > Steven Hartland, and lo! it spake thus:
> >> Its very likely applicable to stable/9 although I've never used 9
> >> myself, we jumped from 9 direct to 10.
> > 
> > This is actually hitting two different issues from the two bugs:
> > 
> > - 191510 is about "ARC isn't greedy enough" on huge-memory machines,
> > 
> >   and from the osreldate that bug was filed on 9.2, so presumably is
> >   applicable.
> > 
> > - 187594 is about "ARC is too greedy" (probably mostly on not-so-huge
> > 
> >   machines) and starves/drives the rest of the system into swap.  That
> >   I believe came about as a result of some unrelated change in the
> >   10.x stream that upset the previous balance between ARC and the rest
> >   of the VM, so isn't a problem on 9.x.
> 
> 10.0 had a bug in the page daemon that was fixed in 10-STABLE about
> three months ago (r265945).  The ARC was not the only thing affected by
> this bug.

I'm concerned about potential unintended consequences of this change.

Before, arc reclaim was driven by vm_paging_needed(), which was:
vm_paging_needed(void)
{
    return (vm_cnt.v_free_count + vm_cnt.v_cache_count <
        vm_pageout_wakeup_thresh);
}
Now it's ignoring the v_cache_count and looking exclusively at v_free_count.  
"cache" pages are free pages that just happen to have known contents.  If I 
read this change right, zfs arc will now discard checksummed cache pages to 
make room for non-checksummed pages:

+       if (kmem_free_count() < zfs_arc_free_target) {
+               return (1);
+       }
...
+kmem_free_count(void)
+{
+       return (vm_cnt.v_free_count);
+}

This seems like a pretty substantial behavior change.  I'm concerned that it 
doesn't appear to count all the forms of "free" pages.

I haven't seen the problems with the over-aggressive ARC since the page daemon 
bug was fixed.  It's been working fine under pretty abusive loads in the 
freebsd 
cluster after that fix.

(I should know better than to fire a reply off before full fact checking, but 
this commit worries me..)

-- 
Peter Wemm - pe...@wemm.org; pe...@freebsd.org; pe...@yahoo-inc.com; KI6FJV
UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to