Skip to content

Commit 7b750f5

Browse files
committed
update qemu
1 parent 08a742b commit 7b750f5

5 files changed

Lines changed: 1027 additions & 14 deletions

File tree

CMakeLists.txt

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR})
2727
find_package(cxxopts REQUIRED)
2828
find_package(spdlog REQUIRED)
2929
file(GLOB_RECURSE SOURCE_FILES src/cxl*.cpp src/policy.cpp src/helper.cpp src/incore.cpp src/uncore.cpp src/perf.cpp src/monitor.cpp)
30-
set(SERVER_SOURCES src/main_server.cc src/shared_memory_manager.cc src/shm_communication.cpp src/distributed_server.cpp src/rdma_communication.cpp src/hdm_decoder.cpp src/coherency_engine.cpp)
3130

3231
execute_process(COMMAND uname -r OUTPUT_VARIABLE arch OUTPUT_STRIP_TRAILING_WHITESPACE)
3332
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -pthread")
@@ -45,10 +44,6 @@ set_target_properties(cxlmemsim_latency PROPERTIES
4544
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
4645
)
4746

48-
# Build server
49-
add_executable(cxlmemsim_server ${SERVER_SOURCES})
50-
target_include_directories(cxlmemsim_server PRIVATE include ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR})
51-
target_link_libraries(cxlmemsim_server cxlmemsim cxxopts::cxxopts spdlog::spdlog_header_only rt)
5247
# Find RDMA libraries
5348
find_package(PkgConfig REQUIRED)
5449
pkg_check_modules(RDMACM REQUIRED librdmacm)
@@ -61,23 +56,41 @@ if(ENABLE_RDMA)
6156
if(RDMACM_FOUND AND IBV_FOUND)
6257
message(STATUS "RDMA support enabled")
6358
add_definitions(-DHAVE_RDMA)
64-
65-
# Add RDMA include directories
6659
include_directories(${RDMACM_INCLUDE_DIRS})
6760
include_directories(${IBV_INCLUDE_DIRS})
68-
69-
# Add RDMA libraries
7061
set(RDMA_LIBRARIES ${RDMACM_LIBRARIES} ${IBV_LIBRARIES})
71-
72-
# Link RDMA libraries to main server (distributed_server.cpp uses RDMA)
73-
target_link_libraries(cxlmemsim_server ${RDMA_LIBRARIES})
74-
target_compile_options(cxlmemsim_server PRIVATE ${RDMACM_CFLAGS_OTHER} ${IBV_CFLAGS_OTHER})
7562
else()
7663
message(WARNING "RDMA libraries not found. RDMA support disabled.")
7764
set(ENABLE_RDMA OFF)
7865
endif()
7966
endif()
8067

68+
# Server library (shared between server executable and tests)
69+
set(SERVER_LIB_SOURCES src/shared_memory_manager.cc src/shm_communication.cpp src/distributed_server.cpp src/rdma_communication.cpp src/hdm_decoder.cpp src/coherency_engine.cpp)
70+
add_library(cxlmemsim_server_lib STATIC ${SERVER_LIB_SOURCES})
71+
target_include_directories(cxlmemsim_server_lib PUBLIC include src ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR})
72+
target_link_libraries(cxlmemsim_server_lib cxlmemsim cxxopts::cxxopts spdlog::spdlog_header_only rt)
73+
if(ENABLE_RDMA)
74+
target_link_libraries(cxlmemsim_server_lib ${RDMA_LIBRARIES})
75+
target_compile_options(cxlmemsim_server_lib PRIVATE ${RDMACM_CFLAGS_OTHER} ${IBV_CFLAGS_OTHER})
76+
endif()
77+
78+
# Build server (uses server library + main)
79+
add_executable(cxlmemsim_server src/main_server.cc)
80+
target_include_directories(cxlmemsim_server PRIVATE include src ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR})
81+
target_link_libraries(cxlmemsim_server cxlmemsim_server_lib cxlmemsim cxxopts::cxxopts spdlog::spdlog_header_only rt)
82+
if(ENABLE_RDMA)
83+
target_link_libraries(cxlmemsim_server ${RDMA_LIBRARIES})
84+
endif()
85+
86+
# Distributed SHM test
87+
add_executable(test_distributed_shm tests/test_distributed_shm.cpp)
88+
target_include_directories(test_distributed_shm PRIVATE include src ${cxxopts_INCLUDE_DIR} ${spdlog_INCLUDE_DIR})
89+
target_link_libraries(test_distributed_shm cxlmemsim_server_lib cxlmemsim cxxopts::cxxopts spdlog::spdlog_header_only rt)
90+
if(ENABLE_RDMA)
91+
target_link_libraries(test_distributed_shm ${RDMA_LIBRARIES})
92+
endif()
93+
8194
# Installation targets
8295
if(ENABLE_RDMA)
8396
install(TARGETS cxlmemsim_server

lib/qemu

Submodule qemu updated from 725e0d9 to 211f12a

0 commit comments

Comments
 (0)