On Wed, May 22, 2019 at 04:00:58PM -0400, Alexander Motin wrote: > 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`.
May be malloc() for page size more effictive? Not sure. Less overhead for kegs and etc. _______________________________________________ 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"