OpenAFS Master Repository branch, master, updated. openafs-devel-1_9_2-477-gb76879e
Gerrit Code Review
gerrit@openafs.org
Tue, 19 May 2026 16:31:37 -0400
The following commit has been merged in the master branch:
commit b76879ead976b837a0d24e38828d5909776c0db8
Author: Mark Vitale <mvitale@sinenomine.net>
Date: Tue Apr 28 19:16:08 2026 -0400
rx: Do not enforce busy threshold for non-busy services
Since OpenAFS 1.0, the Rx incoming queue has been a global resource
shared by all the host server's Rx services. The busy threshold has
also been enforced globally for all incoming RPCs, regardless of
Rx service.
Currently the busy threshold is implemented only for fileservers
(-busyat <busythresh>). Therefore, if a fileserver is running more than
one service (e.g. RXAFS_* and RXSTATS_*), busy threshold enforcement
caused by one service's request load will cause all other services'
requests to be aborted as well, even if there are available ("reserved")
service threads that could handle them. This could cause loss of
performance instrumentation (RXSTATS_*) precisely when it is most needed
(heavy RXAFS_* load).
Modify the busy threshold enforcement logic to exempt RPCs for any
service that still has available service threads.
For RX_ENABLE_LOCKS, introduce a new variant of QuotaOK() named
QuotaOK_noreserve(). This variant does not reserve quota (as the
original QuotaOK() does); therefore we can use it to query the state
without needing to release the unused quota.
For non-RX_ENABLE_LOCKS, since QuotaOK() does NOT reserve quota, just
implement QuotaOK_noreserve() as a call to QuotaOK().
While here, document functions whose callers must hold rx_serverPool_lock.
Change-Id: I8e9fc05c5fd648033000d1aca8d17fc813019833
Reviewed-on: https://gerrit.openafs.org/16788
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>
Reviewed-by: Marcio Brito Barbosa <mbarbosa@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/rx/rx.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++--------------
1 file changed, 84 insertions(+), 26 deletions(-)
--
OpenAFS Master Repository