<font face="arial" size="2"><p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;">The best approach to dealing with "locking overhead" is to stop thinking that if locks are good, more locking (finer grained locking) is better.  OS designers (and Linux designers in particular) are still putting in way too much locking.  I deal with this in my day job (we support systems with very large numbers of cpus and because of the "fine grained" locking obsession, the parallelized capacity is limited).   If you do a thoughtful design of your network code, you don't need lots of locking - because TCP/IP streams don't have to interact much - they are quite independent.   But instead OS designers spend all their time thinking about doing "one thing at a time".</p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;">There are some really good ideas out there (e.g. RCU) but you have to think about the big picture of networking to understand how to use them.  I'm not impressed with the folks who do the Linux networking stacks.</p>
<!--WM_COMPOSE_SIGNATURE_START--><!--WM_COMPOSE_SIGNATURE_END-->
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;"><br /><br />On Thursday, October 9, 2014 3:48pm, "Dave Taht" <dave.taht@gmail.com> said:<br /><br /></p>
<div id="SafeStyles1412988472">
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;">> I have some hope that the skb->xmit_more API could be used to make<br />> aggregating packets in wifi on an AP saner. (my vision for it was that<br />> the overlying qdisc would set xmit_more while it still had packets<br />> queued up for a given station and then stop and switch to the next.<br />> But the rest of the infrastructure ended up pretty closely tied to<br />> BQL....)<br />> <br />> Jesper just wrote a nice piece about it also.<br />> http://netoptimizer.blogspot.com/2014/10/unlocked-10gbps-tx-wirespeed-smallest.html<br />> <br />> It was nice to fool around at 10GigE for a while! And netperf-wrapper<br />> scales to this speed also! :wow:<br />> <br />> I do worry that once sch_fq and fq_codel support is added that there<br />> will be side effects. I would really like - now that there are al<br />> these people profiling things at this level to see profiles including<br />> those qdiscs.<br />> <br />> /me goes grumbling back to thinking about wifi.<br />> <br />> On Thu, Oct 9, 2014 at 12:40 PM, David Lang <david@lang.hm> wrote:<br />> > lwn.net has an article about a set of new patches that avoid some locking<br />> > overhead by transmitting multiple packets at once.<br />> ><br />> > It doesn't work for things with multiple queues (like fq_codel) in it's<br />> > current iteration, but it sounds like something that should be looked at and<br />> > watched for latency related issues.<br />> ><br />> > http://lwn.net/Articles/615238/<br />> ><br />> > David Lang<br />> > _______________________________________________<br />> > Cerowrt-devel mailing list<br />> > Cerowrt-devel@lists.bufferbloat.net<br />> > https://lists.bufferbloat.net/listinfo/cerowrt-devel<br />> <br />> <br />> <br />> --<br />> Dave Täht<br />> <br />> https://www.bufferbloat.net/projects/make-wifi-fast<br />> _______________________________________________<br />> Cerowrt-devel mailing list<br />> Cerowrt-devel@lists.bufferbloat.net<br />> https://lists.bufferbloat.net/listinfo/cerowrt-devel<br />> </p>
</div></font>