Module Name: src
Committed By: snj
Date: Mon Feb 19 18:33:38 UTC 2018
src/share/man/man9 [netbsd-8]: xcall.9
src/sys/kern [netbsd-8]: subr_psref.c subr_xcall.c
src/sys/sys [netbsd-8]: xcall.h
Pull up following revision(s) (requested by ozaki-r in ticket #556):
Support arbitrary softint IPLs in high priority xcall
The high priority xcall supported only a softint of IPL_SOFTSERIAL. It meant
that it didn't work for xcall callbacks depending on lower IPLs than
The change makes xcall have multiple softints of IPLs and allow users to specify
arbitrary IPLs. Users can specify an IPL by XC_HIGHPRI_IPL passed to the 1st
argument of xc_broadcast or xc_unicast.
Note that xcall still serves requests one by one (i.e., doesn't run them
concurrently) even if requests have different IPLs.
Proposed on tech-kern@
Use high priority xcall with a softint of an IPL the same as psref class's one
This mitigates undesired delay of psref_target_destroy under load such as heavy
netowrk traffic that loads softint.
Try to fix the build: avoid duplicate case labels when IPL_SOFT* are
all the same.
Fix build of kernels that some (or all) IPL_SOFT* share a value (e.g., mips)
Avoid allocating unused softints that share a value of IPL between another
Sort XC_IPL_* in order of priority (NFC)
To generate a diff of this commit:
cvs rdiff -u -r1.10 -r126.96.36.199 src/share/man/man9/xcall.9
cvs rdiff -u -r188.8.131.52 -r184.108.40.206 src/sys/kern/subr_psref.c
cvs rdiff -u -r1.19 -r220.127.116.11 src/sys/kern/subr_xcall.c
cvs rdiff -u -r1.5 -r18.104.22.168 src/sys/sys/xcall.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.