On 2024-09-11 12:32, Morten Brørup wrote:
+static void *lcore_buffer;
[...]
+ lcore_buffer = aligned_alloc(RTE_CACHE_LINE_SIZE,
+ LCORE_BUFFER_SIZE);
Since lcore_buffer is never freed again, it is easy to support Windows:
#ifdef RTE_EXEC_ENV_WINDOWS
#include <malloc.h>
#endif
#ifndef RTE_EXEC_ENV_WINDOWS
lcore_buffer = aligned_alloc(RTE_CACHE_LINE_SIZE,
LCORE_BUFFER_SIZE);
#else
/* Never freed again, so don't worry about _aligned_free(). */
What is the reason for this comment? It seems like it addresses the
Windows code path in particular.
lcore_buffer = _aligned_malloc(LCORE_BUFFER_SIZE,
RTE_CACHE_LINE_SIZE);
#endif
Ref:
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/aligned-malloc?view=msvc-170
NB: Note the opposite parameter order.
Thanks. I will add something like this.