mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-29 16:44:03 +00:00
In addition to r259632 completely block receive upcalls if we have more
data than we need. This reduces lock pressure from xprt_active() side.
This commit is contained in:
parent
71694e554d
commit
4a240f6ce7
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=260031
@ -619,7 +619,15 @@ svc_vc_process_pending(SVCXPRT *xprt)
|
||||
}
|
||||
}
|
||||
|
||||
so->so_rcv.sb_lowat = imax(1, imin(cd->resid, so->so_rcv.sb_hiwat / 2));
|
||||
/*
|
||||
* Block receive upcalls if we have more data pending,
|
||||
* otherwise report our need.
|
||||
*/
|
||||
if (cd->mpending)
|
||||
so->so_rcv.sb_lowat = INT_MAX;
|
||||
else
|
||||
so->so_rcv.sb_lowat =
|
||||
imax(1, imin(cd->resid, so->so_rcv.sb_hiwat / 2));
|
||||
return (TRUE);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user