On Wed, Sep 04, 2019 at 05:45:24PM +0300, Slawa Olhovchenkov wrote: > On Tue, Sep 03, 2019 at 06:01:06PM -0400, Mark Johnston wrote: > > > Mostly problem I am see at this > > > work -- very slowly vm_page_free(). May be currenly this is more > > > speedy... > > > > How did you determine this? > > This is you guess:
So was the guess correct? If so, IMO the real solution is to avoid kmem_* for data buffers and use ABD instead. > ====== > > while ((slab = SLIST_FIRST(&freeslabs)) != NULL) { > > SLIST_REMOVE(&freeslabs, slab, uma_slab, us_hlink); > > keg_free_slab(keg, slab, keg->uk_ipers); > > } > > 2019 Feb 2 19:49:54.800524364 zio_data_buf_1048576 1032605 > > cache_reclaim limit 100 dom 0 nitems 1672 imin 298 > > 2019 Feb 2 19:49:54.800524364 zio_data_buf_1048576 1033736 > > cache_reclaim recla 149 dom 0 nitems 1672 imin 298 > > 2019 Feb 2 19:49:54.802524468 zio_data_buf_1048576 3119710 > > cache_reclaim limit 100 dom 1 nitems 1 imin 0 > > 2019 Feb 2 19:49:54.802524468 zio_data_buf_1048576 3127550 > > keg_drain2 > > 2019 Feb 2 19:49:54.803524487 zio_data_buf_1048576 4444219 > > keg_drain3 > > 2019 Feb 2 19:49:54.838524634 zio_data_buf_1048576 39553705 > > keg_drain4 > > 2019 Feb 2 19:49:54.838524634 zio_data_buf_1048576 39565323 > > zone_reclaim:return > > > > 35109.486 ms for last loop, 149 items to freed. > > 35ms to free 149MB (38144 4KB pages), so roughly 1us per page. That > does seem like a lot, but freeing a page (vm_page_free(m)) is much > more expensive than freeing an item to UMA (i.e., uma_zfree()). > Most of that time will be spent in _kmem_unback(). > ====== _______________________________________________ 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"