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


_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to