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
--nextPart1965031.UcmHp7AfKf Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="us-ascii" 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 > >=20 > > 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. > >=20 > > This is actually hitting two different issues from the two bugs: > >=20 > > - 191510 is about "ARC isn't greedy enough" on huge-memory machines= , > >=20 > > and from the osreldate that bug was filed on 9.2, so presumably i= s > > applicable. > >=20 > > - 187594 is about "ARC is too greedy" (probably mostly on not-so-hu= ge > >=20 > > machines) and starves/drives the rest of the system into swap. T= hat > > 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 r= est > > of the VM, so isn't a problem on 9.x. >=20 > 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_c= ount. =20 "cache" pages are free pages that just happen to have known contents. = If I=20 read this change right, zfs arc will now discard checksummed cache page= s to=20 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 th= at it=20 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=20 bug was fixed. It's been working fine under pretty abusive loads in th= e freebsd=20 cluster after that fix. (I should know better than to fire a reply off before full fact checkin= g, but=20 this commit worries me..) =2D-=20 Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI= 6FJV UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246 --nextPart1965031.UcmHp7AfKf Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----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----- --nextPart1965031.UcmHp7AfKf--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1617817.cOUOX4x8n2>