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

Stokes, Ian ian.stokes at intel.com
Fri Jul 6 11:21:14 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/0425
> > 60.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>

Thanks Tiago, I'll add your acked/tested tags to the commit.

Thanks
Ian


More information about the dev mailing list