net/nfp: fix releasing muti-segment mbufs
authorAlejandro Lucero <alejandro.lucero@netronome.com>
Wed, 26 Apr 2017 10:27:07 +0000 (11:27 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 28 Apr 2017 12:46:18 +0000 (14:46 +0200)
commitaaef1010af2dc14ca2e3b5be554169a486127700
treeb389dd08e609d67a144a41c5f2a0a5f575bd6225
parent3fab7694403a2ff22cb9a9529ae168865ea96131
net/nfp: fix releasing muti-segment mbufs

If segments are used, just mbufs previously linked to head descriptor
of a mbuf chain are released. Other Tx descriptor are used for the
mbuf chain but they keep their linked mbufs without releasing them.

It is not a fatal issue because sooner or later those descriptors will
be head descriptors or just used for a single mbuf packet, then those
linked mbufs will be released.

However, this leads to apps needing bigger mbufs pools and some
confusion about memory requirements. Indeed, because larger pools, some
performance impact could also be expected due to cache misses.

With this patch all Tx descriptors will release linked mbufs inside the
xmit function, and rte_pktmbuf_seg_free is used instead of
rte_pktmbuf_free.

Fixes: 142854c62134 ("nfp: fix freeing multi-mbuf packets")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
drivers/net/nfp/nfp_net.c