Does FreeBSD have sendmmsg or recvmmsg system calls?

Bruce Evans brde at optusnet.com.au
Fri Jan 8 11:02:33 UTC 2016


On Fri, 8 Jan 2016, Adrian Chadd wrote:

> On 7 January 2016 at 23:58, Mark Delany <c2h at romeo.emu.st> wrote:
>> On 08Jan16, Bruce Evans allegedly wrote:
>>> If the NIC can't reach line rate
>>
>>> Network stack overheads are also enormous.
>>
>> Bruce makes some excellent points.
>>
>> I challenge anyone to get line rate UDP out of FBSD (or Linux) for a
>> 1G NIC yet alone a 10G NIC listening to a single port. It was exactly
>> my frustration with UDP performance that led me down the path of
>> *mmsg() and netmap.
>>
>> Frankly this is an opportunity for FBSD as UDP performance appears to
>> be a neglected area.
>
> I'm there, on 16 threads.
>
> I'd rather we do it on two or three, as a lot of time is wasted in
> producer/consumer locking. but yeah, 500k tx/rx should be doable per
> CPU with only locking changes.

Line rate for 1 Gbps is about 1500 kpps (small packets).

With I218V2 (em), I see enormous lock contention above 3 or 4 (user)
threads, and 8 are slightly slower than 1.  1 doesn't saturate the NIC,
and 2 is optimal.

Bruce


More information about the freebsd-net mailing list