dpif-linux: Give each port its own userspace-kernel channel.
authorJustin Pettit <jpettit@nicira.com>
Sat, 5 Jan 2013 02:34:26 +0000 (18:34 -0800)
committerJustin Pettit <jpettit@nicira.com>
Thu, 10 Jan 2013 22:38:42 +0000 (14:38 -0800)
commit989fd548031d532be32a10129e0c97d45fd98b9a
tree8ef54246687e83648c0693f7ef4080432cfddfd3
parentf205882ae92cce3f6188d6612093cea1ce902a31
dpif-linux: Give each port its own userspace-kernel channel.

Userspace-kernel communication is a possible bottleneck when OVS is
receiving a large number of flow set up requests.  To help prevent a bad
actor from consuming too much of this resource, we introduced channels
to segegrate traffic.  Previously, we created 17 channels and
round-robin assigned ports to one of 16 channels (the 17th was reserved
for use by the system).  This meant if there were more than 16 ports,
sharing of channels would occur.

This commit creates a new channel for each port, so that there is no
more sharing and better isolation.  The special system port uses the
"ovs-system"'s channel (port 0), since it is not heavily loaded.

This also fixes an issue introduced in commit acf60855 (ofproto-dpif:
Use a single underlying datapath across multiple bridges.) where ports
that were added at run-time were given the special system channel.

Issue #12073

Signed-off-by: Justin Pettit <jpettit@nicira.com>
NEWS
lib/dpif-linux.c