On 22.05.2019 15:49, Slawa Olhovchenkov wrote: > 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`?
Why? It should be the same from memory usage, but I see theoretical benefits from having linear buffer with one page rather then scatter list with one page. Plus ZoL also had there `size <= PAGESIZE`. -- Alexander Motin _______________________________________________ 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"