[ovs-dev] [PATCH v2] dpdk: Support both shared and per port mempools.

Lam, Tiago tiago.lam at intel.com
Fri Jul 6 10:56:00 UTC 2018


On 27/06/2018 14:58, Ian Stokes wrote:
> This commit re-introduces the concept of shared mempools as the default
> memory model for DPDK devices. Per port mempools are still available but
> must be enabled explicitly by a user.
> 
> OVS previously used a shared mempool model for ports with the same MTU
> and socket 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 potentially requires an increase in memory
> resource requirements to support the same number of ports and configuration
> as the shared port model.
> 
> This is considered a blocking factor for current deployments of OVS
> when upgrading to future OVS releases as a user may have to redimension
> memory for the same deployment configuration. This may not be possible for
> users.
> 
> This commit resolves the issue by re-introducing shared mempools as
> the default memory behaviour in OVS DPDK but also refactors the memory
> configuration code to allow for per port mempools.
> 
> This patch adds a new global config option, per-port-memory, that
> controls the enablement of per port mempools for DPDK devices.
> 
>     ovs-vsctl set Open_vSwitch . other_config:per-port-memory=true
> 
> This value defaults to false; to enable per port memory support,
> this field should be set to true when setting other global parameters
> on init (such as "dpdk-socket-mem", for example). Changing the value at
> runtime is not supported, and requires restarting the vswitch
> daemon.
> 
> The mempool sweep functionality is also replaced with the
> sweep functionality from OVS 2.9 found in commits
> 
> c77f692 (netdev-dpdk: Free mempool only when no in-use mbufs.)
> a7fb0a4 (netdev-dpdk: Add mempool reuse/free debug.)
> 
> A new document to discuss the specifics of the memory models and example
> memory requirement calculations is also added.
> 
> Signed-off-by: Ian Stokes <ian.stokes at intel.com>

Hi Ian,

Thanks for your work on this.

I've tested with the same set up I had for RFC v1 (re-configuring MTUs
of existing ports, adding new ports, deleting existing ones, etc) and
things still work the same.

I don't have additional concerns either, as my comments from RFC v1 have
been addressed / clarified and the code looks more straightforward now.

Acked-by: Tiago Lam <tiago.lam at intel.com>
Tested-by: Tiago Lam <tiago.lam at intel.com>


More information about the dev mailing list