Naive question: if someone needs a lot of space to prepend in front of the 
buffer, would it make sense to allocate an entire new buffer and place it as 
the very first one in the chain ? That would save a recompile and also me more 
generic and extensible (you can get 2,3,4,… buffers in the same fashion then?) 
I don’t know if we have the easy facility to do this in VPP, though.

This would avoid a recompile and would work on the wider range of setups, if it 
were possible…

--a

> On 17 Jul 2021, at 16:58, jerome.bay...@student.uliege.be wrote:
> 
> 
> Hello Benoit,
> 
> Thank you for your answer about buffer allocation in batches, my solution is 
> way more efficient now.
> 
> However, I still want to try to change the value of the "PRE_DATA_SIZE" cmake 
> variable to see how it behaves with a greater value (i.e 256 instead of 128). 
> To do so, I followed the method given in the documentation at the following 
> url : 
> https://fd.io/docs/vpp/master/gettingstarted/developers/buildsystem/cmakeandninja.html#tinkering-with-build-options-ccmake.
> The issue is that once I've changed the value of the "PRE_DATA_SIZE" 
> variable, I press "c" to regenerate files that need to be regenerated and 
> then I get this error in cmake output :
> 
> CMake Error at cmake/misc.cmake:27 (_message):
>    [1;31mDPDK RTE_PKTMBUF_HEADROOM (128) ;must be equal to PRE_DATA_SIZE
>    (256)[m
>  Call Stack (most recent call first):
>    plugins/dpdk/CMakeLists.txt:65 (message)
> 
> I guess I should also modify the value of "DPDK RTE_PKTMBUF_HEADROOM" but I 
> don't know how I can do it ? Indeed, I can't find where this variable is 
> defined.
> 
> Jérôme
> 
> De: "Benoit Ganne (bganne)" <bga...@cisco.com>
> À: "jerome bayaux" <jerome.bay...@student.uliege.be>, vpp-dev@lists.fd.io
> Cc: "Justin Iurman" <justin.iur...@uliege.be>
> Envoyé: Jeudi 15 Juillet 2021 19:16:32
> Objet: RE: Buffer chains and pre-data area
> 
> Hi Jerome,
> 
> > However, when I tried to perform some performance tests I was quite
> > disappointed by the results : the buffer allocation for each packet is not
> > efficient at all. My question is then : Is there any way to increase the
> > performances ? To allocate buffers, I use the function "vlib_buffer_alloc"
> > defined in "buffer_funcs.h" but is it the right function to use ?
> 
> Do you allocate buffers in batch? Let's say you want to encapsulate a batch 
> of packets, instead of doing:
> 
>   while (n_left)
>     u32 bi
>     vlib_buffer_t *b
>     vlib_buffer_alloc(vm, &bi, 1)
>     b = vlib_get_buffer (vm, bi)
>     add b to the chain
>     ...
> 
> You should do something like (allocation error checking etc. is left as an 
> exercise):
> 
>   u32 bi[VLIB_FRAME_SIZE]
>   vlib_buffer_t *bufs[VLIB_FRAME_SIZE]
>   vlib_buffer_alloc (vm, bi, n_left)
>   vlib_get_buffers (vm, bi, bufs, n_left)
> 
>   while (n_left)
>     add bufs[i] to the chain
>     ...
> 
> > In my case, the best option would be to have more space available in the
> > buffer's pre-data area but VPP does not seem to be built in a way that
> > allows easy modifications of the "PRE_DATA_SIZE" value. Am I right or is
> > there any "clean" method to change this value ?
> 
> It is define as a cmake variable and can be customize through eg. cmake-gui.
> 
> ben
> 
> 
> 
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19823): https://lists.fd.io/g/vpp-dev/message/19823
Mute This Topic: https://lists.fd.io/mt/84230132/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to