Date: Thu, 28 Aug 2014 16:22:31 -0700 From: Peter Wemm <peter@wemm.org> To: Alan Cox <alc@rice.edu> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, Dmitry Morozovsky <marck@rinet.ru>, "Matthew D. Fuller" <fullermd@over-yonder.net>, svn-src-head@freebsd.org, Steven Hartland <smh@freebsd.org> Subject: Re: svn commit: r270759 - in head/sys: cddl/compat/opensolaris/kern cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs vm Message-ID: <1617817.cOUOX4x8n2@overcee.wemm.org> In-Reply-To: <53FFAD79.7070106@rice.edu> References: <201408281950.s7SJo90I047213@svn.freebsd.org> <20140828211508.GK46031@over-yonder.net> <53FFAD79.7070106@rice.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
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 - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV
UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBAABAgAGBQJT/7nAAAoJEDXWlwnsgJ4E1H0IALdKdhcW0/8GeJPI9pOzNXsz
ReoaRK+C0B84IFS0HVzieelli+m4D264Dpb8qPOAUWzc60rpodp/weKSLbz0WD8L
wuq3ONf7NjBg3zc3w2b9aj3UvyhNnyp4RZY/uWBNJHdwBNpiVP6BPnnp2y6hs3/l
5tVwfFZEnKNgBTDkfXdz/3dpc8+ORwRWcZfq7v4W33220p/oDWuteUaj3bNPa1SS
CG5Q6FBcjAuvSyRR7voKiJl+M/OpkT7kUBcfX9jNQ69WwVS+qxJbo6gV8N+654vU
2p8+yUXgkxlIOR6Se33W+zX6c0SfSwWq4vo39HlN9gtSnh+OKMZAi9kMqxIq9QY=
=0rPk
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1617817.cOUOX4x8n2>
