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

From: Ben Pfaff <[email-masked]>
Date: Thu, 28 Nov 2013 11:24:49 -0800

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.