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-...@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org" _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"