]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
uma: Use a taskqueue to execute uma_timeout()
authorMark Johnston <markj@FreeBSD.org>
Mon, 11 Jul 2022 19:45:36 +0000 (15:45 -0400)
committerMark Johnston <markj@FreeBSD.org>
Mon, 25 Jul 2022 13:43:44 +0000 (09:43 -0400)
commitadc4dcada3d7a975bb7d1745c2664a85d1b06da2
treeca46457a446b51af6858fb0da0e838cc483de554
parentd0ab875c5f663d0beaa262bf3349d4d2238f505a
uma: Use a taskqueue to execute uma_timeout()

uma_timeout() has several responsibilities; it visits every UMA zone and
as of recently will drain underutilized caches, so is rather expensive
(>1ms in some cases).  Currently it is executed by softclock threads
and so will preempt most other CPU activity.  None of this work requires
a high scheduling priority, though, so defer it to a taskqueue so as to
avoid stalling higher-priority work.

Reviewed by: rlibby, alc, mav, kib
Sponsored by: The FreeBSD Foundation

(cherry picked from commit 93cd28ea82bb7b5e9489c8febfe1ae7ed2c044fb)
sys/vm/uma_core.c