Skip to content

Commit 95cf42a

Browse files
Merge pull request #169 from llnl/checkpoint/02-02-26-new
Checkpoint/02 02 26
2 parents 5e30327 + e8211c2 commit 95cf42a

90 files changed

Lines changed: 11347 additions & 2148 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ ColumnLimit: 100
44
AllowShortFunctionsOnASingleLine: Inline
55
DerivePointerAlignment: false
66
PointerAlignment: Left
7-
UseTab: Never
7+
UseTab: Never

.cmake-format

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
format:
2+
tab_size: 2
3+
line_width: 100
4+
dangle_parens: true
5+
max_pargs_hwrap: 3
6+
separate_ctrl_name_with_space: false
7+
separate_fn_name_with_space: false

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
// Sets the run context to one level up instead of the .devcontainer folder.
77
"context": "..",
88
// Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
9-
"dockerfile": "../Dockerfile",
9+
"dockerfile": "../infrastructure/docker/Dockerfile",
1010
},
1111
"runArgs": [
1212
"-ti",

.editorconfig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
root = true
2+
3+
[CMakeLists.txt]
4+
indent_style = space
5+
indent_size = 4
6+
end_of_line = lf
7+
charset = utf-8
8+
trim_trailing_whitespace = true
9+
insert_final_newline = true
10+
11+
[*.{sh,sh.in}]
12+
indent_style = space
13+
indent_size = 2
14+
end_of_line = lf
15+
charset = utf-8
16+
trim_trailing_whitespace = true
17+
insert_final_newline = true

.github/workflows/format-check.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,27 @@ jobs:
1313
steps:
1414
- uses: actions/checkout@v4
1515

16+
- name: Set up Go
17+
uses: actions/setup-go@v5
18+
with:
19+
go-version: '1.21'
20+
1621
- name: Install clang-format
1722
run: |
1823
sudo apt-get update
1924
sudo apt-get install -y --no-install-recommends \
2025
build-essential \
2126
clang-format-19
27+
28+
- name: Install shfmt
29+
run: |
30+
go install mvdan.cc/sh/v3/cmd/shfmt@latest
31+
echo "$HOME/go/bin" >> $GITHUB_PATH
32+
33+
- name: Install cmake-format
34+
run: |
35+
sudo apt-get install -y python3-pip
36+
sudo pip3 install cmake-format
2237
2338
- name: Test formatting
2439
run: |

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,8 @@ poc/bpf-core/vmlinux.h
7878
deps
7979

8080
#nfs
81-
*.nfs*
81+
*.nfs*
82+
83+
# Sphinx documentation builds
84+
docs/_build/
85+
docs/_static/__pycache__/

.shellcheckrc

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# .shellcheckrc for CMake templates
2+
# Allow @placeholder@ sourcing
3+
disable=SC1090,SC1091
4+
# Allow sed patterns with @ symbols
5+
disable=SC2001
6+
# Allow @VAR@ unquoted (will be replaced)
7+
disable=SC2086
8+
disable=SC2050
9+
disable=SC2155
10+
11+
# Enforce style
12+
# Use [[ ]] consistently
13+
enable=require-double-brackets
14+
# Use ${var} consistently
15+
enable=require-variable-braces

.vscode/settings.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
{
2-
"cmake.configureArgs": [
3-
"-DCMAKE_PREFIX_PATH=/home/cc/datacrumbs/dependency/.spack-env/view"
4-
],
52
"editor.formatOnSave": true,
63
"files.associations": {
74
"string": "cpp",

CMakeLists.txt

100755100644
Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ option(DATACRUMBS_TRACE_ALL_PROCESSES_OPT "Trace all processes" OFF)
6262
set(DATACRUMBS_INCLUSION_PATH "NONE" CACHE STRING "Inclusion path for datacrumbs")
6363
set(DATACRUMBS_CONFIGURED_TRACE_DIR "/tmp" CACHE STRING "Trace directory for datacrumbs")
6464
set(DATACRUMBS_CONFIGURED_LOG_DIR "/tmp" CACHE STRING "Log directory for datacrumbs")
65+
set(DATACRUMBS_CONFIGURED_RUN_DIR "NONE" CACHE STRING "Run directory for datacrumbs")
6566

6667
option(DATACRUMBS_BPF_PRINT_ENABLE "Enable BPF print" OFF)
6768
set(DATACRUMBS_MODE_STR "TRACE" CACHE STRING "Mode for datacrumbs (TRACE or PROFILE)")
@@ -84,6 +85,15 @@ set(DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS "1000" CACHE STRING "Threshold in
8485
# Profiling Options
8586
set(DATACRUMBS_TIME_INTERVAL_NS "1000000" CACHE STRING "Profiling time interval in nanosecond")
8687

88+
# Scheduling Options
89+
set(DATACRUMBS_LAUNCHER_TYPE "FLUX" CACHE STRING "Scheduler type for datacrumbs (FLUX, SLURM, OPENMPI, or NONE)")
90+
set_property(CACHE DATACRUMBS_LAUNCHER_TYPE PROPERTY STRINGS FLUX SLURM OPENMPI NONE)
91+
set(DATACRUMBS_SCHEDULER_JOBID_ENV_VAR "NONE" CACHE STRING "Scheduler job ID environment variable name")
92+
set(DATACRUMBS_SCHEDULER_NODES_CMD_OPT "NONE" CACHE STRING "Scheduler option for setting nodes")
93+
set(DATACRUMBS_SCHEDULER_PPN_CMD_OPT "NONE" CACHE STRING "Scheduler option for setting processes per node")
94+
set(DATACRUMBS_SCHEDULER_RUN_CMD "NONE" CACHE STRING "Scheduler run command")
95+
set(DATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS "" CACHE STRING "Scheduler run extra args")
96+
8797
# Other options
8898
set(DATACRUMBS_LOG_LEVEL_STR "INFO" CACHE STRING "Log Level for compiling ${UPPER_PROJECT_NAME}")
8999
set_property(CACHE DATACRUMBS_LOG_LEVEL_STR PROPERTY STRINGS ERROR WARN INFO DEBUG TRACE)
@@ -139,6 +149,11 @@ message(STATUS " - Found kernel headers at: ${DATACRUMBS_KERNEL_HEAD
139149
message(STATUS " - DATACRUMBS_KERNEL_UNAME_R: ${DATACRUMBS_KERNEL_UNAME_R}")
140150
message(STATUS " - DATACRUMBS_CONFIGURED_TRACE_DIR: ${DATACRUMBS_CONFIGURED_TRACE_DIR}")
141151
message(STATUS " - DATACRUMBS_CONFIGURED_LOG_DIR: ${DATACRUMBS_CONFIGURED_LOG_DIR}")
152+
message(STATUS " - DATACRUMBS_LAUNCHER_TYPE: ${DATACRUMBS_LAUNCHER_TYPE}")
153+
message(STATUS " - DATACRUMBS_SCHEDULER_JOBID_ENV_VAR: ${DATACRUMBS_SCHEDULER_JOBID_ENV_VAR}")
154+
message(STATUS " - DATACRUMBS_SCHEDULER_NODES_CMD_OPT: ${DATACRUMBS_SCHEDULER_NODES_CMD_OPT}")
155+
message(STATUS " - DATACRUMBS_SCHEDULER_PPN_CMD_OPT: ${DATACRUMBS_SCHEDULER_PPN_CMD_OPT}")
156+
message(STATUS " - DATACRUMBS_SCHEDULER_RUN_CMD: ${DATACRUMBS_SCHEDULER_RUN_CMD}")
142157

143158
if(NOT EXISTS "${DATACRUMBS_CONFIGURED_TRACE_DIR}")
144159
message(FATAL_ERROR "[${UPPER_PROJECT_NAME}] DATACRUMBS_CONFIGURED_TRACE_DIR does not exist: ${DATACRUMBS_CONFIGURED_TRACE_DIR}")
@@ -424,7 +439,7 @@ add_dependencies(datacrumbs_obj datacrumbs_bpf_skel)
424439

425440
# Build the final executable by linking server.cpp and the object library
426441
add_executable(${PROJECT_NAME} ${DATACRUMBS_SERVER_SRC})
427-
target_link_libraries(${PROJECT_NAME} ${DEPENDENCY_LIB} datacrumbs_obj)
442+
target_link_libraries(${PROJECT_NAME} datacrumbs_obj ${DEPENDENCY_LIB})
428443
add_dependencies(${PROJECT_NAME} datacrumbs_bpf_skel datacrumbs_obj)
429444

430445
# Install the main processing executable into DATACRUMBS_INSTALL_BINARYDIR
@@ -587,6 +602,8 @@ set(_DATACRUMBS_DATA_FILES
587602
"${CMAKE_DATA_OUTPUT_DIRECTORY}/categories-${DATACRUMBS_USER}-${DATACRUMBS_HOST}.json"
588603
"${CMAKE_DATA_OUTPUT_DIRECTORY}/probes-${DATACRUMBS_USER}-${DATACRUMBS_HOST}.json"
589604
)
605+
# Ensure the data output directory exists
606+
file(MAKE_DIRECTORY ${CMAKE_DATA_OUTPUT_DIRECTORY})
590607

591608
if(_DATACRUMBS_DATA_FILES)
592609
install(FILES ${_DATACRUMBS_DATA_FILES}
@@ -775,6 +792,15 @@ install(
775792
${DATACRUMBS_INSTALL_SBINARYDIR}
776793
)
777794

795+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_salloc.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_salloc @ONLY)
796+
install(
797+
PROGRAMS
798+
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_salloc
799+
DESTINATION
800+
${DATACRUMBS_INSTALL_BINARYDIR}
801+
)
802+
803+
778804
# Create an empty directory at install time
779805
install(CODE "file(MAKE_DIRECTORY \"\${DATACRUMBS_INSTALL_LIBEXEC}/sbin\")")
780806

@@ -795,15 +821,15 @@ if(NOT DATACRUMBS_INCLUSION_PATH STREQUAL "NONE")
795821
set(DATACRUMBS_VARS ${DATACRUMBS_VARS} --inclusion_path ${DATACRUMBS_INCLUSION_PATH})
796822
endif()
797823

798-
add_test(NAME datacrumbs_start COMMAND ${DATACRUMBS_PATH}/datacrumbs start ${DATACRUMBS_HOST} ${DATACRUMBS_VARS})
824+
add_test(NAME datacrumbs_start COMMAND ${DATACRUMBCMAKE_RUNTIME_OUTPUT_DIRECTORYS_PATH}/datacrumbs start ${DATACRUMBS_HOST} ${DATACRUMBS_VARS})
799825
set_tests_properties(datacrumbs_start PROPERTIES DEPENDS datacrumbs_pretest)
800826
set_tests_properties(datacrumbs_start PROPERTIES DEPENDS ${PROJECT_NAME})
801827

802-
add_test(NAME datacrumbs_run COMMAND ${DATACRUMBS_PATH}/datacrumbs run ${DATACRUMBS_HOST} ${DATACRUMBS_VARS})
828+
add_test(NAME datacrumbs_run COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs run ${DATACRUMBS_HOST} ${DATACRUMBS_VARS})
803829
set_tests_properties(datacrumbs_run PROPERTIES DEPENDS datacrumbs_pretest)
804830
set_tests_properties(datacrumbs_run PROPERTIES DEPENDS ${PROJECT_NAME})
805831

806-
add_test(NAME datacrumbs_stop COMMAND ${DATACRUMBS_PATH}/datacrumbs stop ${DATACRUMBS_HOST} ${DATACRUMBS_VARS})
832+
add_test(NAME datacrumbs_stop COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs stop ${DATACRUMBS_HOST} ${DATACRUMBS_VARS})
807833
set_tests_properties(datacrumbs_stop PROPERTIES DEPENDS datacrumbs_pretest)
808834
set_tests_properties(datacrumbs_stop PROPERTIES DEPENDS ${PROJECT_NAME})
809835

cmake/configure_files/datacrumbs_config.h.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
#cmakedefine DATACRUMBS_CONFIG_PATH "@DATACRUMBS_CONFIG_PATH@"
4343
#cmakedefine DATACRUMBS_LOG_DIR "@DATACRUMBS_LOG_DIR@"
4444
#cmakedefine DATACRUMBS_DATA_DIR "@DATACRUMBS_DATA_DIR@"
45-
#cmakedefine DATACRUMBS_INSTALL_RUNSTATEDIR "@DATACRUMBS_INSTALL_RUNSTATEDIR@"
45+
#cmakedefine DATACRUMBS_INSTALL_RUNSTATEDIR "@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@"
4646

4747
#cmakedefine DATACRUMBS_ENABLE_INCLUSION_PATH @DATACRUMBS_ENABLE_INCLUSION_PATH@
4848
#ifndef DATACRUMBS_ENABLE_INCLUSION_PATH

0 commit comments

Comments
 (0)