Skip to content

Commit 15a4970

Browse files
committed
feat: build cuda plugin
1 parent 180b070 commit 15a4970

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

CMakeLists.txt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,13 @@ ExternalProject_Add(criu
106106
"LDFLAGS=${CRIU_LDFLAGS}"
107107
"CC=${CMAKE_C_COMPILER}"
108108
"PATH=${PROTOC_BIN_PATH}:${PROTOC_C_BIN_PATH}:$ENV{PATH}"
109+
"CUDA_PLUGIN_LIBCAP_CFLAGS=${LIBCAP_CFLAGS}"
109110
"SKIP_PIP_INSTALL=1"
110111
${CMAKE_MAKE_PROGRAM} -C <SOURCE_DIR> ${CRIU_MAKE_VARS} -j${CMAKE_BUILD_PARALLEL_LEVEL}
111112
CONFIG_AMDGPU=n
112113
lib/c/built-in.o
113114
criu
115+
cuda_plugin
114116
INSTALL_COMMAND
115117
${CMAKE_COMMAND} -E make_directory ${CRIU_INSTALL_DIR}/lib
116118
COMMAND ${CMAKE_COMMAND} -E make_directory ${CRIU_INSTALL_DIR}/bin
@@ -119,15 +121,17 @@ ExternalProject_Add(criu
119121
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/criu/include/version.h ${CRIU_INSTALL_DIR}/include/criu/version.h
120122
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/images/rpc.pb-c.h ${CRIU_INSTALL_DIR}/include/criu/rpc.pb-c.h
121123
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/criu/criu ${CRIU_INSTALL_DIR}/bin/criu
124+
COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/plugins/cuda/cuda_plugin.so ${CRIU_INSTALL_DIR}/lib/criu-static-plugins/cuda_plugin.so
122125
BINARY_DIR ${CRIU_BUILD_DIR}
123126
DEPENDS protobuf::static protobuf-c::static libnet::static libnl::static libcap::static libaio::static zlib::static libmnl::static libnftnl::static libnftables::static uuid::static libintl::static
124127
)
125128

126-
install(FILES ${CRIU_INSTALL_DIR}/lib/libcriu.o DESTINATION lib)
127-
install(PROGRAMS ${CRIU_INSTALL_DIR}/bin/criu DESTINATION bin)
128-
install(DIRECTORY ${CRIU_INSTALL_DIR}/include/criu DESTINATION include)
129+
install(FILES ${CRIU_INSTALL_DIR}/lib/libcriu.o DESTINATION ${CMAKE_INSTALL_LIBDIR})
130+
install(PROGRAMS ${CRIU_INSTALL_DIR}/bin/criu DESTINATION ${CMAKE_INSTALL_BINDIR})
131+
install(DIRECTORY ${CRIU_INSTALL_DIR}/include/criu DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
132+
install(FILES ${CRIU_INSTALL_DIR}/lib/criu-static-plugins/cuda_plugin.so DESTINATION ${CMAKE_INSTALL_LIBDIR}/criu-static-plugins)
129133

130-
install(DIRECTORY ${PROTOBUF_C_HEADER_DIR}/ DESTINATION include/)
134+
install(DIRECTORY ${PROTOBUF_C_HEADER_DIR}/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
131135

132136
message(STATUS "CRIU configuration completed")
133137

patch/criu-build.patch

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,3 +190,15 @@ index ef78bcec7..4a64c975a 100644
190190

191191
#include "image.h"
192192
#include "servicefd.h"
193+
diff --git a/plugins/cuda/Makefile b/plugins/cuda/Makefile
194+
index cc3d98ac9..6ba0defe8 100644
195+
--- a/plugins/cuda/Makefile
196+
+++ b/plugins/cuda/Makefile
197+
@@ -7,6 +7,7 @@ PLUGIN_INCLUDE := -iquote../../include
198+
PLUGIN_INCLUDE += -iquote../../criu/include
199+
PLUGIN_INCLUDE += -iquote../../criu/arch/$(ARCH)/include/
200+
PLUGIN_INCLUDE += -iquote../../
201+
+PLUGIN_INCLUDE += $(CUDA_PLUGIN_LIBCAP_CFLAGS)
202+
203+
COMPEL := ../../compel/compel-host
204+

0 commit comments

Comments
 (0)