Xiu-Yan Wang wrote: > Paul Durrant wrote: >> Yunsong (Roamer) Lu wrote: >>> LRO is not yet supported in the stack, and there will be some other >>> issues than the b_cont check in IP. >>> >>> But experimentally LRO implementation in driver works after fixing the >>> check against maximum 2-block of message. You may apply this *hack* to >>> try your LRO implementation if you can compile IP module for your >>> Solaris version. >>> >> Roamer, >> >> There's also the mblk_pull_len issue (there is a bug for this but I >> can't find the number right now). At the moment it needs to be set to >> zero to avoid unnecessary copying in the stack.
The number is 6694625, filed by Darren based on email I sent to this list roughly 1 month ago. > mblk_pull_len is set to 64 by default and it's used in kstrgetmsg(): > http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/streamio.c > > The comments state the introduction of it is to decrease the per mblk > overhead in dealing with a streams message consists of many short > messages. > > Could you be more detailed of the issue with LRO? At least for me, I never noticed the issue until I started testing my LRO implementation. Because LRO aggregates frames, it interacts poorly with Solaris' ack pacing, and you need to use larger socket buffer sizes to keep the pipe full. The trigger for the bug seems to be using "large" socket buffer sizes (in excess of 512KB). However, the bug is not tied to LRO. Rather, it happens without it. But without LRO, I seldom crank the socket buffers up that large so I did not notice it previously. Drew _______________________________________________ networking-discuss mailing list [email protected]
