With this series of patches, ovs will create multiple rx queues for each dpdk iface. Each of rx queue will be handled by the pmd thread on the same cpu socket. For tx, each dpdk iface will have a tx queue for each cpu core. So, different pmd threads will not contend with each other over the tx queue of same iface.
This series is based on Daniele's work of 'batch packet processing'. There will be another series of patches that allows users to set the cpu mask and number of rx queues, soon. Alex Wang (5): ovs-numa: Add ovs-numa.{c,h} for extracting and storing cpu socket and cpu core info. netdev-dpdk: Add function for getting the socket_id of netdev-dpdk. netdev-dpdk: Make memory pool name contain the socket id. netdev-dpdk: Create 'number of dpdk ifaces on same cpu socket' rx queues and 'number of cpu cores' tx queues for each dpdk interface. dpif-netdev: Create 'number of dpdk ifaces on cpu socket' pmd threads for each cpu socket. lib/automake.mk | 2 + lib/dpif-netdev.c | 172 ++++++++++++++++++++++++++++----------- lib/netdev-dpdk.c | 91 ++++++++++++++++++--- lib/netdev-dpdk.h | 25 ++++++ lib/ovs-numa.c | 208 +++++++++++++++++++++++++++++++++++++++++++++++ lib/ovs-numa.h | 33 ++++++++ tests/ofproto-macros.at | 1 + vswitchd/bridge.c | 2 + 8 files changed, 475 insertions(+), 59 deletions(-) create mode 100644 lib/ovs-numa.c create mode 100644 lib/ovs-numa.h -- 1.7.9.5 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev