memif: use VPP cacheline size for memif when compiling within VPP 80/39980/4
authorMohsin Kazmi <sykazmi@cisco.com>
Wed, 17 Jan 2024 12:00:16 +0000 (12:00 +0000)
committerDamjan Marion <dmarion@0xa5.net>
Fri, 19 Jan 2024 12:32:55 +0000 (12:32 +0000)
Type: make

memif.h file is independent code which can be used outside of
VPP. Hence it uses its own cacheline size MACRO. This patch
sets the value of MEMIF_CACHELINE_SIZE in the cmake file for
memif plugin to VPP_CACHE_LINE_SIZE.

Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
Change-Id: I8185e78897f4571f1a0430dd7e758816e127444c

extras/libmemif/CMakeLists.txt
extras/libmemif/src/CMakeLists.txt
src/plugins/memif/CMakeLists.txt

index 8f057e9..1526abd 100644 (file)
@@ -61,6 +61,17 @@ set(CMAKE_INSTALL_MESSAGE NEVER)
 find_package(Threads REQUIRED)
 include_directories(${CMAKE_THREADS_INCLUDE_DIRS})
 
+if(DEFINED LIBMEMIF_CACHELINE_SIZE)
+  # Cache line size assigned via cmake args
+elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
+  set(LIBMEMIF_CACHELINE_SIZE 128)
+else()
+  set(LIBMEMIF_CACHELINE_SIZE 64)
+endif()
+
+message(STATUS "System Architecture: ${CMAKE_SYSTEM_PROCESSOR}")
+message(STATUS "Libmemif Cacheline Size: ${LIBMEMIF_CACHELINE_SIZE}")
+
 check_function_exists(memfd_create HAVE_MEMFD_CREATE)
 if(${HAVE_MEMFD_CREATE})
   add_definitions(-DHAVE_MEMFD_CREATE)
index ddb8a52..8b3223d 100644 (file)
@@ -34,6 +34,7 @@ include_directories(${HEADERS_DIR})
 
 add_library(memif SHARED ${MEMIF_SOURCES})
 target_link_libraries(memif ${CMAKE_THREAD_LIBS_INIT})
+target_compile_definitions(memif PUBLIC MEMIF_CACHELINE_SIZE=${LIBMEMIF_CACHELINE_SIZE})
 
 find_library(LIB_BSD bsd)
 if(LIB_BSD)
index b86d30a..4bbf6ba 100644 (file)
@@ -33,3 +33,5 @@ add_vpp_plugin(memif
   INSTALL_HEADERS
   memif.h
 )
+
+add_compile_definitions(MEMIF_CACHELINE_SIZE=${VPP_CACHE_LINE_SIZE})