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

Reply via email to