]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r329759:
authormav <mav@FreeBSD.org>
Mon, 16 Apr 2018 03:38:37 +0000 (03:38 +0000)
committermav <mav@FreeBSD.org>
Mon, 16 Apr 2018 03:38:37 +0000 (03:38 +0000)
commitb35b4a9a9c1e9d045ea3e1686ae5506118aa2cb8
tree0b716b60b8f17bc296a65f11049ac9dabb56c6e3
parentdd705d8676b7508bc8c2f5e9e5c5319a698b4a3e
MFC r329759:
9018 Replace kmem_cache_reap_now() with kmem_cache_reap_soon()

illumos/illumos-gate@36a64e62848b51ac5a9a5216e894ec723cfef14e

To prevent kmem_cache reaping from blocking other system resources, turn
kmem_cache_reap_now() (which blocks) into kmem_cache_reap_soon(). Callers
to kmem_cache_reap_soon() should use kmem_cache_reap_active(), which
exploits #9017's new taskq_empty().

Reviewed by: Bryan Cantrill <bryan@joyent.com>
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>
Author: Tim Kordas <tim.kordas@joyent.com>

FreeBSD does not use taskqueue for kmem caches reaping, so this change
is less dramatic then it is on Illumos, just limiting reaping to 1 time
per second.  It may possibly be improved later, if needed.
cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c
sys/cddl/compat/opensolaris/sys/kmem.h
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c