From 16bf967fdfc1db403968ff5baf19f6c9e0c8b787 Mon Sep 17 00:00:00 2001 From: Hariharan Devarajan Date: Sat, 11 Oct 2025 12:55:16 -0700 Subject: [PATCH 1/7] feat: add run instructions and example configuration for Datacrumbs --- CMakeLists.txt | 4 + docs/build.rst | 211 ++++++++++++++++++++++++ docs/example/example.yaml | 8 + docs/index.rst | 2 + docs/patch/bpftime-v0.2.0.patch | 275 ++++++++++++++++++++++++++++++++ docs/run.rst | 42 +++++ 6 files changed, 542 insertions(+) create mode 100644 docs/build.rst create mode 100755 docs/example/example.yaml create mode 100644 docs/patch/bpftime-v0.2.0.patch create mode 100644 docs/run.rst diff --git a/CMakeLists.txt b/CMakeLists.txt index d8253652..938e325b 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -722,6 +722,10 @@ add_test(NAME datacrumbs_start COMMAND ${CMAKE_BINARY_DIR}/bin/datacrumbs start set_tests_properties(datacrumbs_start PROPERTIES DEPENDS datacrumbs_pretest) set_tests_properties(datacrumbs_start PROPERTIES DEPENDS ${PROJECT_NAME}) +add_test(NAME datacrumbs_run COMMAND ${CMAKE_BINARY_DIR}/bin/datacrumbs run ${DATACRUMBS_HOST} ${DATACRUMBS_VARS}) +set_tests_properties(datacrumbs_run PROPERTIES DEPENDS datacrumbs_pretest) +set_tests_properties(datacrumbs_run PROPERTIES DEPENDS ${PROJECT_NAME}) + add_test(NAME datacrumbs_stop COMMAND ${CMAKE_BINARY_DIR}/bin/datacrumbs stop ${DATACRUMBS_HOST} ${DATACRUMBS_VARS}) set_tests_properties(datacrumbs_stop PROPERTIES DEPENDS datacrumbs_pretest) set_tests_properties(datacrumbs_stop PROPERTIES DEPENDS ${PROJECT_NAME}) diff --git a/docs/build.rst b/docs/build.rst new file mode 100644 index 00000000..632174af --- /dev/null +++ b/docs/build.rst @@ -0,0 +1,211 @@ +.. _build_instructions: + +Build Instructions +================== + +This guide describes how to build and install all dependencies required for `datacrumbs`, including `bpftool` (tag v7.5.0), with all components installed under a custom prefix directory. + +Prerequisites +------------- + +- Git +- CMake +- GCC or Clang +- Python (for Sphinx documentation) +- Spack (recommended for dependency management) + +Set the installation prefix: + +.. code-block:: bash + + export PREFIX=/your/custom/prefix + +1. Build and Install Dependencies for datacrumbs +----------------------------------------------- + +The following dependencies are required for building `datacrumbs`: + +- bpftool (v7.5.0) and libbpf (v1.5.0) +- json-c +- yaml-cpp +- llvm +- (Optional) bpftime for user-space + +**bpftool (v7.5.0) and libbpf (v1.5.0):** + +.. code-block:: bash + + git clone https://github.com/libbpf/bpftool.git + pushd bpftool + git checkout tags/v7.5.0 -b v7.5.0 + git submodule update --init --recursive + pushd libbpf + git checkout tags/v1.5.0 -b v1.5.0 + cd src + DESTDIR=$PREFIX make install -j + popd + cd src + DESTDIR=$PREFIX make install -j + popd + pushd $PREFIX + bpf_header=$(find . -name bpf.h | head -n 1) + bpf_header=$(readlink -f $bpf_header) + bpf_install_dir=$(dirname $(dirname $(dirname $bpf_header))) + if [ "$bpf_install_dir" != "$PREFIX" ]; then + mv $bpf_install_dir/include $PREFIX + mv $bpf_install_dir/lib* $PREFIX + fi + + bpftool=$(find . -name bpftool | head -n 1) + bpftool_install_dir=$(dirname $(dirname $bpftool)) + if [ "$bpftool_install_dir" != "$PREFIX" ]; then + mv $bpftool_install_dir/sbin $PREFIX + mv $bpftool_install_dir/share $PREFIX + fi + popd + echo "Checking installed files under \$PREFIX:" + echo "bpf.h:" + find $PREFIX -name bpf.h + + echo "libbpf.so:" + find $PREFIX -name libbpf.so + + echo "libbpf.pc:" + find $PREFIX -name libbpf.pc + + echo "bpftool:" + find $PREFIX -name bpftool + +Expected Output (with PREFIX=/home/haridev/temp/install) +-------------------------------------------------------- + +After running the above commands, you should see output similar to: + +bpf.h: + /home/haridev/temp/install/include/bpf/bpf.h + +libbpf.so: + /home/haridev/temp/install/lib/libbpf.so + +libbpf.pc: + /home/haridev/temp/install/lib/pkgconfig/libbpf.pc + +bpftool: + /home/haridev/temp/install/sbin/bpftool + + This confirms that bpftool and libbpf have been installed under your custom prefix directory. + +**Clone datacrumbs:** + +.. code-block:: bash + + git clone https://github.com/eunomia-bpf/datacrumbs.git + export DATACRUMBS_DIR=$(realpath datacrumbs) + +**(Optional) bpftime for User-space:** + +.. code-block:: bash + + git clone https://github.com/eunomia-bpf/bpftime.git + pushd bpftime + git checkout tags/v0.2.0 -b v0.2.0 + git apply $DATACRUMBS_DIR/docs/patch/bpftime-v0.2.0.patch + mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=$PREFIX .. + make + make install + popd + + + +1. Install Remaining Dependencies: json-c, yaml-cpp, llvm +--------------------------------------------------------- + +**Recommended: Use Spack** + +.. code-block:: bash + + git clone https://github.com/spack/spack.git + . spack/share/spack/setup-env.sh + spack install json-c cppyaml llvm + +**If Spack is not available:** + +- **LLVM:** Install via your package manager + + - Fedora/RHEL: + .. code-block:: bash + + sudo dnf install llvm-devel + + - Ubuntu/Debian: + .. code-block:: bash + + sudo apt-get install llvm-dev + +- **json-c:** Build from source + + .. code-block:: bash + + git clone https://github.com/json-c/json-c.git + pushd json-c + git checkout tags/json-c-0.18-20240915 -b json-c-0.18-20240915 + mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=$PREFIX .. + make -j + make install -j + popd + +- **yaml-cpp:** Build from source + + .. code-block:: bash + + git clone https://github.com/jbeder/yaml-cpp.git + pushd yaml-cpp + git checkout tags/yaml-cpp-0.7.0 -b yaml-cpp-0.7.0 + mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=$PREFIX .. + make -j + make install -j + popd + +2. Build and Install datacrumbs +--------------------------------- +With all dependencies installed under your custom prefix directory, you can now build and install `datacrumbs`: + +Create a probe YAML for the system: + +.. code-block:: bash + + cp $DATACRUMBS_DIR/docs/example/example.yaml $DATACRUMBS_DIR/etc/datacrumbs/configs/probe.yaml + # Edit the probe.yaml as needed + +Set CMake arguments: + +.. code-block:: bash + + cmake_args=( + -DCMAKE_PREFIX_PATH=$PREFIX + -DCMAKE_INSTALL_PREFIX=$PREFIX + -DBPFTOOL_EXECUTABLE=$PREFIX/sbin/bpftool + -DDATACRUMBS_HOST=$(hostname) + -DDATACRUMBS_USER=${USER} + ) + +If you want to use a custom host name or user, set them explicitly: + +.. code-block:: bash + + # cmake_args+=(-DDATACRUMBS_HOST=) + # cmake_args+=(-DDATACRUMBS_USER=) + +Build and install datacrumbs: + +.. code-block:: bash + + export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/lib64/pkgconfig:$PKG_CONFIG_PATH + pushd $DATACRUMBS_DIR + mkdir -p build && cd build + cmake "${cmake_args[@]}" .. + make -j + popd diff --git a/docs/example/example.yaml b/docs/example/example.yaml new file mode 100755 index 00000000..c90df2a5 --- /dev/null +++ b/docs/example/example.yaml @@ -0,0 +1,8 @@ +name: example +capture_probes: + - name: libc + probe: uprobe + type: binary + file: /usr/lib64/libc.so.6 + regex: (?!.*_)(?!.*cold)(?!.*time)(?!.*grant)(?!.*poll)(?!.*signal)(?!.*harm)(?!.*hasm).* +profiling_interval: 0.0001 \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index b895c8b2..e6f8ff48 100755 --- a/docs/index.rst +++ b/docs/index.rst @@ -12,6 +12,8 @@ DFTracer: is a library for profiling I/O calls and application functions. :caption: User Guide overview + build + run ================== diff --git a/docs/patch/bpftime-v0.2.0.patch b/docs/patch/bpftime-v0.2.0.patch new file mode 100644 index 00000000..3f34c1ca --- /dev/null +++ b/docs/patch/bpftime-v0.2.0.patch @@ -0,0 +1,275 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a36fe07..373a2b3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -231,7 +231,7 @@ if(${BPFTIME_BUILD_STATIC_LIB}) + ) + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libbpftime.a +- DESTINATION ~/.bpftime ++ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + ) + endif() + +@@ -253,12 +253,12 @@ endif() + + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") + +-set(DEST_DIR "$ENV{HOME}/.bpftime") ++set(DEST_DIR "${CMAKE_INSTALL_PREFIX}") + + if(${BPFTIME_BUILD_WITH_LIBBPF}) +- install(TARGETS bpftime-agent bpftime_text_segment_transformer bpftime-syscall-server CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${DEST_DIR}) ++ install(TARGETS bpftime-agent bpftime_text_segment_transformer bpftime-syscall-server CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${DEST_DIR}/lib) + else() +- install(TARGETS bpftime-agent bpftime-syscall-server CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${DEST_DIR}) ++ install(TARGETS bpftime-agent bpftime-syscall-server CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${DEST_DIR}/lib) + endif() + + # add_subdirectory(./example/mix-schedule-mnist/cpu) +diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt +index 1ba02cc..fb5fab2 100644 +--- a/daemon/CMakeLists.txt ++++ b/daemon/CMakeLists.txt +@@ -66,7 +66,7 @@ set_property(TARGET libbpftime_daemon PROPERTY CXX_STANDARD 20) + add_dependencies(bpftime_daemon libbpftime_daemon) + target_link_libraries(bpftime_daemon PRIVATE libbpftime_daemon) + +-install(TARGETS bpftime_daemon CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ~/.bpftime) ++install(TARGETS bpftime_daemon CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) + + if(BPFTIME_ENABLE_UNIT_TESTING) + add_subdirectory(test) +diff --git a/runtime/agent/CMakeLists.txt b/runtime/agent/CMakeLists.txt +index 27ae066..7a54834 100644 +--- a/runtime/agent/CMakeLists.txt ++++ b/runtime/agent/CMakeLists.txt +@@ -2,7 +2,7 @@ add_library(bpftime-agent SHARED + agent.cpp + ) + +- ++set(EXTRA_LINK_LIBS -static-libstdc++) + if(${BPFTIME_BUILD_WITH_LIBBPF}) + add_dependencies(bpftime-agent FridaGum spdlog::spdlog bpftime_frida_uprobe_attach_impl bpftime_syscall_trace_attach_impl) + else() +@@ -40,7 +40,7 @@ if(${BPFTIME_ENABLE_CUDA_ATTACH}) + target_link_options(bpftime-agent PUBLIC "-Wl,--whole-archive" "$" "$" "$" "$" "-Wl,--no-whole-archive") + target_link_libraries(bpftime-agent PUBLIC bpftime_nv_attach_impl) + target_include_directories(bpftime-agent PUBLIC ${NV_ATTACH_IMPL_INCLUDE}) +- set(EXTRA_LINK_LIBS bpftime_llvm_vm ++ set(EXTRA_LINK_LIBS ${EXTRA_LINK_LIBS} bpftime_llvm_vm + bpftime_vm + llvmbpf_vm) + endif() +diff --git a/runtime/include/bpftime_config.hpp b/runtime/include/bpftime_config.hpp +index 8032193..8cd5118 100644 +--- a/runtime/include/bpftime_config.hpp ++++ b/runtime/include/bpftime_config.hpp +@@ -4,19 +4,20 @@ + #include + #include + #include ++#include "spdlog/spdlog.h" + #include + #include + #include + + #ifndef DEFAULT_LOGGER_OUTPUT_PATH +-#define DEFAULT_LOGGER_OUTPUT_PATH "~/.bpftime/runtime.log" ++#define DEFAULT_LOGGER_OUTPUT_PATH "/usr/workspace/dldl/bpftime.log" + #endif + + #ifndef DEFAULT_VM_NAME + #define DEFAULT_VM_NAME "llvm" + #endif + +-#define LOG_PATH_MAX_LEN 1024 ++#define LOG_PATH_MAX_LEN 16*1024 + #define VM_NAME_MAX_LEN 128 + + // Default and limits for file descriptor count +@@ -72,6 +73,7 @@ struct agent_config { + + const char *get_logger_output_path() const + { ++ SPDLOG_INFO("logger_output_path: {}", logger_output_path); + return logger_output_path; + } + void set_logger_output_path(const char *path) +diff --git a/runtime/include/bpftime_logger.hpp b/runtime/include/bpftime_logger.hpp +index 6e1480e..69c5040 100644 +--- a/runtime/include/bpftime_logger.hpp ++++ b/runtime/include/bpftime_logger.hpp +@@ -40,7 +40,9 @@ inline std::string expand_user_path(const std::string &input_path) + inline void bpftime_set_logger(const std::string &target) noexcept + { + std::string logger_target = expand_user_path(target); +- spdlog::drop_all(); ++ SPDLOG_INFO("Initialize logger start"); ++ // spdlog::drop_all(); ++ SPDLOG_INFO("Initialize logger drop"); + if (logger_target == "console") { + // Set logger to stderr + auto logger = spdlog::stderr_color_mt("stderr"); +@@ -58,8 +60,10 @@ inline void bpftime_set_logger(const std::string &target) noexcept + spdlog::set_default_logger(logger); + } + ++ SPDLOG_INFO("Initialize logger"); + // Load log level from environment + spdlog::cfg::load_env_levels(); ++ SPDLOG_INFO("Initialize logger Levels"); + } + + /* +diff --git a/runtime/include/bpftime_shm.hpp b/runtime/include/bpftime_shm.hpp +index 1ff769c..8c45f10 100644 +--- a/runtime/include/bpftime_shm.hpp ++++ b/runtime/include/bpftime_shm.hpp +@@ -16,6 +16,7 @@ + #elif __APPLE__ + #include "bpftime_epoll.h" + #endif ++#include + + extern "C" { + struct ebpf_inst; +diff --git a/runtime/src/bpf_helper.cpp b/runtime/src/bpf_helper.cpp +index cb7693f..be1f313 100644 +--- a/runtime/src/bpf_helper.cpp ++++ b/runtime/src/bpf_helper.cpp +@@ -22,7 +22,13 @@ + #ifdef ENABLE_BPFTIME_VERIFIER + #include "bpftime-verifier.hpp" + #endif ++#ifndef _GNU_SOURCE ++#define _GNU_SOURCE ++#endif ++ ++#include + ++#define gettid() syscall(SYS_gettid) + #include "platform_utils.hpp" + #include "spdlog/spdlog.h" + #include +diff --git a/runtime/src/bpf_map/userspace/ringbuf_map.cpp b/runtime/src/bpf_map/userspace/ringbuf_map.cpp +index 94f19bb..1700381 100644 +--- a/runtime/src/bpf_map/userspace/ringbuf_map.cpp ++++ b/runtime/src/bpf_map/userspace/ringbuf_map.cpp +@@ -16,6 +16,7 @@ + #if __APPLE__ + #include "bpftime_epoll.h" + #endif ++#include + + enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, +diff --git a/runtime/src/bpftime_config.cpp b/runtime/src/bpftime_config.cpp +index a46e326..22d43e0 100644 +--- a/runtime/src/bpftime_config.cpp ++++ b/runtime/src/bpftime_config.cpp +@@ -98,21 +98,25 @@ agent_config bpftime::construct_agent_config_from_env() noexcept + auto helpers_sv = std::string_view(custom_helpers); + process_helper_sv(helpers_sv, ',', agent_config); + } else { ++ SPDLOG_INFO("Using custom_helpers: {}", true); + agent_config.enable_kernel_helper_group = + agent_config.enable_shm_maps_helper_group = + agent_config.enable_ufunc_helper_group = true; + } + + if (getenv("BPFTIME_DISABLE_JIT") != nullptr) { ++ SPDLOG_INFO("Using jit_enabled: {}", false); + agent_config.jit_enabled = false; + } + + if (getenv("BPFTIME_ALLOW_EXTERNAL_MAPS") != nullptr) { ++ SPDLOG_INFO("Using allow_non_buildin_map_types: {}", true); + agent_config.allow_non_buildin_map_types = true; + } + + // Parse shared memory size with validation (1MB min, 10GB max) + if (auto shm_size = parse_numeric_env("BPFTIME_SHM_MEMORY_MB", 1, 10240)) { ++ SPDLOG_INFO("Using shm_memory_size: {}", *shm_size); + agent_config.shm_memory_size = *shm_size; + } + +@@ -120,6 +124,7 @@ agent_config bpftime::construct_agent_config_from_env() noexcept + if (auto max_fd = parse_numeric_env("BPFTIME_MAX_FD_COUNT", + MIN_MAX_FD_COUNT, + MAX_MAX_FD_COUNT)) { ++ SPDLOG_INFO("Using max_fd_count: {}", *max_fd); + agent_config.max_fd_count = *max_fd; + } + +@@ -132,6 +137,7 @@ agent_config bpftime::construct_agent_config_from_env() noexcept + + const char *logger_target = std::getenv("BPFTIME_LOG_OUTPUT"); + if (logger_target != nullptr) { ++ SPDLOG_INFO("Using logger_target: {}", logger_target); + agent_config.set_logger_output_path(logger_target); + } + return agent_config; +diff --git a/runtime/syscall-server/CMakeLists.txt b/runtime/syscall-server/CMakeLists.txt +index 20ac675..3dc1a07 100644 +--- a/runtime/syscall-server/CMakeLists.txt ++++ b/runtime/syscall-server/CMakeLists.txt +@@ -29,7 +29,8 @@ target_link_libraries(bpftime-syscall-server PUBLIC + -lpthread + -lm + -ldl +- spdlog::spdlog) ++ spdlog::spdlog ++ -static-libstdc++) + + add_dependencies(bpftime-syscall-server spdlog::spdlog) + +diff --git a/runtime/syscall-server/syscall_server_utils.cpp b/runtime/syscall-server/syscall_server_utils.cpp +index 0699e72..cfaf10e 100644 +--- a/runtime/syscall-server/syscall_server_utils.cpp ++++ b/runtime/syscall-server/syscall_server_utils.cpp +@@ -43,6 +43,7 @@ void start_up(syscall_context &ctx) + SPDLOG_INFO("Starting syscall server.."); + already_setup = true; + auto agent_config = construct_agent_config_from_env(); ++ SPDLOG_INFO("Initialize syscall server agent_config done"); + bpftime_set_logger(std::string(agent_config.get_logger_output_path())); + SPDLOG_INFO("Initialize syscall server"); + +diff --git a/tools/aot/CMakeLists.txt b/tools/aot/CMakeLists.txt +index 66be305..cf7c50c 100644 +--- a/tools/aot/CMakeLists.txt ++++ b/tools/aot/CMakeLists.txt +@@ -21,4 +21,4 @@ target_compile_definitions(bpftime-aot-cli PRIVATE _GNU_SOURCE) + + add_dependencies(bpftime-aot-cli spdlog::spdlog argparse bpftime_vm_compat bpftime_llvm_vm libbpf) + +-install(TARGETS bpftime-aot-cli CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ~/.bpftime) ++install(TARGETS bpftime-aot-cli CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +diff --git a/tools/bpftimetool/CMakeLists.txt b/tools/bpftimetool/CMakeLists.txt +index 4d67c56..1920c37 100644 +--- a/tools/bpftimetool/CMakeLists.txt ++++ b/tools/bpftimetool/CMakeLists.txt +@@ -38,4 +38,4 @@ else() + ) + endif() + +-install(TARGETS bpftimetool CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ~/.bpftime) ++install(TARGETS bpftimetool CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +diff --git a/tools/cli/CMakeLists.txt b/tools/cli/CMakeLists.txt +index eb9c5f8..bac265f 100644 +--- a/tools/cli/CMakeLists.txt ++++ b/tools/cli/CMakeLists.txt +@@ -24,4 +24,4 @@ target_compile_definitions(bpftime-cli-cpp PRIVATE _GNU_SOURCE) + + add_dependencies(bpftime-cli-cpp spdlog::spdlog FridaCore argparse spdlog runtime bpftime_vm bpftime_vm_compat) + +-install(TARGETS bpftime-cli-cpp CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ~/.bpftime) ++install(TARGETS bpftime-cli-cpp CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) +diff --git a/vm/llvm-jit b/vm/llvm-jit +--- a/vm/llvm-jit ++++ b/vm/llvm-jit +@@ -1 +1 @@ +-Subproject commit 43b57a1bed0801666a477d8de30a33b8a3a1a878 ++Subproject commit 43b57a1bed0801666a477d8de30a33b8a3a1a878-dirty diff --git a/docs/run.rst b/docs/run.rst new file mode 100644 index 00000000..e6b2a2b7 --- /dev/null +++ b/docs/run.rst @@ -0,0 +1,42 @@ +Run Datacrumbs +============== + +To run Datacrumbs tests, follow these instructions: + +1. **Navigate to the build directory:** + + .. code-block:: bash + + cd $DATACRUMBS_DIR/build + +2. **List all available tests:** + + .. code-block:: bash + + ctest -N + +3. **View arguments for the Datacrumbs start test which is Daemonize script:** + + .. code-block:: bash + + ctest -R datacrumbs_start -VV + + This will show verbose output and the arguments used for the `datacrumbs_start` test. + +4. **View arguments for the Datacrumbs run test which is sync script:** + + .. code-block:: bash + + ctest -R datacrumbs_run -VV + + This will show verbose output and the arguments used for the `datacrumbs_run` test. + +Refer to your project's `ctest` configuration for additional test options. + +5. **Run the `test_simple_dd` test:** + + .. code-block:: bash + + ctest -R test_simple_dd -VV + + This will execute the `test_simple_dd` test with verbose output from the build directory. \ No newline at end of file From 1f08e8415b4cf186259e9ae2b7dc2319099fc6b3 Mon Sep 17 00:00:00 2001 From: Hariharan Devarajan Date: Sat, 11 Oct 2025 23:36:13 -0700 Subject: [PATCH 2/7] feat: update DATACRUMBS_EVENT_SUBMIT macro to include event ID and PID Fixes Make error when bpf_print_enable is on Fixes #114 --- .../plugins/custom_probes/sys_io/sysio.bpf.c | 6 +++--- src/datacrumbs/server/bpf/common.h | 4 ++-- src/datacrumbs/server/bpf/init.bpf.c | 10 ++++++---- src/datacrumbs/server/bpf/macros.bpf.h | 6 +++--- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c b/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c index 4fe44349..76bc5262 100644 --- a/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c +++ b/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c @@ -76,7 +76,7 @@ static inline __attribute__((always_inline)) int sysio_data_exit(struct pt_regs* } else { DBG_PRINTK("Not Found fd:%d, event_id:%llu\n", *fd_ptr, key.event_id); } - DATACRUMBS_EVENT_SUBMIT(event); + DATACRUMBS_EVENT_SUBMIT(event, key.id, event_id); return 0; } #else @@ -185,7 +185,7 @@ static inline __attribute__((always_inline)) int sysio_metadata_exit(struct pt_r } else { DBG_PRINTK("Not Found fd:%d, event_id:%llu\n", *fd_ptr, key.event_id); } - DATACRUMBS_EVENT_SUBMIT(event); + DATACRUMBS_EVENT_SUBMIT(event, key.id, event_id); return 0; } #else @@ -327,7 +327,7 @@ static inline __attribute__((always_inline)) int sysio_open_exit(struct pt_regs* bpf_map_update_elem(&fd_fname, &file_key, fhash, BPF_ANY); } } - DATACRUMBS_EVENT_SUBMIT(event); + DATACRUMBS_EVENT_SUBMIT(event, key.id, event_id); return 0; } #else diff --git a/src/datacrumbs/server/bpf/common.h b/src/datacrumbs/server/bpf/common.h index 5e1818de..669885cc 100644 --- a/src/datacrumbs/server/bpf/common.h +++ b/src/datacrumbs/server/bpf/common.h @@ -183,7 +183,7 @@ static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ct event->id = key.id; event->event_id = event_id; DATACRUMBS_COLLECT_TIME(event); - DATACRUMBS_EVENT_SUBMIT(event); + DATACRUMBS_EVENT_SUBMIT(event, key.id, event_id); return 0; } #else @@ -287,7 +287,7 @@ static inline __attribute__((always_inline)) int usdt_exit(struct pt_regs* ctx, u32 method_hash = hash_and_store(&local_str, len); event->method_hash = method_hash; // 100 - DATACRUMBS_EVENT_SUBMIT(event); + DATACRUMBS_EVENT_SUBMIT(event, key.id, event_id); return 0; } #else diff --git a/src/datacrumbs/server/bpf/init.bpf.c b/src/datacrumbs/server/bpf/init.bpf.c index 009b3280..cd9c146f 100644 --- a/src/datacrumbs/server/bpf/init.bpf.c +++ b/src/datacrumbs/server/bpf/init.bpf.c @@ -14,14 +14,15 @@ static inline __attribute__((always_inline)) int generic_trace_datacrumbs_start( (void)pid; DBG_PRINTK("Tracing PID %d", pid); #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) + u64 event_id = 1; struct general_event_t* event; DATACRUMBS_RB_RESERVE(output, struct general_event_t, event); event->type = 1; event->id = id; - event->event_id = 1; + event->event_id = event_id; event->ts = tsp; event->dur = 0; - DATACRUMBS_EVENT_SUBMIT(event); + DATACRUMBS_EVENT_SUBMIT(event, id, event->event_id); #endif return 0; } @@ -33,14 +34,15 @@ static inline __attribute__((always_inline)) int generic_trace_datacrumbs_stop() bpf_map_delete_elem(&pid_map, &pid); #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) + u64 event_id = 2; struct general_event_t* event; DATACRUMBS_RB_RESERVE(output, struct general_event_t, event); event->type = 1; event->id = id; - event->event_id = 2; + event->event_id = event_id; event->ts = bpf_ktime_get_ns(); event->dur = 0; - DATACRUMBS_EVENT_SUBMIT(event); + DATACRUMBS_EVENT_SUBMIT(event, id, event->event_id); #endif return 0; } diff --git a/src/datacrumbs/server/bpf/macros.bpf.h b/src/datacrumbs/server/bpf/macros.bpf.h index 3a0cb46c..6dac6bcd 100644 --- a/src/datacrumbs/server/bpf/macros.bpf.h +++ b/src/datacrumbs/server/bpf/macros.bpf.h @@ -182,8 +182,8 @@ event->ts = fn->ts; \ event->dur = (te - fn->ts); -#define DATACRUMBS_EVENT_SUBMIT(event) \ - bpf_ringbuf_submit(event, 0); \ - DBG_PRINTK("Pushed pid:%d, event_id:%llu to output\n", (u32)key.id, event_id); +#define DATACRUMBS_EVENT_SUBMIT(event, pid_tgid, event_id) \ + bpf_ringbuf_submit(event, 0); \ + DBG_PRINTK("Pushed pid:%d, event_id:%llu to output\n", (u32)pid_tgid, event_id); #endif // DATACRUMBS_SERVER_BPF_MACROS_BPF_H \ No newline at end of file From d315ebe4ea3341ec14bfd4fc36264aa274a28ff0 Mon Sep 17 00:00:00 2001 From: Hariharan Devarajan Date: Sat, 11 Oct 2025 23:52:50 -0700 Subject: [PATCH 3/7] Refactor configuration management and update probe definitions - Fixes Remove the paths from yaml and make sure we have validation. Fixes #113 - Updated manual probes JSON to include additional function entries for libc. - Expanded probes JSON with a comprehensive list of libc functions. - Removed unused mode and profiling interval parameters from ConfigurationManager. - Simplified argument parsing in ArgumentParser by eliminating mode and profiling interval options. - Adjusted logging to reflect the removal of profiling interval and mode. - Enhanced validation checks for data and trace log directories in ConfigurationManager. - Fixed event submission in BPF code to use correct event ID. --- .gitignore | 5 +- etc/datacrumbs/configs/corona.yaml | 7 +- etc/datacrumbs/configs/docker-toss.yaml | 7 +- etc/datacrumbs/configs/docker.yaml | 7 +- etc/datacrumbs/configs/ebpf.yaml | 6 +- etc/datacrumbs/configs/hdf.yaml | 7 +- etc/datacrumbs/configs/lead-us.yaml | 7 +- etc/datacrumbs/configs/lead.yaml | 7 +- etc/datacrumbs/configs/old/ares.yaml | 51 - etc/datacrumbs/configs/old/chameleon.yaml | 26 - etc/datacrumbs/configs/old/default.yaml | 27 - etc/datacrumbs/configs/old/ior.yaml | 21 - etc/datacrumbs/configs/old/ior_mpiio.yaml | 18 - etc/datacrumbs/configs/old/lima.yaml | 29 - etc/datacrumbs/configs/old/posix.yaml | 15 - etc/datacrumbs/configs/old/stdio.yaml | 18 - etc/datacrumbs/configs/old/wombat.yaml | 20 - etc/datacrumbs/configs/tuolumne.yaml | 7 +- .../data/categories-haridev-lead-us.json | 3751 ++++++++++++++++- .../data/manual-probes-haridev-lead-us.json | 23 +- .../data/probes-haridev-lead-us.json | 945 ++++- .../common/configuration_manager.cpp | 52 +- src/datacrumbs/common/configuration_manager.h | 8 - src/datacrumbs/server/bpf/init.bpf.c | 4 +- 24 files changed, 4742 insertions(+), 326 deletions(-) delete mode 100755 etc/datacrumbs/configs/old/ares.yaml delete mode 100755 etc/datacrumbs/configs/old/chameleon.yaml delete mode 100755 etc/datacrumbs/configs/old/default.yaml delete mode 100755 etc/datacrumbs/configs/old/ior.yaml delete mode 100755 etc/datacrumbs/configs/old/ior_mpiio.yaml delete mode 100644 etc/datacrumbs/configs/old/lima.yaml delete mode 100755 etc/datacrumbs/configs/old/posix.yaml delete mode 100755 etc/datacrumbs/configs/old/stdio.yaml delete mode 100755 etc/datacrumbs/configs/old/wombat.yaml diff --git a/.gitignore b/.gitignore index d14861d3..cf7edf13 100755 --- a/.gitignore +++ b/.gitignore @@ -74,4 +74,7 @@ dlio_env data/file_0_0.dat *.csv *.pfw* -poc/bpf-core/vmlinux.h \ No newline at end of file +poc/bpf-core/vmlinux.h + +#nfs +*.nfs* \ No newline at end of file diff --git a/etc/datacrumbs/configs/corona.yaml b/etc/datacrumbs/configs/corona.yaml index 45de322f..d27a87d2 100755 --- a/etc/datacrumbs/configs/corona.yaml +++ b/etc/datacrumbs/configs/corona.yaml @@ -1,11 +1,6 @@ -name: corona -install_dir: /home/haridev/datacrumbs/install -mode: tracer -trace_file_path: /scratch/haridev/logs/lead2-trace.pfw capture_probes: - name: sys probe: syscalls type: header file: /usr/src/kernels/4.18.0-553.56.1.1toss.t4.x86_64/include/linux/syscalls.h - regex: sys_.* -profiling_interval: 0.0001 \ No newline at end of file + regex: sys_.* \ No newline at end of file diff --git a/etc/datacrumbs/configs/docker-toss.yaml b/etc/datacrumbs/configs/docker-toss.yaml index f13648cf..7a02260c 100755 --- a/etc/datacrumbs/configs/docker-toss.yaml +++ b/etc/datacrumbs/configs/docker-toss.yaml @@ -1,7 +1,3 @@ -name: lead2 -install_dir: /workspaces/datacrumbs/install -mode: tracer -trace_file_path: /scratch/haridev/logs/lead2-trace.pfw capture_probes: - name: custom1 start_event_id: 100000 @@ -32,5 +28,4 @@ capture_probes: - name: iomap probe: kprobe type: ksym - regex: ^iomap(?!.*cold).* -profiling_interval: 0.0001 \ No newline at end of file + regex: ^iomap(?!.*cold).* \ No newline at end of file diff --git a/etc/datacrumbs/configs/docker.yaml b/etc/datacrumbs/configs/docker.yaml index 9576fbf2..1fd04d31 100755 --- a/etc/datacrumbs/configs/docker.yaml +++ b/etc/datacrumbs/configs/docker.yaml @@ -1,7 +1,3 @@ -name: lead2 -install_dir: /workspaces/datacrumbs/install -mode: tracer -trace_file_path: /scratch/haridev/logs/lead2-trace.pfw capture_probes: - name: custom1 start_event_id: 100000 @@ -32,5 +28,4 @@ capture_probes: - name: shm probe: kprobe type: header - file: /usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64/include/linux/shmem_fs.h -profiling_interval: 0.0001 \ No newline at end of file + file: /usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64/include/linux/shmem_fs.h \ No newline at end of file diff --git a/etc/datacrumbs/configs/ebpf.yaml b/etc/datacrumbs/configs/ebpf.yaml index f8a09efd..c601fa5e 100755 --- a/etc/datacrumbs/configs/ebpf.yaml +++ b/etc/datacrumbs/configs/ebpf.yaml @@ -1,6 +1,3 @@ -name: ebpf -mode: tracer -trace_file_path: /scratch/haridev/logs/lead2-trace.pfw capture_probes: - name: custom1 start_event_id: 100000 @@ -9,5 +6,4 @@ capture_probes: file: /home/cc/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c probes: /home/cc/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/probes.json process_header: /home/cc/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h - event_type: 2 -profiling_interval: 0.0001 \ No newline at end of file + event_type: 2 \ No newline at end of file diff --git a/etc/datacrumbs/configs/hdf.yaml b/etc/datacrumbs/configs/hdf.yaml index 5188b530..a19a34c9 100644 --- a/etc/datacrumbs/configs/hdf.yaml +++ b/etc/datacrumbs/configs/hdf.yaml @@ -1,7 +1,3 @@ -name: lima-ebpfx -install_dir: /home/cc/datacrumbs/install -mode: tracer -trace_file_path: /home/cc/logs/lead2-trace.pfw capture_probes: - name: vol probe: uprobe @@ -62,5 +58,4 @@ capture_probes: # probe: uprobe # type: binary # file: /home/cc/apps/h5bench/bin/h5bench_write - # regex: ^(?!__).* -profiling_interval: 0.0001 \ No newline at end of file + # regex: ^(?!__).* \ No newline at end of file diff --git a/etc/datacrumbs/configs/lead-us.yaml b/etc/datacrumbs/configs/lead-us.yaml index dcc1712d..5f7a83d1 100755 --- a/etc/datacrumbs/configs/lead-us.yaml +++ b/etc/datacrumbs/configs/lead-us.yaml @@ -1,11 +1,6 @@ -name: lead2 -install_dir: /home/haridev/datacrumbs/install -mode: tracer -trace_file_path: /scratch/haridev/logs/lead2-trace.pfw capture_probes: - name: libc probe: uprobe type: binary file: /usr/lib64/libc.so.6 - regex: (?!.*_)(?!.*cold)(?!.*time)(?!.*grant)(?!.*poll)(?!.*signal)(?!.*harm)(?!.*hasm).* -profiling_interval: 0.0001 \ No newline at end of file + regex: (?!.*_)(?!.*cold)(?!.*time)(?!.*grant)(?!.*poll)(?!.*signal)(?!.*harm)(?!.*hasm).* \ No newline at end of file diff --git a/etc/datacrumbs/configs/lead.yaml b/etc/datacrumbs/configs/lead.yaml index 5bdc1d74..f9dd0675 100755 --- a/etc/datacrumbs/configs/lead.yaml +++ b/etc/datacrumbs/configs/lead.yaml @@ -1,7 +1,3 @@ -name: lead2 -install_dir: /home/haridev/datacrumbs/install -mode: tracer -trace_file_path: /scratch/haridev/logs/lead2-trace.pfw capture_probes: - name: custom1 start_event_id: 100000 @@ -68,5 +64,4 @@ capture_probes: - name: ior probe: uprobe type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/ior-3.3.0-ip47j26fw7xxfftdzjvy2h36phgcuypv/bin/ior -profiling_interval: 0.0001 \ No newline at end of file + file: /home/haridev/spack/opt/spack/linux-haswell/ior-3.3.0-ip47j26fw7xxfftdzjvy2h36phgcuypv/bin/ior \ No newline at end of file diff --git a/etc/datacrumbs/configs/old/ares.yaml b/etc/datacrumbs/configs/old/ares.yaml deleted file mode 100755 index e564573f..00000000 --- a/etc/datacrumbs/configs/old/ares.yaml +++ /dev/null @@ -1,51 +0,0 @@ -name: ares -install_dir: /home/${USER}/datacrumbs/install -# mode options: `trace` or `profile` -# currently only `trace` mode -mode: trace -file: /home/${USER}/logs/ares-trace.pfw -# if no headers installed use regex as sys.* -system: - - name: sys - header: /usr/src/linux-headers-5.15.0-142/include/linux/syscalls.h - - name: os_page_cache - header: /usr/src/linux-headers-5.15.0-142/include/linux/pagemap.h - - name: swap - header: /usr/src/linux-headers-5.15.0-142/include/linux/swap.h - - name: vfs - header: /usr/src/linux-headers-5.15.0-142/include/linux/fs.h - - name: bio - regex: bio.* - - name: shm - header: /usr/src/linux-headers-5.15.0-142/include/linux/shmem_fs.h - - name: fscache - header: /usr/src/linux-headers-5.15.0-142/include/linux/fscache.h - - name: mm - header: /usr/src/linux-headers-5.15.0-142/include/linux/mm.h - - name: xfs - regex: xfs.* - # similar for any FS type - # - name: ext4 - # regex: ext4.* - - name: iomap - regex: iomap.* - - name: iov - regex: iov.* -io: - - name: libc - link: /usr/lib/x86_64-linux-gnu/libc.so.6 - # - name: hdf5 - # link: /home/${USER}/datacrumbs/install/lib/libhdf5.so - - name: mpi - link: /mnt/repo/software/spack/spack/opt/spack/linux-ubuntu22.04-skylake_avx512/gcc-11.4.0/openmpi-5.0.5-uo523moga7ogcoyiaxci6lngvdfd3tde/lib/libmpi.so -user: - - name: test_posix - link: /home/${USER}/datacrumbs/install/libexec/datacrumbs/bin/df_tracer_test - regex: ^(?!__).* -profile: - interval_sec: 0.0001 - -trace: - args: 1 - # options: `ring_buffer` or `perf` - type: ring_buffer diff --git a/etc/datacrumbs/configs/old/chameleon.yaml b/etc/datacrumbs/configs/old/chameleon.yaml deleted file mode 100755 index 2b574c3b..00000000 --- a/etc/datacrumbs/configs/old/chameleon.yaml +++ /dev/null @@ -1,26 +0,0 @@ -name: chameleon -install_dir: /home/${USER}/datacrumbs/install -# mode options: `trace` or `profile` -# currently only `trace` mode -mode: trace -file: /home/${USER}/logs/chameleon-trace.pfw -# if no headers installed use regex as sys.* -system: - - name: ext4 - regex: ext4.* -io: - - name: libc - link: /usr/lib/x86_64-linux-gnu/libc.so.6 - - name: hdf5 - link: /home/${USER}/datacrumbs/install/lib/libhdf5.so -user: - - name: test_posix - link: /home/${USER}/datacrumbs/install/libexec/datacrumbs/bin/df_tracer_test - regex: ^(?!__).* -profile: - interval_sec: 0.0001 - -trace: - args: 1 - # options: `ring_buffer` or `perf` - type: ring_buffer diff --git a/etc/datacrumbs/configs/old/default.yaml b/etc/datacrumbs/configs/old/default.yaml deleted file mode 100755 index 3e0ca320..00000000 --- a/etc/datacrumbs/configs/old/default.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: default -install_dir: build -mode: trace -file: trace.pfw -user: - - name: app - link: /opt/ior/install/bin/ior - regex: .* - # - name: app2 - # link: /home/cc/datacrumbs/build/tests/df_tracer_test - # regex: .* - # - name: app3 - # link: /opt/ior/install/bin/ior - # regex: .* - - name: mpi - link: /opt/spack/opt/spack/linux-haswell/openmpi-5.0.5-cyoqcxwnzhatvkl44v6axpcamm7clo25/lib/libmpi.so - regex: ^PMPI.* - - name: hdf5 - link: /opt/spack/opt/spack/linux-haswell/hdf5-1.14.5-uue4mohmum6xuuze52b45sqpwcwikccb/lib/libhdf5.so - regex: ^H5.* - -profile: - interval_sec: 0.0001 - -trace: - args: 1 - type: ring_buffer # ring_buffer \ No newline at end of file diff --git a/etc/datacrumbs/configs/old/ior.yaml b/etc/datacrumbs/configs/old/ior.yaml deleted file mode 100755 index c8486976..00000000 --- a/etc/datacrumbs/configs/old/ior.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: default -install_dir: build -mode: trace -file: trace.pfw -user: - - name: app3 - link: /opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/ior-4.0.0-arszr4x4i7xuua4opbyx73oqq7tlzljo/bin/ior - regex: .* - - name: mpi - link: /opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/openmpi-5.0.5-jia45w3wv65epg4kwlx4vkqlsdm4acc7/lib/libmpi.so - regex: ^PMPI.* - - name: hdf5 - link: /opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/hdf5-1.14.5-gynnpoztefewkn2sfomwzdvpe3okwlaf/lib/libhdf5.so - regex: ^H5.* - -profile: - interval_sec: 0.0001 - -trace: - args: 1 - type: ring_buffer # ring_buffer \ No newline at end of file diff --git a/etc/datacrumbs/configs/old/ior_mpiio.yaml b/etc/datacrumbs/configs/old/ior_mpiio.yaml deleted file mode 100755 index d6c94d3d..00000000 --- a/etc/datacrumbs/configs/old/ior_mpiio.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: default -install_dir: build -mode: trace -file: trace-mpiio.pfw -user: - - name: ior - link: /opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/ior-4.0.0-arszr4x4i7xuua4opbyx73oqq7tlzljo/bin/ior - regex: .* - - name: mpi - link: /opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/openmpi-5.0.5-jia45w3wv65epg4kwlx4vkqlsdm4acc7/lib/libmpi.so - regex: ^PMPI.* - -profile: - interval_sec: 0.0001 - -trace: - args: 1 - type: ring_buffer # ring_buffer \ No newline at end of file diff --git a/etc/datacrumbs/configs/old/lima.yaml b/etc/datacrumbs/configs/old/lima.yaml deleted file mode 100644 index 19d9f42a..00000000 --- a/etc/datacrumbs/configs/old/lima.yaml +++ /dev/null @@ -1,29 +0,0 @@ -name: lima -install_dir: /home/lima.linux/datacrumbs/install -mode: trace -file: /home/lima.linux/logs/traceH5D.pfw -# system: -# - name: sys -# header: /usr/src/linux-headers-5.15.0-143/include/linux/syscalls.h -io: - # - name: libc - # link: /usr/lib/x86_64-linux-gnu/libc.so.6 - - name: hdf5 - link: /home/lima.linux/apps/hdf5/lib/libhdf5.so - regex: H5D.* - # - name: h5d - # link: /home/lima.linux/apps/hdf5/lib/libhdf5.so - # regex: H5D.* - # - name: h5f - # link: /home/lima.linux/apps/hdf5/lib/libhdf5.so - # regex: H5F.* -user: - - name: h5bench - link: /home/lima.linux/apps/simple_tests/create_hdf5_c - regex: ^(?!__).* -profile: - interval_sec: 0.0001 - -trace: - args: 1 - type: ring_buffer # ring_buffer diff --git a/etc/datacrumbs/configs/old/posix.yaml b/etc/datacrumbs/configs/old/posix.yaml deleted file mode 100755 index 1c55b306..00000000 --- a/etc/datacrumbs/configs/old/posix.yaml +++ /dev/null @@ -1,15 +0,0 @@ -name: default -install_dir: build -mode: trace -file: trace-posix.pfw -user: - - name: app1 - link: /opt/datacrumbs/build/tests/df_tracer_test - regex: .* - -profile: - interval_sec: 0.0001 - -trace: - args: 1 - type: ring_buffer # ring_buffer perf \ No newline at end of file diff --git a/etc/datacrumbs/configs/old/stdio.yaml b/etc/datacrumbs/configs/old/stdio.yaml deleted file mode 100755 index ea109c92..00000000 --- a/etc/datacrumbs/configs/old/stdio.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: default -install_dir: build -mode: trace -file: trace-stdio.pfw -user: - - name: app1 - link: /home/cc/datacrumbs/build/tests/df_tracer_test_stdio - regex: .* - - name: mpi - link: /opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/openmpi-5.0.5-jia45w3wv65epg4kwlx4vkqlsdm4acc7/lib/libmpi.so - regex: ^PMPI.* - -profile: - interval_sec: 0.0001 - -trace: - args: 1 - type: ring_buffer # ring_buffer \ No newline at end of file diff --git a/etc/datacrumbs/configs/old/wombat.yaml b/etc/datacrumbs/configs/old/wombat.yaml deleted file mode 100755 index ae2638a1..00000000 --- a/etc/datacrumbs/configs/old/wombat.yaml +++ /dev/null @@ -1,20 +0,0 @@ -name: wombat -install_dir: /proj/csc671/proj_shared/datacrumbs/install -mode: trace -file: logs/wombat-trace.pfw -user: - - name: ior - link: /proj/csc671/proj_shared/datacrumbs/install/bin/ior - regex: .* - - name: mpi - link: /autofs/nccs-svm1_wombat_sw/RHEL9.4/spack/opt/spack/linux-rhel9-neoverse_n1/gcc-13.2.0/openmpi-5.0.5-4sftj52a3kir2t6d63yb3ywzoph6xsfw/lib/libmpi.so - regex: ^PMPI.* - - name: hdf5 - link: /proj/csc671/proj_shared/datacrumbs/install/lib/libhdf5.so - regex: ^H5.* -profile: - interval_sec: 0.0001 - -trace: - args: 1 - type: ring_buffer # ring_buffer \ No newline at end of file diff --git a/etc/datacrumbs/configs/tuolumne.yaml b/etc/datacrumbs/configs/tuolumne.yaml index dcc1712d..5f7a83d1 100755 --- a/etc/datacrumbs/configs/tuolumne.yaml +++ b/etc/datacrumbs/configs/tuolumne.yaml @@ -1,11 +1,6 @@ -name: lead2 -install_dir: /home/haridev/datacrumbs/install -mode: tracer -trace_file_path: /scratch/haridev/logs/lead2-trace.pfw capture_probes: - name: libc probe: uprobe type: binary file: /usr/lib64/libc.so.6 - regex: (?!.*_)(?!.*cold)(?!.*time)(?!.*grant)(?!.*poll)(?!.*signal)(?!.*harm)(?!.*hasm).* -profiling_interval: 0.0001 \ No newline at end of file + regex: (?!.*_)(?!.*cold)(?!.*time)(?!.*grant)(?!.*poll)(?!.*signal)(?!.*harm)(?!.*hasm).* \ No newline at end of file diff --git a/etc/datacrumbs/data/categories-haridev-lead-us.json b/etc/datacrumbs/data/categories-haridev-lead-us.json index 957e5444..f5190718 100644 --- a/etc/datacrumbs/data/categories-haridev-lead-us.json +++ b/etc/datacrumbs/data/categories-haridev-lead-us.json @@ -1 +1,3750 @@ -{"1190":{"probe_name":"libc","function_name":"wscanf"},"1189":{"probe_name":"libc","function_name":"writev"},"1188":{"probe_name":"libc","function_name":"write"},"1187":{"probe_name":"libc","function_name":"wprintf"},"1186":{"probe_name":"libc","function_name":"statx"},"1185":{"probe_name":"libc","function_name":"statvfs64"},"1184":{"probe_name":"libc","function_name":"statvfs"},"1183":{"probe_name":"libc","function_name":"statfs64"},"1182":{"probe_name":"libc","function_name":"statfs"},"1181":{"probe_name":"libc","function_name":"stat64"},"1180":{"probe_name":"libc","function_name":"stat"},"1179":{"probe_name":"libc","function_name":"sscanf"},"1178":{"probe_name":"libc","function_name":"sprintf"},"1177":{"probe_name":"libc","function_name":"splice"},"1176":{"probe_name":"libc","function_name":"rmdir"},"1175":{"probe_name":"libc","function_name":"rewinddir"},"1174":{"probe_name":"libc","function_name":"rewind"},"1173":{"probe_name":"libc","function_name":"renameat2"},"1172":{"probe_name":"libc","function_name":"renameat"},"1171":{"probe_name":"libc","function_name":"rename"},"1170":{"probe_name":"libc","function_name":"removexattr"},"1169":{"probe_name":"libc","function_name":"remove"},"1168":{"probe_name":"libc","function_name":"recvmsg"},"1167":{"probe_name":"libc","function_name":"recvmmsg"},"1166":{"probe_name":"libc","function_name":"recvfrom"},"1165":{"probe_name":"libc","function_name":"recv"},"1164":{"probe_name":"libc","function_name":"readv"},"1163":{"probe_name":"libc","function_name":"readunix:0x147810"},"1162":{"probe_name":"libc","function_name":"readunix:0x146e50"},"1161":{"probe_name":"libc","function_name":"readtcp:0x14cc30"},"1160":{"probe_name":"libc","function_name":"readtcp:0x1497e0"},"1159":{"probe_name":"libc","function_name":"readlinkat"},"1158":{"probe_name":"libc","function_name":"readlink"},"1157":{"probe_name":"libc","function_name":"readdir64"},"1156":{"probe_name":"libc","function_name":"readdir"},"1155":{"probe_name":"libc","function_name":"readahead"},"1154":{"probe_name":"libc","function_name":"read"},"1153":{"probe_name":"libc","function_name":"quotactl"},"1152":{"probe_name":"libc","function_name":"pwritev64v2"},"1151":{"probe_name":"libc","function_name":"pwritev64"},"1150":{"probe_name":"libc","function_name":"pwritev2"},"1149":{"probe_name":"libc","function_name":"pwritev"},"1148":{"probe_name":"libc","function_name":"pwrite64"},"1147":{"probe_name":"libc","function_name":"pwrite"},"1146":{"probe_name":"libc","function_name":"putwchar"},"1145":{"probe_name":"libc","function_name":"putwc"},"1144":{"probe_name":"libc","function_name":"putw"},"1143":{"probe_name":"libc","function_name":"puts"},"1142":{"probe_name":"libc","function_name":"putchar"},"1141":{"probe_name":"libc","function_name":"putc"},"1140":{"probe_name":"libc","function_name":"printf"},"1139":{"probe_name":"libc","function_name":"preadv64v2"},"1138":{"probe_name":"libc","function_name":"preadv64"},"1137":{"probe_name":"libc","function_name":"preadv2"},"1136":{"probe_name":"libc","function_name":"preadv"},"1135":{"probe_name":"libc","function_name":"pread64"},"1134":{"probe_name":"libc","function_name":"pread"},"1133":{"probe_name":"libc","function_name":"pipe2"},"1132":{"probe_name":"libc","function_name":"pipe"},"1131":{"probe_name":"libc","function_name":"openlog"},"1130":{"probe_name":"libc","function_name":"opendir"},"1129":{"probe_name":"libc","function_name":"openat64"},"1128":{"probe_name":"libc","function_name":"openat"},"1127":{"probe_name":"libc","function_name":"open64"},"1126":{"probe_name":"libc","function_name":"open"},"1125":{"probe_name":"libc","function_name":"munmap"},"1124":{"probe_name":"libc","function_name":"msync"},"1055":{"probe_name":"libc","function_name":"fstatat"},"1054":{"probe_name":"libc","function_name":"fstat64"},"1053":{"probe_name":"libc","function_name":"fstat"},"1052":{"probe_name":"libc","function_name":"fsetxattr"},"1051":{"probe_name":"libc","function_name":"fseeko64"},"1050":{"probe_name":"libc","function_name":"fseeko"},"1049":{"probe_name":"libc","function_name":"fseek"},"1048":{"probe_name":"libc","function_name":"fscanf"},"1047":{"probe_name":"libc","function_name":"freopen64"},"1046":{"probe_name":"libc","function_name":"freopen"},"1045":{"probe_name":"libc","function_name":"fremovexattr"},"1044":{"probe_name":"libc","function_name":"fread"},"1043":{"probe_name":"libc","function_name":"fputws"},"1042":{"probe_name":"libc","function_name":"fputwc"},"1041":{"probe_name":"libc","function_name":"fputs"},"1040":{"probe_name":"libc","function_name":"fputc"},"1039":{"probe_name":"libc","function_name":"fprintf"},"1038":{"probe_name":"libc","function_name":"fopen64"},"1037":{"probe_name":"libc","function_name":"flock"},"1036":{"probe_name":"libc","function_name":"flistxattr"},"1035":{"probe_name":"libc","function_name":"fileno"},"1034":{"probe_name":"libc","function_name":"fgetxattr"},"1033":{"probe_name":"libc","function_name":"fgetws"},"1032":{"probe_name":"libc","function_name":"fgetwc"},"1031":{"probe_name":"libc","function_name":"fgets"},"1027":{"probe_name":"libc","function_name":"fdatasync"},"1026":{"probe_name":"libc","function_name":"fcntl64"},"1009":{"probe_name":"libc","function_name":"dirfd"},"1008":{"probe_name":"libc","function_name":"creat64"},"1007":{"probe_name":"libc","function_name":"creat"},"1006":{"probe_name":"libc","function_name":"connect"},"1000":{"probe_name":"libc","function_name":"access"},"1005":{"probe_name":"libc","function_name":"closedir"},"1030":{"probe_name":"libc","function_name":"fgetc"},"2":{"probe_name":"DC","function_name":"end"},"1018":{"probe_name":"libc","function_name":"fallocate64"},"1017":{"probe_name":"libc","function_name":"fallocate"},"1029":{"probe_name":"libc","function_name":"fflush"},"1":{"probe_name":"DC","function_name":"start"},"1002":{"probe_name":"libc","function_name":"chmod"},"1004":{"probe_name":"libc","function_name":"close"},"1016":{"probe_name":"libc","function_name":"faccessat"},"1028":{"probe_name":"libc","function_name":"fdopendir"},"0":{"probe_name":"M","function_name":"SH"},"1001":{"probe_name":"libc","function_name":"chdir"},"1003":{"probe_name":"libc","function_name":"chown"},"1015":{"probe_name":"libc","function_name":"eventfd"},"1010":{"probe_name":"libc","function_name":"dup"},"1011":{"probe_name":"libc","function_name":"dup2"},"1012":{"probe_name":"libc","function_name":"dup3"},"1013":{"probe_name":"libc","function_name":"eaccess"},"1014":{"probe_name":"libc","function_name":"euidaccess"},"1019":{"probe_name":"libc","function_name":"fchdir"},"1020":{"probe_name":"libc","function_name":"fchmod"},"1021":{"probe_name":"libc","function_name":"fchmodat"},"1022":{"probe_name":"libc","function_name":"fchown"},"1023":{"probe_name":"libc","function_name":"fchownat"},"1024":{"probe_name":"libc","function_name":"fcloseall"},"1025":{"probe_name":"libc","function_name":"fcntl"},"1056":{"probe_name":"libc","function_name":"fstatat64"},"1057":{"probe_name":"libc","function_name":"fstatfs"},"1058":{"probe_name":"libc","function_name":"fstatfs64"},"1059":{"probe_name":"libc","function_name":"fstatvfs"},"1060":{"probe_name":"libc","function_name":"fstatvfs64"},"1061":{"probe_name":"libc","function_name":"fsync"},"1062":{"probe_name":"libc","function_name":"ftell"},"1063":{"probe_name":"libc","function_name":"ftello"},"1064":{"probe_name":"libc","function_name":"ftello64"},"1065":{"probe_name":"libc","function_name":"ftruncate"},"1066":{"probe_name":"libc","function_name":"ftruncate64"},"1067":{"probe_name":"libc","function_name":"ftw"},"1068":{"probe_name":"libc","function_name":"ftw64"},"1069":{"probe_name":"libc","function_name":"fwprintf"},"1070":{"probe_name":"libc","function_name":"fwrite"},"1071":{"probe_name":"libc","function_name":"fwscanf"},"1072":{"probe_name":"libc","function_name":"getc"},"1073":{"probe_name":"libc","function_name":"getchar"},"1074":{"probe_name":"libc","function_name":"getcwd"},"1075":{"probe_name":"libc","function_name":"getdelim"},"1076":{"probe_name":"libc","function_name":"getdents64"},"1077":{"probe_name":"libc","function_name":"getdirentries"},"1078":{"probe_name":"libc","function_name":"getdirentries64"},"1079":{"probe_name":"libc","function_name":"getline"},"1080":{"probe_name":"libc","function_name":"getpeername"},"1081":{"probe_name":"libc","function_name":"getsockname"},"1082":{"probe_name":"libc","function_name":"getsockopt"},"1083":{"probe_name":"libc","function_name":"getw"},"1084":{"probe_name":"libc","function_name":"getwc"},"1085":{"probe_name":"libc","function_name":"getwchar"},"1086":{"probe_name":"libc","function_name":"getwd"},"1087":{"probe_name":"libc","function_name":"getxattr"},"1088":{"probe_name":"libc","function_name":"ioctl"},"1089":{"probe_name":"libc","function_name":"lchmod"},"1090":{"probe_name":"libc","function_name":"lchown"},"1091":{"probe_name":"libc","function_name":"lgetxattr"},"1092":{"probe_name":"libc","function_name":"link"},"1093":{"probe_name":"libc","function_name":"linkat"},"1094":{"probe_name":"libc","function_name":"listen"},"1095":{"probe_name":"libc","function_name":"listxattr"},"1096":{"probe_name":"libc","function_name":"llistxattr"},"1097":{"probe_name":"libc","function_name":"lockf"},"1098":{"probe_name":"libc","function_name":"lockf64"},"1099":{"probe_name":"libc","function_name":"lremovexattr"},"1100":{"probe_name":"libc","function_name":"lseek"},"1101":{"probe_name":"libc","function_name":"lseek64"},"1102":{"probe_name":"libc","function_name":"lsetxattr"},"1103":{"probe_name":"libc","function_name":"lstat"},"1104":{"probe_name":"libc","function_name":"lstat64"},"1105":{"probe_name":"libc","function_name":"mkdir"},"1106":{"probe_name":"libc","function_name":"mkdirat"},"1107":{"probe_name":"libc","function_name":"mkdtemp"},"1108":{"probe_name":"libc","function_name":"mkfifo"},"1109":{"probe_name":"libc","function_name":"mkfifoat"},"1110":{"probe_name":"libc","function_name":"mknod"},"1111":{"probe_name":"libc","function_name":"mknodat"},"1112":{"probe_name":"libc","function_name":"mkostemp"},"1113":{"probe_name":"libc","function_name":"mkostemp64"},"1114":{"probe_name":"libc","function_name":"mkostemps"},"1115":{"probe_name":"libc","function_name":"mkostemps64"},"1116":{"probe_name":"libc","function_name":"mkstemp"},"1117":{"probe_name":"libc","function_name":"mkstemp64"},"1118":{"probe_name":"libc","function_name":"mkstemps"},"1119":{"probe_name":"libc","function_name":"mkstemps64"},"1120":{"probe_name":"libc","function_name":"mmap"},"1121":{"probe_name":"libc","function_name":"mmap64"},"1122":{"probe_name":"libc","function_name":"mount"},"1123":{"probe_name":"libc","function_name":"mremap"}} +{ + "1933":{ + "probe_name":"libc", + "function_name":"wscanf" + }, + "1932":{ + "probe_name":"libc", + "function_name":"writev" + }, + "1931":{ + "probe_name":"libc", + "function_name":"writeunix:0x1476a0" + }, + "1930":{ + "probe_name":"libc", + "function_name":"writeunix:0x146dd0" + }, + "1929":{ + "probe_name":"libc", + "function_name":"writetcp:0x14cbc0" + }, + "1928":{ + "probe_name":"libc", + "function_name":"writetcp:0x149760" + }, + "1927":{ + "probe_name":"libc", + "function_name":"write" + }, + "1926":{ + "probe_name":"libc", + "function_name":"wprintf" + }, + "1925":{ + "probe_name":"libc", + "function_name":"wordfree" + }, + "1924":{ + "probe_name":"libc", + "function_name":"wordexp" + }, + "1923":{ + "probe_name":"libc", + "function_name":"wmempcpy" + }, + "1922":{ + "probe_name":"libc", + "function_name":"wmemmove" + }, + "1921":{ + "probe_name":"libc", + "function_name":"wmemcpy" + }, + "1920":{ + "probe_name":"libc", + "function_name":"wcwidth" + }, + "1919":{ + "probe_name":"libc", + "function_name":"wctype" + }, + "1918":{ + "probe_name":"libc", + "function_name":"wctrans" + }, + "1917":{ + "probe_name":"libc", + "function_name":"wctomb" + }, + "1916":{ + "probe_name":"libc", + "function_name":"wctob" + }, + "1915":{ + "probe_name":"libc", + "function_name":"wcsxfrm" + }, + "1914":{ + "probe_name":"libc", + "function_name":"wcswidth" + }, + "1913":{ + "probe_name":"libc", + "function_name":"wcswcs" + }, + "1912":{ + "probe_name":"libc", + "function_name":"wcstouq" + }, + "1911":{ + "probe_name":"libc", + "function_name":"wcstoumax" + }, + "1910":{ + "probe_name":"libc", + "function_name":"wcstoull" + }, + "1909":{ + "probe_name":"libc", + "function_name":"wcstoul" + }, + "1908":{ + "probe_name":"libc", + "function_name":"wcstoq" + }, + "1907":{ + "probe_name":"libc", + "function_name":"wcstombs" + }, + "1906":{ + "probe_name":"libc", + "function_name":"wcstoll" + }, + "1905":{ + "probe_name":"libc", + "function_name":"wcstold" + }, + "1904":{ + "probe_name":"libc", + "function_name":"wcstol" + }, + "1903":{ + "probe_name":"libc", + "function_name":"wcstok" + }, + "1902":{ + "probe_name":"libc", + "function_name":"wcstoimax" + }, + "1901":{ + "probe_name":"libc", + "function_name":"wcstof64x" + }, + "1900":{ + "probe_name":"libc", + "function_name":"wcstof64" + }, + "1899":{ + "probe_name":"libc", + "function_name":"wcstof32x" + }, + "1898":{ + "probe_name":"libc", + "function_name":"wcstof32" + }, + "1897":{ + "probe_name":"libc", + "function_name":"wcstof128" + }, + "1896":{ + "probe_name":"libc", + "function_name":"wcstof" + }, + "1895":{ + "probe_name":"libc", + "function_name":"wcstod" + }, + "1894":{ + "probe_name":"libc", + "function_name":"wcsstr" + }, + "1893":{ + "probe_name":"libc", + "function_name":"wcsspn" + }, + "1892":{ + "probe_name":"libc", + "function_name":"wcsrtombs" + }, + "1891":{ + "probe_name":"libc", + "function_name":"wcspbrk" + }, + "1890":{ + "probe_name":"libc", + "function_name":"wcsnrtombs" + }, + "1889":{ + "probe_name":"libc", + "function_name":"wcsncpy" + }, + "1888":{ + "probe_name":"libc", + "function_name":"wcsncat" + }, + "1887":{ + "probe_name":"libc", + "function_name":"wcsncasecmp" + }, + "1886":{ + "probe_name":"libc", + "function_name":"wcsdup" + }, + "1885":{ + "probe_name":"libc", + "function_name":"wcscspn" + }, + "1884":{ + "probe_name":"libc", + "function_name":"wcscoll" + }, + "1883":{ + "probe_name":"libc", + "function_name":"wcschrnul" + }, + "1882":{ + "probe_name":"libc", + "function_name":"wcscat" + }, + "1881":{ + "probe_name":"libc", + "function_name":"wcscasecmp" + }, + "1880":{ + "probe_name":"libc", + "function_name":"wcrtomb" + }, + "1879":{ + "probe_name":"libc", + "function_name":"wcpncpy" + }, + "1878":{ + "probe_name":"libc", + "function_name":"wcpcpy" + }, + "1877":{ + "probe_name":"libc", + "function_name":"warnx" + }, + "1876":{ + "probe_name":"libc", + "function_name":"warn" + }, + "1875":{ + "probe_name":"libc", + "function_name":"walker" + }, + "1874":{ + "probe_name":"libc", + "function_name":"waitpid" + }, + "1873":{ + "probe_name":"libc", + "function_name":"waitid" + }, + "1872":{ + "probe_name":"libc", + "function_name":"wait4" + }, + "1871":{ + "probe_name":"libc", + "function_name":"wait3" + }, + "1870":{ + "probe_name":"libc", + "function_name":"wait" + }, + "1869":{ + "probe_name":"libc", + "function_name":"vwscanf" + }, + "1868":{ + "probe_name":"libc", + "function_name":"vwprintf" + }, + "1867":{ + "probe_name":"libc", + "function_name":"vwarnx" + }, + "1866":{ + "probe_name":"libc", + "function_name":"vwarn" + }, + "1865":{ + "probe_name":"libc", + "function_name":"vsyslog" + }, + "1864":{ + "probe_name":"libc", + "function_name":"vswscanf" + }, + "1863":{ + "probe_name":"libc", + "function_name":"vswprintf" + }, + "1862":{ + "probe_name":"libc", + "function_name":"vsscanf" + }, + "1861":{ + "probe_name":"libc", + "function_name":"vsprintf" + }, + "1860":{ + "probe_name":"libc", + "function_name":"vsnprintf" + }, + "1859":{ + "probe_name":"libc", + "function_name":"vscanf" + }, + "1858":{ + "probe_name":"libc", + "function_name":"vprintf" + }, + "1857":{ + "probe_name":"libc", + "function_name":"vmsplice" + }, + "1856":{ + "probe_name":"libc", + "function_name":"vlimit" + }, + "1855":{ + "probe_name":"libc", + "function_name":"vhangup" + }, + "1854":{ + "probe_name":"libc", + "function_name":"vfwscanf" + }, + "1853":{ + "probe_name":"libc", + "function_name":"vfwprintf" + }, + "1852":{ + "probe_name":"libc", + "function_name":"vfscanf" + }, + "1851":{ + "probe_name":"libc", + "function_name":"vfprintf" + }, + "1850":{ + "probe_name":"libc", + "function_name":"vfork" + }, + "1849":{ + "probe_name":"libc", + "function_name":"versionsort64" + }, + "1848":{ + "probe_name":"libc", + "function_name":"versionsort" + }, + "1847":{ + "probe_name":"libc", + "function_name":"verrx" + }, + "1846":{ + "probe_name":"libc", + "function_name":"verr" + }, + "1845":{ + "probe_name":"libc", + "function_name":"vdprintf" + }, + "1844":{ + "probe_name":"libc", + "function_name":"vasprintf" + }, + "1843":{ + "probe_name":"libc", + "function_name":"valloc" + }, + "1842":{ + "probe_name":"libc", + "function_name":"utmpxname" + }, + "1841":{ + "probe_name":"libc", + "function_name":"utmpname" + }, + "1840":{ + "probe_name":"libc", + "function_name":"usleep" + }, + "1839":{ + "probe_name":"libc", + "function_name":"uselocale" + }, + "1838":{ + "probe_name":"libc", + "function_name":"updwtmpx" + }, + "1837":{ + "probe_name":"libc", + "function_name":"updwtmp" + }, + "1836":{ + "probe_name":"libc", + "function_name":"unshare" + }, + "1835":{ + "probe_name":"libc", + "function_name":"unsetenv" + }, + "1834":{ + "probe_name":"libc", + "function_name":"unlockpt" + }, + "1833":{ + "probe_name":"libc", + "function_name":"unlock" + }, + "1832":{ + "probe_name":"libc", + "function_name":"unlinkat" + }, + "1831":{ + "probe_name":"libc", + "function_name":"unlink" + }, + "1830":{ + "probe_name":"libc", + "function_name":"universal" + }, + "1829":{ + "probe_name":"libc", + "function_name":"ungetwc" + }, + "1828":{ + "probe_name":"libc", + "function_name":"ungetc" + }, + "1827":{ + "probe_name":"libc", + "function_name":"uname" + }, + "1826":{ + "probe_name":"libc", + "function_name":"umount2" + }, + "1825":{ + "probe_name":"libc", + "function_name":"umount" + }, + "1824":{ + "probe_name":"libc", + "function_name":"umask" + }, + "1823":{ + "probe_name":"libc", + "function_name":"ulimit" + }, + "1822":{ + "probe_name":"libc", + "function_name":"ulckpwdf" + }, + "1821":{ + "probe_name":"libc", + "function_name":"ualarm" + }, + "1820":{ + "probe_name":"libc", + "function_name":"tzset" + }, + "1819":{ + "probe_name":"libc", + "function_name":"twalk" + }, + "1818":{ + "probe_name":"libc", + "function_name":"ttyslot" + }, + "1817":{ + "probe_name":"libc", + "function_name":"ttyname" + }, + "1816":{ + "probe_name":"libc", + "function_name":"tsearch" + }, + "1815":{ + "probe_name":"libc", + "function_name":"try" + }, + "1814":{ + "probe_name":"libc", + "function_name":"truncate64" + }, + "1813":{ + "probe_name":"libc", + "function_name":"truncate" + }, + "1812":{ + "probe_name":"libc", + "function_name":"trecurse" + }, + "1811":{ + "probe_name":"libc", + "function_name":"transcmp" + }, + "1810":{ + "probe_name":"libc", + "function_name":"towupper" + }, + "1809":{ + "probe_name":"libc", + "function_name":"towlower" + }, + "1808":{ + "probe_name":"libc", + "function_name":"towctrans" + }, + "1807":{ + "probe_name":"libc", + "function_name":"toupper" + }, + "1806":{ + "probe_name":"libc", + "function_name":"tolower" + }, + "1805":{ + "probe_name":"libc", + "function_name":"token.part.0" + }, + "1804":{ + "probe_name":"libc", + "function_name":"toascii" + }, + "1803":{ + "probe_name":"libc", + "function_name":"tmpnam" + }, + "1802":{ + "probe_name":"libc", + "function_name":"tmpfile64" + }, + "1801":{ + "probe_name":"libc", + "function_name":"tgkill" + }, + "1800":{ + "probe_name":"libc", + "function_name":"tfind" + }, + "1799":{ + "probe_name":"libc", + "function_name":"textdomain" + }, + "1798":{ + "probe_name":"libc", + "function_name":"tempnam" + }, + "1797":{ + "probe_name":"libc", + "function_name":"telldir" + }, + "1796":{ + "probe_name":"libc", + "function_name":"tee" + }, + "1795":{ + "probe_name":"libc", + "function_name":"tdestroy" + }, + "1794":{ + "probe_name":"libc", + "function_name":"tdelete" + }, + "1793":{ + "probe_name":"libc", + "function_name":"tcsetpgrp" + }, + "1792":{ + "probe_name":"libc", + "function_name":"tcsetattr" + }, + "1791":{ + "probe_name":"libc", + "function_name":"tcsendbreak" + }, + "1790":{ + "probe_name":"libc", + "function_name":"tcgetsid" + }, + "1789":{ + "probe_name":"libc", + "function_name":"tcgetpgrp" + }, + "1788":{ + "probe_name":"libc", + "function_name":"tcgetattr" + }, + "1787":{ + "probe_name":"libc", + "function_name":"tcflush" + }, + "1786":{ + "probe_name":"libc", + "function_name":"tcflow" + }, + "1785":{ + "probe_name":"libc", + "function_name":"tcdrain" + }, + "1784":{ + "probe_name":"libc", + "function_name":"systrim.constprop.0" + }, + "1783":{ + "probe_name":"libc", + "function_name":"system" + }, + "1782":{ + "probe_name":"libc", + "function_name":"sysmalloc" + }, + "1781":{ + "probe_name":"libc", + "function_name":"syslog" + }, + "1780":{ + "probe_name":"libc", + "function_name":"sysinfo" + }, + "1779":{ + "probe_name":"libc", + "function_name":"sysconf" + }, + "1778":{ + "probe_name":"libc", + "function_name":"syscall" + }, + "1777":{ + "probe_name":"libc", + "function_name":"syncfs" + }, + "1776":{ + "probe_name":"libc", + "function_name":"sync" + }, + "1775":{ + "probe_name":"libc", + "function_name":"symlinkat" + }, + "1774":{ + "probe_name":"libc", + "function_name":"symlink" + }, + "1773":{ + "probe_name":"libc", + "function_name":"swscanf" + }, + "1772":{ + "probe_name":"libc", + "function_name":"swprintf" + }, + "1771":{ + "probe_name":"libc", + "function_name":"swapon" + }, + "1770":{ + "probe_name":"libc", + "function_name":"swapoff" + }, + "1769":{ + "probe_name":"libc", + "function_name":"swapcontext" + }, + "1768":{ + "probe_name":"libc", + "function_name":"swab" + }, + "1767":{ + "probe_name":"libc", + "function_name":"stty" + }, + "1766":{ + "probe_name":"libc", + "function_name":"strxfrm" + }, + "1765":{ + "probe_name":"libc", + "function_name":"strverscmp" + }, + "1764":{ + "probe_name":"libc", + "function_name":"strtouq" + }, + "1763":{ + "probe_name":"libc", + "function_name":"strtoumax" + }, + "1762":{ + "probe_name":"libc", + "function_name":"strtoull" + }, + "1761":{ + "probe_name":"libc", + "function_name":"strtoul" + }, + "1760":{ + "probe_name":"libc", + "function_name":"strtoq" + }, + "1759":{ + "probe_name":"libc", + "function_name":"strtoll" + }, + "1758":{ + "probe_name":"libc", + "function_name":"strtold" + }, + "1757":{ + "probe_name":"libc", + "function_name":"strtol" + }, + "1756":{ + "probe_name":"libc", + "function_name":"strtok" + }, + "1755":{ + "probe_name":"libc", + "function_name":"strtoimax" + }, + "1754":{ + "probe_name":"libc", + "function_name":"strtof64x" + }, + "1753":{ + "probe_name":"libc", + "function_name":"strtof64" + }, + "1752":{ + "probe_name":"libc", + "function_name":"strtof32x" + }, + "1751":{ + "probe_name":"libc", + "function_name":"strtof32" + }, + "1750":{ + "probe_name":"libc", + "function_name":"strtof128" + }, + "1749":{ + "probe_name":"libc", + "function_name":"strtof" + }, + "1748":{ + "probe_name":"libc", + "function_name":"strtod" + }, + "1747":{ + "probe_name":"libc", + "function_name":"strsep" + }, + "1746":{ + "probe_name":"libc", + "function_name":"strndup" + }, + "1745":{ + "probe_name":"libc", + "function_name":"strfry" + }, + "1744":{ + "probe_name":"libc", + "function_name":"strfroml" + }, + "1743":{ + "probe_name":"libc", + "function_name":"strfromf64x" + }, + "1742":{ + "probe_name":"libc", + "function_name":"strfromf64" + }, + "1741":{ + "probe_name":"libc", + "function_name":"strfromf32x" + }, + "1740":{ + "probe_name":"libc", + "function_name":"strfromf32" + }, + "1739":{ + "probe_name":"libc", + "function_name":"strfromf128" + }, + "1738":{ + "probe_name":"libc", + "function_name":"strfromf" + }, + "1737":{ + "probe_name":"libc", + "function_name":"strfromd" + }, + "1736":{ + "probe_name":"libc", + "function_name":"strfmon" + }, + "1735":{ + "probe_name":"libc", + "function_name":"strerror" + }, + "1734":{ + "probe_name":"libc", + "function_name":"strdup" + }, + "1733":{ + "probe_name":"libc", + "function_name":"strcoll" + }, + "1732":{ + "probe_name":"libc", + "function_name":"strcasestr" + }, + "1731":{ + "probe_name":"libc", + "function_name":"statx" + }, + "1730":{ + "probe_name":"libc", + "function_name":"statvfs64" + }, + "1729":{ + "probe_name":"libc", + "function_name":"statvfs" + }, + "1728":{ + "probe_name":"libc", + "function_name":"statfs64" + }, + "1727":{ + "probe_name":"libc", + "function_name":"statfs" + }, + "1726":{ + "probe_name":"libc", + "function_name":"stat64" + }, + "1725":{ + "probe_name":"libc", + "function_name":"stat" + }, + "1724":{ + "probe_name":"libc", + "function_name":"sscanf" + }, + "1723":{ + "probe_name":"libc", + "function_name":"srandom" + }, + "1722":{ + "probe_name":"libc", + "function_name":"srand48" + }, + "1721":{ + "probe_name":"libc", + "function_name":"srand" + }, + "1720":{ + "probe_name":"libc", + "function_name":"sprofil" + }, + "1719":{ + "probe_name":"libc", + "function_name":"sprintf" + }, + "1718":{ + "probe_name":"libc", + "function_name":"splice" + }, + "1717":{ + "probe_name":"libc", + "function_name":"space" + }, + "1716":{ + "probe_name":"libc", + "function_name":"socketpair" + }, + "1715":{ + "probe_name":"libc", + "function_name":"socket" + }, + "1714":{ + "probe_name":"libc", + "function_name":"sockatmark" + }, + "1713":{ + "probe_name":"libc", + "function_name":"snprintf" + }, + "1712":{ + "probe_name":"libc", + "function_name":"sleep" + }, + "1711":{ + "probe_name":"libc", + "function_name":"skip" + }, + "1710":{ + "probe_name":"libc", + "function_name":"sigwaitinfo" + }, + "1709":{ + "probe_name":"libc", + "function_name":"sigwait" + }, + "1708":{ + "probe_name":"libc", + "function_name":"sigsuspend" + }, + "1707":{ + "probe_name":"libc", + "function_name":"sigstack" + }, + "1706":{ + "probe_name":"libc", + "function_name":"sigsetmask" + }, + "1705":{ + "probe_name":"libc", + "function_name":"sigset" + }, + "1704":{ + "probe_name":"libc", + "function_name":"sigreturn" + }, + "1703":{ + "probe_name":"libc", + "function_name":"sigrelse" + }, + "1702":{ + "probe_name":"libc", + "function_name":"sigqueue" + }, + "1701":{ + "probe_name":"libc", + "function_name":"sigprocmask" + }, + "1700":{ + "probe_name":"libc", + "function_name":"sigpending" + }, + "1699":{ + "probe_name":"libc", + "function_name":"sigpause" + }, + "1698":{ + "probe_name":"libc", + "function_name":"sigorset" + }, + "1697":{ + "probe_name":"libc", + "function_name":"siglongjmp" + }, + "1696":{ + "probe_name":"libc", + "function_name":"sigismember" + }, + "1695":{ + "probe_name":"libc", + "function_name":"sigisemptyset" + }, + "1694":{ + "probe_name":"libc", + "function_name":"siginterrupt" + }, + "1693":{ + "probe_name":"libc", + "function_name":"sigignore" + }, + "1692":{ + "probe_name":"libc", + "function_name":"sighold" + }, + "1691":{ + "probe_name":"libc", + "function_name":"siggetmask" + }, + "1690":{ + "probe_name":"libc", + "function_name":"sigfillset" + }, + "1689":{ + "probe_name":"libc", + "function_name":"sigemptyset" + }, + "1688":{ + "probe_name":"libc", + "function_name":"sigdelset" + }, + "1687":{ + "probe_name":"libc", + "function_name":"sigblock" + }, + "1686":{ + "probe_name":"libc", + "function_name":"sigandset" + }, + "1685":{ + "probe_name":"libc", + "function_name":"sigaltstack" + }, + "1684":{ + "probe_name":"libc", + "function_name":"sigaddset" + }, + "1683":{ + "probe_name":"libc", + "function_name":"sigaction" + }, + "1682":{ + "probe_name":"libc", + "function_name":"shutdown" + }, + "1681":{ + "probe_name":"libc", + "function_name":"shmget" + }, + "1680":{ + "probe_name":"libc", + "function_name":"shmdt" + }, + "1679":{ + "probe_name":"libc", + "function_name":"shmat" + }, + "1678":{ + "probe_name":"libc", + "function_name":"sgetspent" + }, + "1677":{ + "probe_name":"libc", + "function_name":"sgetsgent" + }, + "1676":{ + "probe_name":"libc", + "function_name":"setxattr" + }, + "1675":{ + "probe_name":"libc", + "function_name":"setvbuf" + }, + "1674":{ + "probe_name":"libc", + "function_name":"setutxent" + }, + "1673":{ + "probe_name":"libc", + "function_name":"setutent" + }, + "1672":{ + "probe_name":"libc", + "function_name":"setusershell" + }, + "1671":{ + "probe_name":"libc", + "function_name":"setuid" + }, + "1670":{ + "probe_name":"libc", + "function_name":"setttyent" + }, + "1669":{ + "probe_name":"libc", + "function_name":"setstate" + }, + "1668":{ + "probe_name":"libc", + "function_name":"setspent" + }, + "1667":{ + "probe_name":"libc", + "function_name":"setsourcefilter" + }, + "1666":{ + "probe_name":"libc", + "function_name":"setsockopt" + }, + "1665":{ + "probe_name":"libc", + "function_name":"setsid" + }, + "1664":{ + "probe_name":"libc", + "function_name":"setsgent" + }, + "1663":{ + "probe_name":"libc", + "function_name":"setservent" + }, + "1662":{ + "probe_name":"libc", + "function_name":"setrpcent" + }, + "1661":{ + "probe_name":"libc", + "function_name":"setrlimit64" + }, + "1660":{ + "probe_name":"libc", + "function_name":"setrlimit" + }, + "1659":{ + "probe_name":"libc", + "function_name":"setreuid" + }, + "1658":{ + "probe_name":"libc", + "function_name":"setresuid" + }, + "1657":{ + "probe_name":"libc", + "function_name":"setresgid" + }, + "1656":{ + "probe_name":"libc", + "function_name":"setregid" + }, + "1655":{ + "probe_name":"libc", + "function_name":"setpwent" + }, + "1654":{ + "probe_name":"libc", + "function_name":"setprotoent" + }, + "1653":{ + "probe_name":"libc", + "function_name":"setpriority" + }, + "1652":{ + "probe_name":"libc", + "function_name":"setpgrp" + }, + "1651":{ + "probe_name":"libc", + "function_name":"setpgid" + }, + "1650":{ + "probe_name":"libc", + "function_name":"setns" + }, + "1649":{ + "probe_name":"libc", + "function_name":"setnetgrent" + }, + "1648":{ + "probe_name":"libc", + "function_name":"setnetent" + }, + "1647":{ + "probe_name":"libc", + "function_name":"setmntent" + }, + "1646":{ + "probe_name":"libc", + "function_name":"setlogmask" + }, + "1645":{ + "probe_name":"libc", + "function_name":"setlogin" + }, + "1644":{ + "probe_name":"libc", + "function_name":"setlocale" + }, + "1643":{ + "probe_name":"libc", + "function_name":"setlinebuf" + }, + "1642":{ + "probe_name":"libc", + "function_name":"setjmp" + }, + "1641":{ + "probe_name":"libc", + "function_name":"setipv4sourcefilter" + }, + "1640":{ + "probe_name":"libc", + "function_name":"sethostname" + }, + "1639":{ + "probe_name":"libc", + "function_name":"sethostid" + }, + "1638":{ + "probe_name":"libc", + "function_name":"sethostent" + }, + "1637":{ + "probe_name":"libc", + "function_name":"setgroups" + }, + "1636":{ + "probe_name":"libc", + "function_name":"setgrent" + }, + "1635":{ + "probe_name":"libc", + "function_name":"setgid" + }, + "1634":{ + "probe_name":"libc", + "function_name":"setfsuid" + }, + "1633":{ + "probe_name":"libc", + "function_name":"setfsgid" + }, + "1632":{ + "probe_name":"libc", + "function_name":"setfsent" + }, + "1631":{ + "probe_name":"libc", + "function_name":"seteuid" + }, + "1630":{ + "probe_name":"libc", + "function_name":"setenv" + }, + "1629":{ + "probe_name":"libc", + "function_name":"setegid" + }, + "1628":{ + "probe_name":"libc", + "function_name":"setdomainname" + }, + "1627":{ + "probe_name":"libc", + "function_name":"setcontext" + }, + "1626":{ + "probe_name":"libc", + "function_name":"setbuffer" + }, + "1625":{ + "probe_name":"libc", + "function_name":"setbuf" + }, + "1624":{ + "probe_name":"libc", + "function_name":"setaliasent" + }, + "1623":{ + "probe_name":"libc", + "function_name":"sendto" + }, + "1622":{ + "probe_name":"libc", + "function_name":"sendmsg" + }, + "1621":{ + "probe_name":"libc", + "function_name":"sendmmsg" + }, + "1620":{ + "probe_name":"libc", + "function_name":"sendfile64" + }, + "1619":{ + "probe_name":"libc", + "function_name":"sendfile" + }, + "1618":{ + "probe_name":"libc", + "function_name":"send" + }, + "1617":{ + "probe_name":"libc", + "function_name":"semop" + }, + "1616":{ + "probe_name":"libc", + "function_name":"semget" + }, + "1615":{ + "probe_name":"libc", + "function_name":"select" + }, + "1614":{ + "probe_name":"libc", + "function_name":"seekdir" + }, + "1613":{ + "probe_name":"libc", + "function_name":"seed48" + }, + "1612":{ + "probe_name":"libc", + "function_name":"scopecmp" + }, + "1611":{ + "probe_name":"libc", + "function_name":"scanf" + }, + "1610":{ + "probe_name":"libc", + "function_name":"scandirat64" + }, + "1609":{ + "probe_name":"libc", + "function_name":"scandirat" + }, + "1608":{ + "probe_name":"libc", + "function_name":"scandir64" + }, + "1607":{ + "probe_name":"libc", + "function_name":"scandir" + }, + "1606":{ + "probe_name":"libc", + "function_name":"scalbnl" + }, + "1605":{ + "probe_name":"libc", + "function_name":"scalbnf64x" + }, + "1604":{ + "probe_name":"libc", + "function_name":"scalbnf64" + }, + "1603":{ + "probe_name":"libc", + "function_name":"scalbnf32x" + }, + "1602":{ + "probe_name":"libc", + "function_name":"scalbnf32" + }, + "1601":{ + "probe_name":"libc", + "function_name":"scalbnf128" + }, + "1600":{ + "probe_name":"libc", + "function_name":"scalbnf" + }, + "1599":{ + "probe_name":"libc", + "function_name":"scalbn" + }, + "1598":{ + "probe_name":"libc", + "function_name":"sbrk" + }, + "1597":{ + "probe_name":"libc", + "function_name":"ruserpass" + }, + "1596":{ + "probe_name":"libc", + "function_name":"ruserok" + }, + "1595":{ + "probe_name":"libc", + "function_name":"rresvport" + }, + "1594":{ + "probe_name":"libc", + "function_name":"rpmatch" + }, + "1593":{ + "probe_name":"libc", + "function_name":"rmdir" + }, + "1592":{ + "probe_name":"libc", + "function_name":"rexec" + }, + "1591":{ + "probe_name":"libc", + "function_name":"rewinddir" + }, + "1590":{ + "probe_name":"libc", + "function_name":"rewind" + }, + "1589":{ + "probe_name":"libc", + "function_name":"revoke" + }, + "1588":{ + "probe_name":"libc", + "function_name":"reopen" + }, + "1587":{ + "probe_name":"libc", + "function_name":"renameat2" + }, + "1586":{ + "probe_name":"libc", + "function_name":"renameat" + }, + "1585":{ + "probe_name":"libc", + "function_name":"rename" + }, + "1584":{ + "probe_name":"libc", + "function_name":"remque" + }, + "1583":{ + "probe_name":"libc", + "function_name":"removexattr" + }, + "1582":{ + "probe_name":"libc", + "function_name":"remove" + }, + "1581":{ + "probe_name":"libc", + "function_name":"regfree" + }, + "1580":{ + "probe_name":"libc", + "function_name":"regerror" + }, + "1579":{ + "probe_name":"libc", + "function_name":"regcomp" + }, + "1578":{ + "probe_name":"libc", + "function_name":"recvmsg" + }, + "1577":{ + "probe_name":"libc", + "function_name":"recvmmsg" + }, + "1576":{ + "probe_name":"libc", + "function_name":"recvfrom" + }, + "1575":{ + "probe_name":"libc", + "function_name":"recv" + }, + "1574":{ + "probe_name":"libc", + "function_name":"reboot" + }, + "1573":{ + "probe_name":"libc", + "function_name":"reallocarray" + }, + "1572":{ + "probe_name":"libc", + "function_name":"realloc" + }, + "1571":{ + "probe_name":"libc", + "function_name":"readv" + }, + "1570":{ + "probe_name":"libc", + "function_name":"readunix:0x147810" + }, + "1569":{ + "probe_name":"libc", + "function_name":"readunix:0x146e50" + }, + "1568":{ + "probe_name":"libc", + "function_name":"readtcp:0x14cc30" + }, + "1567":{ + "probe_name":"libc", + "function_name":"readtcp:0x1497e0" + }, + "1566":{ + "probe_name":"libc", + "function_name":"readlinkat" + }, + "1565":{ + "probe_name":"libc", + "function_name":"readlink" + }, + "1564":{ + "probe_name":"libc", + "function_name":"readdir64" + }, + "1563":{ + "probe_name":"libc", + "function_name":"readdir" + }, + "1562":{ + "probe_name":"libc", + "function_name":"readahead" + }, + "1561":{ + "probe_name":"libc", + "function_name":"read" + }, + "1560":{ + "probe_name":"libc", + "function_name":"rcmd" + }, + "1559":{ + "probe_name":"libc", + "function_name":"random" + }, + "1558":{ + "probe_name":"libc", + "function_name":"rand" + }, + "1557":{ + "probe_name":"libc", + "function_name":"raise" + }, + "1556":{ + "probe_name":"libc", + "function_name":"quotactl" + }, + "1555":{ + "probe_name":"libc", + "function_name":"qsort" + }, + "1554":{ + "probe_name":"libc", + "function_name":"qgcvt" + }, + "1553":{ + "probe_name":"libc", + "function_name":"qfcvt" + }, + "1552":{ + "probe_name":"libc", + "function_name":"qecvt" + }, + "1551":{ + "probe_name":"libc", + "function_name":"pwritev64v2" + }, + "1550":{ + "probe_name":"libc", + "function_name":"pwritev64" + }, + "1549":{ + "probe_name":"libc", + "function_name":"pwritev2" + }, + "1548":{ + "probe_name":"libc", + "function_name":"pwritev" + }, + "1547":{ + "probe_name":"libc", + "function_name":"pwrite64" + }, + "1546":{ + "probe_name":"libc", + "function_name":"pwrite" + }, + "1545":{ + "probe_name":"libc", + "function_name":"pvalloc" + }, + "1544":{ + "probe_name":"libc", + "function_name":"putwchar" + }, + "1543":{ + "probe_name":"libc", + "function_name":"putwc" + }, + "1542":{ + "probe_name":"libc", + "function_name":"putw" + }, + "1541":{ + "probe_name":"libc", + "function_name":"pututxline" + }, + "1540":{ + "probe_name":"libc", + "function_name":"pututline" + }, + "1539":{ + "probe_name":"libc", + "function_name":"putspent" + }, + "1538":{ + "probe_name":"libc", + "function_name":"putsgent" + }, + "1253":{ + "probe_name":"libc", + "function_name":"gethostbyname" + }, + "1252":{ + "probe_name":"libc", + "function_name":"gethostbyaddr" + }, + "1251":{ + "probe_name":"libc", + "function_name":"getgroups" + }, + "1250":{ + "probe_name":"libc", + "function_name":"getgrouplist" + }, + "1249":{ + "probe_name":"libc", + "function_name":"getgrnam" + }, + "1248":{ + "probe_name":"libc", + "function_name":"getgrgid" + }, + "1247":{ + "probe_name":"libc", + "function_name":"getgrent" + }, + "1246":{ + "probe_name":"libc", + "function_name":"getgid" + }, + "1245":{ + "probe_name":"libc", + "function_name":"getfsspec" + }, + "1244":{ + "probe_name":"libc", + "function_name":"getfsfile" + }, + "1243":{ + "probe_name":"libc", + "function_name":"getfsent" + }, + "1242":{ + "probe_name":"libc", + "function_name":"geteuid" + }, + "1241":{ + "probe_name":"libc", + "function_name":"getenv" + }, + "1240":{ + "probe_name":"libc", + "function_name":"getentropy" + }, + "1239":{ + "probe_name":"libc", + "function_name":"getegid" + }, + "1238":{ + "probe_name":"libc", + "function_name":"getdtablesize" + }, + "1237":{ + "probe_name":"libc", + "function_name":"getdomainname" + }, + "1236":{ + "probe_name":"libc", + "function_name":"getdirentries64" + }, + "1235":{ + "probe_name":"libc", + "function_name":"getdirentries" + }, + "1234":{ + "probe_name":"libc", + "function_name":"getdents64" + }, + "1233":{ + "probe_name":"libc", + "function_name":"getdelim" + }, + "1232":{ + "probe_name":"libc", + "function_name":"getdate" + }, + "1231":{ + "probe_name":"libc", + "function_name":"getcwd" + }, + "1230":{ + "probe_name":"libc", + "function_name":"getcpu" + }, + "1229":{ + "probe_name":"libc", + "function_name":"getcontext" + }, + "1228":{ + "probe_name":"libc", + "function_name":"getchar" + }, + "1227":{ + "probe_name":"libc", + "function_name":"getc" + }, + "1226":{ + "probe_name":"libc", + "function_name":"getauxval" + }, + "1225":{ + "probe_name":"libc", + "function_name":"getaliasent" + }, + "1224":{ + "probe_name":"libc", + "function_name":"getaliasbyname" + }, + "1223":{ + "probe_name":"libc", + "function_name":"getaddrinfo" + }, + "1222":{ + "probe_name":"libc", + "function_name":"gcvt" + }, + "1221":{ + "probe_name":"libc", + "function_name":"fwscanf" + }, + "1220":{ + "probe_name":"libc", + "function_name":"fwrite" + }, + "1219":{ + "probe_name":"libc", + "function_name":"fwprintf" + }, + "1218":{ + "probe_name":"libc", + "function_name":"fwide" + }, + "1217":{ + "probe_name":"libc", + "function_name":"funlockfile" + }, + "1216":{ + "probe_name":"libc", + "function_name":"ftw64" + }, + "1215":{ + "probe_name":"libc", + "function_name":"ftw" + }, + "1214":{ + "probe_name":"libc", + "function_name":"ftrylockfile" + }, + "1213":{ + "probe_name":"libc", + "function_name":"ftruncate64" + }, + "1212":{ + "probe_name":"libc", + "function_name":"ftruncate" + }, + "1211":{ + "probe_name":"libc", + "function_name":"ftok" + }, + "1210":{ + "probe_name":"libc", + "function_name":"ftello64" + }, + "1209":{ + "probe_name":"libc", + "function_name":"ftello" + }, + "1208":{ + "probe_name":"libc", + "function_name":"ftell" + }, + "1207":{ + "probe_name":"libc", + "function_name":"fsync" + }, + "1206":{ + "probe_name":"libc", + "function_name":"fstatvfs64" + }, + "1205":{ + "probe_name":"libc", + "function_name":"fstatvfs" + }, + "1204":{ + "probe_name":"libc", + "function_name":"fstatfs64" + }, + "1203":{ + "probe_name":"libc", + "function_name":"fstatfs" + }, + "1202":{ + "probe_name":"libc", + "function_name":"fstatat64" + }, + "1201":{ + "probe_name":"libc", + "function_name":"fstatat" + }, + "1200":{ + "probe_name":"libc", + "function_name":"fstat64" + }, + "1199":{ + "probe_name":"libc", + "function_name":"fstat" + }, + "1198":{ + "probe_name":"libc", + "function_name":"fsetxattr" + }, + "1197":{ + "probe_name":"libc", + "function_name":"fseeko64" + }, + "1196":{ + "probe_name":"libc", + "function_name":"fseeko" + }, + "1195":{ + "probe_name":"libc", + "function_name":"fseek" + }, + "1194":{ + "probe_name":"libc", + "function_name":"fscanf" + }, + "1193":{ + "probe_name":"libc", + "function_name":"frexpl" + }, + "1192":{ + "probe_name":"libc", + "function_name":"frexpf64x" + }, + "1191":{ + "probe_name":"libc", + "function_name":"frexpf64" + }, + "1190":{ + "probe_name":"libc", + "function_name":"frexpf32x" + }, + "1189":{ + "probe_name":"libc", + "function_name":"frexpf32" + }, + "1188":{ + "probe_name":"libc", + "function_name":"frexpf128" + }, + "1187":{ + "probe_name":"libc", + "function_name":"frexpf" + }, + "1186":{ + "probe_name":"libc", + "function_name":"frexp" + }, + "1185":{ + "probe_name":"libc", + "function_name":"freopen64" + }, + "1184":{ + "probe_name":"libc", + "function_name":"freopen" + }, + "1183":{ + "probe_name":"libc", + "function_name":"fremovexattr" + }, + "1182":{ + "probe_name":"libc", + "function_name":"freeres" + }, + "1181":{ + "probe_name":"libc", + "function_name":"freelocale" + }, + "1180":{ + "probe_name":"libc", + "function_name":"freeifaddrs" + }, + "1179":{ + "probe_name":"libc", + "function_name":"freecache" + }, + "1178":{ + "probe_name":"libc", + "function_name":"freeaddrinfo" + }, + "1177":{ + "probe_name":"libc", + "function_name":"free" + }, + "1176":{ + "probe_name":"libc", + "function_name":"fread" + }, + "1175":{ + "probe_name":"libc", + "function_name":"fputws" + }, + "1174":{ + "probe_name":"libc", + "function_name":"fputwc" + }, + "1173":{ + "probe_name":"libc", + "function_name":"fputs" + }, + "1172":{ + "probe_name":"libc", + "function_name":"fputc" + }, + "1171":{ + "probe_name":"libc", + "function_name":"fprintf" + }, + "1170":{ + "probe_name":"libc", + "function_name":"fpathconf" + }, + "1169":{ + "probe_name":"libc", + "function_name":"fork" + }, + "1168":{ + "probe_name":"libc", + "function_name":"fopen64" + }, + "1167":{ + "probe_name":"libc", + "function_name":"fmtmsg" + }, + "1166":{ + "probe_name":"libc", + "function_name":"flockfile" + }, + "1165":{ + "probe_name":"libc", + "function_name":"flock" + }, + "1164":{ + "probe_name":"libc", + "function_name":"flistxattr" + }, + "1163":{ + "probe_name":"libc", + "function_name":"finitel" + }, + "1162":{ + "probe_name":"libc", + "function_name":"finitef" + }, + "1161":{ + "probe_name":"libc", + "function_name":"finite" + }, + "1160":{ + "probe_name":"libc", + "function_name":"fini" + }, + "1159":{ + "probe_name":"libc", + "function_name":"fileno" + }, + "1158":{ + "probe_name":"libc", + "function_name":"fgetxattr" + }, + "1157":{ + "probe_name":"libc", + "function_name":"fgetws" + }, + "1156":{ + "probe_name":"libc", + "function_name":"fgetwc" + }, + "1155":{ + "probe_name":"libc", + "function_name":"fgetspent" + }, + "1154":{ + "probe_name":"libc", + "function_name":"fgetsgent" + }, + "1153":{ + "probe_name":"libc", + "function_name":"fgets" + }, + "1152":{ + "probe_name":"libc", + "function_name":"fgetpwent" + }, + "1151":{ + "probe_name":"libc", + "function_name":"fgetgrent" + }, + "1150":{ + "probe_name":"libc", + "function_name":"fgetc" + }, + "1149":{ + "probe_name":"libc", + "function_name":"ffsll" + }, + "1148":{ + "probe_name":"libc", + "function_name":"ffsl" + }, + "1147":{ + "probe_name":"libc", + "function_name":"ffs" + }, + "1146":{ + "probe_name":"libc", + "function_name":"fflush" + }, + "1145":{ + "probe_name":"libc", + "function_name":"fexecve" + }, + "1144":{ + "probe_name":"libc", + "function_name":"ferror" + }, + "1143":{ + "probe_name":"libc", + "function_name":"feof" + }, + "1142":{ + "probe_name":"libc", + "function_name":"fdopendir" + }, + "1141":{ + "probe_name":"libc", + "function_name":"fdatasync" + }, + "1140":{ + "probe_name":"libc", + "function_name":"fcvt" + }, + "1139":{ + "probe_name":"libc", + "function_name":"fcntl64" + }, + "1138":{ + "probe_name":"libc", + "function_name":"fcntl" + }, + "1137":{ + "probe_name":"libc", + "function_name":"fcloseall" + }, + "1136":{ + "probe_name":"libc", + "function_name":"fchownat" + }, + "1135":{ + "probe_name":"libc", + "function_name":"fchown" + }, + "1134":{ + "probe_name":"libc", + "function_name":"fchmodat" + }, + "1133":{ + "probe_name":"libc", + "function_name":"fchmod" + }, + "1132":{ + "probe_name":"libc", + "function_name":"fchflags" + }, + "1131":{ + "probe_name":"libc", + "function_name":"fchdir" + }, + "1130":{ + "probe_name":"libc", + "function_name":"fallocate64" + }, + "1129":{ + "probe_name":"libc", + "function_name":"fallocate" + }, + "1128":{ + "probe_name":"libc", + "function_name":"faccessat" + }, + "1127":{ + "probe_name":"libc", + "function_name":"exit" + }, + "1126":{ + "probe_name":"libc", + "function_name":"execvpe" + }, + "1125":{ + "probe_name":"libc", + "function_name":"execvp" + }, + "1124":{ + "probe_name":"libc", + "function_name":"execveat" + }, + "1055":{ + "probe_name":"libc", + "function_name":"clock" + }, + "1054":{ + "probe_name":"libc", + "function_name":"clearerr" + }, + "1053":{ + "probe_name":"libc", + "function_name":"clearenv" + }, + "1052":{ + "probe_name":"libc", + "function_name":"cleanup:0x943c0" + }, + "1051":{ + "probe_name":"libc", + "function_name":"cleanup:0x8ba90" + }, + "1050":{ + "probe_name":"libc", + "function_name":"chroot" + }, + "1049":{ + "probe_name":"libc", + "function_name":"chown" + }, + "1048":{ + "probe_name":"libc", + "function_name":"chmod" + }, + "1047":{ + "probe_name":"libc", + "function_name":"chflags" + }, + "1046":{ + "probe_name":"libc", + "function_name":"chdir" + }, + "1045":{ + "probe_name":"libc", + "function_name":"cfsetspeed" + }, + "1044":{ + "probe_name":"libc", + "function_name":"cfsetospeed" + }, + "1043":{ + "probe_name":"libc", + "function_name":"cfsetispeed" + }, + "1042":{ + "probe_name":"libc", + "function_name":"cfmakeraw" + }, + "1041":{ + "probe_name":"libc", + "function_name":"cfgetospeed" + }, + "1040":{ + "probe_name":"libc", + "function_name":"cfgetispeed" + }, + "1039":{ + "probe_name":"libc", + "function_name":"catopen" + }, + "1038":{ + "probe_name":"libc", + "function_name":"catgets" + }, + "1037":{ + "probe_name":"libc", + "function_name":"catclose" + }, + "1036":{ + "probe_name":"libc", + "function_name":"capset" + }, + "1035":{ + "probe_name":"libc", + "function_name":"capget" + }, + "1034":{ + "probe_name":"libc", + "function_name":"calloc" + }, + "1033":{ + "probe_name":"libc", + "function_name":"callback" + }, + "1032":{ + "probe_name":"libc", + "function_name":"c32rtomb" + }, + "1031":{ + "probe_name":"libc", + "function_name":"c16rtomb" + }, + "1027":{ + "probe_name":"libc", + "function_name":"brk" + }, + "1026":{ + "probe_name":"libc", + "function_name":"bindtextdomain" + }, + "1009":{ + "probe_name":"libc", + "function_name":"alarm" + }, + "1008":{ + "probe_name":"libc", + "function_name":"addseverity" + }, + "1007":{ + "probe_name":"libc", + "function_name":"addmntent" + }, + "1006":{ + "probe_name":"libc", + "function_name":"acct" + }, + "1000":{ + "probe_name":"libc", + "function_name":"a64l" + }, + "1005":{ + "probe_name":"libc", + "function_name":"access" + }, + "1030":{ + "probe_name":"libc", + "function_name":"bzero" + }, + "1084":{ + "probe_name":"libc", + "function_name":"div" + }, + "1018":{ + "probe_name":"libc", + "function_name":"atol" + }, + "1017":{ + "probe_name":"libc", + "function_name":"atoi" + }, + "1029":{ + "probe_name":"libc", + "function_name":"btowc" + }, + "1083":{ + "probe_name":"libc", + "function_name":"dirname" + }, + "1002":{ + "probe_name":"libc", + "function_name":"abs" + }, + "1004":{ + "probe_name":"libc", + "function_name":"accept4" + }, + "1016":{ + "probe_name":"libc", + "function_name":"atof" + }, + "1028":{ + "probe_name":"libc", + "function_name":"bsearch" + }, + "1082":{ + "probe_name":"libc", + "function_name":"dirfd" + }, + "1001":{ + "probe_name":"libc", + "function_name":"abort" + }, + "1003":{ + "probe_name":"libc", + "function_name":"accept" + }, + "1015":{ + "probe_name":"libc", + "function_name":"asprintf" + }, + "1010":{ + "probe_name":"libc", + "function_name":"allocate:0x105510" + }, + "1011":{ + "probe_name":"libc", + "function_name":"allocate:0x122220" + }, + "1012":{ + "probe_name":"libc", + "function_name":"alphasort" + }, + "1013":{ + "probe_name":"libc", + "function_name":"alphasort64" + }, + "1014":{ + "probe_name":"libc", + "function_name":"arg" + }, + "1019":{ + "probe_name":"libc", + "function_name":"atoll" + }, + "1020":{ + "probe_name":"libc", + "function_name":"backtrace" + }, + "1021":{ + "probe_name":"libc", + "function_name":"basename" + }, + "1022":{ + "probe_name":"libc", + "function_name":"bcopy" + }, + "1023":{ + "probe_name":"libc", + "function_name":"bin2hex" + }, + "1024":{ + "probe_name":"libc", + "function_name":"bind" + }, + "1025":{ + "probe_name":"libc", + "function_name":"bindresvport" + }, + "1056":{ + "probe_name":"libc", + "function_name":"clone" + }, + "1057":{ + "probe_name":"libc", + "function_name":"clone3" + }, + "1058":{ + "probe_name":"libc", + "function_name":"close" + }, + "1059":{ + "probe_name":"libc", + "function_name":"closedir" + }, + "1060":{ + "probe_name":"libc", + "function_name":"closefrom" + }, + "1061":{ + "probe_name":"libc", + "function_name":"closelog" + }, + "1062":{ + "probe_name":"libc", + "function_name":"comma" + }, + "1063":{ + "probe_name":"libc", + "function_name":"confstr" + }, + "1064":{ + "probe_name":"libc", + "function_name":"connect" + }, + "1065":{ + "probe_name":"libc", + "function_name":"copysign" + }, + "1066":{ + "probe_name":"libc", + "function_name":"copysignf" + }, + "1067":{ + "probe_name":"libc", + "function_name":"copysignf128" + }, + "1068":{ + "probe_name":"libc", + "function_name":"copysignf32" + }, + "1069":{ + "probe_name":"libc", + "function_name":"copysignf32x" + }, + "1070":{ + "probe_name":"libc", + "function_name":"copysignf64" + }, + "1071":{ + "probe_name":"libc", + "function_name":"copysignf64x" + }, + "1072":{ + "probe_name":"libc", + "function_name":"copysignl" + }, + "1073":{ + "probe_name":"libc", + "function_name":"creat" + }, + "1074":{ + "probe_name":"libc", + "function_name":"creat64" + }, + "1075":{ + "probe_name":"libc", + "function_name":"ctermid" + }, + "1076":{ + "probe_name":"libc", + "function_name":"cuserid" + }, + "1077":{ + "probe_name":"libc", + "function_name":"daemon" + }, + "1078":{ + "probe_name":"libc", + "function_name":"dcgettext" + }, + "1079":{ + "probe_name":"libc", + "function_name":"dcngettext" + }, + "1080":{ + "probe_name":"libc", + "function_name":"deallocate" + }, + "1081":{ + "probe_name":"libc", + "function_name":"dgettext" + }, + "1085":{ + "probe_name":"libc", + "function_name":"dngettext" + }, + "1086":{ + "probe_name":"libc", + "function_name":"dprintf" + }, + "1087":{ + "probe_name":"libc", + "function_name":"drand48" + }, + "1088":{ + "probe_name":"libc", + "function_name":"dup" + }, + "1089":{ + "probe_name":"libc", + "function_name":"dup2" + }, + "1090":{ + "probe_name":"libc", + "function_name":"dup3" + }, + "1091":{ + "probe_name":"libc", + "function_name":"duplocale" + }, + "1092":{ + "probe_name":"libc", + "function_name":"dysize" + }, + "1093":{ + "probe_name":"libc", + "function_name":"eaccess" + }, + "1094":{ + "probe_name":"libc", + "function_name":"ecvt" + }, + "1095":{ + "probe_name":"libc", + "function_name":"endaliasent" + }, + "1096":{ + "probe_name":"libc", + "function_name":"endfsent" + }, + "1097":{ + "probe_name":"libc", + "function_name":"endgrent" + }, + "1098":{ + "probe_name":"libc", + "function_name":"endhostent" + }, + "1099":{ + "probe_name":"libc", + "function_name":"endmntent" + }, + "1100":{ + "probe_name":"libc", + "function_name":"endnetent" + }, + "1101":{ + "probe_name":"libc", + "function_name":"endnetgrent" + }, + "1102":{ + "probe_name":"libc", + "function_name":"endprotoent" + }, + "1103":{ + "probe_name":"libc", + "function_name":"endpwent" + }, + "1104":{ + "probe_name":"libc", + "function_name":"endrpcent" + }, + "1105":{ + "probe_name":"libc", + "function_name":"endservent" + }, + "1106":{ + "probe_name":"libc", + "function_name":"endsgent" + }, + "1107":{ + "probe_name":"libc", + "function_name":"endspent" + }, + "1108":{ + "probe_name":"libc", + "function_name":"endttyent" + }, + "0":{ + "probe_name":"M", + "function_name":"SH" + }, + "1109":{ + "probe_name":"libc", + "function_name":"endusershell" + }, + "1":{ + "probe_name":"DC", + "function_name":"start" + }, + "1110":{ + "probe_name":"libc", + "function_name":"endutent" + }, + "2":{ + "probe_name":"DC", + "function_name":"end" + }, + "1111":{ + "probe_name":"libc", + "function_name":"endutxent" + }, + "1112":{ + "probe_name":"libc", + "function_name":"erand48" + }, + "1113":{ + "probe_name":"libc", + "function_name":"err" + }, + "1114":{ + "probe_name":"libc", + "function_name":"error" + }, + "1115":{ + "probe_name":"libc", + "function_name":"errx" + }, + "1116":{ + "probe_name":"libc", + "function_name":"euidaccess" + }, + "1117":{ + "probe_name":"libc", + "function_name":"eventfd" + }, + "1118":{ + "probe_name":"libc", + "function_name":"exchange" + }, + "1119":{ + "probe_name":"libc", + "function_name":"execl" + }, + "1120":{ + "probe_name":"libc", + "function_name":"execle" + }, + "1121":{ + "probe_name":"libc", + "function_name":"execlp" + }, + "1122":{ + "probe_name":"libc", + "function_name":"execv" + }, + "1123":{ + "probe_name":"libc", + "function_name":"execve" + }, + "1254":{ + "probe_name":"libc", + "function_name":"gethostbyname2" + }, + "1255":{ + "probe_name":"libc", + "function_name":"gethostent" + }, + "1256":{ + "probe_name":"libc", + "function_name":"gethostid" + }, + "1257":{ + "probe_name":"libc", + "function_name":"gethostname" + }, + "1258":{ + "probe_name":"libc", + "function_name":"gethosts" + }, + "1259":{ + "probe_name":"libc", + "function_name":"getifaddrs" + }, + "1260":{ + "probe_name":"libc", + "function_name":"getipv4sourcefilter" + }, + "1261":{ + "probe_name":"libc", + "function_name":"getline" + }, + "1262":{ + "probe_name":"libc", + "function_name":"getloadavg" + }, + "1263":{ + "probe_name":"libc", + "function_name":"getlogin" + }, + "1264":{ + "probe_name":"libc", + "function_name":"getmntent" + }, + "1265":{ + "probe_name":"libc", + "function_name":"getnameinfo" + }, + "1266":{ + "probe_name":"libc", + "function_name":"getnetbyaddr" + }, + "1267":{ + "probe_name":"libc", + "function_name":"getnetbyname" + }, + "1268":{ + "probe_name":"libc", + "function_name":"getnetent" + }, + "1269":{ + "probe_name":"libc", + "function_name":"getnetgrent" + }, + "1270":{ + "probe_name":"libc", + "function_name":"getopt" + }, + "1271":{ + "probe_name":"libc", + "function_name":"getpagesize" + }, + "1272":{ + "probe_name":"libc", + "function_name":"getpass" + }, + "1273":{ + "probe_name":"libc", + "function_name":"getpeername" + }, + "1274":{ + "probe_name":"libc", + "function_name":"getpgid" + }, + "1275":{ + "probe_name":"libc", + "function_name":"getpgrp" + }, + "1276":{ + "probe_name":"libc", + "function_name":"getpid" + }, + "1277":{ + "probe_name":"libc", + "function_name":"getppid" + }, + "1278":{ + "probe_name":"libc", + "function_name":"getpriority" + }, + "1279":{ + "probe_name":"libc", + "function_name":"getprotobyname" + }, + "1280":{ + "probe_name":"libc", + "function_name":"getprotobynumber" + }, + "1281":{ + "probe_name":"libc", + "function_name":"getprotoent" + }, + "1282":{ + "probe_name":"libc", + "function_name":"getpt" + }, + "1283":{ + "probe_name":"libc", + "function_name":"getpw" + }, + "1284":{ + "probe_name":"libc", + "function_name":"getpwent" + }, + "1285":{ + "probe_name":"libc", + "function_name":"getpwnam" + }, + "1286":{ + "probe_name":"libc", + "function_name":"getpwuid" + }, + "1287":{ + "probe_name":"libc", + "function_name":"getrandom" + }, + "1288":{ + "probe_name":"libc", + "function_name":"getresgid" + }, + "1289":{ + "probe_name":"libc", + "function_name":"getresuid" + }, + "1290":{ + "probe_name":"libc", + "function_name":"getrlimit" + }, + "1291":{ + "probe_name":"libc", + "function_name":"getrlimit64" + }, + "1292":{ + "probe_name":"libc", + "function_name":"getrpcbyname" + }, + "1293":{ + "probe_name":"libc", + "function_name":"getrpcbynumber" + }, + "1294":{ + "probe_name":"libc", + "function_name":"getrpcent" + }, + "1295":{ + "probe_name":"libc", + "function_name":"getrusage" + }, + "1296":{ + "probe_name":"libc", + "function_name":"gets" + }, + "1297":{ + "probe_name":"libc", + "function_name":"getservbyname" + }, + "1298":{ + "probe_name":"libc", + "function_name":"getservbyport" + }, + "1299":{ + "probe_name":"libc", + "function_name":"getservent" + }, + "1300":{ + "probe_name":"libc", + "function_name":"getsgent" + }, + "1301":{ + "probe_name":"libc", + "function_name":"getsid" + }, + "1302":{ + "probe_name":"libc", + "function_name":"getsockname" + }, + "1303":{ + "probe_name":"libc", + "function_name":"getsockopt" + }, + "1304":{ + "probe_name":"libc", + "function_name":"getsourcefilter" + }, + "1305":{ + "probe_name":"libc", + "function_name":"getspent" + }, + "1306":{ + "probe_name":"libc", + "function_name":"getspnam" + }, + "1307":{ + "probe_name":"libc", + "function_name":"getsubopt" + }, + "1308":{ + "probe_name":"libc", + "function_name":"gettext" + }, + "1309":{ + "probe_name":"libc", + "function_name":"gettid" + }, + "1310":{ + "probe_name":"libc", + "function_name":"getttyent" + }, + "1311":{ + "probe_name":"libc", + "function_name":"getttynam" + }, + "1312":{ + "probe_name":"libc", + "function_name":"getuid" + }, + "1313":{ + "probe_name":"libc", + "function_name":"getusershell" + }, + "1314":{ + "probe_name":"libc", + "function_name":"getutent" + }, + "1315":{ + "probe_name":"libc", + "function_name":"getutid" + }, + "1316":{ + "probe_name":"libc", + "function_name":"getutline" + }, + "1317":{ + "probe_name":"libc", + "function_name":"getutmp" + }, + "1318":{ + "probe_name":"libc", + "function_name":"getutmpx" + }, + "1319":{ + "probe_name":"libc", + "function_name":"getutxent" + }, + "1320":{ + "probe_name":"libc", + "function_name":"getutxid" + }, + "1321":{ + "probe_name":"libc", + "function_name":"getutxline" + }, + "1322":{ + "probe_name":"libc", + "function_name":"getw" + }, + "1323":{ + "probe_name":"libc", + "function_name":"getwc" + }, + "1324":{ + "probe_name":"libc", + "function_name":"getwchar" + }, + "1325":{ + "probe_name":"libc", + "function_name":"getwd" + }, + "1326":{ + "probe_name":"libc", + "function_name":"getxattr" + }, + "1327":{ + "probe_name":"libc", + "function_name":"globfree" + }, + "1328":{ + "probe_name":"libc", + "function_name":"globfree64" + }, + "1329":{ + "probe_name":"libc", + "function_name":"gtty" + }, + "1330":{ + "probe_name":"libc", + "function_name":"hcreate" + }, + "1331":{ + "probe_name":"libc", + "function_name":"hdestroy" + }, + "1332":{ + "probe_name":"libc", + "function_name":"herror" + }, + "1333":{ + "probe_name":"libc", + "function_name":"hex2bin" + }, + "1334":{ + "probe_name":"libc", + "function_name":"hsearch" + }, + "1335":{ + "probe_name":"libc", + "function_name":"hstrerror" + }, + "1336":{ + "probe_name":"libc", + "function_name":"htonl" + }, + "1337":{ + "probe_name":"libc", + "function_name":"htons" + }, + "1338":{ + "probe_name":"libc", + "function_name":"iconv" + }, + "1339":{ + "probe_name":"libc", + "function_name":"imaxabs" + }, + "1340":{ + "probe_name":"libc", + "function_name":"imaxdiv" + }, + "1341":{ + "probe_name":"libc", + "function_name":"in6aicmp" + }, + "1342":{ + "probe_name":"libc", + "function_name":"init" + }, + "1343":{ + "probe_name":"libc", + "function_name":"initgroups" + }, + "1344":{ + "probe_name":"libc", + "function_name":"initshells" + }, + "1345":{ + "probe_name":"libc", + "function_name":"initstate" + }, + "1346":{ + "probe_name":"libc", + "function_name":"innetgr" + }, + "1347":{ + "probe_name":"libc", + "function_name":"insert.part.0" + }, + "1348":{ + "probe_name":"libc", + "function_name":"insque" + }, + "1349":{ + "probe_name":"libc", + "function_name":"ioctl" + }, + "1350":{ + "probe_name":"libc", + "function_name":"ioperm" + }, + "1351":{ + "probe_name":"libc", + "function_name":"iopl" + }, + "1352":{ + "probe_name":"libc", + "function_name":"iruserfopen" + }, + "1353":{ + "probe_name":"libc", + "function_name":"iruserok" + }, + "1354":{ + "probe_name":"libc", + "function_name":"isalnum" + }, + "1355":{ + "probe_name":"libc", + "function_name":"isalpha" + }, + "1356":{ + "probe_name":"libc", + "function_name":"isascii" + }, + "1357":{ + "probe_name":"libc", + "function_name":"isatty" + }, + "1358":{ + "probe_name":"libc", + "function_name":"isblank" + }, + "1359":{ + "probe_name":"libc", + "function_name":"iscntrl" + }, + "1360":{ + "probe_name":"libc", + "function_name":"isctype" + }, + "1361":{ + "probe_name":"libc", + "function_name":"isdigit" + }, + "1362":{ + "probe_name":"libc", + "function_name":"isfdtype" + }, + "1363":{ + "probe_name":"libc", + "function_name":"isgraph" + }, + "1364":{ + "probe_name":"libc", + "function_name":"isinf" + }, + "1365":{ + "probe_name":"libc", + "function_name":"isinff" + }, + "1366":{ + "probe_name":"libc", + "function_name":"isinfl" + }, + "1367":{ + "probe_name":"libc", + "function_name":"islower" + }, + "1368":{ + "probe_name":"libc", + "function_name":"isnan" + }, + "1369":{ + "probe_name":"libc", + "function_name":"isnanf" + }, + "1370":{ + "probe_name":"libc", + "function_name":"isnanl" + }, + "1371":{ + "probe_name":"libc", + "function_name":"isprint" + }, + "1372":{ + "probe_name":"libc", + "function_name":"ispunct" + }, + "1373":{ + "probe_name":"libc", + "function_name":"isspace" + }, + "1374":{ + "probe_name":"libc", + "function_name":"isupper" + }, + "1375":{ + "probe_name":"libc", + "function_name":"iswalnum" + }, + "1376":{ + "probe_name":"libc", + "function_name":"iswalpha" + }, + "1377":{ + "probe_name":"libc", + "function_name":"iswblank" + }, + "1378":{ + "probe_name":"libc", + "function_name":"iswcntrl" + }, + "1379":{ + "probe_name":"libc", + "function_name":"iswctype" + }, + "1380":{ + "probe_name":"libc", + "function_name":"iswdigit" + }, + "1381":{ + "probe_name":"libc", + "function_name":"iswgraph" + }, + "1382":{ + "probe_name":"libc", + "function_name":"iswlower" + }, + "1383":{ + "probe_name":"libc", + "function_name":"iswprint" + }, + "1384":{ + "probe_name":"libc", + "function_name":"iswpunct" + }, + "1385":{ + "probe_name":"libc", + "function_name":"iswspace" + }, + "1386":{ + "probe_name":"libc", + "function_name":"iswupper" + }, + "1387":{ + "probe_name":"libc", + "function_name":"iswxdigit" + }, + "1388":{ + "probe_name":"libc", + "function_name":"isxdigit" + }, + "1389":{ + "probe_name":"libc", + "function_name":"jrand48" + }, + "1390":{ + "probe_name":"libc", + "function_name":"kill" + }, + "1391":{ + "probe_name":"libc", + "function_name":"killpg" + }, + "1392":{ + "probe_name":"libc", + "function_name":"klogctl" + }, + "1393":{ + "probe_name":"libc", + "function_name":"l64a" + }, + "1394":{ + "probe_name":"libc", + "function_name":"labs" + }, + "1395":{ + "probe_name":"libc", + "function_name":"lchmod" + }, + "1396":{ + "probe_name":"libc", + "function_name":"lchown" + }, + "1397":{ + "probe_name":"libc", + "function_name":"lckpwdf" + }, + "1398":{ + "probe_name":"libc", + "function_name":"lcong48" + }, + "1399":{ + "probe_name":"libc", + "function_name":"ldexp" + }, + "1400":{ + "probe_name":"libc", + "function_name":"ldexpf" + }, + "1401":{ + "probe_name":"libc", + "function_name":"ldexpf128" + }, + "1402":{ + "probe_name":"libc", + "function_name":"ldexpf32" + }, + "1403":{ + "probe_name":"libc", + "function_name":"ldexpf32x" + }, + "1404":{ + "probe_name":"libc", + "function_name":"ldexpf64" + }, + "1405":{ + "probe_name":"libc", + "function_name":"ldexpf64x" + }, + "1406":{ + "probe_name":"libc", + "function_name":"ldexpl" + }, + "1407":{ + "probe_name":"libc", + "function_name":"ldiv" + }, + "1408":{ + "probe_name":"libc", + "function_name":"lfind" + }, + "1409":{ + "probe_name":"libc", + "function_name":"lgetxattr" + }, + "1410":{ + "probe_name":"libc", + "function_name":"link" + }, + "1411":{ + "probe_name":"libc", + "function_name":"linkat" + }, + "1412":{ + "probe_name":"libc", + "function_name":"listen" + }, + "1413":{ + "probe_name":"libc", + "function_name":"listxattr" + }, + "1414":{ + "probe_name":"libc", + "function_name":"llabs" + }, + "1415":{ + "probe_name":"libc", + "function_name":"lldiv" + }, + "1416":{ + "probe_name":"libc", + "function_name":"llistxattr" + }, + "1417":{ + "probe_name":"libc", + "function_name":"lockf" + }, + "1418":{ + "probe_name":"libc", + "function_name":"lockf64" + }, + "1419":{ + "probe_name":"libc", + "function_name":"longjmp" + }, + "1420":{ + "probe_name":"libc", + "function_name":"lrand48" + }, + "1421":{ + "probe_name":"libc", + "function_name":"lremovexattr" + }, + "1422":{ + "probe_name":"libc", + "function_name":"lsearch" + }, + "1423":{ + "probe_name":"libc", + "function_name":"lseek" + }, + "1424":{ + "probe_name":"libc", + "function_name":"lseek64" + }, + "1425":{ + "probe_name":"libc", + "function_name":"lsetxattr" + }, + "1426":{ + "probe_name":"libc", + "function_name":"lstat" + }, + "1427":{ + "probe_name":"libc", + "function_name":"lstat64" + }, + "1428":{ + "probe_name":"libc", + "function_name":"madvise" + }, + "1429":{ + "probe_name":"libc", + "function_name":"makecontext" + }, + "1430":{ + "probe_name":"libc", + "function_name":"mallinfo" + }, + "1431":{ + "probe_name":"libc", + "function_name":"mallinfo2" + }, + "1432":{ + "probe_name":"libc", + "function_name":"malloc" + }, + "1433":{ + "probe_name":"libc", + "function_name":"mallopt" + }, + "1434":{ + "probe_name":"libc", + "function_name":"mblen" + }, + "1435":{ + "probe_name":"libc", + "function_name":"mbrlen" + }, + "1436":{ + "probe_name":"libc", + "function_name":"mbrtoc16" + }, + "1437":{ + "probe_name":"libc", + "function_name":"mbrtoc32" + }, + "1438":{ + "probe_name":"libc", + "function_name":"mbrtowc" + }, + "1439":{ + "probe_name":"libc", + "function_name":"mbsinit" + }, + "1440":{ + "probe_name":"libc", + "function_name":"mbsnrtowcs" + }, + "1441":{ + "probe_name":"libc", + "function_name":"mbsrtowcs" + }, + "1442":{ + "probe_name":"libc", + "function_name":"mbstowcs" + }, + "1443":{ + "probe_name":"libc", + "function_name":"mbtowc" + }, + "1444":{ + "probe_name":"libc", + "function_name":"mcheck" + }, + "1445":{ + "probe_name":"libc", + "function_name":"mcount" + }, + "1446":{ + "probe_name":"libc", + "function_name":"memalign" + }, + "1447":{ + "probe_name":"libc", + "function_name":"memccpy" + }, + "1448":{ + "probe_name":"libc", + "function_name":"memfrob" + }, + "1449":{ + "probe_name":"libc", + "function_name":"memmem" + }, + "1450":{ + "probe_name":"libc", + "function_name":"mincore" + }, + "1451":{ + "probe_name":"libc", + "function_name":"mkdir" + }, + "1452":{ + "probe_name":"libc", + "function_name":"mkdirat" + }, + "1453":{ + "probe_name":"libc", + "function_name":"mkdtemp" + }, + "1454":{ + "probe_name":"libc", + "function_name":"mkfifo" + }, + "1455":{ + "probe_name":"libc", + "function_name":"mkfifoat" + }, + "1456":{ + "probe_name":"libc", + "function_name":"mknod" + }, + "1457":{ + "probe_name":"libc", + "function_name":"mknodat" + }, + "1458":{ + "probe_name":"libc", + "function_name":"mkostemp" + }, + "1459":{ + "probe_name":"libc", + "function_name":"mkostemp64" + }, + "1460":{ + "probe_name":"libc", + "function_name":"mkostemps" + }, + "1461":{ + "probe_name":"libc", + "function_name":"mkostemps64" + }, + "1462":{ + "probe_name":"libc", + "function_name":"mkstemp" + }, + "1463":{ + "probe_name":"libc", + "function_name":"mkstemp64" + }, + "1464":{ + "probe_name":"libc", + "function_name":"mkstemps" + }, + "1465":{ + "probe_name":"libc", + "function_name":"mkstemps64" + }, + "1466":{ + "probe_name":"libc", + "function_name":"mktemp" + }, + "1467":{ + "probe_name":"libc", + "function_name":"mlock" + }, + "1468":{ + "probe_name":"libc", + "function_name":"mlock2" + }, + "1469":{ + "probe_name":"libc", + "function_name":"mlockall" + }, + "1470":{ + "probe_name":"libc", + "function_name":"mmap" + }, + "1471":{ + "probe_name":"libc", + "function_name":"mmap64" + }, + "1472":{ + "probe_name":"libc", + "function_name":"modf" + }, + "1473":{ + "probe_name":"libc", + "function_name":"modff" + }, + "1474":{ + "probe_name":"libc", + "function_name":"modff128" + }, + "1475":{ + "probe_name":"libc", + "function_name":"modff32" + }, + "1476":{ + "probe_name":"libc", + "function_name":"modff32x" + }, + "1477":{ + "probe_name":"libc", + "function_name":"modff64" + }, + "1478":{ + "probe_name":"libc", + "function_name":"modff64x" + }, + "1479":{ + "probe_name":"libc", + "function_name":"modfl" + }, + "1480":{ + "probe_name":"libc", + "function_name":"moncontrol" + }, + "1481":{ + "probe_name":"libc", + "function_name":"monstartup" + }, + "1482":{ + "probe_name":"libc", + "function_name":"mount" + }, + "1483":{ + "probe_name":"libc", + "function_name":"mprobe" + }, + "1484":{ + "probe_name":"libc", + "function_name":"mprotect" + }, + "1485":{ + "probe_name":"libc", + "function_name":"mrand48" + }, + "1486":{ + "probe_name":"libc", + "function_name":"mremap" + }, + "1487":{ + "probe_name":"libc", + "function_name":"msgget" + }, + "1488":{ + "probe_name":"libc", + "function_name":"msgrcv" + }, + "1489":{ + "probe_name":"libc", + "function_name":"msgsnd" + }, + "1490":{ + "probe_name":"libc", + "function_name":"msync" + }, + "1491":{ + "probe_name":"libc", + "function_name":"mtrace" + }, + "1492":{ + "probe_name":"libc", + "function_name":"munlock" + }, + "1493":{ + "probe_name":"libc", + "function_name":"munlockall" + }, + "1494":{ + "probe_name":"libc", + "function_name":"munmap" + }, + "1495":{ + "probe_name":"libc", + "function_name":"muntrace" + }, + "1496":{ + "probe_name":"libc", + "function_name":"nanosleep" + }, + "1497":{ + "probe_name":"libc", + "function_name":"newlocale" + }, + "1498":{ + "probe_name":"libc", + "function_name":"ngettext" + }, + "1499":{ + "probe_name":"libc", + "function_name":"nice" + }, + "1500":{ + "probe_name":"libc", + "function_name":"nrand48" + }, + "1501":{ + "probe_name":"libc", + "function_name":"ntohl" + }, + "1502":{ + "probe_name":"libc", + "function_name":"ntohs" + }, + "1503":{ + "probe_name":"libc", + "function_name":"open" + }, + "1504":{ + "probe_name":"libc", + "function_name":"open64" + }, + "1505":{ + "probe_name":"libc", + "function_name":"openat" + }, + "1506":{ + "probe_name":"libc", + "function_name":"openat64" + }, + "1507":{ + "probe_name":"libc", + "function_name":"opendir" + }, + "1508":{ + "probe_name":"libc", + "function_name":"openlog" + }, + "1509":{ + "probe_name":"libc", + "function_name":"pathconf" + }, + "1510":{ + "probe_name":"libc", + "function_name":"pause" + }, + "1511":{ + "probe_name":"libc", + "function_name":"pcmp" + }, + "1512":{ + "probe_name":"libc", + "function_name":"perror" + }, + "1513":{ + "probe_name":"libc", + "function_name":"personality" + }, + "1514":{ + "probe_name":"libc", + "function_name":"pipe" + }, + "1515":{ + "probe_name":"libc", + "function_name":"pipe2" + }, + "1516":{ + "probe_name":"libc", + "function_name":"prctl" + }, + "1517":{ + "probe_name":"libc", + "function_name":"pread" + }, + "1518":{ + "probe_name":"libc", + "function_name":"pread64" + }, + "1519":{ + "probe_name":"libc", + "function_name":"preadv" + }, + "1520":{ + "probe_name":"libc", + "function_name":"preadv2" + }, + "1521":{ + "probe_name":"libc", + "function_name":"preadv64" + }, + "1522":{ + "probe_name":"libc", + "function_name":"preadv64v2" + }, + "1523":{ + "probe_name":"libc", + "function_name":"prefixcmp" + }, + "1524":{ + "probe_name":"libc", + "function_name":"printf" + }, + "1525":{ + "probe_name":"libc", + "function_name":"prlimit" + }, + "1526":{ + "probe_name":"libc", + "function_name":"prlimit64" + }, + "1527":{ + "probe_name":"libc", + "function_name":"profil" + }, + "1528":{ + "probe_name":"libc", + "function_name":"pselect" + }, + "1529":{ + "probe_name":"libc", + "function_name":"psiginfo" + }, + "1530":{ + "probe_name":"libc", + "function_name":"ptrace" + }, + "1531":{ + "probe_name":"libc", + "function_name":"ptsname" + }, + "1532":{ + "probe_name":"libc", + "function_name":"putc" + }, + "1533":{ + "probe_name":"libc", + "function_name":"putchar" + }, + "1534":{ + "probe_name":"libc", + "function_name":"putenv" + }, + "1535":{ + "probe_name":"libc", + "function_name":"putgrent" + }, + "1536":{ + "probe_name":"libc", + "function_name":"putpwent" + }, + "1537":{ + "probe_name":"libc", + "function_name":"puts" + } +} \ No newline at end of file diff --git a/etc/datacrumbs/data/manual-probes-haridev-lead-us.json b/etc/datacrumbs/data/manual-probes-haridev-lead-us.json index 5a2a9eed..7651eb4e 100644 --- a/etc/datacrumbs/data/manual-probes-haridev-lead-us.json +++ b/etc/datacrumbs/data/manual-probes-haridev-lead-us.json @@ -1 +1,22 @@ -[{"type":2,"name":"libc","functions":["1160","1161","1162","1163"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] +[ + { + "type":2, + "name":"libc", + "functions":[ + "1010", + "1011", + "1051", + "1052", + "1567", + "1568", + "1569", + "1570", + "1928", + "1929", + "1930", + "1931" + ], + "binary_path":"\/usr\/lib64\/libc.so.6", + "include_offsets":false + } +] \ No newline at end of file diff --git a/etc/datacrumbs/data/probes-haridev-lead-us.json b/etc/datacrumbs/data/probes-haridev-lead-us.json index 975e6b38..a9831b3d 100644 --- a/etc/datacrumbs/data/probes-haridev-lead-us.json +++ b/etc/datacrumbs/data/probes-haridev-lead-us.json @@ -1 +1,944 @@ -[{"type":2,"name":"libc","functions":["access","chdir","chmod","chown","close","closedir","connect","creat","creat64","dirfd","dup","dup2","dup3","eaccess","euidaccess","eventfd","faccessat","fallocate","fallocate64","fchdir","fchmod","fchmodat","fchown","fchownat","fcloseall","fcntl","fcntl64","fdatasync","fdopendir","fflush","fgetc","fgets","fgetwc","fgetws","fgetxattr","fileno","flistxattr","flock","fopen64","fprintf","fputc","fputs","fputwc","fputws","fread","fremovexattr","freopen","freopen64","fscanf","fseek","fseeko","fseeko64","fsetxattr","fstat","fstat64","fstatat","fstatat64","fstatfs","fstatfs64","fstatvfs","fstatvfs64","fsync","ftell","ftello","ftello64","ftruncate","ftruncate64","ftw","ftw64","fwprintf","fwrite","fwscanf","getc","getchar","getcwd","getdelim","getdents64","getdirentries","getdirentries64","getline","getpeername","getsockname","getsockopt","getw","getwc","getwchar","getwd","getxattr","ioctl","lchmod","lchown","lgetxattr","link","linkat","listen","listxattr","llistxattr","lockf","lockf64","lremovexattr","lseek","lseek64","lsetxattr","lstat","lstat64","mkdir","mkdirat","mkdtemp","mkfifo","mkfifoat","mknod","mknodat","mkostemp","mkostemp64","mkostemps","mkostemps64","mkstemp","mkstemp64","mkstemps","mkstemps64","mmap","mmap64","mount","mremap","msync","munmap","open","open64","openat","openat64","opendir","openlog","pipe","pipe2","pread","pread64","preadv","preadv2","preadv64","preadv64v2","printf","putc","putchar","puts","putw","putwc","putwchar","pwrite","pwrite64","pwritev","pwritev2","pwritev64","pwritev64v2","quotactl","read","readahead","readdir","readdir64","readlink","readlinkat","readtcp:0x1497e0","readtcp:0x14cc30","readunix:0x146e50","readunix:0x147810","readv","recv","recvfrom","recvmmsg","recvmsg","remove","removexattr","rename","renameat","renameat2","rewind","rewinddir","rmdir","splice","sprintf","sscanf","stat","stat64","statfs","statfs64","statvfs","statvfs64","statx","wprintf","write","writev","wscanf"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] +[ + { + "type":2, + "name":"libc", + "functions":[ + "a64l", + "abort", + "abs", + "accept", + "accept4", + "access", + "acct", + "addmntent", + "addseverity", + "alarm", + "allocate:0x105510", + "allocate:0x122220", + "alphasort", + "alphasort64", + "arg", + "asprintf", + "atof", + "atoi", + "atol", + "atoll", + "backtrace", + "basename", + "bcopy", + "bin2hex", + "bind", + "bindresvport", + "bindtextdomain", + "brk", + "bsearch", + "btowc", + "bzero", + "c16rtomb", + "c32rtomb", + "callback", + "calloc", + "capget", + "capset", + "catclose", + "catgets", + "catopen", + "cfgetispeed", + "cfgetospeed", + "cfmakeraw", + "cfsetispeed", + "cfsetospeed", + "cfsetspeed", + "chdir", + "chflags", + "chmod", + "chown", + "chroot", + "cleanup:0x8ba90", + "cleanup:0x943c0", + "clearenv", + "clearerr", + "clock", + "clone", + "clone3", + "close", + "closedir", + "closefrom", + "closelog", + "comma", + "confstr", + "connect", + "copysign", + "copysignf", + "copysignf128", + "copysignf32", + "copysignf32x", + "copysignf64", + "copysignf64x", + "copysignl", + "creat", + "creat64", + "ctermid", + "cuserid", + "daemon", + "dcgettext", + "dcngettext", + "deallocate", + "dgettext", + "dirfd", + "dirname", + "div", + "dngettext", + "dprintf", + "drand48", + "dup", + "dup2", + "dup3", + "duplocale", + "dysize", + "eaccess", + "ecvt", + "endaliasent", + "endfsent", + "endgrent", + "endhostent", + "endmntent", + "endnetent", + "endnetgrent", + "endprotoent", + "endpwent", + "endrpcent", + "endservent", + "endsgent", + "endspent", + "endttyent", + "endusershell", + "endutent", + "endutxent", + "erand48", + "err", + "error", + "errx", + "euidaccess", + "eventfd", + "exchange", + "execl", + "execle", + "execlp", + "execv", + "execve", + "execveat", + "execvp", + "execvpe", + "exit", + "faccessat", + "fallocate", + "fallocate64", + "fchdir", + "fchflags", + "fchmod", + "fchmodat", + "fchown", + "fchownat", + "fcloseall", + "fcntl", + "fcntl64", + "fcvt", + "fdatasync", + "fdopendir", + "feof", + "ferror", + "fexecve", + "fflush", + "ffs", + "ffsl", + "ffsll", + "fgetc", + "fgetgrent", + "fgetpwent", + "fgets", + "fgetsgent", + "fgetspent", + "fgetwc", + "fgetws", + "fgetxattr", + "fileno", + "fini", + "finite", + "finitef", + "finitel", + "flistxattr", + "flock", + "flockfile", + "fmtmsg", + "fopen64", + "fork", + "fpathconf", + "fprintf", + "fputc", + "fputs", + "fputwc", + "fputws", + "fread", + "free", + "freeaddrinfo", + "freecache", + "freeifaddrs", + "freelocale", + "freeres", + "fremovexattr", + "freopen", + "freopen64", + "frexp", + "frexpf", + "frexpf128", + "frexpf32", + "frexpf32x", + "frexpf64", + "frexpf64x", + "frexpl", + "fscanf", + "fseek", + "fseeko", + "fseeko64", + "fsetxattr", + "fstat", + "fstat64", + "fstatat", + "fstatat64", + "fstatfs", + "fstatfs64", + "fstatvfs", + "fstatvfs64", + "fsync", + "ftell", + "ftello", + "ftello64", + "ftok", + "ftruncate", + "ftruncate64", + "ftrylockfile", + "ftw", + "ftw64", + "funlockfile", + "fwide", + "fwprintf", + "fwrite", + "fwscanf", + "gcvt", + "getaddrinfo", + "getaliasbyname", + "getaliasent", + "getauxval", + "getc", + "getchar", + "getcontext", + "getcpu", + "getcwd", + "getdate", + "getdelim", + "getdents64", + "getdirentries", + "getdirentries64", + "getdomainname", + "getdtablesize", + "getegid", + "getentropy", + "getenv", + "geteuid", + "getfsent", + "getfsfile", + "getfsspec", + "getgid", + "getgrent", + "getgrgid", + "getgrnam", + "getgrouplist", + "getgroups", + "gethostbyaddr", + "gethostbyname", + "gethostbyname2", + "gethostent", + "gethostid", + "gethostname", + "gethosts", + "getifaddrs", + "getipv4sourcefilter", + "getline", + "getloadavg", + "getlogin", + "getmntent", + "getnameinfo", + "getnetbyaddr", + "getnetbyname", + "getnetent", + "getnetgrent", + "getopt", + "getpagesize", + "getpass", + "getpeername", + "getpgid", + "getpgrp", + "getpid", + "getppid", + "getpriority", + "getprotobyname", + "getprotobynumber", + "getprotoent", + "getpt", + "getpw", + "getpwent", + "getpwnam", + "getpwuid", + "getrandom", + "getresgid", + "getresuid", + "getrlimit", + "getrlimit64", + "getrpcbyname", + "getrpcbynumber", + "getrpcent", + "getrusage", + "gets", + "getservbyname", + "getservbyport", + "getservent", + "getsgent", + "getsid", + "getsockname", + "getsockopt", + "getsourcefilter", + "getspent", + "getspnam", + "getsubopt", + "gettext", + "gettid", + "getttyent", + "getttynam", + "getuid", + "getusershell", + "getutent", + "getutid", + "getutline", + "getutmp", + "getutmpx", + "getutxent", + "getutxid", + "getutxline", + "getw", + "getwc", + "getwchar", + "getwd", + "getxattr", + "globfree", + "globfree64", + "gtty", + "hcreate", + "hdestroy", + "herror", + "hex2bin", + "hsearch", + "hstrerror", + "htonl", + "htons", + "iconv", + "imaxabs", + "imaxdiv", + "in6aicmp", + "init", + "initgroups", + "initshells", + "initstate", + "innetgr", + "insert.part.0", + "insque", + "ioctl", + "ioperm", + "iopl", + "iruserfopen", + "iruserok", + "isalnum", + "isalpha", + "isascii", + "isatty", + "isblank", + "iscntrl", + "isctype", + "isdigit", + "isfdtype", + "isgraph", + "isinf", + "isinff", + "isinfl", + "islower", + "isnan", + "isnanf", + "isnanl", + "isprint", + "ispunct", + "isspace", + "isupper", + "iswalnum", + "iswalpha", + "iswblank", + "iswcntrl", + "iswctype", + "iswdigit", + "iswgraph", + "iswlower", + "iswprint", + "iswpunct", + "iswspace", + "iswupper", + "iswxdigit", + "isxdigit", + "jrand48", + "kill", + "killpg", + "klogctl", + "l64a", + "labs", + "lchmod", + "lchown", + "lckpwdf", + "lcong48", + "ldexp", + "ldexpf", + "ldexpf128", + "ldexpf32", + "ldexpf32x", + "ldexpf64", + "ldexpf64x", + "ldexpl", + "ldiv", + "lfind", + "lgetxattr", + "link", + "linkat", + "listen", + "listxattr", + "llabs", + "lldiv", + "llistxattr", + "lockf", + "lockf64", + "longjmp", + "lrand48", + "lremovexattr", + "lsearch", + "lseek", + "lseek64", + "lsetxattr", + "lstat", + "lstat64", + "madvise", + "makecontext", + "mallinfo", + "mallinfo2", + "malloc", + "mallopt", + "mblen", + "mbrlen", + "mbrtoc16", + "mbrtoc32", + "mbrtowc", + "mbsinit", + "mbsnrtowcs", + "mbsrtowcs", + "mbstowcs", + "mbtowc", + "mcheck", + "mcount", + "memalign", + "memccpy", + "memfrob", + "memmem", + "mincore", + "mkdir", + "mkdirat", + "mkdtemp", + "mkfifo", + "mkfifoat", + "mknod", + "mknodat", + "mkostemp", + "mkostemp64", + "mkostemps", + "mkostemps64", + "mkstemp", + "mkstemp64", + "mkstemps", + "mkstemps64", + "mktemp", + "mlock", + "mlock2", + "mlockall", + "mmap", + "mmap64", + "modf", + "modff", + "modff128", + "modff32", + "modff32x", + "modff64", + "modff64x", + "modfl", + "moncontrol", + "monstartup", + "mount", + "mprobe", + "mprotect", + "mrand48", + "mremap", + "msgget", + "msgrcv", + "msgsnd", + "msync", + "mtrace", + "munlock", + "munlockall", + "munmap", + "muntrace", + "nanosleep", + "newlocale", + "ngettext", + "nice", + "nrand48", + "ntohl", + "ntohs", + "open", + "open64", + "openat", + "openat64", + "opendir", + "openlog", + "pathconf", + "pause", + "pcmp", + "perror", + "personality", + "pipe", + "pipe2", + "prctl", + "pread", + "pread64", + "preadv", + "preadv2", + "preadv64", + "preadv64v2", + "prefixcmp", + "printf", + "prlimit", + "prlimit64", + "profil", + "pselect", + "psiginfo", + "ptrace", + "ptsname", + "putc", + "putchar", + "putenv", + "putgrent", + "putpwent", + "puts", + "putsgent", + "putspent", + "pututline", + "pututxline", + "putw", + "putwc", + "putwchar", + "pvalloc", + "pwrite", + "pwrite64", + "pwritev", + "pwritev2", + "pwritev64", + "pwritev64v2", + "qecvt", + "qfcvt", + "qgcvt", + "qsort", + "quotactl", + "raise", + "rand", + "random", + "rcmd", + "read", + "readahead", + "readdir", + "readdir64", + "readlink", + "readlinkat", + "readtcp:0x1497e0", + "readtcp:0x14cc30", + "readunix:0x146e50", + "readunix:0x147810", + "readv", + "realloc", + "reallocarray", + "reboot", + "recv", + "recvfrom", + "recvmmsg", + "recvmsg", + "regcomp", + "regerror", + "regfree", + "remove", + "removexattr", + "remque", + "rename", + "renameat", + "renameat2", + "reopen", + "revoke", + "rewind", + "rewinddir", + "rexec", + "rmdir", + "rpmatch", + "rresvport", + "ruserok", + "ruserpass", + "sbrk", + "scalbn", + "scalbnf", + "scalbnf128", + "scalbnf32", + "scalbnf32x", + "scalbnf64", + "scalbnf64x", + "scalbnl", + "scandir", + "scandir64", + "scandirat", + "scandirat64", + "scanf", + "scopecmp", + "seed48", + "seekdir", + "select", + "semget", + "semop", + "send", + "sendfile", + "sendfile64", + "sendmmsg", + "sendmsg", + "sendto", + "setaliasent", + "setbuf", + "setbuffer", + "setcontext", + "setdomainname", + "setegid", + "setenv", + "seteuid", + "setfsent", + "setfsgid", + "setfsuid", + "setgid", + "setgrent", + "setgroups", + "sethostent", + "sethostid", + "sethostname", + "setipv4sourcefilter", + "setjmp", + "setlinebuf", + "setlocale", + "setlogin", + "setlogmask", + "setmntent", + "setnetent", + "setnetgrent", + "setns", + "setpgid", + "setpgrp", + "setpriority", + "setprotoent", + "setpwent", + "setregid", + "setresgid", + "setresuid", + "setreuid", + "setrlimit", + "setrlimit64", + "setrpcent", + "setservent", + "setsgent", + "setsid", + "setsockopt", + "setsourcefilter", + "setspent", + "setstate", + "setttyent", + "setuid", + "setusershell", + "setutent", + "setutxent", + "setvbuf", + "setxattr", + "sgetsgent", + "sgetspent", + "shmat", + "shmdt", + "shmget", + "shutdown", + "sigaction", + "sigaddset", + "sigaltstack", + "sigandset", + "sigblock", + "sigdelset", + "sigemptyset", + "sigfillset", + "siggetmask", + "sighold", + "sigignore", + "siginterrupt", + "sigisemptyset", + "sigismember", + "siglongjmp", + "sigorset", + "sigpause", + "sigpending", + "sigprocmask", + "sigqueue", + "sigrelse", + "sigreturn", + "sigset", + "sigsetmask", + "sigstack", + "sigsuspend", + "sigwait", + "sigwaitinfo", + "skip", + "sleep", + "snprintf", + "sockatmark", + "socket", + "socketpair", + "space", + "splice", + "sprintf", + "sprofil", + "srand", + "srand48", + "srandom", + "sscanf", + "stat", + "stat64", + "statfs", + "statfs64", + "statvfs", + "statvfs64", + "statx", + "strcasestr", + "strcoll", + "strdup", + "strerror", + "strfmon", + "strfromd", + "strfromf", + "strfromf128", + "strfromf32", + "strfromf32x", + "strfromf64", + "strfromf64x", + "strfroml", + "strfry", + "strndup", + "strsep", + "strtod", + "strtof", + "strtof128", + "strtof32", + "strtof32x", + "strtof64", + "strtof64x", + "strtoimax", + "strtok", + "strtol", + "strtold", + "strtoll", + "strtoq", + "strtoul", + "strtoull", + "strtoumax", + "strtouq", + "strverscmp", + "strxfrm", + "stty", + "swab", + "swapcontext", + "swapoff", + "swapon", + "swprintf", + "swscanf", + "symlink", + "symlinkat", + "sync", + "syncfs", + "syscall", + "sysconf", + "sysinfo", + "syslog", + "sysmalloc", + "system", + "systrim.constprop.0", + "tcdrain", + "tcflow", + "tcflush", + "tcgetattr", + "tcgetpgrp", + "tcgetsid", + "tcsendbreak", + "tcsetattr", + "tcsetpgrp", + "tdelete", + "tdestroy", + "tee", + "telldir", + "tempnam", + "textdomain", + "tfind", + "tgkill", + "tmpfile64", + "tmpnam", + "toascii", + "token.part.0", + "tolower", + "toupper", + "towctrans", + "towlower", + "towupper", + "transcmp", + "trecurse", + "truncate", + "truncate64", + "try", + "tsearch", + "ttyname", + "ttyslot", + "twalk", + "tzset", + "ualarm", + "ulckpwdf", + "ulimit", + "umask", + "umount", + "umount2", + "uname", + "ungetc", + "ungetwc", + "universal", + "unlink", + "unlinkat", + "unlock", + "unlockpt", + "unsetenv", + "unshare", + "updwtmp", + "updwtmpx", + "uselocale", + "usleep", + "utmpname", + "utmpxname", + "valloc", + "vasprintf", + "vdprintf", + "verr", + "verrx", + "versionsort", + "versionsort64", + "vfork", + "vfprintf", + "vfscanf", + "vfwprintf", + "vfwscanf", + "vhangup", + "vlimit", + "vmsplice", + "vprintf", + "vscanf", + "vsnprintf", + "vsprintf", + "vsscanf", + "vswprintf", + "vswscanf", + "vsyslog", + "vwarn", + "vwarnx", + "vwprintf", + "vwscanf", + "wait", + "wait3", + "wait4", + "waitid", + "waitpid", + "walker", + "warn", + "warnx", + "wcpcpy", + "wcpncpy", + "wcrtomb", + "wcscasecmp", + "wcscat", + "wcschrnul", + "wcscoll", + "wcscspn", + "wcsdup", + "wcsncasecmp", + "wcsncat", + "wcsncpy", + "wcsnrtombs", + "wcspbrk", + "wcsrtombs", + "wcsspn", + "wcsstr", + "wcstod", + "wcstof", + "wcstof128", + "wcstof32", + "wcstof32x", + "wcstof64", + "wcstof64x", + "wcstoimax", + "wcstok", + "wcstol", + "wcstold", + "wcstoll", + "wcstombs", + "wcstoq", + "wcstoul", + "wcstoull", + "wcstoumax", + "wcstouq", + "wcswcs", + "wcswidth", + "wcsxfrm", + "wctob", + "wctomb", + "wctrans", + "wctype", + "wcwidth", + "wmemcpy", + "wmemmove", + "wmempcpy", + "wordexp", + "wordfree", + "wprintf", + "write", + "writetcp:0x149760", + "writetcp:0x14cbc0", + "writeunix:0x146dd0", + "writeunix:0x1476a0", + "writev", + "wscanf" + ], + "binary_path":"\/usr\/lib64\/libc.so.6", + "include_offsets":false + } +] \ No newline at end of file diff --git a/src/datacrumbs/common/configuration_manager.cpp b/src/datacrumbs/common/configuration_manager.cpp index d84827ed..df3f6b25 100644 --- a/src/datacrumbs/common/configuration_manager.cpp +++ b/src/datacrumbs/common/configuration_manager.cpp @@ -44,10 +44,8 @@ bool datacrumbs::Singleton::stop_creating_inst /** * YAML keys for configuration */ -#define DC_YAML_MODE "mode" #define DC_YAML_TRACE_LOG_DIR "trace_log_dir" #define DC_YAML_DATA_DIR "data_dir" -#define DC_YAML_PROFILING_INTERVAL "profiling_interval" #define DC_YAML_CAPTURE_PROBES "capture_probes" #define DC_YAML_USER "user" #define DC_YAML_INCLUSION_PATH "inclusion_path" @@ -61,18 +59,12 @@ ArgumentParser::ArgumentParser(int argc, char** argv, int start_index) { for (int i = start_index + 1; i < argc; ++i) { std::string arg = argv[i]; - if (arg == "--mode" && i + 1 < argc) { - mode = argv[++i]; - DC_LOG_DEBUG("[ArgumentParser] Mode set to: %s", mode->c_str()); - } else if (arg == "--trace_log_dir" && i + 1 < argc) { + if (arg == "--trace_log_dir" && i + 1 < argc) { trace_log_dir = argv[++i]; DC_LOG_DEBUG("[ArgumentParser] Trace log dir set to: %s", trace_log_dir->c_str()); } else if (arg == "--data_dir" && i + 1 < argc) { data_dir = argv[++i]; DC_LOG_DEBUG("[ArgumentParser] Data directory set to: %s", data_dir->c_str()); - } else if (arg == "--profiling_interval" && i + 1 < argc) { - profiling_interval = std::stof(argv[++i]); - DC_LOG_DEBUG("[ArgumentParser] Profiling interval set to: %f", *profiling_interval); } else if (arg == "--config_path" && i + 1 < argc) { config_path = argv[++i]; DC_LOG_DEBUG("[ArgumentParser] Config path set to: %s", config_path->c_str()); @@ -87,8 +79,8 @@ ArgumentParser::ArgumentParser(int argc, char** argv, int start_index) { DC_LOG_DEBUG("[ArgumentParser] Log directory set to: %s", log_dir->c_str()); } else if (arg == "--help" || arg == "-h") { DC_LOG_PRINT( - "Usage: %s [--mode ] [--trace_log_dir ] " - "[--profiling_interval ] [--config_path ] [--user ] [--data_dir " + "Usage: %s [--trace_log_dir ] " + "[--config_path ] [--user ] [--data_dir " "] [--inclusion_path ] [--log_dir ]", argv[0]); exit(0); @@ -112,10 +104,8 @@ ArgumentParser::ArgumentParser(int argc, char** argv, int start_index) { ConfigurationManager::ConfigurationManager(int argc, char** argv, bool print, int start_index) : path(DATACRUMBS_CONFIG_PATH), name("default"), - mode(Mode::PROFILER), trace_log_dir(DATACRUMBS_LOG_DIR), capture_probes(), - profiling_interval(0.1f), // Default profiling interval in seconds user("datacrumbs") { DC_LOG_TRACE("[ConfigurationManager] Initializing with arguments..."); ArgumentParser parser(argc, argv, start_index); @@ -146,12 +136,6 @@ ConfigurationManager::ConfigurationManager(int argc, char** argv, bool print, in // Parse YAML configuration if loaded successfully if (config) { DC_LOG_TRACE("[ConfigurationManager] Parsing configuration YAML..."); - // Parse mode from YAML - if (config[DC_YAML_MODE]) { - convert(config[DC_YAML_MODE].as(), this->mode); - DC_LOG_DEBUG("[ConfigurationManager] Mode set from config: %s", - config[DC_YAML_MODE].as().c_str()); - } // Parse trace log directory from YAML if (config[DC_YAML_TRACE_LOG_DIR]) { this->trace_log_dir = config[DC_YAML_TRACE_LOG_DIR].as(); @@ -168,12 +152,6 @@ ConfigurationManager::ConfigurationManager(int argc, char** argv, bool print, in DC_LOG_DEBUG("[ConfigurationManager] Data directory not specified, using default: %s", this->data_dir.string().c_str()); } - // Parse profiling interval from YAML - if (config[DC_YAML_PROFILING_INTERVAL]) { - this->profiling_interval = config[DC_YAML_PROFILING_INTERVAL].as(); - DC_LOG_DEBUG("[ConfigurationManager] Profiling interval set from config: %f", - this->profiling_interval); - } // Parse capture probes from YAML if (config[DC_YAML_CAPTURE_PROBES]) { DC_LOG_TRACE("[ConfigurationManager] Parsing capture probes..."); @@ -362,23 +340,12 @@ ConfigurationManager::ConfigurationManager(int argc, char** argv, bool print, in DC_LOG_DEBUG("[ConfigurationManager] Data directory overridden by argument: %s", this->data_dir.string().c_str()); } - // Override mode if provided as argument - if (parser.mode) { - convert(*parser.mode, this->mode); - DC_LOG_DEBUG("[ConfigurationManager] Mode overridden by argument: %s", parser.mode->c_str()); - } // Override trace log dir if provided as argument if (parser.trace_log_dir) { this->trace_log_dir = *parser.trace_log_dir; DC_LOG_DEBUG("[ConfigurationManager] Trace log dir overridden by argument: %s", parser.trace_log_dir->c_str()); } - // Override profiling interval if provided as argument - if (parser.profiling_interval) { - this->profiling_interval = *parser.profiling_interval; - DC_LOG_DEBUG("[ConfigurationManager] Profiling interval overridden by argument: %f", - *parser.profiling_interval); - } // Override user if provided as argument if (parser.user) { this->user = *parser.user; @@ -420,7 +387,6 @@ void ConfigurationManager::print_configurations() { DC_LOG_INFO("[ConfigurationManager] Category map loaded with %zu entries.", category_map.size()); DC_LOG_INFO(" Path: %s", this->path.string().c_str()); DC_LOG_INFO(" Name: %s", this->name.c_str()); - DC_LOG_INFO(" Mode: %d", static_cast(this->mode)); DC_LOG_INFO(" Trace log dir: %s", this->trace_log_dir.string().c_str()); DC_LOG_INFO(" Trace file path: %s", this->trace_file_path.string().c_str()); DC_LOG_INFO(" Data dir: %s", this->data_dir.string().c_str()); @@ -429,10 +395,15 @@ void ConfigurationManager::print_configurations() { DC_LOG_INFO(" Probe invalid file path: %s", this->probe_invalid_file_path.string().c_str()); DC_LOG_INFO(" Manual probe path: %s", this->manual_probe_path.string().c_str()); DC_LOG_INFO(" Category map path: %s", this->category_map_path.string().c_str()); - DC_LOG_INFO(" Profiling interval: %f", this->profiling_interval); + DC_LOG_INFO(" Profiling interval: %f", DATACRUMBS_TIME_INTERVAL_NS / 1e9); DC_LOG_INFO(" User: %s", this->user.c_str()); DC_LOG_INFO(" Hostname: %s", this->hostname.c_str()); DC_LOG_INFO(" Capture probes: %d", static_cast(this->capture_probes.size())); + if (DATACRUMBS_MODE == 1) { + DC_LOG_INFO(" Mode: Tracing"); + } else if (DATACRUMBS_MODE == 2) { + DC_LOG_INFO(" Mode: Profiling"); + } if (this->inclusion_path.empty()) { DC_LOG_INFO(" Inclusion path: Not set"); } else { @@ -574,12 +545,13 @@ void ConfigurationManager::validate_configurations() { DC_LOG_ERROR("[ConfigurationManager] No capture probes defined in the configuration."); throw std::invalid_argument("At least one capture probe must be defined."); } - if (!std::filesystem::exists(this->data_dir)) { + if (this->data_dir.empty() || !std::filesystem::exists(this->data_dir)) { DC_LOG_ERROR("[ConfigurationManager] Data directory does not exist: %s", this->data_dir.string().c_str()); throw std::runtime_error("Data directory does not exist: " + this->data_dir.string()); } - if (!std::filesystem::exists(std::filesystem::path(this->trace_log_dir))) { + if (this->trace_log_dir.empty() || + !std::filesystem::exists(std::filesystem::path(this->trace_log_dir))) { DC_LOG_ERROR("[ConfigurationManager] Trace log directory does not exist: %s", this->trace_log_dir.string().c_str()); throw std::runtime_error("Trace log directory does not exist: " + diff --git a/src/datacrumbs/common/configuration_manager.h b/src/datacrumbs/common/configuration_manager.h index 6b9b3b95..e801986a 100644 --- a/src/datacrumbs/common/configuration_manager.h +++ b/src/datacrumbs/common/configuration_manager.h @@ -43,9 +43,6 @@ class ConfigurationManager { // Name of the configuration file std::string name; - // Mode of operation (e.g., PROFILER or TRACER) - Mode mode; - // Directory where trace logs will be stored std::filesystem::path trace_log_dir; @@ -55,9 +52,6 @@ class ConfigurationManager { // User associated with the configuration std::string user; - // Profiling-specific configuration: interval for profiling in seconds - float profiling_interval; - std::string inclusion_path; // Path to the inclusion file std::string log_dir; // Directory for log files @@ -128,9 +122,7 @@ class ConfigurationManager { class ArgumentParser { public: std::string config_name; ///< Name of the configuration to load - std::optional mode; ///< Optional mode argument std::optional trace_log_dir; ///< Optional trace log directory - std::optional profiling_interval; ///< Optional profiling interval std::optional config_path; ///< Optional configuration file path std::optional data_dir; ///< Optional data directory std::optional user; ///< Optional user argument diff --git a/src/datacrumbs/server/bpf/init.bpf.c b/src/datacrumbs/server/bpf/init.bpf.c index cd9c146f..eaaf8c48 100644 --- a/src/datacrumbs/server/bpf/init.bpf.c +++ b/src/datacrumbs/server/bpf/init.bpf.c @@ -22,7 +22,7 @@ static inline __attribute__((always_inline)) int generic_trace_datacrumbs_start( event->event_id = event_id; event->ts = tsp; event->dur = 0; - DATACRUMBS_EVENT_SUBMIT(event, id, event->event_id); + DATACRUMBS_EVENT_SUBMIT(event, id, event_id); #endif return 0; } @@ -42,7 +42,7 @@ static inline __attribute__((always_inline)) int generic_trace_datacrumbs_stop() event->event_id = event_id; event->ts = bpf_ktime_get_ns(); event->dur = 0; - DATACRUMBS_EVENT_SUBMIT(event, id, event->event_id); + DATACRUMBS_EVENT_SUBMIT(event, id, event_id); #endif return 0; } From 7acf574ec4a037113fa956649ff87efbefa8c67e Mon Sep 17 00:00:00 2001 From: Hariharan Devarajan Date: Sun, 12 Oct 2025 01:29:30 -0700 Subject: [PATCH 4/7] fixed patch --- docs/patch/bpftime-v0.2.0.patch | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/patch/bpftime-v0.2.0.patch b/docs/patch/bpftime-v0.2.0.patch index 3f34c1ca..d16dfe98 100644 --- a/docs/patch/bpftime-v0.2.0.patch +++ b/docs/patch/bpftime-v0.2.0.patch @@ -267,9 +267,3 @@ index eb9c5f8..bac265f 100644 -install(TARGETS bpftime-cli-cpp CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ~/.bpftime) +install(TARGETS bpftime-cli-cpp CONFIGURATIONS Release Debug RelWithDebInfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin) -diff --git a/vm/llvm-jit b/vm/llvm-jit ---- a/vm/llvm-jit -+++ b/vm/llvm-jit -@@ -1 +1 @@ --Subproject commit 43b57a1bed0801666a477d8de30a33b8a3a1a878 -+Subproject commit 43b57a1bed0801666a477d8de30a33b8a3a1a878-dirty From 63bd4db8b322b4e3cc3ce76092128ab8e6599144 Mon Sep 17 00:00:00 2001 From: hariharan devarajan Date: Fri, 17 Oct 2025 01:02:16 +0000 Subject: [PATCH 5/7] orangefs scripts --- docs/orangefs.rst | 0 infrastrutcure/chameleon/orangefs/client_list | 1 + infrastrutcure/chameleon/orangefs/deploy.sh | 88 +++++++++++++++ infrastrutcure/chameleon/orangefs/install.sh | 16 +++ .../chameleon/orangefs/orangefs.lua | 104 ++++++++++++++++++ .../orangefs/orangefs_client_mount.sh | 7 ++ infrastrutcure/chameleon/orangefs/server_list | 1 + .../chameleon/orangefs/terminate.sh | 32 ++++++ 8 files changed, 249 insertions(+) create mode 100644 docs/orangefs.rst create mode 100644 infrastrutcure/chameleon/orangefs/client_list create mode 100755 infrastrutcure/chameleon/orangefs/deploy.sh create mode 100755 infrastrutcure/chameleon/orangefs/install.sh create mode 100644 infrastrutcure/chameleon/orangefs/orangefs.lua create mode 100755 infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh create mode 100644 infrastrutcure/chameleon/orangefs/server_list create mode 100644 infrastrutcure/chameleon/orangefs/terminate.sh diff --git a/docs/orangefs.rst b/docs/orangefs.rst new file mode 100644 index 00000000..e69de29b diff --git a/infrastrutcure/chameleon/orangefs/client_list b/infrastrutcure/chameleon/orangefs/client_list new file mode 100644 index 00000000..b1f95620 --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/client_list @@ -0,0 +1 @@ +ubuntu-dc-ofs diff --git a/infrastrutcure/chameleon/orangefs/deploy.sh b/infrastrutcure/chameleon/orangefs/deploy.sh new file mode 100755 index 00000000..a47acdef --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/deploy.sh @@ -0,0 +1,88 @@ +#!/bin/bash +set -u +set -e +#Remeber to have env Variables for: +# ORANGEFS_KO +# ORANGEFS_PATH +# PVFS2TAB_FILE + +CWD=$(pwd) + +if [ $# -eq 0 ]; then + echo "$(basename $0) " + echo "OR\n$(basename $0) " + exit 0 +fi + +server_loc=${1} +client_loc=$2 +conf_file=${ORANGEFS_CONFIG:-$3} +client_dir=${ORANGEFS_MOUNT:-$4} + +#Input Variables +server_dir=$(awk '$1 ~ /DataStorageSpace/ {print $2}' $conf_file) +meta_dir=$(awk '$1 ~ /MetadataStorageSpace/ {print $2}' $conf_file) + +#General Variables +server_list=($(cat $server_loc)) +client_list=($(cat $client_loc)) + +#Config PFS +name=$(grep -oP '(?<=Name )\w+' "${conf_file}" | head -n 1) #TODO: Allow renaming +comm_port=$(grep -oP 'tcp://[^:]+:\K\d+' ${conf_file} | head -n 1) #TODO: Allow changing +OFS_PATH=$ORANGEFS_PATH + +echo "Setting up ${name} on port ${comm_port}" + +echo $CWD +count=0 + +set -x +set +e + +OFS_LMOD="orangefs/2.10" + +#echo "Setting up servers" +#echo "Cleanup (Can Fail if nothing to clean)" +#parallel-ssh -h ${server_loc} "killall pvfs2-server" +#parallel-ssh -h ${server_loc} "rm -rf ${server_dir}" +#parallel-ssh -h ${server_loc} "rm -rf ${meta_dir}" +echo "Deployment" +parallel-ssh -h "${server_loc}" -i \ + "mkdir -p '${server_dir}' && \ + mkdir -p '${meta_dir}' && \ + ${OFS_PATH}/sbin/pvfs2-server -f -a \$(hostname) ${conf_file} && \ + ${OFS_PATH}/sbin/pvfs2-server -a \$(hostname) ${conf_file}" + +#parallel-ssh -h ${server_loc} "mkdir -p ${server_dir}" +#parallel-ssh -h ${server_loc} "mkdir -p ${meta_dir}" +#parallel-ssh -h ${server_loc} "${ORANGEFS_PATH}/sbin/pvfs2-server -f -a "'$(hostname)'" ${conf_file}" +#parallel-ssh -h ${server_loc} "${ORANGEFS_PATH}/sbin/pvfs2-server -a "'$(hostname)'" ${conf_file}" +echo "Report" +parallel-ssh -h ${server_loc} -i "(ps -aef | grep pvfs2 | grep -v grep) || echo 'Server deployment correct'" + +echo "\nStarting clients" +echo "Cleanup (Can Fail if nothing to clean)" +parallel-ssh -h ${client_loc} "sudo umount -t pvfs2 ${client_dir}" +parallel-ssh -h ${client_loc} "sudo kill-pvfs2-client" +parallel-ssh -h ${client_loc} "sudo rmmod orangefs" +echo "Deployment" + +parallel-ssh -h "${client_loc}" -i \ + "mkdir -p '${client_dir}' && \ + sudo /home/cc/datacrumbs/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh && \ + sudo mount -t pvfs2 tcp://${server_list[0]}:${comm_port}/${name} '${client_dir}'" + +#sudo modprobe orangefs && \ +#sudo /usr/bin/bash -lc \'. /etc/profile.d/lmod.sh\' && \ +#sudo /usr/bin/bash -lc \'module load orangefs/2.10\' && \ +#sudo /usr/bin/bash -lc \'${ORANGEFS_PATH}/sbin/pvfs2-client -p ${ORANGEFS_PATH}/sbin/pvfs2-client-core\' && \ + +#parallel-ssh -h ${client_loc} "mkdir -p ${client_dir}" +#parallel-ssh -h ${client_loc} "sudo modprobe orangefs" +#parallel-ssh -h ${client_loc} "sudo . /etc/profile.d/lmod.sh && module load ${OFS_LMOD} && ${ORANGEFS_PATH}/sbin/pvfs2-client -p ${ORANGEFS_PATH}/sbin/pvfs2-client-core" +#parallel-ssh -h ${client_loc} "sudo mount -t pvfs2 tcp://${server_list[0]}:${comm_port}/${name} ${client_dir}" +echo "Report" +parallel-ssh -h ${client_loc} -i "(ps -aef | grep pvfs2 | grep -v grep) || echo 'Client kill correct'" +parallel-ssh -h ${client_loc} -i "(mount | grep pvfs2) || echo 'Umount correct'" +parallel-ssh -h ${client_loc} -i "(lsmod | grep orangefs) || echo 'Kmod removed correct'" diff --git a/infrastrutcure/chameleon/orangefs/install.sh b/infrastrutcure/chameleon/orangefs/install.sh new file mode 100755 index 00000000..423a5412 --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/install.sh @@ -0,0 +1,16 @@ +#! /usr/bin/env bash + +set -e + +PKGNAM=orangefs +VERSION="2.10.1" +OFSURL="https://github.com/waltligon/orangefs/releases/download/2.10.1/orangefs-2.10.1.tar.gz" + +wget $OFSURL +tar zxvf ${PKGNAM}-${VERSION}.tar.gz +cd ${PKGNAM} + +./prepare +./configure --prefix=/opt/${PKGNAM}/${VERSION}/ --enable-shared --with-db-backend=lmdb --enable-fast --enable-threaded-kmod-helper +make +make install \ No newline at end of file diff --git a/infrastrutcure/chameleon/orangefs/orangefs.lua b/infrastrutcure/chameleon/orangefs/orangefs.lua new file mode 100644 index 00000000..16188666 --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/orangefs.lua @@ -0,0 +1,104 @@ +-- OrangeFS module file + +whatis("Name: OrangeFS") +whatis("Version: 2.10.1") +whatis("Category: parallel filesystem, HPC") +whatis("Description: OrangeFS user‐ and kernel‐space tools.") +whatis("URL: http://www.orangefs.org") + +help([[ +OrangeFS 2.10.1 modulefile: + +- Loads the required OpenMPI module automatically. +- Sets environment variables for OrangeFS binaries, libraries, man pages. +- Chooses config file based on \$USER: + * \$HOME/.orangefs.conf if it exists + * otherwise falls back to /etc/orangefs/orangefs-server.conf + +Configure options: --prefix=/opt/orangefs/2.10.1 --with-db-backend=lmdb --enable-shared +Usage: + module load orangefs/2.10.1 +]]) + +-- Set the installation directory +local prefix = "/opt/orangefs/2.10.1" + +-- Define OrangeFS directories +local bin_dir = pathJoin(prefix, "bin") +local sbin_dir = pathJoin(prefix, "sbin") +local lib_dir = pathJoin(prefix, "lib") +local include_dir = pathJoin(prefix, "include") +local etc_dir = pathJoin(prefix, "etc") +local man_dir = pathJoin(prefix, "share", "man") + +-- NOTE: if using modules, else remove this +depends_on("openmpi/5.0.5-cphqvsy") + +-- Add OrangeFS directories to PATH, LD_LIBRARY_PATH, CPATH, C_INCLUDE_PATH, ETCPATH, and MANPATH +prepend_path("PATH", bin_dir) +prepend_path("PATH", sbin_dir) +prepend_path("LIBRARY_PATH", lib_dir) +prepend_path("LD_LIBRARY_PATH", lib_dir) +prepend_path("CPATH", include_dir) +prepend_path("C_INCLUDE_PATH", include_dir) +prepend_path("ETCPATH", etc_dir) +prepend_path("MANPATH", man_dir) + +-- Set additional flags +local orangefs_flags = string.format("-L %s/lib -I %s/include -lpvfs2", prefix, prefix) + +local user = os.getenv("USER") or "" +local home = os.getenv("HOME") or "" +local user_conf = pathJoin(home, ".orangefs.conf") +-- local system_conf = "/etc/orangefs/orangefs-server.conf" +local chosen_conf + +--if user ~= "" and home ~= "" and isFile(user_conf) then +chosen_conf = user_conf +-- else +-- chosen_conf = system_conf +-- end + +-- Add flags to LD_LIBRARY_PATH and C_INCLUDE_PATH +setenv("ORANGEFS_PATH", prefix, "Path to OrangeFS installation") +setenv("ORANGEFS_FLAGS", orangefs_flags, "Flags needed to compile with OrangeFS") + +setenv("ORANGEFS_CONFIG", chosen_conf) + +-- Other environment variables + +-- Determine cluster-wide defaults (could also source from a central config file) +local cluster_mount = "/mnt/ssd/" .. user .. "/orangefs" +local cluster_data_dir = "/mnt/nvme/" .. user .. "/orangefs/data" +local cluster_meta_dir = "/mnt/nvme/" .. user .. "/orangefs/metadata" + +-- Let users or admins override these before module load by exporting env vars +local mount_dir = os.getenv("ORANGEFS_MOUNT") or cluster_mount +local data_dir = os.getenv("ORANGEFS_DATA_DIR") or cluster_data_dir +local meta_dir = os.getenv("ORANGEFS_META_DIR") or cluster_meta_dir + +-- Export into the user’s environment +setenv("ORANGEFS_MOUNT", mount_dir) +setenv("ORANGEFS_DATA_DIR", data_dir) +setenv("ORANGEFS_META_DIR", meta_dir) + +-- MPI-IO hints +setenv("MPIIO_HINTS", "romio_fs_pvfs2") + +-- Inform user +if mode() == "load" then + LmodMessage("OrangeFS 2.10.1 loaded; using config: " .. chosen_conf) + LmodMessage("OrangeFS mount point: " .. mount_dir) + LmodMessage("OrangeFS data directory: " .. data_dir) + LmodMessage("OrangeFS metadata directory: " .. meta_dir) +elseif mode() == "unload" then + LmodMessage("OrangeFS 2.10.1 unloaded.") +end + +family("orangefs") +-- Modprobe the kernel module for OrangeFS 5.15 with sudo +execute({ + cmd = "sudo modprobe orangefs", + modeA = { "load" }, + mode = "silent", +}) diff --git a/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh b/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh new file mode 100755 index 00000000..5c4897ab --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh @@ -0,0 +1,7 @@ +#!/bin/bash + + +modprobe orangefs +source /etc/profile.d/lmod.sh +module load orangefs +/opt/orangefs/2.10.1/sbin/pvfs2-client -p /opt/orangefs/2.10.1/sbin/pvfs2-client-core \ No newline at end of file diff --git a/infrastrutcure/chameleon/orangefs/server_list b/infrastrutcure/chameleon/orangefs/server_list new file mode 100644 index 00000000..b1f95620 --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/server_list @@ -0,0 +1 @@ +ubuntu-dc-ofs diff --git a/infrastrutcure/chameleon/orangefs/terminate.sh b/infrastrutcure/chameleon/orangefs/terminate.sh new file mode 100644 index 00000000..677e8fe4 --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/terminate.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +if [ $# -eq 0 ] +then + echo "$(basename $0) " + exit 0 +fi + +conf_file=$1 +server_loc=$2 +client_loc=$3 +client_dir=$4 + +server_dir=$(awk '$1 ~ /DataStorageSpace/ {print $2}' $conf_file ) +meta_dir=$(awk '$1 ~ /MetadataStorageSpace/ {print $2}' $conf_file ) + +echo "Server termination" +parallel-ssh -h ${server_loc} "killall pvfs2-server" +parallel-ssh -h ${server_loc} "rm -rf ${server_dir}" +parallel-ssh -h ${server_loc} "rm -rf ${meta_dir}" +echo "Report" +parallel-ssh -h ${server_loc} -i "(ps -aef | grep pvfs2 | grep -v grep) || echo 'cleanup correct'" + +echo "Client termination" +parallel-ssh -h ${client_loc} "sudo umount -t pvfs2 ${client_dir}" +parallel-ssh -h ${client_loc} "sudo ${ORANGEFS_PATH}/sbin/kill-pvfs2-client" +parallel-ssh -h ${client_loc} "sudo rmmod orangefs" +parallel-ssh -h ${server_loc} "rm -rf ${client_dir}" +echo "Report" +parallel-ssh -h ${client_loc} -i "(ps -aef | grep pvfs2 | grep -v grep) || echo 'Client kill correct'" +parallel-ssh -h ${client_loc} -i "(mount | grep pvfs2) || echo 'umount correct'" +parallel-ssh -h ${client_loc} -i "(lsmod | grep orangefs) || echo 'KMod removed correct'" \ No newline at end of file From c0140582f7e39a6953d764cbaa1afd32091f4023 Mon Sep 17 00:00:00 2001 From: hariharan devarajan Date: Fri, 31 Oct 2025 00:04:15 +0000 Subject: [PATCH 6/7] orangefs_2.10_updates --- infrastrutcure/chameleon/orangefs/.gitignore | 3 +++ infrastrutcure/chameleon/orangefs/client_list | 2 +- infrastrutcure/chameleon/orangefs/deploy.sh | 2 +- infrastrutcure/chameleon/orangefs/install.sh | 4 ++-- infrastrutcure/chameleon/orangefs/orangefs.lua | 18 ++++++++---------- .../orangefs/orangefs_client_mount.sh | 2 +- infrastrutcure/chameleon/orangefs/server_list | 2 +- 7 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 infrastrutcure/chameleon/orangefs/.gitignore diff --git a/infrastrutcure/chameleon/orangefs/.gitignore b/infrastrutcure/chameleon/orangefs/.gitignore new file mode 100644 index 00000000..5c96cc0d --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/.gitignore @@ -0,0 +1,3 @@ +orangefs +*.gz +*.tar \ No newline at end of file diff --git a/infrastrutcure/chameleon/orangefs/client_list b/infrastrutcure/chameleon/orangefs/client_list index b1f95620..81f23aec 100644 --- a/infrastrutcure/chameleon/orangefs/client_list +++ b/infrastrutcure/chameleon/orangefs/client_list @@ -1 +1 @@ -ubuntu-dc-ofs +dc-ofs-karim diff --git a/infrastrutcure/chameleon/orangefs/deploy.sh b/infrastrutcure/chameleon/orangefs/deploy.sh index a47acdef..018344f7 100755 --- a/infrastrutcure/chameleon/orangefs/deploy.sh +++ b/infrastrutcure/chameleon/orangefs/deploy.sh @@ -40,7 +40,7 @@ count=0 set -x set +e -OFS_LMOD="orangefs/2.10" +OFS_LMOD="orangefs/2.10.0" #echo "Setting up servers" #echo "Cleanup (Can Fail if nothing to clean)" diff --git a/infrastrutcure/chameleon/orangefs/install.sh b/infrastrutcure/chameleon/orangefs/install.sh index 423a5412..47223145 100755 --- a/infrastrutcure/chameleon/orangefs/install.sh +++ b/infrastrutcure/chameleon/orangefs/install.sh @@ -3,8 +3,8 @@ set -e PKGNAM=orangefs -VERSION="2.10.1" -OFSURL="https://github.com/waltligon/orangefs/releases/download/2.10.1/orangefs-2.10.1.tar.gz" +VERSION="2.10.0" +OFSURL="https://github.com/waltligon/orangefs/releases/download/v.${VERSION}/orangefs-${VERSION}.tar.gz" wget $OFSURL tar zxvf ${PKGNAM}-${VERSION}.tar.gz diff --git a/infrastrutcure/chameleon/orangefs/orangefs.lua b/infrastrutcure/chameleon/orangefs/orangefs.lua index 16188666..1fecd56a 100644 --- a/infrastrutcure/chameleon/orangefs/orangefs.lua +++ b/infrastrutcure/chameleon/orangefs/orangefs.lua @@ -1,13 +1,13 @@ -- OrangeFS module file whatis("Name: OrangeFS") -whatis("Version: 2.10.1") +whatis("Version: 2.10.0") whatis("Category: parallel filesystem, HPC") whatis("Description: OrangeFS user‐ and kernel‐space tools.") whatis("URL: http://www.orangefs.org") help([[ -OrangeFS 2.10.1 modulefile: +OrangeFS 2.10.0 modulefile: - Loads the required OpenMPI module automatically. - Sets environment variables for OrangeFS binaries, libraries, man pages. @@ -15,13 +15,13 @@ OrangeFS 2.10.1 modulefile: * \$HOME/.orangefs.conf if it exists * otherwise falls back to /etc/orangefs/orangefs-server.conf -Configure options: --prefix=/opt/orangefs/2.10.1 --with-db-backend=lmdb --enable-shared +Configure options: --prefix=/opt/orangefs/2.10.0 --with-db-backend=lmdb --enable-shared Usage: - module load orangefs/2.10.1 + module load orangefs/2.10.0 ]]) -- Set the installation directory -local prefix = "/opt/orangefs/2.10.1" +local prefix = "/opt/orangefs/2.10.0" -- Define OrangeFS directories local bin_dir = pathJoin(prefix, "bin") @@ -31,8 +31,6 @@ local include_dir = pathJoin(prefix, "include") local etc_dir = pathJoin(prefix, "etc") local man_dir = pathJoin(prefix, "share", "man") --- NOTE: if using modules, else remove this -depends_on("openmpi/5.0.5-cphqvsy") -- Add OrangeFS directories to PATH, LD_LIBRARY_PATH, CPATH, C_INCLUDE_PATH, ETCPATH, and MANPATH prepend_path("PATH", bin_dir) @@ -49,7 +47,7 @@ local orangefs_flags = string.format("-L %s/lib -I %s/include -lpvfs2", prefix, local user = os.getenv("USER") or "" local home = os.getenv("HOME") or "" -local user_conf = pathJoin(home, ".orangefs.conf") +local user_conf = pathJoin(etc_dir, "orangefs.conf") -- local system_conf = "/etc/orangefs/orangefs-server.conf" local chosen_conf @@ -87,12 +85,12 @@ setenv("MPIIO_HINTS", "romio_fs_pvfs2") -- Inform user if mode() == "load" then - LmodMessage("OrangeFS 2.10.1 loaded; using config: " .. chosen_conf) + LmodMessage("OrangeFS 2.10.0 loaded; using config: " .. chosen_conf) LmodMessage("OrangeFS mount point: " .. mount_dir) LmodMessage("OrangeFS data directory: " .. data_dir) LmodMessage("OrangeFS metadata directory: " .. meta_dir) elseif mode() == "unload" then - LmodMessage("OrangeFS 2.10.1 unloaded.") + LmodMessage("OrangeFS 2.10.0 unloaded.") end family("orangefs") diff --git a/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh b/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh index 5c4897ab..20c515f5 100755 --- a/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh +++ b/infrastrutcure/chameleon/orangefs/orangefs_client_mount.sh @@ -4,4 +4,4 @@ modprobe orangefs source /etc/profile.d/lmod.sh module load orangefs -/opt/orangefs/2.10.1/sbin/pvfs2-client -p /opt/orangefs/2.10.1/sbin/pvfs2-client-core \ No newline at end of file +/opt/orangefs/2.10.0/sbin/pvfs2-client -p /opt/orangefs/2.10.0/sbin/pvfs2-client-core diff --git a/infrastrutcure/chameleon/orangefs/server_list b/infrastrutcure/chameleon/orangefs/server_list index b1f95620..81f23aec 100644 --- a/infrastrutcure/chameleon/orangefs/server_list +++ b/infrastrutcure/chameleon/orangefs/server_list @@ -1 +1 @@ -ubuntu-dc-ofs +dc-ofs-karim From 6732c1f2fda54bf832650f2f9c021dbc4db427f3 Mon Sep 17 00:00:00 2001 From: Karim Youssef Date: Thu, 8 Jan 2026 13:14:15 -0800 Subject: [PATCH 7/7] Add NFS server and client deployment template This YAML template defines the deployment of an NFS server and clients using OpenStack Heat. It includes resource definitions for the NFS server, floating IPs, and client configurations. --- .../chameleon/orangefs/deploy_nfs.yaml | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 infrastrutcure/chameleon/orangefs/deploy_nfs.yaml diff --git a/infrastrutcure/chameleon/orangefs/deploy_nfs.yaml b/infrastrutcure/chameleon/orangefs/deploy_nfs.yaml new file mode 100644 index 00000000..557baf86 --- /dev/null +++ b/infrastrutcure/chameleon/orangefs/deploy_nfs.yaml @@ -0,0 +1,99 @@ +# This describes what is deployed by this template. +description: NFS server and clients deployed with Heat on Chameleon + +# This defines the minimum Heat version required by this template. +heat_template_version: 2015-10-15 + +# The resources section defines what OpenStack resources are to be deployed and +# how they should be configured. +resources: + nfs_server_floating_ip: + type: OS::Nova::FloatingIP + properties: + pool: public + + nfs_server: + type: OS::Nova::Server + properties: + flavor: baremetal + # NOTE: Change as needed + # image: CC-UBUNTU22.04 + image: DATACRUMBS_ORANGEFS_NFS + key_name: { get_param: key_name } + networks: + - network: sharednet1 + scheduler_hints: { reservation: { get_param: reservation_id } } + user_data: | + #!/bin/bash + # apt install nfs-common nfs-kernel-server + # NOTE: CHANGE PATH + mkdir -p /opt/shared + # NOTE: CHANGE PATH + chown -R cc:cc /opt/shared + # NOTE: CHANGE PATH + echo '/opt/shared 10.0.0.0/8(rw,async)' >> /etc/exports + systemctl enable rpcbind && systemctl start rpcbind + systemctl enable nfs-server && systemctl start nfs-server + + nfs_server_ip_association: + type: OS::Nova::FloatingIPAssociation + properties: + floating_ip: { get_resource: nfs_server_floating_ip } + server_id: { get_resource: nfs_server } + + nfs_clients: + type: OS::Heat::ResourceGroup + properties: + count: { get_param: nfs_client_count } + resource_def: + type: OS::Nova::Server + properties: + flavor: baremetal + # NOTE: Change as needed + image: DATACRUMBS_ORANGEFS_NFS + key_name: { get_param: key_name } + networks: + - network: sharednet1 + scheduler_hints: { reservation: { get_param: reservation_id } } + user_data: + str_replace: + template: | + #!/bin/bash + # apt install nfs-common + # NOTE: CHANGE PATH + echo "$nfs_server_ip:/opt/shared /opt/nfs_client nfs" > /etc/fstab + mount -a + params: + $nfs_server_ip: { get_attr: [nfs_server, first_address] } + +# The parameters section gathers configuration from the user. +parameters: + nfs_client_count: + type: number + description: Number of NFS client instances + default: 1 + constraints: + - range: { min: 1 } + description: There must be at least one client. + # NOTE: CHANGE SSH Key pair + key_name: + type: string + description: Name of a KeyPair to enable SSH access to the instance + default: default + constraints: + - custom_constraint: nova.keypair + # NOTE: CHANGE ID + reservation_id: + type: string + description: ID of the Blazar reservation to use for launching instances. + constraints: + - custom_constraint: blazar.reservation + +outputs: + server_ip: + description: Public IP address of the NFS server + value: { get_attr: [nfs_server_floating_ip, ip] } + client_ips: + description: Private IP addresses of the NFS clients + value: { get_attr: [nfs_clients, first_address] } +