4 ms·
This lock starts to be a bottleneck when you want to scale the Linux TCP stack over a large number of cores (8+). This patch could be an huge improvement. Beca
by raphaelj 11y ago
This lock starts to be a bottleneck when you want to scale the Linux TCP stack over a large number of cores (8+). This patch could be an huge improvement.
Because of the issues that this lock leads to, I had to implement an user-space, lock-less, TCP/IP stack for my Master's thesis, last year:
https://github.com/raphaelj/rusty https://github.com/raphaelj/rusty
https://github.com/RaphaelJ/master-thesis/raw/master/thesis.pdf https://github.com/RaphaelJ/master-thesis/raw/master/thesis....
- haberman 11y agoDoes the load overwhelm a single CPU? Does it not work to make the networking stack have affinity to a single CPU?
- SEJeff 11y agoA 10g network can saturate a modern CPU if you're doing interrupt per-packet (disabling adaptive coalescing), on 40G, 56G, and 100G infiniband networks it is trivial :) Multi-queue is absolutely mandatory for a modern networking stack, so this is really fantastic work.
- nefitty 11y agoIt's tenable that a load stack of a significant size would demand multithreading but at this point in affinity processing technology it is uneccessary to develop that capability. It may be possible that doubling the queue length could lighten the load but in my experience it might just be better to pursue non-intrusive commits that pursue freed up buffer resources.
- gonzo 11y agoLibuinet is a userspace port of the FreeBSD stack that can be run lockless.