Module Name: src Committed By: snj Date: Mon Feb 19 18:33:38 UTC 2018
Modified Files: 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 Log Message: Pull up following revision(s) (requested by ozaki-r in ticket #556): sys/sys/xcall.h: 1.6 share/man/man9/xcall.9: 1.11-1.12 sys/kern/subr_xcall.c: 1.21-1.25 Refer softint(9) -- 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 IPL_SOFTSERIAL. 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 -r1.10.18.1 src/share/man/man9/xcall.9 cvs rdiff -u -r1.7.2.2 -r1.7.2.3 src/sys/kern/subr_psref.c cvs rdiff -u -r1.19 -r1.19.8.1 src/sys/kern/subr_xcall.c cvs rdiff -u -r1.5 -r1.5.30.1 src/sys/sys/xcall.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.