[dpdk-dev] [PATCH] mbuf: fix external mbufs pool boundaries

Olivier Matz olivier.matz at 6wind.com
Mon Jun 8 09:50:11 CEST 2020


On Mon, Jun 01, 2020 at 03:24:16PM +0000, Alexander Kozyrev wrote:
> Memzones are created in testpmd in order to test external data
> buffers functionality. Each memzone is 2Mb in size and divided among
> the pool of external memory buffers.
> 
> Memzone may not always be fully utilized because mbufs size can vary
> and some space can be left unused at the tail of a memzone. This is
> not handled properly and mbuf can get the address of this leftover
> space since this address is still valid (part of memzone), but there
> is not enough space to fit the whole packet data. As a result packet
> data may overflow and cause the memory corruption.
> 
> Take mbuf size into account when distributing memory addresses from
> a memzone to external mbufs. Skip the remaining tail in case there
> is not enough room for a packet and move to a next memzone instead.
> 
> Fixes: 6c8e50c2e5 ("mbuf: create pool with external memory buffers")
> Cc: stable at dpdk.org
> Signed-off-by: Alexander Kozyrev <akozyrev at mellanox.com>
> Acked-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>

Acked-by: Olivier Matz <olivier.matz at 6wind.com>

Thanks!


More information about the dev mailing list