Hi,
Assuming that all ports use the same MTU, in OVS2.8 and earlier, a single
mempool of 256K buffers (MAX_NB_MBUF = 4096 * 64) will be created and shared by
all the ports
With the OVS2.9 mempool patches, we have port specific allocation and the
number of mbufs created for each port is based on the following formula (with a
lower limit of MIN_NB_MBUF = 4096*4)
n_mbufs = dev->requested_n_rxq * dev->requested_rxq_size
+ dev->requested_n_txq * dev->requested_txq_size
+ MIN(RTE_MAX_LCORE, dev->requested_n_rxq) * NETDEV_MAX_BURST
+ MIN_NB_MBUF;
Using minimal value (1) for n_rxq and n_rxq and default value (2048) for
requested_rxq_size and requested_txq_size, the above translates to
n_mbufs = 1*2048 + 1*2048 + 1*32 + 4096*4 = 20512
Assuming all ports have the same MTU, this means that approximately 13 ports in
OVS2.9 will consume as much memory as the single mempool shared by all ports in
OVS2.8 (256*1024 / 20512) .
When a node is upgraded from OVS2.8 to OVS2.9 it is quite possible that the
memory set aside for OVS may be insufficient. I'm not sure if this aspect has
been discussed previously and wanted to bring this up for discussion.
Regards,
Pradeep
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev