dpif-linux: Use poll() internally in dpif_linux_recv().
authorBen Pfaff <blp@nicira.com>
Mon, 28 Nov 2011 17:29:18 +0000 (09:29 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 28 Nov 2011 17:29:18 +0000 (09:29 -0800)
commit8522ba0996907af86eb63afd4c69e9fd6bb1178a
tree81a2f5ac9259c324c36b4dbe84a3c1514fc4370f
parent3907401ce6c5a848797507fcd6bc97218d4847e2
dpif-linux: Use poll() internally in dpif_linux_recv().

Using poll() internally in dpif_linux_recv(), instead of relying
on the results of the main loop poll() call, brings netperf CRR
performance back within 1% of par versus the code base before the
poll_fd_woke() optimizations were introduced.  It also increases
the ovs-benchmark results by about 5% versus that baseline, too.

My theory is that this is because the main loop takes long enough
that a significant number of packets can arrive during the main
loop itself, so this reduces the time before OVS gets to those
packets.
lib/dpif-linux.c
lib/netlink-socket.c
lib/netlink-socket.h