HomeFreeBSD

uma: Use a taskqueue to execute uma_timeout()

Description

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)

Details

Provenance
markjAuthored on Jul 11 2022, 7:45 PM
Parents
rGd0ab875c5f66: nfscl: Add a cred argument to nfscl_reqstart()
Branches
Unknown
Tags
Unknown