buffers: bring back cache occupancy improvement
The improvement was removed in 40129, causing 5-40% regressions in AVF tests. There is a memory-speed trade-off, this change prefers speed over memory efficiency. Ideally, the choice should be configurable, but that is not easy to achieve, considering how early is vlib_buffer_main_init called. Type: fix Fixes: 038dad7ef29b0b724071edb5f8cc7a9845584454 Change-Id: I4746f3634abe6d233c9d092a372de05b3d1ae4b6 Signed-off-by: Vratko Polak <vrpolak@cisco.com> (cherry picked from commit 04fd51c03c428859bae949a8294ee0f9c062a44b)
This commit is contained in:
@ -473,6 +473,10 @@ vlib_buffer_alloc_size (uword ext_hdr_size, uword data_size)
|
|||||||
uword alloc_size = ext_hdr_size + sizeof (vlib_buffer_t) + data_size;
|
uword alloc_size = ext_hdr_size + sizeof (vlib_buffer_t) + data_size;
|
||||||
alloc_size = round_pow2 (alloc_size, VLIB_BUFFER_ALIGN);
|
alloc_size = round_pow2 (alloc_size, VLIB_BUFFER_ALIGN);
|
||||||
|
|
||||||
|
/* in case when we have even number of 'cachelines', we add one more for
|
||||||
|
* better cache occupancy */
|
||||||
|
alloc_size |= VLIB_BUFFER_ALIGN;
|
||||||
|
|
||||||
return alloc_size;
|
return alloc_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user