netdev-dpdk: Reintroduce shared mempools.
This commit manually reverts the current per port mempool model to the
previous shared mempool model for DPDK ports.
OVS previously used a shared mempool model for ports with the same MTU
configuration. This was replaced by a per port mempool model to address
issues flagged by users such as:
https://mail.openvswitch.org/pipermail/ovs-discuss/2016-September/042560.html
However the per port model has a number of issues including:
1. Requires an increase in memory resource requirements to support the same
number of ports as the shared port model.
2. Incorrect algorithm for mbuf provisioning for each mempool.
These are considered blocking factors for current deployments of OVS when
upgrading to OVS 2.9 as a user may have to redimension memory for the same
deployment configuration. This may not be possible for users.
For clarity, the commits whose changes are removed include the
following:
netdev-dpdk: Create separate memory pool for each port:
d555d9b
netdev-dpdk: fix management of pre-existing mempools:
b6b26021d
Fix mempool names to reflect socket id:
f06546a
netdev-dpdk: skip init for existing mempools:
837c176
netdev-dpdk: manage failure in mempool name creation:
65056fd
netdev-dpdk: Reword mp_size as n_mbufs:
ad9b5b9
netdev-dpdk: Rename dpdk_mp_put as dpdk_mp_free:
a08a115
netdev-dpdk: Fix mp_name leak on snprintf failure:
ec6edc8
netdev-dpdk: Fix dpdk_mp leak in case of EEXIST:
173ef76
netdev-dpdk: Factor out struct dpdk_mp:
24e78f9
netdev-dpdk: Remove unused MAX_NB_MBUF:
bc57ed9
netdev-dpdk: Fix mempool creation with large MTU:
af5b0da
Due to the number of commits and period of time they were introduced
over, a simple revert was not possible. All code from the commits above
is removed and the shared mempool code reintroduced as it was before its
replacement.
Code introduced by commit
netdev-dpdk: Add debug appctl to get mempool information:
be48173
has been modified to work with the shared mempool model.
Cc: Antonio Fischetti <antonio.fischetti@gmail.com>
Cc: Ilya Maximets <i.maximets@samsung.com>
Cc: Kevin Traynor <ktraynor@redhat.com>
Cc: Jan Scheurich <jan.scheurich@ericsson.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
Tested-by: Kevin Traynor <ktraynor@redhat.com>