Date: Wed, 22 May 2019 22:49:14 +0300 From: Slawa Olhovchenkov <slw@zxy.spb.ru> To: Alexander Motin <mav@FreeBSD.org> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r348117 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs Message-ID: <20190522194914.GF47119@zxy.spb.ru> In-Reply-To: <201905221843.x4MIhmh1012837@repo.freebsd.org> References: <201905221843.x4MIhmh1012837@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, May 22, 2019 at 06:43:48PM +0000, Alexander Motin wrote: > Author: mav > Date: Wed May 22 18:43:48 2019 > New Revision: 348117 > URL: https://svnweb.freebsd.org/changeset/base/348117 > > Log: > Allocate buffers smaller then ABD chunk size as linear. > > This allows to reduce memory waste by letting UMA to put multiple small > buffers into one memory page slab. The page sharing means that UMA > may not be able to free memory page when some of buffers are freed, but > alternatively memory used by that buffer would just be wasted from the > beginning. > > This change follows alike change in ZoL, but unlike Linux (according to > my understanding of it from comments) FreeBSD never shares slabs bigger > then one memory page, so this should be even less invasive then there. > > MFC after: 2 weeks > Sponsored by: iXsystems, Inc. > > Modified: > head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/abd.c > > Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/abd.c > ============================================================================== > --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/abd.c Wed May 22 17:42:22 2019 (r348116) > +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/abd.c Wed May 22 18:43:48 2019 (r348117) > @@ -290,7 +290,7 @@ abd_free_struct(abd_t *abd) > abd_t * > abd_alloc(size_t size, boolean_t is_metadata) > { > - if (!zfs_abd_scatter_enabled) > + if (!zfs_abd_scatter_enabled || size <= zfs_abd_chunk_size) > return (abd_alloc_linear(size, is_metadata)); may be `size < zfs_abd_chunk_size`? > VERIFY3U(size, <=, SPA_MAXBLOCKSIZE); > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190522194914.GF47119>