Hi Willy, Willy Tarreau wrote on 17.07.2017:
> Hi, > On Mon, Jul 17, 2017 at 11:34:21AM -0700, Jerry Scharf wrote: >> The only thing I know that uses DPDK is ostineto, a network traffic >> generator tool. I think it is going to be a while before any of this gets >> integrated into the kernel for general networking. My understanding is that >> this is for people who really want to squeeze all they can out of a 10/40G >> interface. > We do use DPDK at haproxy technologies for our traffic generation tools. > But while it's useful to process packets, it really is not when you have > to deal with userland code requiring a full-fledged TCP stack. > A DPDK-based TCP stack would have to be completely callback-oriented, > which is a very different way to deal with events than what is done with > syscalls. While this model would provide a larger scalability, it also > comes with some difficulties when you have to deal with some inevitable > locking for example. It also doesn't make it as easy to batch processing > to benefit from the code being hot in the instruction cache. But nowadays > haproxy uses some callbacks so at least "only" the polling+fd+tcp+udp > parts would have to be rewritten. SSL would have to be dropped, just like > UNIX sockets. And we wouldn't benefit from some of the goodies we currently > have in the stacks provided by the operating systems, like delayed ACKs, > fastopen and so on. > The real good stuff about DPDK is that it allows to build multi-10/100G > switches and routers from affordable hardware when you know exactly what > you want to achieve. You must not have to use high throughput between the > system's stack and the devices however. This is perfect to route traffic > between VMs for example. Thanks for the detail information. Now I understand why it's not that useful for haproxy or any other user land daemon. > Willy -- Best Regards Aleks

