Hi,

This proposal extends xcall to allow to specify an IPL of the high
priority xcall. Currently the high priority xcall uses only a softint
of IPL_SOFTSERIAL. It doesn't work if the caller depends on
a different softint IPL.

I'm now working on stability improvements of the network stack
under load. psref_target_destroy can take longer time than we desire
under load at worst, say 10 or 20 seconds. The cause of the delay
is xcall and the delay can be mitigated by changing xcall to use
the high priority. However it breaks atomicity of psref because
psrefs used in the network stack normally run with IPL_SOFTNET.
One workaround is to use IPL_SOFSERIAL for such psrefs but we should
avoid using abnormal IPL as much as possible.

So I propose the above enhancement to solve the issue.

This is a patch implements the feature:
  http://www.netbsd.org/~ozaki-r/xcall-multi-ipl.diff
The next patch applies it to psref:
  http://www.netbsd.org/~ozaki-r/xcall-multi-ipl-psref.diff
The patch updates xcall.9
  http://www.netbsd.org/~ozaki-r/xcall-multi-ipl-man.diff

Any comments or suggestions?

Thanks,
  ozaki-r

Reply via email to