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.
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? --Lucy > BTW, I've tested my LRO implementation with netperf on my driver. It > does not affect performance of a single stream test (I can get 10G line > rate regardless) but the CPU idle % on the netserver end (on the > interrupted CPU) goes from ~5% to ~50% i.e. LRO saves nearly half a core > of CPU time. Understandably then, it's quite important to getting good > performance on multi-stream tests. > Any word on when we may see these stack issues fixed? > > Paul > _______________________________________________ > networking-discuss mailing list > [email protected] > _______________________________________________ networking-discuss mailing list [email protected]
