Subject: Re: [PATCH openvswitch] netlink: Implement & enable memory mapped netlink i/o

From: Thomas Graf <[email-masked]>
Date: Thu, 28 Nov 2013 23:31:52 +0100

On 11/28/2013 08:24 PM, Ben Pfaff wrote:
> On Wed, Nov 27, 2013 at 11:51:20PM +0100, Thomas Graf wrote:
>> On 11/26/2013 12:02 AM, Ben Pfaff wrote:
>>> On Thu, Nov 21, 2013 at 07:16:54PM +0100, Thomas Graf wrote:
>>>> Based on the initial patch by Cong Wang posted a couple of months
>>>> ago.
>>>>
>>>> This is the user space counterpart needed for the kernel patch
>>>> '[PATCH net-next 3/8] openvswitch: Enable memory mapped Netlink i/o'
>>>>
>>>> Allows the kernel to construct Netlink messages on memory mapped
>>>> buffers and thus avoids copying. The functionality is enabled on
>>>> sockets used for unicast traffic.
>>>>
>>>> Further optimizations are possible by avoiding the copy into the
>>>> ofpbuf after reading.
>>>>
>>>> Cc: Cong Wang <[email-masked]>
>>>> Signed-off-by: Thomas Graf <[email-masked]>
>>>
>>> Does this depend on other patches or some specific Linux kernel
>>> headers?  It doesn't build here on GCC (similar results with Clang):
>>
>> Yes, it depends on a sufficiently recent <linux/netlink.h>. We can
>> either #ifdef the mmap code or we provide a local copy of
>> <linux/netlink.h> in include/linux. The code automatically falls back if
>> the kernel does not support NL MMAP so that seems superior.
>
> Can you add the new definitions to the end of lib/netlink-protocol.h,
> conditional on their being needed?  We already have a number of
> compatibility definitions there.

Sure. I'll move the definitions out of !HAVE_NETLINK and into
appropriate conditionals.