[dpdk-dev] Limiting packet buffers under 4GB

Burakov, Anatoly anatoly.burakov at intel.com
Wed Nov 6 13:16:40 CET 2019


On 04-Nov-19 12:59 PM, Jerin Jacob Kollanukkaran wrote:
> Hi Anatoly and All,
> 
> Just wondering what would the side effect of lowering a  _bit_ of static uint64_t baseaddr = 0x100000000 in
> lib/librte_eal/common/eal_common_memory.c for 64bit systems.
> 
> Use case:
> If we _reserve_ VA address which less than 2^32 ONLY for packet buffers(mbuf), The use cases like
> Pipeline, where need to transfer packets from one core to another cores can use ring element
> size of 4B(32bit) which will reduce the a lot of read and write  to enable better
> performance.
> 
> i.e Since upper 32bits will be zero, it is matter of typecasting of item to read and write from/to ring.
> Essentially memcpy overhead for moving pointers over the ring will be half.
> 
> Is baseaddr set to 2^32 to make sure that secondary process will have more _chance_ of getting
> the baseaddr in order for DPDK to work?
> 
> Thoughts on above? On general to reduce the mbuf pointer storage requirement for ring?
> 

You can already try that with --base-virtaddr option if you have such 
specific addressing requirements. That said, the address is pretty much 
arbitrary, so i'm not against lowering it in principle, it just feels 
like a workaround for something that's very specific to the workloads 
you are targetting.

-- 
Thanks,
Anatoly


More information about the dev mailing list