diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 0ac87462..4e36bad5 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -6,7 +6,7 @@ // Sets the run context to one level up instead of the .devcontainer folder. "context": "..", // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename. - "dockerfile": "../Dockerfile", + "dockerfile": "../infrastructure/docker/Dockerfile", }, "runArgs": [ "-ti", diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml index dc093c10..56b582b0 100644 --- a/.github/workflows/docker-build-test.yml +++ b/.github/workflows/docker-build-test.yml @@ -3,7 +3,7 @@ name: Docker Build and Test on: push: pull_request: - branches: [ develop, stage-in ] + branches: [develop, stage-in] workflow_dispatch: env: @@ -13,37 +13,37 @@ env: jobs: docker-build-and-test: runs-on: ubuntu-latest - + steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - submodules: recursive + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: recursive - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Build Docker image - run: | - docker buildx build \ - --cache-from=type=gha \ - --cache-to=type=gha,mode=max \ - --load \ - -t ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DOCKER_TAG }} \ - -f infrastrutcure/docker/Dockerfile \ - . + - name: Build Docker image + run: | + docker buildx build \ + --cache-from=type=gha \ + --cache-to=type=gha,mode=max \ + --load \ + -t ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DOCKER_TAG }} \ + -f infrastructure/docker/Dockerfile \ + . - - name: Run DataCrumbs tests - run: | - docker run --rm \ - -v /lib/modules/:/lib/modules:ro \ - -v /sys/kernel/debug/:/sys/kernel/debug:rw \ - --net=host \ - --pid=host \ - --privileged \ - --cap-add sys_admin \ - --cap-add sys_ptrace \ - --hostname docker \ - -v /sys/fs/bpf:/sys/fs/bpf \ - ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DOCKER_TAG }} \ - bash -c /opt/datacrumbs/infrastrutcure/docker/test_run.sh + - name: Run DataCrumbs tests + run: | + docker run --rm \ + -v /lib/modules/:/lib/modules:ro \ + -v /sys/kernel/debug/:/sys/kernel/debug:rw \ + --net=host \ + --pid=host \ + --privileged \ + --cap-add sys_admin \ + --cap-add sys_ptrace \ + --hostname docker \ + -v /sys/fs/bpf:/sys/fs/bpf \ + ${{ env.DOCKER_IMAGE_NAME }}:${{ env.DOCKER_TAG }} \ + bash -c /opt/datacrumbs/infrastructure/docker/test_run.sh diff --git a/.gitignore b/.gitignore index 951f9942..bd7f5899 100755 --- a/.gitignore +++ b/.gitignore @@ -78,4 +78,8 @@ poc/bpf-core/vmlinux.h deps #nfs -*.nfs* \ No newline at end of file +*.nfs* + +# Sphinx documentation builds +docs/_build/ +docs/_static/__pycache__/ \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 4048a73d..6d343ec1 100755 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,7 +1,4 @@ { - "cmake.configureArgs": [ - "-DCMAKE_PREFIX_PATH=/home/cc/datacrumbs/dependency/.spack-env/view" - ], "editor.formatOnSave": true, "files.associations": { "string": "cpp", diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e71121a..e7049da7 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,7 @@ option(DATACRUMBS_TRACE_ALL_PROCESSES_OPT "Trace all processes" OFF) set(DATACRUMBS_INCLUSION_PATH "NONE" CACHE STRING "Inclusion path for datacrumbs") set(DATACRUMBS_CONFIGURED_TRACE_DIR "/tmp" CACHE STRING "Trace directory for datacrumbs") set(DATACRUMBS_CONFIGURED_LOG_DIR "/tmp" CACHE STRING "Log directory for datacrumbs") +set(DATACRUMBS_CONFIGURED_RUN_DIR "NONE" CACHE STRING "Run directory for datacrumbs") option(DATACRUMBS_BPF_PRINT_ENABLE "Enable BPF print" OFF) set(DATACRUMBS_MODE_STR "TRACE" CACHE STRING "Mode for datacrumbs (TRACE or PROFILE)") @@ -84,6 +85,15 @@ set(DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS "1000" CACHE STRING "Threshold in # Profiling Options set(DATACRUMBS_TIME_INTERVAL_NS "1000000" CACHE STRING "Profiling time interval in nanosecond") +# Scheduling Options +set(DATACRUMBS_SCHEDULER_TYPE "FLUX" CACHE STRING "Scheduler type for datacrumbs (FLUX, SLURM, OPENMPI, or NONE)") +set_property(CACHE DATACRUMBS_SCHEDULER_TYPE PROPERTY STRINGS FLUX SLURM OPENMPI NONE) +set(DATACRUMBS_SCHEDULER_JOBID_ENV_VAR "NONE" CACHE STRING "Scheduler job ID environment variable name") +set(DATACRUMBS_SCHEDULER_NODES_CMD_OPT "NONE" CACHE STRING "Scheduler option for setting nodes") +set(DATACRUMBS_SCHEDULER_PPN_CMD_OPT "NONE" CACHE STRING "Scheduler option for setting processes per node") +set(DATACRUMBS_SCHEDULER_RUN_CMD "NONE" CACHE STRING "Scheduler run command") +set(DATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS "" CACHE STRING "Scheduler run extra args") + # Other options set(DATACRUMBS_LOG_LEVEL_STR "INFO" CACHE STRING "Log Level for compiling ${UPPER_PROJECT_NAME}") set_property(CACHE DATACRUMBS_LOG_LEVEL_STR PROPERTY STRINGS ERROR WARN INFO DEBUG TRACE) @@ -92,7 +102,6 @@ set(DATACRUMBS_KERNEL_HEADERS_PATH "" CACHE STRING "Path to the kernel headers d option(DATACRUMBS_BUILD_ONLY "Build only the datacrumbs library without installation" OFF) set(DATACRUMBS_KERNEL_PATH "" CACHE STRING "Path to the kernel source directory") - # ------------------------------------------------------------------------------ # Derive CMake variables based on options # ------------------------------------------------------------------------------ @@ -140,10 +149,16 @@ message(STATUS " - Found kernel headers at: ${DATACRUMBS_KERNEL_HEAD message(STATUS " - DATACRUMBS_KERNEL_UNAME_R: ${DATACRUMBS_KERNEL_UNAME_R}") message(STATUS " - DATACRUMBS_CONFIGURED_TRACE_DIR: ${DATACRUMBS_CONFIGURED_TRACE_DIR}") message(STATUS " - DATACRUMBS_CONFIGURED_LOG_DIR: ${DATACRUMBS_CONFIGURED_LOG_DIR}") +message(STATUS " - DATACRUMBS_SCHEDULER_TYPE: ${DATACRUMBS_SCHEDULER_TYPE}") +message(STATUS " - DATACRUMBS_SCHEDULER_JOBID_ENV_VAR: ${DATACRUMBS_SCHEDULER_JOBID_ENV_VAR}") +message(STATUS " - DATACRUMBS_SCHEDULER_NODES_CMD_OPT: ${DATACRUMBS_SCHEDULER_NODES_CMD_OPT}") +message(STATUS " - DATACRUMBS_SCHEDULER_PPN_CMD_OPT: ${DATACRUMBS_SCHEDULER_PPN_CMD_OPT}") +message(STATUS " - DATACRUMBS_SCHEDULER_RUN_CMD: ${DATACRUMBS_SCHEDULER_RUN_CMD}") if(NOT EXISTS "${DATACRUMBS_CONFIGURED_TRACE_DIR}") message(FATAL_ERROR "[${UPPER_PROJECT_NAME}] DATACRUMBS_CONFIGURED_TRACE_DIR does not exist: ${DATACRUMBS_CONFIGURED_TRACE_DIR}") endif() + if(NOT EXISTS "${DATACRUMBS_CONFIGURED_LOG_DIR}") message(FATAL_ERROR "[${UPPER_PROJECT_NAME}] DATACRUMBS_CONFIGURED_LOG_DIR does not exist: ${DATACRUMBS_CONFIGURED_LOG_DIR}") endif() @@ -424,7 +439,7 @@ add_dependencies(datacrumbs_obj datacrumbs_bpf_skel) # Build the final executable by linking server.cpp and the object library add_executable(${PROJECT_NAME} ${DATACRUMBS_SERVER_SRC}) -target_link_libraries(${PROJECT_NAME} ${DEPENDENCY_LIB} datacrumbs_obj) +target_link_libraries(${PROJECT_NAME} datacrumbs_obj ${DEPENDENCY_LIB}) add_dependencies(${PROJECT_NAME} datacrumbs_bpf_skel datacrumbs_obj) # Install the main processing executable into DATACRUMBS_INSTALL_BINARYDIR @@ -587,6 +602,8 @@ set(_DATACRUMBS_DATA_FILES "${CMAKE_DATA_OUTPUT_DIRECTORY}/categories-${DATACRUMBS_USER}-${DATACRUMBS_HOST}.json" "${CMAKE_DATA_OUTPUT_DIRECTORY}/probes-${DATACRUMBS_USER}-${DATACRUMBS_HOST}.json" ) +# Ensure the data output directory exists +file(MAKE_DIRECTORY ${CMAKE_DATA_OUTPUT_DIRECTORY}) if(_DATACRUMBS_DATA_FILES) install(FILES ${_DATACRUMBS_DATA_FILES} @@ -795,15 +812,15 @@ if(NOT DATACRUMBS_INCLUSION_PATH STREQUAL "NONE") set(DATACRUMBS_VARS ${DATACRUMBS_VARS} --inclusion_path ${DATACRUMBS_INCLUSION_PATH}) endif() -add_test(NAME datacrumbs_start COMMAND ${DATACRUMBS_PATH}/datacrumbs start ${DATACRUMBS_HOST} ${DATACRUMBS_VARS}) +add_test(NAME datacrumbs_start COMMAND ${DATACRUMBCMAKE_RUNTIME_OUTPUT_DIRECTORYS_PATH}/datacrumbs start ${DATACRUMBS_HOST} ${DATACRUMBS_VARS}) set_tests_properties(datacrumbs_start PROPERTIES DEPENDS datacrumbs_pretest) set_tests_properties(datacrumbs_start PROPERTIES DEPENDS ${PROJECT_NAME}) -add_test(NAME datacrumbs_run COMMAND ${DATACRUMBS_PATH}/datacrumbs run ${DATACRUMBS_HOST} ${DATACRUMBS_VARS}) +add_test(NAME datacrumbs_run COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/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 ${DATACRUMBS_PATH}/datacrumbs stop ${DATACRUMBS_HOST} ${DATACRUMBS_VARS}) +add_test(NAME datacrumbs_stop COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/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/cmake/configure_files/datacrumbs_config.h.in b/cmake/configure_files/datacrumbs_config.h.in index 8ea47057..24e361e0 100644 --- a/cmake/configure_files/datacrumbs_config.h.in +++ b/cmake/configure_files/datacrumbs_config.h.in @@ -42,6 +42,7 @@ #cmakedefine DATACRUMBS_CONFIG_PATH "@DATACRUMBS_CONFIG_PATH@" #cmakedefine DATACRUMBS_LOG_DIR "@DATACRUMBS_LOG_DIR@" #cmakedefine DATACRUMBS_DATA_DIR "@DATACRUMBS_DATA_DIR@" +#cmakedefine DATACRUMBS_INSTALL_RUNSTATEDIR "@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@" #cmakedefine DATACRUMBS_ENABLE_INCLUSION_PATH @DATACRUMBS_ENABLE_INCLUSION_PATH@ #ifndef DATACRUMBS_ENABLE_INCLUSION_PATH diff --git a/cmake/modules/datacrumbs-utils.cmake b/cmake/modules/datacrumbs-utils.cmake index 3bd71594..1c86f0fb 100644 --- a/cmake/modules/datacrumbs-utils.cmake +++ b/cmake/modules/datacrumbs-utils.cmake @@ -31,6 +31,8 @@ macro(include_dependencies) message(FATAL_ERROR "[${UPPER_PROJECT_NAME}] libbpf version 1.0.0 or newer is required, but found ${LIBBPF_VERSION}") endif() + set(PKG_CONFIG_PATH $ENV{PKG_CONFIG_PATH}) + # include all links if(LIBBPF_FOUND) include_directories(${LIBBPF_INCLUDEDIR}) @@ -94,7 +96,7 @@ macro(include_dependencies) if(json-c_FOUND) get_filename_component(json-c_INCLUDE_DIR "${json-c_DIR}/../../../include" ABSOLUTE) get_filename_component(json-c_LIBRARY_DIR "${json-c_DIR}/../../" ABSOLUTE) - include_directories(json-c::json-c) + include_directories(${json-c_INCLUDE_DIR}) list(APPEND DEPENDENCY_LIBRARY_DIRS ${json-c_LIBRARY_DIR}) set(DEPENDENCY_LIB ${DEPENDENCY_LIB} -ljson-c) else() @@ -105,7 +107,7 @@ macro(include_dependencies) include_directories(${ZLIB_INCLUDE_DIRS}) get_filename_component(ZLIB_LIBRARY_DIRS "${ZLIB_LIBRARIES}/../" ABSOLUTE) list(APPEND DEPENDENCY_LIBRARY_DIRS ${ZLIB_LIBRARY_DIRS}) - set(DEPENDENCY_LIB ${DEPENDENCY_LIB} ZLIB::ZLIB) + set(DEPENDENCY_LIB ${DEPENDENCY_LIB} -lz) else() message(FATAL_ERROR "-- [${UPPER_PROJECT_NAME}] zlib is needed for ${PROJECT_NAME} build") endif() @@ -119,11 +121,13 @@ macro(include_dependencies) if(MPI_CXX_LIBRARIES) # If MPI_CXX_LIBRARIES is a list, get parent dir of each library set(MPI_CXX_LIBRARY_DIR "") + foreach(_lib ${MPI_CXX_LIBRARIES}) get_filename_component(_lib_dir "${_lib}" DIRECTORY) get_filename_component(_lib_dir "${_lib_dir}" ABSOLUTE) list(APPEND MPI_CXX_LIBRARY_DIR "${_lib_dir}") endforeach() + list(REMOVE_DUPLICATES MPI_CXX_LIBRARY_DIR) else() get_filename_component(MPI_CXX_LIBRARY_DIR "${MPI_CXX_LIBRARIES}" DIRECTORY) @@ -152,6 +156,7 @@ macro(include_dependencies) string(REPLACE ";" ":" DEPENDENCY_LIBRARY_DIRS_COLON "${DEPENDENCY_LIBRARY_DIRS}") set(CMAKE_INSTALL_RPATH "${DEPENDENCY_LIBRARY_DIRS}") set(CMAKE_BUILD_RPATH "${DEPENDENCY_LIBRARY_DIRS}") + # print_all_variables() endmacro(include_dependencies) @@ -259,6 +264,59 @@ macro(derive_configurations) endif() set(DATACRUMBS_CMAKE_KERNEL_VERSION "(${KERNEL_VERSION_MAJOR}, ${KERNEL_VERSION_MINOR}, ${KERNEL_VERSION_PATCH})") + + # Set Scheduler options + # Check if scheduler configuration is complete + if((DATACRUMBS_SCHEDULER_JOBID_ENV_VAR STREQUAL "NONE" OR + DATACRUMBS_SCHEDULER_NODES_CMD_OPT STREQUAL "NONE" OR + DATACRUMBS_SCHEDULER_PPN_CMD_OPT STREQUAL "NONE" OR + DATACRUMBS_SCHEDULER_RUN_CMD STREQUAL "NONE") AND + DATACRUMBS_SCHEDULER_TYPE STREQUAL "NONE") + message(FATAL_ERROR "[${UPPER_PROJECT_NAME}] Incomplete scheduler configuration. Either use a predefined scheduler option by setting DATACRUMBS_SCHEDULER_TYPE, or set all of the following variables: DATACRUMBS_SCHEDULER_ALLOC_CMD, DATACRUMBS_SCHEDULER_JOBID_ENV_VAR, DATACRUMBS_SCHEDULER_NODES_CMD_OPT, DATACRUMBS_SCHEDULER_PPN_CMD_OPT, DATACRUMBS_SCHEDULER_RUN_CMD") + endif() + + if (DATACRUMBS_SCHEDULER_JOBID_ENV_VAR STREQUAL "NONE") + if(DATACRUMBS_SCHEDULER_TYPE STREQUAL "SLURM") + set(DATACRUMBS_SCHEDULER_JOBID_ENV_VAR "SLURM_JOB_ID") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "OPENMPI") + set(DATACRUMBS_SCHEDULER_JOBID_ENV_VAR "OMPI_COMM_WORLD_RANK") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "FLUX") + set(DATACRUMBS_SCHEDULER_JOBID_ENV_VAR "FLUX_JOB_ID") + endif() + endif() + + if (DATACRUMBS_SCHEDULER_NODES_CMD_OPT STREQUAL "NONE") + if(DATACRUMBS_SCHEDULER_TYPE STREQUAL "SLURM") + set(DATACRUMBS_SCHEDULER_NODES_CMD_OPT "-N") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "OPENMPI") + set(DATACRUMBS_SCHEDULER_NODES_CMD_OPT "-N") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "FLUX") + set(DATACRUMBS_SCHEDULER_NODES_CMD_OPT "-N") + endif() + endif() + + if (DATACRUMBS_SCHEDULER_PPN_CMD_OPT STREQUAL "NONE") + if(DATACRUMBS_SCHEDULER_TYPE STREQUAL "SLURM") + set(DATACRUMBS_SCHEDULER_PPN_CMD_OPT "--ntasks-per-node") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "OPENMPI") + set(DATACRUMBS_SCHEDULER_PPN_CMD_OPT "--map-by ppr:") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "FLUX") + set(DATACRUMBS_SCHEDULER_PPN_CMD_OPT "--tasks-per-node") + endif() + endif() + + if (DATACRUMBS_SCHEDULER_RUN_CMD STREQUAL "NONE") + if(DATACRUMBS_SCHEDULER_TYPE STREQUAL "SLURM") + set(DATACRUMBS_SCHEDULER_RUN_CMD "srun") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "OPENMPI") + set(DATACRUMBS_SCHEDULER_RUN_CMD "mpirun") + elseif(DATACRUMBS_SCHEDULER_TYPE STREQUAL "FLUX") + set(DATACRUMBS_SCHEDULER_RUN_CMD "flux run") + endif() + endif() + + + endmacro(derive_configurations) macro(find_system_details) @@ -419,10 +477,10 @@ macro(load_build_variables) set(CMAKE_INSTALL_INCLUDEDIR include) set(CMAKE_INSTALL_DOCDIR doc) set(CMAKE_INSTALL_SYSCONFDIR etc) + set(CMAKE_INSTALL_LIBEXECDIR libexec) + set(CMAKE_INSTALL_RUNSTATEDIR run) endif() - set(CMAKE_INSTALL_LIBEXEC_DIR libexec) - set(DATACRUMBS_INSTALL_BINARYDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}) set(DATACRUMBS_INSTALL_SBINARYDIR @@ -436,7 +494,7 @@ macro(load_build_variables) set(DATACRUMBS_INSTALL_SYSCONFDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${PROJECT_NAME}) set(DATACRUMBS_INSTALL_LIBEXEC - ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXEC_DIR}/${PROJECT_NAME}) + ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/${PROJECT_NAME}) else() set(DATACRUMBS_INSTALL_BINARYDIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") set(DATACRUMBS_INSTALL_SBINARYDIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}") @@ -445,9 +503,8 @@ macro(load_build_variables) set(DATACRUMBS_INSTALL_DOCDIR "${CMAKE_BINARY_DIR}/doc") set(DATACRUMBS_INSTALL_SYSCONFDIR "${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}") set(DATACRUMBS_INSTALL_LIBEXEC ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}) + set(DATACRUMBS_RUNSTATEDIR "run") endif() - - set(CMAKE_INSTALL_LIBEXEC_DIR libexec) set(CMAKE_INSTALL_CONFIGS_DIR configs) set(CMAKE_INSTALL_DATA_DIR data) set(CMAKE_INSTALL_MODULES_DIR lmod/modulefiles) @@ -459,6 +516,11 @@ macro(load_build_variables) set(DATACRUMBS_INSTALL_ETC_CMAKE ${DATACRUMBS_INSTALL_SYSCONFDIR}/cmake) set(DATACRUMBS_INSTALL_ETC_SYSTEMD ${DATACRUMBS_INSTALL_SYSCONFDIR}/systemd) set(DATACRUMBS_INSTALL_ETC_FLUX ${DATACRUMBS_INSTALL_SYSCONFDIR}/flux) + if (DATACRUMBS_CONFIGURED_RUN_DIR AND NOT DATACRUMBS_CONFIGURED_RUN_DIR STREQUAL "" AND NOT DATACRUMBS_CONFIGURED_RUN_DIR STREQUAL "NONE") + set(DATACRUMBS_INSTALL_RUNSTATEDIR ${DATACRUMBS_CONFIGURED_RUN_DIR}) + else() + set(DATACRUMBS_INSTALL_RUNSTATEDIR /${CMAKE_INSTALL_RUNSTATEDIR}) + endif() # Set this at the top level of your project, before any install commands set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE) diff --git a/docs/DataCrumbs_IPDPS_26-2.pdf b/docs/DataCrumbs_IPDPS_26-2.pdf new file mode 100644 index 00000000..53e649b1 Binary files /dev/null and b/docs/DataCrumbs_IPDPS_26-2.pdf differ diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 00000000..616291a5 --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,58 @@ +/* Bullet lists in content area only */ +.rst-content ul.simple, +.rst-content .section ul { + list-style: disc outside !important; + margin-left: 0 !important; + padding-left: 1.2em !important; + margin-bottom: 12px !important; +} + +.rst-content ul.simple li, +.rst-content .section ul li { + display: list-item !important; + list-style: disc outside !important; + margin-left: 0 !important; + margin-bottom: 0 !important; +} + +.rst-content ul.simple li p, +.rst-content .section ul li p { + margin-bottom: 0 !important; + margin-top: 0 !important; + display: inline !important; +} + +/* Numbered lists in content area only */ +.rst-content ol, +.rst-content .section ol { + list-style: decimal outside !important; + padding-left: 1.5em !important; + margin-bottom: 12px !important; + margin-left: 0 !important; +} + +.rst-content ol li, +.rst-content .section ol li { + display: list-item !important; + list-style: decimal outside !important; + margin-bottom: 0 !important; + margin-left: 0 !important; +} + +.rst-content ol li p, +.rst-content .section ol li p { + margin-bottom: 0 !important; + margin-top: 0 !important; + display: inline !important; +} + +/* Ensure navigation lists have no bullets */ +.wy-menu-vertical ul, +.wy-menu-vertical li, +nav ul, +nav li, +.toctree-l1, +.toctree-l2, +.toctree-l3 { + list-style: none !important; +} diff --git a/docs/app.rst b/docs/app.rst deleted file mode 100644 index 55e10186..00000000 --- a/docs/app.rst +++ /dev/null @@ -1,28 +0,0 @@ -Install IOR -=========== - -IOR is a parallel file system benchmarking tool. To install IOR, follow these steps: - -1. **Clone the IOR repository:** - - .. code-block:: bash - - git clone https://github.com/hpc/ior.git - cd ior - -2. **Build IOR:** - - .. code-block:: bash - - ./bootstrap - ./configure --prefix=$PREFIX - make -j - make install - -3. **(Optional) Install system-wide:** - - .. code-block:: bash - - sudo make install - -For more details, refer to the official IOR documentation: https://github.com/hpc/ior \ No newline at end of file diff --git a/docs/build.rst b/docs/build.rst old mode 100644 new mode 100755 index 6f901e7a..506055b5 --- a/docs/build.rst +++ b/docs/build.rst @@ -1,37 +1,112 @@ -.. _build_instructions: +================= +Building DataCrumbs +================= -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. +This comprehensive guide covers building DataCrumbs from source in various environments, including standard builds, HPC systems, Docker containers, and the Tuolumne supercomputer. It includes complete instructions for installing dependencies with custom prefix paths. Prerequisites -------------- +============= + +Before building, ensure all dependencies are installed as described in the :doc:`dependencies` section. + +Quick verification: + +.. code-block:: bash + + # Verify kernel version (5.8+ recommended) + uname -r + + # Verify BTF support + ls /sys/kernel/btf/vmlinux + + # Verify libbpf + pkg-config --modversion libbpf + + # Verify bpftool + bpftool version + +Core Requirements +----------------- + +**Build Tools:** + +* Git +* CMake (3.14+) +* GCC or Clang +* Python (for Sphinx documentation) +* Linux kernel 5.8+ with BTF support + +Obtaining the Source +==================== + +Clone the DataCrumbs repository: + +.. code-block:: bash + + git clone https://github.com/LLNL/datacrumbs.git + cd datacrumbs + export DATACRUMBS_DIR=$(realpath .) + +Standard Build Process +====================== -- Git -- CMake -- GCC or Clang -- Python (for Sphinx documentation) -- Spack (recommended for dependency management) +Basic Build +----------- -Set the installation prefix: +The simplest build uses default configuration: + +.. code-block:: bash + + # Create build directory + mkdir build + cd build + + # Configure with CMake + cmake -DCMAKE_INSTALL_PREFIX=/path/to/install .. + + # Build + make -j$(nproc) + + # Install + make install + +This will: + +1. Discover available probes in system libraries +2. Generate custom eBPF programs +3. Compile eBPF and C++ code +4. Install binaries, libraries, and scripts + +Custom Prefix Installation +=========================== + +This section describes how to build and install all dependencies and DataCrumbs under a custom prefix directory. This is essential for non-root installations and HPC environments. + +Set Installation Prefix +----------------------- + +All dependencies and DataCrumbs will be installed under a custom prefix: .. code-block:: bash export PREFIX=/your/custom/prefix + # For example: export PREFIX=$HOME/datacrumbs-install + # Or on HPC: export PREFIX=/usr/workspace/$USER/datacrumbs-install -1. Build and Install Dependencies for datacrumbs ------------------------------------------------ +Build and Install Dependencies +------------------------------- -The following dependencies are required for building `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 +**Runtime Dependencies:** -**bpftool (v7.5.0) and libbpf (v1.5.0):** +* bpftool (v7.5.0) and libbpf (v1.5.0) +* json-c +* yaml-cpp +* llvm +- (Optional) bpftime for user-space (experimental) + +**1. Build bpftool (v7.5.0) and libbpf (v1.5.0)** .. code-block:: bash @@ -39,30 +114,59 @@ The following dependencies are required for building `datacrumbs`: pushd bpftool git checkout tags/v7.5.0 -b v7.5.0 git submodule update --init --recursive + + # Build libbpf pushd libbpf git checkout tags/v1.5.0 -b v1.5.0 cd src DESTDIR=$PREFIX make install -j popd + + # Build bpftool cd src DESTDIR=$PREFIX make install -j popd + +.. important:: + **Understanding Prefix-Style Installation Structure** + + When building with ``DESTDIR=$PREFIX``, the build system installs files into nested directories + under ``$PREFIX`` (e.g., ``$PREFIX/usr/local/lib`` instead of ``$PREFIX/lib``). You must move + these files to the correct locations within your ``$PREFIX`` directory for DataCrumbs to find them. + +**2. Move Files to Correct Prefix Structure** + +After building, use ``find`` to locate and move files to the correct locations: + +.. code-block:: bash + pushd $PREFIX + + # Find and move bpf.h and libbpf 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 + if [[ "$bpf_install_dir" != "$PREFIX" ]]; then mv $bpf_install_dir/include $PREFIX mv $bpf_install_dir/lib* $PREFIX fi + # Find and move bpftool bpftool=$(find . -name bpftool | head -n 1) bpftool=$(readlink -f $bpftool) bpftool_install_dir=$(dirname $(dirname $bpftool)) - if [ "$bpftool_install_dir" != "$PREFIX" ]; then + if [[ "$bpftool_install_dir" != "$PREFIX" ]]; then mv $bpftool_install_dir/* $PREFIX fi + popd + +**3. Verify Installation** + +Check that files are in the correct locations: + +.. code-block:: bash + echo "Checking installed files under \$PREFIX:" echo "bpf.h:" find $PREFIX -name bpf.h @@ -76,50 +180,25 @@ The following dependencies are required for building `datacrumbs`: echo "bpftool:" find $PREFIX -name bpftool -Expected Output (with PREFIX=/home/haridev/temp/install) --------------------------------------------------------- +Expected output (with PREFIX=/home/user/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) +.. code-block:: text -**(Optional) bpftime for User-space:** + bpf.h: + /home/user/install/include/bpf/bpf.h -.. code-block:: bash + libbpf.so: + /home/user/install/lib/libbpf.so - 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 + libbpf.pc: + /home/user/install/lib/pkgconfig/libbpf.pc + bpftool: + /home/user/install/sbin/bpftool +This confirms that bpftool and libbpf have been correctly installed under your custom prefix directory. -1. Install Remaining Dependencies: json-c, yaml-cpp, llvm ---------------------------------------------------------- +**4. Install Remaining Dependencies: json-c, yaml-cpp, llvm** **Recommended: Use Spack** @@ -131,7 +210,7 @@ bpftool: **If Spack is not available:** -- **LLVM:** Install via your package manager +* **LLVM:** Install via your package manager - Fedora/RHEL: .. code-block:: bash @@ -143,51 +222,76 @@ bpftool: sudo apt-get install llvm-dev -- **json-c:** Build from source +* **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 + 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 +* **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 + 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 -Set all paths +**5. Update Environment Paths** .. code-block:: bash export PATH=$PREFIX/bin:$PREFIX/sbin:$PATH export LD_LIBRARY_PATH=$PREFIX/lib:$PREFIX/lib64:$LD_LIBRARY_PATH + export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/lib64/pkgconfig:$PKG_CONFIG_PATH + +**6. (Optional) BPFTime for Userspace Tracing** + +For experimental userspace eBPF support: + +.. 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 + +Configure BPFTime environment: + +.. code-block:: bash + + export BPFTIME_SHM_MEMORY_MB=10240 + export BPFTIME_MAX_FD_COUNT=128000 + +Build DataCrumbs with Custom Prefix +------------------------------------ -2. Build and Install datacrumbs ---------------------------------- -With all dependencies installed under your custom prefix directory, you can now 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: +**1. Create Host Configuration** .. code-block:: bash - cp $DATACRUMBS_DIR/docs/example/example.yaml $DATACRUMBS_DIR/etc/datacrumbs/configs/probe.yaml - # Edit the probe.yaml as needed + cp $DATACRUMBS_DIR/docs/example/example.yaml $DATACRUMBS_DIR/etc/datacrumbs/configs/$(hostname).yaml + # Edit the configuration file as needed for your system -Set CMake arguments: +**2. Set CMake Arguments** .. code-block:: bash @@ -206,13 +310,677 @@ If you want to use a custom host name or user, set them explicitly: # cmake_args+=(-DDATACRUMBS_HOST=) # cmake_args+=(-DDATACRUMBS_USER=) -Build and install datacrumbs: +**3. Build and Install** .. 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 + make install + popd + +Build with Environment Modules (HPC Systems) +============================================= + +On HPC systems using environment modules (e.g., Tuolumne supercomputer): + +.. code-block:: bash + + # Load required modules + module load gcc/11.2.0 + export CC=$(which gcc) + export CXX=$(which g++) + + # Create build directory + mkdir build + cd build + + # Configure and build + cmake -DCMAKE_INSTALL_PREFIX=$HOME/datacrumbs-install \ + -DDATACRUMBS_HOST=$(hostname) \ + -DDATACRUMBS_USER=$USER \ + .. + + make -j$(nproc) + make install + +CMake Configuration Options +============================ + +All DataCrumbs scripts support common options: + +- ``--verbose``: Enable detailed output +- ``--quiet``: Suppress informational messages +- ``--dry-run``: Show what would be done without executing + +The following table lists all available CMake configuration options: + +.. list-table:: CMake Configuration Options + :header-rows: 1 + :widths: 35 15 50 + + * - Option + - Default + - Description + * - **Core Options** + - + - + * - ``CMAKE_INSTALL_PREFIX`` + - ``/usr/local`` + - Installation prefix for DataCrumbs + * - ``DATACRUMBS_HOST`` + - Auto-detected + - Host identifier for configuration files (must have matching .yaml file in ``etc/datacrumbs/configs/``) + * - ``DATACRUMBS_USER`` + - ``$USER`` + - User name for runtime operations + * - ``DATACRUMBS_INSTALL_USER`` + - ``$USER`` + - User name for installation file naming (for shared installations) + * - **Tracing Configuration** + - + - + * - ``DATACRUMBS_ENABLE_OPT`` + - ``ON`` + - Enable or disable tracing functionality. Values: ``ON``, ``OFF`` + * - ``DATACRUMBS_MODE_STR`` + - ``TRACE`` + - Operation mode. Values: ``TRACE`` (full event tracing), ``PROFILE`` (sampling-based profiling) + * - ``DATACRUMBS_TRACE_ALL_PROCESSES_OPT`` + - ``OFF`` + - Trace all processes on the system (not just target application). Values: ``ON``, ``OFF`` + * - ``DATACRUMBS_INCLUSION_PATH`` + - ``NONE`` + - Filter tracing to specific file paths (e.g., ``/scratch/data``) + * - ``DATACRUMBS_TRACE_RINGBUF_SIZE_MB`` + - ``16`` + - Size of eBPF ring buffer in megabytes. Larger buffers reduce event loss but consume more memory + * - ``DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS`` + - ``1000`` + - Skip events with duration below threshold (nanoseconds). Default is 1 microsecond + * - **Profiling Configuration** + - + - + * - ``DATACRUMBS_TIME_INTERVAL_NS`` + - ``1000000`` + - Sampling interval for profiling mode (nanoseconds). Default is 1 millisecond + * - **Directory Configuration** + - + - + * - ``DATACRUMBS_CONFIGURED_TRACE_DIR`` + - ``/tmp`` + - Default directory for trace output + * - ``DATACRUMBS_CONFIGURED_LOG_DIR`` + - ``/tmp`` + - Default directory for log files + * - ``DATACRUMBS_CONFIGURED_RUN_DIR`` + - ``NONE`` + - Directory for runtime state files (PIDs, lock files). Auto-determined if not set + * - **Kernel Configuration** + - + - + * - ``DATACRUMBS_KERNEL_VERSION`` + - Auto-detected + - Override detected kernel version (e.g., ``5.15.0``) + * - ``DATACRUMBS_KERNEL_HEADERS_PATH`` + - Auto-detected + - Path to kernel headers for eBPF compilation. Default: ``/lib/modules/$(uname -r)/build`` + * - ``DATACRUMBS_KERNEL_PATH`` + - Empty + - Path to kernel source tree (if different from headers) + * - **Scheduler Integration** + - + - + * - ``DATACRUMBS_SCHEDULER_TYPE`` + - ``FLUX`` + - Job scheduler type for multi-node support. Values: ``FLUX``, ``SLURM``, ``OPENMPI``, ``NONE`` + * - ``DATACRUMBS_SCHEDULER_JOBID_ENV_VAR`` + - ``NONE`` + - Environment variable containing job ID (e.g., ``SLURM_JOB_ID``). Auto-determined from scheduler type + * - ``DATACRUMBS_SCHEDULER_NODES_CMD_OPT`` + - ``NONE`` + - Scheduler option for specifying node count (e.g., ``-N``). Auto-determined from scheduler type + * - ``DATACRUMBS_SCHEDULER_PPN_CMD_OPT`` + - ``NONE`` + - Scheduler option for processes per node (e.g., ``-n``). Auto-determined from scheduler type + * - ``DATACRUMBS_SCHEDULER_RUN_CMD`` + - ``NONE`` + - Scheduler job launch command (e.g., ``srun``). Auto-determined from scheduler type + * - ``DATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS`` + - Empty + - Additional arguments for scheduler run command (e.g., ``--exclusive --mem=0``) + * - **Build Control Options** + - + - + * - ``DATACRUMBS_SKIP_PROBE_EXPLORING`` + - ``OFF`` + - Skip the probe exploration step during build. Values: ``ON``, ``OFF`` + * - ``DATACRUMBS_SKIP_PROBE_GENERATION`` + - ``OFF`` + - Skip the probe generation step during build. Values: ``ON``, ``OFF`` + * - ``DATACRUMBS_BUILD_ONLY`` + - ``OFF`` + - Build libraries only without installation or full setup. Values: ``ON``, ``OFF`` + * - **Debug and Development** + - + - + * - ``DATACRUMBS_LOG_LEVEL_STR`` + - ``INFO`` + - Logging verbosity level. Values: ``ERROR``, ``WARN``, ``INFO``, ``DEBUG``, ``TRACE`` + * - ``DATACRUMBS_BPF_PRINT_ENABLE`` + - ``OFF`` + - Enable debug printing from eBPF programs. Values: ``ON``, ``OFF``. Warning: impacts performance! + * - **Tool Paths** + - + - + * - ``BPFTOOL_EXECUTABLE`` + - Auto-detected + - Path to bpftool binary (e.g., ``/usr/local/bin/bpftool``). Auto-detected from ``PATH`` + * - **Compatibility Options** + - + - + * - ``DATACRUMBS_BPFTIME_COMPATIBLE`` + - ``OFF`` + - Enable compatibility with bpftime userspace eBPF runtime. Values: ``ON``, ``OFF`` + +Configuration Examples +---------------------- + +**Basic configuration:** + +.. code-block:: bash + + cmake -DCMAKE_INSTALL_PREFIX=/opt/datacrumbs \ + -DDATACRUMBS_HOST=myhost \ + .. + +**HPC configuration with custom paths:** + +.. code-block:: bash + + cmake -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DDATACRUMBS_HOST=tuolumne \ + -DDATACRUMBS_USER=$USER \ + -DDATACRUMBS_SCHEDULER_TYPE=FLUX \ + -DDATACRUMBS_CONFIGURED_TRACE_DIR=/lustre/traces \ + -DDATACRUMBS_CONFIGURED_LOG_DIR=/lustre/logs \ + -DBPFTOOL_EXECUTABLE=$PREFIX/sbin/bpftool \ + .. + +**Debug configuration:** + +.. code-block:: bash + + cmake -DDATACRUMBS_LOG_LEVEL_STR=DEBUG \ + -DDATACRUMBS_BPF_PRINT_ENABLE=ON \ + .. + +**Profiling mode with reduced overhead:** + +.. code-block:: bash + + cmake -DDATACRUMBS_MODE_STR=PROFILE \ + -DDATACRUMBS_TIME_INTERVAL_NS=10000000 \ + -DDATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS=10000 \ + .. + +Important Notes +--------------- + +.. important:: + **DATACRUMBS_HOST Configuration File** + + A configuration file named ``.yaml`` **must exist** in ``etc/datacrumbs/configs/`` for the specified hostname. + This is the most common build error. You can: + + - Copy an existing configuration (e.g., ``lead.yaml``, ``docker.yaml``) and modify it + - Create a new one based on the examples in ``docs/example/`` + - See the :doc:`setup` section for details on configuration file structure + +.. warning:: + **Performance Impact** + + - ``DATACRUMBS_TRACE_ALL_PROCESSES_OPT=ON`` generates significantly more trace data + - ``DATACRUMBS_BPF_PRINT_ENABLE=ON`` can severely impact performance + - Use ``DATACRUMBS_MODE_STR=PROFILE`` for lower overhead in production + +Docker Build +============ + +Build DataCrumbs in a Docker container for a consistent environment. + +Building the Docker Image +-------------------------- + +.. code-block:: bash + + cd infrastructure/docker + # Use Dockerfile for standard build, or Dockerfile.build for build-only image + docker build -t datacrumbs:latest -f Dockerfile . + +The Dockerfile performs: + +1. Starts from base image with dependencies +2. Copies source code to ``/opt/datacrumbs`` +3. Configures with CMake for Docker environment +4. Builds and installs DataCrumbs +5. Sets up environment variables + +Running the Container +--------------------- + +.. code-block:: bash + + # Run with required privileges for eBPF + docker run --privileged --cap-add=ALL \ + -v /sys/kernel/debug:/sys/kernel/debug:rw \ + -v /lib/modules:/lib/modules:ro \ + -it datacrumbs:latest bash + +.. warning:: + eBPF requires ``--privileged`` and ``--cap-add=ALL`` capabilities! + +Custom Docker Build +------------------- + +Modify the Dockerfile for your environment: + +.. code-block:: dockerfile + + # Example custom configuration + cmake -DDATACRUMBS_HOST=myhost \ + -DDATACRUMBS_USER=myuser \ + -DDATACRUMBS_KERNEL_HEADERS_PATH=/usr/src/kernels/$(uname -r) \ + -DCMAKE_INSTALL_PREFIX=/opt/datacrumbs-install \ + /opt/datacrumbs/ + +Lima Build (macOS Development) +============================== + +Lima provides a Linux VM environment on macOS for eBPF development. + +Initial Setup +------------- + +.. code-block:: bash + + # Install Lima (macOS) + brew install lima + + # Start Lima VM with DataCrumbs configuration + cd infrastructure/lima + limactl start --network=lima:user-v2 --name=ebpf ebpf.yaml + +The ``ebpf.yaml`` configuration: + +* Creates Ubuntu 22.04 VM +* Installs all DataCrumbs dependencies +* Sets up BCC, spack, and OpenMPI +* Configures 4 CPU cores and 4GB RAM + +Connecting to Lima +------------------ + +.. code-block:: bash + + # Connect to VM + limactl shell ebpf + +Building in Lima +---------------- + +Inside the Lima VM: + +.. code-block:: bash + + # Set environment variables + export DATACRUMBS_DIR=/home/lima.linux/datacrumbs + export DATACRUMBS_INSTALL_DIR=/home/lima.linux/datacrumbs/install + + # Clone repository (if not mounted) + git clone https://github.com/LLNL/datacrumbs.git $DATACRUMBS_DIR + + # Build + cd $DATACRUMBS_DIR + mkdir build + cd build + + cmake -DCMAKE_INSTALL_PREFIX=$DATACRUMBS_INSTALL_DIR \ + -DDATACRUMBS_HOST=lima \ + -DDATACRUMBS_USER=$USER \ + .. + + make -j$(nproc) + make install + +Using Spack (Optional) +---------------------- + +Lima setup includes Spack for dependency management: + +.. code-block:: bash + + # Inside Lima VM + export SPACK_ROOT=/opt/spack + source $SPACK_ROOT/share/spack/setup-env.sh + + # Install dependencies via Spack + spack install openmpi@5.0.5 + spack load openmpi + +Building in Chameleon +====================== +Chameleon is a configurable experimental environment for large-scale edge to cloud research. +Only registered users by/as PIs have access Chameleon resources. + +Setting up Chameleon Instance +----------------- +Pick a hardware type and site using Chameleon resource catalouge. Go to the the chosen site’s “Reservations → Leases” page and create a lease with one floating IP. +Once the lease becomes ACTIVE, open “Compute → Instances,” launch a new instance by selecting your lease. +Select UBUNTU-22.04.04_DATACRUMBS image when launching your instance and attach sharednet1 network. +Finally associate a floating IP in the “Network → Floating IPs” section, then connect from your terminal with SSH using the cc user and your private key. + + +Build DataCrumbs for Chameleon +------------------------------ +Inside the instance: + +Make sure the package config can find libbpf, you can set the PKG_CONFIG_PATH if needed: + +.. code-block:: bash + + export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH + +Set Installation Directory: + +.. code-block:: bash + + export DATACRUMBS_DIR=/home/$USER/datacrumbs/install + +Create host configuration: + +.. code-block:: bash + + cp $DATACRUMBS_DIR/docs/example/example.yaml \ + $DATACRUMBS_DIR/etc/datacrumbs/configs/chameleon.yaml + # Edit chameleon.yaml as needed for your system + +Configure CMake arguments: + +.. code-block:: bash + cmake_args=( + -DCMAKE_INSTALL_PREFIX=$DATACRUMBS_DIR + -DDATACRUMBS_HOST=chameleon + -DDATACRUMBS_USER=$USER + -DDATACRUMBS_CONFIGURED_TRACE_DIR=$DATACRUMBS_DIR/traces + -DDATACRUMBS_CONFIGURED_LOG_DIR=$DATACRUMBS_DIR/logs + ) +Build and install: + +.. code-block:: bash + pushd $DATACRUMBS_DIR + mkdir -p build && cd build + cmake "${cmake_args[@]}" .. + make -j16 + make install + popd + +Running DataCrumbs on Chameleon +------------------------------- +For a standard usage (without BPFTime): + +.. code-block:: bash + # See Usage section for complete examples + datacrumbs_server_run.sh + datacrumbs_run --help + +Building for Tuolumne Supercomputer +==================================== + +Tuolumne (Tuo) is an LLNL supercomputer requiring specific build procedures. This section provides complete build instructions including dependency installation with custom prefix. + +Prerequisites for Tuolumne +--------------------------- + +Load required modules: + +.. code-block:: bash + + module load gcc/11.2.0 + export CC=$(which gcc) + export CXX=$(which g++) + +Set Installation Prefix +------------------------ + +All dependencies and DataCrumbs will be installed under a custom prefix: + +.. code-block:: bash + + export PREFIX=/usr/workspace/$USER/datacrumbs-install + +Build DataCrumbs for Tuolumne +------------------------------ + +Follow the instructions in the :ref:`Custom Prefix Installation` section above to build and install all dependencies. + +Once dependencies are installed, clone and configure DataCrumbs: + +.. code-block:: bash + + git clone https://github.com/LLNL/datacrumbs.git + export DATACRUMBS_DIR=$(realpath datacrumbs) + +Create host configuration: + +.. code-block:: bash + + cp $DATACRUMBS_DIR/docs/example/example.yaml \ + $DATACRUMBS_DIR/etc/datacrumbs/configs/tuolumne.yaml + # Edit tuolumne.yaml as needed for your system + +Configure CMake arguments: + +.. code-block:: bash + + cmake_args=( + -DCMAKE_PREFIX_PATH=$PREFIX + -DCMAKE_INSTALL_PREFIX=$PREFIX + -DBPFTOOL_EXECUTABLE=$PREFIX/sbin/bpftool + -DDATACRUMBS_HOST=tuolumne + -DDATACRUMBS_USER=$USER + -DDATACRUMBS_SCHEDULER_TYPE=FLUX + -DDATACRUMBS_CONFIGURED_TRACE_DIR=/p/lustre1/$USER/traces + -DDATACRUMBS_CONFIGURED_LOG_DIR=/p/lustre1/$USER/logs + ) + +Build and install: + +.. code-block:: bash + + pushd $DATACRUMBS_DIR + mkdir -p build && cd build + cmake "${cmake_args[@]}" .. + make -j16 + make install popd + +Running DataCrumbs on Tuolumne +------------------------------- + +Load environment: + +.. code-block:: bash + + module load gcc/11.2.0 + export PATH=$PREFIX/bin:$PREFIX/sbin:$PATH + export LD_LIBRARY_PATH=$PREFIX/lib:$PREFIX/lib64:$LD_LIBRARY_PATH + +Run with BPFTime (if installed): + +.. code-block:: bash + + export BPFTIME_SHM_MEMORY_MB=10240 + export BPFTIME_MAX_FD_COUNT=128000 + + bpftime --install-location $PREFIX/lib load \ + $PREFIX/sbin/datacrumbs "run" "tuolumne-mpiio" \ + "--user" "$USER" \ + "--config_path" "$PREFIX/etc/datacrumbs/configs" \ + "--data_dir" "$PREFIX/etc/datacrumbs/data" \ + "--trace_log_dir" "$PREFIX/etc/datacrumbs/logs" + +For debugging with GDB: + +.. code-block:: bash + + gdb $PREFIX/sbin/datacrumbs + # Inside GDB: + add-auto-load-safe-path /opt/cray/pe/gcc/11.2.0/snos/lib64/libstdc++.so.6.0.29-gdb.py + set follow-fork-mode child + set detach-on-fork off + set print-frame-arguments all + +Standard usage (without BPFTime): + +.. code-block:: bash + + # See Usage section for complete examples + datacrumbs_server_run.sh + datacrumbs_run --help + +Build Verification +================== + +After installation, verify the build: + +.. code-block:: bash + + # Check binaries + ls -la $PREFIX/bin/datacrumbs_* + ls -la $PREFIX/sbin/datacrumbs* + + # Check libraries (may be in lib or lib64 depending on system) + ls -la $PREFIX/lib*/libdatacrumbs_*.so + + # Check module file + ls -la $PREFIX/etc/datacrumbs/modulefiles/ + + # Test validator + $PREFIX/sbin/datacrumbs_validator + +Troubleshooting +=============== + +Build Errors +------------ + +**"Cannot find configuration file for host"** + +.. code-block:: text + + CMake Error: Configuration file etc/datacrumbs/configs/myhost.yaml not found + +**This is the most common build error.** DataCrumbs requires a host-specific configuration file. + +.. code-block:: bash + + # Solution 1: Copy an existing configuration + cd etc/datacrumbs/configs/ + cp lead.yaml myhost.yaml + # Edit myhost.yaml to match your system + + # Solution 2: Specify a different host + cmake -DDATACRUMBS_HOST=lead ... + + # Solution 3: Create minimal configuration + cat > etc/datacrumbs/configs/myhost.yaml << 'EOF' + capture_probes: + - name: sys + probe: syscalls + type: header + file: /usr/src/kernels/$(uname -r)/include/linux/syscalls.h + regex: sys_.* + EOF + +See the :doc:`setup` section for more details on configuration file structure. + +**"Cannot find vmlinux BTF"** + +.. code-block:: bash + + # Verify BTF exists + ls /sys/kernel/btf/vmlinux + + # If missing, specify kernel headers path + cmake -DDATACRUMBS_KERNEL_HEADERS_PATH=/usr/src/kernels/$(uname -r) ... + +**"libbpf not found"** + +.. code-block:: bash + + # Install libbpf or set PKG_CONFIG_PATH + export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH + +**"Clang not found for eBPF compilation"** + +.. code-block:: bash + + # Install clang + sudo dnf install clang llvm + + # Verify + which clang + +**"Permission denied" during eBPF operations** + +The build process tests eBPF capabilities. Ensure: + +.. code-block:: bash + + # Run make with appropriate privileges if needed + sudo make + +Rebuild from Scratch +-------------------- + +To completely rebuild: + +.. code-block:: bash + + # Remove build directory + rm -rf build + + # Recreate and rebuild + mkdir build + cd build + cmake .. + make clean + make -j$(nproc) + +Partial Rebuild +--------------- + +To rebuild only changed components: + +.. code-block:: bash + + # Rebuild specific targets + make datacrumbs_bpf + make datacrumbs + + # Reinstall + make install + +Clean Build Artifacts +--------------------- + +.. code-block:: bash + + # Clean BPF artifacts + make clean_all + + # Clean everything + make clean diff --git a/docs/composability.rst b/docs/composability.rst new file mode 100755 index 00000000..ff99c707 --- /dev/null +++ b/docs/composability.rst @@ -0,0 +1,597 @@ +=================== +Composability Guide +=================== + +DataCrumbs provides a powerful composability feature that allows users to create custom tracing configurations by selecting specific probes. This enables optimized tracing tailored to specific workload requirements, reducing overhead and improving performance. + +Overview +======== + +During the build and installation process, DataCrumbs: + +1. Discovers available probes in system libraries and kernel functions +2. Compiles each probe as a separate eBPF object file +3. Installs individual probe objects to ``/libexec/datacrumbs/objects/`` +4. Provides tools for discovering and composing custom configurations + +This modular approach allows users to: + +- Select only the probes relevant to their workload +- Reduce tracing overhead by excluding unnecessary probes +- Create multiple configurations for different applications +- Share configurations across users in multi-tenant environments + +Probe Objects +============= + +After installation, individual probe objects are available in: + +.. code-block:: bash + + $PREFIX/libexec/datacrumbs/objects/ + +Example probe objects: + +- ``open.o`` - open() system call +- ``read.o`` - read() system call +- ``write.o`` - write() system call +- ``H5Fopen.o`` - HDF5 file open +- ``MPI_File_open.o`` - MPI-IO file open +- ``pread64.o``, ``pwrite64.o`` - POSIX I/O functions +- And many more depending on your system configuration + +Common objects (always required): + +- ``common.o`` - Shared eBPF code +- ``init.bpf.o`` - Initialization code + +Discovering Available Probes +============================= + +Use ``datacrumbs_compose`` to discover all available probes: + +**Command:** + +.. code-block:: bash + + sudo datacrumbs_compose --action discover + +**Output:** + +.. code-block:: text + + [INFO 2025-11-21 21:19:50] After loading yaml for docker + [INFO 2025-11-21 21:19:50] Discovering probe objects in /workspaces/datacrumbs/install/libexec/datacrumbs/objects... + [INFO 2025-11-21 21:19:50] custom1 + [INFO 2025-11-21 21:19:50] sys + [INFO 2025-11-21 21:19:50] libc + [INFO 2025-11-21 21:19:50] os_page_cache + [INFO 2025-11-21 21:19:50] python + [INFO 2025-11-21 21:19:50] xfs + [INFO 2025-11-21 21:19:50] iomap + ... + +The discover action lists all probes that can be composed into custom configurations. + +Creating Composable Configurations +=================================== + +Use ``datacrumbs_compose`` to create a custom configuration: + +**Command Syntax:** + +.. code-block:: bash + + sudo datacrumbs_compose --action compose --name CONFIG_NAME --probes PROBE1,PROBE2,... + +**Arguments:** + +``--action compose`` + Create a new composable configuration + +``--name NAME`` + Name for the custom configuration (alphanumeric and underscore only) + +``--probes PROBES`` + Comma-separated list of probe names (no spaces) + +Example: Local I/O Only +----------------------- + +Create a configuration that traces only POSIX I/O operations: + +.. code-block:: bash + + sudo datacrumbs_compose --action compose \ + --name local_io \ + --probes custom1,sys,os_page_cache,xfs,iomap + +This creates: ``$PREFIX/libexec/datacrumbs/sbin//datacrumbs_local_io`` + +Example: HDF5 Only +------------------ + +Create a configuration for HDF5 applications: + +.. code-block:: bash + + sudo datacrumbs_compose --action compose \ + --name hdf5_only \ + --probes h5a,h5d,h5all + +Example: MPI-IO Only +-------------------- + +Create a configuration for MPI-IO tracing: + +.. code-block:: bash + + sudo datacrumbs_compose --action compose \ + --name mpiio_only \ + --probes mpiio,sys + +Example: Mixed Workload +----------------------- + +Create a configuration for applications using POSIX and HDF5: + +.. code-block:: bash + + sudo datacrumbs_compose --action compose \ + --name posix_hdf5 \ + --probes custom1,sys,hdf5 + +Using Composable Configurations +================================ + +Once created, composable configurations can be used with any DataCrumbs execution mode. + +With datacrumbs_run +------------------- + +.. code-block:: bash + + # Use default configuration + datacrumbs_run --app "./myapp" + + # Use custom configuration + datacrumbs_compose_run --composite-name local_io --app "./myapp" + +With Server Mode +---------------- + +.. code-block:: bash + + # Start server with custom configuration + sudo datacrumbs_server_run.sh --composite-name hdf5_only + + # Run application (uses custom config) + datacrumbs_track --executable ./hdf5_app + ./hdf5_app + + # Stop server + sudo datacrumbs_server_stop.sh --composite-name hdf5_only + +With Service Mode +----------------- + +.. code-block:: bash + + # Set environment variable for service + export DATACRUMBS_COMPOSABLE_NAME=mpiio_only + + # Start service + sudo datacrumbs_service_run.sh + + # Applications will use the mpiio_only configuration + +With Flux Integration +--------------------- + +.. code-block:: bash + + # Submit job with custom configuration + flux run --datacrumbs-enable --datacrumbs-composite=posix_hdf5 \ + -N 4 -n 32 ./parallel_app + + # Or with default configuration + flux run --datacrumbs-enable -N 4 -n 32 ./parallel_app + +Command Reference: datacrumbs_compose +====================================== + +**Synopsis:** + +.. code-block:: bash + + datacrumbs_compose --action ACTION [OPTIONS] + +**Required Arguments:** + +``--action ACTION`` + Action to perform: + + - ``discover``: List all available probes + - ``compose``: Create a new composable configuration + +**Optional Arguments:** + +``--name NAME`` + Name for the composable configuration (required for ``compose`` action) + + - Must contain only alphanumeric characters and underscores + - Will create binary: ``datacrumbs_`` + +``--probes PROBES`` + Comma-separated list of probe names (required for ``compose`` action) + + - No spaces between probe names + - Probe names must exist (use ``discover`` to list) + +``--verbose`` + Enable verbose output + +``--quiet`` + Suppress informational messages + +``--dry-run`` + Show what would be done without executing + +**Examples:** + +.. code-block:: bash + + # Discover available probes + sudo datacrumbs_compose --action discover + + # Create simple configuration + sudo datacrumbs_compose --action compose \ + --name basic_io \ + --probes custom1,sys,os_page_cache + + # Create with verbose output + sudo datacrumbs_compose --action compose \ + --name debug_config \ + --probes custom1,sys,os_page_cache \ + --verbose + + # Dry run to see what would happen + sudo datacrumbs_compose --action compose \ + --name test_config \ + --probes custom1 \ + --dry-run + +Composable Binary Locations +============================ + +Composable binaries are installed per-user: + +.. code-block:: text + + /libexec/datacrumbs/sbin//datacrumbs_ + +Example: + +.. code-block:: bash + + # For user 'alice' with config 'local_io' + /opt/datacrumbs/libexec/datacrumbs/sbin/alice/datacrumbs_local_io + + # For user 'bob' with config 'hdf5_only' + /opt/datacrumbs/libexec/datacrumbs/sbin/bob/datacrumbs_hdf5_only + +This per-user structure allows: + +- Multiple users to have different configurations +- Configuration isolation between users +- Shared installations with user-specific customizations + +Managing Composables +==================== + +Listing Composables +------------------- + +List all composable configurations for the current user: + +.. code-block:: bash + + ls $PREFIX/libexec/datacrumbs/sbin/$USER/ + +Removing Composables +-------------------- + +Remove a composable configuration: + +.. code-block:: bash + + rm $PREFIX/libexec/datacrumbs/sbin/$USER/datacrumbs_ + +Example: + +.. code-block:: bash + + rm $PREFIX/libexec/datacrumbs/sbin/$USER/datacrumbs_posix_io + +Updating Composables +-------------------- + +To update a composable configuration, simply recreate it: + +.. code-block:: bash + + # Recreate with updated probe list + sudo datacrumbs_compose --action compose \ + --name local_io \ + --probes custom1,sys,os_page_cache,xfs,iomap + +The old configuration is automatically replaced. + +Composability Best Practices +============================= + +1. **Start Small**: Begin with minimal probe sets and add more as needed +2. **Profile First**: Use the full configuration to identify which probes are relevant +3. **Workload-Specific**: Create different configurations for different application types +4. **Test Configurations**: Verify custom configurations work before production use +5. **Document Configs**: Maintain a list of configurations and their purposes +6. **Share Configs**: Coordinate configurations across team members for consistency +7. **Monitor Overhead**: Compare overhead between full and custom configurations +8. **Version Control**: Keep track of which probe combinations work best + +Common Configuration Patterns +============================== + +System Call Level +----------------- + +Trace only low-level system calls: + +.. code-block:: bash + + sudo datacrumbs_compose --action compose \ + --name syscalls_only \ + --probes custom1,sys + +Local I/O Level +--------------- + +Trace local I/O operations: + +.. code-block:: bash + + sudo datacrumbs_compose --action compose \ + --name local_io \ + --probes custom1,sys,os_page_cache,xfs,iomap + +High-Level Libraries +-------------------- + +Trace only high-level I/O libraries: + +.. code-block:: bash + + sudo datacrumbs_compose --action compose \ + --name high_level \ + --probes h5a,h5d,mpiio + + +Troubleshooting Composables +============================ + +Probe Not Found +--------------- + +.. code-block:: text + + Error: Probe object 'invalid_probe.o' not found. + +**Solution**: Run ``discover`` to see available probes: + +.. code-block:: bash + + sudo datacrumbs_compose --action discover + +Invalid Configuration Name +-------------------------- + +.. code-block:: text + + Error: Invalid composable name + +**Solution**: Use only alphanumeric characters and underscores: + +.. code-block:: bash + + # Invalid + sudo datacrumbs_compose --action compose --name my-config ... # Hyphen not allowed + + # Valid + sudo datacrumbs_compose --action compose --name my_config ... + +Composable Not Used +------------------- + +If the composable binary is created but not being used: + +.. code-block:: bash + + # Verify binary exists + ls -la $PREFIX/libexec/datacrumbs/sbin/$USER/datacrumbs_* + + # Check permissions + # Should be: -r-x------ (500) + + # Verify you're specifying the name correctly + datacrumbs_compose_run --composite-name exact_name + +Build Failures +-------------- + +If composable build fails: + +.. code-block:: bash + + # Check build logs in the dry-run output + sudo datacrumbs_compose --action compose \ + --name test \ + --probes open,close \ + --verbose + + # Verify CMake and build tools are available + which cmake + + # Check probe objects exist + ls $PREFIX/libexec/datacrumbs/objects/ + +Advanced Usage +============== + +Programmatic Composition +------------------------ + +Create multiple configurations programmatically: + +.. code-block:: bash + + #!/bin/bash + + # Define configurations + declare -A configs + configs[posix]="open,close,read,write,lseek" + configs[hdf5]="H5Fopen,H5Fclose,H5Dread,H5Dwrite" + configs[mpiio]="MPI_File_open,MPI_File_close,MPI_File_read,MPI_File_write" + + # Create all configurations + for name in "${!configs[@]}"; do + echo "Creating configuration: $name" + sudo datacrumbs_compose --action compose \ + --name "$name" \ + --probes "${configs[$name]}" + done + +Dynamic Probe Selection +----------------------- + +Select probes based on application analysis: + +.. code-block:: bash + + # Run with full tracing first + datacrumbs_run --app "./myapp" + + # Analyze trace to find used functions + # (Analysis script not shown) + + # Create optimized configuration with only used probes + sudo datacrumbs_compose --action compose \ + --name myapp_optimized \ + --probes open,read,write,close,H5Dread,H5Dwrite + +Integration with Workflows +--------------------------- + +Include composable creation in workflow scripts: + +.. code-block:: bash + + #!/bin/bash + # workflow.sh + + # Create workflow-specific configuration + sudo datacrumbs_compose --action compose \ + --name workflow_io \ + --probes open,close,read,write,H5Fopen,H5Fclose + + # Run workflow stages with custom configuration + datacrumbs_server_run --composite-name workflow_io + datacrumbs_track --executable ./stage1_preprocess + ./stage1_preprocess + datacrumbs_track --executable ./stage2_compute + ./stage2_compute + datacrumbs_track --executable ./stage3_postprocess + ./stage3_postprocess + datacrumbs_server_stop --composite-name workflow_io + +Examples +======== + +Example 1: Lightweight POSIX Tracing +------------------------------------- + +.. code-block:: bash + + # Discover available probes + sudo datacrumbs_compose --action discover + + # Create lightweight configuration + sudo datacrumbs_compose --action compose \ + --name light_posix \ + --probes open,close,read,write + + # Use with application + datacrumbs_compose_run --composite-name light_posix \ + --app "./io_benchmark" + + # Compare overhead with full tracing + # Lightweight typically has 2-3% overhead vs 5-8% for full + +Example 2: HDF5 Application Optimization +----------------------------------------- + +.. code-block:: bash + + # Initial run with full tracing + datacrumbs_run --app "./hdf5_app dataset.h5" + + # Analyze trace - shows only H5 functions are used + + # Create HDF5-only configuration + sudo datacrumbs_compose --action compose \ + --name hdf5_optimized \ + --probes H5Fopen,H5Fclose,H5Fcreate,H5Dopen,H5Dclose,H5Dcreate,H5Dread,H5Dwrite + + # Use optimized configuration + datacrumbs_compose_run --composite-name hdf5_optimized \ + --app "./hdf5_app large_dataset.h5" + +Example 3: Multi-User Environment +---------------------------------- + +.. code-block:: bash + + # Administrator creates common configurations + sudo su - admin + + # POSIX configuration + sudo datacrumbs_compose --action compose \ + --name std_posix \ + --probes open,close,read,write,pread64,pwrite64 + + # HDF5 configuration + sudo datacrumbs_compose --action compose \ + --name std_hdf5 \ + --probes H5Fopen,H5Fclose,H5Dread,H5Dwrite + + # Users can now use these configurations + # User 1 + datacrumbs_compose_run --composite-name std_posix --app "./user1_app" + + # User 2 + datacrumbs_compose_run --composite-name std_hdf5 --app "./user2_app" + +Example 4: Flux Workflow +------------------------- + +.. code-block:: bash + + # Create configuration for workflow + sudo datacrumbs_compose --action compose \ + --name workflow_trace \ + --probes open,close,read,write,H5Dread,H5Dwrite,MPI_File_read,MPI_File_write + + # Submit Flux job with custom configuration + flux run --datacrumbs-enable \ + --datacrumbs-composite=workflow_trace \ + -N 8 -n 64 \ + ./parallel_workflow diff --git a/docs/conf.py b/docs/conf.py index ded7eddf..722f32a2 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,14 +19,14 @@ # -- Project information ----------------------------------------------------- -project = u'dftracer' -copyright = u'2018, Lawrence Livermore National Security, LLC' +project = u'DataCrumbs' +copyright = u'2024, Lawrence Livermore National Security, LLC' author = u'Hariharan Devarajan' # The short X.Y version version = u'0.0' # The full version, including alpha/beta/rc tags -release = u'1.0.2' +release = u'0.0.4' # -- General configuration --------------------------------------------------- @@ -90,9 +90,12 @@ # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] +# Add custom CSS +html_css_files = ['custom.css'] + # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = 'images/dftracer-logo.png' +# html_logo = 'images/datacrumbs-logo.png' # Update when logo is available # Custom sidebar templates, must be a dictionary that maps document names # to template names. @@ -110,7 +113,7 @@ # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. -htmlhelp_basename = 'dftracer-doc' +htmlhelp_basename = 'datacrumbs-doc' # -- Options for LaTeX output ------------------------------------------------ @@ -137,13 +140,13 @@ # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'dftracer.tex', u'DFTracer Documentation', + (master_doc, 'datacrumbs.tex', u'DataCrumbs Documentation', author, 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. -latex_logo = 'images/dftracer-logo.png' +# latex_logo = 'images/datacrumbs-logo.png' # -- Options for manual page output ------------------------------------------ @@ -151,7 +154,7 @@ # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ - (master_doc, 'dftracer', u'DFTracer Documentation', + (master_doc, 'datacrumbs', u'DataCrumbs Documentation', [author], 1) ] @@ -162,7 +165,7 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'dftracer', u'DFTracer Documentation', - author, 'dftracer', 'DFTracer is a library for wrapping function calls in shared libraries.', + (master_doc, 'datacrumbs', u'DataCrumbs Documentation', + author, 'datacrumbs', 'DataCrumbs is an eBPF-based I/O profiling and tracing tool for HPC applications.', 'Miscellaneous'), ] diff --git a/docs/dependencies.rst b/docs/dependencies.rst new file mode 100755 index 00000000..1c9f6273 --- /dev/null +++ b/docs/dependencies.rst @@ -0,0 +1,485 @@ +============ +Dependencies +============ + +DataCrumbs has several system and library dependencies that must be satisfied before building and running the tool. + +System Requirements +=================== + +Operating System +---------------- + +DataCrumbs requires a Linux-based operating system with eBPF support. Tested distributions include: + +* CentOS 8+ +* Rocky Linux 8+ +* Ubuntu 20.04+ +* Debian 11+ + +Kernel Requirements +------------------- + +**Recommended: Linux Kernel 5.8 or later** + +DataCrumbs works best with modern kernel versions that have full eBPF feature support: + +* **Linux 5.8+**: Full eBPF features including bounded loops, advanced helpers, and BPF ring buffers (recommended) +* **Linux 5.1+**: Supported with most features +* **Linux 4.18+**: Supported with compatibility layers (reduced functionality) + +For kernels older than 5.8, DataCrumbs can use compatibility mechanisms, but some features may be limited. + +To check your kernel version: + +.. code-block:: bash + + uname -r + +Kernel Configuration +-------------------- + +The kernel must be built with eBPF support enabled. Required kernel configuration options: + +.. code-block:: text + + CONFIG_BPF=y + CONFIG_BPF_SYSCALL=y + CONFIG_BPF_JIT=y + CONFIG_HAVE_EBPF_JIT=y + CONFIG_BPF_EVENTS=y + CONFIG_DEBUG_INFO_BTF=y + +Most modern distributions enable these by default. To verify: + +.. code-block:: bash + + # Check if BTF is available + ls -la /sys/kernel/btf/vmlinux + + # Check BPF support + zgrep BPF /proc/config.gz + +Build Dependencies +================== + +Compiler Requirements +--------------------- + +**GCC 11.2.0 or later** (recommended) + +.. code-block:: bash + + # Check GCC version + gcc --version + + # Set compiler for CMake + export CC=$(which gcc) + export CXX=$(which g++) + +**Clang/LLVM** (for eBPF compilation) + +Clang is required to compile eBPF programs. Version 10+ recommended. + +.. code-block:: bash + + # Check Clang version + clang --version + +Build Tools +----------- + +Required build tools: + +* **CMake 3.5+**: Build system generator +* **Make**: Build automation +* **Git**: Version control (for obtaining source) +* **pkg-config**: Dependency detection + +.. code-block:: bash + + # On CentOS/Rocky Linux + sudo dnf install cmake make git pkg-config + + # On Ubuntu/Debian + sudo apt-get install cmake build-essential git pkg-config + +Core eBPF Dependencies +====================== + +libbpf (v1.5.0+) +---------------- + +**Required Version: 1.5.0 or later** + +libbpf is the core library for loading and managing eBPF programs. DataCrumbs requires a recent version with support for: + +* Modern BPF features (ring buffers, etc.) +* BTF support +* CO-RE (Compile Once - Run Everywhere) + +Installation from Source +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # Clone libbpf + git clone https://github.com/libbpf/libbpf.git + cd libbpf/src + + # Build and install + make + sudo make install + sudo ldconfig + + # Verify installation + pkg-config --modversion libbpf + +Installation from Package Manager +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # CentOS/Rocky Linux + sudo dnf install libbpf-devel + + # Ubuntu 22.04+ + sudo apt-get install libbpf-dev + +.. note:: + Package manager versions may be older than 1.5.0. Building from source is recommended for the latest features. + +bpftool (v7.5.0+) +----------------- + +**Required Version: 7.5.0 or later** + +bpftool is used during the build process to generate eBPF-related headers and skeleton files. + +Installation from Source +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # Install dependencies + sudo dnf install libelf-devel libcap-devel + + # Clone Linux kernel tools + git clone --depth 1 --branch v6.1 https://github.com/torvalds/linux.git + cd linux/tools/bpf/bpftool + + # Build and install + make + sudo make install + + # Verify installation + bpftool version + +System Installation +^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # CentOS/Rocky Linux + sudo dnf install bpftool + + # Ubuntu + sudo apt-get install linux-tools-common linux-tools-generic + +.. note:: + The bpftool version often matches the kernel version. Ensure you have a recent version installed. + +Additional Library Dependencies +================================ + +yaml-cpp +-------- + +**Purpose**: Configuration file parsing (YAML format) + +DataCrumbs uses YAML for configuration files that define: + +* Host-specific settings +* Probe configurations +* Capture rules + +Installation: + +.. code-block:: bash + + # From source + git clone https://github.com/jbeder/yaml-cpp.git + cd yaml-cpp + mkdir build && cd build + cmake -DYAML_BUILD_SHARED_LIBS=ON .. + make + sudo make install + + # From package manager + # CentOS/Rocky Linux + sudo dnf install yaml-cpp-devel + + # Ubuntu/Debian + sudo apt-get install libyaml-cpp-dev + +json-c +------ + +**Purpose**: JSON data handling for trace output and data files + +DataCrumbs uses JSON for: + +* Probe metadata storage +* Category definitions +* Internal data exchange + +Installation: + +.. code-block:: bash + + # From package manager + # CentOS/Rocky Linux + sudo dnf install json-c-devel + + # Ubuntu/Debian + sudo apt-get install libjson-c-dev + +libelf +------ + +**Purpose**: ELF (Executable and Linkable Format) file parsing + +Required for: + +* Discovering symbols in libraries +* Attaching probes to functions +* Reading binary metadata + +Installation: + +.. code-block:: bash + + # CentOS/Rocky Linux + sudo dnf install elfutils-libelf-devel + + # Ubuntu/Debian + sudo apt-get install libelf-dev + +zlib +---- + +**Purpose**: Trace data compression + +DataCrumbs can compress trace output to reduce storage requirements. + +Installation: + +.. code-block:: bash + + # CentOS/Rocky Linux + sudo dnf install zlib-devel + + # Ubuntu/Debian + sudo apt-get install zlib1g-dev + +Optional Dependencies +===================== + +patchelf +-------- + +**Purpose**: Binary patching for track/untrack functionality + +Required only if you plan to use ``datacrumbs_track`` and ``datacrumbs_untrack`` scripts to permanently instrument binaries. + +Installation: + +.. code-block:: bash + + # CentOS/Rocky Linux + sudo dnf install patchelf + + # Ubuntu/Debian + sudo apt-get install patchelf + +MPI Implementation +------------------ + +**Purpose**: MPI-IO tracing support + +If tracing MPI applications, install an MPI implementation: + +.. code-block:: bash + + # OpenMPI + sudo dnf install openmpi-devel + + # Or MPICH + sudo dnf install mpich-devel + + # Load MPI module (if using environment modules) + module load openmpi + +HDF5 +---- + +**Purpose**: HDF5 I/O tracing support + +For applications using HDF5: + +.. code-block:: bash + + # CentOS/Rocky Linux + sudo dnf install hdf5-devel + + # Ubuntu/Debian + sudo apt-get install libhdf5-dev + +Python Dependencies (for Analysis) +=================================== + +The analysis tools in ``analysis/`` directory require Python 3.8+ with the following packages: + +.. code-block:: bash + + pip install -r analysis/requirements.txt + +Key packages: + +- ``pandas``: Data analysis +- ``matplotlib``: Visualization +- ``jupyter``: Interactive notebooks +- ``numpy``: Numerical operations + +Kernel Headers +============== + +DataCrumbs needs access to kernel headers for eBPF compilation. + +Installation: + +.. code-block:: bash + + # CentOS/Rocky Linux + sudo dnf install kernel-devel kernel-headers + + # Ubuntu/Debian + sudo apt-get install linux-headers-$(uname -r) + +The kernel headers should be located at: + +- ``/usr/src/kernels/`` +- ``/lib/modules/$(uname -r)/build`` + +You can specify a custom path using the ``DATACRUMBS_KERNEL_HEADERS_PATH`` CMake variable. + +Verifying Dependencies +====================== + +Before building, verify all required dependencies are available: + +.. code-block:: bash + + # Check kernel version + uname -r + + # Check for BTF support + ls /sys/kernel/btf/vmlinux + + # Check libbpf + pkg-config --modversion libbpf + + # Check bpftool + bpftool version + + # Check compiler + gcc --version + clang --version + +Complete Dependency Installation +================================= + +CentOS/Rocky Linux 8 +-------------------- + +.. code-block:: bash + + # System tools + sudo dnf install -y gcc gcc-c++ clang llvm make cmake git + sudo dnf install -y kernel-devel kernel-headers + + # eBPF tools + sudo dnf install -y libbpf-devel bpftool + + # Libraries + sudo dnf install -y elfutils-libelf-devel yaml-cpp-devel json-c-devel zlib-devel + + # Optional tools + sudo dnf install -y patchelf + + # MPI (optional) + sudo dnf install -y openmpi-devel + + # HDF5 (optional) + sudo dnf install -y hdf5-devel + +Ubuntu 22.04 +------------ + +.. code-block:: bash + + # System tools + sudo apt-get update + sudo apt-get install -y build-essential clang llvm cmake git + sudo apt-get install -y linux-headers-$(uname -r) + + # eBPF tools + sudo apt-get install -y libbpf-dev linux-tools-common linux-tools-generic + + # Libraries + sudo apt-get install -y libelf-dev libyaml-cpp-dev libjson-c-dev zlib1g-dev + + # Optional tools + sudo apt-get install -y patchelf + + # MPI (optional) + sudo apt-get install -y libopenmpi-dev + + # HDF5 (optional) + sudo apt-get install -y libhdf5-dev + +Troubleshooting +=============== + +BTF Not Available +----------------- + +If ``/sys/kernel/btf/vmlinux`` doesn't exist: + +1. Upgrade to a newer kernel (5.8+ recommended) +2. Rebuild kernel with ``CONFIG_DEBUG_INFO_BTF=y`` +3. Use ``DATACRUMBS_KERNEL_HEADERS_PATH`` to point to kernel sources + +libbpf Version Too Old +---------------------- + +If package manager version is < 1.5.0: + +.. code-block:: bash + + # Build from source + git clone https://github.com/libbpf/libbpf.git + cd libbpf/src + git checkout v1.5.0 + make + sudo make install + sudo ldconfig + +Permission Issues +----------------- + +eBPF operations require elevated privileges: + +* Run DataCrumbs server components with ``sudo`` +* Ensure user is in appropriate groups (e.g., ``bpf`` group if available) +* Check ``/proc/sys/kernel/unprivileged_bpf_disabled`` setting diff --git a/docs/deployment.rst b/docs/deployment.rst new file mode 100755 index 00000000..b9abca9b --- /dev/null +++ b/docs/deployment.rst @@ -0,0 +1,595 @@ +=================== +Deployment for HPC +=================== + +DataCrumbs can be deployed on HPC systems in multiple ways to allow users to trace their applications. This guide covers deployment methods for multi-user environments where administrators need to grant users access to DataCrumbs functionality. + +Deployment Overview +=================== + +There are two primary deployment approaches: + +1. **Sudoers Access**: Grant specific users permission to start/stop the DataCrumbs server via sudo +2. **Scheduler Integration**: Use job scheduler prolog/epilog scripts to manage DataCrumbs automatically + +.. list-table:: Deployment Method Comparison + :header-rows: 1 + :widths: 25 35 40 + + * - Method + - Best For + - Characteristics + * - Sudoers Access + - Interactive development, small teams + - User-initiated, explicit control, manual start/stop + * - Scheduler Integration + - Production workloads, large deployments + - Automatic, transparent, per-job isolation + +Method 1: Sudoers File Access +============================== + +This method grants specific users permission to run DataCrumbs server control scripts without requiring full root privileges. + +Overview +-------- + +Users can: + +- Start DataCrumbs server with ``sudo datacrumbs_server_run.sh`` +- Stop DataCrumbs server with ``sudo datacrumbs_server_stop.sh`` +- Cannot modify DataCrumbs installation or configuration +- Cannot access other users' trace data + +Sudoers Configuration +--------------------- + +**Step 1: Create sudoers configuration file** + +Create ``/etc/sudoers.d/datacrumbs`` with the following content: + +.. code-block:: bash + + # Allow specific users to run DataCrumbs server control scripts + + # Define user aliases (customize for your site) + User_Alias DATACRUMBS_USERS = user1, user2, user3, %hpc_group + + # Define command aliases + Cmnd_Alias DATACRUMBS_START = /opt/datacrumbs/sbin/datacrumbs_server_run.sh + Cmnd_Alias DATACRUMBS_STOP = /opt/datacrumbs/sbin/datacrumbs_server_stop.sh + Cmnd_Alias DATACRUMBS_SERVICE_START = /opt/datacrumbs/sbin/datacrumbs_service_run.sh + Cmnd_Alias DATACRUMBS_SERVICE_STOP = /opt/datacrumbs/sbin/datacrumbs_service_stop.sh + + # Grant permissions (no password required) + DATACRUMBS_USERS ALL = (root) NOPASSWD: DATACRUMBS_START, DATACRUMBS_STOP + DATACRUMBS_USERS ALL = (root) NOPASSWD: DATACRUMBS_SERVICE_START, DATACRUMBS_SERVICE_STOP + +.. important:: + Replace ``/opt/datacrumbs`` with your actual DataCrumbs installation prefix. + +**Step 2: Set correct permissions** + +.. code-block:: bash + + # Set ownership and permissions + sudo chown root:root /etc/sudoers.d/datacrumbs + sudo chmod 0440 /etc/sudoers.d/datacrumbs + + # Validate sudoers syntax + sudo visudo -c -f /etc/sudoers.d/datacrumbs + +**Step 3: Verify configuration** + +.. code-block:: bash + + # Test as regular user + sudo -l + + # Expected output should include: + # User may run the following commands: + # (root) NOPASSWD: /opt/datacrumbs/sbin/datacrumbs_server_run.sh + # (root) NOPASSWD: /opt/datacrumbs/sbin/datacrumbs_server_stop.sh + +User-Specific Configuration +---------------------------- + +**Allow per-user DataCrumbs access:** + +.. code-block:: bash + + # In /etc/sudoers.d/datacrumbs + User_Alias DATACRUMBS_ADMINS = admin1, admin2 + User_Alias DATACRUMBS_BASIC_USERS = user1, user2, %research_group + + # Admins can run all DataCrumbs commands + DATACRUMBS_ADMINS ALL = (root) NOPASSWD: /opt/datacrumbs/sbin/* + + # Basic users can only start/stop their own servers + DATACRUMBS_BASIC_USERS ALL = (root) NOPASSWD: DATACRUMBS_START, DATACRUMBS_STOP + +Group-Based Access +------------------ + +Grant access to entire groups: + +.. code-block:: bash + + # In /etc/sudoers.d/datacrumbs + + # Allow all users in 'hpc' group + %hpc ALL = (root) NOPASSWD: DATACRUMBS_START, DATACRUMBS_STOP + + # Allow all users in multiple groups + User_Alias DATACRUMBS_USERS = %hpc, %research, %developers + +Usage by Regular Users +----------------------- + +Once configured, users can start and stop DataCrumbs: + +.. code-block:: bash + + # Start DataCrumbs server + sudo datacrumbs_server_run.sh --user $USER + + # Stop DataCrumbs server + sudo datacrumbs_server_stop.sh --user $USER + + # With service mode + sudo datacrumbs_service_run.sh --user $USER + sudo datacrumbs_service_stop.sh --user $USER + +Security Considerations +----------------------- + +.. warning:: + - Only grant access to trusted users + - Regularly audit sudoers configuration + - Monitor DataCrumbs server processes + - Review trace logs for unauthorized access + +Best practices: + +1. Use specific command paths (not wildcards like ``/opt/datacrumbs/*``) +2. Require users to specify ``--user $USER`` to prevent impersonation +3. Set up log monitoring: ``/var/log/auth.log`` tracks sudo usage +4. Implement quota limits on trace storage directories +5. Rotate trace logs regularly + +Restricting Commands +-------------------- + +Limit users to specific DataCrumbs configurations: + +.. code-block:: bash + + # Only allow specific configurations + Cmnd_Alias DATACRUMBS_SAFE_START = /opt/datacrumbs/sbin/datacrumbs_server_run.sh --user *, \ + --config standard + + DATACRUMBS_USERS ALL = (root) NOPASSWD: DATACRUMBS_SAFE_START + +Method 2: Scheduler Integration +================================ + +Automatic DataCrumbs management via job scheduler prolog and epilog scripts. This is the recommended approach for production HPC environments. + +Overview +-------- + +The scheduler automatically: + +- Starts DataCrumbs server when job begins (prolog) +- Stops DataCrumbs server when job completes (epilog) +- Isolates tracing to specific jobs +- No user intervention required + +Supported Schedulers +-------------------- + +* **Flux**: Full support with systemd integration +* **Slurm**: Supported via prolog/epilog scripts + +Flux Integration +================ + +DataCrumbs integrates with Flux resource manager using systemd services and prolog/epilog scripts. + +For complete Flux deployment instructions, see :doc:`flux_integration`. + +Quick Flux Setup +---------------- + +**Step 1: Install systemd service** + +.. code-block:: bash + + # Copy service file to all nodes + for node in node{1..10}; do + sudo scp $PREFIX/etc/datacrumbs/systemd/datacrumbs@.service \ + $node:/etc/systemd/system/ + done + + # Reload systemd + sudo systemctl daemon-reload + +**Step 2: Install prolog/epilog scripts** + +.. code-block:: bash + + # On all Flux nodes + sudo ln -s $PREFIX/sbin/datacrumbs_service_run.sh \ + /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + + sudo ln -s $PREFIX/sbin/datacrumbs_service_stop.sh \ + /etc/flux/system/epilog.d/datacrumbs_service_stop.sh + + # Make executable + sudo chmod u+x /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + sudo chmod u+x /etc/flux/system/epilog.d/datacrumbs_service_stop.sh + +**Step 3: Configure Flux job manager** + +Edit ``/etc/flux/system/conf.d/job-manager.toml``: + +.. code-block:: toml + + [job-manager] + plugins = [ + { load = "prolog-job-manager.so" }, + { load = "epilog.so" } + ] + +**Step 4: Install Flux CLI Plugin** + +The Flux CLI plugin can be installed system-wide or per-user. + +**Option A: System-wide installation (recommended for HPC)** + +.. code-block:: bash + + # Create flux plugins directory if it doesn't exist + sudo mkdir -p /etc/flux/cli/plugins + + # Copy the DataCrumbs plugin + sudo cp $PREFIX/etc/datacrumbs/flux/cli/plugins/datacrumbs.py \ + /etc/flux/cli/plugins/ + + # Set permissions for all users + sudo chmod 644 /etc/flux/cli/plugins/datacrumbs.py + +**Option B: Per-user installation** + +.. code-block:: bash + + # Create user plugin directory + mkdir -p ~/plugins + + # Copy the DataCrumbs plugin + cp $PREFIX/etc/datacrumbs/flux/cli/plugins/datacrumbs.py ~/plugins/ + + # Set environment variable (add to ~/.bashrc for persistence) + export FLUX_CLI_PLUGINPATH=~/plugins/ + + # Use with flux commands + flux run --datacrumbs-enable ./my-application + +**Step 5: Restart Flux** + +.. code-block:: bash + + # On broker-0 node + sudo /admin/scripts/flux_reconfig.sh + flux config reload + +Multi-Node Deployment +--------------------- + +Deploy to all nodes in a cluster: + +.. code-block:: bash + + #!/bin/bash + # deploy_datacrumbs.sh + + NODES="node{1..10}" + DATACRUMBS_INSTALL=/opt/datacrumbs + + for node in $(eval echo $NODES); do + echo "Deploying to $node..." + + # Install systemd service + sudo scp ${DATACRUMBS_INSTALL}/etc/datacrumbs/systemd/datacrumbs@.service \ + ${node}:/etc/systemd/system/ + + # Install prolog/epilog via symbolic links + sudo ssh $node << 'EOF' + # Remove old links + rm -f /etc/flux/system/prolog-job-manager.d/datacrumbs* + rm -f /etc/flux/system/epilog.d/datacrumbs* + + # Create new links + ln -s ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh \ + /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + ln -s ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh \ + /etc/flux/system/epilog.d/datacrumbs_service_stop.sh + + # Set permissions + chmod u+x /etc/flux/system/prolog-job-manager.d/datacrumbs* + chmod u+x /etc/flux/system/epilog.d/datacrumbs* + + # Reload systemd + systemctl daemon-reload + EOF + done + + # Install Flux CLI plugin on broker node (system-wide) + echo "Installing Flux CLI plugin" + sudo mkdir -p /etc/flux/cli/plugins + sudo cp ${DATACRUMBS_INSTALL}/etc/datacrumbs/flux/cli/plugins/datacrumbs.py \ + /etc/flux/cli/plugins/ + sudo chmod 644 /etc/flux/cli/plugins/datacrumbs.py + + # Alternative: Install per-user (optional) + # mkdir -p ~/plugins + # cp ${DATACRUMBS_INSTALL}/etc/datacrumbs/flux/cli/plugins/datacrumbs.py ~/plugins/ + # echo "export FLUX_CLI_PLUGINPATH=~/plugins/" >> ~/.bashrc + +User Workflow with Flux +------------------------ + +Users submit jobs normally with optional DataCrumbs flags: + +.. code-block:: bash + + # Enable DataCrumbs for job + flux run -N 4 --datacrumbs-enable ./my-application + + # With composable configuration + flux run -N 4 \ + --datacrumbs-enable \ + --datacrumbs-composite=posix_only \ + ./my-application + +If using per-user plugin installation: + +.. code-block:: bash + + # Set plugin path (or add to ~/.bashrc) + export FLUX_CLI_PLUGINPATH=~/plugins/ + + # Then use flux commands normally + flux run -N 4 --datacrumbs-enable ./my-application + +No explicit DataCrumbs commands needed - prolog/epilog handle everything. + + + +Slurm Integration +================= + +DataCrumbs can be integrated with Slurm using similar prolog/epilog mechanisms. + +Slurm Configuration +------------------- + +**Step 1: Create prolog script** + +Create ``/etc/slurm/prolog.d/datacrumbs.sh``: + +.. code-block:: bash + + #!/bin/bash + # /etc/slurm/prolog.d/datacrumbs.sh + + # Load DataCrumbs environment + export DATACRUMBS_INSTALL=/opt/datacrumbs + source ${DATACRUMBS_INSTALL}/bin/datacrumbs_setup + + # Start DataCrumbs server for job user + if [[ "${SLURM_JOB_USER}" != "" ]]; then + ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh \ + --user ${SLURM_JOB_USER} \ + --jobid ${SLURM_JOB_ID} + fi + +**Step 2: Create epilog script** + +Create ``/etc/slurm/epilog.d/datacrumbs.sh``: + +.. code-block:: bash + + #!/bin/bash + # /etc/slurm/epilog.d/datacrumbs.sh + + export DATACRUMBS_INSTALL=/opt/datacrumbs + source ${DATACRUMBS_INSTALL}/bin/datacrumbs_setup + + # Stop DataCrumbs server for job user + if [[ "${SLURM_JOB_USER}" != "" ]]; then + ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh \ + --user ${SLURM_JOB_USER} \ + --jobid ${SLURM_JOB_ID} + fi + +**Step 3: Configure Slurm** + +Edit ``/etc/slurm/slurm.conf``: + +.. code-block:: ini + + # Enable prolog/epilog + Prolog=/etc/slurm/prolog.d/datacrumbs.sh + Epilog=/etc/slurm/epilog.d/datacrumbs.sh + + # Set timeouts + PrologFlags=Alloc + EpilogMsgTime=30 + +**Step 4: Set permissions and restart** + +.. code-block:: bash + + # Set script permissions + sudo chmod 755 /etc/slurm/prolog.d/datacrumbs.sh + sudo chmod 755 /etc/slurm/epilog.d/datacrumbs.sh + + # Restart Slurm + sudo systemctl restart slurmctld + sudo systemctl restart slurmd + +User Workflow with Slurm +------------------------- + +Users submit jobs normally: + +.. code-block:: bash + + # Submit batch job + sbatch --nodes=4 my-job.sh + + # Interactive job + salloc --nodes=4 + srun ./my-application + +DataCrumbs automatically traces the application. + +Verification and Testing +======================== + +After deployment, verify DataCrumbs is working correctly. + +Test Sudoers Access +------------------- + +.. code-block:: bash + + # As regular user + sudo datacrumbs_server_run.sh --user $USER --verbose + + # Check server is running + ps aux | grep datacrumbs + + # Stop server + sudo datacrumbs_server_stop.sh --user $USER --verbose + +Test Scheduler Integration +--------------------------- + +.. code-block:: bash + + # Submit simple test job (Flux) + flux run -N 1 hostname + + # Check for DataCrumbs traces + ls -la /tmp/datacrumbs_${USER}*/traces/ + + # Submit with explicit enable (Slurm) + sbatch test-job.sh + +Monitor Deployment +------------------ + +Check systemd service status: + +.. code-block:: bash + + # View service status + sudo systemctl status datacrumbs@${USER} + + # View service logs + sudo journalctl -u datacrumbs@${USER} -f + +Check prolog/epilog execution: + +.. code-block:: bash + + # Flux prolog/epilog logs + sudo journalctl -u flux* --no-pager | grep datacrumbs + + # Slurm logs + sudo tail -f /var/log/slurm/slurmctld.log | grep -i prolog + +Troubleshooting Deployment +=========================== + +Common Issues +------------- + +**"Permission denied" when starting server** + +.. code-block:: bash + + # Check sudoers configuration + sudo visudo -c -f /etc/sudoers.d/datacrumbs + + # Verify user is in allowed group + groups $USER + +**Prolog/epilog scripts not executing** + +.. code-block:: bash + + # Flux: Check plugin configuration + flux config get job-manager.plugins + + # Slurm: Check slurm.conf + grep -i prolog /etc/slurm/slurm.conf + + # Verify script permissions + ls -la /etc/flux/system/prolog-job-manager.d/ + ls -la /etc/slurm/prolog.d/ + +**Systemd service fails to start** + +.. code-block:: bash + + # Check service status + sudo systemctl status datacrumbs@${USER} + + # View detailed logs + sudo journalctl -xe -u datacrumbs@${USER} + + # Verify service file + sudo systemctl cat datacrumbs@.service + +**Traces not being generated** + +.. code-block:: bash + + # Check trace directory permissions + ls -la /tmp/datacrumbs_${USER}*/ + + # Verify DataCrumbs binary has correct capabilities + getcap $PREFIX/bin/datacrumbs + + # Should show: cap_bpf,cap_perfmon+ep + +Cleanup and Uninstallation +=========================== + +Remove sudoers configuration: + +.. code-block:: bash + + sudo rm /etc/sudoers.d/datacrumbs + +Remove Flux integration: + +.. code-block:: bash + + # On all nodes + sudo rm /etc/flux/system/prolog-job-manager.d/datacrumbs* + sudo rm /etc/flux/system/epilog.d/datacrumbs* + sudo rm /etc/systemd/system/datacrumbs@.service + sudo systemctl daemon-reload + +Remove Slurm integration: + +.. code-block:: bash + + sudo rm /etc/slurm/prolog.d/datacrumbs.sh + sudo rm /etc/slurm/epilog.d/datacrumbs.sh + # Edit /etc/slurm/slurm.conf to remove Prolog/Epilog lines + sudo systemctl restart slurmctld diff --git a/docs/ebpf_background.rst b/docs/ebpf_background.rst new file mode 100755 index 00000000..50167bdd --- /dev/null +++ b/docs/ebpf_background.rst @@ -0,0 +1,166 @@ +=================== +eBPF Background +=================== + +What is eBPF? +============= + +eBPF (extended Berkeley Packet Filter) is a revolutionary technology that allows running sandboxed programs in the Linux kernel without changing kernel source code or loading kernel modules. Originally designed for network packet filtering, eBPF has evolved into a general-purpose execution engine that can be used for a wide variety of use cases. + +How eBPF Works +============== + +eBPF programs are written in a restricted C subset, compiled to eBPF bytecode, and loaded into the kernel. The kernel verifies the program for safety before executing it, ensuring: + +* **Memory Safety**: Programs cannot access arbitrary memory locations +* **Termination**: Programs must terminate (no infinite loops) +* **Bounded Execution**: Programs have limited instruction count and stack size + +Key Components +-------------- + +1. **eBPF Programs**: Small programs that execute in kernel space +2. **eBPF Maps**: Key-value data structures for sharing data between kernel and user space +3. **eBPF Verifier**: Ensures program safety before execution +4. **BPF Type Format (BTF)**: Provides type information for eBPF programs +5. **Helper Functions**: Kernel-provided functions that eBPF programs can call + +eBPF in DataCrumbs +================== + +DataCrumbs leverages eBPF technology to provide low-overhead I/O tracing capabilities. The tool uses several eBPF features: + +Kprobes and Uprobes +------------------- + +* **Kprobes**: Attach eBPF programs to kernel functions for tracing system calls and kernel-level I/O operations +* **Uprobes**: Attach eBPF programs to user-space functions in libraries (libc, libhdf5, etc.) + +These probes allow DataCrumbs to intercept function calls without modifying the application or kernel code. + +Ring Buffers +------------ + +DataCrumbs uses eBPF ring buffers (introduced in Linux 5.8) for efficient data transfer from kernel to user space. Ring buffers provide: + +* High-throughput event delivery +* Low latency +* Memory efficiency +* Multi-producer, single-consumer semantics + +Maps for State Management +-------------------------- + +eBPF maps store: + +* Process tracking information +* File descriptor mappings +* Thread-local data +* Aggregated statistics + +Advantages of eBPF for I/O Tracing +=================================== + +Minimal Overhead +---------------- + +eBPF programs execute directly in the kernel with JIT compilation, resulting in near-native performance. DataCrumbs typically adds less than 5% overhead to application execution. + +Safety and Stability +-------------------- + +The eBPF verifier ensures that programs cannot crash the kernel or compromise system security. This makes DataCrumbs safe to use in production environments. + +Dynamic Instrumentation +------------------------ + +eBPF programs can be loaded and unloaded dynamically without rebooting the system or restarting applications. This allows DataCrumbs to: + +* Start and stop tracing on demand +* Update probe configurations at runtime +* Trace running applications without interruption + +No Code Modification +-------------------- + +Applications do not need to be recompiled or modified to be traced by DataCrumbs. The tool can trace: + +* Binary-only applications +* Third-party libraries +* System calls +* Custom functions + +eBPF Limitations +================ + +Kernel Version Requirements +--------------------------- + +eBPF features have evolved over time, with different capabilities available in different kernel versions: + +* **Linux 4.18**: Basic eBPF support with compatibility layers +* **Linux 5.1+**: Modern eBPF features +* **Linux 5.8+**: Full modern eBPF features with BPF ring buffers (recommended) + +Stack Size Limits +----------------- + +eBPF programs have a limited stack size (512 bytes). DataCrumbs works around this by: + +* Using per-CPU maps for temporary storage +* Minimizing stack variable usage +* Splitting complex operations across multiple helper functions + +Verifier Restrictions +--------------------- + +The eBPF verifier imposes restrictions on: + +* Loop complexity (bounded loops only in newer kernels) +* Function calls (limited call depth) +* Memory access patterns (must be verified safe) + +DataCrumbs handles these restrictions through careful program design and code generation. + +eBPF Tools and Ecosystem +========================= + +libbpf +------ + +DataCrumbs uses **libbpf** (version 1.5.0+) as the primary library for: + +* Loading eBPF programs into the kernel +* Managing eBPF maps +* Attaching probes to functions +* Handling BTF information + +bpftool +------- + +**bpftool** (version 7.5.0+) is used during the build process for: + +* Generating vmlinux.h (kernel type definitions) +* Creating BPF object files +* Generating skeleton headers for C programs +* Inspecting loaded eBPF programs (debugging) + +BCC vs libbpf +------------- + +DataCrumbs uses the **libbpf** approach rather than BCC (BPF Compiler Collection) because: + +* **Portability**: libbpf-based programs are compiled once and run anywhere +* **Performance**: No runtime compilation overhead +* **Dependencies**: Smaller dependency footprint +* **Distribution**: Easier to package and deploy + +Further Reading +=============== + +For more information about eBPF: + +- `eBPF.io `_ - Official eBPF documentation +- `libbpf Documentation `_ - libbpf API reference +- `Kernel Documentation `_ - Linux kernel eBPF docs +- `BPF Performance Tools `_ - Book by Brendan Gregg diff --git a/docs/example/hdf5-callgraph-compare-example.png b/docs/example/hdf5-callgraph-compare-example.png new file mode 100644 index 00000000..aca75072 Binary files /dev/null and b/docs/example/hdf5-callgraph-compare-example.png differ diff --git a/docs/example/hdf5-callgraph-example.png b/docs/example/hdf5-callgraph-example.png new file mode 100644 index 00000000..fc181524 Binary files /dev/null and b/docs/example/hdf5-callgraph-example.png differ diff --git a/docs/example/hdf5-callgraph-example.txt b/docs/example/hdf5-callgraph-example.txt new file mode 100644 index 00000000..786e2bf6 --- /dev/null +++ b/docs/example/hdf5-callgraph-example.txt @@ -0,0 +1,260 @@ +Found 8 instance(s) of 'H5Dwrite_async'. + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #1) +Total time for this instance: 25765 +============================================================ +└── H5Dwrite_async (dur: 25765 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 25734 [inclusive], depth: 1) [99.88% of parent] + └── H5VL_dataset_write_direct (dur: 25710 [inclusive], depth: 2) [99.91% of parent] + └── H5VL__dataset_write (dur: 25692 [inclusive], depth: 3) [99.93% of parent] + └── H5VL__native_dataset_write (dur: 25677 [inclusive], depth: 4) [99.94% of parent] + └── H5D__write (dur: 25654 [inclusive], depth: 5) [99.91% of parent] + ├── H5D__typeinfo_init (dur: 42 [inclusive], depth: 6) [0.16% of parent] + │ └── H5T_path_find (dur: 19 [inclusive], depth: 7) [45.24% of parent] + ├── H5D__chunk_io_init (dur: 127 [inclusive], depth: 6) [0.50% of parent] + │ └── H5D__chunk_io_init_selections (dur: 100 [inclusive], depth: 7) [78.74% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 54 [inclusive], depth: 8) [54.00% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 26 [inclusive], depth: 8) [26.00% of parent] + ├── H5D__ioinfo_adjust (dur: 35 [inclusive], depth: 6) [0.14% of parent] + ├── H5D__chunk_mdio_init (dur: 112 [inclusive], depth: 6) [0.44% of parent] + │ └── H5D__chunk_lookup (dur: 14 [inclusive], depth: 7) [12.50% of parent] + └── H5D__collective_write (dur: 25245 [inclusive], depth: 6) [98.41% of parent] + └── H5D__piece_io (dur: 25231 [inclusive], depth: 7) [99.94% of parent] + ├── H5F_mpi_get_rank (dur: 19 [inclusive], depth: 8) [0.08% of parent] + ├── H5F_mpi_get_size (dur: 19 [inclusive], depth: 8) [0.08% of parent] + └── H5D__link_piece_collective_io (dur: 25167 [inclusive], depth: 8) [99.75% of parent] + └── H5D__final_collective_io (dur: 25044 [inclusive], depth: 9) [99.51% of parent] + └── H5D__mpio_select_write (dur: 25029 [inclusive], depth: 10) [99.94% of parent] + └── H5F_shared_block_write (dur: 25015 [inclusive], depth: 11) [99.94% of parent] + └── H5F__accum_write (dur: 25001 [inclusive], depth: 12) [99.94% of parent] + └── H5FD_write (dur: 24987 [inclusive], depth: 13) [99.94% of parent] + └── H5FD__mpio_write (dur: 24963 [inclusive], depth: 14) [99.90% of parent] +============================================================ + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #2) +Total time for this instance: 24068 +============================================================ +└── H5Dwrite_async (dur: 24068 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 24032 [inclusive], depth: 1) [99.85% of parent] + └── H5VL_dataset_write_direct (dur: 24014 [inclusive], depth: 2) [99.93% of parent] + └── H5VL__dataset_write (dur: 23997 [inclusive], depth: 3) [99.93% of parent] + └── H5VL__native_dataset_write (dur: 23984 [inclusive], depth: 4) [99.95% of parent] + └── H5D__write (dur: 23967 [inclusive], depth: 5) [99.93% of parent] + ├── H5D__typeinfo_init (dur: 38 [inclusive], depth: 6) [0.16% of parent] + │ └── H5T_path_find (dur: 20 [inclusive], depth: 7) [52.63% of parent] + ├── H5D__chunk_io_init (dur: 105 [inclusive], depth: 6) [0.44% of parent] + │ └── H5D__chunk_io_init_selections (dur: 81 [inclusive], depth: 7) [77.14% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 41 [inclusive], depth: 8) [50.62% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 21 [inclusive], depth: 8) [25.93% of parent] + ├── H5D__ioinfo_adjust (dur: 27 [inclusive], depth: 6) [0.11% of parent] + ├── H5D__chunk_mdio_init (dur: 109 [inclusive], depth: 6) [0.45% of parent] + │ └── H5D__chunk_lookup (dur: 18 [inclusive], depth: 7) [16.51% of parent] + └── H5D__collective_write (dur: 23614 [inclusive], depth: 6) [98.53% of parent] + └── H5D__piece_io (dur: 23602 [inclusive], depth: 7) [99.95% of parent] + ├── H5F_mpi_get_rank (dur: 19 [inclusive], depth: 8) [0.08% of parent] + ├── H5F_mpi_get_size (dur: 17 [inclusive], depth: 8) [0.07% of parent] + └── H5D__link_piece_collective_io (dur: 23544 [inclusive], depth: 8) [99.75% of parent] + └── H5D__final_collective_io (dur: 23455 [inclusive], depth: 9) [99.62% of parent] + └── H5D__mpio_select_write (dur: 23442 [inclusive], depth: 10) [99.94% of parent] + └── H5F_shared_block_write (dur: 23428 [inclusive], depth: 11) [99.94% of parent] + └── H5F__accum_write (dur: 23416 [inclusive], depth: 12) [99.95% of parent] + └── H5FD_write (dur: 23404 [inclusive], depth: 13) [99.95% of parent] + └── H5FD__mpio_write (dur: 23381 [inclusive], depth: 14) [99.90% of parent] +============================================================ + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #3) +Total time for this instance: 23695 +============================================================ +└── H5Dwrite_async (dur: 23695 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 23664 [inclusive], depth: 1) [99.87% of parent] + └── H5VL_dataset_write_direct (dur: 23647 [inclusive], depth: 2) [99.93% of parent] + └── H5VL__dataset_write (dur: 23632 [inclusive], depth: 3) [99.94% of parent] + └── H5VL__native_dataset_write (dur: 23619 [inclusive], depth: 4) [99.94% of parent] + └── H5D__write (dur: 23603 [inclusive], depth: 5) [99.93% of parent] + ├── H5D__typeinfo_init (dur: 36 [inclusive], depth: 6) [0.15% of parent] + │ └── H5T_path_find (dur: 20 [inclusive], depth: 7) [55.56% of parent] + ├── H5D__chunk_io_init (dur: 103 [inclusive], depth: 6) [0.44% of parent] + │ └── H5D__chunk_io_init_selections (dur: 80 [inclusive], depth: 7) [77.67% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 41 [inclusive], depth: 8) [51.25% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 19 [inclusive], depth: 8) [23.75% of parent] + ├── H5D__ioinfo_adjust (dur: 27 [inclusive], depth: 6) [0.11% of parent] + ├── H5D__chunk_mdio_init (dur: 113 [inclusive], depth: 6) [0.48% of parent] + │ └── H5D__chunk_lookup (dur: 21 [inclusive], depth: 7) [18.58% of parent] + └── H5D__collective_write (dur: 23252 [inclusive], depth: 6) [98.51% of parent] + └── H5D__piece_io (dur: 23240 [inclusive], depth: 7) [99.95% of parent] + ├── H5F_mpi_get_rank (dur: 19 [inclusive], depth: 8) [0.08% of parent] + ├── H5F_mpi_get_size (dur: 18 [inclusive], depth: 8) [0.08% of parent] + └── H5D__link_piece_collective_io (dur: 23184 [inclusive], depth: 8) [99.76% of parent] + └── H5D__final_collective_io (dur: 23086 [inclusive], depth: 9) [99.58% of parent] + └── H5D__mpio_select_write (dur: 23074 [inclusive], depth: 10) [99.95% of parent] + └── H5F_shared_block_write (dur: 23062 [inclusive], depth: 11) [99.95% of parent] + └── H5F__accum_write (dur: 23048 [inclusive], depth: 12) [99.94% of parent] + └── H5FD_write (dur: 23035 [inclusive], depth: 13) [99.94% of parent] + └── H5FD__mpio_write (dur: 23014 [inclusive], depth: 14) [99.91% of parent] +============================================================ + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #4) +Total time for this instance: 24066 +============================================================ +└── H5Dwrite_async (dur: 24066 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 24037 [inclusive], depth: 1) [99.88% of parent] + └── H5VL_dataset_write_direct (dur: 24021 [inclusive], depth: 2) [99.93% of parent] + └── H5VL__dataset_write (dur: 24008 [inclusive], depth: 3) [99.95% of parent] + └── H5VL__native_dataset_write (dur: 23995 [inclusive], depth: 4) [99.95% of parent] + └── H5D__write (dur: 23980 [inclusive], depth: 5) [99.94% of parent] + ├── H5D__typeinfo_init (dur: 33 [inclusive], depth: 6) [0.14% of parent] + │ └── H5T_path_find (dur: 18 [inclusive], depth: 7) [54.55% of parent] + ├── H5D__chunk_io_init (dur: 92 [inclusive], depth: 6) [0.38% of parent] + │ └── H5D__chunk_io_init_selections (dur: 69 [inclusive], depth: 7) [75.00% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 34 [inclusive], depth: 8) [49.28% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 18 [inclusive], depth: 8) [26.09% of parent] + ├── H5D__ioinfo_adjust (dur: 24 [inclusive], depth: 6) [0.10% of parent] + ├── H5D__chunk_mdio_init (dur: 109 [inclusive], depth: 6) [0.45% of parent] + │ └── H5D__chunk_lookup (dur: 17 [inclusive], depth: 7) [15.60% of parent] + └── H5D__collective_write (dur: 23658 [inclusive], depth: 6) [98.66% of parent] + └── H5D__piece_io (dur: 23647 [inclusive], depth: 7) [99.95% of parent] + ├── H5F_mpi_get_rank (dur: 16 [inclusive], depth: 8) [0.07% of parent] + ├── H5F_mpi_get_size (dur: 15 [inclusive], depth: 8) [0.06% of parent] + └── H5D__link_piece_collective_io (dur: 23595 [inclusive], depth: 8) [99.78% of parent] + └── H5D__final_collective_io (dur: 23506 [inclusive], depth: 9) [99.62% of parent] + └── H5D__mpio_select_write (dur: 23495 [inclusive], depth: 10) [99.95% of parent] + └── H5F_shared_block_write (dur: 23483 [inclusive], depth: 11) [99.95% of parent] + └── H5F__accum_write (dur: 23470 [inclusive], depth: 12) [99.94% of parent] + └── H5FD_write (dur: 23458 [inclusive], depth: 13) [99.95% of parent] + └── H5FD__mpio_write (dur: 23439 [inclusive], depth: 14) [99.92% of parent] +============================================================ + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #5) +Total time for this instance: 24109 +============================================================ +└── H5Dwrite_async (dur: 24109 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 24079 [inclusive], depth: 1) [99.88% of parent] + └── H5VL_dataset_write_direct (dur: 24063 [inclusive], depth: 2) [99.93% of parent] + └── H5VL__dataset_write (dur: 24048 [inclusive], depth: 3) [99.94% of parent] + └── H5VL__native_dataset_write (dur: 24035 [inclusive], depth: 4) [99.95% of parent] + └── H5D__write (dur: 24019 [inclusive], depth: 5) [99.93% of parent] + ├── H5D__typeinfo_init (dur: 36 [inclusive], depth: 6) [0.15% of parent] + │ └── H5T_path_find (dur: 19 [inclusive], depth: 7) [52.78% of parent] + ├── H5D__chunk_io_init (dur: 93 [inclusive], depth: 6) [0.39% of parent] + │ └── H5D__chunk_io_init_selections (dur: 72 [inclusive], depth: 7) [77.42% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 35 [inclusive], depth: 8) [48.61% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 19 [inclusive], depth: 8) [26.39% of parent] + ├── H5D__ioinfo_adjust (dur: 25 [inclusive], depth: 6) [0.10% of parent] + ├── H5D__chunk_mdio_init (dur: 106 [inclusive], depth: 6) [0.44% of parent] + │ └── H5D__chunk_lookup (dur: 14 [inclusive], depth: 7) [13.21% of parent] + └── H5D__collective_write (dur: 23689 [inclusive], depth: 6) [98.63% of parent] + └── H5D__piece_io (dur: 23678 [inclusive], depth: 7) [99.95% of parent] + ├── H5F_mpi_get_rank (dur: 18 [inclusive], depth: 8) [0.08% of parent] + ├── H5F_mpi_get_size (dur: 16 [inclusive], depth: 8) [0.07% of parent] + └── H5D__link_piece_collective_io (dur: 23621 [inclusive], depth: 8) [99.76% of parent] + └── H5D__final_collective_io (dur: 23534 [inclusive], depth: 9) [99.63% of parent] + └── H5D__mpio_select_write (dur: 23521 [inclusive], depth: 10) [99.94% of parent] + └── H5F_shared_block_write (dur: 23509 [inclusive], depth: 11) [99.95% of parent] + └── H5F__accum_write (dur: 23496 [inclusive], depth: 12) [99.94% of parent] + └── H5FD_write (dur: 23484 [inclusive], depth: 13) [99.95% of parent] + └── H5FD__mpio_write (dur: 23464 [inclusive], depth: 14) [99.91% of parent] +============================================================ + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #6) +Total time for this instance: 24693 +============================================================ +└── H5Dwrite_async (dur: 24693 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 24661 [inclusive], depth: 1) [99.87% of parent] + └── H5VL_dataset_write_direct (dur: 24644 [inclusive], depth: 2) [99.93% of parent] + └── H5VL__dataset_write (dur: 24629 [inclusive], depth: 3) [99.94% of parent] + └── H5VL__native_dataset_write (dur: 24616 [inclusive], depth: 4) [99.95% of parent] + └── H5D__write (dur: 24600 [inclusive], depth: 5) [99.94% of parent] + ├── H5D__typeinfo_init (dur: 36 [inclusive], depth: 6) [0.15% of parent] + │ └── H5T_path_find (dur: 19 [inclusive], depth: 7) [52.78% of parent] + ├── H5D__chunk_io_init (dur: 101 [inclusive], depth: 6) [0.41% of parent] + │ └── H5D__chunk_io_init_selections (dur: 78 [inclusive], depth: 7) [77.23% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 38 [inclusive], depth: 8) [48.72% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 22 [inclusive], depth: 8) [28.21% of parent] + ├── H5D__ioinfo_adjust (dur: 27 [inclusive], depth: 6) [0.11% of parent] + ├── H5D__chunk_mdio_init (dur: 110 [inclusive], depth: 6) [0.45% of parent] + │ └── H5D__chunk_lookup (dur: 18 [inclusive], depth: 7) [16.36% of parent] + └── H5D__collective_write (dur: 24256 [inclusive], depth: 6) [98.60% of parent] + └── H5D__piece_io (dur: 24244 [inclusive], depth: 7) [99.95% of parent] + ├── H5F_mpi_get_rank (dur: 19 [inclusive], depth: 8) [0.08% of parent] + ├── H5F_mpi_get_size (dur: 18 [inclusive], depth: 8) [0.07% of parent] + └── H5D__link_piece_collective_io (dur: 24187 [inclusive], depth: 8) [99.76% of parent] + └── H5D__final_collective_io (dur: 24089 [inclusive], depth: 9) [99.59% of parent] + └── H5D__mpio_select_write (dur: 24076 [inclusive], depth: 10) [99.95% of parent] + └── H5F_shared_block_write (dur: 24064 [inclusive], depth: 11) [99.95% of parent] + └── H5F__accum_write (dur: 24049 [inclusive], depth: 12) [99.94% of parent] + └── H5FD_write (dur: 24037 [inclusive], depth: 13) [99.95% of parent] + └── H5FD__mpio_write (dur: 24016 [inclusive], depth: 14) [99.91% of parent] +============================================================ + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #7) +Total time for this instance: 24902 +============================================================ +└── H5Dwrite_async (dur: 24902 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 24869 [inclusive], depth: 1) [99.87% of parent] + └── H5VL_dataset_write_direct (dur: 24852 [inclusive], depth: 2) [99.93% of parent] + └── H5VL__dataset_write (dur: 24837 [inclusive], depth: 3) [99.94% of parent] + └── H5VL__native_dataset_write (dur: 24824 [inclusive], depth: 4) [99.95% of parent] + └── H5D__write (dur: 24808 [inclusive], depth: 5) [99.94% of parent] + ├── H5D__typeinfo_init (dur: 37 [inclusive], depth: 6) [0.15% of parent] + │ └── H5T_path_find (dur: 19 [inclusive], depth: 7) [51.35% of parent] + ├── H5D__chunk_io_init (dur: 100 [inclusive], depth: 6) [0.40% of parent] + │ └── H5D__chunk_io_init_selections (dur: 76 [inclusive], depth: 7) [76.00% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 37 [inclusive], depth: 8) [48.68% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 20 [inclusive], depth: 8) [26.32% of parent] + ├── H5D__ioinfo_adjust (dur: 26 [inclusive], depth: 6) [0.10% of parent] + ├── H5D__chunk_mdio_init (dur: 110 [inclusive], depth: 6) [0.44% of parent] + │ └── H5D__chunk_lookup (dur: 18 [inclusive], depth: 7) [16.36% of parent] + └── H5D__collective_write (dur: 24466 [inclusive], depth: 6) [98.62% of parent] + └── H5D__piece_io (dur: 24455 [inclusive], depth: 7) [99.96% of parent] + ├── H5F_mpi_get_rank (dur: 19 [inclusive], depth: 8) [0.08% of parent] + ├── H5F_mpi_get_size (dur: 17 [inclusive], depth: 8) [0.07% of parent] + └── H5D__link_piece_collective_io (dur: 24399 [inclusive], depth: 8) [99.77% of parent] + └── H5D__final_collective_io (dur: 24309 [inclusive], depth: 9) [99.63% of parent] + └── H5D__mpio_select_write (dur: 24297 [inclusive], depth: 10) [99.95% of parent] + └── H5F_shared_block_write (dur: 24284 [inclusive], depth: 11) [99.95% of parent] + └── H5F__accum_write (dur: 24271 [inclusive], depth: 12) [99.95% of parent] + └── H5FD_write (dur: 24258 [inclusive], depth: 13) [99.95% of parent] + └── H5FD__mpio_write (dur: 24237 [inclusive], depth: 14) [99.91% of parent] +============================================================ + +============================================================ +Call graph for 'H5Dwrite_async' (Instance #8) +Total time for this instance: 23961 +============================================================ +└── H5Dwrite_async (dur: 23961 [inclusive], depth: 0) [100.00% of self] + └── H5D__write_api_common (dur: 23932 [inclusive], depth: 1) [99.88% of parent] + └── H5VL_dataset_write_direct (dur: 23916 [inclusive], depth: 2) [99.93% of parent] + └── H5VL__dataset_write (dur: 23902 [inclusive], depth: 3) [99.94% of parent] + └── H5VL__native_dataset_write (dur: 23890 [inclusive], depth: 4) [99.95% of parent] + └── H5D__write (dur: 23876 [inclusive], depth: 5) [99.94% of parent] + ├── H5D__typeinfo_init (dur: 35 [inclusive], depth: 6) [0.15% of parent] + │ └── H5T_path_find (dur: 18 [inclusive], depth: 7) [51.43% of parent] + ├── H5D__chunk_io_init (dur: 96 [inclusive], depth: 6) [0.40% of parent] + │ └── H5D__chunk_io_init_selections (dur: 74 [inclusive], depth: 7) [77.08% of parent] + │ ├── H5D__create_piece_file_map_hyper (dur: 34 [inclusive], depth: 8) [45.95% of parent] + │ └── H5D__create_piece_mem_map_hyper (dur: 22 [inclusive], depth: 8) [29.73% of parent] + ├── H5D__ioinfo_adjust (dur: 26 [inclusive], depth: 6) [0.11% of parent] + ├── H5D__chunk_mdio_init (dur: 104 [inclusive], depth: 6) [0.44% of parent] + │ └── H5D__chunk_lookup (dur: 14 [inclusive], depth: 7) [13.46% of parent] + └── H5D__collective_write (dur: 23548 [inclusive], depth: 6) [98.63% of parent] + └── H5D__piece_io (dur: 23537 [inclusive], depth: 7) [99.95% of parent] + ├── H5F_mpi_get_rank (dur: 18 [inclusive], depth: 8) [0.08% of parent] + ├── H5F_mpi_get_size (dur: 16 [inclusive], depth: 8) [0.07% of parent] + └── H5D__link_piece_collective_io (dur: 23482 [inclusive], depth: 8) [99.77% of parent] + └── H5D__final_collective_io (dur: 23396 [inclusive], depth: 9) [99.63% of parent] + └── H5D__mpio_select_write (dur: 23384 [inclusive], depth: 10) [99.95% of parent] + └── H5F_shared_block_write (dur: 23371 [inclusive], depth: 11) [99.94% of parent] + └── H5F__accum_write (dur: 23359 [inclusive], depth: 12) [99.95% of parent] + └── H5FD_write (dur: 23347 [inclusive], depth: 13) [99.95% of parent] + └── H5FD__mpio_write (dur: 23327 [inclusive], depth: 14) [99.91% of parent] +============================================================ + + +completed. diff --git a/docs/flux_integration.rst b/docs/flux_integration.rst new file mode 100755 index 00000000..d77a1b80 --- /dev/null +++ b/docs/flux_integration.rst @@ -0,0 +1,670 @@ +============================ +Flux Scheduler Integration +============================ + +DataCrumbs provides deep integration with the Flux resource manager for automated tracing in HPC environments. This integration enables transparent tracing of batch jobs through Flux job manager prologs/epilogs and systemd service management. + +Overview +======== + +The Flux integration consists of three components: + +1. **Systemd Service**: Manages DataCrumbs server lifecycle +2. **Prolog Script**: Starts DataCrumbs before job execution +3. **Epilog Script**: Stops DataCrumbs after job completion +4. **Flux Plugin**: Provides command-line options for users + +Benefits +-------- + +* **Automatic Tracing**: Jobs are traced transparently without manual server management +* **Per-Job Isolation**: Each job gets its own tracing session +* **Custom Configurations**: Users can specify composable configurations +* **No Code Changes**: Applications remain unmodified +* **Centralized Management**: Administrators control tracing infrastructure + +Architecture +============ + +When a Flux job is submitted with ``--datacrumbs-enable``: + +1. **Prolog Phase** (before job starts): + + - ``datacrumbs_service_run.sh`` is executed + - Systemd service ``datacrumbs@`` is created and started + - DataCrumbs server begins collecting events + - Job waits for server to be ready + +2. **Execution Phase**: + + - Application runs normally with tracing active + - eBPF probes capture I/O events + - Events are written to trace files + +3. **Epilog Phase** (after job completes): + + - ``datacrumbs_service_stop.sh`` is executed + - Systemd service is stopped and disabled + - Server flushes remaining events + - Trace files are finalized + +Installation Steps +================== + +.. note:: + Installation requires root/administrator privileges on all compute nodes. + +Step 1: Enable Flux Prolog/Epilog +---------------------------------- + +Edit the Flux job manager configuration file on the broker node: + +.. code-block:: bash + + # On Flux broker-0 node + sudo vi /etc/flux/system/conf.d/job-manager.toml + +Add or ensure the following configuration: + +.. code-block:: toml + + [job-manager] + + # Enable prolog execution + prolog.command = [ + "/etc/flux/system/prolog-job-manager.d/*", + ] + + # Enable epilog execution + epilog.command = [ + "/etc/flux/system/epilog.d/*", + ] + +Step 2: Install Systemd Service +-------------------------------- + +Install the DataCrumbs systemd service file on all compute nodes: + +**Service file location:** ``/etc/datacrumbs/systemd/datacrumbs@.service`` + +.. code-block:: bash + + # On each compute node + DATACRUMBS_INSTALL=/path/to/datacrumbs/install + + # Create symlink to systemd directory + sudo ln -s ${DATACRUMBS_INSTALL}/etc/datacrumbs/systemd/datacrumbs@.service \\ + /etc/systemd/system/datacrumbs@.service + + # Reload systemd + sudo systemctl daemon-reload + + # Verify service is recognized + systemctl status datacrumbs@test.service + +**Automated deployment** across multiple nodes: + +.. code-block:: bash + + # Example for nodes lead2-lead6, lead9-lead11 + NODES=\"lead{2..6} lead{9..11}\" + + for node in $NODES; do + echo \"Installing on $node\" + ssh $node \"sudo ln -sf ${DATACRUMBS_INSTALL}/etc/datacrumbs/systemd/datacrumbs@.service /etc/systemd/system/ && sudo systemctl daemon-reload\" + done + +Step 3: Install Prolog Script +------------------------------ + +Install the prolog script that starts DataCrumbs: + +**Script location:** ``/sbin/datacrumbs_service_run.sh`` + +.. code-block:: bash + + # On each compute node + DATACRUMBS_INSTALL=/path/to/datacrumbs/install + + # Create symlink to prolog directory + sudo ln -s ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh \\ + /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + + # Make executable + sudo chmod u+x /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + +**Automated deployment:** + +.. code-block:: bash + + NODES=\"lead{2..6} lead{9..11}\" + + for node in $NODES; do + echo \"Installing prolog on $node\" + ssh $node \"sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh /etc/flux/system/prolog-job-manager.d/ && sudo chmod u+x /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh\" + done + +Step 4: Install Epilog Script +------------------------------ + +Install the epilog script that stops DataCrumbs: + +**Script location:** ``/sbin/datacrumbs_service_stop.sh`` + +.. code-block:: bash + + # On each compute node + DATACRUMBS_INSTALL=/path/to/datacrumbs/install + + # Create symlink to epilog directory + sudo ln -s ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh \\ + /etc/flux/system/epilog.d/datacrumbs_service_stop.sh + + # Make executable + sudo chmod u+x /etc/flux/system/epilog.d/datacrumbs_service_stop.sh + +**Automated deployment:** + +.. code-block:: bash + + NODES=\"lead{2..6} lead{9..11}\" + + for node in $NODES; do + echo \"Installing epilog on $node\" + ssh $node \"sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh /etc/flux/system/epilog.d/ && sudo chmod u+x /etc/flux/system/epilog.d/datacrumbs_service_stop.sh\" + done + +Step 5: Install Flux Plugin +---------------------------- + +Install the Flux CLI plugin for DataCrumbs command-line options: + +**Plugin location:** ``/etc/datacrumbs/flux/cli/plugins/datacrumbs.py`` + +.. code-block:: bash + + # On Flux broker node (or all nodes with flux CLI) + DATACRUMBS_INSTALL=/path/to/datacrumbs/install + + # Create flux plugins directory if it doesn't exist + sudo mkdir -p /etc/flux/cli/plugins + + # Copy plugin file + sudo cp ${DATACRUMBS_INSTALL}/etc/datacrumbs/flux/cli/plugins/datacrumbs.py \\ + /etc/flux/cli/plugins/ + + # Set permissions + sudo chmod 644 /etc/flux/cli/plugins/datacrumbs.py + +**Verify plugin installation:** + +.. code-block:: bash + + # Check if plugin is loaded + flux run --help | grep datacrumbs + + # Should show: + # --datacrumbs-enable Enable datacrumbs + # --datacrumbs-composite COMPOSITE + # Set composite name for datacrumbs + +Step 6: Restart Flux (if needed) +--------------------------------- + +After modifying ``job-manager.toml``, reload Flux configuration: + +.. code-block:: bash + + # On broker-0 node only + flux config reload + +If prolog/epilog entries were added for the first time, a full Flux restart may be required. Consult your system administrator. + +Complete Installation Script +============================= + +Here's a complete script for deploying across multiple nodes: + +.. code-block:: bash + + #!/bin/bash + # deploy_datacrumbs_flux.sh + + # Configuration + DATACRUMBS_INSTALL=/path/to/datacrumbs/install + NODES=\"lead{2..6} lead{9..11}\" + + echo \"Deploying DataCrumbs Flux integration...\" + + # Deploy to each node + for node in $(eval echo $NODES); do + echo \"==========================================\" + echo \"Deploying to $node\" + echo \"==========================================\" + + ssh $node << EOF + # Install systemd service + sudo ln -sf ${DATACRUMBS_INSTALL}/etc/datacrumbs/systemd/datacrumbs@.service \\ + /etc/systemd/system/datacrumbs@.service + sudo systemctl daemon-reload + + # Install prolog script + sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh \\ + /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + sudo chmod u+x /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + + # Install epilog script + sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh \\ + /etc/flux/system/epilog.d/datacrumbs_service_stop.sh + sudo chmod u+x /etc/flux/system/epilog.d/datacrumbs_service_stop.sh + + # Clean old runtime files + sudo rm -rf /tmp/datacrumbs* + sudo rm -rf /var/run/datacrumbs* + + echo \"✓ Installation complete on $node\" + EOF + done + + # Install Flux plugin on broker node + echo \"==========================================\" + echo \"Installing Flux plugin\" + echo \"==========================================\" + sudo mkdir -p /etc/flux/cli/plugins + sudo cp ${DATACRUMBS_INSTALL}/etc/datacrumbs/flux/cli/plugins/datacrumbs.py \\ + /etc/flux/cli/plugins/ + sudo chmod 644 /etc/flux/cli/plugins/datacrumbs.py + + echo \"✓ Flux plugin installed\" + echo \"\" + echo \"==========================================\" + echo \"Deployment complete!\" + echo \"==========================================\" + echo \"\" + echo \"Next steps:\" + echo \"1. Verify job-manager.toml has prolog/epilog configured\" + echo \"2. Run: flux config reload (on broker-0)\" + echo \"3. Test: flux run --datacrumbs-enable hostname\" + +Usage +===== + +Basic Usage +----------- + +Enable DataCrumbs for a Flux job: + +.. code-block:: bash + + flux run --datacrumbs-enable [OPTIONS] COMMAND + +Example: + +.. code-block:: bash + + # Single node job + flux run --datacrumbs-enable hostname + + # Multi-node job + flux run --datacrumbs-enable -N 4 -n 32 ./myapp + + # MPI application (Flux handles launch automatically) + flux run --datacrumbs-enable -N 8 -n 64 ./parallel_app + +With Custom Composable Configuration +------------------------------------- + +Specify a custom composable configuration: + +.. code-block:: bash + + flux run --datacrumbs-enable --datacrumbs-composite=CONFIG_NAME [OPTIONS] COMMAND + +Example: + +.. code-block:: bash + + # Use POSIX I/O configuration + flux run --datacrumbs-enable --datacrumbs-composite=posix_io \\ + -N 4 -n 32 ./io_benchmark + + # Use HDF5 configuration + flux run --datacrumbs-enable --datacrumbs-composite=hdf5_only \\ + -N 2 -n 16 ./hdf5_writer dataset.h5 + + # Use MPI-IO configuration + flux run --datacrumbs-enable --datacrumbs-composite=mpiio_only \\ + -N 8 -n 64 ./mpi_parallel_io + +Command Reference +================= + +Flux CLI Options +---------------- + +``--datacrumbs-enable`` + Enable DataCrumbs tracing for the job + + - Default: disabled + - No argument required + +``--datacrumbs-composite=NAME`` + Specify custom composable configuration + + - Requires ``--datacrumbs-enable`` + - NAME must be alphanumeric and underscores only + - Composable must exist (created with ``datacrumbs_compose``) + - If not specified, uses default full configuration + +Examples +======== + +Example 1: Simple Job with Tracing +----------------------------------- + +.. code-block:: bash + + # Submit job with tracing enabled + flux run --datacrumbs-enable -n 1 dd if=/dev/zero of=/tmp/test bs=1M count=100 + + # Check trace location (set in configuration) + ls $DATACRUMBS_TRACE_DIR/ + +Example 2: Batch Job with Custom Configuration +----------------------------------------------- + +.. code-block:: bash + + # Create custom configuration (one-time setup) + sudo datacrumbs_compose --action compose \\ + --name io_benchmark \\ + --probes open,close,read,write,pread64,pwrite64 + + # Submit batch job + flux batch --datacrumbs-enable --datacrumbs-composite=io_benchmark <---.pfw.gz + + # With MPI: + trace-----.pfw.gz + +**Example**: + +.. code-block:: bash + + # Single node job + /path/to/traces/25/11/21/trace-haridev-12345-node01-lead.pfw.gz + + # Multi-rank MPI job (4 ranks generate 4 trace files) + /path/to/traces/25/11/21/trace-haridev-67890-0-4-lead.pfw.gz + /path/to/traces/25/11/21/trace-haridev-67890-1-4-lead.pfw.gz + /path/to/traces/25/11/21/trace-haridev-67890-2-4-lead.pfw.gz + /path/to/traces/25/11/21/trace-haridev-67890-3-4-lead.pfw.gz + +Find traces for a specific job: + +.. code-block:: bash + + # Get job ID + JOBID=$(flux jobs --format=\"{id}\" | head -1) + + # Find trace files + find $DATACRUMBS_TRACE_DIR -name \"trace-*-${JOBID}-*.pfw.gz\" + + # List all traces from today + ls -lh $DATACRUMBS_TRACE_DIR/$(date +%y/%m/%d)/trace-*.pfw.gz + +Monitoring and Debugging +========================= + +Check Service Status +-------------------- + +.. code-block:: bash + + # Check if service is running for a job + JOBID= + systemctl status datacrumbs@${JOBID}.service + + # View service logs + sudo journalctl -u datacrumbs@${JOBID}.service -f + +Check Prolog/Epilog Execution +------------------------------ + +.. code-block:: bash + + # View Flux logs for prolog/epilog + flux dmesg | grep datacrumbs + + # View job exceptions + flux job eventlog | grep datacrumbs + +Debug Mode +---------- + +Enable verbose output in prolog/epilog scripts: + +.. code-block:: bash + + # Edit prolog script + sudo vi /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh + + # Add at the beginning: + export DATACRUMBS_VERBOSE=1 + +Troubleshooting +=============== + +Job Hangs at Prolog +-------------------- + +**Symptom**: Job hangs with message \"prolog running\" + +**Cause**: DataCrumbs server failed to start + +**Solution**: + +.. code-block:: bash + + # Check systemd service + sudo journalctl -u \"datacrumbs@*\" --no-pager + + # Check for permission issues + ls -la /var/run/datacrumbs/ + + # Verify server binary exists + ls -la $DATACRUMBS_INSTALL/sbin/datacrumbs + +Composable Not Found +-------------------- + +**Symptom**: Error about missing composable configuration + +**Cause**: Specified composable doesn't exist + +**Solution**: + +.. code-block:: bash + + # List available composables + ls $PREFIX/libexec/datacrumbs/sbin/$USER/ + + # Create if missing + sudo datacrumbs_compose --action compose --name --probes + +No Traces Generated +------------------- + +**Symptom**: Job completes but no trace files (``.pfw.gz``) created + +**Cause**: Multiple possible causes + +**Solution**: + +.. code-block:: bash + + # Check if trace files exist with correct naming + ls -lh $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + + # Check trace directory permissions + ls -la $DATACRUMBS_TRACE_DIR + + # Verify application was instrumented + # Applications MUST be tracked or wrapped before tracing works + ldd ./myapp | grep datacrumbs + + # Check service logs + sudo journalctl -u \"datacrumbs@*\" --since \"1 hour ago\" + + # Verify eBPF support + ls /sys/kernel/btf/vmlinux + + # Check for event drops + dmesg | grep -i bpf + +Service Won't Stop +------------------ + +**Symptom**: Epilog fails, service remains running + +**Cause**: Server process not responding + +**Solution**: + +.. code-block:: bash + + # Manually stop service + JOBID= + sudo systemctl stop datacrumbs@${JOBID}.service + + # Force kill if needed + sudo pkill -f \"datacrumbs.*${JOBID}\" + + # Clean up runtime files + sudo rm -rf /var/run/datacrumbs/*${JOBID}* + +Best Practices +============== + +1. **Test First**: Test integration on a single node before cluster-wide deployment +2. **Monitor Overhead**: Check that tracing overhead is acceptable for your workloads +3. **Use Composables**: Create workload-specific configurations to minimize overhead +4. **Regular Cleanup**: Periodically clean old trace files +5. **Log Rotation**: Configure log rotation for DataCrumbs and systemd logs +6. **Resource Limits**: Set appropriate ulimits in systemd service file +7. **Documentation**: Document custom composables and their use cases +8. **User Training**: Educate users on when and how to use ``--datacrumbs-enable`` +9. **Disk Space**: Ensure adequate space for trace files +10. **Backup Configs**: Keep backups of configuration files and composables + +Advanced Configuration +====================== + +Customizing Systemd Service +---------------------------- + +Edit the systemd service file to adjust timeouts, resources, etc.: + +.. code-block:: ini + + # /etc/systemd/system/datacrumbs@.service + [Unit] + Description=DataCrumbs I/O Tracer for Job %i + + [Service] + Type=forking + User=root + EnvironmentFile=/var/run/datacrumbs/datacrumbs-%i.env + ExecStart=/path/to/datacrumbs/sbin/datacrumbs ... + TimeoutStartSec=120s + TimeoutStopSec=60s + LimitNOFILE=1048576 + LimitMEMLOCK=infinity + +Per-User Trace Directories +--------------------------- + +Configure per-user trace directories in the project configuration: + +.. code-block:: yaml + + # project.yaml + trace: + dir_pattern: /scratch/${USER}/traces/%YY%/%MM%/%DD% + +Resource Quotas +--------------- + +Limit trace file size and count per user (filesystem-dependent): + +.. code-block:: bash + + # Example with XFS quotas + xfs_quota -x -c 'limit -u bsoft=100g bhard=120g $USER' /scratch + +Conditional Tracing +------------------- + +Enable tracing only for specific user groups or applications (modify prolog script): + +.. code-block:: bash + + # In datacrumbs_service_run.sh + # Only trace for specific users + if [[ ! \" user1 user2 user3 \" =~ \" $FLUX_JOB_USER \" ]]; then + exit 0 # Skip tracing + fi diff --git a/docs/index.rst b/docs/index.rst index e6f8ff48..a0e705e4 100755 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,20 +1,50 @@ -.. DFTracer documentation master file, created by +.. DataCrumbs documentation master file, created by sphinx-quickstart on Sun Nov 26 20:15:18 2017. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. =============================================================================== -DFTracer: is a library for profiling I/O calls and application functions. +DataCrumbs: eBPF-based I/O Profiling and Tracing for HPC Applications =============================================================================== +DataCrumbs is a comprehensive I/O profiling and tracing tool designed for high-performance computing (HPC) environments. +It leverages eBPF (extended Berkeley Packet Filter) technology to provide low-overhead, real-time monitoring and +analysis of application I/O behavior at scale. + +.. toctree:: + :maxdepth: 2 + :caption: Getting Started + + introduction + ebpf_background + dependencies + +.. toctree:: + :maxdepth: 2 + :caption: Building and Setup + + build + setup + .. toctree:: :maxdepth: 2 :caption: User Guide + usage + integration + composability + +.. toctree:: + :maxdepth: 2 + :caption: Advanced Topics + + flux_integration + +.. toctree:: + :maxdepth: 2 + :caption: Legacy Documentation + overview - build - run - ================== Indices and tables diff --git a/docs/integration.rst b/docs/integration.rst new file mode 100755 index 00000000..4e266fbb --- /dev/null +++ b/docs/integration.rst @@ -0,0 +1,836 @@ +========================= +Application Integration +========================= + +DataCrumbs provides multiple methods for integrating tracing into your applications without requiring source code modifications. + +Integration Methods +=================== + +DataCrumbs supports three primary integration methods: + +1. **Binary Tracking** (``datacrumbs_track``): Permanently modify executable to include tracing **(Recommended)** +2. **LD_PRELOAD Wrapping** (``datacrumbs_wrap``): Dynamically inject tracing at runtime +3. **Wrapper Mode** (``datacrumbs_run``): Automatic tracing with server management + +.. note:: + **Binary tracking is recommended** for most use cases. Tracked applications run normally when DataCrumbs is not active - they simply don't capture trace data. When the DataCrumbs server is running, data is automatically captured. + +Each method has different use cases and trade-offs. + +Method 1: Binary Tracking (Permanent) +====================================== + +Binary tracking uses ``patchelf`` to permanently add DataCrumbs client library as a dependency of your executable. + +When to Use +----------- + +**Recommended for most use cases:** + +- Applications you want traced every time they run +- Production deployments +- Applications that run frequently +- Long-running applications or daemons +- Scenarios where LD_PRELOAD is problematic +- Setuid/setgid binaries + +**Key benefit**: Tracked applications run normally when DataCrumbs is not active. When the server is running, data is captured automatically. When it's not running, the application executes with no tracing overhead. + +How It Works +------------ + +``datacrumbs_track`` modifies the ELF binary to add ``libdatacrumbs_client.so`` to the ``DT_NEEDED`` entries. The library is automatically loaded when the application starts. + +Tracking an Application +----------------------- + +**Command Reference:** + +.. code-block:: bash + + datacrumbs_track --executable PATH [OPTIONS] + +**Arguments:** + +``--executable PATH`` + Path to the executable to instrument (required) + +**Common Options:** + +``--verbose`` + Enable detailed output showing each step of the tracking process + +``--quiet`` + Suppress informational messages + +``--dry-run`` + Show what would be done without modifying the binary + +**Examples:** + +.. code-block:: bash + + # Track a local binary + datacrumbs_track --executable ./myapp + + # Track with verbose output + datacrumbs_track --executable ./myapp --verbose + + # Dry-run to see what would happen + datacrumbs_track --executable ./myapp --dry-run + + # Track a binary in PATH + datacrumbs_track --executable $(which python3) + + # Track with absolute path (quiet mode) + datacrumbs_track --executable /usr/local/bin/simulation --quiet + +Verification +------------ + +Verify the executable is tracked: + +.. code-block:: bash + + # Check for DataCrumbs library dependency + ldd ./myapp | grep datacrumbs + + # Should show: + # libdatacrumbs_client.so => /path/to/lib/libdatacrumbs_client.so + +Using Tracked Applications +--------------------------- + +Once tracked, the application is automatically traced whenever it runs (if the DataCrumbs server is active): + +.. code-block:: bash + + # Start server + sudo datacrumbs_server_run.sh + + # Run tracked application normally + ./myapp arg1 arg2 + + # Application is automatically traced + # Traces saved to $DATACRUMBS_TRACE_DIR + +Untracking an Application +-------------------------- + +Remove DataCrumbs instrumentation from a binary: + +**Command Reference:** + +.. code-block:: bash + + datacrumbs_untrack --executable PATH [OPTIONS] + +**Arguments:** + +``--executable PATH`` + Path to the executable to uninstrument (required) + +**Common Options:** + +``--verbose`` + Enable detailed output + +``--quiet`` + Suppress informational messages + +``--dry-run`` + Show what would be done without modifying the binary + +**Examples:** + +.. code-block:: bash + + # Untrack a binary + datacrumbs_untrack --executable ./myapp + + # Untrack with verbose output + datacrumbs_untrack --executable ./myapp --verbose + + # Dry-run to verify before untracking + datacrumbs_untrack --executable ./myapp --dry-run + + # Verify removal + ldd ./myapp | grep datacrumbs + # Should show no output + +Important Considerations +------------------------ + +**Backup Your Binaries** + +Always keep a backup before tracking: + +.. code-block:: bash + + cp myapp myapp.original + datacrumbs_track --executable myapp + +**Permissions** + +You need write permission on the binary: + +**Library Path** + +Ensure ``libdatacrumbs_client.so`` is in the library path: + +.. code-block:: bash + + # Add to LD_LIBRARY_PATH + export LD_LIBRARY_PATH=/path/to/datacrumbs/lib:$LD_LIBRARY_PATH + + # Or use module + module load datacrumbs/0.0.4 + +**Binary Compatibility** + +- Works with dynamically linked executables +- Does not work with static binaries +- May not work with binaries that check their own integrity + +Method 2: LD_PRELOAD Wrapping (Dynamic) +======================================== + +LD_PRELOAD wrapping dynamically injects the DataCrumbs client library without modifying the binary. + +When to Use +----------- + +- One-time or ad-hoc tracing +- Testing DataCrumbs before permanent tracking +- Binaries you cannot modify +- Applications where binary modification is undesirable +- System binaries or read-only executables + +How It Works +------------ + +``datacrumbs_wrap`` sets ``LD_PRELOAD`` to load ``libdatacrumbs_client.so`` before executing your application. The library intercepts I/O calls at runtime. + +Wrapping an Application +----------------------- + +**Command Reference:** + +.. code-block:: bash + + datacrumbs_wrap COMMAND [ARGS...] + +**Arguments:** + +``COMMAND`` + Command to execute with tracing + +``ARGS`` + Arguments to pass to the command + +**Examples:** + +.. code-block:: bash + + # Wrap a simple command + datacrumbs_wrap ./myapp input.dat + + # Wrap with multiple arguments + datacrumbs_wrap python3 analysis.py --input data.csv --output results.txt + + # Wrap a pipeline + datacrumbs_wrap bash -c "cat file.txt | ./process > output.txt" + + # Wrap with environment variables + datacrumbs_wrap env VAR=value ./myapp + +Using with Server +----------------- + +For LD_PRELOAD wrapping to work, the DataCrumbs server must be running: + +.. code-block:: bash + + # Start server + sudo datacrumbs_server_run.sh + + # Wrap and run application + datacrumbs_wrap ./myapp + + # Stop server when done + sudo datacrumbs_server_stop.sh + +Manual LD_PRELOAD +----------------- + +You can also manually set LD_PRELOAD: + +.. code-block:: bash + + # Set LD_PRELOAD + export LD_PRELOAD=/path/to/lib/libdatacrumbs_client.so + + # Run application + ./myapp + + # Unset when done + unset LD_PRELOAD + +Important Considerations +------------------------ + +**Security Restrictions** + +LD_PRELOAD is ignored for setuid/setgid binaries for security reasons: + +.. code-block:: bash + + # This won't work if myapp is setuid + datacrumbs_wrap /usr/bin/setuid_app + +**Environment Inheritance** + +Child processes inherit LD_PRELOAD: + +.. code-block:: bash + + # All processes in the pipeline are traced + datacrumbs_wrap bash -c "./step1 | ./step2 | ./step3" + +**Library Conflicts** + +Some applications may conflict with LD_PRELOAD: + +.. code-block:: bash + + # If application checks LD_PRELOAD + # Use track method instead + +**Performance** + +LD_PRELOAD adds minimal overhead compared to tracking (both use the same client library). + +Method 3: Wrapper Mode (Managed) +================================= + +The ``datacrumbs_run`` wrapper provides the easiest integration with automatic server management. + +When to Use +----------- + +- Quick, one-off tracing sessions +- Applications where you want automatic setup/teardown +- Testing or debugging scenarios +- When you don't want to manage the server manually + +How It Works +------------ + +``datacrumbs_run`` automatically: + +1. Configures the environment +2. Starts the DataCrumbs server +3. Runs your application (with internal tracking) +4. Stops the server +5. Collects and saves traces + +Using Wrapper Mode +------------------ + +See :doc:`usage` for detailed ``datacrumbs_run`` documentation. + +.. code-block:: bash + + # Simple usage + datacrumbs_run --app "./myapp args" + + # MPI application (launcher configured in project.yaml) + datacrumbs_run --app "./parallel_app" --enable_mpi --nodes 4 --ppn 8 + +Integration Comparison +====================== + ++------------------+-------------------+------------------+-------------------+-------------------+ +| Feature | Track | LD_PRELOAD | Wrapper | Best For | ++==================+===================+==================+===================+===================+ +| Setup Effort | One-time | Every run | Every run | Varies | ++------------------+-------------------+------------------+-------------------+-------------------+ +| Binary Modified | Yes | No | No | LD_PRELOAD/Wrap | ++------------------+-------------------+------------------+-------------------+-------------------+ +| Permanent | Yes | No | No | Track | ++------------------+-------------------+------------------+-------------------+-------------------+ +| Server Needed | Manual start | Manual start | Auto-managed | Wrapper | ++------------------+-------------------+------------------+-------------------+-------------------+ +| Overhead | Minimal | Minimal | Minimal | All equal | ++------------------+-------------------+------------------+-------------------+-------------------+ +| Setuid Works | Yes | No | No | Track | ++------------------+-------------------+------------------+-------------------+-------------------+ +| Ease of Use | Medium | Easy | Easiest | Wrapper | ++------------------+-------------------+------------------+-------------------+-------------------+ +| Production Use | Yes | Yes | Yes | All suitable | ++------------------+-------------------+------------------+-------------------+-------------------+ + +Recommendations +--------------- + +**Use Track (Recommended):** + +- **Primary recommendation for most use cases** +- Applications run normally when DataCrumbs is not running (no overhead) +- Data is captured automatically when DataCrumbs server is active +- One-time setup, always ready for tracing +- Suitable for production environments +- Works with setuid/setgid binaries + +**Use LD_PRELOAD when:** + +- You need one-time tracing +- Cannot modify binaries (system binaries, read-only filesystems) +- Testing different configurations +- Temporary tracing needs + +**Use Wrapper when:** + +- You want simplicity for ad-hoc analysis +- One-off analysis sessions +- Automatic server management is desired +- MPI applications with scheduler integration + +Advanced Integration Patterns +============================== + +Pattern 1: Selective Function Tracing +-------------------------------------- + +Configure which functions to trace by editing the host configuration file: + +.. code-block:: yaml + + # etc/datacrumbs/configs/myhost.yaml + capture_probes: + - name: open + library: libc + enabled: true + - name: H5Fopen + library: libhdf5 + enabled: true + - name: MPI_File_open + library: libmpi + enabled: false # Disabled + +Rebuild DataCrumbs after configuration changes. + +Pattern 2: Multi-Stage Pipeline Tracing +---------------------------------------- + +Trace complex pipelines with multiple stages: + +.. code-block:: bash + + # Start server once + sudo datacrumbs_server_run.sh + + # Track all stages + datacrumbs_track --executable ./stage1 + datacrumbs_track --executable ./stage2 + datacrumbs_track --executable ./stage3 + + # Run pipeline (all stages traced) + ./stage1 input.dat | ./stage2 | ./stage3 > output.dat + + # Stop server + sudo datacrumbs_server_stop.sh + +Pattern 3: Mixed Integration +----------------------------- + +Combine different methods for different components: + +.. code-block:: bash + + # Track main application permanently + datacrumbs_track --executable ./mainapp + + # Start server + sudo datacrumbs_server_run.sh + + # Run main app (tracked) + ./mainapp & + + # Run helper with wrap (not tracked permanently) + datacrumbs_wrap ./helper_script + + # Stop server + sudo datacrumbs_server_stop.sh + +Pattern 4: Conditional Tracing +------------------------------- + +Enable tracing only when needed: + +.. code-block:: bash + + # Track application + datacrumbs_track --executable ./myapp + + # Run WITHOUT tracing (server not running) + ./myapp # No traces generated + + # Run WITH tracing (start server first) + sudo datacrumbs_server_run.sh + ./myapp # Traces generated + sudo datacrumbs_server_stop.sh + +Integration with Build Systems +=============================== + +Makefile Integration +-------------------- + +.. code-block:: makefile + + # Makefile + myapp: src/*.c + $(CC) -o myapp src/*.c + + track: myapp + datacrumbs_track --executable ./myapp + + run-traced: track + sudo datacrumbs_server_run.sh + ./myapp + sudo datacrumbs_server_stop.sh + + untrack: + datacrumbs_untrack --executable ./myapp + +CMake Integration +----------------- + +.. code-block:: cmake + + # CMakeLists.txt + add_executable(myapp src/main.c) + + # Add custom target for tracking + add_custom_target(track + COMMAND datacrumbs_track --executable $ + DEPENDS myapp + ) + + # Add custom target for traced execution + add_custom_target(run-traced + COMMAND sudo datacrumbs_server_run.sh + COMMAND $ + COMMAND sudo datacrumbs_server_stop.sh + DEPENDS track + ) + +Container Integration +===================== + +Docker +------ + +.. code-block:: dockerfile + + # Dockerfile + FROM ubuntu:22.04 + + # Install DataCrumbs + RUN apt-get update && apt-get install -y datacrumbs + + # Copy application + COPY myapp /usr/local/bin/ + + # Track application at build time + RUN datacrumbs_track --executable /usr/local/bin/myapp + + # Run with tracing + CMD ["bash", "-c", "datacrumbs_server_run.sh && myapp && datacrumbs_server_stop.sh"] + +Running the container: + +.. code-block:: bash + + # Run with eBPF capabilities + docker run --privileged --cap-add=ALL \ + -v /sys/kernel/debug:/sys/kernel/debug:rw \ + myapp-traced + +Singularity +----------- + +.. code-block:: bash + + # Build container with DataCrumbs + singularity build myapp.sif myapp.def + + # Run with tracing + singularity exec --writable-tmpfs myapp.sif \ + bash -c "source /opt/datacrumbs/bin/datacrumbs_setup && \ + datacrumbs_run --app './myapp'" + +Programming Language Integration +================================= + +Python +------ + +Trace Python scripts and their I/O: + +.. code-block:: bash + + # Track Python interpreter + datacrumbs_track --executable $(which python3) + + # Or wrap + datacrumbs_wrap python3 myscript.py + +C/C++ Applications +------------------ + +No special handling needed: + +.. code-block:: bash + + # Compile application + gcc -o myapp myapp.c + + # Track + datacrumbs_track --executable ./myapp + +Fortran +------- + +.. code-block:: bash + + # Compile + gfortran -o simulation simulation.f90 + + # Track + datacrumbs_track --executable ./simulation + +Java +---- + +Trace Java applications' native I/O: + +.. code-block:: bash + + # Wrap Java + datacrumbs_wrap java -jar myapp.jar + +Troubleshooting Integration +============================ + +Tracking Fails +-------------- + +.. code-block:: bash + + # Check if patchelf is installed + which patchelf + + # Install if missing + sudo dnf install patchelf # CentOS/Rocky + sudo apt install patchelf # Ubuntu + + # Verify executable is not static + file ./myapp # Should show "dynamically linked" + +LD_PRELOAD Not Working +---------------------- + +.. code-block:: bash + + # Verify library exists + ls -la $PREFIX/lib/libdatacrumbs_client.so + + # Check LD_LIBRARY_PATH + echo $LD_LIBRARY_PATH | grep datacrumbs + + # Add if missing + export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH + +No Traces Generated +------------------- + +.. code-block:: bash + + # Verify server is running + ps aux | grep datacrumbs + + # Check if application is instrumented + ldd ./myapp | grep datacrumbs + + # Verify trace directory + ls -la $DATACRUMBS_TRACE_DIR + + # Check logs + cat $DATACRUMBS_TRACE_DIR/datacrumbs.log + +Application Crashes After Tracking +----------------------------------- + +.. code-block:: bash + + # Untrack immediately + datacrumbs_untrack --executable ./myapp + + # Check for library conflicts + ldd ./myapp + + # Try LD_PRELOAD method instead + datacrumbs_wrap ./myapp + +Best Practices +============== + +1. **Test First**: Try LD_PRELOAD before permanent tracking +2. **Backup Binaries**: Always keep unmodified copies +3. **Document Tracked Binaries**: Maintain a list of tracked executables +4. **Use Version Control**: Track modified binaries separately +5. **Verify Integration**: Check with ``ldd`` after tracking +6. **Clean Up**: Untrack when no longer needed +7. **Monitor Overhead**: Ensure tracing doesn't impact performance significantly +8. **Use Wrapper for Scripts**: Shell scripts work best with wrapper mode +9. **Check Library Paths**: Ensure DataCrumbs libraries are accessible +10. **Test in Development**: Validate integration before production use + +Examples +======== + +Example 1: Track HDF5 Application +---------------------------------- +To trace an HDF5 application, add HDF5 to your host configuration: + +.. code-block:: yaml + - name: h5 + probe: uprobe + type: binary + file: /path/to/libhdf5.so + regex: H5.* + +Probes can be narrowed down further as needed. For example, to trace only dataset traces you can use: + +.. code-block:: yaml + - name: h5d + probe: uprobe + type: binary + file: /path/to/libhdf5.so + regex: H5D.* + +Then, after rebuilding DataCrumbs with the updated configuration, you can track your HDF5 application: + +.. code-block:: bash + + # Track the application + datacrumbs_track --executable ./hdf5_writer + + # Verify + ldd ./hdf5_writer | grep datacrumbs + + # Start server + sudo datacrumbs_server_run.sh + + # Run application (automatically traced) + ./hdf5_writer output.h5 + + # Stop server + sudo datacrumbs_server_stop.sh + + # View trace files (.pfw.gz format) + ls -lh $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + +The trace files can then be analyzed and visualized using DataCrumbs tools. + +Creating Callgraphs +---------------------- +To create a callgraph for collected traces, use the following command: + +.. code-block:: bash + + callgraph_creator Trace-file [OPTIONS] + +**Arguments:** + +``--show-percentage`` + Display the percentage of time each function took +``--aggregate`` + Aggregate function calls across all traces +``--output `` + Specify the output format. can be: + 'text' (default): Human-readable call tree. + 'dot': DOT language file for Graphviz. +``--time-metric `` + Metric for time display. can be 'inclusive' or 'exclusive'. +``--focus-function `` + Focus the output on all instances of a specific function. +``--depth_cut`` + Set the maximum depth for the call tree (default: 20). + +Example of text output focusing on H5Dwrite: + +.. url:: https://datacrumbs.org/docs/example/hdf5-callgraph-example.txt + :alt: Callgraph Example Text + +to create a png image from the dot output, use: + +.. code-block:: bash + dot -Tpng callgraph.dot -o callgraph.png + +Example of created png file: + +.. image:: ./example/hdf5-callgraph-example.png + :alt: Callgraph Example + +To compare two callgrphs, use the following command: + +.. code-block:: bash + callgraph_compare callgraph1.dot callgraph2.dot + +This will create a new dot file highlighting differences between the two callgraphs, using color coding to indicate increases or decreases in function call times. +Functions with increased time will be shown in green, while those with decreased time will be shown in red. Functions with same time will be uncolored. +Functions added will be shown in blue, and functions removed will be shown in gray. +For example of comparing two callgraphs: + +.. image:: ./example/hdf5-callgraph-compare-example.png + :alt: Callgraph Compare Example + +Example 2: Trace System Utility +-------------------------------- + +.. code-block:: bash + + # Cannot modify system binary, use wrap + sudo datacrumbs_server_run.sh + + # Wrap the system command + datacrumbs_wrap tar -czf backup.tar.gz /data + + # Stop server + sudo datacrumbs_server_stop.sh + + # View trace file + ls -lh $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + +Example 3: Pipeline Integration +-------------------------------- + +.. code-block:: bash + + # Track all components + datacrumbs_track --executable ./preprocess + datacrumbs_track --executable ./compute + datacrumbs_track --executable ./postprocess + + # Start server + sudo datacrumbs_server_run.sh + + # Run pipeline + ./preprocess input.dat | ./compute | ./postprocess > output.dat + + # All three stages traced + sudo datacrumbs_server_stop.sh diff --git a/docs/introduction.rst b/docs/introduction.rst new file mode 100755 index 00000000..3e0cdc9d --- /dev/null +++ b/docs/introduction.rst @@ -0,0 +1,101 @@ +============ +Introduction +============ + +Overview +======== + +DataCrumbs is a comprehensive I/O profiling and tracing tool designed for high-performance computing (HPC) environments. It leverages eBPF (extended Berkeley Packet Filter) technology to provide low-overhead, real-time monitoring and analysis of application I/O behavior at scale. + +Key Features +============ + +Low-Overhead Profiling +---------------------- + +DataCrumbs uses eBPF to achieve minimal performance overhead while capturing detailed I/O traces. Unlike traditional profiling tools that may introduce significant overhead, DataCrumbs operates in kernel space, minimizing interference with application execution. + +Scalable Architecture +--------------------- + +Designed for large-scale HPC systems, DataCrumbs can efficiently trace I/O operations across distributed applications running on thousands of nodes. The tool supports multiple job schedulers including: + +* FLUX +* SLURM +* OpenMPI +* Standalone execution + +Multi-Layer Tracing +------------------- + +DataCrumbs captures I/O operations at multiple layers: + +* **System Calls**: Low-level I/O operations (open, read, write, close, etc.) +* **POSIX I/O**: Standard C library I/O functions +* **MPI-IO**: Parallel I/O operations in MPI applications +* **HDF5**: High-level I/O library operations +* **Custom Functions**: User-defined function tracing through configuration + +Flexible Deployment +------------------- + +DataCrumbs supports multiple deployment modes: + +1. **Server Mode**: Long-running server process for continuous monitoring +2. **Service Mode**: Systemd service integration for managed execution +3. **Wrapper Mode**: Direct application wrapping for single executions +4. **Composable Mode**: Custom probe configurations for specific use cases + +Real-Time Analysis +------------------ + +The tool provides: + +* DFTracer format output (``.pfw.gz``) for efficient trace storage and analysis +* Event aggregation and correlation across processes +* Trace compression for efficient storage +* Real-time event processing with ring buffers + +Use Cases +========= + +DataCrumbs is particularly useful for: + +* **Performance Analysis**: Understanding I/O bottlenecks in HPC applications +* **I/O Pattern Discovery**: Identifying access patterns and optimization opportunities +* **Debugging**: Tracing file access patterns to diagnose issues +* **System Monitoring**: Continuous monitoring of I/O behavior in production environments +* **Research**: Studying I/O characteristics of scientific applications + +Architecture +============ + +DataCrumbs consists of several key components: + +1. **eBPF Probes**: Kernel-space programs that capture events with minimal overhead +2. **Explorer**: Discovers available probes and functions in libraries +3. **Generator**: Creates custom eBPF programs based on configuration +4. **Server**: User-space daemon that collects and processes events +5. **Client Library**: Injected into applications for tracking +6. **Writer**: Formats and outputs trace data in DFTracer format (``.pfw.gz``) + +Target Applications +=================== + +DataCrumbs is designed for profiling: + +* MPI applications +* Parallel I/O workloads +* Scientific computing applications +* Data-intensive applications +* Any application using POSIX, HDF5, MPI-IO, or custom I/O libraries + +License +======= + +DataCrumbs is developed at Lawrence Livermore National Laboratory and released under an open-source license. See the LICENSE file in the repository for details. + +Citation +======== + +If you use DataCrumbs in your research, please cite the appropriate publication. See CITATION.cff in the repository for citation information. diff --git a/docs/run.rst b/docs/run.rst old mode 100644 new mode 100755 index e6b2a2b7..a39d934f --- a/docs/run.rst +++ b/docs/run.rst @@ -1,7 +1,14 @@ -Run Datacrumbs -============== +=============== +Running DataCrumbs +=============== -To run Datacrumbs tests, follow these instructions: +This guide describes how to run DataCrumbs tests and trace applications, including examples with IOR benchmarking. + +Basic Test Execution +==================== + +Running Tests with CTest +------------------------ 1. **Navigate to the build directory:** @@ -15,28 +22,343 @@ To run Datacrumbs tests, follow these instructions: ctest -N -3. **View arguments for the Datacrumbs start test which is Daemonize script:** +3. **View arguments for the DataCrumbs start test (Daemonize script):** .. code-block:: bash ctest -R datacrumbs_start -VV - This will show verbose output and the arguments used for the `datacrumbs_start` test. + 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:** +4. **View arguments for the DataCrumbs run test (sync script):** .. code-block:: bash ctest -R datacrumbs_run -VV - This will show verbose output and the arguments used for the `datacrumbs_run` test. + 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:** +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 + This will execute the ``test_simple_dd`` test with verbose output from the build directory. + +Running Applications with IOR +============================== + +IOR (Interleaved Or Random) is a parallel file system benchmarking tool commonly used in HPC environments. This section demonstrates how to install and run IOR with DataCrumbs tracing. + +Installing IOR +-------------- + +To install IOR, follow these steps: + +1. **Clone the IOR repository:** + + .. code-block:: bash + + git clone https://github.com/hpc/ior.git + cd ior + +2. **Build IOR:** + + .. code-block:: bash + + ./bootstrap + ./configure --prefix=$PREFIX + make -j + make install + +3. **(Optional) Install system-wide:** + + .. code-block:: bash + + sudo make install + +For more details, refer to the official IOR documentation: https://github.com/hpc/ior + +Running IOR Benchmarks +---------------------- + +**Basic IOR Test:** + +.. code-block:: bash + + # Run a simple IOR test + ior -a POSIX -b 1m -t 256k -s 16 -F + +This runs IOR with: +- POSIX I/O API +- 1MB block size +- 256KB transfer size +- 16 segments per task +- File-per-process mode + +**Parallel IOR with MPI:** + +.. code-block:: bash + + # Run IOR with MPI across multiple processes + mpirun -np 4 ior -a MPIIO -b 4m -t 1m -s 8 -o /scratch/testfile + +This runs IOR with: +- MPI-IO API +- 4 MPI processes +- 4MB block size +- 1MB transfer size +- 8 segments per task +- Output file at ``/scratch/testfile`` + +Tracing IOR with DataCrumbs +---------------------------- + +**Prerequisites**: Instrument IOR before tracing: + +.. code-block:: bash + + # Track IOR binary (one-time setup) + datacrumbs_track --executable $(which ior) + + # Or use wrap mode (no pre-tracking needed) + +**Method 1: Using datacrumbs_run (Synchronous)** + +.. code-block:: bash + + # Trace a single-node IOR run (if IOR is tracked) + datacrumbs_run --app-name ior-test -- ior -a POSIX -b 1m -t 256k -s 16 -F + + # Or with wrap mode + datacrumbs_run --app-name ior-test -- datacrumbs_wrap ior -a POSIX -b 1m -t 256k -s 16 -F + +**Method 2: Using datacrumbs_server (Daemon Mode)** + +.. code-block:: bash + + # Start DataCrumbs daemon + datacrumbs_server_run.sh + + # Run your IOR benchmark + mpirun -np 8 ior -a MPIIO -b 4m -t 1m -s 8 -o /scratch/testfile + + # Stop DataCrumbs daemon + datacrumbs_server_stop.sh + +**Method 3: Multi-node IOR with Flux** + +.. code-block:: bash + + # Using Flux scheduler for multi-node execution + flux run -N 4 -n 16 datacrumbs_run --app-name ior-multinode -- \ + ior -a MPIIO -b 8m -t 2m -s 16 -o /lustre/testfile + +**Method 4: Multi-node IOR with SLURM** + +.. code-block:: bash + + # Using SLURM scheduler for multi-node execution + srun -N 4 -n 16 datacrumbs_run --app-name ior-multinode -- \ + ior -a MPIIO -b 8m -t 2m -s 16 -o /lustre/testfile + +IOR Test Examples with DataCrumbs +---------------------------------- + +**Example 1: Write Performance Test** + +.. code-block:: bash + + # Test write performance with different block sizes + datacrumbs_run --app-name ior-write-1m -- ior -a POSIX -w -b 1m -t 256k -s 32 -F + datacrumbs_run --app-name ior-write-4m -- ior -a POSIX -w -b 4m -t 1m -s 32 -F + datacrumbs_run --app-name ior-write-16m -- ior -a POSIX -w -b 16m -t 4m -s 32 -F + +**Example 2: Read Performance Test** + +.. code-block:: bash + + # Test read performance (requires existing files from write test) + datacrumbs_run --app-name ior-read-1m -- ior -a POSIX -r -b 1m -t 256k -s 32 -F + +**Example 3: Collective I/O Test** + +.. code-block:: bash + + # Test MPI-IO collective operations + mpirun -np 4 datacrumbs_run --app-name ior-collective -- \ + ior -a MPIIO -b 4m -t 1m -s 16 -c -o /scratch/collective-test + +The ``-c`` flag enables collective I/O operations. + +**Example 4: Random I/O Test** + +.. code-block:: bash + + # Test random I/O patterns + datacrumbs_run --app-name ior-random -- \ + ior -a POSIX -b 1m -t 64k -s 64 -z -o /scratch/random-test + +The ``-z`` flag enables random I/O instead of sequential. + +**Example 5: Shared File Test** + +.. code-block:: bash + + # All processes access a single shared file + mpirun -np 8 datacrumbs_run --app-name ior-shared -- \ + ior -a MPIIO -b 2m -t 512k -s 16 -o /scratch/shared-file + +Without the ``-F`` flag, all processes use a single shared file. + +Analyzing IOR Traces +-------------------- + +After running IOR with DataCrumbs, analyze the generated traces: + +.. code-block:: bash + + # View trace files in DFTracer format (.pfw.gz) + ls -lh $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + + # Example output: + # trace-root-12345-node01-docker.pfw.gz + # trace-haridev-67890-0-4-lead.pfw.gz (MPI rank 0) + # trace-haridev-67890-1-4-lead.pfw.gz (MPI rank 1) + +**Using DFTracer Utilities**: + +.. code-block:: bash + + # Install DFTracer utilities + pip install dftracer-utils + + # Merge traces from all MPI ranks + dftracer-merge --input "trace-*-67890-*.pfw.gz" --output ior-merged.pfw.gz + + # Get I/O statistics + dftracer-stats --input ior-merged.pfw.gz + + # Split large trace for easier handling + dftracer-split --input ior-merged.pfw.gz --output-dir ior-traces/ + +**Documentation**: https://dftracer.readthedocs.io/en/latest/bash_utilities.html + +**Using DFAnalyzer for Detailed Analysis**: + +.. code-block:: bash + + # Install DFAnalyzer + pip install dfanalyzer + + # Generate comprehensive report + dfanalyzer analyze --input ior-merged.pfw.gz --output ior-report.html + + # Interactive analysis session + dfanalyzer interactive --input ior-merged.pfw.gz + +**Documentation**: https://dftracer.readthedocs.io/projects/analyzer/en/latest/getting-started.html#usage + +**Trace Format**: DFTracer format - see https://dftracer.readthedocs.io/en/latest/trace_format.html + +For DataCrumbs-specific Jupyter notebook examples, refer to the ``analysis/`` directory in the repository. + +Advanced Configuration +====================== + +Trace and Log Directory Configuration +-------------------------------------- + +**Trace Directory** (Administrator Only): + +The trace directory is configured by the system administrator during installation and **cannot be changed by users at runtime**. + +.. code-block:: bash + + # Administrator sets trace directory at build time: + # cmake -DDATACRUMBS_CONFIGURED_TRACE_DIR=/scratch/traces .. + # + # Or via project YAML configuration: + # trace_dir: /lustre/traces + # trace_dir_pattern: /scratch/traces/%YY%/%MM%/%DD% + +**Log Directory**: + +Log directory may be configurable depending on administrator settings: + +.. code-block:: bash + + # If enabled by administrator, users can set log directory + export DATACRUMBS_CONFIGURED_LOG_DIR=/scratch/logs + datacrumbs_run --app-name myapp -- ./myapp + +Filtering Traced Paths +----------------------- + +**Administrator Configuration Only** + +Path filtering must be configured at build time by the system administrator: + +.. code-block:: bash + + # Administrator configures path filtering at build time + cmake -DDATACRUMBS_INCLUSION_PATH=/scratch/data .. + make install + + # After installation, only I/O to /scratch/data will be traced + datacrumbs_run --app-name filtered-app -- ./myapp + +.. note:: + Users cannot change the inclusion path at runtime. This must be set during installation. + +Troubleshooting +=============== + +Permission Issues +----------------- + +If you encounter permission errors: + +.. code-block:: bash + + # Ensure eBPF capabilities (datacrumbs binary is in sbin) + sudo setcap cap_sys_admin,cap_bpf,cap_perfmon+ep $PREFIX/sbin/datacrumbs + + # Or run with sudo + sudo -E datacrumbs_run --app-name myapp -- ./myapp + +Missing Traces +-------------- + +If traces are not generated: + +.. code-block:: bash + + # Check if DataCrumbs is running + ps aux | grep datacrumbs + + # Check logs (default is /tmp unless configured otherwise) + cat /tmp/datacrumbs*.log + # Or if you know your configured log directory: + # cat ${DATACRUMBS_CONFIGURED_LOG_DIR}/datacrumbs*.log + + # Verify trace directory permissions (default is /tmp) + ls -ld /tmp/*trace* 2>/dev/null || echo "No trace files found" + +Performance Impact +------------------ + +To reduce tracing overhead: + +.. code-block:: bash + + # Use profiling mode instead of full tracing + cmake -DDATACRUMBS_MODE_STR=PROFILE .. + make install + + # Skip small events + cmake -DDATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS=10000 .. + make install + +For more information on running DataCrumbs in production environments, see the :doc:`usage` section. \ No newline at end of file diff --git a/docs/setup.rst b/docs/setup.rst new file mode 100755 index 00000000..9dad8442 --- /dev/null +++ b/docs/setup.rst @@ -0,0 +1,1551 @@ +==================== +Environment Setup +==================== + +After building and installing DataCrumbs, you need to set up your environment to use the tools. + +Setup Script Overview +===================== + +DataCrumbs provides a ``datacrumbs_setup`` script that configures the environment for running tracing sessions. + +Basic Setup +=========== + +Source the setup script to configure your environment: + +.. code-block:: bash + + # If using environment modules + module use /path/to/install/etc/datacrumbs/modulefiles + module load datacrumbs/ + + # Or source directly + source /path/to/install/bin/datacrumbs_setup + +What Setup Does +=============== + +The setup script: + +1. **Detects User Context**: Determines if running as root or regular user +2. **Loads Configuration**: Reads project and host-specific YAML configuration +3. **Sets Environment Variables**: Configures paths and runtime parameters +4. **Configures Resource Limits**: Sets appropriate ulimits for eBPF operations +5. **Creates Aliases**: Provides convenient command shortcuts +6. **Loads Module (optional)**: Integrates with environment modules if available + +Environment Variables Set +========================= + +After sourcing the setup script, the following variables are available: + +.. list-table:: Global Configuration Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_VERSION`` + - DataCrumbs version number (e.g., ``0.0.4``) + * - ``DATACRUMBS_LIB_VERSION`` + - Library version number (e.g., ``1.0.0``) + +.. list-table:: Installation Path Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_INSTALL_HOST`` + - Hostname where DataCrumbs is installed + * - ``DATACRUMBS_INSTALL_USER`` + - User who installed DataCrumbs + * - ``DATACRUMBS_INSTALL_PREFIX`` + - Installation prefix directory (e.g., ``/opt/datacrumbs``) + * - ``DATACRUMBS_INSTALL_BIN_DIR`` + - Directory for user command binaries + * - ``DATACRUMBS_INSTALL_SBIN_DIR`` + - Directory for system/admin binaries + * - ``DATACRUMBS_INSTALL_LIB_DIR`` + - Directory for shared libraries + * - ``DATACRUMBS_INSTALL_LIBEXEC_DIR`` + - Directory for internal executables and eBPF objects + * - ``DATACRUMBS_INSTALL_ETC_DIR`` + - Directory for configuration files + +.. list-table:: Client Configuration Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_CLIENT_LIB`` + - Path to the client library (``libdatacrumbs_client.so``) + * - ``DATACRUMBS_CLIENT_BIN`` + - Directory for user-specific client binaries + +.. list-table:: Trace Configuration Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_TRACE_DIR`` + - Directory for trace files. Supports date patterns: ``%YY%`` (year), ``%MM%`` (month), ``%DD%`` (day) + * - ``DATACRUMBS_TRACE_DIR_PATTERN`` + - Pattern template for trace directory (e.g., ``/scratch/traces/%YY%/%MM%/%DD%``) + +.. list-table:: Job Scheduler Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_JOB_SCHEDULER`` + - Active job scheduler (``FLUX``, ``SLURM``, ``OPENMPI``, etc.) + * - ``DATACRUMBS_JOB_RUN`` + - Command to run jobs (e.g., ``flux run``, ``srun``) + * - ``DATACRUMBS_JOB_NODE_FLAG`` + - Flag for specifying number of nodes (e.g., ``-N``) + * - ``DATACRUMBS_JOB_PPN_FLAG`` + - Flag for specifying processes per node (e.g., ``-n``) + * - ``DATACRUMBS_JOB_ID_VAR`` + - Environment variable containing job ID (e.g., ``FLUX_JOB_ID``, ``SLURM_JOB_ID``) + +.. list-table:: Server Configuration Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_SERVER_LOAD_TIMEOUT`` + - Timeout in seconds for server to load eBPF programs (default: ``600``) + * - ``DATACRUMBS_SERVER_RUN_DIR`` + - Directory for server runtime files (PID files, lock files) + * - ``DATACRUMBS_SERVER_RUN_ID`` + - Unique identifier for the current tracing session + * - ``DATACRUMBS_SERVER_MODULE`` + - Flag for module system integration (``0`` or ``1``) + +.. list-table:: Log Configuration Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_LOG_DIR`` + - Directory for log files (e.g., ``/var/log/datacrumbs``) + +.. list-table:: Runtime Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_USER`` + - Current user running DataCrumbs (auto-detected or from ``$USER``) + * - ``DATACRUMBS_IS_ROOT`` + - Flag indicating if running as root (``1``) or regular user (``0``) + +.. list-table:: System Path Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``PATH`` + - Updated to include ``$PREFIX/bin`` (user commands) and ``$PREFIX/sbin`` (admin commands) + * - ``LD_LIBRARY_PATH`` + - Updated to include ``$PREFIX/lib`` (DataCrumbs libraries) and dependency library paths + +.. list-table:: Module System Variables + :header-rows: 1 + :widths: 30 70 + + * - Variable + - Description + * - ``DATACRUMBS_MODULE_AVAILABLE`` + - Set to ``1`` if environment modules are available, ``0`` otherwise + * - ``DATACRUMBS_ENV_LOADED`` + - Set to ``1`` after successful setup to prevent re-initialization + +Using Environment Modules +========================== + +DataCrumbs integrates with environment modules (Lmod/TCL modules) for easy environment management. + +Module File Location +-------------------- + +The module file is installed at: + +.. code-block:: text + + /etc/datacrumbs/modulefiles/datacrumbs/.lua + +Loading the Module +------------------ + +.. code-block:: bash + + # Add module path + module use /path/to/install/etc/datacrumbs/modulefiles + + # Load DataCrumbs module + module load datacrumbs/0.0.4 + + # Verify loaded + module list + +The module automatically: + +- Adds binaries to ``PATH`` +- Adds libraries to ``LD_LIBRARY_PATH`` +- Sources ``datacrumbs_setup`` +- Sets up command aliases + +Module Information +------------------ + +View module details: + +.. code-block:: bash + + # Show module information + module show datacrumbs/0.0.4 + + # Show help text + module help datacrumbs/0.0.4 + +Unloading the Module +-------------------- + +.. code-block:: bash + + module unload datacrumbs + +Available Command Aliases +========================== + +After setup, the following aliases are available: + +Tracking Commands +----------------- + +``datacrumbs_track`` +^^^^^^^^^^^^^^^^^^^^ + +Permanently instrument a binary for tracing. + +.. code-block:: bash + + datacrumbs_track --executable /path/to/myapp + +``datacrumbs_untrack`` +^^^^^^^^^^^^^^^^^^^^^^ + +Remove DataCrumbs instrumentation from a binary. + +.. code-block:: bash + + datacrumbs_untrack --executable /path/to/myapp + +Execution Commands +------------------ + +``datacrumbs_run`` +^^^^^^^^^^^^^^^^^^ + +Run an application with DataCrumbs tracing. + +.. code-block:: bash + + datacrumbs_run --app "myapp arg1 arg2" + +``datacrumbs_compose_run`` +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Run using a custom composable configuration. + +.. code-block:: bash + + datacrumbs_compose_run --composite-name myconfig + +Server Management +----------------- + +``datacrumbs_stop`` +^^^^^^^^^^^^^^^^^^^ + +Stop the DataCrumbs server (requires sudo). + +.. code-block:: bash + + datacrumbs_stop + +``datacrumbs_compose`` +^^^^^^^^^^^^^^^^^^^^^^ + +Manage composable configurations (requires sudo). + +.. code-block:: bash + + sudo datacrumbs_compose --action discover + +Utility Commands +---------------- + +``datacrumbs_wrap`` +^^^^^^^^^^^^^^^^^^^ + +Run a command with LD_PRELOAD-based tracing (requires sudo). + +.. code-block:: bash + + datacrumbs_wrap myapp arg1 arg2 + +``datacrumbs_create_log_dir`` +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Create date-based log directory structure. + +.. code-block:: bash + + datacrumbs_create_log_dir + +Configuration Files +=================== + +DataCrumbs uses YAML configuration files to define tracing behavior. + +Project Configuration +--------------------- + +**Location**: ``/etc/datacrumbs/configs/project.yaml`` + +Contains project-wide settings including paths, scheduler configuration, and server parameters. + +Example: + +.. code-block:: yaml + + version: 0.0.4 + lib_version: 1.0.0 + install: + host: myhostname + user: myuser + prefix: /opt/datacrumbs + bin_dir: ${DATACRUMBS_INSTALL_PREFIX}/bin + sbin_dir: ${DATACRUMBS_INSTALL_PREFIX}/sbin + lib_dir: ${DATACRUMBS_INSTALL_PREFIX}/lib + client: + lib: ${DATACRUMBS_INSTALL_LIB_DIR}/libdatacrumbs_client.so + bin: ${DATACRUMBS_INSTALL_LIBEXEC_DIR}/sbin/${DATACRUMBS_USER} + trace: + dir_pattern: /scratch/traces/%YY%/%MM%/%DD% + job: + scheduler: FLUX + run: flux run + node_flag: -N + ppn_flag: -n + id_var: FLUX_JOB_ID + server: + load_timeout: 600 + run_dir: /var/run/datacrumbs + module: 0 + log: + dir: /var/log/datacrumbs + +.. _host-configuration: + +Host Configuration +------------------ + +**Location**: ``/etc/datacrumbs/configs/.yaml`` + +Contains host-specific settings for probe configurations and capture rules. This file **must exist** for the hostname specified during build (``DATACRUMBS_HOST``). + +.. important:: + The host configuration file is required for DataCrumbs to build successfully. Copy and modify an existing configuration file (e.g., ``lead.yaml``, ``docker.yaml``) or create a new one based on the examples in ``etc/datacrumbs/configs/``. + +Capture Probes Configuration +============================= + +The ``capture_probes`` section defines which functions, system calls, or events DataCrumbs should trace. Each capture probe specifies what to monitor and how to discover traceable functions. + +Capture probes use different mechanisms to discover and attach to functions. The capture type determines how symbols are discovered, while the probe type determines how they are instrumented at runtime. + +Common Fields +------------- + +All capture probe types share these base fields inherited from the ``CaptureProbe`` class: + +.. list-table:: + :header-rows: 1 + :widths: 20 15 65 + + * - Field + - Required + - Description + * - ``name`` + - Yes + - Unique identifier for this probe set + * - ``probe`` + - Yes + - Runtime probe mechanism: ``syscalls``, ``kprobe``, ``uprobe``, ``usdt``, or ``custom`` + * - ``type`` + - Yes + - Symbol discovery method: ``header``, ``binary``, ``ksym``, ``usdt``, or ``custom`` + * - ``regex`` + - Optional + - Regular expression to filter discovered function names (default: ``.*`` matches all) + * - ``enable_explorer`` + - Optional + - Enable/disable probe discovery at build time (default: ``true``) + +Capture Types Overview +---------------------- + +.. list-table:: + :header-rows: 1 + :widths: 20 30 50 + + * - Capture Type + - Discovery Method + - Compatible Probe Types + * - ``ksym`` + - Kernel symbol table (``/proc/kallsyms``) + - ``kprobe`` only + * - ``header`` + - Parse C header files with Clang + - ``syscalls``, ``kprobe``, ``uprobe`` + * - ``binary`` + - Parse ELF binary symbols + - ``kprobe`` (kernel modules), ``uprobe`` (user binaries) + * - ``usdt`` + - DTRACE probes in binaries + - ``usdt`` only + * - ``custom`` + - User-defined plugin interface + - ``custom`` (can use any underlying mechanism) + +Kernel Symbol Capture (ksym) +----------------------------- + +**Capture Type**: ``ksym`` | **Compatible Probes**: ``kprobe`` + +**Class**: ``KernelCaptureProbe`` + +Discovers kernel functions from the compiled kernel symbol table at ``/proc/kallsyms``. This method queries the running kernel for available functions with type 'T' (global) or 't' (local). + +**Required Fields**: + +.. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - Field + - Description + * - ``name`` + - Identifier for the probe set + * - ``probe`` + - Must be ``kprobe`` + * - ``type`` + - Must be ``ksym`` + * - ``regex`` + - Pattern to match kernel symbol names from ``/proc/kallsyms`` + +**Advantages**: +* Discovers only functions available in the running kernel +* No need for kernel source or headers +* Fast symbol lookup + +**Example - XFS Filesystem Functions**: + +.. code-block:: yaml + + - name: xfs + probe: kprobe + type: ksym + regex: ^xfs(?!.*cold).* + +**Example - IOMAP Functions**: + +.. code-block:: yaml + + - name: iomap + probe: kprobe + type: ksym + regex: ^iomap(?!.*cold).* + +**Example - All VFS Functions**: + +.. code-block:: yaml + + - name: vfs + probe: kprobe + type: ksym + regex: ^vfs_.* + +Header File Capture +-------------------- + +**Capture Type**: ``header`` | **Compatible Probes**: ``syscalls``, ``kprobe``, ``uprobe`` + +**Class**: ``HeaderCaptureProbe`` + +Parses C header files using Clang to discover function declarations. This method extracts function signatures from header files without requiring compiled binaries. + +**Required Fields**: + +.. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - Field + - Description + * - ``name`` + - Identifier for the probe set + * - ``probe`` + - ``syscalls``, ``kprobe``, or ``uprobe`` + * - ``type`` + - Must be ``header`` + * - ``file`` + - Path to C header file + * - ``regex`` + - Optional pattern to filter function names + * - ``enable_explorer`` + - Optional: Disable if header parsing is slow (default: ``true``) + +**Advantages**: +* Works without compiled binaries +* Extracts complete function signatures +* Useful for system calls and kernel headers + +Use Case: System Calls +^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: yaml + + - name: sys + probe: syscalls + type: header + file: @DATACRUMBS_KERNEL_HEADERS_PATH@/include/linux/syscalls.h + regex: sys_.* + +Use Case: Kernel Page Cache +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: yaml + + - name: os_page_cache + probe: kprobe + type: header + file: @DATACRUMBS_KERNEL_HEADERS_PATH@/include/linux/pagemap.h + +Use Case: Kernel Functions (Alternative to ksym) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: yaml + + - name: kernel_fs + probe: kprobe + type: header + file: @DATACRUMBS_KERNEL_HEADERS_PATH@/include/linux/fs.h + regex: (inode|dentry)_.* + +Binary Symbol Capture +---------------------- + +**Capture Type**: ``binary`` | **Compatible Probes**: ``kprobe`` (kernel modules), ``uprobe`` (user binaries) + +**Class**: ``BinaryCaptureProbe`` + +Extracts symbols from compiled ELF binaries using symbol table parsing. Works for both kernel modules (.ko) and user-space binaries/libraries. + +**Required Fields**: + +.. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - Field + - Description + * - ``name`` + - Identifier for the probe set + * - ``probe`` + - ``kprobe`` (for .ko files) or ``uprobe`` (for binaries/libraries) + * - ``type`` + - Must be ``binary`` + * - ``file`` + - Path to binary, shared library, or kernel module + * - ``regex`` + - Pattern to filter symbol names (recommended to exclude compiler-generated names) + * - ``include_offsets`` + - Optional: Include function offsets in output (default: ``false``) + +**Advantages**: +* No source code or headers needed +* Works with any ELF binary +* Discovers actual available functions + +Use Case: Kernel Modules (kprobe) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Example - Lustre Filesystem Module**: + +.. code-block:: yaml + + - name: lustre + probe: kprobe + type: binary + file: /usr/lib/modules/5.14.0/weak-updates/lustre/fs/lustre.ko + regex: (?!.*__)(?!.*:)(?!.*constprop)(?!.*isra).* + +**Regex Explanation**: Excludes compiler-generated names: +* ``(?!.*__)`` - Exclude functions with double underscores +* ``(?!.*:)`` - Exclude namespaced symbols +* ``(?!.*constprop)`` - Exclude const propagation variants +* ``(?!.*isra)`` - Exclude interprocedural scalar replacement variants + +**Example - Lustre OSC Module**: + +.. code-block:: yaml + + - name: osc + probe: kprobe + type: binary + file: /usr/lib/modules/5.14.0/weak-updates/lustre/fs/osc.ko + regex: (?!.*__)(?!.*:)(?!.*constprop)(?!.*isra).* + +Use Case: User-Space Libraries (uprobe) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Example - Standard C Library**: + +.. code-block:: yaml + + - name: libc + probe: uprobe + type: binary + file: @DATACRUMBS_LIBC_SO@ + regex: .*(open|close|read|write|fork).* + +**Example - MPI Library**: + +.. code-block:: yaml + + - name: mpi + probe: uprobe + type: binary + file: /opt/openmpi/lib/libmpi.so + regex: MPI_File_.* + +**Example - HDF5 Library**: + +.. code-block:: yaml + + - name: hdf5 + probe: uprobe + type: binary + file: /usr/lib64/libhdf5.so.200 + regex: H5[FD].* + +Use Case: Application Binaries (uprobe) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Example - IOR Benchmark**: + +.. code-block:: yaml + + - name: ior + probe: uprobe + type: binary + file: /home/user/software/ior/bin/ior + regex: .* + +USDT Capture +------------ + +**Capture Type**: ``usdt`` | **Compatible Probes**: ``usdt`` + +**Class**: ``USDTCaptureProbe`` + +Discovers User-level Statically Defined Tracing (USDT) probes using the DTRACE mechanism. USDT probes are embedded in applications and libraries for tracing, commonly used in interpreted languages like Python. + +**Required Fields**: + +.. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - Field + - Description + * - ``name`` + - Identifier for the probe set + * - ``probe`` + - Must be ``usdt`` + * - ``type`` + - Must be ``usdt`` + * - ``binary_path`` + - Path to binary containing USDT probes + * - ``provider`` + - USDT provider name (namespace for probes) + * - ``regex`` + - Optional pattern to filter probe names + +**Advantages**: +* Low overhead for interpreted languages +* Standardized tracing interface +* Application-specific semantic probes + +**Currently Supported**: Python + +**Example - Python USDT Probes**: + +.. code-block:: yaml + + - name: python + probe: usdt + type: usdt + binary_path: /lib64/libpython3.6m.so.1.0 + provider: python + +**Example - Python GC Probes**: + +.. code-block:: yaml + + - name: python_gc + probe: usdt + type: usdt + binary_path: /lib64/libpython3.6m.so.1.0 + provider: python + regex: gc.* + +Custom Capture +-------------- + +**Capture Type**: ``custom`` | **Compatible Probes**: ``custom`` + +**Class**: ``CustomCaptureProbe`` + +Provides a plugin interface for user-defined probe discovery, function mapping, and event processing. Custom probes can work with any underlying probe mechanism (kprobe, uprobe, etc.) but with complete control over probe logic. + +**Required Fields**: + +.. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - Field + - Description + * - ``name`` + - Identifier for the custom probe + * - ``probe`` + - Must be ``custom`` + * - ``type`` + - Must be ``custom`` + * - ``file`` + - Path to custom BPF source file (.bpf.c) with probe implementations + * - ``probes`` + - Path to JSON file defining probe points and function mappings + * - ``process_header`` + - Path to C header file with event processing functions + * - ``start_event_id`` + - Starting event ID for this probe set (must be unique, typically 100000+) + * - ``event_type`` + - Event classification: ``1`` (duration events), ``2`` (instant events) + +**Advantages**: +* Complete control over probe behavior +* Custom event processing logic +* Can combine multiple probe types +* Plugin architecture for extensibility + +**Use Cases**: +* Complex multi-probe workflows +* Custom data collection beyond function tracing +* Specialized performance analysis +* Domain-specific instrumentation + +**Example - Custom System I/O Probe**: + +.. code-block:: yaml + + - name: custom1 + start_event_id: 100000 + probe: custom + type: custom + file: /opt/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c + probes: /opt/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/probes.json + process_header: /opt/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h + event_type: 2 + +**Plugin Structure**: + +* **BPF file** (``file``): Contains eBPF programs with probe logic +* **Probes JSON** (``probes``): Defines which functions to attach to and their metadata +* **Process header** (``process_header``): C header with functions to process events in user-space + +CMake Variable Substitution +============================ + +Configuration files support CMake variable substitution at build time: + +.. list-table:: + :header-rows: 1 + :widths: 40 60 + + * - Variable + - Expands To + * - ``@DATACRUMBS_PROJECT_PATH@`` + - Build directory path + * - ``@DATACRUMBS_LIBC_SO@`` + - Detected libc library path + * - ``@DATACRUMBS_KERNEL_HEADERS_PATH@`` + - Kernel headers directory + * - ``@DATACRUMBS_KERNEL_UNAME_R@`` + - Kernel release version + +**Example Using Variables**: + +.. code-block:: yaml + + - name: libc + probe: uprobe + type: binary + file: @DATACRUMBS_LIBC_SO@ + regex: .*(open|close|read|write).* + + - name: page_cache + probe: kprobe + type: header + file: @DATACRUMBS_KERNEL_HEADERS_PATH@/include/linux/pagemap.h + +Choosing the Right Capture Type +================================ + +.. list-table:: + :header-rows: 1 + :widths: 20 40 40 + + * - Capture Type + - When to Use + - Limitations + * - **ksym** + - Kernel functions only; fast discovery; no headers needed + - Linux kernel only; no source information + * - **header** + - Have header files; need function signatures; build-time discovery + - Requires header files; slower parsing + * - **binary** + - Have compiled binary; no source; runtime symbol discovery + - No function signatures; binary must have symbols + * - **usdt** + - Tracing interpreted languages; application-specific probes + - Limited language support (Python) + * - **custom** + - Complex instrumentation; custom logic; plugin development + - Requires custom BPF programming + +Complete Configuration Examples +================================ + +Available example configurations in ``etc/datacrumbs/configs/``: + +.. list-table:: + :header-rows: 1 + :widths: 25 75 + + * - File + - Description + * - ``lead.yaml`` + - Full HPC cluster: custom probes, syscalls, Lustre modules, MPI, kernel symbols + * - ``docker.yaml`` + - Container environment: custom probes, libc uprobe, Python USDT, kernel headers + * - ``corona.yaml`` + - LLNL Corona system with comprehensive instrumentation + * - ``tuolumne.yaml`` + - LLNL Tuolumne system focused on MPI-IO workflows + * - ``hdf.yaml`` + - HDF5-focused configuration for scientific applications + +Data Files +========== + +DataCrumbs generates and maintains several data files during build and runtime to manage probe discovery, validation, and event mapping. These files use the naming pattern ``--.`` where: + +* ```` - Hostname from project configuration +* ```` - Install user from project configuration + +File Locations +-------------- + +All data files are stored in: ``/etc/datacrumbs/data/`` + +Probe Discovery Files +--------------------- + +probes-HOST-USER.json +^^^^^^^^^^^^^^^^^^^^^ + +**Generated**: Build time (explorer phase) + +**Purpose**: Master list of discovered probe points organized by capture probe configuration + +Contains all functions discovered by the explorer during the build process. Each entry represents a complete capture probe configuration with its discovered functions. + +**Structure**: Array of capture probe objects, where each object contains: + +* ``type`` - Probe type (0=syscalls, 1=kprobe, 2=uprobe, 3=usdt, 4=custom) +* ``name`` - Capture probe name from configuration +* ``functions`` - Array of discovered function names +* Additional fields specific to probe type (binary_path, provider, bpf_path, etc.) + +**Example Entry (uprobe)**: + +.. code-block:: json + + { + "type": 2, + "name": "libc", + "functions": ["__GI___fork", "__GI___register_atfork", "__GI___vfork"], + "binary_path": "/usr/lib64/libc.so.6", + "function_offsets": ["0xf96b8", "0x841c0", "0x73458"] + } + +**Example Entry (kprobe)**: + +.. code-block:: json + + { + "type": 1, + "name": "xfs", + "functions": ["xfs_file_read_iter", "xfs_file_write_iter", "xfs_file_open"] + } + +**Example Entry (custom)**: + +.. code-block:: json + + { + "type": 4, + "name": "custom1", + "functions": ["openat", "read", "write", "close"], + "bpf_path": "/opt/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c", + "start_event_id": 100000, + "process_header": "/opt/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h", + "event_type": 2 + } + +probes-exclusion-HOST-USER.json +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Managed by**: User (manual editing) + +**Purpose**: User-defined probe exclusion list + +Contains exclusion lists for each capture probe. Only three fields are used: ``type``, ``name``, and ``functions``. All other fields (binary_path, bpf_path, etc.) are ignored. + +**Structure**: Array of objects with required fields: + +* ``type`` - Probe type (must match capture probe type) +* ``name`` - Capture probe name (must match configuration) +* ``functions`` - Array of function names to exclude + +**Example**: + +.. code-block:: json + + [ + { + "type": 0, + "name": "sys", + "functions": ["bdflush", "fork", "ioctl", "ni_syscall"] + }, + { + "type": 2, + "name": "libc", + "functions": ["fnmatch@@GLIBC_2.2.5", "sysctl@GLIBC_2.2.5"] + }, + { + "type": 1, + "name": "xfs", + "functions": ["xfs_buf_cold", "xfs_attr_check_namespace"] + } + ] + +**Use Cases**: +* Exclude functions that cause issues or crashes +* Reduce probe count for performance +* Filter out noisy or irrelevant functions +* Avoid versioned symbols that may not exist on all systems + +**Note**: The exclusion file may contain additional fields from copying the probes file, but only ``type``, ``name``, and ``functions`` are processed during probe discovery. + +categories-HOST-USER.json +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Generated**: Build time (generator phase) + +**Purpose**: Event ID to probe information mapping + +Maps unique event IDs to their corresponding capture probe categories and function names. This is the key lookup table for trace analysis, generated during the same phase as eBPF object compilation. + +**Structure**: Object with event IDs as keys, each mapping to probe metadata + +**Example Structure**: + +.. code-block:: json + + { + "1000": { + "probe_name": "libc", + "function_name": "__GI___fork" + }, + "1010": { + "probe_name": "os_page_cache", + "function_name": "add_to_page_cache_lru" + }, + "100000": { + "probe_name": "custom1", + "function_name": "openat" + } + } + +**Event ID Ranges**: +* **1000-99999**: Standard probes (kprobe, uprobe, syscalls, usdt) +* **100000+**: Custom probes (user-defined via ``start_event_id``) + +This mapping enables: +* Event ID → Function name resolution during trace analysis +* Category grouping for aggregated analysis +* Human-readable trace output + +manual-probes-HOST-USER.json +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Generated**: Build time (generator phase) + +**Purpose**: Probes that cannot be compiled into the eBPF object files + +Contains probes discovered during the generator phase that cannot be statically compiled into eBPF objects. These require runtime resolution and attachment. + +**Structure**: Array of capture probe objects (same as probes file) + +**Common Cases**: +* **Multi-offset symbols**: Functions with multiple addresses due to compiler optimizations or inlining +* **Dynamic libraries**: Symbols only available when library is loaded at runtime +* **Runtime-specific paths**: Kernel modules loaded after boot +* **Unresolvable symbols**: Functions that exist but cannot be compiled into static eBPF programs + +**Example Entry (multiple offsets)**: + +.. code-block:: json + + [ + { + "type": 2, + "name": "ior", + "functions": ["2060", "2061"], + "binary_path": "/home/user/software/ior/bin/ior", + "include_offsets": false + } + ] + +**Note**: The numbers in the ``functions`` array are **event IDs** that correspond to entries in ``categories-HOST-USER.json``. These event IDs reference the actual function names and metadata. These probes are attached dynamically when the DataCrumbs server starts. + +probes-invalid-HOST-USER.json +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**Generated**: Runtime (by ``datacrumbs_validator``) + +**Purpose**: Validated probe blacklist - tracks probes that failed validation + +Maintains the same structure as other probe files but lists functions deemed invalid during validation. + +**Structure**: Array of capture probe objects with invalid function lists + +Probes are marked invalid when: +* Attachment fails during validation +* Probe causes system instability +* Symbol no longer exists in current kernel/binary +* Function signature incompatible with tracing + +**Example**: + +.. code-block:: json + + [ + { + "type": 1, + "name": "lustre", + "functions": ["ll_dom_readpage", "lustre_exit", "lustre_init"] + }, + { + "type": 1, + "name": "os_page_cache", + "functions": ["page_cache_sync_readahead"] + } + ] + +Run ``datacrumbs_validator`` after system updates or configuration changes to refresh this list. + +Key Artifacts for Analysis +--------------------------- + +The two most important files for understanding your current tracing configuration: + +.. list-table:: + :header-rows: 1 + :widths: 40 60 + + * - File + - Purpose + * - ``probes-HOST-USER.json`` + - Complete list of active probes organized by capture probe name with all discovered functions + * - ``categories-HOST-USER.json`` + - Event ID → (probe name, function name) mapping for decoding trace events + +**Workflow Integration**: + +1. **Build time - Explorer phase**: Generates ``probes-*.json`` from capture_probes config +2. **User customization**: Edit ``probes-exclusion-*.json`` to exclude unwanted probes +3. **Build time - Generator phase**: Creates ``categories-*.json`` (event ID mappings) and ``manual-probes-*.json`` (probes that cannot be compiled) +4. **Runtime - Validation**: Failed probes recorded in ``probes-invalid-*.json`` by validator +5. **Runtime - Server startup**: Manual probes from step 3 are dynamically attached using event IDs from categories file +6. **Analysis**: Use ``categories-*.json`` to decode event IDs in trace files + +File Management +--------------- + +**Regenerating Data Files**: + +.. code-block:: bash + + # Rebuild to regenerate probes and categories + cd build && make install + +**Viewing Active Probes by Category**: + +.. code-block:: bash + + # Show probe counts per capture probe + jq -r '.[] | "\(.name): \(.functions | length) functions"' \ + /opt/datacrumbs/etc/datacrumbs/data/probes-*.json + +**Checking Event ID Assignments**: + +.. code-block:: bash + + # View event ID mappings + jq '.' /opt/datacrumbs/etc/datacrumbs/data/categories-*.json + +**Finding Specific Function's Event ID**: + +.. code-block:: bash + + # Search for function in categories + jq -r 'to_entries[] | select(.value.function_name=="xfs_file_read_iter") | + "Event ID: \(.key), Probe: \(.value.probe_name)"' \ + /opt/datacrumbs/etc/datacrumbs/data/categories-*.json + +Output Files +============ + +DataCrumbs generates trace and log files during runtime. Understanding the naming conventions and formats is essential for trace analysis. + +Trace Files +----------- + +**Format**: DFTracer format (``.pfw.gz``) + +**Documentation**: https://dftracer.readthedocs.io/en/latest/trace_format.html + +Trace files are compressed binary files containing timestamped events captured by eBPF probes. Each trace file represents the activity of a single process or MPI rank. + +**Naming Convention**: + +The trace file naming convention depends on whether MPI is enabled: + +**Without MPI** (``--disable-mpi``): + +.. code-block:: text + + trace----.pfw.gz + +**Example**: + +.. code-block:: text + + trace-root-12345-node01-docker.pfw.gz + +**With MPI**: + +.. code-block:: text + + trace-----.pfw.gz + +**Example**: + +.. code-block:: text + + trace-haridev-67890-0-4-lead.pfw.gz + trace-haridev-67890-1-4-lead.pfw.gz + trace-haridev-67890-2-4-lead.pfw.gz + trace-haridev-67890-3-4-lead.pfw.gz + +**Filename Components**: + +.. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - Component + - Description + * - ```` + - Runtime user (from ``DATACRUMBS_USER`` or ``--user``) + * - ```` + - Unique run identifier (from ``--run_id`` argument) + * - ```` + - System hostname (non-MPI mode only) + * - ```` + - MPI process rank (0 to N-1, MPI mode only) + * - ```` + - Total number of MPI processes (MPI mode only) + * - ```` + - Configuration name from command line (e.g., ``lead``, ``docker``) + +**Location**: + +Trace files are written to the directory specified by ``DATACRUMBS_TRACE_DIR`` (or ``--trace_log_dir`` argument). + +**Default**: ``/var/log/datacrumbs`` or configured ``trace_log_dir`` from YAML. + +**Analysis**: + +Trace files can be analyzed using **DFTracer tools**: + +**DFTracer Utilities** - Trace manipulation and statistics: + +.. code-block:: bash + + pip install dftracer-utils + dftracer-stats --input trace-*.pfw.gz + dftracer-merge --input "trace-*-67890-*.pfw.gz" --output merged.pfw.gz + dftracer-split --input merged.pfw.gz --output-dir split-traces/ + +**Documentation**: https://dftracer.readthedocs.io/en/latest/bash_utilities.html + +**DFAnalyzer** - Comprehensive analysis: + +.. code-block:: bash + + pip install dfanalyzer + dfanalyzer analyze --input trace-*.pfw.gz --output report.html + dfanalyzer interactive --input trace-*.pfw.gz + +**Documentation**: https://dftracer.readthedocs.io/projects/analyzer/en/latest/getting-started.html#usage + +The DFTracer format includes: + +* Event timestamps (nanosecond precision) +* Event IDs (mapped via ``categories-*.json``) +* Process/thread information +* Function entry/exit pairs (for duration events) +* Custom event data (for instant events) + +Log Files +--------- + +**Format**: Plain text (``.log``) + +Log files contain human-readable diagnostic and debugging information from the DataCrumbs server and client components. + +**Naming Convention**: + +.. code-block:: text + + datacrumbs--.log + +**Example**: + +.. code-block:: text + + datacrumbs-server-20250122-143052.log + datacrumbs-client-20250122-143105.log + +**Location**: + +Log files are written to the directory specified by ``DATACRUMBS_LOG_DIR`` (or ``--log_dir`` argument). + +**Default**: Current working directory or configured ``log_dir``. + +**Log Levels**: + +* ``ERROR``: Critical errors requiring attention +* ``WARN``: Warnings about potential issues +* ``INFO``: General information about execution +* ``DEBUG``: Detailed debugging information +* ``TRACE``: Fine-grained execution traces + +**Viewing Logs**: + +.. code-block:: bash + + # View recent server logs + tail -f /var/log/datacrumbs/datacrumbs-server-*.log + + # Search for errors + grep ERROR /var/log/datacrumbs/*.log + + # Filter by component + grep "\[ConfigurationManager\]" /var/log/datacrumbs/*.log + +Output Management +----------------- + +**Disk Space Considerations**: + +* Trace files can grow large in high-frequency tracing scenarios +* Compression (``.gz``) reduces file size by ~10x +* Plan storage capacity based on trace duration and probe count + +**Cleanup**: + +.. code-block:: bash + + # Remove old traces (older than 7 days) + find $DATACRUMBS_TRACE_DIR -name "trace-*.pfw.gz" -mtime +7 -delete + + # Archive traces before cleanup + tar czf traces-archive-$(date +%Y%m%d).tar.gz $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + +**Aggregating MPI Traces**: + +For MPI applications, use DFTracer utilities to merge traces from all ranks: + +.. code-block:: bash + + # Install DFTracer utilities + pip install dftracer-utils + + # Merge all ranks for a specific run + dftracer-merge --input "$DATACRUMBS_TRACE_DIR/trace-*-67890-*.pfw.gz" \ + --output "$DATACRUMBS_TRACE_DIR/merged-67890.pfw.gz" + + # Split large merged trace if needed + dftracer-split --input "$DATACRUMBS_TRACE_DIR/merged-67890.pfw.gz" \ + --output-dir "$DATACRUMBS_TRACE_DIR/split-67890/" + + # Analyze merged trace + pip install dfanalyzer + dfanalyzer analyze --input "$DATACRUMBS_TRACE_DIR/merged-67890.pfw.gz" \ + --output "$DATACRUMBS_TRACE_DIR/report-67890.html" + +**Documentation**: + +* DFTracer utilities: https://dftracer.readthedocs.io/en/latest/bash_utilities.html +* DFAnalyzer: https://dftracer.readthedocs.io/projects/analyzer/en/latest/getting-started.html#usage + +Resource Limits +=============== + +DataCrumbs automatically configures system resource limits for optimal eBPF operation: + +File Descriptors +---------------- + +.. code-block:: bash + + # Automatically set to maximum + ulimit -n $(ulimit -H -n) + +eBPF requires many file descriptors for maps, programs, and ring buffers. + +Locked Memory +------------- + +.. code-block:: bash + + # Automatically set to maximum + ulimit -l $(ulimit -H -l) + +eBPF maps and ring buffers use locked memory that cannot be swapped. + +Manual Adjustment +----------------- + +If automatic limits are insufficient: + +.. code-block:: bash + + # Increase hard limits (requires root) + sudo bash -c "echo '* hard nofile 1048576' >> /etc/security/limits.conf" + sudo bash -c "echo '* soft nofile 1048576' >> /etc/security/limits.conf" + + # For current session + ulimit -n 1048576 + ulimit -l unlimited + +Directory Structure After Setup +================================ + +DataCrumbs creates the following directory structure: + +.. code-block:: text + + / + ├── bin/ # User commands + │ ├── datacrumbs_setup + │ ├── datacrumbs_run + │ ├── datacrumbs_track + │ ├── datacrumbs_untrack + │ ├── datacrumbs_wrap + │ └── ... + ├── sbin/ # Admin commands + │ ├── datacrumbs # Main server binary + │ ├── datacrumbs_server_run.sh + │ ├── datacrumbs_server_stop.sh + │ ├── datacrumbs_service_run.sh + │ ├── datacrumbs_service_stop.sh + │ └── ... + ├── lib/ # Libraries + │ ├── libdatacrumbs_client.so + │ ├── libdatacrumbs_obj.so + │ └── ... + ├── libexec/ # Internal components + │ └── datacrumbs/ + │ ├── objects/ # eBPF object files + │ └── composable/ # Composable configurations + └── etc/ + └── datacrumbs/ + ├── configs/ # YAML configuration files + ├── data/ # Probe metadata + ├── modulefiles/ # Environment module files + ├── systemd/ # Systemd service files + └── flux/ # Flux plugin files + +Verification +============ + +Verify your setup is correct: + +.. code-block:: bash + + # Check environment variables + echo $DATACRUMBS_USER + echo $DATACRUMBS_TRACE_DIR + echo $PATH | grep datacrumbs + + # Check resource limits + ulimit -n + ulimit -l + + # Check available commands + which datacrumbs_run + which datacrumbs_track + + # Test validator + datacrumbs_validator + +Multiple User Setup +=================== + +For shared installations where multiple users will use DataCrumbs: + +Build Configuration +------------------- + +.. code-block:: bash + + # Build with shared install user + cmake -DCMAKE_INSTALL_PREFIX=/opt/datacrumbs \ + -DDATACRUMBS_INSTALL_USER=shared \ + .. + +Each User Setup +--------------- + +.. code-block:: bash + + # Each user loads the module + module use /opt/datacrumbs/etc/datacrumbs/modulefiles + module load datacrumbs/0.0.4 + + # User-specific trace directory + export DATACRUMBS_TRACE_DIR=/scratch/$USER/traces + +Per-User Configuration +---------------------- + +Users can override some default settings: + +.. code-block:: bash + + # Custom log directory (if administrator enabled this) + export DATACRUMBS_CONFIGURED_LOG_DIR=/custom/logs + +.. note:: + **Trace directory cannot be overridden at runtime**. The trace directory (``DATACRUMBS_TRACE_DIR``) is set by the administrator during installation via the ``trace_dir`` or ``trace_dir_pattern`` configuration in the project YAML file. Users cannot change this location. + +Troubleshooting +=============== + +Setup Script Not Found +----------------------- + +.. code-block:: bash + + # Verify installation + ls /path/to/install/bin/datacrumbs_setup + + # Check PATH + export PATH=/path/to/install/bin:$PATH + +Permission Issues +----------------- + +.. code-block:: bash + + # Ensure directories are accessible + ls -la $DATACRUMBS_TRACE_DIR + ls -la $DATACRUMBS_SERVER_RUN_DIR + + # Create if needed + mkdir -p $DATACRUMBS_TRACE_DIR + mkdir -p $DATACRUMBS_SERVER_RUN_DIR + +Module Not Found +---------------- + +.. code-block:: bash + + # Verify module path + module use /path/to/install/etc/datacrumbs/modulefiles + + # List available modules + module avail datacrumbs + +Resource Limit Errors +--------------------- + +.. code-block:: bash + + # Check current limits + ulimit -a + + # Increase if needed (as root) + sudo pam_limits.so + +Configuration File Errors +------------------------- + +.. code-block:: bash + + # Verify configuration files exist + ls $PREFIX/etc/datacrumbs/configs/ + + # Check YAML syntax + python3 -c "import yaml; yaml.safe_load(open('config.yaml'))" diff --git a/docs/tuo.rst b/docs/tuo.rst deleted file mode 100644 index 58a8c31e..00000000 --- a/docs/tuo.rst +++ /dev/null @@ -1,20 +0,0 @@ - -1. Modules to be loaded - - .. code-block:: bash - - module load gcc/11.2.0 - export CC=`which gcc` - export CXX=`which g++` - -2. BPF Time configuration for Tuo - - .. code-block:: bash - - export BPFTIME_SHM_MEMORY_MB=10240 - export BPFTIME_MAX_FD_COUNT=128000 - bpftime --install-location $PREFIX/lib load /usr/workspace/haridev/datacrumbs/build/bin/datacrumbs "run" "tuolumne-mpiio" "--user" "haridev" "--config_path" "/usr/workspace/haridev/datacrumbs/etc/datacrumbs/configs" "--data_dir" "/usr/workspace/haridev/datacrumbs/etc/datacrumbs/data" "--trace_log_dir" "/usr/workspace/haridev/datacrumbs/etc/datacrumbs/logs" - add-auto-load-safe-path /opt/cray/pe/gcc/11.2.0/snos/lib64/libstdc++.so.6.0.29-gdb.py - set follow-fork-mode child - set detach-on-fork off - set print-frame-arguments all \ No newline at end of file diff --git a/docs/usage.rst b/docs/usage.rst new file mode 100755 index 00000000..b9e986dd --- /dev/null +++ b/docs/usage.rst @@ -0,0 +1,832 @@ +================= +Using DataCrumbs +================= + +DataCrumbs provides multiple modes of operation for tracing applications. This guide covers all usage patterns. + +Quick Start +=========== + +**Recommended: Use Binary Tracking** + +Applications should be instrumented using ``datacrumbs_track`` (recommended) or ``datacrumbs_wrap``: + +.. code-block:: bash + + # Source setup + source /path/to/install/bin/datacrumbs_setup + + # Recommended: Track the application (permanent instrumentation) + datacrumbs_track --executable ./myapp + datacrumbs_run --app "./myapp arg1 arg2" + + # Alternative: Wrap the application (runtime instrumentation) + datacrumbs_run --app "datacrumbs_wrap ./myapp arg1 arg2" + +This automatically: + +1. Starts the DataCrumbs server +2. Runs your instrumented application with tracing enabled +3. Stops the server and collects traces + +.. note:: + **Tracked applications work normally when DataCrumbs is not running** - they simply won't capture trace data. When the DataCrumbs server is running, data is automatically captured. When it's not running, the application executes normally with no tracing overhead. + +Common Script Options +===================== + +All DataCrumbs scripts support the following options: + +.. list-table:: Common Script Options + :header-rows: 1 + :widths: 20 80 + + * - Option + - Description + * - ``--verbose`` + - Enable detailed output for debugging and monitoring + * - ``--quiet`` + - Suppress informational messages (errors still shown) + * - ``--dry-run`` + - Show what would be executed without actually running commands + +Example usage: + +.. code-block:: bash + + # Verbose mode to see detailed operations + datacrumbs_run --verbose --app "./myapp" + + # Quiet mode for automated scripts + datacrumbs_run --quiet --app "./batch_job" + + # Dry-run to preview actions + datacrumbs_track --dry-run --executable ./myapp + + # Combine options + datacrumbs_compose --action discover --verbose + +Usage Modes +=========== + +DataCrumbs supports three primary usage modes: + +1. **Wrapper Mode** (``datacrumbs_run``): Easiest - wraps application execution +2. **Server Mode** (``datacrumbs_server_run.sh``): Long-running server for multiple sessions +3. **Service Mode** (``datacrumbs_service_run.sh``): Systemd service integration + +Wrapper Mode +============ + +Use ``datacrumbs_run`` for single application tracing sessions. + +Basic Usage +----------- + +.. code-block:: bash + + datacrumbs_run --app "command args" + +Example: Trace a Simple Program +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # Trace dd command + datacrumbs_run --app "dd if=/dev/zero of=/tmp/test.dat bs=1M count=100" + + # Trace Python script + datacrumbs_run --app "python3 myanalysis.py" + + # Trace with complex arguments + datacrumbs_run --app "tar -czf backup.tar.gz /data/important" + +MPI Applications +---------------- + +For MPI applications, specify node and process configuration. The MPI launcher (e.g., ``mpirun``, ``srun``, ``flux run``) is configured in the project YAML and automatically used by DataCrumbs. + +.. code-block:: bash + + datacrumbs_run --app "./mpiapp input.dat" --enable_mpi --nodes 4 --ppn 8 + +**Options:** + +- ``--enable_mpi``: Enable MPI mode +- ``--nodes N``: Number of nodes to use +- ``--ppn N``: Processes per node + +.. note:: + Do not include the MPI launcher (``mpirun``, ``srun``, etc.) in the ``--app`` command. DataCrumbs automatically uses the launcher configured in ``project.yaml`` (``job.run`` setting). + +Example: MPI Application +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + # Run 32 processes (4 nodes × 8 processes/node) + datacrumbs_run --app "./myapp" --enable_mpi --nodes 4 --ppn 8 + + # With arguments + datacrumbs_run --app "./simulation input.dat" --enable_mpi --nodes 2 --ppn 16 + +Command Reference: datacrumbs_run +---------------------------------- + +**Synopsis:** + +.. code-block:: bash + + datacrumbs_run --app "COMMAND" [OPTIONS] + +**Required Arguments:** + +``--app "COMMAND"`` + Application command with arguments (quoted) + +**Optional Arguments:** + +``--enable_mpi`` + Enable MPI support (default: disabled) + +``--nodes N`` + Number of nodes for MPI execution (default: 1) + +``--ppn N`` + Processes per node for MPI execution (default: 1) + +**Examples:** + +.. code-block:: bash + + # Single process + datacrumbs_run --app "./myapp input.txt" + + # MPI with 16 processes on 2 nodes + datacrumbs_run --app "./parallel_app" --enable_mpi --nodes 2 --ppn 8 + + # Complex command with pipes and redirection + datacrumbs_run --app "cat largefile.dat | ./process > output.txt" + +Output Location +--------------- + +**Trace Files** (DFTracer format): + +Traces are saved to ``$DATACRUMBS_TRACE_DIR`` with naming based on MPI mode: + +.. code-block:: bash + + # Without MPI: + $DATACRUMBS_TRACE_DIR/trace----.pfw.gz + + # With MPI: + $DATACRUMBS_TRACE_DIR/trace-----.pfw.gz + +**Example filenames**: + +.. code-block:: text + + trace-root-12345-node01-docker.pfw.gz # Non-MPI mode + trace-haridev-67890-0-4-lead.pfw.gz # MPI rank 0 of 4 + trace-haridev-67890-3-4-lead.pfw.gz # MPI rank 3 of 4 + +**Log Files**: + +Logs are saved to ``$DATACRUMBS_LOG_DIR``: + +.. code-block:: bash + + $DATACRUMBS_LOG_DIR/datacrumbs-server-.log + $DATACRUMBS_LOG_DIR/datacrumbs-client-.log + +See :doc:`setup` Output Files section for detailed format information. + +Server Mode +=========== + +Use server mode when you want to run multiple tracing sessions without restarting the server. + +**Prerequisites**: Applications must be instrumented before the server can trace them. + +Starting the Server +------------------- + +.. code-block:: bash + + sudo datacrumbs_server_run.sh + +The server: + +- Runs in the background +- Listens for traced applications +- Collects events from all traced processes +- Writes traces continuously to ``.pfw.gz`` files + +Starting with Composable Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: bash + + sudo datacrumbs_server_run.sh --composite-name myconfig + +Instrumenting Applications +-------------------------- + +**Before** running the server, instrument your applications: + +.. code-block:: bash + + # Method 1: Track binary (permanent modification) + datacrumbs_track --executable ./myapp + + # Method 2: Use wrap script (runtime injection) + # No pre-tracking needed for wrap mode + +Running Applications +-------------------- + +With the server running and applications instrumented: + +.. code-block:: bash + + # Run tracked binary + ./myapp + + # Or use wrap mode + datacrumbs_wrap ./otherapp arg1 arg2 + +Stopping the Server +------------------- + +.. code-block:: bash + + sudo datacrumbs_server_stop.sh + +This: + +- Stops the eBPF programs +- Flushes remaining events +- Closes trace files +- Cleans up resources + +Command Reference: datacrumbs_server_run.sh +------------------------------------------- + +**Synopsis:** + +.. code-block:: bash + + sudo datacrumbs_server_run.sh [OPTIONS] + +**Optional Arguments:** + +``--composite-name NAME`` + Use custom composable configuration (default: standard configuration) + +``--enable-mpi`` + Enable MPI support + +``--nodes N`` + Number of nodes (default: 1) + +``--ppn N`` + Processes per node (default: 1) + +**Examples:** + +.. code-block:: bash + + # Start standard server + sudo datacrumbs_server_run.sh + + # Start with custom configuration + sudo datacrumbs_server_run.sh --composite-name hdf5_only + + # Start for MPI environment + sudo datacrumbs_server_run.sh --enable-mpi --nodes 4 --ppn 16 + +Command Reference: datacrumbs_server_stop.sh +-------------------------------------------- + +**Synopsis:** + +.. code-block:: bash + + sudo datacrumbs_server_stop.sh [OPTIONS] + +**Optional Arguments:** + +``--composite-name NAME`` + Stop server for specific composable configuration + +**Examples:** + +.. code-block:: bash + + # Stop standard server + sudo datacrumbs_server_stop.sh + + # Stop specific composable server + sudo datacrumbs_server_stop.sh --composite-name hdf5_only + +Service Mode (Systemd) +======================= + +Service mode integrates DataCrumbs with systemd for managed, persistent tracing. + +Service Installation +-------------------- + +The systemd service file is installed at: + +.. code-block:: text + + /etc/datacrumbs/systemd/datacrumbs@.service + +Starting the Service +-------------------- + +.. code-block:: bash + + # Enable and start service for current user + sudo systemctl enable datacrumbs@$USER.service + sudo systemctl start datacrumbs@$USER.service + +The service: + +- Starts automatically at boot +- Restarts on failure +- Logs to systemd journal +- Runs with appropriate privileges + +Using Service Scripts +^^^^^^^^^^^^^^^^^^^^^ + +Alternatively, use the provided scripts: + +.. code-block:: bash + + # Start service + sudo datacrumbs_service_run.sh + + # Stop service + sudo datacrumbs_service_stop.sh + +Checking Service Status +----------------------- + +.. code-block:: bash + + # Check status + sudo systemctl status datacrumbs@$USER.service + + # View logs + sudo journalctl -u datacrumbs@$USER.service -f + + # Check if running + ps aux | grep datacrumbs + +Stopping the Service +-------------------- + +.. code-block:: bash + + # Stop service + sudo systemctl stop datacrumbs@$USER.service + + # Disable automatic startup + sudo systemctl disable datacrumbs@$USER.service + + # Or use script + sudo datacrumbs_service_stop.sh + +Command Reference: datacrumbs_service_run.sh +-------------------------------------------- + +**Synopsis:** + +.. code-block:: bash + + sudo datacrumbs_service_run.sh + +**Description:** + +Starts DataCrumbs as a systemd service. The service is automatically enabled and started. + +**Prerequisites:** + +- Root or sudo access +- Systemd service file installed +- Environment configured via ``datacrumbs_setup`` + +Command Reference: datacrumbs_service_stop.sh +--------------------------------------------- + +**Synopsis:** + +.. code-block:: bash + + sudo datacrumbs_service_stop.sh + +**Description:** + +Stops the DataCrumbs systemd service. + +Composable Mode +=============== + +Composable mode allows using custom-built DataCrumbs configurations for specialized tracing scenarios. + +Creating a Composable Configuration +------------------------------------ + +.. code-block:: bash + + # Discover available probes + sudo datacrumbs_compose --action discover + + # Build custom configuration + sudo datacrumbs_compose --action build --name myconfig + +Running with Composable +------------------------ + +.. code-block:: bash + + # Using run wrapper + datacrumbs_compose_run --composite-name myconfig + + # Or start server with composable + sudo datacrumbs_server_run.sh --composite-name myconfig + +Command Reference: datacrumbs_compose +------------------------------------- + +**Synopsis:** + +.. code-block:: bash + + sudo datacrumbs_compose --action ACTION [OPTIONS] + +**Arguments:** + +``--action ACTION`` + Action to perform: ``discover``, ``build``, ``clean`` + +``--name NAME`` + Name for the composable configuration + +**Examples:** + +.. code-block:: bash + + # Discover available probes + sudo datacrumbs_compose --action discover + + # Build custom config + sudo datacrumbs_compose --action build --name hdf5_posix + + # Clean composable builds + sudo datacrumbs_compose --action clean + +Advanced Usage +============== + +Filtering by Path +----------------- + +**Administrator Configuration Only** + +Path filtering must be configured by the system administrator at build time and cannot be changed by users at runtime. + +.. code-block:: bash + + # Administrator sets inclusion path at build time: + # cmake -DDATACRUMBS_INCLUSION_PATH=/scratch/data .. + # make install + # + # Or via project YAML configuration: + # inclusion_path: /scratch/data + +Once configured, only I/O operations on files under the specified path (e.g., ``/scratch/data``) will be traced. + +.. note:: + Users cannot change the inclusion path at runtime. Contact your system administrator to modify path filtering. + +Multi-Node Tracing +------------------ + +For distributed tracing across multiple nodes: + +.. code-block:: bash + + # Start server on each node (via scheduler) + srun -N 4 sudo datacrumbs_server_run.sh --enable-mpi --nodes 4 + + # Run application + srun -N 4 -n 32 ./mpi_app + + # Stop servers + srun -N 4 sudo datacrumbs_server_stop.sh + +Traces are collected independently on each node. + +Integration with Job Schedulers +================================ + +SLURM +----- + +.. code-block:: bash + + #!/bin/bash + #SBATCH -N 4 + #SBATCH -n 32 + #SBATCH -t 1:00:00 + + # Load DataCrumbs + module load datacrumbs/0.0.4 + + # Run with tracing + datacrumbs_run --app "./myapp" --enable_mpi --nodes 4 --ppn 8 + +FLUX +---- + +.. code-block:: bash + + #!/bin/bash + + # Load DataCrumbs + module load datacrumbs/0.0.4 + + # Submit job with tracing + flux run -N 4 -n 32 datacrumbs_run --app "./myapp" --enable_mpi + +OpenMPI (Standalone) +-------------------- + +.. code-block:: bash + + # Load DataCrumbs and MPI + module load datacrumbs/0.0.4 + module load openmpi + + # Run with tracing (MPI launcher configured in project.yaml) + datacrumbs_run --app "./myapp" --enable_mpi --nodes 4 --ppn 8 + +Trace Analysis +============== + +Viewing Traces +-------------- + +DataCrumbs outputs traces in **DFTracer format** (``.pfw.gz`` compressed files): + +.. code-block:: bash + + # Find your traces + ls $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + + # Example output: + # trace-root-12345-node01-docker.pfw.gz + # trace-haridev-67890-0-4-lead.pfw.gz + +**Format**: DFTracer format - see https://dftracer.readthedocs.io/en/latest/trace_format.html + +The trace includes: + +- Timestamped events (nanosecond precision) +- Event IDs (mapped via ``categories-*.json``) +- Function entry/exit pairs +- Process/thread/rank information +- File access patterns + +Analyzing Traces with DFTracer Tools +------------------------------------- + +**DFTracer Utilities** + +Use DFTracer utilities for trace manipulation and inspection: + +.. code-block:: bash + + # Install DFTracer utilities + pip install dftracer-utils + + # Get trace statistics + dftracer-stats --input trace-*.pfw.gz + + # Merge multiple trace files (e.g., from MPI ranks) + dftracer-merge --input "trace-*-67890-*.pfw.gz" --output merged-trace.pfw.gz + + # Split large trace files + dftracer-split --input merged-trace.pfw.gz --output-dir split-traces/ + +**Documentation**: https://dftracer.readthedocs.io/en/latest/bash_utilities.html + +**DFAnalyzer - Comprehensive Analysis** + +For detailed analysis, use DFAnalyzer: + +.. code-block:: bash + + # Install DFAnalyzer + pip install dfanalyzer + + # Generate analysis report + dfanalyzer analyze --input trace-*.pfw.gz --output report.html + + # Interactive analysis + dfanalyzer interactive --input trace-*.pfw.gz + + # Export to CSV for custom analysis + dfanalyzer export --input trace-*.pfw.gz --format csv --output trace-data.csv + +**Documentation**: https://dftracer.readthedocs.io/projects/analyzer/en/latest/getting-started.html#usage + +Custom Analysis Scripts +----------------------- + +DataCrumbs also includes Jupyter notebooks for custom analysis: + +.. code-block:: bash + + # Navigate to analysis directory + cd $DATACRUMBS_INSTALL/share/datacrumbs/analysis + + # Install dependencies + pip install -r requirements.txt + + # Run analysis notebook + jupyter notebook analysis.ipynb + +Troubleshooting +=============== + +Permission Denied Errors +------------------------ + +.. code-block:: bash + + # Ensure sudo for server operations + sudo datacrumbs_server_run.sh + + # Check ulimits + ulimit -n + ulimit -l + + # Increase if needed + ulimit -n 1048576 + ulimit -l unlimited + +Server Won't Start +------------------ + +.. code-block:: bash + + # Check if already running + ps aux | grep datacrumbs + + # Check logs + cat $DATACRUMBS_TRACE_DIR/datacrumbs.log + + # Verify eBPF support + ls /sys/kernel/btf/vmlinux + + # Check for port conflicts + sudo lsof -i -P -n | grep datacrumbs + +No Traces Generated +------------------- + +.. code-block:: bash + + # Verify server is running + ps aux | grep datacrumbs + + # Check trace directory exists + ls -la $DATACRUMBS_TRACE_DIR + + # Verify application is instrumented + ldd ./myapp | grep datacrumbs + + # Check logs for errors + tail -f $DATACRUMBS_TRACE_DIR/datacrumbs.log + +High Overhead +------------- + +.. code-block:: bash + + # Reduce traced events + export DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS=10000 + + # Use profiling mode instead of tracing + # (Administrator must rebuild with -DDATACRUMBS_MODE_STR=PROFILE) + + # Path filtering (Administrator only - set at build time) + # Contact your administrator to enable path filtering + +Missing Events +-------------- + +.. code-block:: bash + + # Increase ring buffer size + # (Rebuild with -DDATACRUMBS_TRACE_RINGBUF_SIZE_MB=64) + + # Check for event drops + grep "dropped" $DATACRUMBS_TRACE_DIR/datacrumbs.log + +Best Practices +============== + +1. **Use binary tracking** (``datacrumbs_track``) - recommended for most use cases; apps run normally when DataCrumbs is not active +2. **Use wrapper mode** (``datacrumbs_run``) for simplicity and automatic server management +3. **Use server mode** for multiple short-running applications +4. **Use service mode** for continuous, production monitoring +5. **Path filtering** (administrator only) - contact your admin to enable filtering by specific paths +6. **Increase ring buffer** for high-throughput I/O applications +7. **Check logs** regularly for warnings or errors +8. **Clean old traces** periodically to free disk space +9. **Test on small workloads** before production runs +10. **Use composables** for specialized tracing needs +11. **Monitor overhead** and adjust thresholds as needed + +Examples +======== + +Example 1: Trace HDF5 Application +---------------------------------- + +.. code-block:: bash + + # Load environment + module load datacrumbs/0.0.4 + module load hdf5 + + # Run with tracing + datacrumbs_run --app "./hdf5_writer dataset.h5" + + # View trace files (.pfw.gz format) + ls -lh $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + +Example 2: Trace MPI-IO Application +------------------------------------ + +.. code-block:: bash + + # Load modules + module load datacrumbs/0.0.4 + module load openmpi + + # Run MPI application with tracing (64 processes on 4 nodes) + datacrumbs_run --app "./parallel_io" \ + --enable_mpi --nodes 4 --ppn 16 + + # View traces from all ranks (64 .pfw.gz files, one per rank) + ls -lh $DATACRUMBS_TRACE_DIR/trace-*-*-64-*.pfw.gz + +Example 3: Long-Running Server +------------------------------- + +.. code-block:: bash + + # Start server + sudo datacrumbs_server_run.sh + + # Track multiple applications + datacrumbs_track --executable ./app1 + datacrumbs_track --executable ./app2 + + # Run applications (they're automatically traced) + ./app1 & + ./app2 & + + # Wait for completion + wait + + # Stop server + sudo datacrumbs_server_stop.sh + + # View collected traces + ls -lh $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz + +Example 4: Filtered Tracing +---------------------------- + +**Prerequisite**: Administrator must have configured path filtering at build time. + +.. code-block:: bash + + # If administrator configured filtering for /scratch filesystem: + # cmake -DDATACRUMBS_INCLUSION_PATH=/scratch .. + + # Run application - only /scratch I/O will be traced + datacrumbs_run --app "./mixed_io" + + # Only /scratch I/O operations are in the trace + # View the generated trace file + ls -lh $DATACRUMBS_TRACE_DIR/trace-*.pfw.gz diff --git a/etc/datacrumbs/configs/docker.yaml b/etc/datacrumbs/configs/docker.yaml index 4867cd31..3ff6db14 100755 --- a/etc/datacrumbs/configs/docker.yaml +++ b/etc/datacrumbs/configs/docker.yaml @@ -20,4 +20,5 @@ capture_probes: - name: os_page_cache probe: kprobe type: header - file: @DATACRUMBS_KERNEL_HEADERS_PATH@/include/linux/pagemap.h \ No newline at end of file + file: @DATACRUMBS_KERNEL_HEADERS_PATH@/include/linux/pagemap.h + enable_explorer: false \ No newline at end of file diff --git a/etc/datacrumbs/configs/lead.yaml b/etc/datacrumbs/configs/lead.yaml index 1b0528d3..16c5f971 100755 --- a/etc/datacrumbs/configs/lead.yaml +++ b/etc/datacrumbs/configs/lead.yaml @@ -20,7 +20,28 @@ capture_probes: probe: kprobe type: binary file: /usr/lib/modules/5.14.0-570.55.1.1toss.t5.x86_64/weak-updates/lustre/fs/lustre.ko - - name: mpiio + regex: (?!.*__)(?!.*:)(?!.*constprop)(?!.*isra).* + - name: mdc + probe: kprobe + type: binary + file: /usr/lib/modules/5.14.0-570.55.1.1toss.t5.x86_64/weak-updates/lustre/fs/mdc.ko + regex: (?!.*__)(?!.*:)(?!.*constprop)(?!.*isra).* + - name: mgc + probe: kprobe + type: binary + file: /usr/lib/modules/5.14.0-570.55.1.1toss.t5.x86_64/weak-updates/lustre/fs/mgc.ko + regex: (?!.*__)(?!.*:)(?!.*constprop)(?!.*isra).* + - name: osc + probe: kprobe + type: binary + file: /usr/lib/modules/5.14.0-570.55.1.1toss.t5.x86_64/weak-updates/lustre/fs/osc.ko + regex: (?!.*__)(?!.*:)(?!.*constprop)(?!.*isra).* + - name: ptlrpc + probe: kprobe + type: binary + file: /usr/lib/modules/5.14.0-570.55.1.1toss.t5.x86_64/weak-updates/lustre/fs/ptlrpc.ko + regex: (?!.*__)(?!.*:)(?!.*constprop)(?!.*isra).* + - name: mpi probe: uprobe type: binary file: /opt/toss/openmpi/4.1/gnu/lib/libmpi.so @@ -29,4 +50,12 @@ capture_probes: probe: uprobe type: binary file: /home/haridev/software/ior/install/bin/ior - regex: .* \ No newline at end of file + regex: .* + - name: iomap + probe: kprobe + type: ksym + regex: ^iomap(?!.*cold).* + - name: xfs + probe: kprobe + type: ksym + regex: ^xfs(?!.*cold).* \ No newline at end of file diff --git a/etc/datacrumbs/configs/project.yaml.in b/etc/datacrumbs/configs/project.yaml.in index 2256ea49..dceaa302 100644 --- a/etc/datacrumbs/configs/project.yaml.in +++ b/etc/datacrumbs/configs/project.yaml.in @@ -7,29 +7,38 @@ install: bin_dir: ${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_BINDIR@ sbin_dir: ${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_SBINDIR@ lib_dir: ${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_LIBDIR@ - libexec_dir: ${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_LIBEXEC_DIR@/@PROJECT_NAME@ + libexec_dir: ${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_LIBEXECDIR@/@PROJECT_NAME@ etc_dir: ${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_SYSCONFDIR@/@PROJECT_NAME@ configs_dir: ${DATACRUMBS_INSTALL_ETC_DIR}/@CMAKE_INSTALL_CONFIGS_DIR@ data_dir: ${DATACRUMBS_INSTALL_ETC_DIR}/@CMAKE_INSTALL_DATA_DIR@ modules_dir: ${DATACRUMBS_INSTALL_ETC_DIR}/@CMAKE_INSTALL_MODULES_DIR@ probe_objects_dir: ${DATACRUMBS_INSTALL_LIBEXEC_DIR}/objects composable_dir: ${DATACRUMBS_INSTALL_LIBEXEC_DIR}/composable + compose_bin: ${DATACRUMBS_INSTALL_LIBEXEC_DIR}/@CMAKE_INSTALL_SBINDIR@/${DATACRUMBS_INSTALL_USER} client: lib: ${DATACRUMBS_INSTALL_LIB_DIR}/libdatacrumbs_client.so bin: ${DATACRUMBS_INSTALL_LIBEXEC_DIR}/@CMAKE_INSTALL_SBINDIR@/${DATACRUMBS_USER} trace: dir_pattern: @DATACRUMBS_CONFIGURED_TRACE_DIR@/%YY%/%MM%/%DD% -log: - dir: @DATACRUMBS_CONFIGURED_LOG_DIR@ +job: + scheduler: @DATACRUMBS_SCHEDULER_TYPE@ + run: @DATACRUMBS_SCHEDULER_RUN_CMD@ + node_flag: @DATACRUMBS_SCHEDULER_NODES_CMD_OPT@ + ppn_flag: @DATACRUMBS_SCHEDULER_PPN_CMD_OPT@ + other_flags: @DATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS@ + id_var: @DATACRUMBS_SCHEDULER_JOBID_ENV_VAR@ server: load_timeout: ${DATACRUMBS_SERVER_TIMEOUT_USER:-600} - pid_file: /var/run/datacrumbs.pid - runid_file: /tmp/datacrumbs.runid + run_dir: @DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@ + run_id_file: ${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs.runid + run_id: $(if [ "${!DATACRUMBS_JOB_ID_VAR}" == "" ]; then if [[ -f "${DATACRUMBS_SERVER_RUN_ID_FILE}" ]]; then cat "$DATACRUMBS_SERVER_RUN_ID_FILE" 2>/dev/null; else echo $(date +"%Y%m%d%H%M%S"); fi else echo ${!DATACRUMBS_JOB_ID_VAR}; fi) + pid_file: ${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.pid + systemd_pid_file: ${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-systemd-${DATACRUMBS_SERVER_RUN_ID}.pid + ready_file: ${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.ready + status_file: ${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.json + env_file: ${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.env module: 0 - preamble: -job: - run: flux run - node_flag: -N - ppn_flag: --tasks-per-node - other_flags: - id_var: FLUX_JOB_ID \ No newline at end of file + preamble: +log: + dir: @DATACRUMBS_CONFIGURED_LOG_DIR@ + file: ${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${DATACRUMBS_SERVER_RUN_ID}.log \ No newline at end of file diff --git a/etc/datacrumbs/data/probes-exclusion-haridev-lead.json b/etc/datacrumbs/data/probes-exclusion-haridev-lead.json index cb5c8f92..f80a1fce 100644 --- a/etc/datacrumbs/data/probes-exclusion-haridev-lead.json +++ b/etc/datacrumbs/data/probes-exclusion-haridev-lead.json @@ -1 +1 @@ -[{"type":4,"name":"custom1","functions":[],"bpf_path":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2},{"type":0,"name":"sys","functions":["fork","sys","ioctl","newfstatat","ni_syscall","old_mmap","old_select","io_getevents","io_getevents_time32","io_pgetevents","io_pgetevents_time32","epoll_create1","epoll_ctl","epoll_pwait","epoll_pwait2","ioprio_set","ioprio_get","umount","mount","pivot_root","chroot","vhangup","pipe2","quotactl","quotactl_fd","getdents64","pselect6","pselect6_time32","ppoll","ppoll_time32","signalfd4","vmsplice","splice","tee","timerfd_create","timerfd_settime","timerfd_gettime","timerfd_gettime32","timerfd_settime32","utimensat","utimensat_time32","acct","capget","capset","personality","waitid","set_tid_address","unshare","futex","futex_time32","get_robust_list","set_robust_list","futex_waitv","futex_wake","futex_wait","futex_requeue","nanosleep","nanosleep_time32","getitimer","setitimer","kexec_load","init_module","delete_module","timer_create","timer_gettime","timer_getoverrun","timer_settime","timer_delete","clock_settime","clock_gettime","clock_getres","clock_nanosleep","timer_gettime32","timer_settime32","clock_settime32","clock_gettime32","clock_getres_time32","clock_nanosleep_time32","syslog","ptrace","sched_setparam","sched_setscheduler","sched_getscheduler","sched_getparam","sched_setaffinity","sched_getaffinity","sched_yield","sched_get_priority_max","sched_get_priority_min","sched_rr_get_interval","sched_rr_get_interval_time32","restart_syscall","kill","tkill","tgkill","sigaltstack","rt_sigsuspend","rt_sigaction","rt_sigprocmask","rt_sigpending","rt_sigtimedwait","rt_sigtimedwait_time32","rt_sigqueueinfo","setpriority","getpriority","reboot","setregid","setgid","setreuid","setuid","setresuid","getresuid","setresgid","getresgid","setfsuid","setfsgid","times","setpgid","getpgid","getsid","setsid","getgroups","setgroups","newuname","sethostname","setdomainname","getrlimit","setrlimit","getrusage","umask","prctl","getcpu","gettimeofday","settimeofday","adjtimex","adjtimex_time32","getpid","getppid","getuid","geteuid","getgid","getegid","gettid","sysinfo","mq_open","mq_unlink","mq_timedsend","mq_timedreceive","mq_notify","mq_getsetattr","mq_timedreceive_time32","mq_timedsend_time32","msgget","old_msgctl","msgctl","msgrcv","msgsnd","semget","semctl","old_semctl","semtimedop","semtimedop_time32","semop","shmget","old_shmctl","shmctl","shmat","shmdt","socket","socketpair","bind","listen","accept","connect","getsockname","getpeername","sendto","recvfrom","setsockopt","getsockopt","shutdown","sendmsg","recvmsg","readahead","brk","add_key","request_key","keyctl","clone","clone3","execve","swapon","swapoff","get_mempolicy","set_mempolicy","rt_tgsigqueueinfo","perf_event_open","accept4","recvmmsg","recvmmsg_time32","wait4","prlimit64","name_to_handle_at","open_by_handle_at","clock_adjtime","clock_adjtime32","setns","sendmmsg","kcmp","finit_module","sched_setattr","sched_getattr","renameat2","seccomp","getrandom","memfd_create","bpf","execveat","userfaultfd","membarrier","mlock2","pkey_mprotect","pkey_alloc","pkey_free","rseq","open_tree","move_mount","mount_setattr","fsopen","fsconfig","fsmount","fspick","pidfd_send_signal","pidfd_getfd","landlock_create_ruleset","landlock_add_rule","landlock_restrict_self","memfd_secret","set_mempolicy_home_node","cachestat","map_shadow_stack","ioperm","pciconfig_read","pciconfig_write","pciconfig_iobase","spu_run","spu_create","chmod","chown","lchown","epoll_create","eventfd","signalfd","sendfile","alarm","getpgrp","pause","time","time32","futimesat_time32","utime32","utimes_time32","select","poll","epoll_wait","recv","send","oldumount","uselib","stime","stime32","sigpending","sigprocmask","sgetmask","ssetmask","signal","nice","kexec_file_load","waitpid","socketcall","old_readdir","gethostname","uname","olduname","ipc"]},{"type":2,"name":"libc","functions":["fnmatch@@GLIBC_2.2.5","sched_getaffinity@@GLIBC_2.3.4","getgrnam_r@@GLIBC_2.2.5","sysctl@GLIBC_2.2.5","forkpty@@GLIBC_2.34","getpwnam_r@@GLIBC_2.2.5","getgrgid_r@@GLIBC_2.2.5","openpty@@GLIBC_2.34","fdetach@GLIBC_2.2.5","gai_error@GLIBC_2.2.5","res_send@@GLIBC_2.34","putmsg@GLIBC_2.2.5","fmemopen@GLIBC_2.2.5","forkpty@GLIBC_2.2.5","getpwuid_r@@GLIBC_2.2.5","res_mailok@@GLIBC_2.34","getspnam_r@@GLIBC_2.2.5","quick_exit@@GLIBC_2.24","logwtmp@@GLIBC_2.34","logout@@GLIBC_2.34","fopencookie@@GLIBC_2.2.5","gai_cancel@@GLIBC_2.34","glob64@GLIBC_2.2.5","getgrent_r@@GLIBC_2.2.5","_getopt_internal_r","frexpf128","res_search@@GLIBC_2.34","_nl_select_era_entry","finitef128_do_not_use","copysignf32x","gai_error@@GLIBC_2.34","copysignf32","getmsg@GLIBC_2.2.5","_nl_get_walt_digit","_create_xid","sstk@GLIBC_2.2.5","_nl_cleanup_time","_itoa_word","_nl_unload_domain","_getopt_long_r","getspent_r@@GLIBC_2.2.5","_getopt_long_only_r","_option_is_end","_IO_str_count","_nl_cleanup_ctype","_des_crypt","_getopt_internal","_openchild","re_string_realloc_buffers","context_reuse","hex2bin","x_putint32","x_getpostn","gai_suspend@@GLIBC_2.34","duplicate_node","bin2hex","tr_break@GLIBC_2.2.5","_nl_init_era_entries.part.0","exec_comm","gethostbyname2_r@@GLIBC_2.2.5","_nl_make_l10nflist.localalias","_nl_find_msg","gethostent_r@@GLIBC_2.2.5","start_thread","get_kernel_syms@GLIBC_2.2.5","get_scope","add_prefixlist","match_prefix","in6aicmp","fini","exchange","parse_branch","parse_expression","authdes_nextverf","re_search_internal","gr_map_free","merge_state_with_log","until_short","get_subexp_sub","clean_state_log_if_needed","canon_doc_option","extend_buffers","check_arrival_expand_ecl_sub","check_node_accept_bytes","sub_epsilon_src_nodes","harmless","pmap_rmtcall@GLIBC_2.2.5","merge_state_array","re_acquire_state_context","w_addword","check_dst_limits","check_halt_state_context","context_send_common","utf8_encode.part.0","build_charclass","pop_fail_stack","time_ifunc","match_ctx_clean","re_dfa_add_node","free_charset","build_upper_buffer","re_node_set_add_intersect","free_state","search_cur_bkref_entry","re_node_set_compare","print_and_abort","internal_getgrouplist","clear_once_control","send_vc","shm_open@GLIBC_2.2.5","fstab_init","lio_listio64@@GLIBC_2.34","_nl_init_alt_digit","parse_rule","free_tree","parse_offset","decode_name","argp_hol","x_putbytes","strcspn_ifunc","ext_match","compute_change","ranged_convert","ydhms_diff","name_to_database_index","binary_hnok","memchr_ifunc","get_mnt_entry","end_pattern","str_append","ptrlist_add__","critical_factorization","argp_doc","gethosts","read_alias_file","authnone_validate","ldexpf32","memcmp_ifunc","strrchr_ifunc","strncat_ifunc","strlen_ifunc","gai_suspend@GLIBC_2.2.5","strcpy_ifunc","re_string_context_at","_int_realloc","next_line","sysmalloc","arena_get_retry","arena_get2.part.0","fetch_number","register_state","des_setparity@GLIBC_2.2.5","ptmalloc_init.part.0","process_long_option","internal_fallocate64","build_wcs_upper_buffer","try_file","get_locked_global","key_call_socket","read_conf_file.isra.0","change_sigmask","check_arrival_expand_ecl","resolv_conf_matches","calc_eclosure_iter","arg_bool","duplicate_node_closure","strspn_ifunc","fts_build","prefixcmp","get_nprocs_cpu_online","initshells","fstab_free","add_request_to_runlist","duplicate_tree","tdestroy_recurse","strpbrk_ifunc","peek_token","glob@GLIBC_2.2.5","argp_args_levels.isra.0","strcmp_ifunc","array_add__","x_setpostn","authdes_refresh","fstab_convert","create_token_tree","realpath_stk","authdes_marshal","check_arrival","fts_alloc.isra.0","internal_fnmatch","x_putlong","expand_bkref_cache","msgctl@@GLIBC_2.2.5","pmap_getport@GLIBC_2.2.5","quick_exit@GLIBC_2.10","authnone_verf","get_next_alias","freeres","sock_eq","hol_cousin_cluster_cmp.isra.0","ftw_dir","check_node_accept","decide_maybe_mmap","vtimes_one.part.0","internal_addseverity","build_trtable","adjust_wide_data","getaliasbyname_r@@GLIBC_2.2.5","alloc_perturb","_nl_get_era_entry","scalbnf64x","print_header","set_binding_values.part.0","get_nproc_stat","update_cur_sifted_state","authdes_destroy","walker","strncpy_ifunc","helper_thread","parse_dollars","authnone_create@GLIBC_2.2.5","scalbnf128","tzset_internal","locked_vfxprintf","wcsrchr_ifunc","_Unwind_GetCFA","get_free_list","new_do_write","wait_on_socket","frexpf32","find_derivation","option_alloc","detach_arena.part.0","_int_malloc","buffer_free","sched_setaffinity@@GLIBC_2.3.4","register_file","key_gendes@GLIBC_2.2.5","skip","send_dg","_res_hconf_trim_domain","gethostbyname3_context","authnone_create_once","decrement_at_index.part.0","lower_subexp","scalbnf32","strncmp_ifunc","isinff128_do_not_use","nrl_domainname","freecache","hol_entry_short_iterate","authdes_pk_create@GLIBC_2.2.5","do_system","getpwent_r@@GLIBC_2.2.5","gethostbyname_r@@GLIBC_2.2.5","unwind_stop","create_thread","_IO_wstrn_overflow","token.part.0","wcsncmp_ifunc","find_module_idx","indent_to","hack_digit","open_socket","getttyname_r","_IO_obstack_xsputn","reopen","peek_token_bracket","fts_sort","asctime_internal","maybe_init","alias_compare","fts_stat.isra.0","ecb_crypt@GLIBC_2.2.5","time_syscall","add_module","sift_states_backward","do_release_shlib","do_release_all","new_composite_name","memset_ifunc","x_destroy","free_category","re_compile_internal","msort_with_tmp.part.0","fmemopen@@GLIBC_2.22","free_dfa_content","try_nocreate","strcat_ifunc","_IO_cookie_read","_IO_cookie_seek","space","_IO_cookie_close","parse_reg_exp","fts_palloc","_IO_fopencookie","_IO_str_finish","_nl_expand_alias","copysignf128","_IO_default_seekpos","_int_free","getpmsg@GLIBC_2.2.5","_IO_getwc","build_charclass_op","rtime@GLIBC_2.2.5","unlock","uselib@GLIBC_2.2.5","bdflush@GLIBC_2.2.5","derivation_compare","object_compare","_res_hconf_init","sched_setaffinity@GLIBC_2.3.3","internal_fnwmatch","_argp_input","end_wpattern","ext_wmatch","pcmp","_nl_archive_subfreeres","check_dst_limits_calc_pos_1","_option_is_short","try_dir","argp_default_parser","pmap_getmaps@GLIBC_2.2.5","_seterr_reply@GLIBC_2.2.5","matches_last_entry","parse_backtick","aio_fsync64@@GLIBC_2.34","perror_internal","maybe_script_execute","add_alias2.part.0","authdes_create@GLIBC_2.2.5","munmap_chunk","hst_map_free","_nl_get_alt_digit","re_node_set_init_union","gai_cancel@GLIBC_2.2.5","usage_argful_short_opt","re_acquire_state","copysignf64x","getpublickey@GLIBC_2.2.5","ldexpf64","check_one_fd","re_compile_fastmap_iter","_nl_parse_alt_digit","authdes_getucred@GLIBC_2.2.5","modff128","_Unwind_ForcedUnwind","re_node_set_merge","check_subexp_matching_top","_nl_explode_name","isnanf128_do_not_use","ftw_startup","key_get_conv@GLIBC_2.2.5","_nl_postload_ctype","scalbnf64","re_search_stub","fattach@GLIBC_2.2.5","hol_entry_qcmp","w_addmem","eval_expr_multdiv","cfree@GLIBC_2.2.5"],"binary_path":"/usr/lib64/libc.so.6"},{"type":2,"name":"hdf5","functions":["H5SL_above","H5SL_add","H5SL_below:0x2794b0","H5SL_close:0x27a240","H5SL_count:0x26f830","H5SL_create:0x26f680","H5SL_destroy:0x27a170","H5SL_find:0x278e80","H5SL_first:0x27a020","H5SL_free:0x27a120","H5SL_greater:0x2788a0","H5SL_init:0x26f5c0","H5SL_insert:0x26f840","H5SL_item:0x27a060","H5SL_iterate:0x27a070","H5SL_last:0x27a050","H5SL_less:0x278260","H5SL_next:0x27a030","H5SL_prev:0x27a040","H5SL_release:0x27a0c0","H5SL_remove:0x26f8f0","H5SL_remove_first:0x2776f0","H5SL_search:0x277c10","H5SL_term_package:0x26f600","H5SM__get_index:0x27b480","H5SM__get_mesg_count_test:0x281610","H5SM__list_free:0x27f4f0","H5SM__message_compare:0x2811c0","H5SM__message_decode:0x281500","H5SM__message_encode:0x2813b0","H5SM__table_free:0x27f4b0","H5SM_can_share:0x27b940","H5SM_delete:0x27d490","H5SM_get_fheap_addr:0x27b780","H5SM_get_info:0x27e590","H5SM_get_refcount:0x27ed00","H5SM_ih_size:0x27ff50","H5SM_init:0x27ada0","H5SM_list_debug:0x27f990","H5SM_reconstitute:0x27ece0","H5SM_table_debug:0x27f530","H5SM_try_share:0x27bc00","H5SM_type_shared:0x27b580","H5T__alloc:0x2831b0","H5T__array_create:0x290bf0","H5T__bit_copy:0x2917f0","H5T__bit_dec:0x2928f0","H5T__bit_find:0x2920e0","H5T__bit_get_d:0x291d20","H5T__bit_inc:0x2927d0","H5T__bit_neg:0x292a00","H5T__bit_set:0x291db0","H5T__bit_set_d:0x291d70","H5T__bit_shift:0x291eb0","H5T__commit:0x294900","H5T__commit_anon:0x2950e0","H5T__commit_named:0x293640","H5T__conv_array:0x301480","H5T__conv_b_b:0x2fc5d0","H5T__conv_double_float:0x2f3330","H5T__conv_double_int:0x2ef570","H5T__conv_double_ldouble:0x2f3b30","H5T__conv_double_llong:0x2f1e10","H5T__conv_double_long:0x2f08f0","H5T__conv_double_schar:0x2ece10","H5T__conv_double_short:0x2ee170","H5T__conv_double_uchar:0x2ed7c0","H5T__conv_double_uint:0x2eff20","H5T__conv_double_ullong:0x2f2780","H5T__conv_double_ulong:0x2f1260","H5T__conv_double_ushort:0x2eeb70","H5T__conv_enum:0x2ff6f0","H5T__conv_enum_numeric:0x2ffce0","H5T__conv_f_f:0x2e2430","H5T__conv_f_i:0x2e43e0","H5T__conv_float_double:0x2ec590","H5T__conv_float_int:0x2e86a0","H5T__conv_float_ldouble:0x2ec9c0","H5T__conv_float_llong:0x2eae70","H5T__conv_float_long:0x2e9750","H5T__conv_float_schar:0x2e5fa0","H5T__conv_float_short:0x2e72f0","H5T__conv_float_uchar:0x2e6940","H5T__conv_float_uint:0x2e8ed0","H5T__conv_float_ullong:0x2eb8c0","H5T__conv_float_ulong:0x2ea1a0","H5T__conv_float_ushort:0x2e7cc0","H5T__conv_i_f:0x299b60","H5T__conv_i_i:0x298db0","H5T__conv_int_double:0x2b45f0","H5T__conv_int_float:0x2b3340","H5T__conv_int_ldouble:0x2b5b30","H5T__conv_int_llong:0x2b2900","H5T__conv_int_long:0x2b1ec0","H5T__conv_int_schar:0x2afdc0","H5T__conv_int_short:0x2b0be0","H5T__conv_int_uchar:0x2b04a0","H5T__conv_int_uint:0x2b1a80","H5T__conv_int_ullong:0x2b2d40","H5T__conv_int_ulong:0x2b2300","H5T__conv_int_ushort:0x2b1330","H5T__conv_ldouble_double:0x2fb570","H5T__conv_ldouble_float:0x2fad20","H5T__conv_ldouble_int:0x2f6960","H5T__conv_ldouble_llong:0x2f95a0","H5T__conv_ldouble_long:0x2f7e20","H5T__conv_ldouble_schar:0x2f3f80","H5T__conv_ldouble_short:0x2f5450","H5T__conv_ldouble_uchar:0x2f49e0","H5T__conv_ldouble_uint:0x2f7390","H5T__conv_ldouble_ullong:0x2fa010","H5T__conv_ldouble_ulong:0x2f8890","H5T__conv_ldouble_ushort:0x2f5ea0","H5T__conv_llong_double:0x2d56f0","H5T__conv_llong_float:0x2d3690","H5T__conv_llong_int:0x2d1cc0","H5T__conv_llong_ldouble:0x2d73e0","H5T__conv_llong_long:0x2d2b80","H5T__conv_llong_schar:0x2cff90","H5T__conv_llong_short:0x2d0df0","H5T__conv_llong_uchar:0x2d06a0","H5T__conv_llong_uint:0x2d2450","H5T__conv_llong_ullong:0x2d3220","H5T__conv_llong_ulong:0x2d2da0","H5T__conv_llong_ushort:0x2d1560","H5T__conv_long_double:0x2c3250","H5T__conv_long_float:0x2c11f0","H5T__conv_long_int:0x2bf820","H5T__conv_long_ldouble:0x2c4f40","H5T__conv_long_llong:0x2c0b50","H5T__conv_long_schar:0x2bdaf0","H5T__conv_long_short:0x2be950","H5T__conv_long_uchar:0x2be200","H5T__conv_long_uint:0x2bffb0","H5T__conv_long_ullong:0x2c0d70","H5T__conv_long_ulong:0x2c06e0","H5T__conv_long_ushort:0x2bf0c0","H5T__conv_noop:0x297600","H5T__conv_order:0x297670","H5T__conv_order_opt:0x297900","H5T__conv_ref:0x2fe7c0","H5T__conv_s_s:0x2fbdc0","H5T__conv_schar_double:0x29e6c0","H5T__conv_schar_float:0x29dc80","H5T__conv_schar_int:0x29be30","H5T__conv_schar_ldouble:0x29f100","H5T__conv_schar_llong:0x29d250","H5T__conv_schar_long:0x29c820","H5T__conv_schar_short:0x29b400","H5T__conv_schar_uchar:0x29afe0","H5T__conv_schar_uint:0x29c260","H5T__conv_schar_ullong:0x29d6a0","H5T__conv_schar_ulong:0x29cc70","H5T__conv_schar_ushort:0x29b850","H5T__conv_short_double:0x2a8260","H5T__conv_short_float:0x2a71e0","H5T__conv_short_int:0x2a5340","H5T__conv_short_ldouble:0x2a92e0","H5T__conv_short_llong:0x2a6790","H5T__conv_short_long:0x2a5d40","H5T__conv_short_schar:0x2a40a0","H5T__conv_short_uchar:0x2a47b0","H5T__conv_short_uint:0x2a5770","H5T__conv_short_ullong:0x2a6be0","H5T__conv_short_ulong:0x2a6190","H5T__conv_short_ushort:0x2a4ef0","H5T__conv_struct:0x2fd780","H5T__conv_struct_opt:0x2fdf30","H5T__conv_struct_subset:0x2fd770","H5T__conv_uchar_double:0x2a2bf0","H5T__conv_uchar_float:0x2a21b0","H5T__conv_uchar_int:0x2a0850","H5T__conv_uchar_ldouble:0x2a3630","H5T__conv_uchar_llong:0x2a1930","H5T__conv_uchar_long:0x2a10b0","H5T__conv_uchar_schar:0x29fb80","H5T__conv_uchar_short:0x29ffd0","H5T__conv_uchar_uint:0x2a0c80","H5T__conv_uchar_ullong:0x2a1d70","H5T__conv_uchar_ulong:0x2a14f0","H5T__conv_uchar_ushort:0x2a0410","H5T__conv_uint_double:0x2bb070","H5T__conv_uint_float:0x2b9e40","H5T__conv_uint_int:0x2b88e0","H5T__conv_uint_ldouble:0x2bc5a0","H5T__conv_uint_llong:0x2b95c0","H5T__conv_uint_long:0x2b8d40","H5T__conv_uint_schar:0x2b7080","H5T__conv_uint_short:0x2b7c90","H5T__conv_uint_uchar:0x2b7670","H5T__conv_uint_ullong:0x2b9a00","H5T__conv_uint_ulong:0x2b9180","H5T__conv_uint_ushort:0x2b82b0","H5T__conv_ullong_double:0x2de570","H5T__conv_ullong_float:0x2dc420","H5T__conv_ullong_int:0x2dacb0","H5T__conv_ullong_ldouble:0x2e0360","H5T__conv_ullong_llong:0x2dbf80","H5T__conv_ullong_long:0x2db880","H5T__conv_ullong_schar:0x2d9430","H5T__conv_ullong_short:0x2da050","H5T__conv_ullong_uchar:0x2d9a40","H5T__conv_ullong_uint:0x2db290","H5T__conv_ullong_ulong:0x2dbd30","H5T__conv_ullong_ushort:0x2da680","H5T__conv_ulong_double:0x2cc0d0","H5T__conv_ulong_float:0x2c9f80","H5T__conv_ulong_int:0x2c8810","H5T__conv_ulong_ldouble:0x2cdec0","H5T__conv_ulong_llong:0x2c9880","H5T__conv_ulong_long:0x2c93e0","H5T__conv_ulong_schar:0x2c6f90","H5T__conv_ulong_short:0x2c7bb0","H5T__conv_ulong_uchar:0x2c75a0","H5T__conv_ulong_uint:0x2c8df0","H5T__conv_ulong_ullong:0x2c9d30","H5T__conv_ulong_ushort:0x2c81e0","H5T__conv_ushort_double:0x2add40","H5T__conv_ushort_float:0x2acd10","H5T__conv_ushort_int:0x2ab3b0","H5T__conv_ushort_ldouble:0x2aed70","H5T__conv_ushort_llong:0x2ac490","H5T__conv_ushort_long:0x2abc10","H5T__conv_ushort_schar:0x2aa310","H5T__conv_ushort_short:0x2aaf10","H5T__conv_ushort_uchar:0x2aa910","H5T__conv_ushort_uint:0x2ab7e0","H5T__conv_ushort_ullong:0x2ac8d0","H5T__conv_ushort_ulong:0x2ac050","H5T__conv_vlen:0x300080","H5T__create:0x28abf0","H5T__enum_create:0x302dd0","H5T__enum_insert:0x303040","H5T__free:0x283af0","H5T__get_array_dims:0x2911b0","H5T__get_array_ndims:0x291050","H5T__get_create_plist:0x294720","H5T__get_member_name:0x3040c0","H5T__get_member_size:0x296610","H5T__get_member_value:0x303450","H5T__get_path_table_npaths:0x290ba0","H5T__init_native_float_types:0x306040","H5T__init_native_internal:0x309e00","H5T__insert:0x2967f0","H5T__open_name:0x295770","H5T__print_path_stats:0x302060","H5T__ref_reclaim:0x30d890","H5T__ref_set_loc:0x30d430","H5T__reverse_order:0x296ef0","H5T__sort_name:0x3047c0","H5T__sort_value:0x304520","H5T__update_packed:0x296780","H5T__upgrade_version:0x2909b0","H5T__visit:0x30dc90","H5T__vlen_create:0x30e520","H5T__vlen_reclaim:0x30ea90","H5T__vlen_set_loc:0x30e820","H5T_already_vol_managed:0x295cf0","H5T_close:0x283d10","H5T_close_real:0x2832c0","H5T_cmp:0x2840a0","H5T_construct_datatype:0x295930","H5T_convert:0x285ab0","H5T_convert_committed_datatype:0x285fa0","H5T_convert_with_ctx:0x2859d0","H5T_copy:0x286f50","H5T_copy_reopen:0x28a200","H5T_debug:0x302070","H5T_decode:0x2864e0","H5T_detect_class:0x2825a0","H5T_encode:0x282cc0","H5T_get_actual_type:0x295b00","H5T_get_class:0x282450","H5T_get_force_conv:0x296ee0","H5T_get_member_offset:0x296140","H5T_get_member_type:0x2965a0","H5T_get_named_type:0x295af0","H5T_get_nmembers:0x303f20","H5T_get_offset:0x30a280","H5T_get_order:0x30ae70","H5T_get_precision:0x30bd20","H5T_get_ref_type:0x2860e0","H5T_get_sign:0x304aa0","H5T_get_size:0x284090","H5T_get_super:0x289e80","H5T_init:0x28b230","H5T_invoke_vol_optional:0x295d00","H5T_is_immutable:0x285f60","H5T_is_named:0x285f70","H5T_is_numeric_with_unusual_unused_bits:0x290bb0","H5T_is_relocatable:0x2908a0","H5T_is_sensible:0x286100","H5T_is_variable_str:0x282800","H5T_is_vl_storage:0x2908e0","H5T_link:0x293ce0","H5T_lock:0x282fc0","H5T_nameof:0x285ed0","H5T_noop_conv:0x285880","H5T_oloc:0x285e40","H5T_open:0x295190","H5T_own_vol_obj:0x290b20","H5T_patch_file:0x290ae0","H5T_patch_vlen_file:0x290b00","H5T_path_bkg:0x2859c0","H5T_path_compound_subset:0x285990","H5T_path_find:0x2885b0","H5T_path_noop:0x285840","H5T_reclaim:0x296e40","H5T_reclaim_cb:0x296db0","H5T_restore_refresh_state:0x295c10","H5T_save_refresh_state:0x295b20","H5T_set_loc:0x286130","H5T_set_version:0x290a20","H5T_term_package:0x281fa0","H5T_top_term_package:0x283500","H5T_unregister:0x284d00","H5T_update_shared:0x2948d0","H5T_vlen_reclaim_elmt:0x30ed60","H5S__extent_copy_real:0x236cc0","H5S__extent_release:0x236670","H5S__get_diminfo_status_test:0x26cc70","H5S__get_rebuild_status_test:0x26cbe0","H5S__hyper_get_op_gen:0x249670","H5S__hyper_project_intersection:0x255f70","H5S__hyper_rebuild:0x250d80","H5S__internal_consistency_test:0x26ccd0","H5S__modify_select:0x25e1a0","H5S__sel_iter_close_cb:0x26c030","H5S__verify_offsets:0x26cd90","Nflock:0x61f30","Pflock:0x61ee0"]},{"type":1,"name":"bio","functions":["bio_get_last_bvec","bio_will_gap","bio_integrity_init"]},{"type":3,"name":"python","functions":[],"binary_path":"/usr/lib64/libpython3.9.so","provider":"python"},{"type":1,"name":"xfs","functions":["xfs_dir2_block_addname","xfs_dir2_block_getdents","xfs_dir2_block_log_leaf","xfs_dir2_block_lookup","xfs_dir2_block_lookup_int","xfs_dir2_block_removename","xfs_dir2_block_replace","xfs_dir2_block_sfsize","xfs_dir2_block_sort","xfs_dir2_block_to_leaf","xfs_dir2_block_to_sf","xfs_dir2_compname","xfs_dir2_data_bestfree_p","xfs_dir2_data_entry_tag_p","xfs_dir2_data_freefind","xfs_dir2_data_freeinsert","xfs_dir2_data_freeremove.constprop.0","xfs_dir2_data_freescan","xfs_dir2_data_get_ftype","xfs_dir2_data_log_entry","xfs_dir2_data_log_header","xfs_dir2_data_log_unused","xfs_dir2_data_make_free","xfs_dir2_data_put_ftype","xfs_dir2_data_use_free","xfs_dir2_free_hdr_from_disk","xfs_dir2_free_hdr_to_disk.isra.0","xfs_dir2_free_log_bests.isra.0","xfs_dir2_free_read","xfs_dir2_grow_inode","xfs_dir2_hashname","xfs_dir2_isblock","xfs_dir2_isleaf","xfs_dir2_leaf_addname","xfs_dir2_leaf_getdents","xfs_dir2_leaf_hdr_from_disk","xfs_dir2_leaf_hdr_to_disk","xfs_dir2_leaf_lasthash","xfs_dir2_leaf_lookup","xfs_dir2_leaf_lookup_int","xfs_dir2_leaf_readbuf","xfs_dir2_leaf_removename","xfs_dir2_leaf_replace","xfs_dir2_leaf_search_hash","xfs_dir2_leaf_to_block","xfs_dir2_leaf_to_node","xfs_dir2_leaf_trim_data","xfs_dir2_leafn_add","xfs_dir2_leafn_lookup_for_addname","xfs_dir2_leafn_lookup_for_entry","xfs_dir2_leafn_lookup_int","xfs_dir2_leafn_order","xfs_dir2_leafn_rebalance.constprop.0","xfs_dir2_leafn_remove","xfs_dir2_leafn_split","xfs_dir2_leafn_toosmall","xfs_dir2_leafn_unbalance","xfs_dir2_namecheck","xfs_dir2_node_add_datablk","xfs_dir2_node_addname","xfs_dir2_node_addname_int","xfs_dir2_node_find_freeblk","xfs_dir2_node_lookup","xfs_dir2_node_removename","xfs_dir2_node_replace","xfs_dir2_node_to_leaf","xfs_dir2_node_trim_free","xfs_dir2_sf_addname","xfs_dir2_sf_addname_easy","xfs_dir2_sf_addname_hard","xfs_dir2_sf_create","xfs_dir2_sf_entsize","xfs_dir2_sf_get_ftype","xfs_dir2_sf_get_ino","xfs_dir2_sf_get_parent_ino","xfs_dir2_sf_getdents.isra.0","xfs_dir2_sf_lookup","xfs_dir2_sf_nextentry","xfs_dir2_sf_put_ftype","xfs_dir2_sf_put_ino","xfs_dir2_sf_put_parent_ino","xfs_dir2_sf_removename","xfs_dir2_sf_replace","xfs_dir2_sf_to_block","xfs_dir2_sf_toino4","xfs_dir2_sf_toino8","xfs_dir2_sf_verify","xfs_dir2_shrink_inode","xfs_dir3_block_init","xfs_dir3_block_read","xfs_dir3_block_read_verify","xfs_dir3_block_verify","xfs_dir3_block_write_verify","xfs_dir3_data_end_offset","xfs_dir3_data_init","xfs_dir3_data_read","xfs_dir3_data_read_verify","xfs_dir3_data_reada_verify","xfs_dir3_data_readahead","xfs_dir3_data_verify","xfs_dir3_data_write_verify","xfs_dir3_free_get_buf","xfs_dir3_free_read_verify","xfs_dir3_free_verify","xfs_dir3_free_write_verify","xfs_dir3_get_dtype","xfs_dir3_leaf_check_int","xfs_dir3_leaf_compact","xfs_dir3_leaf_compact_x1","xfs_dir3_leaf_find_entry","xfs_dir3_leaf_find_stale","xfs_dir3_leaf_get_buf","xfs_dir3_leaf_init","xfs_dir3_leaf_log_bests.isra.0","xfs_dir3_leaf_log_ents","xfs_dir3_leaf_log_header","xfs_dir3_leaf_log_tail.isra.0","xfs_dir3_leaf_read","xfs_dir3_leaf_read_verify","xfs_dir3_leaf_verify","xfs_dir3_leaf_write_verify","xfs_dir3_leafn_moveents","xfs_dir3_leafn_moveents.part.0","xfs_dir3_leafn_read","xfs_dir_canenter","xfs_dir_cilookup_result","xfs_dir_createname","xfs_dir_fsync","xfs_dir_init","xfs_dir_ino_validate","xfs_dir_isempty","xfs_dir_lookup","xfs_dir_open","xfs_rmaproot_init","xfs_sb_from_disk","xfs_sb_get_secondary","xfs_sb_good_version","xfs_sb_mount_common","xfs_sb_quiet_read_verify","xfs_sb_quota_from_disk","xfs_sb_read_secondary","xfs_sb_read_verify","xfs_sb_to_disk","xfs_sb_validate_fsb_count","xfs_sb_version_to_features","xfs_sb_write_verify","xfs_sbblock_init","xfs_sbversion_add_attr2","xfs_seek_iomap_begin","xfs_setsize_buftarg_early","xfs_dir_removename","xfs_dir_replace","xfs_dir_startup","xfs_imap_lookup","xfs_imap_valid.part.0","xfs_inobt_first_free_inode","xfs_inobt_get_maxrecs","xfs_inobt_get_minrecs","xfs_inobt_init_key_from_rec","xfs_inobt_init_ptr_from_cur","xfs_inobt_insert","xfs_inobt_insert_sprec","xfs_inobt_maxlevels_ondisk","xfs_inobt_update.isra.0","xfs_dialloc_ag","xfs_dialloc_ag_finobt_near","xfs_dialloc_ag_finobt_newino.isra.0","xfs_dialloc_ag_inobt","xfs_dialloc_ag_update_inobt","xfs_difree_finobt","xfs_difree_inobt","xfs_difree_inode_chunk.isra.0","xfs_dinode_verify.part.0","xfs_dinode_verify_fork","xfs_btree_afakeroot_set_root","xfs_btree_bload","xfs_btree_bload_compute_geometry","xfs_btree_bload_desired_npb","xfs_btree_bload_drop_buf","xfs_btree_bload_ensure_slack","xfs_btree_bload_leaf","xfs_btree_bload_level_geometry","xfs_btree_bload_max_npb","xfs_btree_bload_node","xfs_btree_bload_prep_block","xfs_btree_block_change_owner","xfs_btree_buf_to_ptr.isra.0","xfs_btree_calc_size","xfs_btree_change_owner","xfs_btree_check_block","xfs_btree_check_lptr","xfs_btree_check_sblock","xfs_btree_check_sptr","xfs_btree_commit_afakeroot","xfs_btree_commit_ifakeroot","xfs_btree_compute_maxlevels","xfs_btree_copy_keys","xfs_btree_copy_ptrs","xfs_btree_copy_recs","xfs_btree_count_blocks","xfs_btree_count_blocks_helper","xfs_btree_dec_cursor","xfs_btree_decrement","xfs_btree_del_cursor","xfs_btree_delete","xfs_btree_delrec","xfs_btree_destroy_cur_caches","xfs_btree_diff_two_ptrs","xfs_btree_dup_cursor","xfs_btree_fakeroot_alloc_block","xfs_btree_fakeroot_dup_cursor","xfs_btree_fakeroot_free_block","xfs_btree_fakeroot_init_ptr_from_cur","xfs_btree_firstrec","xfs_btree_free_block","xfs_btree_get_block","xfs_btree_get_buf_block","xfs_btree_get_iroot","xfs_btree_get_keys","xfs_btree_get_leaf_keys","xfs_btree_get_leaf_keys.cold","xfs_btree_get_node_keys","xfs_btree_get_rec","xfs_btree_get_sibling","xfs_btree_goto_left_edge","xfs_btree_has_more_records","xfs_btree_has_records","xfs_btree_has_records_helper","xfs_btree_high_key_addr","xfs_btree_high_key_from_key","xfs_btree_high_key_offset","xfs_btree_ifork_ptr","xfs_btree_increment","xfs_btree_init_block","xfs_btree_init_block_cur","xfs_btree_init_block_int","xfs_btree_insert","xfs_btree_insrec","xfs_btree_is_lastrec","xfs_btree_key_addr","xfs_btree_key_offset","xfs_btree_kill_iroot","xfs_btree_kill_root","xfs_btree_lastrec","xfs_btree_lblock_calc_crc","xfs_btree_lblock_v5hdr_verify","xfs_btree_lblock_verify","xfs_btree_lblock_verify_crc","xfs_btree_log_block","xfs_btree_log_keys","xfs_btree_log_ptrs","xfs_btree_log_recs","xfs_btree_lookup","xfs_btree_lookup_get_block","xfs_btree_lshift","xfs_btree_magic","xfs_btree_make_block_unfull","xfs_btree_new_iroot","xfs_btree_new_root","xfs_btree_offsets","xfs_btree_overlapped_query_range","xfs_btree_ptr_addr","xfs_btree_ptr_is_null","xfs_btree_ptr_offset","xfs_btree_ptr_to_daddr","xfs_btree_query_all","xfs_btree_query_range","xfs_btree_read_buf_block","xfs_btree_read_bufl","xfs_btree_reada_bufl","xfs_btree_reada_bufs","xfs_btree_readahead.isra.0","xfs_btree_readahead_lblock.isra.0","xfs_btree_readahead_ptr.constprop.0","xfs_btree_readahead_sblock.isra.0","xfs_btree_rec_addr","xfs_btree_rec_offset","xfs_btree_rshift","xfs_btree_sblock_calc_crc","xfs_btree_sblock_v5hdr_verify","xfs_btree_sblock_verify","xfs_btree_sblock_verify_crc","xfs_btree_set_ptr_null","xfs_btree_set_refs","xfs_btree_set_sibling","xfs_btree_setbuf","xfs_btree_shift_keys","xfs_btree_shift_ptrs","xfs_btree_shift_recs","xfs_btree_simple_query_range","xfs_btree_space_to_height","xfs_btree_split","xfs_btree_split_worker","xfs_btree_stage_afakeroot","xfs_btree_stage_ifakeroot","xfs_btree_update","xfs_btree_update_keys","xfs_btree_updkeys_force.constprop.0","xfs_btree_visit_block","xfs_btree_visit_blocks","xfs_defer_add","xfs_defer_add_barrier","xfs_defer_barrier_abort_intent","xfs_defer_barrier_cancel_item","xfs_defer_barrier_create_done","xfs_defer_barrier_create_intent","xfs_defer_barrier_finish_item","xfs_defer_cancel","xfs_defer_cancel_recovery","xfs_defer_create_intent.part.0","xfs_defer_create_intents","xfs_defer_destroy_item_caches","xfs_defer_drain_free","xfs_defer_drain_init","xfs_defer_extent_free","xfs_defer_finish","xfs_defer_finish_noroll","xfs_defer_finish_one","xfs_defer_finish_recovery","xfs_defer_item_pause","xfs_defer_item_unpause","xfs_defer_move","xfs_defer_ops_capture_abort","xfs_defer_ops_capture_and_commit","xfs_defer_ops_continue","xfs_defer_pending_abort_list","xfs_defer_pending_cancel_work","xfs_defer_relog","xfs_defer_resources_rele","xfs_defer_restore_resources","xfs_defer_save_resources","xfs_defer_start_recovery","xfs_defer_trans_abort","xfs_defer_trans_roll","xfs_blockgc_clear_iflag","xfs_blockgc_flush_all","xfs_blockgc_free_dquots","xfs_blockgc_free_quota","xfs_blockgc_free_space","xfs_blockgc_set_iflag","xfs_blockgc_start","xfs_blockgc_stop","xfs_blockgc_worker","xfs_bmap_add_attrfork_btree.constprop.0","xfs_bmap_add_attrfork_extents.constprop.0","xfs_bmap_add_attrfork_local.constprop.0","xfs_bmap_add_extent_delay_real","xfs_bmap_add_extent_hole_delay.constprop.0","xfs_bmap_add_extent_hole_real","xfs_bmap_btalloc","xfs_bmap_btalloc_at_eof","xfs_bmap_btalloc_best_length","xfs_bmap_btree_to_extents","xfs_bmap_del_extent_real","xfs_bmap_extents_to_btree","xfs_bmap_extsize_align.part.0","xfs_bmap_forkoff_reset","xfs_bmap_isaeof","xfs_bmap_local_to_extents.constprop.0","xfs_bmap_shift_update_extent.constprop.0","xfs_bmap_worst_indlen.isra.0","xfs_bmapi_allocate","xfs_bmapi_convert_unwritten","xfs_bmapi_finish","xfs_bmapi_trim_map.constprop.0","xfs_bmapi_update_map.constprop.0","xfs_bmbt_init_common","xfs_bmbt_init_high_key_from_rec","xfs_bmbt_init_key_from_rec","xfs_bmbt_init_ptr_from_cur","xfs_bmbt_init_rec_from_cur","xfs_bmbt_key_diff","xfs_bmbt_keys_contiguous","xfs_bmbt_keys_inorder","xfs_bmbt_lookup_eq","xfs_bmbt_lookup_first","xfs_bmbt_read_verify","xfs_bmbt_recs_inorder","xfs_bmbt_update","xfs_bmbt_update_cursor","xfs_bmbt_verify","xfs_bmbt_write_verify","xfs_bmse_can_merge","xfs_bmse_merge.constprop.0","xfs_bnobt_diff_two_keys","xfs_bnobt_init_high_key_from_rec","xfs_bnobt_key_diff","xfs_bnobt_keys_inorder","xfs_bnobt_recs_inorder","xfs_bnoroot_init","xfs_buf_lookup.constprop.0","xfs_acl_from_disk","xfs_acl_from_disk","xfs_acl_to_disk","xfs_acl_to_disk","xfs_add_incompat_log_feature","xfs_add_incompat_log_feature","xfs_ag_block_count","xfs_ag_extend_space","xfs_ag_extend_space","xfs_ag_geom_health","xfs_ag_get_geometry","xfs_ag_get_geometry","xfs_ag_init_headers","xfs_ag_mark_healthy","xfs_ag_mark_healthy","xfs_ag_mark_sick","xfs_ag_mark_sick","xfs_ag_measure_sickness","xfs_ag_measure_sickness","xfs_ag_resv_alloc_extent","xfs_ag_resv_alloc_extent","xfs_ag_resv_critical","xfs_ag_resv_free","xfs_ag_resv_free","xfs_ag_resv_free_extent","xfs_ag_resv_free_extent","xfs_ag_resv_init","xfs_ag_resv_init","xfs_ag_resv_needed","xfs_ag_resv_needed","xfs_ag_resv_rmapbt_alloc","xfs_ag_resv_rmapbt_alloc","xfs_ag_shrink_space","xfs_agf_read_verify","xfs_agf_verify","xfs_agf_write_verify","xfs_agfl_free_finish_item","xfs_agfl_read_verify","xfs_agfl_size","xfs_agfl_size","xfs_agfl_verify","xfs_agfl_walk","xfs_agfl_walk","xfs_agfl_write_verify","xfs_agi_read_verify","xfs_agi_verify","xfs_agi_write_verify","xfs_agiblock_init","xfs_agino_range","xfs_ail_delete_one","xfs_ail_min_lsn","xfs_ail_push","xfs_ail_push_all","xfs_ail_push_all_sync","xfs_ail_update_finish","xfs_allocbt_alloc_block","xfs_allocbt_calc_size","xfs_allocbt_calc_size","xfs_allocbt_commit_staged_btree","xfs_allocbt_commit_staged_btree","xfs_allocbt_destroy_cur_cache","xfs_allocbt_destroy_cur_cache","xfs_allocbt_dup_cursor","xfs_allocbt_free_block","xfs_allocbt_get_maxrecs","xfs_allocbt_get_minrecs","xfs_allocbt_init_common","xfs_allocbt_init_cursor","xfs_allocbt_init_cursor","xfs_allocbt_init_key_from_rec","xfs_allocbt_init_ptr_from_cur","xfs_allocbt_init_rec_from_cur","xfs_allocbt_keys_contiguous","xfs_allocbt_maxlevels_ondisk","xfs_allocbt_maxlevels_ondisk","xfs_allocbt_maxrecs","xfs_allocbt_maxrecs","xfs_allocbt_read_verify","xfs_allocbt_set_root","xfs_allocbt_stage_cursor","xfs_allocbt_stage_cursor","xfs_allocbt_update_lastrec","xfs_allocbt_verify","xfs_allocbt_write_verify","xfs_ascii_ci_compname","xfs_ascii_ci_compname","xfs_ascii_ci_compname.part.0","xfs_ascii_ci_hashname","xfs_ascii_ci_hashname","xfs_attr3_leaf_add","xfs_attr3_leaf_add","xfs_attr3_leaf_add_work","xfs_attr3_leaf_clearflag","xfs_attr3_leaf_compact","xfs_attr3_leaf_create","xfs_attr3_leaf_figure_balance.isra.0","xfs_attr3_leaf_flipflags","xfs_attr3_leaf_flipflags","xfs_attr3_leaf_getvalue","xfs_attr3_leaf_hdr_from_disk","xfs_attr3_leaf_hdr_from_disk","xfs_attr3_leaf_hdr_to_disk","xfs_attr3_leaf_hdr_to_disk","xfs_attr3_leaf_inactive","xfs_attr3_leaf_inactive","xfs_attr3_leaf_list_int","xfs_attr3_leaf_list_int","xfs_attr3_leaf_lookup_int","xfs_attr3_leaf_lookup_int","xfs_attr3_leaf_moveents.constprop.0","xfs_attr3_leaf_order.isra.0","xfs_attr3_leaf_read","xfs_attr3_leaf_read","xfs_attr3_leaf_read_verify","xfs_attr3_leaf_rebalance.constprop.0","xfs_attr3_leaf_remove","xfs_attr3_leaf_remove","xfs_attr3_leaf_setflag","xfs_attr3_leaf_setflag","xfs_attr3_leaf_split","xfs_attr3_leaf_split","xfs_attr3_leaf_to_node","xfs_attr3_leaf_to_node","xfs_attr3_leaf_to_shortform","xfs_attr3_leaf_to_shortform","xfs_attr3_leaf_toosmall","xfs_attr3_leaf_toosmall","xfs_attr3_leaf_try_add","xfs_attr3_leaf_unbalance","xfs_attr3_leaf_unbalance","xfs_attr3_leaf_verify","xfs_attr3_leaf_write_verify","xfs_attr3_node_inactive","xfs_attr3_rmt_blocks","xfs_attr3_rmt_blocks","xfs_attr3_rmt_hdr_set","xfs_attr3_rmt_read_verify","xfs_attr3_rmt_stale","xfs_attr3_rmt_verify","xfs_attr3_rmt_verify_struct","xfs_attr3_rmt_write_verify","xfs_attr3_root_inactive","xfs_attr_abort_intent","xfs_attr_calc_size","xfs_attr_cancel_item","xfs_attr_change","xfs_attr_change","xfs_attr_copy_value","xfs_attr_copy_value.part.0","xfs_attr_create_done","xfs_attr_create_intent","xfs_attr_defer_add","xfs_attr_finish_item","xfs_attr_fork_remove","xfs_attr_fork_remove","xfs_attr_get","xfs_attr_get","xfs_attr_get_ilocked","xfs_attr_get_ilocked","xfs_attr_inactive","xfs_attr_intent_destroy_cache","xfs_attr_intent_destroy_cache","xfs_attr_is_leaf","xfs_attr_is_leaf","xfs_attr_leaf_get","xfs_attr_leaf_hasname","xfs_attr_leaf_lasthash","xfs_attr_leaf_lasthash","xfs_attr_leaf_list","xfs_attr_leaf_newentsize","xfs_attr_leaf_newentsize","xfs_attr_leaf_order","xfs_attr_leaf_order","xfs_attr_leaf_removename","xfs_attr_list","xfs_attr_list","xfs_attr_list_ilocked","xfs_attr_list_ilocked","xfs_attr_log_item.constprop.0","xfs_attr_match.part.0","xfs_attr_multi_by_handle","xfs_attr_namecheck","xfs_attr_namecheck","xfs_attr_node_addname","xfs_attr_node_addname_find_attr","xfs_attr_node_get","xfs_attr_node_list","xfs_attr_node_list","xfs_attr_node_list_lookup","xfs_attr_node_list_lookup","xfs_attr_node_lookup.constprop.0","xfs_attr_node_remove_attr.isra.0","xfs_attr_put_listent","xfs_attr_recover_work","xfs_attr_relog_intent","xfs_attr_rmt_find_hole","xfs_attr_rmt_find_hole","xfs_attr_rmtval_copyin.constprop.0","xfs_attr_rmtval_copyout","xfs_attr_rmtval_find_space","xfs_attr_rmtval_find_space","xfs_attr_rmtval_get","xfs_attr_rmtval_get","xfs_attr_rmtval_invalidate","xfs_attr_rmtval_invalidate","xfs_attr_rmtval_remove","xfs_attr_rmtval_remove","xfs_attr_rmtval_set_blk","xfs_attr_rmtval_set_blk","xfs_attr_rmtval_set_value","xfs_attr_rmtval_set_value","xfs_attr_rmtval_stale","xfs_attr_rmtval_stale","xfs_attr_set","xfs_attr_set","xfs_attr_set_iter","xfs_attr_set_iter","xfs_attr_sf_findname","xfs_attr_sf_removename","xfs_attr_shortform_add","xfs_attr_shortform_add","xfs_attr_shortform_addname","xfs_attr_shortform_allfit","xfs_attr_shortform_allfit","xfs_attr_shortform_bytesfit","xfs_attr_shortform_bytesfit","xfs_attr_shortform_compare","xfs_attr_shortform_compare","xfs_attr_shortform_create","xfs_attr_shortform_create","xfs_attr_shortform_getvalue","xfs_attr_shortform_getvalue","xfs_attr_shortform_list","xfs_attr_shortform_list","xfs_attr_shortform_to_leaf","xfs_attr_shortform_to_leaf","xfs_attr_shortform_verify","xfs_attr_shortform_verify","xfs_attr_try_sf_addname","xfs_attrd_item_format","xfs_attrd_item_free","xfs_attrd_item_intent","xfs_attrd_item_release","xfs_attrd_item_size","xfs_attri_init","xfs_attri_item_format","xfs_attri_item_free","xfs_attri_item_match","xfs_attri_item_release","xfs_attri_item_size","xfs_attri_item_unpin","xfs_attri_log_nameval_alloc","xfs_attri_recover_work","xfs_attri_release","xfs_attrlist_by_handle","xfs_attrmulti_attr_get","xfs_attrmulti_attr_set","xfs_attrmulti_by_handle","xfs_bitmap_empty","xfs_blkdev_get.constprop.0","xfs_bmap_add_attrfork","xfs_bmap_add_extent_unwritten_real","xfs_bmap_adjacent","xfs_bmap_alloc_account","xfs_bmap_btalloc_low_space","xfs_bmap_can_insert_extents","xfs_bmap_collapse_extents","xfs_bmap_complain_bad_rec","xfs_bmap_compute_attr_offset","xfs_bmap_compute_maxlevels","xfs_bmap_count_blocks","xfs_bmap_count_leaves","xfs_bmap_del_extent_cow","xfs_bmap_del_extent_delay","xfs_bmap_extsize_align","xfs_bmap_finish_one","xfs_bmap_first_unused","xfs_bmap_insert_extents","xfs_bmap_intent_destroy_cache","xfs_bmap_last_before","xfs_bmap_last_extent","xfs_bmap_last_offset","xfs_bmap_local_to_extents_empty","xfs_bmap_longest_free_extent","xfs_bmap_map_extent","xfs_bmap_punch_delalloc_range","xfs_bmap_recover_work","xfs_bmap_relog_intent","xfs_bmap_split_extent","xfs_bmap_trim_cow","xfs_bmap_unmap_extent","xfs_bmap_update_abort_intent","xfs_bmap_update_cancel_item","xfs_bmap_update_create_done","xfs_bmap_update_create_intent","xfs_bmap_update_diff_items","xfs_bmap_update_finish_item","xfs_bmap_update_get_group","xfs_bmap_update_log_item.constprop.0","xfs_bmap_validate_extent","xfs_bmap_validate_extent_raw","xfs_bmapi_convert_delalloc","xfs_bmapi_minleft","xfs_bmapi_read","xfs_bmapi_remap","xfs_bmapi_reserve_delalloc","xfs_bmapi_write","xfs_bmbt_alloc_block","xfs_bmbt_calc_size","xfs_bmbt_calc_size","xfs_bmbt_change_owner","xfs_bmbt_change_owner","xfs_bmbt_commit_staged_btree","xfs_bmbt_destroy_cur_cache","xfs_bmbt_destroy_cur_cache","xfs_bmbt_diff_two_keys","xfs_bmbt_disk_get_all","xfs_bmbt_disk_get_all","xfs_bmbt_disk_get_blockcount","xfs_bmbt_disk_get_blockcount","xfs_bmbt_disk_get_startoff","xfs_bmbt_disk_get_startoff","xfs_bmbt_disk_set_all","xfs_bmbt_disk_set_all","xfs_bmbt_dup_cursor","xfs_bmbt_free_block","xfs_bmbt_get_dmaxrecs","xfs_bmbt_get_maxrecs","xfs_bmbt_get_maxrecs","xfs_bmbt_get_minrecs","xfs_bmbt_init_cursor","xfs_bmbt_maxlevels_ondisk","xfs_bmbt_maxrecs","xfs_bmbt_stage_cursor","xfs_bmbt_to_bmdr","xfs_bmbt_to_iomap","xfs_bmdr_maxrecs","xfs_bmdr_to_bmbt","xfs_break_dax_layouts","xfs_break_layouts","xfs_break_leased_layouts","xfs_bstime_store_compat","xfs_bud_item_format","xfs_bud_item_intent","xfs_bud_item_release","xfs_bud_item_size","xfs_buftarg_drain","xfs_buftarg_wait","xfs_bui_copy_format","xfs_bui_init","xfs_bui_item_format","xfs_bui_item_free","xfs_bui_item_match","xfs_bui_item_release","xfs_bui_item_size","xfs_bui_item_unpin","xfs_bui_release","xfs_bulk_ireq_setup","xfs_bulkstat","xfs_bulkstat_fmt","xfs_bulkstat_health","xfs_bulkstat_iwalk","xfs_bulkstat_one","xfs_bulkstat_one_int","xfs_bulkstat_to_bstat","xfs_calc_addafork_reservation","xfs_calc_attrinval_reservation","xfs_calc_attrrm_reservation","xfs_calc_attrsetm_reservation.isra.0","xfs_calc_attrsetrt_reservation.isra.0","xfs_calc_buf_res","xfs_calc_clear_agi_bucket_reservation.isra.0","xfs_calc_create_resv_modify","xfs_calc_create_tmpfile_reservation","xfs_calc_dquots_per_chunk","xfs_calc_finobt_res","xfs_calc_growdata_reservation","xfs_calc_growrtalloc_reservation","xfs_calc_growrtfree_reservation","xfs_calc_growrtzero_reservation.isra.0","xfs_calc_ichange_reservation.isra.0","xfs_calc_icreate_reservation","xfs_calc_icreate_resv_alloc","xfs_calc_ifree_reservation","xfs_calc_inobt_res","xfs_calc_inode_chunk_res","xfs_calc_inode_res.isra.0","xfs_calc_itruncate_reservation","xfs_calc_itruncate_reservation_minlogsize","xfs_calc_iunlink_add_reservation.isra.0","xfs_calc_iunlink_remove_reservation.isra.0","xfs_calc_link_reservation","xfs_calc_mkdir_reservation","xfs_calc_qm_dqalloc_reservation","xfs_calc_qm_dqalloc_reservation_minlogsize","xfs_calc_qm_setqlim_reservation","xfs_calc_remove_reservation","xfs_calc_rename_reservation","xfs_calc_swrite_reservation.isra.0","xfs_calc_symlink_reservation","xfs_calc_write_reservation","xfs_calc_write_reservation_minlogsize","xfs_can_free_eofblocks","xfs_check_sizes","xfs_check_summary_counts","xfs_cil_prepare_item","xfs_cleanup_inode.isra.0","xfs_cleanup_procfs","xfs_clear_incompat_log_features","xfs_collapse_file_space","xfs_compat_attrlist_by_handle","xfs_compat_attrmulti_by_handle","xfs_compat_growfs_data_copyin","xfs_compat_growfs_rt_copyin","xfs_compat_handlereq_copyin","xfs_compat_handlereq_to_dentry.isra.0","xfs_compat_ioc_fsbulkstat.isra.0","xfs_compat_ioc_fsgeometry_v1","xfs_compute_rextslog","xfs_contig_bits","xfs_corruption_error","xfs_create","xfs_create_tmpfile","xfs_cross_rename","xfs_cud_item_format","xfs_cud_item_intent","xfs_cud_item_release","xfs_cud_item_size","xfs_cui_copy_format","xfs_cui_init","xfs_cui_item_format","xfs_cui_item_free","xfs_cui_item_match","xfs_cui_item_release","xfs_cui_item_size","xfs_cui_item_unpin","xfs_cui_release","xfs_dax_failure_fn","xfs_dax_notify_ddev_failure","xfs_dax_notify_failure","xfs_debugfs_mkdir","xfs_default_attroffset","xfs_default_resblks","xfs_deprecated_dointvec_minmax","xfs_deprecated_dointvec_minmax.cold","xfs_destroy_caches","xfs_destroy_mount_workqueues","xfs_destroy_workqueues","xfs_dev_is_read_only","xfs_dialloc","xfs_diflags_to_iflags","xfs_difree","xfs_dinode_calc_crc","xfs_dinode_verify","xfs_dqblk_repair","xfs_dqblk_verify","xfs_dqlock2","xfs_dquot_alloc","xfs_dquot_disk_alloc","xfs_dquot_disk_read","xfs_dquot_from_disk","xfs_dquot_from_disk_ts","xfs_dquot_set_grace_period","xfs_dquot_set_prealloc_limits","xfs_dquot_set_timeout","xfs_dquot_to_disk","xfs_dquot_to_disk_ts","xfs_dquot_verify","xfs_drain_wait_disable","xfs_drain_wait_enable","xfs_droplink","xfs_efd_item_format","xfs_efd_item_free","xfs_efd_item_intent","xfs_efd_item_release","xfs_efd_item_size","xfs_efi_copy_format","xfs_efi_init","xfs_efi_item_format","xfs_efi_item_free","xfs_efi_item_match","xfs_efi_item_release","xfs_efi_item_size","xfs_efi_item_unpin","xfs_efi_release","xfs_end_io","xfs_eof_alignment","xfs_error_get_cfg","xfs_error_report","xfs_error_sysfs_del","xfs_error_sysfs_init","xfs_file_compat_ioctl","xfs_file_ioctl","xfs_fileattr_get","xfs_fileattr_set","xfs_filestream_create_association","xfs_filestream_deassociate","xfs_filestream_lookup_association","xfs_filestream_mount","xfs_filestream_pick_ag","xfs_filestream_select_ag","xfs_filestream_unmount","xfs_fill_fsxattr","xfs_fill_statvfs_from_dquot","xfs_find_handle","xfs_find_trim_cow_extent","xfs_finish_flags","xfs_finobt_alloc_block","xfs_finobt_calc_reserves","xfs_finobt_free_block","xfs_finobt_set_root","xfs_flags2diflags","xfs_flags2diflags2.isra.0","xfs_flush_inodes","xfs_flush_inodes_worker","xfs_flush_unmap_range","xfs_force_summary_recalc","xfs_forget_acl","xfs_free_agfl_block","xfs_free_buftarg","xfs_free_eofblocks","xfs_free_extent_fix_freelist","xfs_free_extent_later","xfs_free_file_space","xfs_free_perag","xfs_free_unused_perag_range","xfs_freesb","xfs_fsb_to_db","xfs_fsbulkstat_one_fmt","xfs_fsbulkstat_one_fmt_compat","xfs_fsinumbers_fmt","xfs_fsinumbers_fmt_compat","xfs_fsmap_owner_to_rmap","xfs_fsmap_to_internal","xfs_fsop_geom_health","xfs_fstrm_free_func","xfs_generic_create","xfs_get_acl","xfs_get_cowextsz_hint","xfs_get_extsz_hint","xfs_getbmap","xfs_getbmap_report_hole","xfs_getfsmap","xfs_getfsmap_check_keys","xfs_getfsmap_datadev_bnobt","xfs_getfsmap_datadev_bnobt_helper","xfs_getfsmap_datadev_bnobt_query","xfs_getfsmap_datadev_helper","xfs_getfsmap_datadev_rmapbt","xfs_getfsmap_datadev_rmapbt_query","xfs_getfsmap_dev_compare","xfs_getfsmap_helper","xfs_getfsmap_is_shared","xfs_getfsmap_is_valid_device.isra.0","xfs_getfsmap_logdev","xfs_growfs_data","xfs_growfs_data_private.isra.0","xfs_growfs_log","xfs_handle_acceptable","xfs_handle_to_dentry","xfs_handlereq_to_dentry.isra.0","xfs_has_finobt","xfs_has_reflink","xfs_has_rmapbt","xfs_health_unmount","xfs_hex_dump","xfs_ialloc_calc_rootino","xfs_ialloc_check_shrink","xfs_ialloc_count_inodes","xfs_ialloc_has_inodes_at_extent","xfs_ialloc_inode_init","xfs_ialloc_log_agi","xfs_ialloc_read_agi","xfs_ialloc_setup_geometry","xfs_iallocbt_calc_size","xfs_iallocbt_maxlevels_ondisk","xfs_icount_range","xfs_icreate_item_format","xfs_icreate_item_release","xfs_icreate_item_size","xfs_icreate_log","xfs_icwalk","xfs_icwalk_ag","xfs_icwalk_match","xfs_icwalk_match_id","xfs_icwalk_match_id_union","xfs_idata_realloc","xfs_idestroy_fork","xfs_iext_count","xfs_iext_count_may_overflow","xfs_iext_count_upgrade","xfs_iext_destroy","xfs_iext_destroy_node","xfs_iext_first","xfs_iext_get_extent","xfs_iext_insert","xfs_iext_insert_node.constprop.0","xfs_iext_insert_raw","xfs_iext_last","xfs_iext_lookup_extent","xfs_iext_lookup_extent_before","xfs_iext_next","xfs_iext_prev","xfs_iext_rebalance_leaf","xfs_iext_remove","xfs_iext_remove_node","xfs_iext_state_to_fork","xfs_iext_update_extent","xfs_iext_update_node.constprop.0.isra.0","xfs_iextents_copy","xfs_iformat_attr_fork","xfs_iformat_btree","xfs_iformat_data_fork","xfs_iformat_extents","xfs_iformat_local","xfs_ifree","xfs_ifree_cluster","xfs_iget","xfs_iget_cache_hit","xfs_iget_cache_miss","xfs_iget_check_free_state","xfs_iget_recycle","xfs_ilock","xfs_ilock2_io_mmap","xfs_ilock_attr_map_shared","xfs_ilock_data_map_shared","xfs_ilock_demote","xfs_ilock_nowait","xfs_imap","xfs_imap_to_bp","xfs_inactive","xfs_inactive_ifree","xfs_inactive_symlink","xfs_inactive_symlink_rmt","xfs_inactive_truncate","xfs_init_attr_trans","xfs_init_fs_context","xfs_init_local_fork","xfs_init_mount_workqueues","xfs_init_new_inode","xfs_init_procfs","xfs_initialize_perag","xfs_initialize_perag_data","xfs_initxattrs","xfs_inobt_alloc_block","xfs_inobt_btrec_to_irec","xfs_inobt_check_irec","xfs_inobt_commit_staged_btree","xfs_inobt_cur","xfs_inobt_destroy_cur_cache","xfs_inobt_diff_two_keys","xfs_inobt_dup_cursor","xfs_inobt_free_block","xfs_inobt_get_rec","xfs_inobt_init_common","xfs_inobt_init_cursor","xfs_inobt_init_high_key_from_rec","xfs_inobt_init_rec_from_cur","xfs_inobt_insert_rec","xfs_inobt_irec_to_allocmask","xfs_inobt_key_diff","xfs_inobt_keys_contiguous","xfs_inobt_keys_inorder","xfs_inobt_lookup","xfs_inobt_maxrecs","xfs_inobt_read_verify","xfs_inobt_rec_freecount","xfs_inobt_recs_inorder","xfs_inobt_set_root","xfs_inobt_stage_cursor","xfs_inobt_verify","xfs_inobt_walk","xfs_inobt_write_verify","xfs_inodegc_flush","xfs_inodegc_init_percpu","xfs_inodegc_push","xfs_inodegc_queue","xfs_inodegc_queue_all","xfs_inodegc_register_shrinker","xfs_inodegc_set_reclaimable","xfs_inodegc_shrinker_count","xfs_inodegc_shrinker_scan","xfs_inodegc_start","xfs_inodegc_stop","xfs_inodegc_worker","xfs_insert_file_space","xfs_internal_inum","xfs_inumbers","xfs_inumbers_fmt","xfs_inumbers_to_inogrp","xfs_inumbers_walk","xfs_ioc_ag_geometry","xfs_ioc_attr_list","xfs_ioc_attr_put_listent","xfs_ioc_attrmulti_one","xfs_ioc_bulkstat.constprop.0.isra.0","xfs_ioc_fsbulkstat.isra.0","xfs_ioc_fsgeometry","xfs_ioc_fsgetxattra","xfs_ioc_getbmap","xfs_ioc_getfsmap","xfs_ioc_inumbers.constprop.0","xfs_ioc_scrub_metadata","xfs_ioc_setlabel","xfs_ioc_setlabel.cold","xfs_ioc_swapext","xfs_ioc_trim","xfs_ioctl32_bstat_copyin","xfs_ioctl32_bstime_copyin","xfs_ioctl_setattr_xflags","xfs_ip2xflags","xfs_iread_extents","xfs_irele","xfs_iroot_realloc","xfs_itruncate_extents_flags","xfs_iunlink","xfs_iunlink_item_precommit","xfs_iunlink_item_release","xfs_iunlink_item_sort","xfs_iunlink_log_dinode","xfs_iunlink_log_inode","xfs_iunlink_reload_next.isra.0","xfs_iunlink_remove","xfs_iunlink_remove_inode","xfs_iunlink_update_bucket.isra.0","xfs_iunlock","xfs_iunlock2_io_mmap","xfs_iunlock2_remapping","xfs_iunpin_wait","xfs_iwalk","xfs_iwalk_adjust_start","xfs_iwalk_ag","xfs_iwalk_ag_recs","xfs_iwalk_ag_start.constprop.0","xfs_iwalk_ag_work","xfs_iwalk_alloc","xfs_iwalk_free","xfs_iwalk_ichunk_ra","xfs_iwalk_run_callbacks","xfs_iwalk_threaded","xfs_kill_sb","xfs_link","xfs_lock_inodes.constprop.0","xfs_lock_two_inodes","xfs_log_calc_max_attrsetm_res","xfs_log_calc_minimum_size","xfs_log_calc_unit_res","xfs_log_check_lsn","xfs_log_clean","xfs_log_dinode_to_disk","xfs_log_force","xfs_log_force_inode","xfs_log_force_seq","xfs_log_get_max_trans_res","xfs_log_item_in_current_chkpt","xfs_log_item_init","xfs_log_mount","xfs_log_mount_cancel","xfs_log_mount_finish","xfs_log_need_covered.isra.0","xfs_log_quiesce","xfs_log_regrant","xfs_log_reserve","xfs_log_sb","xfs_log_space_wake","xfs_log_ticket_get","xfs_log_ticket_put","xfs_log_ticket_regrant","xfs_log_ticket_ungrant","xfs_log_unmount","xfs_log_unmount_write","xfs_log_work_queue","xfs_log_worker","xfs_log_writable","xfs_lookup","xfs_mod_delalloc","xfs_mod_freecounter","xfs_mode_to_ftype","xfs_mount_free","xfs_mount_reset_sbqflags","xfs_mountfs","xfs_next_bit","xfs_open_by_handle","xfs_open_devices","xfs_panic_mask_proc_handler","xfs_perag_clear_inode_tag","xfs_perag_get","xfs_perag_get_tag","xfs_perag_grab","xfs_perag_grab_tag","xfs_perag_hold","xfs_perag_intent_busy","xfs_perag_intent_drain","xfs_perag_intent_get","xfs_perag_intent_hold","xfs_perag_intent_put","xfs_perag_intent_rele","xfs_perag_put","xfs_perag_rele","xfs_perag_set_inode_tag","xfs_prealloc_blocks","xfs_prep_free_cowblocks","xfs_prepare_shift","xfs_printk_level","xfs_pwork_destroy","xfs_pwork_init","xfs_pwork_poll","xfs_pwork_queue","xfs_pwork_work","xfs_qm_adjust_dqlimits","xfs_qm_adjust_dqtimers","xfs_qm_destroy_quotainfo","xfs_qm_destroy_quotainos","xfs_qm_dqattach","xfs_qm_dqattach_locked","xfs_qm_dqattach_one","xfs_qm_dqdestroy","xfs_qm_dqdetach","xfs_qm_dqflush","xfs_qm_dqfree_one","xfs_qm_dqget","xfs_qm_dqget_cache_lookup","xfs_qm_dqget_checks","xfs_qm_dqget_inode","xfs_qm_dqget_next","xfs_qm_dqget_uncached","xfs_qm_dqpurge","xfs_qm_dqput","xfs_qm_dqread","xfs_qm_dqrele","xfs_qm_dqunpin_wait","xfs_qm_dquot_isolate","xfs_qm_dquot_logitem_committing","xfs_qm_dquot_logitem_format","xfs_qm_dquot_logitem_init","xfs_qm_dquot_logitem_pin","xfs_qm_dquot_logitem_push","xfs_qm_dquot_logitem_release","xfs_qm_dquot_logitem_size","xfs_qm_dquot_logitem_unpin","xfs_qm_dquot_walk.isra.0","xfs_qm_dqusage_adjust","xfs_qm_exit","xfs_qm_fill_state","xfs_qm_flush_one","xfs_qm_id_for_quotatype","xfs_qm_init_dquot_blk","xfs_qm_init_quotainfo","xfs_qm_init_quotainos","xfs_qm_init_timelimits","xfs_qm_mount_quotas","xfs_qm_need_dqattach","xfs_qm_newmount","xfs_qm_qino_alloc","xfs_qm_quotacheck","xfs_qm_quotacheck_dqadjust.constprop.0","xfs_qm_reset_dqcounts.constprop.0","xfs_qm_reset_dqcounts_all","xfs_qm_reset_dqcounts_buf","xfs_qm_scall_getquota","xfs_qm_scall_getquota_fill_qc.constprop.0","xfs_qm_scall_getquota_next","xfs_qm_scall_quotaoff","xfs_qm_scall_quotaon","xfs_qm_scall_setqlim","xfs_qm_scall_trunc_qfile","xfs_qm_scall_trunc_qfiles","xfs_qm_set_defquota","xfs_qm_shrink_count","xfs_qm_shrink_scan","xfs_qm_statvfs","xfs_qm_unmount","xfs_qm_unmount_quotas","xfs_qm_vop_chown","xfs_qm_vop_create_dqattach","xfs_qm_vop_dqalloc","xfs_qm_vop_rename_dqattach","xfs_quota_calc_throttle","xfs_quota_disable","xfs_quota_enable","xfs_quota_flags","xfs_quota_need_throttle","xfs_quota_type","xfs_quota_warn","xfs_readsb","xfs_reclaim_inode","xfs_reclaim_inodes","xfs_reclaim_inodes_count","xfs_reclaim_inodes_nr","xfs_reclaim_work_queue","xfs_reclaim_worker","xfs_recover_inode_owner_change","xfs_refc_block","xfs_refcount_adjust","xfs_refcount_adjust_cow","xfs_refcount_adjust_cow_extents","xfs_refcount_adjust_extents","xfs_refcount_alloc_cow_extent","xfs_refcount_btrec_to_irec","xfs_refcount_check_irec","xfs_refcount_decrease_extent","xfs_refcount_delete","xfs_refcount_find_left_extents","xfs_refcount_find_right_extents","xfs_refcount_find_shared","xfs_refcount_finish_one","xfs_refcount_finish_one_cleanup","xfs_refcount_free_cow_extent","xfs_refcount_get_rec","xfs_refcount_has_records","xfs_refcount_increase_extent","xfs_refcount_insert","xfs_refcount_intent_destroy_cache","xfs_refcount_lookup_eq","xfs_refcount_lookup_ge","xfs_refcount_lookup_le","xfs_refcount_merge_center_extents","xfs_refcount_merge_extents","xfs_refcount_merge_left_extent","xfs_refcount_merge_right_extent","xfs_refcount_query_range","xfs_refcount_query_range_helper","xfs_refcount_recover_cow_leftovers","xfs_refcount_recover_extent","xfs_refcount_recover_work","xfs_refcount_relog_intent","xfs_refcount_split_extent","xfs_refcount_still_have_space","xfs_refcount_update","xfs_refcount_update_abort_intent","xfs_refcount_update_cancel_item","xfs_refcount_update_create_done","xfs_refcount_update_create_intent","xfs_refcount_update_diff_items","xfs_refcount_update_finish_item","xfs_refcount_update_get_group","xfs_refcount_update_log_item.constprop.0","xfs_refcountbt_alloc_block","xfs_refcountbt_calc_reserves","xfs_refcountbt_calc_size","xfs_refcountbt_commit_staged_btree","xfs_refcountbt_compute_maxlevels","xfs_refcountbt_destroy_cur_cache","xfs_refcountbt_diff_two_keys","xfs_refcountbt_dup_cursor","xfs_refcountbt_free_block","xfs_refcountbt_get_maxrecs","xfs_refcountbt_get_minrecs","xfs_refcountbt_init_common","xfs_refcountbt_init_cursor","xfs_refcountbt_init_high_key_from_rec","xfs_refcountbt_init_key_from_rec","xfs_refcountbt_init_ptr_from_cur","xfs_refcountbt_init_rec_from_cur","xfs_refcountbt_key_diff","xfs_refcountbt_keys_contiguous","xfs_refcountbt_keys_inorder","xfs_refcountbt_max_size","xfs_refcountbt_maxlevels_ondisk","xfs_refcountbt_maxrecs","xfs_refcountbt_read_verify","xfs_refcountbt_recs_inorder","xfs_refcountbt_set_root","xfs_refcountbt_stage_cursor","xfs_refcountbt_verify","xfs_refcountbt_write_verify","xfs_reflink_allocate_cow","xfs_reflink_cancel_cow_blocks","xfs_reflink_cancel_cow_range","xfs_reflink_clear_inode_flag","xfs_reflink_convert_cow","xfs_reflink_convert_cow_locked","xfs_reflink_convert_unwritten.isra.0","xfs_reflink_end_cow","xfs_reflink_end_cow_extent","xfs_reflink_fill_cow_hole","xfs_reflink_find_shared","xfs_reflink_inode_has_shared_extents","xfs_reflink_recover_cow","xfs_reflink_remap_blocks","xfs_reflink_remap_extent","xfs_reflink_remap_prep","xfs_reflink_set_inode_flag","xfs_reflink_trim_around_shared","xfs_reflink_try_clear_inode_flag","xfs_reflink_unshare","xfs_reflink_update_dest","xfs_reinit_percpu_counters","xfs_rmap_alloc","xfs_rmap_alloc_extent","xfs_rmap_btrec_to_irec","xfs_rmap_check_irec","xfs_rmap_compare","xfs_rmap_convert","xfs_rmap_convert_extent","xfs_rmap_convert_shared","xfs_rmap_count_owners","xfs_rmap_count_owners_helper","xfs_rmap_delete","xfs_rmap_find_left_neighbor","xfs_rmap_find_left_neighbor_helper","xfs_rmap_finish_one","xfs_rmap_finish_one_cleanup","xfs_rmap_free","xfs_rmap_free_extent","xfs_rmap_get_rec","xfs_rmap_has_other_keys","xfs_rmap_has_records","xfs_rmap_insert","xfs_rmap_intent_destroy_cache","xfs_rmap_lookup_eq","xfs_rmap_lookup_le","xfs_rmap_lookup_le_range","xfs_rmap_lookup_le_range_helper","xfs_rmap_map","xfs_rmap_map_extent","xfs_rmap_map_raw","xfs_rmap_map_shared","xfs_rmap_query_all","xfs_rmap_query_range","xfs_rmap_query_range_helper","xfs_rmap_recover_work","xfs_rmap_relog_intent","xfs_rmap_unmap","xfs_rmap_unmap_extent","xfs_rmap_unmap_shared","xfs_rmap_update","xfs_rmap_update_abort_intent","xfs_rmap_update_cancel_item","xfs_rmap_update_create_done","xfs_rmap_update_create_intent","xfs_rmap_update_diff_items","xfs_rmap_update_finish_item","xfs_rmap_update_get_group","xfs_rmap_update_log_item.constprop.0","xfs_rmapbt_alloc_block","xfs_rmapbt_calc_reserves","xfs_rmapbt_calc_size","xfs_rmapbt_commit_staged_btree","xfs_rmapbt_compute_maxlevels","xfs_rmapbt_destroy_cur_cache","xfs_rmapbt_diff_two_keys","xfs_rmapbt_dup_cursor","xfs_rmapbt_free_block","xfs_rmapbt_get_maxrecs","xfs_rmapbt_get_minrecs","xfs_rmapbt_init_cursor","xfs_rmapbt_init_high_key_from_rec","xfs_rmapbt_init_key_from_rec","xfs_rmapbt_init_ptr_from_cur","xfs_rmapbt_init_rec_from_cur","xfs_rmapbt_key_diff","xfs_rmapbt_keys_contiguous","xfs_rmapbt_keys_inorder","xfs_rmapbt_max_size","xfs_rmapbt_maxlevels_ondisk","xfs_rmapbt_maxrecs","xfs_rmapbt_read_verify","xfs_rmapbt_recs_inorder","xfs_rmapbt_set_root","xfs_rmapbt_stage_cursor","xfs_rmapbt_verify","xfs_rmapbt_write_verify","xfs_rt_mark_healthy","xfs_rt_mark_sick","xfs_rt_measure_sickness","xfs_rud_item_format","xfs_rud_item_intent","xfs_rud_item_release","xfs_rud_item_size","xfs_rui_copy_format","xfs_rui_init","xfs_rui_item_format","xfs_rui_item_free","xfs_rui_item_match","xfs_rui_item_release","xfs_rui_item_size","xfs_rui_item_unpin","xfs_rui_release","xfs_rw_bdev","xfs_save_resvblks","xfs_scrub_metadata","xfs_set_acl","xfs_set_inode_alloc","xfs_set_low_space_thresholds","xfs_setattr_nonsize","xfs_setattr_size","xfs_setfilesize","xfs_setsize_buftarg","xfs_setup_devices","xfs_setup_inode","xfs_setup_iops","xfs_shutdown_devices","xfs_sort_for_rename.constprop.0","xfs_stats_clear_proc_handler","xfs_stats_clearall","xfs_stats_format","xfs_swap_change_owner","xfs_swap_extent_forks.constprop.0","xfs_swap_extent_rmap","xfs_swap_extents","xfs_swap_extents_check_format","xfs_symlink","xfs_symlink_blocks","xfs_symlink_hdr_ok","xfs_symlink_hdr_set","xfs_symlink_local_to_remote","xfs_symlink_read_verify","xfs_symlink_shortform_verify","xfs_symlink_verify","xfs_symlink_write_verify","xfs_sync_sb","xfs_sync_sb_buf","xfs_sysctl_register","xfs_sysctl_unregister","xfs_sysfs_del.constprop.0","xfs_sysfs_object_show","xfs_sysfs_object_store","xfs_sysfs_release","xfs_trans_add_item","xfs_trans_ail_cursor_clear.constprop.0","xfs_trans_ail_cursor_done","xfs_trans_ail_cursor_first","xfs_trans_ail_cursor_init","xfs_trans_ail_cursor_last","xfs_trans_ail_cursor_next","xfs_trans_ail_delete","xfs_trans_ail_destroy","xfs_trans_ail_init","xfs_trans_ail_insert","xfs_trans_ail_update_bulk","xfs_trans_alloc","xfs_trans_alloc_dir","xfs_trans_alloc_dqinfo","xfs_trans_alloc_empty","xfs_trans_alloc_ichange","xfs_trans_alloc_icreate","xfs_trans_alloc_inode","xfs_trans_apply_dquot_deltas","xfs_trans_apply_sb_deltas","xfs_trans_bhold","xfs_trans_bhold_release","xfs_trans_binval","xfs_trans_bjoin","xfs_trans_brelse","xfs_trans_buf_copy_type","xfs_trans_buf_is_dirty","xfs_trans_buf_item_match","xfs_trans_buf_set_type","xfs_trans_cancel","xfs_trans_commit","xfs_trans_committed_bulk","xfs_trans_del_item","xfs_fs_eofblocks_from_user","xfs_trans_dirty_buf","xfs_trans_dqjoin","xfs_trans_dqlockedjoin","xfs_trans_dqresv","xfs_trans_dquot_buf","xfs_trans_dup","xfs_trans_dup_dqinfo","xfs_trans_free","xfs_trans_free_dqinfo","xfs_trans_free_items","xfs_trans_get_buf_map","xfs_trans_get_dqtrx","xfs_trans_getsb","xfs_trans_ichgtime","xfs_trans_ijoin","xfs_trans_init","xfs_trans_inode_alloc_buf","xfs_trans_inode_buf","xfs_trans_log_buf","xfs_trans_log_dquot","xfs_trans_log_inode","xfs_trans_mod_dquot","xfs_trans_mod_dquot.part.0","xfs_trans_mod_dquot_byino","xfs_trans_mod_sb","xfs_trans_ordered_buf","xfs_trans_precommit_sort","xfs_trans_read_buf_map","xfs_trans_reserve","xfs_trans_reserve_more","xfs_trans_reserve_more_inode","xfs_trans_reserve_quota_bydquots","xfs_trans_reserve_quota_icreate","xfs_trans_reserve_quota_nblks","xfs_trans_resv_calc","xfs_trans_roll","xfs_trans_roll_inode","xfs_trans_run_precommits","xfs_trans_stale_inode_buf","xfs_trans_unreserve_and_mod_dquots","xfs_trans_unreserve_and_mod_sb","xfs_trim_extent","xfs_trim_gather_extents","xfs_trim_should_stop","xfs_truncate_page","xfs_unmount_flush_inodes","xfs_unmountfs","xfs_update_alignment","xfs_update_secondary_sbs","xfs_uuid_mount","xfs_uuid_table_free","xfs_uuid_unmount","xfs_validate_ag_length","xfs_validate_new_dalign","xfs_validate_sb_common","xfs_validate_sb_read","xfs_validate_sb_write.isra.0","xfs_validate_stripe_geometry","xfs_verifier_error","xfs_verify_dablk","xfs_verify_dir_ino","xfs_verify_fileext","xfs_verify_fileoff","xfs_verify_fsbext","xfs_verify_fsbno","xfs_verify_icount","xfs_verify_ino","xfs_verify_magic","xfs_verify_magic16","xfs_verify_rtbext","xfs_verify_rtbno","xfs_vn_ci_lookup","xfs_vn_create","xfs_vn_fiemap","xfs_vn_get_link","xfs_vn_getattr","xfs_vn_link","xfs_vn_listxattr","xfs_vn_lookup","xfs_vn_mkdir","xfs_vn_mknod","xfs_vn_rename","xfs_vn_setattr","xfs_vn_setattr_size","xfs_vn_symlink","xfs_vn_tmpfile","xfs_vn_unlink","xfs_vn_update_time","xfs_xattr_get","xfs_xattr_put_listent","xfs_xattr_set","xfs_zero_extent","xfs_zero_range","xfsaild","xfsaild_push"]},{"type":1,"name":"ext4","functions":["ext4_exit_fs","ext4_acl_from_disk","ext4_acl_to_disk.constprop.0","ext4_acquire_dquot","ext4_add_dirent_to_inline","ext4_add_entry","ext4_add_nondir","ext4_apply_options","ext4_attr_show","ext4_attr_store","ext4_begin_enable_verity","ext4_bg_has_super","ext4_bg_num_gdb","ext4_bio_write_page.cold","ext4_break_layouts","ext4_buffered_write_iter","ext4_cache_extents","ext4_calculate_overhead","ext4_can_extents_be_merged.constprop.0","ext4_can_truncate","ext4_change_inode_journal_flag","ext4_check_all_de","ext4_check_blockref","ext4_check_descriptors","ext4_check_feature_compatibility","ext4_check_opt_consistency","ext4_check_quota_consistency.isra.0","ext4_chunk_trans_blocks","ext4_claim_free_clusters","ext4_clear_blocks","ext4_clear_inode","ext4_clear_inode_es","ext4_clear_journal_err","ext4_clear_request_list","ext4_clu_mapped","ext4_collapse_range","ext4_commit_super","ext4_compat_ioctl","ext4_convert_inline_data","ext4_convert_inline_data_nolock","ext4_convert_inline_data_to_extent","ext4_convert_meta_bg","ext4_convert_unwritten_extents","ext4_convert_unwritten_io_end_vec","ext4_count_dirs","ext4_count_free","ext4_count_free_clusters","ext4_count_free_inodes","ext4_create","ext4_create_inline_data","ext4_cross_rename","ext4_datasem_ensure_credits","ext4_dax_fault","ext4_dax_huge_fault","ext4_dax_write_iter","ext4_dax_writepages","ext4_decode_error","ext4_delete_entry","ext4_delete_inline_entry","ext4_destroy_inline_data","ext4_destroy_inline_data_nolock","ext4_destroy_inode","ext4_destroy_system_zone","ext4_dir_llseek","ext4_dirblock_csum_verify","ext4_discard_allocated_blocks","ext4_discard_preallocations","ext4_discard_work","ext4_do_update_inode.isra.0","ext4_do_writepages","ext4_double_down_write_data_sem","ext4_double_up_write_data_sem","ext4_drop_inode","ext4_dx_add_entry","ext4_dx_csum","ext4_dx_find_entry","ext4_dx_readdir","ext4_empty_dir","ext4_enable_quotas","ext4_encrypted_get_link","ext4_encrypted_symlink_getattr","ext4_end_bitmap_read","ext4_end_enable_verity","ext4_es_cache_extent","ext4_es_can_be_merged.isra.0","ext4_es_can_be_merged.isra.0.cold","ext4_es_count","ext4_es_delayed_clu","ext4_es_find_extent_range","ext4_es_free_extent","ext4_es_init_tree","ext4_es_insert_delayed_block","ext4_es_insert_extent","ext4_es_is_delayed","ext4_es_is_delayed","ext4_es_is_delonly","ext4_es_is_delonly","ext4_es_is_mapped","ext4_es_lookup_extent","ext4_es_register_shrinker","ext4_es_remove_extent","ext4_es_scan","ext4_es_scan_clu","ext4_es_scan_range","ext4_es_unregister_shrinker","ext4_evict_ea_inode","ext4_evict_inode","ext4_expand_extra_isize","ext4_expand_extra_isize_ea","ext4_expand_inode_array","ext4_fc_add_dentry_tlv","ext4_fc_add_tlv","ext4_fc_cleanup","ext4_fc_commit","ext4_fc_del","ext4_fc_destroy_dentry_cache","ext4_fc_free","ext4_fc_info_show","ext4_fc_init","ext4_fc_init_inode","ext4_fc_mark_ineligible","ext4_fc_perform_commit","ext4_fc_record_modified_inode.isra.0","ext4_fc_record_regions","ext4_fc_replay","ext4_fc_replay_add_range.constprop.0","ext4_fc_replay_check_excluded","ext4_fc_replay_cleanup","ext4_fc_replay_del_range.constprop.0","ext4_fc_replay_inode","ext4_fc_replay_link_internal.isra.0","ext4_fc_replay_scan.isra.0","ext4_fc_reserve_space","ext4_fc_set_bitmaps_and_counters","ext4_fc_start_update","ext4_fc_stop_update","ext4_fc_submit_bh","ext4_fc_track_create","ext4_fc_track_inode","ext4_fc_track_link","ext4_fc_track_range","ext4_fc_track_template.isra.0","ext4_fc_track_unlink","ext4_fc_update_stats","ext4_fc_wait_committing_inode","ext4_fc_write_inode","ext4_fc_write_inode_data","ext4_fc_write_tail","ext4_feat_release","ext4_feature_set_ok","ext4_fill_flex_info","ext4_fill_raw_inode","ext4_fill_super","ext4_flex_group_add","ext4_fname_free_filename","ext4_fname_from_fscrypt_name","ext4_fname_prepare_lookup","ext4_fname_setup_filename","ext4_force_commit","ext4_force_shutdown","ext4_freeze","ext4_fsmap_from_internal","ext4_fsmap_to_internal","ext4_generic_delete_entry","ext4_generic_write_checks","ext4_geometry_check","ext4_get_acl","ext4_get_bitmap.isra.0","ext4_get_block","ext4_get_block_unwritten","ext4_get_branch","ext4_get_context","ext4_get_dev_journal","ext4_get_dquots","ext4_get_dummy_policy","ext4_get_es_cache","ext4_get_fc_inode_loc","ext4_get_first_dir_block.constprop.0","ext4_get_first_inline_block","ext4_get_group_desc","ext4_get_group_info","ext4_get_group_no_and_offset","ext4_get_group_number","ext4_get_ino_and_lblk_bits","ext4_get_inode_loc","ext4_get_inode_usage","ext4_get_io_end","ext4_get_journal_inode","ext4_get_link","ext4_get_max_inline_size","ext4_get_max_inline_size.part.0","ext4_get_parent","ext4_get_projid","ext4_get_reserved_space","ext4_get_tree","ext4_get_verity_descriptor","ext4_get_verity_descriptor_location.constprop.0","ext4_getattr","ext4_getblk","ext4_getblk.cold","ext4_getfsmap","ext4_getfsmap_compare","ext4_getfsmap_datadev","ext4_getfsmap_datadev_helper","ext4_getfsmap_dev_compare","ext4_getfsmap_find_fixed_metadata","ext4_getfsmap_format","ext4_getfsmap_free_fixed_metadata","ext4_getfsmap_helper","ext4_getfsmap_is_valid_device.isra.0","ext4_getfsmap_logdev","ext4_group_add","ext4_group_add_blocks","ext4_group_desc_csum","ext4_group_desc_csum_set","ext4_group_desc_csum_verify","ext4_group_desc_init","ext4_group_extend","ext4_group_extend_no_check","ext4_group_extend_no_check.cold","ext4_handle_dirty_dirblock","ext4_handle_dirty_dx_node","ext4_handle_error","ext4_handle_error.cold","ext4_handle_inode_extension","ext4_has_free_clusters","ext4_has_stable_inodes","ext4_htree_fill_tree","ext4_htree_free_dir_info","ext4_htree_next_block","ext4_htree_store_dirent","ext4_inc_count","ext4_ind_map_blocks","ext4_ind_map_blocks.cold","ext4_ind_migrate","ext4_ind_remove_space","ext4_ind_trans_blocks","ext4_ind_truncate","ext4_ind_truncate_ensure_credits","ext4_init_acl","ext4_init_block_bitmap","ext4_init_block_bitmap.cold","ext4_init_dot_dotdot","ext4_init_fs_context","ext4_init_inode_table","ext4_init_io_end","ext4_init_journal_params","ext4_init_metadata_csum","ext4_init_new_dir","ext4_init_orphan_info","ext4_init_pending_tree","ext4_init_security","ext4_init_symlink_block","ext4_initialize_dirent_tail","ext4_initxattrs","ext4_inline_data_iomap","ext4_inline_data_truncate","ext4_inlinedir_to_tree","ext4_inode_attach_jinode","ext4_inode_bitmap","ext4_inode_bitmap_csum_set","ext4_inode_bitmap_csum_verify","ext4_inode_bitmap_set","ext4_inode_block_valid","ext4_inode_csum","ext4_inode_csum_set","ext4_inode_extension_cleanup","ext4_inode_is_fast_symlink","ext4_inode_journal_mode","ext4_inode_table","ext4_inode_table_set","ext4_inode_to_goal_block","ext4_insert_dentry","ext4_insert_range","ext4_invalidate_folio","ext4_ioc_getfsmap","ext4_ioctl","ext4_ioctl_get_encryption_pwsalt","ext4_ioctl_getuuid","ext4_ioctl_group_add","ext4_ioctl_setflags","ext4_ioctl_setproject","ext4_is_pending","ext4_issue_zeroout","ext4_itable_unused_count","ext4_itable_unused_set","ext4_jbd2_inode_add_write.part.0","ext4_kill_sb","ext4_kvfree_array_rcu","ext4_last_io_end_vec","ext4_lazyinit_thread","ext4_lazyinit_thread.part.0","ext4_link","ext4_list_backups","ext4_listxattr","ext4_llseek","ext4_load_and_init_journal","ext4_load_journal","ext4_load_super","ext4_lookup","ext4_lookup.part.0","ext4_map_blocks","ext4_mb_add_groupinfo","ext4_mb_alloc_groupinfo","ext4_mb_check_limits","ext4_mb_choose_next_group_cr0.constprop.0","ext4_mb_choose_next_group_cr1.constprop.0","ext4_mb_clear_bb","ext4_mb_collect_stats","ext4_mb_complex_scan_group","ext4_mb_discard_group_preallocations","ext4_mb_discard_lg_preallocations","ext4_mb_discard_preallocations_should_retry","ext4_mb_find_by_goal","ext4_mb_free_metadata","ext4_mb_generate_buddy","ext4_mb_generate_from_pa","ext4_mb_good_group","ext4_mb_good_group_nolock","ext4_mb_init","ext4_mb_init.cold","ext4_mb_init_backend","ext4_mb_init_cache","ext4_mb_init_group","ext4_mb_initialize_context","ext4_mb_load_buddy_gfp","ext4_mb_mark_bb","ext4_mb_mark_diskspace_used","ext4_mb_mark_pa_deleted","ext4_mb_new_blocks","ext4_mb_new_blocks_simple","ext4_mb_new_blocks_simple.cold","ext4_mb_new_group_pa","ext4_mb_new_inode_pa","ext4_mb_normalize_request.constprop.0","ext4_mb_pa_adjust_overlap.constprop.0","ext4_mb_pa_callback","ext4_mb_pa_put_free","ext4_mb_prefetch","ext4_mb_prefetch_fini","ext4_mb_regular_allocator","ext4_mb_release","ext4_mb_release_context.isra.0","ext4_mb_release_group_pa.isra.0","ext4_mb_release_inode_pa.isra.0","ext4_mb_scan_aligned","ext4_mb_seq_groups_next","ext4_mb_seq_groups_show","ext4_mb_seq_groups_start","ext4_mb_seq_groups_stop","ext4_mb_seq_structs_summary_next","ext4_mb_seq_structs_summary_show","ext4_mb_seq_structs_summary_start","ext4_mb_seq_structs_summary_stop","ext4_mb_simple_scan_group","ext4_mb_try_best_found","ext4_mb_unload_buddy","ext4_mb_use_best_found","ext4_mb_use_inode_pa","ext4_mb_use_preallocated.constprop.0","ext4_mpage_readpages","ext4_multi_mount_protect","ext4_new_meta_blocks","ext4_nfs_commit_metadata","ext4_nfs_get_inode","ext4_nonda_switch","ext4_normal_submit_inode_data_buffers","ext4_notify_error_sysfs","ext4_num_base_meta_clusters","ext4_num_overhead_clusters","ext4_orphan_add","ext4_orphan_add.cold","ext4_orphan_cleanup","ext4_orphan_del","ext4_orphan_file_add","ext4_orphan_file_block_trigger","ext4_orphan_file_empty","ext4_orphan_get","ext4_page_mkwrite","ext4_parse_param","ext4_prepare_inline_data","ext4_process_freed_data","ext4_process_orphan","ext4_punch_hole","ext4_put_io_end","ext4_put_io_end_defer","ext4_put_super","ext4_put_super.cold","ext4_quota_off","ext4_quota_on","ext4_quota_read","ext4_quota_write","ext4_rcu_ptr_callback","ext4_reconfigure","ext4_register_li_request","ext4_register_sysfs","ext4_release_dir","ext4_release_dquot","ext4_release_file","ext4_release_folio","ext4_release_orphan_info","ext4_release_system_zone","ext4_remove_blocks","ext4_remove_pending","ext4_rename","ext4_rename2","ext4_rename_dir_finish","ext4_rename_dir_prepare.part.0.constprop.0","ext4_rereserve_cluster","ext4_reserve_inode_write","ext4_reset_inode_seed","ext4_resetent","ext4_resize_begin","ext4_resize_end","ext4_resize_fs","ext4_rmdir","ext4_rmdir.part.0","ext4_run_li_request","ext4_sample_last_mounted","ext4_sb_block_valid","ext4_sb_bread","ext4_sb_bread_unmovable","ext4_sb_breadahead_unmovable","ext4_sb_release","ext4_sb_setlabel","ext4_sb_setuuid","ext4_search_dir","ext4_seq_es_shrinker_info_show","ext4_seq_mb_stats_show","ext4_seq_options_show","ext4_set_acl","ext4_set_aops","ext4_set_context","ext4_set_def_opts","ext4_set_inode_flags","ext4_set_iomap","ext4_setattr","ext4_setent","ext4_setup_new_descs","ext4_setup_next_flex_gd","ext4_setup_super","ext4_setup_super.cold","ext4_setup_system_zone","ext4_setup_system_zone.cold","ext4_should_retry_alloc","ext4_show_options","ext4_shutdown","ext4_split_convert_extents","ext4_split_extent","ext4_split_extent_at","ext4_stop_mmpd","ext4_superblock_csum","ext4_superblock_csum_set","ext4_sync_file.cold","ext4_try_add_inline_entry","ext4_try_create_inline_dir","ext4_try_merge_freed_extent.part.0","ext4_try_to_trim_range","ext4_try_to_write_inline_data","ext4_unregister_li_request","ext4_unregister_sysfs","ext4_update_backup_sb","ext4_update_bh_state","ext4_update_dir_count","ext4_update_disksize_before_punch","ext4_update_dx_flag","ext4_update_dynamic_rev","ext4_update_final_de","ext4_update_inline_data","ext4_update_overhead","ext4_update_primary_sb","ext4_update_super","ext4_update_super","ext4_update_super.cold","ext4_update_superblocks_fn","ext4_used_dirs_count","ext4_used_dirs_set","ext4_valid_block_bitmap","ext4_validate_block_bitmap.part.0","ext4_wait_block_bitmap","ext4_walk_page_buffers","ext4_write_inode.cold","ext4_xattr_block_csum","ext4_xattr_block_csum_set","ext4_xattr_block_find","ext4_xattr_block_get","ext4_xattr_block_set","ext4_xattr_cmp","ext4_xattr_create_cache","ext4_xattr_delete_inode","ext4_xattr_destroy_cache","ext4_xattr_free_space","ext4_xattr_get","ext4_xattr_get_block","ext4_xattr_hurd_get","ext4_xattr_hurd_list","ext4_xattr_hurd_set","ext4_xattr_ibody_find","ext4_xattr_ibody_get","ext4_xattr_ibody_set","ext4_xattr_inode_array_free","ext4_xattr_inode_cache_find","ext4_xattr_inode_create","ext4_xattr_inode_dec_ref_all","ext4_xattr_inode_free_quota","ext4_xattr_inode_get","ext4_xattr_inode_get.cold","ext4_xattr_inode_iget","ext4_xattr_inode_inc_ref_all","ext4_xattr_inode_lookup_create","ext4_xattr_inode_read","ext4_xattr_inode_update_ref","ext4_xattr_inode_write","ext4_xattr_list_entries","ext4_xattr_move_to_block","ext4_xattr_release_block","ext4_xattr_security_get","ext4_xattr_security_set","ext4_xattr_set","ext4_xattr_set_credits","ext4_xattr_set_entry","ext4_xattr_set_handle","ext4_xattr_shift_entries","ext4_xattr_trusted_get","ext4_xattr_trusted_list","ext4_xattr_trusted_set","ext4_xattr_user_get","ext4_xattr_user_list","ext4_xattr_user_set","ext4_xattr_value_same.isra.0","ext4_zero_partial_blocks","ext4_zero_range","ext4fs_dirhash"]},{"type":1,"name":"iomap","functions":["iomap_init","iomap_iter_advance","iomap_iter_done"]},{"type":1,"name":"iov","functions":["iov_iter_alignment","iov_iter_advance","iov_iter_init"]},{"type":2,"name":"test_posix","functions":[],"binary_path":"/home/haridev/datacrumbs/build/bin/df_tracer_test"},{"type":1,"name":"os_page_cache","functions":["filemap_write_and_wait_range","fault_in_readable","filemap_get_entry","folio_unlock","__filemap_add_folio","__filemap_fdatawrite_range","__filemap_get_folio","__filemap_remove_folio","__filemap_set_wb_err","__folio_cancel_dirty","__folio_lock","__folio_lock_killable","__folio_lock_or_retry","__folio_mark_dirty","__page_cache_alloc","__readahead_batch","__readahead_folio","__set_page_dirty","__set_page_dirty_nobuffers","find_get_page","find_get_page_flags","find_lock_page","find_or_create_page","find_subpage","i_blocks_per_folio","i_blocks_per_page","inode_drain_writes","linear_page_index","lock_page","noop_dirty_folio","page_cache_alloc","page_cache_async_ra","page_cache_async_readahead","page_cache_next_miss","page_cache_prev_miss","page_cache_ra_unbounded","page_cache_sync_ra","page_cache_sync_readahead","page_file_mapping","page_file_offset","page_mapping","page_mkwrite_check_truncate","page_offset","page_to_pgoff","pagecache_get_page","read_cache_folio","read_cache_page","read_cache_page_gfp","read_mapping_folio","read_mapping_page","readahead_batch_length","readahead_count","readahead_expand","readahead_folio","readahead_gfp_mask","readahead_index","readahead_length","readahead_page","readahead_pos","replace_page_cache_folio","swapcache_mapping","trylock_page","unlock_page","wait_for_stable_page","wait_on_page_locked","wait_on_page_writeback","wake_page_match","write_inode_now"]},{"type":1,"name":"shm","functions":["shmem_init"]},{"type":1,"name":"fscache","functions":["fscache_update_aux"]},{"type":2,"name":"ior","functions":["_dl_relocate_static_pie","_fini","_init","_start"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/ior-3.3.0-ip47j26fw7xxfftdzjvy2h36phgcuypv/bin/ior","include_offsets":false}] +[{"type":4,"name":"custom1","functions":[],"bpf_path":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2},{"type":0,"name":"sys","functions":["fork","sys","ioctl","newfstatat","ni_syscall","old_mmap","old_select","io_getevents","io_getevents_time32","io_pgetevents","io_pgetevents_time32","epoll_create1","epoll_ctl","epoll_pwait","epoll_pwait2","ioprio_set","ioprio_get","umount","mount","pivot_root","chroot","vhangup","pipe2","quotactl","quotactl_fd","getdents64","pselect6","pselect6_time32","ppoll","ppoll_time32","signalfd4","vmsplice","splice","tee","timerfd_create","timerfd_settime","timerfd_gettime","timerfd_gettime32","timerfd_settime32","utimensat","utimensat_time32","acct","capget","capset","personality","waitid","set_tid_address","unshare","futex","futex_time32","get_robust_list","set_robust_list","futex_waitv","futex_wake","futex_wait","futex_requeue","nanosleep","nanosleep_time32","getitimer","setitimer","kexec_load","init_module","delete_module","timer_create","timer_gettime","timer_getoverrun","timer_settime","timer_delete","clock_settime","clock_gettime","clock_getres","clock_nanosleep","timer_gettime32","timer_settime32","clock_settime32","clock_gettime32","clock_getres_time32","clock_nanosleep_time32","syslog","ptrace","sched_setparam","sched_setscheduler","sched_getscheduler","sched_getparam","sched_setaffinity","sched_getaffinity","sched_yield","sched_get_priority_max","sched_get_priority_min","sched_rr_get_interval","sched_rr_get_interval_time32","restart_syscall","kill","tkill","tgkill","sigaltstack","rt_sigsuspend","rt_sigaction","rt_sigprocmask","rt_sigpending","rt_sigtimedwait","rt_sigtimedwait_time32","rt_sigqueueinfo","setpriority","getpriority","reboot","setregid","setgid","setreuid","setuid","setresuid","getresuid","setresgid","getresgid","setfsuid","setfsgid","times","setpgid","getpgid","getsid","setsid","getgroups","setgroups","newuname","sethostname","setdomainname","getrlimit","setrlimit","getrusage","umask","prctl","getcpu","gettimeofday","settimeofday","adjtimex","adjtimex_time32","getpid","getppid","getuid","geteuid","getgid","getegid","gettid","sysinfo","mq_open","mq_unlink","mq_timedsend","mq_timedreceive","mq_notify","mq_getsetattr","mq_timedreceive_time32","mq_timedsend_time32","msgget","old_msgctl","msgctl","msgrcv","msgsnd","semget","semctl","old_semctl","semtimedop","semtimedop_time32","semop","shmget","old_shmctl","shmctl","shmat","shmdt","socket","socketpair","bind","listen","accept","connect","getsockname","getpeername","sendto","recvfrom","setsockopt","getsockopt","shutdown","sendmsg","recvmsg","readahead","brk","add_key","request_key","keyctl","clone","clone3","execve","swapon","swapoff","get_mempolicy","set_mempolicy","rt_tgsigqueueinfo","perf_event_open","accept4","recvmmsg","recvmmsg_time32","wait4","prlimit64","name_to_handle_at","open_by_handle_at","clock_adjtime","clock_adjtime32","setns","sendmmsg","kcmp","finit_module","sched_setattr","sched_getattr","renameat2","seccomp","getrandom","memfd_create","bpf","execveat","userfaultfd","membarrier","mlock2","pkey_mprotect","pkey_alloc","pkey_free","rseq","open_tree","move_mount","mount_setattr","fsopen","fsconfig","fsmount","fspick","pidfd_send_signal","pidfd_getfd","landlock_create_ruleset","landlock_add_rule","landlock_restrict_self","memfd_secret","set_mempolicy_home_node","cachestat","map_shadow_stack","ioperm","pciconfig_read","pciconfig_write","pciconfig_iobase","spu_run","spu_create","chmod","chown","lchown","epoll_create","eventfd","signalfd","sendfile","alarm","getpgrp","pause","time","time32","futimesat_time32","utime32","utimes_time32","select","poll","epoll_wait","recv","send","oldumount","uselib","stime","stime32","sigpending","sigprocmask","sgetmask","ssetmask","signal","nice","kexec_file_load","waitpid","socketcall","old_readdir","gethostname","uname","olduname","ipc"]},{"type":2,"name":"libc","functions":["fnmatch@@GLIBC_2.2.5","sched_getaffinity@@GLIBC_2.3.4","getgrnam_r@@GLIBC_2.2.5","sysctl@GLIBC_2.2.5","forkpty@@GLIBC_2.34","getpwnam_r@@GLIBC_2.2.5","getgrgid_r@@GLIBC_2.2.5","openpty@@GLIBC_2.34","fdetach@GLIBC_2.2.5","gai_error@GLIBC_2.2.5","res_send@@GLIBC_2.34","putmsg@GLIBC_2.2.5","fmemopen@GLIBC_2.2.5","forkpty@GLIBC_2.2.5","getpwuid_r@@GLIBC_2.2.5","res_mailok@@GLIBC_2.34","getspnam_r@@GLIBC_2.2.5","quick_exit@@GLIBC_2.24","logwtmp@@GLIBC_2.34","logout@@GLIBC_2.34","fopencookie@@GLIBC_2.2.5","gai_cancel@@GLIBC_2.34","glob64@GLIBC_2.2.5","getgrent_r@@GLIBC_2.2.5","_getopt_internal_r","frexpf128","res_search@@GLIBC_2.34","_nl_select_era_entry","finitef128_do_not_use","copysignf32x","gai_error@@GLIBC_2.34","copysignf32","getmsg@GLIBC_2.2.5","_nl_get_walt_digit","_create_xid","sstk@GLIBC_2.2.5","_nl_cleanup_time","_itoa_word","_nl_unload_domain","_getopt_long_r","getspent_r@@GLIBC_2.2.5","_getopt_long_only_r","_option_is_end","_IO_str_count","_nl_cleanup_ctype","_des_crypt","_getopt_internal","_openchild","re_string_realloc_buffers","context_reuse","hex2bin","x_putint32","x_getpostn","gai_suspend@@GLIBC_2.34","duplicate_node","bin2hex","tr_break@GLIBC_2.2.5","_nl_init_era_entries.part.0","exec_comm","gethostbyname2_r@@GLIBC_2.2.5","_nl_make_l10nflist.localalias","_nl_find_msg","gethostent_r@@GLIBC_2.2.5","start_thread","get_kernel_syms@GLIBC_2.2.5","get_scope","add_prefixlist","match_prefix","in6aicmp","fini","exchange","parse_branch","parse_expression","authdes_nextverf","re_search_internal","gr_map_free","merge_state_with_log","until_short","get_subexp_sub","clean_state_log_if_needed","canon_doc_option","extend_buffers","check_arrival_expand_ecl_sub","check_node_accept_bytes","sub_epsilon_src_nodes","harmless","pmap_rmtcall@GLIBC_2.2.5","merge_state_array","re_acquire_state_context","w_addword","check_dst_limits","check_halt_state_context","context_send_common","utf8_encode.part.0","build_charclass","pop_fail_stack","time_ifunc","match_ctx_clean","re_dfa_add_node","free_charset","build_upper_buffer","re_node_set_add_intersect","free_state","search_cur_bkref_entry","re_node_set_compare","print_and_abort","internal_getgrouplist","clear_once_control","send_vc","shm_open@GLIBC_2.2.5","fstab_init","lio_listio64@@GLIBC_2.34","_nl_init_alt_digit","parse_rule","free_tree","parse_offset","decode_name","argp_hol","x_putbytes","strcspn_ifunc","ext_match","compute_change","ranged_convert","ydhms_diff","name_to_database_index","binary_hnok","memchr_ifunc","get_mnt_entry","end_pattern","str_append","ptrlist_add__","critical_factorization","argp_doc","gethosts","read_alias_file","authnone_validate","ldexpf32","memcmp_ifunc","strrchr_ifunc","strncat_ifunc","strlen_ifunc","gai_suspend@GLIBC_2.2.5","strcpy_ifunc","re_string_context_at","_int_realloc","next_line","sysmalloc","arena_get_retry","arena_get2.part.0","fetch_number","register_state","des_setparity@GLIBC_2.2.5","ptmalloc_init.part.0","process_long_option","internal_fallocate64","build_wcs_upper_buffer","try_file","get_locked_global","key_call_socket","read_conf_file.isra.0","change_sigmask","check_arrival_expand_ecl","resolv_conf_matches","calc_eclosure_iter","arg_bool","duplicate_node_closure","strspn_ifunc","fts_build","prefixcmp","get_nprocs_cpu_online","initshells","fstab_free","add_request_to_runlist","duplicate_tree","tdestroy_recurse","strpbrk_ifunc","peek_token","glob@GLIBC_2.2.5","argp_args_levels.isra.0","strcmp_ifunc","array_add__","x_setpostn","authdes_refresh","fstab_convert","create_token_tree","realpath_stk","authdes_marshal","check_arrival","fts_alloc.isra.0","internal_fnmatch","x_putlong","expand_bkref_cache","msgctl@@GLIBC_2.2.5","pmap_getport@GLIBC_2.2.5","quick_exit@GLIBC_2.10","authnone_verf","get_next_alias","freeres","sock_eq","hol_cousin_cluster_cmp.isra.0","ftw_dir","check_node_accept","decide_maybe_mmap","vtimes_one.part.0","internal_addseverity","build_trtable","adjust_wide_data","getaliasbyname_r@@GLIBC_2.2.5","alloc_perturb","_nl_get_era_entry","scalbnf64x","print_header","set_binding_values.part.0","get_nproc_stat","update_cur_sifted_state","authdes_destroy","walker","strncpy_ifunc","helper_thread","parse_dollars","authnone_create@GLIBC_2.2.5","scalbnf128","tzset_internal","locked_vfxprintf","wcsrchr_ifunc","_Unwind_GetCFA","get_free_list","new_do_write","wait_on_socket","frexpf32","find_derivation","option_alloc","detach_arena.part.0","_int_malloc","buffer_free","sched_setaffinity@@GLIBC_2.3.4","register_file","key_gendes@GLIBC_2.2.5","skip","send_dg","_res_hconf_trim_domain","gethostbyname3_context","authnone_create_once","decrement_at_index.part.0","lower_subexp","scalbnf32","strncmp_ifunc","isinff128_do_not_use","nrl_domainname","freecache","hol_entry_short_iterate","authdes_pk_create@GLIBC_2.2.5","do_system","getpwent_r@@GLIBC_2.2.5","gethostbyname_r@@GLIBC_2.2.5","unwind_stop","create_thread","_IO_wstrn_overflow","token.part.0","wcsncmp_ifunc","find_module_idx","indent_to","hack_digit","open_socket","getttyname_r","_IO_obstack_xsputn","reopen","peek_token_bracket","fts_sort","asctime_internal","maybe_init","alias_compare","fts_stat.isra.0","ecb_crypt@GLIBC_2.2.5","time_syscall","add_module","sift_states_backward","do_release_shlib","do_release_all","new_composite_name","memset_ifunc","x_destroy","free_category","re_compile_internal","msort_with_tmp.part.0","fmemopen@@GLIBC_2.22","free_dfa_content","try_nocreate","strcat_ifunc","_IO_cookie_read","_IO_cookie_seek","space","_IO_cookie_close","parse_reg_exp","fts_palloc","_IO_fopencookie","_IO_str_finish","_nl_expand_alias","copysignf128","_IO_default_seekpos","_int_free","getpmsg@GLIBC_2.2.5","_IO_getwc","build_charclass_op","rtime@GLIBC_2.2.5","unlock","uselib@GLIBC_2.2.5","bdflush@GLIBC_2.2.5","derivation_compare","object_compare","_res_hconf_init","sched_setaffinity@GLIBC_2.3.3","internal_fnwmatch","_argp_input","end_wpattern","ext_wmatch","pcmp","_nl_archive_subfreeres","check_dst_limits_calc_pos_1","_option_is_short","try_dir","argp_default_parser","pmap_getmaps@GLIBC_2.2.5","_seterr_reply@GLIBC_2.2.5","matches_last_entry","parse_backtick","aio_fsync64@@GLIBC_2.34","perror_internal","maybe_script_execute","add_alias2.part.0","authdes_create@GLIBC_2.2.5","munmap_chunk","hst_map_free","_nl_get_alt_digit","re_node_set_init_union","gai_cancel@GLIBC_2.2.5","usage_argful_short_opt","re_acquire_state","copysignf64x","getpublickey@GLIBC_2.2.5","ldexpf64","check_one_fd","re_compile_fastmap_iter","_nl_parse_alt_digit","authdes_getucred@GLIBC_2.2.5","modff128","_Unwind_ForcedUnwind","re_node_set_merge","check_subexp_matching_top","_nl_explode_name","isnanf128_do_not_use","ftw_startup","key_get_conv@GLIBC_2.2.5","_nl_postload_ctype","scalbnf64","re_search_stub","fattach@GLIBC_2.2.5","hol_entry_qcmp","w_addmem","eval_expr_multdiv","cfree@GLIBC_2.2.5"],"binary_path":"/usr/lib64/libc.so.6"},{"type":2,"name":"hdf5","functions":["H5SL_above","H5SL_add","H5SL_below:0x2794b0","H5SL_close:0x27a240","H5SL_count:0x26f830","H5SL_create:0x26f680","H5SL_destroy:0x27a170","H5SL_find:0x278e80","H5SL_first:0x27a020","H5SL_free:0x27a120","H5SL_greater:0x2788a0","H5SL_init:0x26f5c0","H5SL_insert:0x26f840","H5SL_item:0x27a060","H5SL_iterate:0x27a070","H5SL_last:0x27a050","H5SL_less:0x278260","H5SL_next:0x27a030","H5SL_prev:0x27a040","H5SL_release:0x27a0c0","H5SL_remove:0x26f8f0","H5SL_remove_first:0x2776f0","H5SL_search:0x277c10","H5SL_term_package:0x26f600","H5SM__get_index:0x27b480","H5SM__get_mesg_count_test:0x281610","H5SM__list_free:0x27f4f0","H5SM__message_compare:0x2811c0","H5SM__message_decode:0x281500","H5SM__message_encode:0x2813b0","H5SM__table_free:0x27f4b0","H5SM_can_share:0x27b940","H5SM_delete:0x27d490","H5SM_get_fheap_addr:0x27b780","H5SM_get_info:0x27e590","H5SM_get_refcount:0x27ed00","H5SM_ih_size:0x27ff50","H5SM_init:0x27ada0","H5SM_list_debug:0x27f990","H5SM_reconstitute:0x27ece0","H5SM_table_debug:0x27f530","H5SM_try_share:0x27bc00","H5SM_type_shared:0x27b580","H5T__alloc:0x2831b0","H5T__array_create:0x290bf0","H5T__bit_copy:0x2917f0","H5T__bit_dec:0x2928f0","H5T__bit_find:0x2920e0","H5T__bit_get_d:0x291d20","H5T__bit_inc:0x2927d0","H5T__bit_neg:0x292a00","H5T__bit_set:0x291db0","H5T__bit_set_d:0x291d70","H5T__bit_shift:0x291eb0","H5T__commit:0x294900","H5T__commit_anon:0x2950e0","H5T__commit_named:0x293640","H5T__conv_array:0x301480","H5T__conv_b_b:0x2fc5d0","H5T__conv_double_float:0x2f3330","H5T__conv_double_int:0x2ef570","H5T__conv_double_ldouble:0x2f3b30","H5T__conv_double_llong:0x2f1e10","H5T__conv_double_long:0x2f08f0","H5T__conv_double_schar:0x2ece10","H5T__conv_double_short:0x2ee170","H5T__conv_double_uchar:0x2ed7c0","H5T__conv_double_uint:0x2eff20","H5T__conv_double_ullong:0x2f2780","H5T__conv_double_ulong:0x2f1260","H5T__conv_double_ushort:0x2eeb70","H5T__conv_enum:0x2ff6f0","H5T__conv_enum_numeric:0x2ffce0","H5T__conv_f_f:0x2e2430","H5T__conv_f_i:0x2e43e0","H5T__conv_float_double:0x2ec590","H5T__conv_float_int:0x2e86a0","H5T__conv_float_ldouble:0x2ec9c0","H5T__conv_float_llong:0x2eae70","H5T__conv_float_long:0x2e9750","H5T__conv_float_schar:0x2e5fa0","H5T__conv_float_short:0x2e72f0","H5T__conv_float_uchar:0x2e6940","H5T__conv_float_uint:0x2e8ed0","H5T__conv_float_ullong:0x2eb8c0","H5T__conv_float_ulong:0x2ea1a0","H5T__conv_float_ushort:0x2e7cc0","H5T__conv_i_f:0x299b60","H5T__conv_i_i:0x298db0","H5T__conv_int_double:0x2b45f0","H5T__conv_int_float:0x2b3340","H5T__conv_int_ldouble:0x2b5b30","H5T__conv_int_llong:0x2b2900","H5T__conv_int_long:0x2b1ec0","H5T__conv_int_schar:0x2afdc0","H5T__conv_int_short:0x2b0be0","H5T__conv_int_uchar:0x2b04a0","H5T__conv_int_uint:0x2b1a80","H5T__conv_int_ullong:0x2b2d40","H5T__conv_int_ulong:0x2b2300","H5T__conv_int_ushort:0x2b1330","H5T__conv_ldouble_double:0x2fb570","H5T__conv_ldouble_float:0x2fad20","H5T__conv_ldouble_int:0x2f6960","H5T__conv_ldouble_llong:0x2f95a0","H5T__conv_ldouble_long:0x2f7e20","H5T__conv_ldouble_schar:0x2f3f80","H5T__conv_ldouble_short:0x2f5450","H5T__conv_ldouble_uchar:0x2f49e0","H5T__conv_ldouble_uint:0x2f7390","H5T__conv_ldouble_ullong:0x2fa010","H5T__conv_ldouble_ulong:0x2f8890","H5T__conv_ldouble_ushort:0x2f5ea0","H5T__conv_llong_double:0x2d56f0","H5T__conv_llong_float:0x2d3690","H5T__conv_llong_int:0x2d1cc0","H5T__conv_llong_ldouble:0x2d73e0","H5T__conv_llong_long:0x2d2b80","H5T__conv_llong_schar:0x2cff90","H5T__conv_llong_short:0x2d0df0","H5T__conv_llong_uchar:0x2d06a0","H5T__conv_llong_uint:0x2d2450","H5T__conv_llong_ullong:0x2d3220","H5T__conv_llong_ulong:0x2d2da0","H5T__conv_llong_ushort:0x2d1560","H5T__conv_long_double:0x2c3250","H5T__conv_long_float:0x2c11f0","H5T__conv_long_int:0x2bf820","H5T__conv_long_ldouble:0x2c4f40","H5T__conv_long_llong:0x2c0b50","H5T__conv_long_schar:0x2bdaf0","H5T__conv_long_short:0x2be950","H5T__conv_long_uchar:0x2be200","H5T__conv_long_uint:0x2bffb0","H5T__conv_long_ullong:0x2c0d70","H5T__conv_long_ulong:0x2c06e0","H5T__conv_long_ushort:0x2bf0c0","H5T__conv_noop:0x297600","H5T__conv_order:0x297670","H5T__conv_order_opt:0x297900","H5T__conv_ref:0x2fe7c0","H5T__conv_s_s:0x2fbdc0","H5T__conv_schar_double:0x29e6c0","H5T__conv_schar_float:0x29dc80","H5T__conv_schar_int:0x29be30","H5T__conv_schar_ldouble:0x29f100","H5T__conv_schar_llong:0x29d250","H5T__conv_schar_long:0x29c820","H5T__conv_schar_short:0x29b400","H5T__conv_schar_uchar:0x29afe0","H5T__conv_schar_uint:0x29c260","H5T__conv_schar_ullong:0x29d6a0","H5T__conv_schar_ulong:0x29cc70","H5T__conv_schar_ushort:0x29b850","H5T__conv_short_double:0x2a8260","H5T__conv_short_float:0x2a71e0","H5T__conv_short_int:0x2a5340","H5T__conv_short_ldouble:0x2a92e0","H5T__conv_short_llong:0x2a6790","H5T__conv_short_long:0x2a5d40","H5T__conv_short_schar:0x2a40a0","H5T__conv_short_uchar:0x2a47b0","H5T__conv_short_uint:0x2a5770","H5T__conv_short_ullong:0x2a6be0","H5T__conv_short_ulong:0x2a6190","H5T__conv_short_ushort:0x2a4ef0","H5T__conv_struct:0x2fd780","H5T__conv_struct_opt:0x2fdf30","H5T__conv_struct_subset:0x2fd770","H5T__conv_uchar_double:0x2a2bf0","H5T__conv_uchar_float:0x2a21b0","H5T__conv_uchar_int:0x2a0850","H5T__conv_uchar_ldouble:0x2a3630","H5T__conv_uchar_llong:0x2a1930","H5T__conv_uchar_long:0x2a10b0","H5T__conv_uchar_schar:0x29fb80","H5T__conv_uchar_short:0x29ffd0","H5T__conv_uchar_uint:0x2a0c80","H5T__conv_uchar_ullong:0x2a1d70","H5T__conv_uchar_ulong:0x2a14f0","H5T__conv_uchar_ushort:0x2a0410","H5T__conv_uint_double:0x2bb070","H5T__conv_uint_float:0x2b9e40","H5T__conv_uint_int:0x2b88e0","H5T__conv_uint_ldouble:0x2bc5a0","H5T__conv_uint_llong:0x2b95c0","H5T__conv_uint_long:0x2b8d40","H5T__conv_uint_schar:0x2b7080","H5T__conv_uint_short:0x2b7c90","H5T__conv_uint_uchar:0x2b7670","H5T__conv_uint_ullong:0x2b9a00","H5T__conv_uint_ulong:0x2b9180","H5T__conv_uint_ushort:0x2b82b0","H5T__conv_ullong_double:0x2de570","H5T__conv_ullong_float:0x2dc420","H5T__conv_ullong_int:0x2dacb0","H5T__conv_ullong_ldouble:0x2e0360","H5T__conv_ullong_llong:0x2dbf80","H5T__conv_ullong_long:0x2db880","H5T__conv_ullong_schar:0x2d9430","H5T__conv_ullong_short:0x2da050","H5T__conv_ullong_uchar:0x2d9a40","H5T__conv_ullong_uint:0x2db290","H5T__conv_ullong_ulong:0x2dbd30","H5T__conv_ullong_ushort:0x2da680","H5T__conv_ulong_double:0x2cc0d0","H5T__conv_ulong_float:0x2c9f80","H5T__conv_ulong_int:0x2c8810","H5T__conv_ulong_ldouble:0x2cdec0","H5T__conv_ulong_llong:0x2c9880","H5T__conv_ulong_long:0x2c93e0","H5T__conv_ulong_schar:0x2c6f90","H5T__conv_ulong_short:0x2c7bb0","H5T__conv_ulong_uchar:0x2c75a0","H5T__conv_ulong_uint:0x2c8df0","H5T__conv_ulong_ullong:0x2c9d30","H5T__conv_ulong_ushort:0x2c81e0","H5T__conv_ushort_double:0x2add40","H5T__conv_ushort_float:0x2acd10","H5T__conv_ushort_int:0x2ab3b0","H5T__conv_ushort_ldouble:0x2aed70","H5T__conv_ushort_llong:0x2ac490","H5T__conv_ushort_long:0x2abc10","H5T__conv_ushort_schar:0x2aa310","H5T__conv_ushort_short:0x2aaf10","H5T__conv_ushort_uchar:0x2aa910","H5T__conv_ushort_uint:0x2ab7e0","H5T__conv_ushort_ullong:0x2ac8d0","H5T__conv_ushort_ulong:0x2ac050","H5T__conv_vlen:0x300080","H5T__create:0x28abf0","H5T__enum_create:0x302dd0","H5T__enum_insert:0x303040","H5T__free:0x283af0","H5T__get_array_dims:0x2911b0","H5T__get_array_ndims:0x291050","H5T__get_create_plist:0x294720","H5T__get_member_name:0x3040c0","H5T__get_member_size:0x296610","H5T__get_member_value:0x303450","H5T__get_path_table_npaths:0x290ba0","H5T__init_native_float_types:0x306040","H5T__init_native_internal:0x309e00","H5T__insert:0x2967f0","H5T__open_name:0x295770","H5T__print_path_stats:0x302060","H5T__ref_reclaim:0x30d890","H5T__ref_set_loc:0x30d430","H5T__reverse_order:0x296ef0","H5T__sort_name:0x3047c0","H5T__sort_value:0x304520","H5T__update_packed:0x296780","H5T__upgrade_version:0x2909b0","H5T__visit:0x30dc90","H5T__vlen_create:0x30e520","H5T__vlen_reclaim:0x30ea90","H5T__vlen_set_loc:0x30e820","H5T_already_vol_managed:0x295cf0","H5T_close:0x283d10","H5T_close_real:0x2832c0","H5T_cmp:0x2840a0","H5T_construct_datatype:0x295930","H5T_convert:0x285ab0","H5T_convert_committed_datatype:0x285fa0","H5T_convert_with_ctx:0x2859d0","H5T_copy:0x286f50","H5T_copy_reopen:0x28a200","H5T_debug:0x302070","H5T_decode:0x2864e0","H5T_detect_class:0x2825a0","H5T_encode:0x282cc0","H5T_get_actual_type:0x295b00","H5T_get_class:0x282450","H5T_get_force_conv:0x296ee0","H5T_get_member_offset:0x296140","H5T_get_member_type:0x2965a0","H5T_get_named_type:0x295af0","H5T_get_nmembers:0x303f20","H5T_get_offset:0x30a280","H5T_get_order:0x30ae70","H5T_get_precision:0x30bd20","H5T_get_ref_type:0x2860e0","H5T_get_sign:0x304aa0","H5T_get_size:0x284090","H5T_get_super:0x289e80","H5T_init:0x28b230","H5T_invoke_vol_optional:0x295d00","H5T_is_immutable:0x285f60","H5T_is_named:0x285f70","H5T_is_numeric_with_unusual_unused_bits:0x290bb0","H5T_is_relocatable:0x2908a0","H5T_is_sensible:0x286100","H5T_is_variable_str:0x282800","H5T_is_vl_storage:0x2908e0","H5T_link:0x293ce0","H5T_lock:0x282fc0","H5T_nameof:0x285ed0","H5T_noop_conv:0x285880","H5T_oloc:0x285e40","H5T_open:0x295190","H5T_own_vol_obj:0x290b20","H5T_patch_file:0x290ae0","H5T_patch_vlen_file:0x290b00","H5T_path_bkg:0x2859c0","H5T_path_compound_subset:0x285990","H5T_path_find:0x2885b0","H5T_path_noop:0x285840","H5T_reclaim:0x296e40","H5T_reclaim_cb:0x296db0","H5T_restore_refresh_state:0x295c10","H5T_save_refresh_state:0x295b20","H5T_set_loc:0x286130","H5T_set_version:0x290a20","H5T_term_package:0x281fa0","H5T_top_term_package:0x283500","H5T_unregister:0x284d00","H5T_update_shared:0x2948d0","H5T_vlen_reclaim_elmt:0x30ed60","H5S__extent_copy_real:0x236cc0","H5S__extent_release:0x236670","H5S__get_diminfo_status_test:0x26cc70","H5S__get_rebuild_status_test:0x26cbe0","H5S__hyper_get_op_gen:0x249670","H5S__hyper_project_intersection:0x255f70","H5S__hyper_rebuild:0x250d80","H5S__internal_consistency_test:0x26ccd0","H5S__modify_select:0x25e1a0","H5S__sel_iter_close_cb:0x26c030","H5S__verify_offsets:0x26cd90","Nflock:0x61f30","Pflock:0x61ee0"]},{"type":1,"name":"bio","functions":["bio_get_last_bvec","bio_will_gap","bio_integrity_init"]},{"type":3,"name":"python","functions":[],"binary_path":"/usr/lib64/libpython3.9.so","provider":"python"},{"type":1,"name":"xfs","functions":[]},{"type":1,"name":"ext4","functions":[]},{"type":1,"name":"iomap","functions":[]},{"type":1,"name":"iov","functions":[]},{"type":2,"name":"test_posix","functions":[],"binary_path":"/home/haridev/datacrumbs/build/bin/df_tracer_test"},{"type":1,"name":"os_page_cache","functions":[]},{"type":1,"name":"shm","functions":["shmem_init"]},{"type":1,"name":"fscache","functions":["fscache_update_aux"]},{"type":2,"name":"ior","functions":[],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/ior-3.3.0-ip47j26fw7xxfftdzjvy2h36phgcuypv/bin/ior","include_offsets":false},{"type":1,"name":"lustre","functions":[]},{"type":1,"name":"osc","functions":["osc_queue_async_io","osc_quota_chkdq"]},{"type":1,"name":"ptlrpc","functions":["ldlm_lock_decref_internal","ldlm_lock_decref","ldlm_lock_addref_internal_nolock","ldlm_lock_match_with_skip","ldlm_lock_addref"]}] diff --git a/etc/datacrumbs/data/probes-haridev-lead.json b/etc/datacrumbs/data/probes-haridev-lead.json index 66ddfbe3..4f67dd3c 100644 --- a/etc/datacrumbs/data/probes-haridev-lead.json +++ b/etc/datacrumbs/data/probes-haridev-lead.json @@ -1 +1 @@ -[{"type":4,"name":"custom1","functions":["openat","read","write","close","fallocate","fdatasync","flock","fsync","ftruncate","lseek","pread64","preadv","preadv2","pwrite64","pwritev","pwritev2","readahead","readv","writev","open","openat2"],"bpf_path":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2},{"type":0,"name":"sys","functions":["access","chdir","close","close_range","copy_file_range","creat","dup","dup2","dup3","eventfd2","exit","exit_group","faccessat","faccessat2","fadvise64","fadvise64_64","fallocate","fanotify_init","fanotify_mark","fchdir","fchmod","fchmodat","fchmodat2","fchown","fchownat","fcntl","fdatasync","fgetxattr","flistxattr","flock","fremovexattr","fsetxattr","fstat","fstatfs","fstatfs64","fsync","ftruncate","getcwd","getdents","getxattr","inotify_add_watch","inotify_init","inotify_init1","inotify_rm_watch","io_cancel","io_destroy","io_setup","io_submit","io_uring_enter","io_uring_register","io_uring_setup","lgetxattr","link","linkat","listxattr","llistxattr","llseek","lremovexattr","lseek","lsetxattr","lstat","madvise","mbind","migrate_pages","mincore","mkdir","mkdirat","mknod","mknodat","mlock","mlockall","mmap_pgoff","move_pages","mprotect","mremap","msync","munlock","munlockall","munmap","newfstat","newlstat","newstat","open","openat","openat2","pidfd_open","pipe","pread64","preadv","preadv2","process_madvise","process_mrelease","process_vm_readv","process_vm_writev","pwrite64","pwritev","pwritev2","read","readlink","readlinkat","readv","remap_file_pages","removexattr","rename","renameat","rmdir","sendfile64","setxattr","stat","statfs","statfs64","statx","symlink","symlinkat","sync","sync_file_range","sync_file_range2","syncfs","sysfs","truncate","unlink","unlinkat","ustat","vfork","write","writev"]},{"type":2,"name":"libc","functions":["__GI___fork","__GI___register_atfork","__GI___vfork","__GI_forkpty","__dyn_pthread_atfork","__fork","__forkpty","__libc_fork","__libc_unwind_link_after_fork","__libc_vfork","__malloc_fork_lock_parent","__malloc_fork_unlock_child","__malloc_fork_unlock_parent","__mq_notify_fork_subprocess","__nss_database_fork_prepare_parent","__nss_database_fork_subprocess","__register_atfork","__run_postfork_handlers","__run_prefork_handlers","__timer_fork_subprocess","__unregister_atfork","__vfork","fork","pthread_atfork@GLIBC_2.2.5","vfork"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false},{"type":2,"name":"hdf5","functions":["H5AC__broadcast_clean_list_cb","H5AC__check_if_write_permitted","H5AC__copy_candidate_list_to_buffer.constprop.0","H5AC__copy_candidate_list_to_buffer_cb","H5AC__flush_entries","H5AC__log_cleaned_entry","H5AC__log_deleted_entry","H5AC__log_dirtied_entry","H5AC__log_flushed_entry","H5AC__log_inserted_entry","H5AC__log_moved_entry","H5AC__propagate_flushed_and_still_clean_entries_list","H5AC__proxy_entry_add_child_cb","H5AC__proxy_entry_free_icr","H5AC__proxy_entry_image_len","H5AC__proxy_entry_notify","H5AC__proxy_entry_remove_child_cb","H5AC__proxy_entry_serialize","H5AC__receive_haddr_list","H5AC__run_sync_point","H5AC__set_sync_point_done_callback","H5AC__set_write_done_callback","H5AC_add_candidate","H5AC_cache_image_pending","H5AC_cork","H5AC_create","H5AC_create_flush_dependency","H5AC_dest","H5AC_destroy_flush_dependency","H5AC_evict","H5AC_evict_tagged_metadata","H5AC_expunge_entry","H5AC_expunge_tag_type_metadata","H5AC_flush","H5AC_flush_tagged_metadata","H5AC_get_cache_auto_resize_config","H5AC_get_cache_flush_in_progress","H5AC_get_cache_hit_rate","H5AC_get_cache_size","H5AC_get_entry_ring","H5AC_get_entry_status","H5AC_get_mdc_image_info","H5AC_get_tag","H5AC_ignore_tags","H5AC_init","H5AC_insert_entry","H5AC_load_cache_image_on_next_protect","H5AC_mark_entry_clean","H5AC_mark_entry_dirty","H5AC_mark_entry_serialized","H5AC_mark_entry_unserialized","H5AC_move_entry","H5AC_pin_protected_entry","H5AC_prep_for_file_close","H5AC_prep_for_file_flush","H5AC_protect","H5AC_proxy_entry_add_child","H5AC_proxy_entry_add_parent","H5AC_proxy_entry_create","H5AC_proxy_entry_dest","H5AC_proxy_entry_remove_child","H5AC_proxy_entry_remove_parent","H5AC_remove_entry","H5AC_reset_cache_hit_rate_stats","H5AC_resize_entry","H5AC_retag_copied_metadata","H5AC_secure_from_file_flush","H5AC_set_cache_auto_resize_config","H5AC_set_ring","H5AC_stats","H5AC_tag","H5AC_term_package","H5AC_unpin_entry","H5AC_unprotect","H5AC_unsettle_entry_ring","H5AC_unsettle_ring","H5AC_validate_cache_image_config","H5AC_validate_config","H5A__attr_cmp_corder_dec","H5A__attr_cmp_corder_inc","H5A__attr_cmp_name_dec","H5A__attr_cmp_name_inc","H5A__attr_copy_file","H5A__attr_iterate_table","H5A__attr_post_copy_file","H5A__attr_release_table","H5A__close","H5A__close_cb","H5A__compact_build_table","H5A__compact_build_table_cb","H5A__copy","H5A__create","H5A__create_api_common","H5A__create_by_name","H5A__create_by_name_api_common","H5A__delete_by_idx","H5A__delete_by_name","H5A__dense_btree2_corder_compare","H5A__dense_btree2_corder_debug","H5A__dense_btree2_corder_decode","H5A__dense_btree2_corder_encode","H5A__dense_btree2_corder_store","H5A__dense_btree2_name_compare","H5A__dense_btree2_name_debug","H5A__dense_btree2_name_decode","H5A__dense_btree2_name_encode","H5A__dense_btree2_name_store","H5A__dense_build_table","H5A__dense_build_table_cb","H5A__dense_copy_fh_cb","H5A__dense_create","H5A__dense_delete","H5A__dense_delete_bt2_cb","H5A__dense_exists","H5A__dense_fh_name_cmp","H5A__dense_fnd_cb","H5A__dense_insert","H5A__dense_iterate","H5A__dense_iterate_bt2_cb","H5A__dense_open","H5A__dense_post_copy_file_all","H5A__dense_post_copy_file_cb","H5A__dense_remove","H5A__dense_remove_bt2_cb","H5A__dense_remove_by_idx","H5A__dense_remove_by_idx_bt2_cb","H5A__dense_rename","H5A__dense_write","H5A__dense_write_bt2_cb","H5A__dense_write_bt2_cb2","H5A__exists_by_name","H5A__get_ainfo","H5A__get_create_plist","H5A__get_info","H5A__get_name","H5A__get_shared_rc_test","H5A__get_type","H5A__is_shared_test","H5A__iterate","H5A__iterate_old","H5A__open","H5A__open_by_idx","H5A__open_by_name","H5A__open_common:0x6a920","H5A__open_common:0x76bf0","H5A__read","H5A__rename_by_name","H5A__set_version","H5A__shared_free","H5A__write","H5A_get_space","H5A_init","H5A_nameof","H5A_oloc","H5A_term_package","H5A_top_term_package","H5A_type","H5Aclose","H5Aclose_async","H5Acreate1","H5Acreate2","H5Acreate_async","H5Acreate_by_name","H5Acreate_by_name_async","H5Adelete","H5Adelete_by_idx","H5Adelete_by_name","H5Aexists","H5Aexists_async","H5Aexists_by_name","H5Aexists_by_name_async","H5Aget_create_plist","H5Aget_info","H5Aget_info_by_idx","H5Aget_info_by_name","H5Aget_name","H5Aget_name_by_idx","H5Aget_num_attrs","H5Aget_space","H5Aget_storage_size","H5Aget_type","H5Aiterate1","H5Aiterate2","H5Aiterate_by_name","H5Aopen","H5Aopen_async","H5Aopen_by_idx","H5Aopen_by_idx_async","H5Aopen_by_name","H5Aopen_by_name_async","H5Aopen_idx","H5Aopen_name","H5Aread","H5Aread_async","H5Arename","H5Arename_async","H5Arename_by_name","H5Arename_by_name_async","H5Awrite","H5Awrite_async","H5B2__cache_hdr_deserialize","H5B2__cache_hdr_free_icr","H5B2__cache_hdr_get_initial_load_size","H5B2__cache_hdr_image_len","H5B2__cache_hdr_notify","H5B2__cache_hdr_serialize","H5B2__cache_hdr_verify_chksum","H5B2__cache_int_deserialize","H5B2__cache_int_free_icr","H5B2__cache_int_get_initial_load_size","H5B2__cache_int_image_len","H5B2__cache_int_notify","H5B2__cache_int_serialize","H5B2__cache_int_verify_chksum","H5B2__cache_leaf_deserialize","H5B2__cache_leaf_free_icr","H5B2__cache_leaf_get_initial_load_size","H5B2__cache_leaf_image_len","H5B2__cache_leaf_notify","H5B2__cache_leaf_serialize","H5B2__cache_leaf_verify_chksum","H5B2__create_flush_depend","H5B2__create_internal","H5B2__create_leaf","H5B2__delete_node","H5B2__delete_node.localalias","H5B2__destroy_flush_depend","H5B2__get_node_depth_test","H5B2__get_node_info_test","H5B2__get_root_addr_test","H5B2__hdr_alloc","H5B2__hdr_create","H5B2__hdr_debug","H5B2__hdr_decr","H5B2__hdr_delete","H5B2__hdr_dirty","H5B2__hdr_free","H5B2__hdr_fuse_decr","H5B2__hdr_fuse_incr","H5B2__hdr_incr","H5B2__hdr_init","H5B2__hdr_protect","H5B2__hdr_unprotect","H5B2__insert","H5B2__insert_internal","H5B2__insert_internal.localalias","H5B2__insert_leaf","H5B2__int_debug","H5B2__internal_free","H5B2__iterate_node","H5B2__iterate_node.localalias","H5B2__leaf_debug","H5B2__leaf_free","H5B2__locate_record","H5B2__merge2","H5B2__merge3","H5B2__neighbor_internal","H5B2__neighbor_internal.localalias","H5B2__neighbor_leaf","H5B2__node_size","H5B2__node_size.localalias","H5B2__protect_internal","H5B2__protect_leaf","H5B2__redistribute2","H5B2__redistribute3","H5B2__remove_internal","H5B2__remove_internal.localalias","H5B2__remove_internal_by_idx","H5B2__remove_internal_by_idx.localalias","H5B2__remove_leaf","H5B2__remove_leaf_by_idx","H5B2__shadow_internal","H5B2__shadow_leaf","H5B2__split1","H5B2__split_root","H5B2__swap_leaf","H5B2__test2_compare","H5B2__test2_debug","H5B2__test2_decode","H5B2__test2_encode","H5B2__test2_store","H5B2__test_compare","H5B2__test_crt_context","H5B2__test_debug","H5B2__test_decode","H5B2__test_dst_context","H5B2__test_encode","H5B2__test_store","H5B2__update_flush_depend","H5B2__update_internal","H5B2__update_internal.localalias","H5B2__update_leaf","H5B2_close","H5B2_create","H5B2_delete","H5B2_depend","H5B2_find","H5B2_get_addr","H5B2_get_nrec","H5B2_index","H5B2_insert","H5B2_iterate","H5B2_modify","H5B2_neighbor","H5B2_open","H5B2_patch_file","H5B2_remove","H5B2_remove_by_idx","H5B2_size","H5B2_stat_info","H5B2_update","H5B__cache_deserialize","H5B__cache_free_icr","H5B__cache_get_initial_load_size","H5B__cache_image_len","H5B__cache_serialize","H5B__get_info_helper","H5B__insert_helper","H5B__iterate_helper","H5B__node_dest","H5B__remove_helper","H5B__verify_structure","H5B_create","H5B_debug","H5B_delete","H5B_delete.localalias","H5B_find","H5B_find.localalias","H5B_get_info","H5B_insert","H5B_iterate","H5B_remove","H5B_shared_free","H5B_shared_new","H5B_valid","H5CX__pop_common","H5CX_free_state","H5CX_get_actual_selection_io_mode","H5CX_get_bkgr_buf","H5CX_get_bkgr_buf_type","H5CX_get_btree_split_ratios","H5CX_get_coll_metadata_read","H5CX_get_data_transform","H5CX_get_dset_min_ohdr_flag","H5CX_get_dt_conv_cb","H5CX_get_dxpl","H5CX_get_encoding","H5CX_get_err_detect","H5CX_get_ext_file_prefix","H5CX_get_filter_cb","H5CX_get_intermediate_group","H5CX_get_io_xfer_mode","H5CX_get_lapl","H5CX_get_libver_bounds","H5CX_get_max_temp_buf","H5CX_get_modify_write_buf","H5CX_get_mpi_coll_datatypes","H5CX_get_mpi_file_flushing","H5CX_get_mpio_chunk_opt_mode","H5CX_get_mpio_chunk_opt_num","H5CX_get_mpio_chunk_opt_ratio","H5CX_get_mpio_coll_opt","H5CX_get_mpio_global_no_coll_cause","H5CX_get_mpio_local_no_coll_cause","H5CX_get_mpio_rank0_bcast","H5CX_get_nlinks","H5CX_get_no_selection_io_cause","H5CX_get_ohdr_flags","H5CX_get_ring","H5CX_get_selection_io_mode","H5CX_get_tag","H5CX_get_tconv_buf","H5CX_get_vds_prefix","H5CX_get_vec_size","H5CX_get_vlen_alloc_info","H5CX_get_vol_connector_prop","H5CX_get_vol_wrap_ctx","H5CX_init","H5CX_is_def_dxpl","H5CX_pop","H5CX_push","H5CX_push_special","H5CX_pushed","H5CX_restore_state","H5CX_retrieve_state","H5CX_set_actual_selection_io_mode","H5CX_set_apl","H5CX_set_coll_metadata_read","H5CX_set_dcpl","H5CX_set_dxpl","H5CX_set_io_xfer_mode","H5CX_set_lapl","H5CX_set_lcpl","H5CX_set_libver_bounds","H5CX_set_loc","H5CX_set_mpi_coll_datatypes","H5CX_set_mpi_file_flushing","H5CX_set_mpio_actual_chunk_opt","H5CX_set_mpio_actual_io_mode","H5CX_set_mpio_coll_opt","H5CX_set_mpio_global_no_coll_cause","H5CX_set_mpio_local_no_coll_cause","H5CX_set_mpio_rank0_bcast","H5CX_set_nlinks","H5CX_set_no_selection_io_cause","H5CX_set_ring","H5CX_set_tag","H5CX_set_vlen_alloc_info","H5CX_set_vol_connector_prop","H5CX_set_vol_wrap_ctx","H5CX_term_package","H5C__auto_adjust_cache_size","H5C__autoadjust__ageout__remove_all_markers","H5C__autoadjust__ageout__remove_excess_markers","H5C__epoch_marker_deserialize","H5C__epoch_marker_free_icr","H5C__epoch_marker_fsf_size","H5C__epoch_marker_get_final_load_size","H5C__epoch_marker_get_initial_load_size","H5C__epoch_marker_image_len","H5C__epoch_marker_notify","H5C__epoch_marker_pre_serialize","H5C__epoch_marker_serialize","H5C__epoch_marker_verify_chksum","H5C__evict_tagged_entries_cb","H5C__expunge_tag_type_metadata_cb","H5C__flash_increase_cache_size","H5C__flush_invalidate_cache","H5C__flush_ring","H5C__flush_single_entry","H5C__flush_tagged_entries_cb","H5C__generate_cache_image","H5C__generate_image","H5C__get_cache_image_config","H5C__image_entry_cmp","H5C__image_stats","H5C__iter_tagged_entries","H5C__iter_tagged_entries_real","H5C__json_tear_down_logging","H5C__json_write_create_cache_log_msg","H5C__json_write_create_fd_log_msg","H5C__json_write_destroy_cache_log_msg","H5C__json_write_destroy_fd_log_msg","H5C__json_write_evict_cache_log_msg","H5C__json_write_expunge_entry_log_msg","H5C__json_write_flush_cache_log_msg","H5C__json_write_insert_entry_log_msg","H5C__json_write_mark_entry_clean_log_msg","H5C__json_write_mark_entry_dirty_log_msg","H5C__json_write_mark_serialized_entry_log_msg","H5C__json_write_mark_unserialized_entry_log_msg","H5C__json_write_move_entry_log_msg","H5C__json_write_pin_entry_log_msg","H5C__json_write_protect_entry_log_msg","H5C__json_write_remove_entry_log_msg","H5C__json_write_resize_entry_log_msg","H5C__json_write_set_cache_config_log_msg","H5C__json_write_start_log_msg","H5C__json_write_stop_log_msg","H5C__json_write_unpin_entry_log_msg","H5C__json_write_unprotect_entry_log_msg","H5C__load_cache_image","H5C__log_json_set_up","H5C__log_trace_set_up","H5C__make_space_in_cache","H5C__pin_entry_from_client.part.0","H5C__prefetched_entry_deserialize","H5C__prefetched_entry_free_icr","H5C__prefetched_entry_fsf_size","H5C__prefetched_entry_get_final_load_size","H5C__prefetched_entry_get_initial_load_size","H5C__prefetched_entry_image_len","H5C__prefetched_entry_notify","H5C__prefetched_entry_pre_serialize","H5C__prefetched_entry_serialize","H5C__prefetched_entry_verify_chksum","H5C__prep_for_file_close__compute_fd_heights_real","H5C__prep_image_for_file_close","H5C__serialize_cache","H5C__serialize_single_entry","H5C__tag_entry","H5C__trace_tear_down_logging","H5C__trace_write_create_fd_log_msg","H5C__trace_write_destroy_fd_log_msg","H5C__trace_write_expunge_entry_log_msg","H5C__trace_write_flush_cache_log_msg","H5C__trace_write_insert_entry_log_msg","H5C__trace_write_mark_entry_clean_log_msg","H5C__trace_write_mark_entry_dirty_log_msg","H5C__trace_write_mark_serialized_entry_log_msg","H5C__trace_write_mark_unserialized_entry_log_msg","H5C__trace_write_move_entry_log_msg","H5C__trace_write_pin_entry_log_msg","H5C__trace_write_protect_entry_log_msg","H5C__trace_write_remove_entry_log_msg","H5C__trace_write_resize_entry_log_msg","H5C__trace_write_set_cache_config_log_msg","H5C__trace_write_unpin_entry_log_msg","H5C__trace_write_unprotect_entry_log_msg","H5C__unpin_entry_from_client","H5C__untag_entry","H5C__verify_cork_tag_test","H5C__verify_cork_tag_test_cb","H5C__verify_len_eoa.isra.0","H5C_apply_candidate_list","H5C_cache_image_pending","H5C_cache_image_status","H5C_clear_coll_entries","H5C_construct_candidate_list__clean_cache","H5C_construct_candidate_list__min_clean","H5C_cork","H5C_create","H5C_create_flush_dependency","H5C_def_auto_resize_rpt_fcn","H5C_dest","H5C_destroy_flush_dependency","H5C_evict","H5C_evict_tagged_entries","H5C_expunge_entry","H5C_expunge_tag_type_metadata","H5C_flush_cache","H5C_flush_tagged_entries","H5C_flush_to_min_clean","H5C_get_aux_ptr","H5C_get_cache_auto_resize_config","H5C_get_cache_flush_in_progress","H5C_get_cache_hit_rate","H5C_get_cache_size","H5C_get_entry_ring","H5C_get_entry_status","H5C_get_evictions_enabled","H5C_get_ignore_tags","H5C_get_logging_status","H5C_get_mdc_image_info","H5C_get_num_objs_corked","H5C_get_tag","H5C_ignore_tags","H5C_insert_entry","H5C_load_cache_image_on_next_protect","H5C_log_set_up","H5C_log_tear_down","H5C_log_write_create_cache_msg","H5C_log_write_create_fd_msg","H5C_log_write_destroy_cache_msg","H5C_log_write_destroy_fd_msg","H5C_log_write_evict_cache_msg","H5C_log_write_expunge_entry_msg","H5C_log_write_flush_cache_msg","H5C_log_write_insert_entry_msg","H5C_log_write_mark_entry_clean_msg","H5C_log_write_mark_entry_dirty_msg","H5C_log_write_mark_serialized_entry_msg","H5C_log_write_mark_unserialized_entry_msg","H5C_log_write_move_entry_msg","H5C_log_write_pin_entry_msg","H5C_log_write_protect_entry_msg","H5C_log_write_remove_entry_msg","H5C_log_write_resize_entry_msg","H5C_log_write_set_cache_config_msg","H5C_log_write_unpin_entry_msg","H5C_log_write_unprotect_entry_msg","H5C_mark_entries_as_clean","H5C_mark_entry_clean","H5C_mark_entry_dirty","H5C_mark_entry_serialized","H5C_mark_entry_unserialized","H5C_move_entry","H5C_pin_protected_entry","H5C_prep_for_file_close","H5C_protect","H5C_remove_entry","H5C_reset_cache_hit_rate_stats","H5C_resize_entry","H5C_retag_entries","H5C_set_cache_auto_resize_config","H5C_set_cache_image_config","H5C_set_evictions_enabled","H5C_set_prefix","H5C_set_slist_enabled","H5C_start_logging","H5C_stats","H5C_stats__reset","H5C_stop_logging","H5C_unpin_entry","H5C_unprotect","H5C_unsettle_entry_ring","H5C_unsettle_ring","H5C_validate_cache_image_config","H5C_validate_resize_config","H5D__alloc_storage","H5D__append_flush_setup.part.0","H5D__bt2_compare","H5D__bt2_crt_context","H5D__bt2_dst_context","H5D__bt2_filt_debug","H5D__bt2_filt_decode","H5D__bt2_filt_encode","H5D__bt2_found_cb","H5D__bt2_idx_close","H5D__bt2_idx_copy_setup","H5D__bt2_idx_copy_shutdown","H5D__bt2_idx_create","H5D__bt2_idx_delete","H5D__bt2_idx_dest","H5D__bt2_idx_dump","H5D__bt2_idx_get_addr","H5D__bt2_idx_init","H5D__bt2_idx_insert","H5D__bt2_idx_is_open","H5D__bt2_idx_is_space_alloc","H5D__bt2_idx_iterate","H5D__bt2_idx_iterate_cb","H5D__bt2_idx_load_metadata","H5D__bt2_idx_open","H5D__bt2_idx_remove","H5D__bt2_idx_reset","H5D__bt2_idx_size","H5D__bt2_mod_cb","H5D__bt2_remove_cb","H5D__bt2_store","H5D__bt2_unfilt_debug","H5D__bt2_unfilt_decode","H5D__bt2_unfilt_encode","H5D__btree2_idx_depend","H5D__btree_cmp2","H5D__btree_cmp3","H5D__btree_debug_key","H5D__btree_decode_key","H5D__btree_encode_key","H5D__btree_found","H5D__btree_get_shared","H5D__btree_idx_close","H5D__btree_idx_copy_setup","H5D__btree_idx_copy_shutdown","H5D__btree_idx_create","H5D__btree_idx_delete","H5D__btree_idx_dest","H5D__btree_idx_dump","H5D__btree_idx_get_addr","H5D__btree_idx_init","H5D__btree_idx_insert","H5D__btree_idx_is_open","H5D__btree_idx_is_space_alloc","H5D__btree_idx_iterate","H5D__btree_idx_iterate_cb","H5D__btree_idx_load_metadata","H5D__btree_idx_open","H5D__btree_idx_remove","H5D__btree_idx_reset","H5D__btree_idx_size","H5D__btree_insert","H5D__btree_new_node","H5D__btree_remove","H5D__btree_shared_create","H5D__btree_shared_free","H5D__build_file_prefix.isra.0","H5D__cache_dataspace_info","H5D__chunk_addrmap","H5D__chunk_addrmap_cb","H5D__chunk_allocate","H5D__chunk_allocated","H5D__chunk_allocated_cb","H5D__chunk_bh_info","H5D__chunk_cache_evict","H5D__chunk_cache_evict.constprop.0","H5D__chunk_cacheable","H5D__chunk_cmp_coll_fill_info","H5D__chunk_construct","H5D__chunk_copy","H5D__chunk_copy_cb","H5D__chunk_create","H5D__chunk_delete","H5D__chunk_dest","H5D__chunk_direct_read","H5D__chunk_direct_write","H5D__chunk_dump_index","H5D__chunk_dump_index_cb","H5D__chunk_file_alloc","H5D__chunk_flush","H5D__chunk_flush_entry","H5D__chunk_flush_entry.constprop.0","H5D__chunk_format_convert","H5D__chunk_format_convert_cb","H5D__chunk_get_offset_copy","H5D__chunk_index_empty","H5D__chunk_index_empty_cb","H5D__chunk_init","H5D__chunk_io_init","H5D__chunk_io_term","H5D__chunk_is_data_cached","H5D__chunk_is_partial_edge_chunk","H5D__chunk_is_space_alloc","H5D__chunk_iter","H5D__chunk_iter_cb","H5D__chunk_lock.constprop.0","H5D__chunk_lookup","H5D__chunk_mdio_init","H5D__chunk_mem_alloc","H5D__chunk_mem_free","H5D__chunk_mem_realloc","H5D__chunk_mem_xfree","H5D__chunk_prune_by_extent","H5D__chunk_read","H5D__chunk_set_info","H5D__chunk_set_info_real","H5D__chunk_set_sizes","H5D__chunk_unlock.constprop.0","H5D__chunk_update_cache","H5D__chunk_update_old_edge_chunks","H5D__chunk_write","H5D__close_cb","H5D__cmp_chunk_redistribute_info","H5D__cmp_chunk_redistribute_info_orig_owner","H5D__cmp_filtered_collective_io_info_entry","H5D__cmp_piece_addr","H5D__collective_read","H5D__collective_write","H5D__compact_construct","H5D__compact_copy","H5D__compact_dest","H5D__compact_fill","H5D__compact_flush","H5D__compact_init","H5D__compact_io_init","H5D__compact_iovv_memmanage_cb","H5D__compact_is_space_alloc","H5D__compact_readvv","H5D__compact_writevv","H5D__compound_opt_read","H5D__contig_alloc","H5D__contig_check","H5D__contig_construct","H5D__contig_copy","H5D__contig_delete","H5D__contig_fill","H5D__contig_flush","H5D__contig_init","H5D__contig_io_init","H5D__contig_io_term","H5D__contig_is_data_cached","H5D__contig_is_space_alloc","H5D__contig_mdio_init","H5D__contig_read","H5D__contig_readvv","H5D__contig_readvv_cb","H5D__contig_readvv_sieve_cb","H5D__contig_write","H5D__contig_writevv","H5D__contig_writevv_cb","H5D__contig_writevv_sieve_cb","H5D__create","H5D__create_named","H5D__current_cache_size_test","H5D__earray_crt_context","H5D__earray_crt_dbg_context","H5D__earray_debug","H5D__earray_decode","H5D__earray_dst_context","H5D__earray_dst_dbg_context","H5D__earray_encode","H5D__earray_fill","H5D__earray_filt_debug","H5D__earray_filt_decode","H5D__earray_filt_encode","H5D__earray_filt_fill","H5D__earray_idx_close","H5D__earray_idx_copy_setup","H5D__earray_idx_copy_shutdown","H5D__earray_idx_create","H5D__earray_idx_delete","H5D__earray_idx_delete_cb","H5D__earray_idx_depend","H5D__earray_idx_dest","H5D__earray_idx_dump","H5D__earray_idx_get_addr","H5D__earray_idx_init","H5D__earray_idx_insert","H5D__earray_idx_is_open","H5D__earray_idx_is_space_alloc","H5D__earray_idx_iterate","H5D__earray_idx_iterate_cb","H5D__earray_idx_load_metadata","H5D__earray_idx_open","H5D__earray_idx_remove","H5D__earray_idx_reset","H5D__earray_idx_resize","H5D__earray_idx_size","H5D__efl_bh_info","H5D__efl_construct","H5D__efl_init","H5D__efl_io_init","H5D__efl_is_space_alloc","H5D__efl_readvv","H5D__efl_readvv_cb","H5D__efl_writevv","H5D__efl_writevv_cb","H5D__farray_crt_context","H5D__farray_crt_dbg_context","H5D__farray_debug","H5D__farray_decode","H5D__farray_dst_context","H5D__farray_dst_dbg_context","H5D__farray_encode","H5D__farray_fill","H5D__farray_filt_debug","H5D__farray_filt_decode","H5D__farray_filt_encode","H5D__farray_filt_fill","H5D__farray_idx_close","H5D__farray_idx_copy_setup","H5D__farray_idx_copy_shutdown","H5D__farray_idx_create","H5D__farray_idx_delete","H5D__farray_idx_delete_cb","H5D__farray_idx_depend","H5D__farray_idx_dest","H5D__farray_idx_dump","H5D__farray_idx_get_addr","H5D__farray_idx_init","H5D__farray_idx_insert","H5D__farray_idx_is_open","H5D__farray_idx_is_space_alloc","H5D__farray_idx_iterate","H5D__farray_idx_iterate_cb","H5D__farray_idx_load_metadata","H5D__farray_idx_open","H5D__farray_idx_remove","H5D__farray_idx_reset","H5D__farray_idx_size","H5D__fill","H5D__fill_init","H5D__fill_refill_vl","H5D__fill_term","H5D__flush","H5D__flush_all_cb","H5D__flush_real","H5D__flush_sieve_buf","H5D__format_convert","H5D__free_piece_info","H5D__gather_file","H5D__gather_mem","H5D__get_chunk_info","H5D__get_chunk_info_by_coord","H5D__get_chunk_info_by_coord_cb","H5D__get_chunk_info_cb","H5D__get_chunk_storage_size","H5D__get_num_chunks","H5D__get_num_chunks_cb","H5D__get_offset","H5D__get_space","H5D__get_space_status","H5D__get_storage_size","H5D__get_type","H5D__init_storage","H5D__inter_collective_io","H5D__ioinfo_adjust","H5D__layout_compact_dirty_test","H5D__layout_contig_size_test","H5D__layout_idx_type_test","H5D__layout_meta_size","H5D__layout_oh_create","H5D__layout_oh_read","H5D__layout_oh_write","H5D__layout_set_io_ops","H5D__layout_set_latest_indexing","H5D__layout_set_version","H5D__layout_type_test","H5D__layout_version_test","H5D__link_chunk_filtered_collective_io","H5D__link_piece_collective_io.constprop.0","H5D__mark","H5D__mpio_collective_filtered_chunk_read.constprop.0","H5D__mpio_collective_filtered_chunk_reinsert","H5D__mpio_collective_filtered_chunk_update","H5D__mpio_collective_filtered_vec_io","H5D__mpio_get_chunk_alloc_info_types.constprop.0","H5D__mpio_get_no_coll_cause_strings","H5D__mpio_opt_possible","H5D__mpio_redistribute_shared_chunks","H5D__mpio_select_read","H5D__mpio_select_write","H5D__mpio_share_chunk_modification_data.constprop.0","H5D__multi_chunk_collective_io","H5D__multi_chunk_filtered_collective_io.constprop.0","H5D__new","H5D__none_idx_close","H5D__none_idx_copy_setup","H5D__none_idx_create","H5D__none_idx_delete","H5D__none_idx_dump","H5D__none_idx_get_addr","H5D__none_idx_is_open","H5D__none_idx_is_space_alloc","H5D__none_idx_iterate","H5D__none_idx_load_metadata","H5D__none_idx_open","H5D__none_idx_remove","H5D__none_idx_reset","H5D__none_idx_size","H5D__nonexistent_readvv","H5D__nonexistent_readvv_cb","H5D__open_name","H5D__piece_file_cb","H5D__piece_io","H5D__piece_mem_cb","H5D__read","H5D__read_api_common","H5D__read_api_common.constprop.0","H5D__refresh","H5D__scatgath_read","H5D__scatgath_read_select","H5D__scatgath_write","H5D__scatgath_write_select","H5D__scatter_file","H5D__scatter_mem","H5D__select_io","H5D__select_read","H5D__select_write","H5D__set_extent","H5D__single_idx_close","H5D__single_idx_copy_setup","H5D__single_idx_create","H5D__single_idx_delete","H5D__single_idx_dump","H5D__single_idx_get_addr","H5D__single_idx_init","H5D__single_idx_insert","H5D__single_idx_is_open","H5D__single_idx_is_space_alloc","H5D__single_idx_iterate","H5D__single_idx_load_metadata","H5D__single_idx_open","H5D__single_idx_remove","H5D__single_idx_reset","H5D__single_idx_size","H5D__typeinfo_init","H5D__typeinfo_init_phase2","H5D__typeinfo_init_phase3.part.0","H5D__virtual_build_source_name.part.0","H5D__virtual_copy","H5D__virtual_copy_layout","H5D__virtual_copy_parsed_name","H5D__virtual_delete","H5D__virtual_flush","H5D__virtual_hold_source_dset_files","H5D__virtual_init","H5D__virtual_io_init","H5D__virtual_is_data_cached","H5D__virtual_is_space_alloc","H5D__virtual_open_source_dset","H5D__virtual_post_io","H5D__virtual_pre_io.isra.0","H5D__virtual_read","H5D__virtual_read_one","H5D__virtual_refresh_source_dset","H5D__virtual_refresh_source_dsets","H5D__virtual_release_source_dset_files","H5D__virtual_reset_layout","H5D__virtual_set_extent_unlim","H5D__virtual_store_layout","H5D__virtual_str_append","H5D__virtual_write","H5D__virtual_write_one","H5D__vlen_get_buf_size","H5D__vlen_get_buf_size_alloc","H5D__vlen_get_buf_size_cb","H5D__vlen_get_buf_size_gen","H5D__vlen_get_buf_size_gen_cb","H5D__write","H5D__write_api_common","H5D__write_api_common.constprop.0","H5D_btree_debug","H5D_chunk_idx_reset","H5D_close","H5D_close.localalias","H5D_flush_all","H5D_get_access_plist","H5D_get_create_plist","H5D_get_dcpl_id","H5D_init","H5D_mult_refresh_close","H5D_mult_refresh_reopen","H5D_nameof","H5D_oloc","H5D_open","H5D_select_io_mem","H5D_term_package","H5D_top_term_package","H5D_virtual_check_mapping_post","H5D_virtual_check_mapping_pre","H5D_virtual_check_min_dims","H5D_virtual_free_parsed_name","H5D_virtual_parse_source_name","H5D_virtual_update_min_dims","H5Dchunk_iter","H5Dclose","H5Dclose_async","H5Dcreate1","H5Dcreate2","H5Dcreate_anon","H5Dcreate_async","H5Ddebug","H5Dextend","H5Dfill","H5Dflush","H5Dformat_convert","H5Dgather","H5Dget_access_plist","H5Dget_chunk_index_type","H5Dget_chunk_info","H5Dget_chunk_info_by_coord","H5Dget_chunk_storage_size","H5Dget_create_plist","H5Dget_num_chunks","H5Dget_offset","H5Dget_space","H5Dget_space_async","H5Dget_space_status","H5Dget_storage_size","H5Dget_type","H5Diterate","H5Dopen1","H5Dopen2","H5Dopen_async","H5Dread","H5Dread_async","H5Dread_chunk","H5Dread_multi","H5Dread_multi_async","H5Drefresh","H5Dscatter","H5Dset_extent","H5Dset_extent_async","H5Dvlen_get_buf_size","H5Dvlen_reclaim","H5Dwrite","H5Dwrite_async","H5Dwrite_chunk","H5Dwrite_multi","H5Dwrite_multi_async","H5EA__cache_dblk_page_deserialize","H5EA__cache_dblk_page_free_icr","H5EA__cache_dblk_page_get_initial_load_size","H5EA__cache_dblk_page_image_len","H5EA__cache_dblk_page_notify","H5EA__cache_dblk_page_serialize","H5EA__cache_dblk_page_verify_chksum","H5EA__cache_dblock_deserialize","H5EA__cache_dblock_free_icr","H5EA__cache_dblock_fsf_size","H5EA__cache_dblock_get_initial_load_size","H5EA__cache_dblock_image_len","H5EA__cache_dblock_notify","H5EA__cache_dblock_serialize","H5EA__cache_dblock_verify_chksum","H5EA__cache_hdr_deserialize","H5EA__cache_hdr_free_icr","H5EA__cache_hdr_get_initial_load_size","H5EA__cache_hdr_image_len","H5EA__cache_hdr_notify","H5EA__cache_hdr_serialize","H5EA__cache_hdr_verify_chksum","H5EA__cache_iblock_deserialize","H5EA__cache_iblock_free_icr","H5EA__cache_iblock_get_initial_load_size","H5EA__cache_iblock_image_len","H5EA__cache_iblock_notify","H5EA__cache_iblock_serialize","H5EA__cache_iblock_verify_chksum","H5EA__cache_sblock_deserialize","H5EA__cache_sblock_free_icr","H5EA__cache_sblock_get_initial_load_size","H5EA__cache_sblock_image_len","H5EA__cache_sblock_notify","H5EA__cache_sblock_serialize","H5EA__cache_sblock_verify_chksum","H5EA__cmp_cparam_test","H5EA__create_flush_depend","H5EA__dblk_page_alloc","H5EA__dblk_page_create","H5EA__dblk_page_dest","H5EA__dblk_page_protect","H5EA__dblk_page_unprotect","H5EA__dblock_alloc","H5EA__dblock_create","H5EA__dblock_debug","H5EA__dblock_delete","H5EA__dblock_dest","H5EA__dblock_protect","H5EA__dblock_sblk_idx","H5EA__dblock_unprotect","H5EA__destroy_flush_depend","H5EA__get_cparam_test","H5EA__hdr_alloc","H5EA__hdr_alloc_elmts","H5EA__hdr_create","H5EA__hdr_debug","H5EA__hdr_decr","H5EA__hdr_delete","H5EA__hdr_dest","H5EA__hdr_free_elmts","H5EA__hdr_fuse_decr","H5EA__hdr_fuse_incr","H5EA__hdr_incr","H5EA__hdr_init","H5EA__hdr_modified","H5EA__hdr_protect","H5EA__hdr_unprotect","H5EA__iblock_alloc","H5EA__iblock_create","H5EA__iblock_debug","H5EA__iblock_delete","H5EA__iblock_dest","H5EA__iblock_protect","H5EA__iblock_unprotect","H5EA__lookup_elmt.constprop.0.isra.0","H5EA__sblock_alloc","H5EA__sblock_create","H5EA__sblock_debug","H5EA__sblock_delete","H5EA__sblock_dest","H5EA__sblock_protect","H5EA__sblock_unprotect","H5EA__test_crt_context","H5EA__test_crt_dbg_context","H5EA__test_debug","H5EA__test_decode","H5EA__test_dst_context","H5EA__test_dst_dbg_context","H5EA__test_encode","H5EA__test_fill","H5EA_close","H5EA_create","H5EA_delete","H5EA_depend","H5EA_get","H5EA_get_addr","H5EA_get_nelmts","H5EA_get_stats","H5EA_iterate","H5EA_open","H5EA_patch_file","H5EA_set","H5ES__cancel","H5ES__cancel_cb","H5ES__close_cb","H5ES__close_failed_cb","H5ES__create","H5ES__event_completed","H5ES__event_free","H5ES__event_new","H5ES__get_err_info","H5ES__get_err_info_cb","H5ES__get_requests","H5ES__get_requests_cb","H5ES__insert_request","H5ES__list_append","H5ES__list_count","H5ES__list_iterate","H5ES__list_remove","H5ES__op_complete","H5ES__wait","H5ES__wait_cb","H5ES_init","H5ES_insert","H5ES_term_package","H5EScancel","H5ESclose","H5EScreate","H5ESfree_err_info","H5ESget_count","H5ESget_err_count","H5ESget_err_info","H5ESget_err_status","H5ESget_op_counter","H5ESget_requests","H5ESinsert_request","H5ESregister_complete_func","H5ESregister_insert_func","H5ESwait","H5E__append_stack","H5E__clear_entries","H5E__clear_stack","H5E__close_msg","H5E__close_msg_cb","H5E__close_stack","H5E__create_msg","H5E__get_auto","H5E__get_class_name","H5E__get_current_stack","H5E__get_msg","H5E__get_num","H5E__pop","H5E__print","H5E__print2","H5E__push_stack","H5E__register_class","H5E__set_auto","H5E__set_current_stack","H5E__set_default_auto","H5E__unregister_class","H5E__walk","H5E__walk1_cb","H5E__walk2_cb","H5E_clear_stack","H5E_dump_api_stack","H5E_init","H5E_pause_stack","H5E_printf_stack","H5E_resume_stack","H5E_term_package","H5Eappend_stack","H5Eauto_is_v2","H5Eclear1","H5Eclear2","H5Eclose_msg","H5Eclose_stack","H5Ecreate_msg","H5Ecreate_stack","H5Eget_auto1","H5Eget_auto2","H5Eget_class_name","H5Eget_current_stack","H5Eget_major","H5Eget_minor","H5Eget_msg","H5Eget_num","H5Eis_paused","H5Epause_stack","H5Epop","H5Eprint1","H5Eprint2","H5Epush1","H5Epush2","H5Eregister_class","H5Eresume_stack","H5Eset_auto1","H5Eset_auto2","H5Eset_current_stack","H5Eunregister_class","H5Ewalk1","H5Ewalk2","H5FA__cache_dblk_page_deserialize","H5FA__cache_dblk_page_free_icr","H5FA__cache_dblk_page_get_initial_load_size","H5FA__cache_dblk_page_image_len","H5FA__cache_dblk_page_notify","H5FA__cache_dblk_page_serialize","H5FA__cache_dblk_page_verify_chksum","H5FA__cache_dblock_deserialize","H5FA__cache_dblock_free_icr","H5FA__cache_dblock_fsf_size","H5FA__cache_dblock_get_initial_load_size","H5FA__cache_dblock_image_len","H5FA__cache_dblock_notify","H5FA__cache_dblock_serialize","H5FA__cache_dblock_verify_chksum","H5FA__cache_hdr_deserialize","H5FA__cache_hdr_free_icr","H5FA__cache_hdr_get_initial_load_size","H5FA__cache_hdr_image_len","H5FA__cache_hdr_notify","H5FA__cache_hdr_serialize","H5FA__cache_hdr_verify_chksum","H5FA__cmp_cparam_test","H5FA__create_flush_depend","H5FA__dblk_page_alloc","H5FA__dblk_page_create","H5FA__dblk_page_dest","H5FA__dblk_page_protect","H5FA__dblk_page_unprotect","H5FA__dblock_alloc","H5FA__dblock_create","H5FA__dblock_debug","H5FA__dblock_delete","H5FA__dblock_dest","H5FA__dblock_protect","H5FA__dblock_unprotect","H5FA__destroy_flush_depend","H5FA__get_cparam_test","H5FA__hdr_alloc","H5FA__hdr_create","H5FA__hdr_debug","H5FA__hdr_decr","H5FA__hdr_delete","H5FA__hdr_dest","H5FA__hdr_fuse_decr","H5FA__hdr_fuse_incr","H5FA__hdr_incr","H5FA__hdr_init","H5FA__hdr_modified","H5FA__hdr_protect","H5FA__hdr_unprotect","H5FA__test_crt_context","H5FA__test_crt_dbg_context","H5FA__test_debug","H5FA__test_decode","H5FA__test_dst_context","H5FA__test_encode","H5FA__test_fill","H5FA_close","H5FA_create","H5FA_delete","H5FA_depend","H5FA_get","H5FA_get_addr","H5FA_get_nelmts","H5FA_get_stats","H5FA_iterate","H5FA_open","H5FA_patch_file","H5FA_set","H5FD__alloc_real","H5FD__copy_plist","H5FD__core_close","H5FD__core_cmp","H5FD__core_delete","H5FD__core_fapl_get","H5FD__core_flush","H5FD__core_flush.part.0","H5FD__core_get_eoa","H5FD__core_get_eof","H5FD__core_get_handle","H5FD__core_lock","H5FD__core_open","H5FD__core_query","H5FD__core_read","H5FD__core_set_eoa","H5FD__core_term","H5FD__core_truncate","H5FD__core_unlock","H5FD__core_write","H5FD__core_write_to_bstore","H5FD__extend","H5FD__family_close","H5FD__family_cmp","H5FD__family_delete","H5FD__family_fapl_copy","H5FD__family_fapl_free","H5FD__family_fapl_get","H5FD__family_flush","H5FD__family_get_default_config","H5FD__family_get_default_printf_filename","H5FD__family_get_eoa","H5FD__family_get_eof","H5FD__family_get_handle","H5FD__family_lock","H5FD__family_open","H5FD__family_query","H5FD__family_read","H5FD__family_sb_decode","H5FD__family_sb_encode","H5FD__family_sb_size","H5FD__family_set_eoa","H5FD__family_term","H5FD__family_truncate","H5FD__family_unlock","H5FD__family_write","H5FD__free_cls","H5FD__free_real","H5FD__get_driver_cb","H5FD__log_alloc","H5FD__log_close","H5FD__log_cmp","H5FD__log_delete","H5FD__log_fapl_copy","H5FD__log_fapl_free","H5FD__log_fapl_get","H5FD__log_free","H5FD__log_get_eoa","H5FD__log_get_eof","H5FD__log_get_handle","H5FD__log_lock","H5FD__log_open","H5FD__log_query","H5FD__log_read","H5FD__log_set_eoa","H5FD__log_term","H5FD__log_truncate","H5FD__log_unlock","H5FD__log_write","H5FD__mpio_close","H5FD__mpio_ctl","H5FD__mpio_delete","H5FD__mpio_flush","H5FD__mpio_get_eoa","H5FD__mpio_get_eof","H5FD__mpio_get_handle","H5FD__mpio_open","H5FD__mpio_query","H5FD__mpio_read","H5FD__mpio_read_selection","H5FD__mpio_read_vector","H5FD__mpio_set_eoa","H5FD__mpio_term","H5FD__mpio_truncate","H5FD__mpio_vector_build_types.constprop.0","H5FD__mpio_write","H5FD__mpio_write_selection","H5FD__mpio_write_vector","H5FD__onion_archival_index_find","H5FD__onion_archival_index_is_valid","H5FD__onion_archival_index_list_sort_cmp","H5FD__onion_close","H5FD__onion_ctl","H5FD__onion_get_eoa","H5FD__onion_get_eof","H5FD__onion_header_decode","H5FD__onion_header_encode","H5FD__onion_history_decode","H5FD__onion_history_encode","H5FD__onion_ingest_header","H5FD__onion_ingest_history","H5FD__onion_ingest_revision_record","H5FD__onion_merge_revision_index_into_archival_index","H5FD__onion_open","H5FD__onion_read","H5FD__onion_revision_index_destroy","H5FD__onion_revision_index_find","H5FD__onion_revision_index_init","H5FD__onion_revision_index_insert","H5FD__onion_revision_record_decode","H5FD__onion_revision_record_encode","H5FD__onion_sb_decode","H5FD__onion_sb_encode","H5FD__onion_sb_size","H5FD__onion_set_eoa","H5FD__onion_term","H5FD__onion_write","H5FD__onion_write_final_history","H5FD__onion_write_header","H5FD__onion_write_history","H5FD__read_selection_translate","H5FD__sec2_close","H5FD__sec2_cmp","H5FD__sec2_ctl","H5FD__sec2_delete","H5FD__sec2_get_eoa","H5FD__sec2_get_eof","H5FD__sec2_get_handle","H5FD__sec2_lock","H5FD__sec2_open","H5FD__sec2_query","H5FD__sec2_read","H5FD__sec2_set_eoa","H5FD__sec2_term","H5FD__sec2_truncate","H5FD__sec2_unlock","H5FD__sec2_write","H5FD__selection_build_types.constprop.0","H5FD__sort_io_req_real.constprop.0","H5FD__splitter_alloc","H5FD__splitter_close","H5FD__splitter_cmp","H5FD__splitter_ctl","H5FD__splitter_delete","H5FD__splitter_fapl_copy","H5FD__splitter_fapl_free","H5FD__splitter_fapl_get","H5FD__splitter_flush","H5FD__splitter_free","H5FD__splitter_get_default_wo_path.constprop.0","H5FD__splitter_get_eoa","H5FD__splitter_get_eof","H5FD__splitter_get_handle","H5FD__splitter_get_type_map","H5FD__splitter_lock","H5FD__splitter_log_error.part.0.isra.0","H5FD__splitter_open","H5FD__splitter_populate_config","H5FD__splitter_query","H5FD__splitter_read","H5FD__splitter_sb_decode","H5FD__splitter_sb_encode","H5FD__splitter_sb_size","H5FD__splitter_set_eoa","H5FD__splitter_term","H5FD__splitter_truncate","H5FD__splitter_unlock","H5FD__splitter_write","H5FD__srt_tmp_cmp","H5FD__supports_swmr_test","H5FD__write_selection_translate","H5FD_alloc","H5FD_check_plugin_load","H5FD_close","H5FD_cmp","H5FD_core_init","H5FD_ctl","H5FD_delete","H5FD_driver_query","H5FD_family_init","H5FD_fapl_get","H5FD_flush","H5FD_free","H5FD_free_driver_info","H5FD_get_base_addr","H5FD_get_class","H5FD_get_class.localalias","H5FD_get_driver_id_by_name","H5FD_get_driver_id_by_value","H5FD_get_eoa","H5FD_get_eof","H5FD_get_feature_flags","H5FD_get_fileno","H5FD_get_fs_type_map","H5FD_get_maxaddr","H5FD_get_mpio_atomicity","H5FD_get_vfd_handle","H5FD_init","H5FD_is_driver_registered_by_name","H5FD_is_driver_registered_by_value","H5FD_locate_signature","H5FD_lock","H5FD_log_init","H5FD_mpi_MPIOff_to_haddr","H5FD_mpi_get_comm","H5FD_mpi_get_file_sync_required","H5FD_mpi_get_info","H5FD_mpi_get_rank","H5FD_mpi_get_size","H5FD_mpi_haddr_to_MPIOff","H5FD_mpio_init","H5FD_multi_alloc","H5FD_multi_close","H5FD_multi_cmp","H5FD_multi_ctl","H5FD_multi_delete","H5FD_multi_fapl_copy","H5FD_multi_fapl_free","H5FD_multi_fapl_get","H5FD_multi_flush","H5FD_multi_free","H5FD_multi_get_eoa","H5FD_multi_get_eof","H5FD_multi_get_handle","H5FD_multi_get_type_map","H5FD_multi_init","H5FD_multi_lock","H5FD_multi_open","H5FD_multi_populate_config","H5FD_multi_query","H5FD_multi_read","H5FD_multi_sb_decode","H5FD_multi_sb_decode.part.0","H5FD_multi_sb_encode","H5FD_multi_sb_size","H5FD_multi_set_eoa","H5FD_multi_term","H5FD_multi_truncate","H5FD_multi_unlock","H5FD_multi_write","H5FD_onion_init","H5FD_open","H5FD_read","H5FD_read_from_selection","H5FD_read_selection","H5FD_read_selection_id","H5FD_read_vector","H5FD_read_vector_from_selection","H5FD_register","H5FD_register_driver_by_name","H5FD_register_driver_by_value","H5FD_sb_encode","H5FD_sb_load","H5FD_sb_size","H5FD_sec2_init","H5FD_set_base_addr","H5FD_set_eoa","H5FD_set_feature_flags","H5FD_set_mpio_atomicity","H5FD_set_paged_aggr","H5FD_sort_selection_io_req","H5FD_sort_vector_io_req","H5FD_split_populate_config.constprop.0","H5FD_splitter_init","H5FD_stdio_alloc","H5FD_stdio_close","H5FD_stdio_cmp","H5FD_stdio_delete","H5FD_stdio_flush","H5FD_stdio_get_eoa","H5FD_stdio_get_eof","H5FD_stdio_get_handle","H5FD_stdio_init","H5FD_stdio_lock","H5FD_stdio_open","H5FD_stdio_query","H5FD_stdio_read","H5FD_stdio_set_eoa","H5FD_stdio_term","H5FD_stdio_truncate","H5FD_stdio_unlock","H5FD_stdio_write","H5FD_term_package","H5FD_truncate","H5FD_try_extend","H5FD_unlock","H5FD_write","H5FD_write_from_selection","H5FD_write_selection","H5FD_write_selection_id","H5FD_write_vector","H5FD_write_vector_from_selection","H5FDalloc","H5FDclose","H5FDcmp","H5FDctl","H5FDdelete","H5FDdriver_query","H5FDflush","H5FDfree","H5FDget_eoa","H5FDget_eof","H5FDget_vfd_handle","H5FDis_driver_registered_by_name","H5FDis_driver_registered_by_value","H5FDlock","H5FDonion_get_revision_count","H5FDopen","H5FDperform_init","H5FDquery","H5FDread","H5FDread_from_selection","H5FDread_selection","H5FDread_vector","H5FDread_vector_from_selection","H5FDregister","H5FDset_eoa","H5FDtruncate","H5FDunlock","H5FDunregister","H5FDwrite","H5FDwrite_from_selection","H5FDwrite_selection","H5FDwrite_vector","H5FDwrite_vector_from_selection","H5FL__blk_create_list.part.0","H5FL__blk_gc_list","H5FL_arr_calloc","H5FL_arr_free","H5FL_arr_malloc","H5FL_arr_realloc","H5FL_blk_calloc","H5FL_blk_free","H5FL_blk_free_block_avail","H5FL_blk_malloc","H5FL_blk_realloc","H5FL_fac_calloc","H5FL_fac_free","H5FL_fac_init","H5FL_fac_malloc","H5FL_fac_term","H5FL_garbage_coll","H5FL_get_free_list_sizes","H5FL_reg_calloc","H5FL_reg_free","H5FL_reg_malloc","H5FL_seq_calloc","H5FL_seq_free","H5FL_seq_malloc","H5FL_seq_realloc","H5FL_set_free_list_limits","H5FL_term_package","H5FO_create","H5FO_delete","H5FO_dest","H5FO_insert","H5FO_mark","H5FO_marked","H5FO_opened","H5FO_top_count","H5FO_top_create","H5FO_top_decr","H5FO_top_dest","H5FO_top_incr","H5FS__cache_hdr_deserialize","H5FS__cache_hdr_free_icr","H5FS__cache_hdr_get_initial_load_size","H5FS__cache_hdr_image_len","H5FS__cache_hdr_notify","H5FS__cache_hdr_pre_serialize","H5FS__cache_hdr_serialize","H5FS__cache_hdr_verify_chksum","H5FS__cache_sinfo_deserialize","H5FS__cache_sinfo_free_icr","H5FS__cache_sinfo_get_initial_load_size","H5FS__cache_sinfo_image_len","H5FS__cache_sinfo_notify","H5FS__cache_sinfo_pre_serialize","H5FS__cache_sinfo_serialize","H5FS__cache_sinfo_verify_chksum","H5FS__cmp_cparam_test","H5FS__create_flush_depend","H5FS__decr","H5FS__destroy_flush_depend","H5FS__dirty","H5FS__get_cparam_test","H5FS__hdr_dest","H5FS__incr","H5FS__iterate_node_cb","H5FS__iterate_sect_cb","H5FS__new","H5FS__sect_init_cls.part.0","H5FS__sect_link","H5FS__sect_merge","H5FS__sect_node_new.part.0","H5FS__sect_remove_real","H5FS__sect_unlink_rest","H5FS__sinfo_dest","H5FS__sinfo_free_node_cb","H5FS__sinfo_free_sect_cb","H5FS__sinfo_lock","H5FS__sinfo_new","H5FS__sinfo_serialize_node_cb","H5FS__sinfo_serialize_sect_cb","H5FS__sinfo_unlock","H5FS__size_node_decr.isra.0","H5FS_alloc_hdr","H5FS_alloc_sect","H5FS_close","H5FS_create","H5FS_debug","H5FS_delete","H5FS_free","H5FS_get_sect_count","H5FS_open","H5FS_sect_add","H5FS_sect_change_class","H5FS_sect_debug","H5FS_sect_find","H5FS_sect_iterate","H5FS_sect_remove","H5FS_sect_stats","H5FS_sect_try_extend","H5FS_sect_try_merge","H5FS_sect_try_shrink_eoa","H5FS_sects_debug","H5FS_size","H5FS_stat_info","H5FS_vfd_alloc_hdr_and_section_info_if_needed","H5F_Kvalue","H5F__accum_adjust","H5F__accum_flush","H5F__accum_free","H5F__accum_read","H5F__accum_reset","H5F__accum_write","H5F__alloc","H5F__build_actual_name","H5F__build_name","H5F__cache_drvrinfo_deserialize","H5F__cache_drvrinfo_free_icr","H5F__cache_drvrinfo_get_final_load_size","H5F__cache_drvrinfo_get_initial_load_size","H5F__cache_drvrinfo_image_len","H5F__cache_drvrinfo_serialize","H5F__cache_superblock_deserialize","H5F__cache_superblock_free_icr","H5F__cache_superblock_get_final_load_size","H5F__cache_superblock_get_initial_load_size","H5F__cache_superblock_image_len","H5F__cache_superblock_serialize","H5F__cache_superblock_verify_chksum","H5F__check_cached_stab_test","H5F__close","H5F__close_cb","H5F__close_mounts","H5F__create_api_common","H5F__delete","H5F__dest","H5F__efc_create","H5F__efc_destroy","H5F__efc_max_nfiles","H5F__efc_open","H5F__efc_open_file","H5F__efc_release","H5F__efc_release_real","H5F__efc_try_close","H5F__efc_try_close_tag1.isra.0","H5F__efc_try_close_tag2.isra.0","H5F__evict_cache_entries","H5F__flush","H5F__flush_api_common","H5F__flush_mounts_recurse","H5F__flush_phase2","H5F__format_convert","H5F__free","H5F__get_all_count_cb","H5F__get_all_ids_cb","H5F__get_cont_info","H5F__get_file_image","H5F__get_info","H5F__get_max_eof_eoa","H5F__get_maxaddr_test","H5F__get_mpi_atomicity","H5F__get_objects_cb","H5F__get_sbe_addr_test","H5F__get_sohm_mesg_count_test","H5F__is_hdf5","H5F__mount_count_ids","H5F__mount_count_ids_recurse","H5F__new","H5F__open_api_common","H5F__parse_file_lock_env_var","H5F__post_open","H5F__post_open_api_common","H5F__reopen","H5F__reopen_api_common","H5F__reparse_file_lock_variable_test","H5F__same_file_test","H5F__set_base_addr","H5F__set_eoa","H5F__set_libver_bounds","H5F__set_mpi_atomicity","H5F__set_paged_aggr","H5F__sfile_add","H5F__sfile_remove","H5F__sfile_search","H5F__start_swmr_write","H5F__super_ext_close","H5F__super_ext_create","H5F__super_ext_open","H5F__super_ext_remove_msg","H5F__super_ext_write_msg","H5F__super_free","H5F__super_init","H5F__super_read","H5F__super_size","H5F__superblock_prefix_decode","H5F__try_extend","H5F__update_super_ext_driver_msg","H5F_addr_decode","H5F_addr_decode_len","H5F_addr_encode","H5F_addr_encode_len","H5F_block_read","H5F_block_write","H5F_coll_md_read","H5F_cwfs_add","H5F_cwfs_advance_heap","H5F_cwfs_find_free_heap","H5F_cwfs_remove_heap","H5F_debug","H5F_decr_nopen_objs","H5F_efc_close","H5F_eoa_dirty","H5F_fake_alloc","H5F_fake_free","H5F_file_id_exists","H5F_flush_mounts","H5F_flush_tagged_metadata","H5F_gc_ref","H5F_get_access_plist","H5F_get_actual_name","H5F_get_alignment","H5F_get_base_addr","H5F_get_checksums","H5F_get_coll_metadata_reads","H5F_get_driver_id","H5F_get_eoa","H5F_get_evict_on_close","H5F_get_extpath","H5F_get_fc_degree","H5F_get_fcpl","H5F_get_file_id","H5F_get_fileno","H5F_get_high_bound","H5F_get_id","H5F_get_intent","H5F_get_low_bound","H5F_get_metadata_read_retry_info","H5F_get_min_dset_ohdr","H5F_get_nmounts","H5F_get_nopen_objs","H5F_get_nrefs","H5F_get_null_fsm_addr","H5F_get_obj_count","H5F_get_obj_ids","H5F_get_open_name","H5F_get_parent","H5F_get_pgend_meta_thres","H5F_get_point_of_no_return","H5F_get_read_attempts","H5F_get_rfic_flags","H5F_get_shared","H5F_get_sohm_addr","H5F_get_sohm_nindexes","H5F_get_sohm_vers","H5F_get_threshold","H5F_get_use_file_locking","H5F_get_vfd_handle","H5F_get_vol_cls","H5F_get_vol_obj","H5F_grp_btree_shared","H5F_has_feature","H5F_has_vector_select_io","H5F_incr_nopen_objs","H5F_init","H5F_is_mount","H5F_is_tmp_addr","H5F_mdc_log_location","H5F_mount","H5F_mpi_get_comm","H5F_mpi_get_file_block_type","H5F_mpi_get_info","H5F_mpi_get_rank","H5F_mpi_get_size","H5F_mpi_retrieve_comm","H5F_object_flush_cb","H5F_open","H5F_prefix_open_file","H5F_rdcc_nbytes","H5F_rdcc_nslots","H5F_rdcc_w0","H5F_same_shared","H5F_set_coll_metadata_reads","H5F_set_grp_btree_shared","H5F_set_min_dset_ohdr","H5F_set_retries","H5F_set_sohm_addr","H5F_set_sohm_nindexes","H5F_set_sohm_vers","H5F_set_store_msg_crt_idx","H5F_sfile_assert_num","H5F_shared_block_read","H5F_shared_block_write","H5F_shared_coll_md_read","H5F_shared_get_coll_metadata_reads","H5F_shared_get_eoa","H5F_shared_get_file_driver","H5F_shared_get_intent","H5F_shared_get_mpi_file_sync_required","H5F_shared_has_feature","H5F_shared_mpi_get_size","H5F_shared_select_read","H5F_shared_select_write","H5F_shared_vector_read","H5F_shared_vector_write","H5F_sieve_buf_size","H5F_sizeof_addr","H5F_sizeof_size","H5F_start_mdc_log_on_access","H5F_store_msg_crt_idx","H5F_super_dirty","H5F_sym_leaf_k","H5F_term_package","H5F_track_metadata_read_retries","H5F_traverse_mount","H5F_try_close","H5F_try_close.localalias","H5F_unmount","H5F_use_mdc_logging","H5F_use_tmp_space","H5Fclear_elink_file_cache","H5Fclose","H5Fclose_async","H5Fcreate","H5Fcreate_async","H5Fdelete","H5Fflush","H5Fflush_async","H5Fformat_convert","H5Fget_access_plist","H5Fget_create_plist","H5Fget_dset_no_attrs_hint","H5Fget_eoa","H5Fget_file_image","H5Fget_fileno","H5Fget_filesize","H5Fget_free_sections","H5Fget_freespace","H5Fget_info1","H5Fget_info2","H5Fget_intent","H5Fget_mdc_config","H5Fget_mdc_hit_rate","H5Fget_mdc_image_info","H5Fget_mdc_logging_status","H5Fget_mdc_size","H5Fget_metadata_read_retry_info","H5Fget_mpi_atomicity","H5Fget_name","H5Fget_obj_count","H5Fget_obj_ids","H5Fget_page_buffering_stats","H5Fget_vfd_handle","H5Fincrement_filesize","H5Fis_accessible","H5Fis_hdf5","H5Fmount","H5Fopen","H5Fopen_async","H5Freopen","H5Freopen_async","H5Freset_mdc_hit_rate_stats","H5Freset_page_buffering_stats","H5Fset_dset_no_attrs_hint","H5Fset_latest_format","H5Fset_libver_bounds","H5Fset_mdc_config","H5Fset_mpi_atomicity","H5Fstart_mdc_logging","H5Fstart_swmr_write","H5Fstop_mdc_logging","H5Funmount","H5G__cache_node_deserialize","H5G__cache_node_free_icr","H5G__cache_node_get_initial_load_size","H5G__cache_node_image_len","H5G__cache_node_serialize","H5G__close_cb","H5G__common_path","H5G__compact_build_table_cb","H5G__compact_get_name_by_idx","H5G__compact_insert","H5G__compact_iterate","H5G__compact_lookup","H5G__compact_lookup_by_idx","H5G__compact_lookup_cb","H5G__compact_remove","H5G__compact_remove_by_idx","H5G__compact_remove_common_cb","H5G__component","H5G__create","H5G__create_named","H5G__dense_btree2_corder_compare","H5G__dense_btree2_corder_debug","H5G__dense_btree2_corder_decode","H5G__dense_btree2_corder_encode","H5G__dense_btree2_corder_store","H5G__dense_btree2_name_compare","H5G__dense_btree2_name_debug","H5G__dense_btree2_name_decode","H5G__dense_btree2_name_encode","H5G__dense_btree2_name_store","H5G__dense_build_table","H5G__dense_build_table_cb","H5G__dense_create","H5G__dense_delete","H5G__dense_fh_name_cmp","H5G__dense_get_name_by_idx","H5G__dense_get_name_by_idx_bt2_cb","H5G__dense_get_name_by_idx_fh_cb","H5G__dense_insert","H5G__dense_iterate","H5G__dense_iterate_bt2_cb","H5G__dense_iterate_fh_cb","H5G__dense_lookup","H5G__dense_lookup_by_idx","H5G__dense_lookup_by_idx_bt2_cb","H5G__dense_lookup_by_idx_fh_cb","H5G__dense_lookup_cb","H5G__dense_remove","H5G__dense_remove_bt2_cb","H5G__dense_remove_by_idx","H5G__dense_remove_by_idx_bt2_cb","H5G__dense_remove_by_idx_fh_cb","H5G__dense_remove_fh_cb","H5G__ent_copy","H5G__ent_debug","H5G__ent_decode_vec","H5G__ent_encode_vec","H5G__ent_reset","H5G__ent_to_link","H5G__free_visit_visited","H5G__get_info_by_idx","H5G__get_info_by_name","H5G__get_name_by_addr_cb","H5G__get_objinfo","H5G__get_objinfo_cb","H5G__has_links_test","H5G__has_stab_test","H5G__is_empty_test","H5G__is_new_dense_test","H5G__iterate_cb","H5G__lheap_size_test","H5G__link_cmp_corder_dec","H5G__link_cmp_corder_inc","H5G__link_cmp_name_dec","H5G__link_cmp_name_inc","H5G__link_iterate_table","H5G__link_name_replace","H5G__link_release_table","H5G__link_sort_table","H5G__link_to_ent","H5G__link_to_loc","H5G__loc_addr","H5G__loc_addr_cb","H5G__loc_exists_cb","H5G__loc_find_by_idx_cb","H5G__loc_find_cb","H5G__loc_get_comment_cb","H5G__loc_info_cb","H5G__loc_insert","H5G__loc_native_info_cb","H5G__loc_set_comment_cb","H5G__name_init","H5G__name_replace_cb","H5G__new_dense_info_test","H5G__node_build_table","H5G__node_by_idx","H5G__node_cmp2","H5G__node_cmp3","H5G__node_copy","H5G__node_create","H5G__node_debug_key","H5G__node_decode_key","H5G__node_encode_key","H5G__node_found","H5G__node_free","H5G__node_get_shared","H5G__node_init","H5G__node_insert","H5G__node_iterate","H5G__node_iterate_size","H5G__node_remove","H5G__node_sumup","H5G__obj_compact_to_dense_cb","H5G__obj_create","H5G__obj_create_real","H5G__obj_get_linfo","H5G__obj_info","H5G__obj_iterate","H5G__obj_lookup","H5G__obj_remove_update_linfo","H5G__obj_stab_to_new_cb","H5G__open_name","H5G__stab_bh_size","H5G__stab_count","H5G__stab_create","H5G__stab_create_components","H5G__stab_delete","H5G__stab_get_name_by_idx","H5G__stab_get_name_by_idx_cb","H5G__stab_insert","H5G__stab_insert_real","H5G__stab_iterate","H5G__stab_lookup","H5G__stab_lookup_by_idx","H5G__stab_lookup_by_idx_cb","H5G__stab_lookup_cb","H5G__stab_remove","H5G__stab_remove_by_idx","H5G__stab_valid","H5G__traverse_real","H5G__traverse_slink_cb","H5G__traverse_special","H5G__user_path_test","H5G__verify_cached_stab_test","H5G__verify_cached_stabs_test","H5G__verify_cached_stabs_test_cb","H5G__visit_cb","H5G_build_fullpath_refstr_str","H5G_close","H5G_ent_decode","H5G_ent_encode","H5G_fileof","H5G_get_create_plist","H5G_get_gcpl_id","H5G_get_name","H5G_get_name_by_addr","H5G_get_shared_count","H5G_init","H5G_iterate","H5G_link_to_info","H5G_loc","H5G_loc_copy","H5G_loc_exists","H5G_loc_find","H5G_loc_find_by_idx","H5G_loc_free","H5G_loc_get_comment","H5G_loc_info","H5G_loc_native_info","H5G_loc_real","H5G_loc_reset","H5G_loc_set_comment","H5G_map_obj_type","H5G_mkroot","H5G_mount","H5G_mounted","H5G_name_copy","H5G_name_free","H5G_name_replace","H5G_name_reset","H5G_name_set","H5G_nameof","H5G_node_close","H5G_node_debug","H5G_normalize","H5G_obj_get_name_by_idx","H5G_obj_insert","H5G_obj_insert.localalias","H5G_obj_lookup_by_idx","H5G_obj_remove","H5G_obj_remove_by_idx","H5G_oloc","H5G_open","H5G_root_free","H5G_root_loc","H5G_rootof","H5G_term_package","H5G_top_term_package","H5G_traverse","H5G_unmount","H5G_visit","H5Gclose","H5Gclose_async","H5Gcreate1","H5Gcreate2","H5Gcreate_anon","H5Gcreate_async","H5Gflush","H5Gget_comment","H5Gget_create_plist","H5Gget_info","H5Gget_info_async","H5Gget_info_by_idx","H5Gget_info_by_idx_async","H5Gget_info_by_name","H5Gget_info_by_name_async","H5Gget_linkval","H5Gget_num_objs","H5Gget_objinfo","H5Gget_objname_by_idx","H5Gget_objtype_by_idx","H5Giterate","H5Glink","H5Glink2","H5Gmove","H5Gmove2","H5Gopen1","H5Gopen2","H5Gopen_async","H5Grefresh","H5Gset_comment","H5Gunlink","H5HF__cache_dblock_deserialize","H5HF__cache_dblock_free_icr","H5HF__cache_dblock_fsf_size","H5HF__cache_dblock_get_initial_load_size","H5HF__cache_dblock_image_len","H5HF__cache_dblock_notify","H5HF__cache_dblock_pre_serialize","H5HF__cache_dblock_serialize","H5HF__cache_dblock_verify_chksum","H5HF__cache_hdr_deserialize","H5HF__cache_hdr_free_icr","H5HF__cache_hdr_get_final_load_size","H5HF__cache_hdr_get_initial_load_size","H5HF__cache_hdr_image_len","H5HF__cache_hdr_pre_serialize","H5HF__cache_hdr_serialize","H5HF__cache_hdr_verify_chksum","H5HF__cache_iblock_deserialize","H5HF__cache_iblock_free_icr","H5HF__cache_iblock_get_initial_load_size","H5HF__cache_iblock_image_len","H5HF__cache_iblock_notify","H5HF__cache_iblock_pre_serialize","H5HF__cache_iblock_serialize","H5HF__cache_iblock_verify_chksum","H5HF__dtable_dest","H5HF__dtable_init","H5HF__dtable_lookup","H5HF__dtable_size_to_row","H5HF__dtable_size_to_rows","H5HF__dtable_span_size","H5HF__hdr_adj_free","H5HF__hdr_adjust_heap","H5HF__hdr_alloc","H5HF__hdr_create","H5HF__hdr_decr","H5HF__hdr_delete","H5HF__hdr_dirty","H5HF__hdr_empty","H5HF__hdr_finish_init","H5HF__hdr_finish_init_phase1","H5HF__hdr_finish_init_phase2","H5HF__hdr_free","H5HF__hdr_fuse_decr","H5HF__hdr_fuse_incr","H5HF__hdr_inc_alloc","H5HF__hdr_inc_iter","H5HF__hdr_incr","H5HF__hdr_protect","H5HF__hdr_reset_iter","H5HF__hdr_reverse_iter","H5HF__hdr_skip_blocks","H5HF__hdr_start_iter","H5HF__hdr_update_iter","H5HF__huge_bt2_crt_context","H5HF__huge_bt2_dir_compare","H5HF__huge_bt2_dir_debug","H5HF__huge_bt2_dir_decode","H5HF__huge_bt2_dir_encode","H5HF__huge_bt2_dir_remove","H5HF__huge_bt2_dir_store","H5HF__huge_bt2_dst_context","H5HF__huge_bt2_filt_dir_compare","H5HF__huge_bt2_filt_dir_debug","H5HF__huge_bt2_filt_dir_decode","H5HF__huge_bt2_filt_dir_encode","H5HF__huge_bt2_filt_dir_found","H5HF__huge_bt2_filt_dir_remove","H5HF__huge_bt2_filt_dir_store","H5HF__huge_bt2_filt_indir_compare","H5HF__huge_bt2_filt_indir_debug","H5HF__huge_bt2_filt_indir_decode","H5HF__huge_bt2_filt_indir_encode","H5HF__huge_bt2_filt_indir_found","H5HF__huge_bt2_filt_indir_remove","H5HF__huge_bt2_filt_indir_store","H5HF__huge_bt2_indir_compare","H5HF__huge_bt2_indir_debug","H5HF__huge_bt2_indir_decode","H5HF__huge_bt2_indir_encode","H5HF__huge_bt2_indir_found","H5HF__huge_bt2_indir_remove","H5HF__huge_bt2_indir_store","H5HF__huge_delete","H5HF__huge_get_obj_len","H5HF__huge_get_obj_off","H5HF__huge_init","H5HF__huge_insert","H5HF__huge_op","H5HF__huge_op_real","H5HF__huge_read","H5HF__huge_remove","H5HF__huge_term","H5HF__huge_write","H5HF__iblock_decr","H5HF__iblock_dirty","H5HF__iblock_incr","H5HF__man_dblock_create","H5HF__man_dblock_delete","H5HF__man_dblock_dest","H5HF__man_dblock_destroy","H5HF__man_dblock_locate","H5HF__man_dblock_new","H5HF__man_dblock_protect","H5HF__man_get_obj_len","H5HF__man_get_obj_off","H5HF__man_iblock_alloc_row","H5HF__man_iblock_attach","H5HF__man_iblock_create","H5HF__man_iblock_delete","H5HF__man_iblock_delete.localalias","H5HF__man_iblock_dest","H5HF__man_iblock_detach","H5HF__man_iblock_detach.localalias","H5HF__man_iblock_entry_addr","H5HF__man_iblock_parent_info","H5HF__man_iblock_protect","H5HF__man_iblock_root_create","H5HF__man_iblock_root_double","H5HF__man_iblock_size","H5HF__man_iblock_size.localalias","H5HF__man_iblock_unprotect","H5HF__man_insert","H5HF__man_iter_curr","H5HF__man_iter_down","H5HF__man_iter_init","H5HF__man_iter_next","H5HF__man_iter_ready","H5HF__man_iter_reset","H5HF__man_iter_set_entry","H5HF__man_iter_start_entry","H5HF__man_iter_start_offset","H5HF__man_iter_up","H5HF__man_op","H5HF__man_op_real","H5HF__man_read","H5HF__man_remove","H5HF__man_write","H5HF__op_read","H5HF__op_write","H5HF__sect_indirect_add","H5HF__sect_indirect_decr","H5HF__sect_indirect_first","H5HF__sect_indirect_free","H5HF__sect_indirect_init_cls","H5HF__sect_indirect_init_rows","H5HF__sect_indirect_new","H5HF__sect_indirect_reduce","H5HF__sect_indirect_revive","H5HF__sect_indirect_serialize","H5HF__sect_indirect_shrink","H5HF__sect_indirect_term_cls","H5HF__sect_indirect_valid.isra.0","H5HF__sect_row_can_merge","H5HF__sect_row_can_shrink","H5HF__sect_row_debug","H5HF__sect_row_deserialize","H5HF__sect_row_first.part.0","H5HF__sect_row_free","H5HF__sect_row_get_iblock","H5HF__sect_row_init_cls","H5HF__sect_row_merge","H5HF__sect_row_reduce","H5HF__sect_row_revive","H5HF__sect_row_serialize","H5HF__sect_row_shrink","H5HF__sect_row_term_cls","H5HF__sect_row_valid","H5HF__sect_single_add","H5HF__sect_single_can_merge","H5HF__sect_single_can_shrink","H5HF__sect_single_dblock_info","H5HF__sect_single_deserialize","H5HF__sect_single_free","H5HF__sect_single_full_dblock","H5HF__sect_single_merge","H5HF__sect_single_new","H5HF__sect_single_reduce","H5HF__sect_single_revive","H5HF__sect_single_shrink","H5HF__sect_single_valid","H5HF__space_add","H5HF__space_close","H5HF__space_create_root","H5HF__space_create_root_cb","H5HF__space_delete","H5HF__space_find","H5HF__space_remove","H5HF__space_revert_root","H5HF__space_revert_root_cb","H5HF__space_sect_change_class","H5HF__space_size","H5HF__space_start","H5HF__tiny_get_obj_len","H5HF__tiny_init","H5HF__tiny_insert","H5HF__tiny_op","H5HF__tiny_read","H5HF__tiny_remove","H5HF_close","H5HF_cmp_cparam_test","H5HF_create","H5HF_dblock_debug","H5HF_dblock_debug_cb","H5HF_delete","H5HF_get_cparam_test","H5HF_get_dblock_free_test","H5HF_get_dblock_size_test","H5HF_get_dtable_max_drows_test","H5HF_get_dtable_width_test","H5HF_get_heap_addr","H5HF_get_huge_info_test","H5HF_get_iblock_max_drows_test","H5HF_get_id_len","H5HF_get_id_off_test","H5HF_get_id_type_test","H5HF_get_max_root_rows","H5HF_get_obj_len","H5HF_get_obj_off","H5HF_get_tiny_info_test","H5HF_hdr_debug","H5HF_hdr_print","H5HF_iblock_debug","H5HF_iblock_print","H5HF_iblock_print.localalias","H5HF_id_print","H5HF_insert","H5HF_op","H5HF_open","H5HF_read","H5HF_remove","H5HF_sects_debug","H5HF_sects_debug_cb","H5HF_size","H5HF_stat_info","H5HF_write","H5HG__cache_heap_deserialize","H5HG__cache_heap_free_icr","H5HG__cache_heap_get_final_load_size","H5HG__cache_heap_get_initial_load_size","H5HG__cache_heap_image_len","H5HG__cache_heap_serialize","H5HG__free","H5HG__protect","H5HG_debug","H5HG_extend","H5HG_get_addr","H5HG_get_free_size","H5HG_get_obj_size","H5HG_get_size","H5HG_insert","H5HG_link","H5HG_read","H5HG_remove","H5HL__cache_datablock_deserialize","H5HL__cache_datablock_free_icr","H5HL__cache_datablock_get_initial_load_size","H5HL__cache_datablock_image_len","H5HL__cache_datablock_notify","H5HL__cache_datablock_serialize","H5HL__cache_prefix_deserialize","H5HL__cache_prefix_free_icr","H5HL__cache_prefix_get_final_load_size","H5HL__cache_prefix_get_initial_load_size","H5HL__cache_prefix_image_len","H5HL__cache_prefix_serialize","H5HL__dblk_dest","H5HL__dblk_new","H5HL__dblk_realloc","H5HL__dec_rc","H5HL__dest","H5HL__fl_deserialize","H5HL__fl_serialize","H5HL__hdr_deserialize","H5HL__inc_rc","H5HL__minimize_heap_space","H5HL__new","H5HL__prfx_dest","H5HL__prfx_new","H5HL_create","H5HL_debug","H5HL_delete","H5HL_get_size","H5HL_heap_get_size","H5HL_heapsize","H5HL_insert","H5HL_offset_into","H5HL_protect","H5HL_remove","H5HL_unprotect","H5I__destroy_type","H5I__find_id","H5I__get_name_test","H5I__get_type_ref","H5I__inc_type_ref","H5I__iterate_pub_cb","H5I__register","H5I__remove_common","H5I__remove_verify","H5I__search_cb","H5I_clear_type","H5I_dec_app_ref","H5I_dec_app_ref_always_close","H5I_dec_app_ref_always_close_async","H5I_dec_app_ref_async","H5I_dec_ref","H5I_dec_type_ref","H5I_dump_ids_for_type","H5I_find_id","H5I_get_ref","H5I_get_type","H5I_inc_ref","H5I_is_file_object","H5I_iterate","H5I_nmembers","H5I_object","H5I_object_verify","H5I_register","H5I_register_type","H5I_register_using_existing_id","H5I_remove","H5I_subst","H5I_term_package","H5Iclear_type","H5Idec_ref","H5Idec_type_ref","H5Idestroy_type","H5Iget_file_id","H5Iget_name","H5Iget_ref","H5Iget_type","H5Iget_type_ref","H5Iinc_ref","H5Iinc_type_ref","H5Iis_valid","H5Iiterate","H5Inmembers","H5Iobject_verify","H5Iregister","H5Iregister_future","H5Iregister_type","H5Iremove_verify","H5Isearch","H5Itype_exists","H5L__create_hard","H5L__create_hard_api_common","H5L__create_real","H5L__create_soft","H5L__create_soft_api_common","H5L__create_ud","H5L__delete","H5L__delete_by_idx","H5L__delete_by_idx_cb","H5L__delete_cb","H5L__exists","H5L__exists_final_cb","H5L__exists_inter_cb","H5L__extern_query","H5L__extern_traverse","H5L__get_info_by_idx","H5L__get_info_by_idx_cb","H5L__get_info_cb","H5L__get_name_by_idx","H5L__get_name_by_idx_cb","H5L__get_val","H5L__get_val_by_idx","H5L__get_val_by_idx_cb","H5L__get_val_cb","H5L__iterate2_shim","H5L__link_cb","H5L__link_copy_file","H5L__move","H5L__move_cb","H5L__move_dest_cb","H5L_exists_tolerant","H5L_find_class","H5L_get_info","H5L_get_ocrt_info","H5L_init","H5L_is_registered","H5L_iterate","H5L_link","H5L_link_object","H5L_register","H5L_register_external","H5L_term_package","H5L_unregister","H5Lcopy","H5Lcreate_external","H5Lcreate_hard","H5Lcreate_hard_async","H5Lcreate_soft","H5Lcreate_soft_async","H5Lcreate_ud","H5Ldelete","H5Ldelete_async","H5Ldelete_by_idx","H5Ldelete_by_idx_async","H5Lexists","H5Lexists_async","H5Lget_info1","H5Lget_info2","H5Lget_info_by_idx1","H5Lget_info_by_idx2","H5Lget_name_by_idx","H5Lget_val","H5Lget_val_by_idx","H5Lis_registered","H5Literate1","H5Literate2","H5Literate_async","H5Literate_by_name1","H5Literate_by_name2","H5Lmove","H5Lregister","H5Lunpack_elink_val","H5Lunregister","H5Lvisit1","H5Lvisit2","H5Lvisit_by_name1","H5Lvisit_by_name2","H5MF__add_sect","H5MF__aggr_absorb","H5MF__aggr_alloc","H5MF__aggr_can_absorb","H5MF__aggr_query","H5MF__aggr_try_extend","H5MF__aggrs_try_shrink_eoa","H5MF__alloc_to_fs_type","H5MF__close_delete_fstype","H5MF__close_shrink_eoa","H5MF__find_sect","H5MF__fsm_is_self_referential","H5MF__fsm_type_is_self_referential","H5MF__open_fstype","H5MF__sect_deserialize","H5MF__sect_free","H5MF__sect_large_can_merge","H5MF__sect_large_can_shrink","H5MF__sect_large_merge","H5MF__sect_large_shrink","H5MF__sect_new","H5MF__sect_simple_can_merge","H5MF__sect_simple_can_shrink","H5MF__sect_simple_merge","H5MF__sect_simple_shrink","H5MF__sect_small_add","H5MF__sect_small_can_merge","H5MF__sect_small_merge","H5MF__sect_split","H5MF__sect_valid","H5MF__sects_cb","H5MF__sects_debug_cb","H5MF__start_fstype","H5MF_aggr_vfd_alloc","H5MF_alloc","H5MF_alloc_tmp","H5MF_close","H5MF_free_aggrs","H5MF_get_free_sections","H5MF_get_freespace","H5MF_init_merge_flags","H5MF_sects_debug","H5MF_settle_meta_data_fsm","H5MF_settle_raw_data_fsm","H5MF_try_close","H5MF_try_extend","H5MF_try_shrink","H5MF_xfree","H5MM_realloc","H5MM_strdup","H5MM_strndup","H5MM_xfree","H5MM_xfree_const","H5MM_xstrdup","H5M__close_cb","H5M_init","H5M_term_package","H5M_top_term_package","H5O__add_gap.constprop.0","H5O__ainfo_copy","H5O__ainfo_copy_file","H5O__ainfo_debug","H5O__ainfo_decode","H5O__ainfo_delete","H5O__ainfo_encode","H5O__ainfo_free","H5O__ainfo_post_copy_file","H5O__ainfo_pre_copy_file","H5O__ainfo_size","H5O__alloc","H5O__alloc_chunk","H5O__alloc_find_best_null","H5O__alloc_msgs","H5O__alloc_null","H5O__are_mdc_flushes_disabled","H5O__attr_bh_info","H5O__attr_copy","H5O__attr_count_real","H5O__attr_create","H5O__attr_delete","H5O__attr_dense_info_test","H5O__attr_exists","H5O__attr_exists_cb","H5O__attr_find_opened_attr","H5O__attr_free","H5O__attr_get_crt_index","H5O__attr_iterate","H5O__attr_link","H5O__attr_open_by_idx","H5O__attr_open_by_idx_cb","H5O__attr_open_by_name","H5O__attr_open_cb","H5O__attr_pre_copy_file","H5O__attr_remove","H5O__attr_remove_by_idx","H5O__attr_remove_cb","H5O__attr_remove_update","H5O__attr_rename","H5O__attr_rename_chk_cb","H5O__attr_rename_mod_cb","H5O__attr_reset","H5O__attr_set_crt_index","H5O__attr_shared_copy_file","H5O__attr_shared_debug","H5O__attr_shared_decode","H5O__attr_shared_delete","H5O__attr_shared_encode","H5O__attr_shared_link","H5O__attr_shared_post_copy_file","H5O__attr_shared_size","H5O__attr_to_dense_cb","H5O__attr_update_shared","H5O__attr_write","H5O__attr_write_cb","H5O__btreek_copy","H5O__btreek_debug","H5O__btreek_decode","H5O__btreek_encode","H5O__btreek_size","H5O__cache_chk_deserialize","H5O__cache_chk_free_icr","H5O__cache_chk_get_initial_load_size","H5O__cache_chk_image_len","H5O__cache_chk_notify","H5O__cache_chk_serialize","H5O__cache_chk_verify_chksum","H5O__cache_deserialize","H5O__cache_free_icr","H5O__cache_get_final_load_size","H5O__cache_get_initial_load_size","H5O__cache_image_len","H5O__cache_notify","H5O__cache_serialize","H5O__cache_verify_chksum","H5O__check_msg_marked_test","H5O__chunk_add","H5O__chunk_delete","H5O__chunk_deserialize","H5O__chunk_dest","H5O__chunk_protect","H5O__chunk_resize","H5O__chunk_serialize","H5O__chunk_unprotect","H5O__chunk_update_idx","H5O__condense_header","H5O__cont_debug","H5O__cont_decode","H5O__cont_delete","H5O__cont_encode","H5O__cont_free","H5O__cont_size","H5O__copy","H5O__copy_api_common","H5O__copy_comm_dt_cmp","H5O__copy_free_addrmap_cb","H5O__copy_free_comm_dt_cb","H5O__copy_header_real","H5O__copy_obj_by_ref","H5O__copy_search_comm_dt_attr_cb","H5O__copy_search_comm_dt_cb","H5O__copy_search_comm_dt_check","H5O__debug_real","H5O__dec_rc","H5O__delete_mesg","H5O__disable_mdc_flushes","H5O__drvinfo_copy","H5O__drvinfo_debug","H5O__drvinfo_decode","H5O__drvinfo_encode","H5O__drvinfo_reset","H5O__drvinfo_size","H5O__dset_bh_info","H5O__dset_create","H5O__dset_flush","H5O__dset_free_copy_file_udata","H5O__dset_get_copy_file_udata","H5O__dset_get_oloc","H5O__dset_isa","H5O__dset_open","H5O__dtype_can_share","H5O__dtype_copy","H5O__dtype_create","H5O__dtype_debug.isra.0","H5O__dtype_decode_helper","H5O__dtype_encode_helper","H5O__dtype_encode_helper.cold","H5O__dtype_free","H5O__dtype_get_oloc","H5O__dtype_isa","H5O__dtype_open","H5O__dtype_pre_copy_file","H5O__dtype_reset","H5O__dtype_set_share","H5O__dtype_shared_copy_file","H5O__dtype_shared_debug","H5O__dtype_shared_decode","H5O__dtype_shared_delete","H5O__dtype_shared_encode","H5O__dtype_shared_link","H5O__dtype_shared_post_copy_file","H5O__dtype_shared_size","H5O__dtype_size.isra.0","H5O__efl_copy","H5O__efl_copy_file","H5O__efl_debug","H5O__efl_decode","H5O__efl_encode","H5O__efl_reset","H5O__efl_size","H5O__eliminate_gap","H5O__enable_mdc_flushes","H5O__expunge_chunks_test","H5O__fill_copy","H5O__fill_debug.constprop.0","H5O__fill_free","H5O__fill_new_shared_copy_file","H5O__fill_new_shared_debug","H5O__fill_new_shared_decode","H5O__fill_new_shared_delete","H5O__fill_new_shared_encode","H5O__fill_new_shared_link","H5O__fill_new_shared_post_copy_file","H5O__fill_new_shared_size","H5O__fill_pre_copy_file","H5O__fill_reset","H5O__fill_shared_copy_file","H5O__fill_shared_debug","H5O__fill_shared_decode","H5O__fill_shared_delete","H5O__fill_shared_encode","H5O__fill_shared_link","H5O__fill_shared_post_copy_file","H5O__fill_shared_size","H5O__flush_msgs","H5O__free","H5O__free_visit_visited","H5O__fsinfo_copy","H5O__fsinfo_debug","H5O__fsinfo_decode","H5O__fsinfo_encode","H5O__fsinfo_free","H5O__fsinfo_size","H5O__get_hdr_info_real","H5O__get_info_old","H5O__get_rc_test","H5O__ginfo_copy","H5O__ginfo_debug","H5O__ginfo_decode","H5O__ginfo_encode","H5O__ginfo_free","H5O__ginfo_size","H5O__group_bh_info","H5O__group_create","H5O__group_free_copy_file_udata","H5O__group_get_copy_file_udata","H5O__group_get_oloc","H5O__group_isa","H5O__group_open","H5O__inc_rc","H5O__is_attr_dense_test","H5O__is_attr_empty_test","H5O__iterate1_adapter","H5O__layout_copy","H5O__layout_copy_file","H5O__layout_debug","H5O__layout_decode","H5O__layout_delete","H5O__layout_encode","H5O__layout_free","H5O__layout_pre_copy_file","H5O__layout_reset","H5O__layout_reset.part.0","H5O__layout_size","H5O__linfo_copy","H5O__linfo_copy.part.0","H5O__linfo_copy_file","H5O__linfo_debug","H5O__linfo_decode","H5O__linfo_delete","H5O__linfo_encode","H5O__linfo_free","H5O__linfo_post_copy_file","H5O__linfo_post_copy_file_cb","H5O__linfo_size","H5O__link_copy","H5O__link_copy_file","H5O__link_debug","H5O__link_decode","H5O__link_encode","H5O__link_free","H5O__link_oh","H5O__link_post_copy_file","H5O__link_pre_copy_file","H5O__link_reset","H5O__link_size","H5O__mdci_copy","H5O__mdci_debug","H5O__mdci_decode","H5O__mdci_delete","H5O__mdci_encode","H5O__mdci_free","H5O__mdci_size","H5O__msg_alloc","H5O__msg_append_real","H5O__msg_copy_file","H5O__msg_count_real","H5O__msg_free_mesg","H5O__msg_get_chunkno_test","H5O__msg_iterate_real","H5O__msg_move_to_new_chunk_test","H5O__msg_remove_cb","H5O__msg_remove_real","H5O__msg_write_real","H5O__mtime_copy","H5O__mtime_debug","H5O__mtime_decode","H5O__mtime_encode","H5O__mtime_free","H5O__mtime_new_decode","H5O__mtime_new_encode","H5O__mtime_new_size","H5O__mtime_size","H5O__name_copy","H5O__name_debug","H5O__name_decode","H5O__name_encode","H5O__name_reset","H5O__name_size","H5O__num_attrs_test","H5O__obj_class","H5O__obj_class_real","H5O__open_by_addr","H5O__open_by_idx","H5O__pline_copy","H5O__pline_free","H5O__pline_pre_copy_file","H5O__pline_reset","H5O__pline_shared_copy_file","H5O__pline_shared_debug","H5O__pline_shared_decode","H5O__pline_shared_delete","H5O__pline_shared_encode","H5O__pline_shared_link","H5O__pline_shared_post_copy_file","H5O__pline_shared_size","H5O__prefix_deserialize","H5O__refcount_copy","H5O__refcount_debug","H5O__refcount_decode","H5O__refcount_encode","H5O__refcount_free","H5O__refcount_pre_copy_file","H5O__refcount_size","H5O__release_mesg","H5O__remove_empty_chunks","H5O__sdspace_copy","H5O__sdspace_free","H5O__sdspace_pre_copy_file","H5O__sdspace_reset","H5O__sdspace_shared_copy_file","H5O__sdspace_shared_debug","H5O__sdspace_shared_decode","H5O__sdspace_shared_delete","H5O__sdspace_shared_encode","H5O__sdspace_shared_link","H5O__sdspace_shared_post_copy_file","H5O__sdspace_shared_size","H5O__shared_copy_file","H5O__shared_debug","H5O__shared_decode","H5O__shared_delete","H5O__shared_encode","H5O__shared_link","H5O__shared_post_copy_file","H5O__shared_size","H5O__shmesg_copy","H5O__shmesg_debug","H5O__shmesg_decode","H5O__shmesg_encode","H5O__shmesg_size","H5O__stab_copy","H5O__stab_copy_file","H5O__stab_debug","H5O__stab_decode","H5O__stab_delete","H5O__stab_encode","H5O__stab_free","H5O__stab_post_copy_file","H5O__stab_size","H5O__unknown_free","H5O__visit","H5O__visit_cb","H5O_apply_ohdr","H5O_attr_iterate_real","H5O_close","H5O_copy_expand_ref","H5O_copy_header_map","H5O_create","H5O_create_ohdr","H5O_debug","H5O_debug_id","H5O_dec_rc_by_loc","H5O_delete","H5O_efl_total_size","H5O_fill_convert","H5O_fill_reset_dyn","H5O_fill_set_version","H5O_flush","H5O_flush_common","H5O_fsinfo_check_version","H5O_fsinfo_set_version","H5O_get_create_plist","H5O_get_hdr_info","H5O_get_info","H5O_get_loc","H5O_get_native_info","H5O_get_nlinks","H5O_get_oh_addr","H5O_get_oh_flags","H5O_get_oh_mtime","H5O_get_oh_version","H5O_get_proxy","H5O_get_rc_and_type","H5O_has_chksum","H5O_init","H5O_link","H5O_link_delete","H5O_loc_copy","H5O_loc_copy_deep","H5O_loc_copy_shallow","H5O_loc_free","H5O_loc_hold_file","H5O_loc_reset","H5O_msg_append_oh","H5O_msg_can_share","H5O_msg_can_share_in_ohdr","H5O_msg_copy","H5O_msg_count","H5O_msg_create","H5O_msg_decode","H5O_msg_delete","H5O_msg_encode","H5O_msg_exists","H5O_msg_exists_oh","H5O_msg_flush","H5O_msg_free","H5O_msg_free_real","H5O_msg_get_crt_index","H5O_msg_get_flags","H5O_msg_is_shared","H5O_msg_iterate","H5O_msg_raw_size","H5O_msg_read","H5O_msg_read_oh","H5O_msg_remove","H5O_msg_remove_op","H5O_msg_reset","H5O_msg_reset_share","H5O_msg_set_share","H5O_msg_size_f","H5O_msg_size_oh","H5O_msg_write","H5O_msg_write_oh","H5O_obj_create","H5O_obj_type","H5O_open","H5O_open_by_loc","H5O_open_name","H5O_pin","H5O_pline_set_version","H5O_protect","H5O_refresh_metadata","H5O_refresh_metadata_reopen","H5O_set_shared","H5O_touch","H5O_touch_oh","H5O_unpin","H5O_unprotect","H5Oare_mdc_flushes_disabled","H5Oclose","H5Oclose_async","H5Ocopy","H5Ocopy_async","H5Odecr_refcount","H5Odisable_mdc_flushes","H5Oenable_mdc_flushes","H5Oexists_by_name","H5Oflush","H5Oflush_async","H5Oget_comment","H5Oget_comment_by_name","H5Oget_info1","H5Oget_info2","H5Oget_info3","H5Oget_info_by_idx1","H5Oget_info_by_idx2","H5Oget_info_by_idx3","H5Oget_info_by_name1","H5Oget_info_by_name2","H5Oget_info_by_name3","H5Oget_info_by_name_async","H5Oget_native_info","H5Oget_native_info_by_idx","H5Oget_native_info_by_name","H5Oincr_refcount","H5Olink","H5Oopen","H5Oopen_async","H5Oopen_by_addr","H5Oopen_by_idx","H5Oopen_by_idx_async","H5Oopen_by_token","H5Orefresh","H5Orefresh_async","H5Oset_comment","H5Oset_comment_by_name","H5Otoken_cmp","H5Otoken_from_str","H5Otoken_to_str","H5Ovisit1","H5Ovisit2","H5Ovisit3","H5Ovisit_by_name1","H5Ovisit_by_name2","H5Ovisit_by_name3","H5PB__dest_cb","H5PB__flush_cb","H5PB__make_space","H5PB_add_new_page","H5PB_create","H5PB_dest","H5PB_enabled","H5PB_flush","H5PB_get_stats","H5PB_print_stats","H5PB_read","H5PB_remove_entry","H5PB_reset_stats","H5PB_update_entry","H5PB_write","H5PL__add_plugin","H5PL__append_path","H5PL__close","H5PL__close_path_table","H5PL__close_plugin_cache","H5PL__create_path_table","H5PL__create_plugin_cache","H5PL__find_plugin_in_cache","H5PL__find_plugin_in_path_table","H5PL__get_num_paths","H5PL__get_path","H5PL__get_plugin_control_mask","H5PL__insert_at","H5PL__insert_path","H5PL__open","H5PL__path_table_iterate","H5PL__prepend_path","H5PL__remove_path","H5PL__replace_path","H5PL__set_plugin_control_mask","H5PL_init","H5PL_iterate","H5PL_load","H5PL_term_package","H5PLappend","H5PLget","H5PLget_loading_state","H5PLinsert","H5PLprepend","H5PLremove","H5PLreplace","H5PLset_loading_state","H5PLsize","H5P__access_class","H5P__access_class.localalias","H5P__add_prop","H5P__class_get","H5P__class_set","H5P__close_class","H5P__close_class_cb","H5P__close_list_cb","H5P__cmp_class","H5P__cmp_plist","H5P__cmp_plist_cb","H5P__cmp_prop.part.0","H5P__copy_merge_comm_dt_list","H5P__copy_pclass","H5P__copy_prop_pclass","H5P__copy_prop_plist","H5P__create_class","H5P__create_prop","H5P__dacc_reg_prop","H5P__dacc_vds_view_dec","H5P__dacc_vds_view_enc","H5P__dapl_efile_pref_close","H5P__dapl_efile_pref_cmp","H5P__dapl_efile_pref_copy","H5P__dapl_efile_pref_dec","H5P__dapl_efile_pref_del","H5P__dapl_efile_pref_enc","H5P__dapl_efile_pref_get","H5P__dapl_efile_pref_set","H5P__dapl_vds_file_pref_close","H5P__dapl_vds_file_pref_cmp","H5P__dapl_vds_file_pref_copy","H5P__dapl_vds_file_pref_dec","H5P__dapl_vds_file_pref_del","H5P__dapl_vds_file_pref_enc","H5P__dapl_vds_file_pref_get","H5P__dapl_vds_file_pref_set","H5P__dcrt_ext_file_list_close","H5P__dcrt_ext_file_list_cmp","H5P__dcrt_ext_file_list_copy","H5P__dcrt_ext_file_list_dec","H5P__dcrt_ext_file_list_del","H5P__dcrt_ext_file_list_enc","H5P__dcrt_ext_file_list_get","H5P__dcrt_ext_file_list_set","H5P__dcrt_fill_value_close","H5P__dcrt_fill_value_copy","H5P__dcrt_fill_value_dec","H5P__dcrt_fill_value_del","H5P__dcrt_fill_value_enc","H5P__dcrt_fill_value_get","H5P__dcrt_fill_value_set","H5P__dcrt_layout_close","H5P__dcrt_layout_cmp","H5P__dcrt_layout_copy","H5P__dcrt_layout_dec","H5P__dcrt_layout_del","H5P__dcrt_layout_enc","H5P__dcrt_layout_get","H5P__dcrt_layout_set","H5P__dcrt_reg_prop","H5P__decode","H5P__decode_bool","H5P__decode_chunk_cache_nbytes","H5P__decode_chunk_cache_nslots","H5P__decode_coll_md_read_flag_t","H5P__decode_double","H5P__decode_hsize_t","H5P__decode_size_t","H5P__decode_uint64_t","H5P__decode_uint8_t","H5P__decode_unsigned","H5P__do_prop_cb1","H5P__dup_prop","H5P__dxfr_bkgr_buf_type_dec","H5P__dxfr_bkgr_buf_type_enc","H5P__dxfr_btree_split_ratio_dec","H5P__dxfr_btree_split_ratio_enc","H5P__dxfr_dset_io_hyp_sel_close","H5P__dxfr_dset_io_hyp_sel_cmp","H5P__dxfr_dset_io_hyp_sel_copy","H5P__dxfr_edc_dec","H5P__dxfr_edc_enc","H5P__dxfr_io_xfer_mode_dec","H5P__dxfr_io_xfer_mode_enc","H5P__dxfr_modify_write_buf_dec","H5P__dxfr_modify_write_buf_enc","H5P__dxfr_mpio_chunk_opt_hard_dec","H5P__dxfr_mpio_chunk_opt_hard_enc","H5P__dxfr_mpio_collective_opt_dec","H5P__dxfr_mpio_collective_opt_enc","H5P__dxfr_reg_prop","H5P__dxfr_selection_io_mode_dec","H5P__dxfr_selection_io_mode_enc","H5P__dxfr_xform_close","H5P__dxfr_xform_cmp","H5P__dxfr_xform_copy","H5P__dxfr_xform_dec","H5P__dxfr_xform_del","H5P__dxfr_xform_enc","H5P__dxfr_xform_get","H5P__dxfr_xform_set","H5P__encode","H5P__encode_bool","H5P__encode_cb","H5P__encode_chunk_cache_nbytes","H5P__encode_chunk_cache_nslots","H5P__encode_coll_md_read_flag_t","H5P__encode_double","H5P__encode_hsize_t","H5P__encode_size_t","H5P__encode_uint64_t","H5P__encode_uint8_t","H5P__encode_unsigned","H5P__exist_pclass","H5P__facc_cache_config_cmp","H5P__facc_cache_config_dec","H5P__facc_cache_config_enc","H5P__facc_cache_image_config_cmp","H5P__facc_cache_image_config_dec","H5P__facc_cache_image_config_enc","H5P__facc_fclose_degree_dec","H5P__facc_fclose_degree_enc","H5P__facc_file_driver_close","H5P__facc_file_driver_cmp","H5P__facc_file_driver_copy","H5P__facc_file_driver_create","H5P__facc_file_driver_del","H5P__facc_file_driver_get","H5P__facc_file_driver_set","H5P__facc_file_image_info_close","H5P__facc_file_image_info_cmp","H5P__facc_file_image_info_copy","H5P__facc_file_image_info_del","H5P__facc_file_image_info_get","H5P__facc_file_image_info_set","H5P__facc_libver_type_dec","H5P__facc_libver_type_enc","H5P__facc_mdc_log_location_close","H5P__facc_mdc_log_location_cmp","H5P__facc_mdc_log_location_copy","H5P__facc_mdc_log_location_dec","H5P__facc_mdc_log_location_del","H5P__facc_mdc_log_location_enc","H5P__facc_mpi_comm_close","H5P__facc_mpi_comm_cmp","H5P__facc_mpi_comm_copy","H5P__facc_mpi_comm_del","H5P__facc_mpi_comm_get","H5P__facc_mpi_comm_set","H5P__facc_mpi_info_close","H5P__facc_mpi_info_cmp","H5P__facc_mpi_info_copy","H5P__facc_mpi_info_del","H5P__facc_mpi_info_get","H5P__facc_mpi_info_set","H5P__facc_multi_type_dec","H5P__facc_multi_type_enc","H5P__facc_reg_prop","H5P__facc_set_def_driver","H5P__facc_vol_close","H5P__facc_vol_cmp","H5P__facc_vol_copy","H5P__facc_vol_create","H5P__facc_vol_del","H5P__facc_vol_get","H5P__facc_vol_set","H5P__fcrt_btree_rank_dec","H5P__fcrt_btree_rank_enc","H5P__fcrt_fspace_strategy_dec","H5P__fcrt_fspace_strategy_enc","H5P__fcrt_reg_prop","H5P__fcrt_shmsg_index_minsize_dec","H5P__fcrt_shmsg_index_minsize_enc","H5P__fcrt_shmsg_index_types_dec","H5P__fcrt_shmsg_index_types_enc","H5P__find_prop_plist","H5P__fmnt_reg_prop","H5P__free_del_name_cb","H5P__free_prop_cb","H5P__gcrt_group_info_dec","H5P__gcrt_group_info_enc","H5P__gcrt_link_info_dec","H5P__gcrt_link_info_enc","H5P__gcrt_reg_prop","H5P__get_cb","H5P__get_class_parent","H5P__get_class_path","H5P__get_class_path.localalias","H5P__get_class_path_test","H5P__get_filter","H5P__get_nprops_plist","H5P__get_size_pclass","H5P__get_size_plist","H5P__iterate_cb","H5P__iterate_pclass","H5P__iterate_pclass_cb","H5P__iterate_plist","H5P__iterate_plist_cb","H5P__iterate_plist_pclass_cb","H5P__lacc_elink_fapl_close","H5P__lacc_elink_fapl_cmp","H5P__lacc_elink_fapl_copy","H5P__lacc_elink_fapl_dec","H5P__lacc_elink_fapl_del","H5P__lacc_elink_fapl_enc","H5P__lacc_elink_fapl_get","H5P__lacc_elink_fapl_set","H5P__lacc_elink_pref_close","H5P__lacc_elink_pref_cmp","H5P__lacc_elink_pref_copy","H5P__lacc_elink_pref_dec","H5P__lacc_elink_pref_del","H5P__lacc_elink_pref_enc","H5P__lacc_elink_pref_get","H5P__lacc_elink_pref_set","H5P__lacc_reg_prop","H5P__lcrt_reg_prop","H5P__macc_reg_prop","H5P__mcrt_reg_prop","H5P__new_plist_of_type","H5P__ocpy_merge_comm_dt_list_close","H5P__ocpy_merge_comm_dt_list_cmp","H5P__ocpy_merge_comm_dt_list_copy","H5P__ocpy_merge_comm_dt_list_dec","H5P__ocpy_merge_comm_dt_list_del","H5P__ocpy_merge_comm_dt_list_enc","H5P__ocpy_merge_comm_dt_list_enc.cold","H5P__ocpy_merge_comm_dt_list_get","H5P__ocpy_merge_comm_dt_list_set","H5P__ocpy_reg_prop","H5P__ocrt_pipeline_close","H5P__ocrt_pipeline_cmp","H5P__ocrt_pipeline_copy","H5P__ocrt_pipeline_dec","H5P__ocrt_pipeline_del","H5P__ocrt_pipeline_enc","H5P__ocrt_pipeline_get","H5P__ocrt_pipeline_set","H5P__ocrt_reg_prop","H5P__open_class_path","H5P__open_class_path_cb","H5P__open_class_path_test","H5P__register","H5P__register_real","H5P__set_layout","H5P__strcrt_char_encoding_dec","H5P__strcrt_char_encoding_enc","H5P__strcrt_reg_prop","H5P__unregister","H5P_class_isa","H5P_close","H5P_copy_plist","H5P_create_id","H5P_exist_plist","H5P_fill_value_cmp","H5P_fill_value_defined","H5P_filter_in_pline","H5P_get","H5P_get_class","H5P_get_class_name","H5P_get_fill_value","H5P_get_filter_by_id","H5P_get_nprops_pclass","H5P_get_plist_id","H5P_ignore_cmp","H5P_init_phase1","H5P_init_phase2","H5P_insert","H5P_is_fill_value_defined","H5P_isa_class","H5P_modify_filter","H5P_object_verify","H5P_peek","H5P_peek_driver","H5P_peek_driver_config_str","H5P_peek_driver_info","H5P_poke","H5P_remove","H5P_reset_vol_class","H5P_set","H5P_set_driver","H5P_set_driver_by_name","H5P_set_driver_by_value","H5P_set_vlen_mem_manager","H5P_set_vol","H5P_term_package","H5Padd_merge_committed_dtype_path","H5Pall_filters_avail","H5Pclose","H5Pclose_class","H5Pcopy","H5Pcopy_prop","H5Pcreate","H5Pcreate_class","H5Pdecode","H5Pencode1","H5Pencode2","H5Pequal","H5Pexist","H5Pfill_value_defined","H5Pfree_merge_committed_dtype_paths","H5Pget","H5Pget_actual_selection_io_mode","H5Pget_alignment","H5Pget_all_coll_metadata_ops","H5Pget_alloc_time","H5Pget_append_flush","H5Pget_attr_creation_order","H5Pget_attr_phase_change","H5Pget_btree_ratios","H5Pget_buffer","H5Pget_cache","H5Pget_char_encoding","H5Pget_chunk","H5Pget_chunk_cache","H5Pget_chunk_opts","H5Pget_class","H5Pget_class_name","H5Pget_class_parent","H5Pget_coll_metadata_write","H5Pget_copy_object","H5Pget_core_write_tracking","H5Pget_create_intermediate_group","H5Pget_data_transform","H5Pget_driver","H5Pget_driver_config_str","H5Pget_driver_info","H5Pget_dset_no_attrs_hint","H5Pget_dxpl_mpio","H5Pget_edc_check","H5Pget_efile_prefix","H5Pget_elink_acc_flags","H5Pget_elink_cb","H5Pget_elink_fapl","H5Pget_elink_file_cache_size","H5Pget_elink_prefix","H5Pget_est_link_info","H5Pget_evict_on_close","H5Pget_external","H5Pget_external_count","H5Pget_family_offset","H5Pget_fapl_core","H5Pget_fapl_family","H5Pget_fapl_mpio","H5Pget_fapl_multi","H5Pget_fapl_onion","H5Pget_fapl_splitter","H5Pget_fclose_degree","H5Pget_file_image","H5Pget_file_image_callbacks","H5Pget_file_locking","H5Pget_file_space","H5Pget_file_space_page_size","H5Pget_file_space_strategy","H5Pget_fill_time","H5Pget_fill_value","H5Pget_filter1","H5Pget_filter2","H5Pget_filter_by_id1","H5Pget_filter_by_id2","H5Pget_gc_references","H5Pget_hyper_vector_size","H5Pget_istore_k","H5Pget_layout","H5Pget_libver_bounds","H5Pget_link_creation_order","H5Pget_link_phase_change","H5Pget_local_heap_size_hint","H5Pget_mcdt_search_cb","H5Pget_mdc_config","H5Pget_mdc_image_config","H5Pget_mdc_log_options","H5Pget_meta_block_size","H5Pget_metadata_read_attempts","H5Pget_modify_write_buf","H5Pget_mpi_params","H5Pget_mpio_actual_chunk_opt_mode","H5Pget_mpio_actual_io_mode","H5Pget_mpio_no_collective_cause","H5Pget_multi_type","H5Pget_nfilters","H5Pget_nlinks","H5Pget_no_selection_io_cause","H5Pget_nprops","H5Pget_obj_track_times","H5Pget_object_flush_cb","H5Pget_page_buffer_size","H5Pget_preserve","H5Pget_relax_file_integrity_checks","H5Pget_selection_io","H5Pget_shared_mesg_index","H5Pget_shared_mesg_nindexes","H5Pget_shared_mesg_phase_change","H5Pget_sieve_buf_size","H5Pget_size","H5Pget_sizes","H5Pget_small_data_block_size","H5Pget_sym_k","H5Pget_type_conv_cb","H5Pget_userblock","H5Pget_version","H5Pget_virtual_count","H5Pget_virtual_dsetname","H5Pget_virtual_filename","H5Pget_virtual_prefix","H5Pget_virtual_printf_gap","H5Pget_virtual_srcspace","H5Pget_virtual_view","H5Pget_virtual_vspace","H5Pget_vlen_mem_manager","H5Pget_vol_cap_flags","H5Pget_vol_id","H5Pget_vol_info","H5Pinsert1","H5Pinsert2","H5Pisa_class","H5Piterate","H5Pmodify_filter","H5Pregister1","H5Pregister2","H5Premove","H5Premove_filter","H5Pset","H5Pset_alignment","H5Pset_all_coll_metadata_ops","H5Pset_alloc_time","H5Pset_append_flush","H5Pset_attr_creation_order","H5Pset_attr_phase_change","H5Pset_btree_ratios","H5Pset_buffer","H5Pset_cache","H5Pset_char_encoding","H5Pset_chunk","H5Pset_chunk_cache","H5Pset_chunk_opts","H5Pset_coll_metadata_write","H5Pset_copy_object","H5Pset_core_write_tracking","H5Pset_create_intermediate_group","H5Pset_data_transform","H5Pset_dataset_io_hyperslab_selection","H5Pset_deflate","H5Pset_driver","H5Pset_driver_by_name","H5Pset_driver_by_value","H5Pset_dset_no_attrs_hint","H5Pset_dxpl_mpio","H5Pset_dxpl_mpio_chunk_opt","H5Pset_dxpl_mpio_chunk_opt_num","H5Pset_dxpl_mpio_chunk_opt_ratio","H5Pset_dxpl_mpio_collective_opt","H5Pset_edc_check","H5Pset_efile_prefix","H5Pset_elink_acc_flags","H5Pset_elink_cb","H5Pset_elink_fapl","H5Pset_elink_file_cache_size","H5Pset_elink_prefix","H5Pset_est_link_info","H5Pset_evict_on_close","H5Pset_external","H5Pset_family_offset","H5Pset_fapl_core","H5Pset_fapl_family","H5Pset_fapl_log","H5Pset_fapl_mpio","H5Pset_fapl_multi","H5Pset_fapl_onion","H5Pset_fapl_sec2","H5Pset_fapl_split","H5Pset_fapl_splitter","H5Pset_fapl_stdio","H5Pset_fclose_degree","H5Pset_file_image","H5Pset_file_image_callbacks","H5Pset_file_locking","H5Pset_file_space","H5Pset_file_space_page_size","H5Pset_file_space_strategy","H5Pset_fill_time","H5Pset_fill_value","H5Pset_filter","H5Pset_filter_callback","H5Pset_fletcher32","H5Pset_gc_references","H5Pset_hyper_vector_size","H5Pset_istore_k","H5Pset_layout","H5Pset_libver_bounds","H5Pset_link_creation_order","H5Pset_link_phase_change","H5Pset_local_heap_size_hint","H5Pset_mcdt_search_cb","H5Pset_mdc_config","H5Pset_mdc_image_config","H5Pset_mdc_log_options","H5Pset_meta_block_size","H5Pset_metadata_read_attempts","H5Pset_modify_write_buf","H5Pset_mpi_params","H5Pset_multi_type","H5Pset_nbit","H5Pset_nlinks","H5Pset_obj_track_times","H5Pset_object_flush_cb","H5Pset_page_buffer_size","H5Pset_preserve","H5Pset_relax_file_integrity_checks","H5Pset_scaleoffset","H5Pset_selection_io","H5Pset_shared_mesg_index","H5Pset_shared_mesg_nindexes","H5Pset_shared_mesg_phase_change","H5Pset_shuffle","H5Pset_sieve_buf_size","H5Pset_sizes","H5Pset_small_data_block_size","H5Pset_sym_k","H5Pset_szip","H5Pset_type_conv_cb","H5Pset_userblock","H5Pset_virtual","H5Pset_virtual_prefix","H5Pset_virtual_printf_gap","H5Pset_virtual_view","H5Pset_vlen_mem_manager","H5Pset_vol","H5Punregister","H5RS__prepare_for_append","H5RS__resize_for_append.part.0","H5RS_acat","H5RS_ancat","H5RS_aputc","H5RS_asprintf_cat","H5RS_cmp","H5RS_create","H5RS_decr","H5RS_dup","H5RS_get_count","H5RS_get_str","H5RS_incr","H5RS_len","H5RS_wrap","H5R__copy","H5R__create_attr","H5R__create_object","H5R__create_region","H5R__decode","H5R__decode_heap","H5R__decode_string","H5R__decode_token_compat","H5R__decode_token_obj_compat","H5R__decode_token_region_compat","H5R__destroy","H5R__encode","H5R__encode_heap","H5R__encode_token_obj_compat","H5R__equal","H5R__get_attr_name","H5R__get_file_name","H5R__get_loc_id","H5R__get_obj_token","H5R__get_region","H5R__get_type","H5R__open_attr_api_common","H5R__open_object_api_common","H5R__open_region_api_common","H5R__reopen_file","H5R__set_loc_id","H5R__set_obj_token","H5R_init","H5Rcopy","H5Rcreate","H5Rcreate_attr","H5Rcreate_object","H5Rcreate_region","H5Rdereference1","H5Rdereference2","H5Rdestroy","H5Requal","H5Rget_attr_name","H5Rget_file_name","H5Rget_name","H5Rget_obj_name","H5Rget_obj_type1","H5Rget_obj_type2","H5Rget_obj_type3","H5Rget_region","H5Rget_type","H5Ropen_attr","H5Ropen_attr_async","H5Ropen_object","H5Ropen_object_async","H5Ropen_region","H5Ropen_region_async","H5SL__insert_common","H5SL__insert_common.cold","H5SL__release_common","H5SL_below","H5SL_close","H5SL_count","H5SL_create","H5SL_destroy","H5SL_find","H5SL_find.cold","H5SL_first","H5SL_free","H5SL_greater","H5SL_init","H5SL_insert","H5SL_item","H5SL_iterate","H5SL_last","H5SL_less","H5SL_next","H5SL_prev","H5SL_release","H5SL_remove","H5SL_remove.cold","H5SL_remove_first","H5SL_search","H5SL_search.cold","H5SL_term_package","H5SM__bt2_convert_to_list_op","H5SM__bt2_crt_context","H5SM__bt2_debug","H5SM__bt2_dst_context","H5SM__bt2_store","H5SM__cache_list_deserialize","H5SM__cache_list_free_icr","H5SM__cache_list_get_initial_load_size","H5SM__cache_list_image_len","H5SM__cache_list_serialize","H5SM__cache_list_verify_chksum","H5SM__cache_table_deserialize","H5SM__cache_table_free_icr","H5SM__cache_table_get_initial_load_size","H5SM__cache_table_image_len","H5SM__cache_table_serialize","H5SM__cache_table_verify_chksum","H5SM__compare_cb","H5SM__compare_iter_op","H5SM__create_list","H5SM__decr_ref","H5SM__delete_index","H5SM__get_index","H5SM__get_mesg_count_test","H5SM__get_refcount_bt2_cb","H5SM__incr_ref","H5SM__list_free","H5SM__message_compare","H5SM__message_decode","H5SM__message_encode","H5SM__read_iter_op","H5SM__read_mesg","H5SM__read_mesg_fh_cb","H5SM__table_free","H5SM_can_share","H5SM_delete","H5SM_get_fheap_addr","H5SM_get_info","H5SM_get_refcount","H5SM_ih_size","H5SM_init","H5SM_list_debug","H5SM_reconstitute","H5SM_table_debug","H5SM_try_share","H5SM_type_shared","H5S__all_adjust_s","H5S__all_adjust_u","H5S__all_bounds","H5S__all_copy","H5S__all_deserialize","H5S__all_intersect_block","H5S__all_is_contiguous","H5S__all_is_regular","H5S__all_is_single","H5S__all_is_valid","H5S__all_iter_block","H5S__all_iter_coords","H5S__all_iter_get_seq_list","H5S__all_iter_has_next_block","H5S__all_iter_init","H5S__all_iter_nelmts","H5S__all_iter_next","H5S__all_iter_next_block","H5S__all_iter_release","H5S__all_offset","H5S__all_project_scalar","H5S__all_project_simple","H5S__all_release","H5S__all_serial_size","H5S__all_serialize","H5S__all_shape_same","H5S__all_unlim_dim","H5S__check_internal_consistency","H5S__check_spans_overlap","H5S__check_spans_tail_ptr","H5S__close_cb","H5S__combine_select","H5S__copy_pnt_list","H5S__extent_copy_real","H5S__extent_release","H5S__fill_in_new_space","H5S__fill_in_select","H5S__generate_hyperslab","H5S__get_diminfo_status_test","H5S__get_rebuild_status_test","H5S__get_select_hyper_blocklist","H5S__hyper_add_disjoint_spans","H5S__hyper_add_span_element_helper.constprop.0","H5S__hyper_adjust_s","H5S__hyper_adjust_s_helper.constprop.0","H5S__hyper_adjust_u","H5S__hyper_adjust_u_helper.constprop.0","H5S__hyper_append_span","H5S__hyper_append_span.constprop.0","H5S__hyper_bounds","H5S__hyper_clip_spans.constprop.0","H5S__hyper_cmp_spans.part.0","H5S__hyper_coord_to_span","H5S__hyper_copy","H5S__hyper_copy_span_helper.part.0","H5S__hyper_deserialize","H5S__hyper_free_span_info","H5S__hyper_generate_spans","H5S__hyper_get_op_gen","H5S__hyper_get_version_enc_size","H5S__hyper_intersect_block","H5S__hyper_intersect_block_helper.constprop.0","H5S__hyper_is_contiguous","H5S__hyper_is_regular","H5S__hyper_is_single","H5S__hyper_is_valid","H5S__hyper_iter_block","H5S__hyper_iter_coords","H5S__hyper_iter_get_seq_list","H5S__hyper_iter_get_seq_list_opt","H5S__hyper_iter_get_seq_list_single","H5S__hyper_iter_has_next_block","H5S__hyper_iter_init","H5S__hyper_iter_nelmts","H5S__hyper_iter_next","H5S__hyper_iter_next_block","H5S__hyper_iter_release","H5S__hyper_make_spans","H5S__hyper_merge_spans_helper","H5S__hyper_new_span.part.0","H5S__hyper_new_span_info.part.0","H5S__hyper_num_elem_non_unlim","H5S__hyper_offset","H5S__hyper_proj_int_build_proj","H5S__hyper_proj_int_iterate","H5S__hyper_project_intersection","H5S__hyper_project_scalar","H5S__hyper_project_simple","H5S__hyper_rebuild","H5S__hyper_rebuild_helper","H5S__hyper_release","H5S__hyper_serial_size","H5S__hyper_serialize","H5S__hyper_serialize_helper","H5S__hyper_shape_same","H5S__hyper_span_blocklist","H5S__hyper_span_nblocks_helper.constprop.0","H5S__hyper_spans_nelem_helper.part.0.constprop.0","H5S__hyper_spans_shape_same","H5S__hyper_spans_shape_same_helper","H5S__hyper_unlim_dim","H5S__hyper_update_diminfo","H5S__internal_consistency_test","H5S__modify_select","H5S__mpio_create_point_datatype","H5S__mpio_reg_hyper_type","H5S__mpio_span_hyper_type","H5S__none_adjust_s","H5S__none_adjust_u","H5S__none_bounds","H5S__none_copy","H5S__none_deserialize","H5S__none_intersect_block","H5S__none_is_contiguous","H5S__none_is_regular","H5S__none_is_single","H5S__none_is_valid","H5S__none_iter_block","H5S__none_iter_coords","H5S__none_iter_get_seq_list","H5S__none_iter_has_next_block","H5S__none_iter_init","H5S__none_iter_nelmts","H5S__none_iter_next","H5S__none_iter_next_block","H5S__none_iter_release","H5S__none_offset","H5S__none_project_scalar","H5S__none_project_simple","H5S__none_release","H5S__none_serial_size","H5S__none_serialize","H5S__none_shape_same","H5S__none_unlim_dim","H5S__obtain_datatype.constprop.0","H5S__point_adjust_s","H5S__point_adjust_u","H5S__point_bounds","H5S__point_copy","H5S__point_deserialize","H5S__point_get_version_enc_size","H5S__point_intersect_block","H5S__point_is_contiguous","H5S__point_is_regular","H5S__point_is_single","H5S__point_is_valid","H5S__point_iter_block","H5S__point_iter_coords","H5S__point_iter_get_seq_list","H5S__point_iter_has_next_block","H5S__point_iter_init","H5S__point_iter_nelmts","H5S__point_iter_next","H5S__point_iter_next_block","H5S__point_iter_release","H5S__point_offset","H5S__point_project_scalar","H5S__point_project_simple","H5S__point_release","H5S__point_serial_size","H5S__point_serialize","H5S__point_shape_same","H5S__point_unlim_dim","H5S__sel_iter_close_cb","H5S__set_regular_hyperslab","H5S__verify_offsets","H5S_append","H5S_close","H5S_combine_hyperslab","H5S_copy","H5S_create","H5S_create_simple","H5S_debug","H5S_decode","H5S_encode","H5S_extent_copy","H5S_extent_equal","H5S_extent_get_dims","H5S_extent_nelem","H5S_get_npoints_max","H5S_get_select_bounds","H5S_get_select_npoints","H5S_get_select_num_elem_non_unlim","H5S_get_select_offset","H5S_get_select_type","H5S_get_select_unlim_dim","H5S_get_simple_extent","H5S_get_simple_extent_dims","H5S_get_simple_extent_ndims","H5S_get_simple_extent_npoints","H5S_get_simple_extent_type","H5S_has_extent","H5S_hyper_add_span_element","H5S_hyper_clip_unlim","H5S_hyper_denormalize_offset","H5S_hyper_get_clip_extent","H5S_hyper_get_clip_extent_match","H5S_hyper_get_first_inc_block","H5S_hyper_get_unlim_block","H5S_hyper_normalize_offset","H5S_init","H5S_mpio_space_type","H5S_read","H5S_sel_iter_close","H5S_select_adjust_s","H5S_select_adjust_u","H5S_select_all","H5S_select_construct_projection","H5S_select_contig_block","H5S_select_copy","H5S_select_deserialize","H5S_select_elements","H5S_select_fill","H5S_select_hyperslab","H5S_select_hyperslab.localalias","H5S_select_intersect_block","H5S_select_is_contiguous","H5S_select_is_regular","H5S_select_is_single","H5S_select_iter_coords","H5S_select_iter_get_seq_list","H5S_select_iter_init","H5S_select_iter_nelmts","H5S_select_iter_next","H5S_select_iter_release","H5S_select_iterate","H5S_select_none","H5S_select_offset","H5S_select_project_intersection","H5S_select_project_scalar","H5S_select_project_simple","H5S_select_release","H5S_select_serial_size","H5S_select_serialize","H5S_select_shape_same","H5S_select_subtract","H5S_select_valid","H5S_set_extent","H5S_set_extent_real","H5S_set_extent_simple","H5S_set_version","H5S_term_package","H5S_top_term_package","H5S_write","H5Sclose","H5Scombine_hyperslab","H5Scombine_select","H5Scopy","H5Screate","H5Screate_simple","H5Sdecode","H5Sencode1","H5Sencode2","H5Sextent_copy","H5Sextent_equal","H5Sget_regular_hyperslab","H5Sget_select_bounds","H5Sget_select_elem_npoints","H5Sget_select_elem_pointlist","H5Sget_select_hyper_blocklist","H5Sget_select_hyper_nblocks","H5Sget_select_npoints","H5Sget_select_type","H5Sget_simple_extent_dims","H5Sget_simple_extent_ndims","H5Sget_simple_extent_npoints","H5Sget_simple_extent_type","H5Sis_regular_hyperslab","H5Sis_simple","H5Smodify_select","H5Soffset_simple","H5Ssel_iter_close","H5Ssel_iter_create","H5Ssel_iter_get_seq_list","H5Ssel_iter_reset","H5Sselect_adjust","H5Sselect_all","H5Sselect_copy","H5Sselect_elements","H5Sselect_hyperslab","H5Sselect_intersect_block","H5Sselect_none","H5Sselect_project_intersection","H5Sselect_shape_same","H5Sselect_valid","H5Sset_extent_none","H5Sset_extent_simple","H5T__alloc","H5T__array_create","H5T__bit_cmp.constprop.0","H5T__bit_copy","H5T__bit_dec","H5T__bit_find","H5T__bit_get_d","H5T__bit_inc","H5T__bit_neg","H5T__bit_set","H5T__bit_set_d","H5T__bit_shift","H5T__close_cb","H5T__commit","H5T__commit_anon","H5T__commit_api_common","H5T__commit_named","H5T__complete_copy","H5T__conv_array","H5T__conv_b_b","H5T__conv_double_float","H5T__conv_double_int","H5T__conv_double_ldouble","H5T__conv_double_ldouble.cold","H5T__conv_double_llong","H5T__conv_double_long","H5T__conv_double_schar","H5T__conv_double_short","H5T__conv_double_uchar","H5T__conv_double_uint","H5T__conv_double_ullong","H5T__conv_double_ulong","H5T__conv_double_ushort","H5T__conv_enum","H5T__conv_enum_free.part.0","H5T__conv_enum_init","H5T__conv_enum_numeric","H5T__conv_f_f","H5T__conv_f_i","H5T__conv_float_double","H5T__conv_float_double.cold","H5T__conv_float_int","H5T__conv_float_ldouble","H5T__conv_float_ldouble.cold","H5T__conv_float_llong","H5T__conv_float_long","H5T__conv_float_schar","H5T__conv_float_short","H5T__conv_float_uchar","H5T__conv_float_uint","H5T__conv_float_ullong","H5T__conv_float_ulong","H5T__conv_float_ushort","H5T__conv_i_f","H5T__conv_i_i","H5T__conv_int_double","H5T__conv_int_float","H5T__conv_int_ldouble","H5T__conv_int_llong","H5T__conv_int_llong.cold","H5T__conv_int_long","H5T__conv_int_long.cold","H5T__conv_int_schar","H5T__conv_int_short","H5T__conv_int_uchar","H5T__conv_int_uint","H5T__conv_int_ullong","H5T__conv_int_ulong","H5T__conv_int_ushort","H5T__conv_ldouble_double","H5T__conv_ldouble_float","H5T__conv_ldouble_int","H5T__conv_ldouble_llong","H5T__conv_ldouble_long","H5T__conv_ldouble_schar","H5T__conv_ldouble_short","H5T__conv_ldouble_uchar","H5T__conv_ldouble_uint","H5T__conv_ldouble_ullong","H5T__conv_ldouble_ulong","H5T__conv_ldouble_ushort","H5T__conv_llong_double","H5T__conv_llong_float","H5T__conv_llong_int","H5T__conv_llong_ldouble","H5T__conv_llong_long","H5T__conv_llong_schar","H5T__conv_llong_short","H5T__conv_llong_uchar","H5T__conv_llong_uint","H5T__conv_llong_ullong","H5T__conv_llong_ulong","H5T__conv_llong_ushort","H5T__conv_long_double","H5T__conv_long_float","H5T__conv_long_int","H5T__conv_long_ldouble","H5T__conv_long_llong","H5T__conv_long_schar","H5T__conv_long_short","H5T__conv_long_uchar","H5T__conv_long_uint","H5T__conv_long_ullong","H5T__conv_long_ulong","H5T__conv_long_ushort","H5T__conv_noop","H5T__conv_order","H5T__conv_order_opt","H5T__conv_ref","H5T__conv_s_s","H5T__conv_schar_double","H5T__conv_schar_float","H5T__conv_schar_int","H5T__conv_schar_int.cold","H5T__conv_schar_ldouble","H5T__conv_schar_llong","H5T__conv_schar_llong.cold","H5T__conv_schar_long","H5T__conv_schar_long.cold","H5T__conv_schar_short","H5T__conv_schar_short.cold","H5T__conv_schar_uchar","H5T__conv_schar_uint","H5T__conv_schar_ullong","H5T__conv_schar_ulong","H5T__conv_schar_ushort","H5T__conv_short_double","H5T__conv_short_float","H5T__conv_short_int","H5T__conv_short_int.cold","H5T__conv_short_ldouble","H5T__conv_short_llong","H5T__conv_short_llong.cold","H5T__conv_short_long","H5T__conv_short_long.cold","H5T__conv_short_schar","H5T__conv_short_uchar","H5T__conv_short_uint","H5T__conv_short_ullong","H5T__conv_short_ulong","H5T__conv_short_ushort","H5T__conv_struct","H5T__conv_struct_free","H5T__conv_struct_init","H5T__conv_struct_opt","H5T__conv_struct_subset","H5T__conv_uchar_double","H5T__conv_uchar_float","H5T__conv_uchar_int","H5T__conv_uchar_int.cold","H5T__conv_uchar_ldouble","H5T__conv_uchar_llong","H5T__conv_uchar_llong.cold","H5T__conv_uchar_long","H5T__conv_uchar_long.cold","H5T__conv_uchar_schar","H5T__conv_uchar_short","H5T__conv_uchar_short.cold","H5T__conv_uchar_uint","H5T__conv_uchar_uint.cold","H5T__conv_uchar_ullong","H5T__conv_uchar_ullong.cold","H5T__conv_uchar_ulong","H5T__conv_uchar_ulong.cold","H5T__conv_uchar_ushort","H5T__conv_uchar_ushort.cold","H5T__conv_uint_double","H5T__conv_uint_float","H5T__conv_uint_int","H5T__conv_uint_ldouble","H5T__conv_uint_llong","H5T__conv_uint_llong.cold","H5T__conv_uint_long","H5T__conv_uint_long.cold","H5T__conv_uint_schar","H5T__conv_uint_short","H5T__conv_uint_uchar","H5T__conv_uint_ullong","H5T__conv_uint_ullong.cold","H5T__conv_uint_ulong","H5T__conv_uint_ulong.cold","H5T__conv_uint_ushort","H5T__conv_ullong_double","H5T__conv_ullong_float","H5T__conv_ullong_int","H5T__conv_ullong_ldouble","H5T__conv_ullong_llong","H5T__conv_ullong_long","H5T__conv_ullong_schar","H5T__conv_ullong_short","H5T__conv_ullong_uchar","H5T__conv_ullong_uint","H5T__conv_ullong_ulong","H5T__conv_ullong_ushort","H5T__conv_ulong_double","H5T__conv_ulong_float","H5T__conv_ulong_int","H5T__conv_ulong_ldouble","H5T__conv_ulong_llong","H5T__conv_ulong_long","H5T__conv_ulong_schar","H5T__conv_ulong_short","H5T__conv_ulong_uchar","H5T__conv_ulong_uint","H5T__conv_ulong_ullong","H5T__conv_ulong_ushort","H5T__conv_ushort_double","H5T__conv_ushort_float","H5T__conv_ushort_int","H5T__conv_ushort_int.cold","H5T__conv_ushort_ldouble","H5T__conv_ushort_llong","H5T__conv_ushort_llong.cold","H5T__conv_ushort_long","H5T__conv_ushort_long.cold","H5T__conv_ushort_schar","H5T__conv_ushort_short","H5T__conv_ushort_uchar","H5T__conv_ushort_uint","H5T__conv_ushort_uint.cold","H5T__conv_ushort_ullong","H5T__conv_ushort_ullong.cold","H5T__conv_ushort_ulong","H5T__conv_ushort_ulong.cold","H5T__conv_vlen","H5T__conv_vlen_nested_free","H5T__copy_all","H5T__copy_transient","H5T__create","H5T__detect_vlen_ref","H5T__enum_create","H5T__enum_insert","H5T__free","H5T__get_array_dims","H5T__get_array_ndims","H5T__get_create_plist","H5T__get_member_name","H5T__get_member_size","H5T__get_member_value","H5T__get_native_type","H5T__get_path_table_npaths","H5T__init_native_float_types","H5T__init_native_internal","H5T__initiate_copy","H5T__insert","H5T__open_api_common","H5T__open_name","H5T__pack","H5T__path_find_real","H5T__path_free","H5T__print_path_stats","H5T__ref_disk_getsize","H5T__ref_disk_isnull","H5T__ref_disk_read","H5T__ref_disk_setnull","H5T__ref_disk_write","H5T__ref_dsetreg_disk_getsize","H5T__ref_dsetreg_disk_isnull","H5T__ref_dsetreg_disk_read","H5T__ref_mem_getsize","H5T__ref_mem_isnull","H5T__ref_mem_read","H5T__ref_mem_setnull","H5T__ref_mem_write","H5T__ref_obj_disk_getsize","H5T__ref_obj_disk_isnull","H5T__ref_obj_disk_read","H5T__ref_reclaim","H5T__ref_set_loc","H5T__register","H5T__register_int","H5T__reverse_order","H5T__set_offset","H5T__set_order","H5T__set_precision","H5T__set_size","H5T__sort_name","H5T__sort_value","H5T__unlock_cb","H5T__update_packed","H5T__upgrade_version","H5T__upgrade_version_cb","H5T__visit","H5T__visit.localalias","H5T__vlen_create","H5T__vlen_disk_delete","H5T__vlen_disk_delete.part.0","H5T__vlen_disk_getlen","H5T__vlen_disk_isnull","H5T__vlen_disk_read","H5T__vlen_disk_setnull","H5T__vlen_disk_write","H5T__vlen_mem_seq_getlen","H5T__vlen_mem_seq_getptr","H5T__vlen_mem_seq_isnull","H5T__vlen_mem_seq_read","H5T__vlen_mem_seq_setnull","H5T__vlen_mem_seq_write","H5T__vlen_mem_str_getlen","H5T__vlen_mem_str_getptr","H5T__vlen_mem_str_isnull","H5T__vlen_mem_str_read","H5T__vlen_mem_str_setnull","H5T__vlen_mem_str_write","H5T__vlen_reclaim","H5T__vlen_set_loc","H5T_already_vol_managed","H5T_close","H5T_close_real","H5T_cmp","H5T_cmp.localalias","H5T_construct_datatype","H5T_convert","H5T_convert_committed_datatype","H5T_convert_with_ctx","H5T_copy","H5T_copy_reopen","H5T_debug","H5T_debug.cold","H5T_debug.localalias","H5T_decode","H5T_detect_class","H5T_detect_class.localalias","H5T_encode","H5T_get_actual_type","H5T_get_class","H5T_get_force_conv","H5T_get_member_offset","H5T_get_member_type","H5T_get_named_type","H5T_get_nmembers","H5T_get_offset","H5T_get_order","H5T_get_order.localalias","H5T_get_precision","H5T_get_ref_type","H5T_get_sign","H5T_get_size","H5T_get_super","H5T_init","H5T_invoke_vol_optional","H5T_is_immutable","H5T_is_named","H5T_is_numeric_with_unusual_unused_bits","H5T_is_relocatable","H5T_is_sensible","H5T_is_variable_str","H5T_is_vl_storage","H5T_link","H5T_lock","H5T_nameof","H5T_noop_conv","H5T_oloc","H5T_open","H5T_own_vol_obj","H5T_patch_file","H5T_patch_vlen_file","H5T_path_bkg","H5T_path_compound_subset","H5T_path_find","H5T_path_match_find_type_with_volobj","H5T_path_noop","H5T_reclaim","H5T_reclaim_cb","H5T_restore_refresh_state","H5T_save_refresh_state","H5T_set_loc","H5T_set_loc.localalias","H5T_set_version","H5T_term_package","H5T_top_term_package","H5T_unregister","H5T_update_shared","H5T_vlen_reclaim_elmt","H5Tarray_create1","H5Tarray_create2","H5Tclose","H5Tclose_async","H5Tcommit1","H5Tcommit2","H5Tcommit_anon","H5Tcommit_async","H5Tcommitted","H5Tcompiler_conv","H5Tconvert","H5Tcopy","H5Tcreate","H5Tdecode","H5Tdetect_class","H5Tencode","H5Tenum_create","H5Tenum_insert","H5Tenum_nameof","H5Tenum_valueof","H5Tequal","H5Tfind","H5Tflush","H5Tget_array_dims1","H5Tget_array_dims2","H5Tget_array_ndims","H5Tget_class","H5Tget_create_plist","H5Tget_cset","H5Tget_ebias","H5Tget_fields","H5Tget_inpad","H5Tget_member_class","H5Tget_member_index","H5Tget_member_name","H5Tget_member_offset","H5Tget_member_type","H5Tget_member_value","H5Tget_native_type","H5Tget_nmembers","H5Tget_norm","H5Tget_offset","H5Tget_order","H5Tget_pad","H5Tget_precision","H5Tget_sign","H5Tget_size","H5Tget_strpad","H5Tget_super","H5Tget_tag","H5Tinsert","H5Tis_variable_str","H5Tlock","H5Topen1","H5Topen2","H5Topen_async","H5Tpack","H5Treclaim","H5Trefresh","H5Tregister","H5Tset_cset","H5Tset_ebias","H5Tset_fields","H5Tset_inpad","H5Tset_norm","H5Tset_offset","H5Tset_order","H5Tset_pad","H5Tset_precision","H5Tset_sign","H5Tset_size","H5Tset_strpad","H5Tset_tag","H5Tunregister","H5Tvlen_create","H5UC_create","H5UC_decr","H5VL__connector_str_to_info","H5VL__file_open_find_connector_cb","H5VL__find_opt_operation","H5VL__free_cls","H5VL__get_connector_cb","H5VL__get_connector_id","H5VL__get_connector_id_by_name","H5VL__get_connector_id_by_value","H5VL__get_connector_name","H5VL__is_connector_registered_by_name","H5VL__is_connector_registered_by_value","H5VL__is_default_conn","H5VL__native_attr_close","H5VL__native_attr_create","H5VL__native_attr_get","H5VL__native_attr_open","H5VL__native_attr_optional","H5VL__native_attr_read","H5VL__native_attr_specific","H5VL__native_attr_write","H5VL__native_blob_get","H5VL__native_blob_put","H5VL__native_blob_specific","H5VL__native_dataset_close","H5VL__native_dataset_create","H5VL__native_dataset_get","H5VL__native_dataset_io_cleanup","H5VL__native_dataset_io_setup","H5VL__native_dataset_open","H5VL__native_dataset_optional","H5VL__native_dataset_read","H5VL__native_dataset_specific","H5VL__native_dataset_write","H5VL__native_datatype_close","H5VL__native_datatype_commit","H5VL__native_datatype_get","H5VL__native_datatype_open","H5VL__native_datatype_specific","H5VL__native_file_close","H5VL__native_file_create","H5VL__native_file_get","H5VL__native_file_open","H5VL__native_file_optional","H5VL__native_file_specific","H5VL__native_get_file_addr_len","H5VL__native_group_close","H5VL__native_group_create","H5VL__native_group_get","H5VL__native_group_open","H5VL__native_group_optional","H5VL__native_group_specific","H5VL__native_introspect_get_cap_flags","H5VL__native_introspect_get_conn_cls","H5VL__native_introspect_opt_query","H5VL__native_link_copy","H5VL__native_link_create","H5VL__native_link_get","H5VL__native_link_move","H5VL__native_link_specific","H5VL__native_object_copy","H5VL__native_object_get","H5VL__native_object_open","H5VL__native_object_optional","H5VL__native_object_specific","H5VL__native_str_to_token","H5VL__native_term","H5VL__native_token_cmp","H5VL__native_token_to_str","H5VL__num_opt_operation","H5VL__peek_connector_id_by_name","H5VL__peek_connector_id_by_value","H5VL__register_connector","H5VL__register_connector_by_class","H5VL__register_connector_by_name","H5VL__register_connector_by_value","H5VL__register_opt_operation","H5VL__reparse_def_vol_conn_variable_test","H5VL__set_def_conn","H5VL__term_opt_operation","H5VL__term_opt_operation_cb","H5VL__unregister_opt_operation","H5VL__wrap_obj","H5VL_attr_close","H5VL_attr_create","H5VL_attr_get","H5VL_attr_open","H5VL_attr_optional","H5VL_attr_read","H5VL_attr_specific","H5VL_attr_write","H5VL_blob_get","H5VL_blob_optional","H5VL_blob_put","H5VL_blob_specific","H5VL_check_plugin_load","H5VL_cmp_connector_cls","H5VL_cmp_connector_info","H5VL_conn_copy","H5VL_conn_dec_rc","H5VL_conn_free","H5VL_conn_inc_rc","H5VL_copy_connector_info","H5VL_create_object","H5VL_create_object_using_vol_id","H5VL_dataset_close","H5VL_dataset_create","H5VL_dataset_get","H5VL_dataset_open","H5VL_dataset_optional","H5VL_dataset_read","H5VL_dataset_specific","H5VL_dataset_write","H5VL_datatype_close","H5VL_datatype_commit","H5VL_datatype_get","H5VL_datatype_open","H5VL_datatype_optional","H5VL_datatype_optional_op","H5VL_datatype_specific","H5VL_dec_vol_wrapper","H5VL_file_close","H5VL_file_create","H5VL_file_get","H5VL_file_is_same","H5VL_file_open","H5VL_file_optional","H5VL_file_specific","H5VL_finish_lib_state","H5VL_free_connector_info","H5VL_free_lib_state","H5VL_free_object","H5VL_free_wrap_ctx","H5VL_get_cap_flags","H5VL_get_wrap_ctx","H5VL_group_close","H5VL_group_create","H5VL_group_get","H5VL_group_open","H5VL_group_optional","H5VL_group_specific","H5VL_inc_vol_wrapper","H5VL_init_phase1","H5VL_init_phase2","H5VL_introspect_get_cap_flags","H5VL_introspect_get_conn_cls","H5VL_introspect_opt_query","H5VL_link_copy","H5VL_link_create","H5VL_link_get","H5VL_link_move","H5VL_link_optional","H5VL_link_specific","H5VL_native_addr_to_token","H5VL_native_get_file_addr_len","H5VL_native_get_file_struct","H5VL_native_register","H5VL_native_token_to_addr","H5VL_new_connector","H5VL_object","H5VL_object_copy","H5VL_object_data","H5VL_object_get","H5VL_object_inc_rc","H5VL_object_is_native","H5VL_object_open","H5VL_object_optional","H5VL_object_specific","H5VL_object_unwrap","H5VL_object_verify","H5VL_optional","H5VL_pass_through_attr_close","H5VL_pass_through_attr_create","H5VL_pass_through_attr_get","H5VL_pass_through_attr_open","H5VL_pass_through_attr_optional","H5VL_pass_through_attr_read","H5VL_pass_through_attr_specific","H5VL_pass_through_attr_write","H5VL_pass_through_blob_get","H5VL_pass_through_blob_optional","H5VL_pass_through_blob_put","H5VL_pass_through_blob_specific","H5VL_pass_through_dataset_close","H5VL_pass_through_dataset_create","H5VL_pass_through_dataset_get","H5VL_pass_through_dataset_open","H5VL_pass_through_dataset_optional","H5VL_pass_through_dataset_read","H5VL_pass_through_dataset_specific","H5VL_pass_through_dataset_write","H5VL_pass_through_datatype_close","H5VL_pass_through_datatype_commit","H5VL_pass_through_datatype_get","H5VL_pass_through_datatype_open","H5VL_pass_through_datatype_optional","H5VL_pass_through_datatype_specific","H5VL_pass_through_file_close","H5VL_pass_through_file_create","H5VL_pass_through_file_get","H5VL_pass_through_file_open","H5VL_pass_through_file_optional","H5VL_pass_through_file_specific","H5VL_pass_through_free_wrap_ctx","H5VL_pass_through_get_object","H5VL_pass_through_get_wrap_ctx","H5VL_pass_through_group_close","H5VL_pass_through_group_create","H5VL_pass_through_group_get","H5VL_pass_through_group_open","H5VL_pass_through_group_optional","H5VL_pass_through_group_specific","H5VL_pass_through_info_cmp","H5VL_pass_through_info_copy","H5VL_pass_through_info_free","H5VL_pass_through_info_to_str","H5VL_pass_through_init","H5VL_pass_through_introspect_get_cap_flags","H5VL_pass_through_introspect_get_conn_cls","H5VL_pass_through_introspect_opt_query","H5VL_pass_through_link_copy","H5VL_pass_through_link_create","H5VL_pass_through_link_get","H5VL_pass_through_link_move","H5VL_pass_through_link_optional","H5VL_pass_through_link_specific","H5VL_pass_through_object_copy","H5VL_pass_through_object_get","H5VL_pass_through_object_open","H5VL_pass_through_object_optional","H5VL_pass_through_object_specific","H5VL_pass_through_optional","H5VL_pass_through_register","H5VL_pass_through_request_cancel","H5VL_pass_through_request_free","H5VL_pass_through_request_notify","H5VL_pass_through_request_optional","H5VL_pass_through_request_specific","H5VL_pass_through_request_wait","H5VL_pass_through_str_to_info","H5VL_pass_through_term","H5VL_pass_through_token_cmp","H5VL_pass_through_token_from_str","H5VL_pass_through_token_to_str","H5VL_pass_through_unwrap_object","H5VL_pass_through_wrap_object","H5VL_register","H5VL_register_using_existing_id","H5VL_register_using_vol_id","H5VL_request_cancel","H5VL_request_free","H5VL_request_notify","H5VL_request_optional","H5VL_request_specific","H5VL_request_wait","H5VL_reset_vol_wrapper","H5VL_restore_lib_state","H5VL_retrieve_lib_state","H5VL_set_vol_wrapper","H5VL_setup_acc_args","H5VL_setup_args","H5VL_setup_idx_args","H5VL_setup_loc_args","H5VL_setup_name_args","H5VL_setup_self_args","H5VL_setup_token_args","H5VL_start_lib_state","H5VL_term_package","H5VL_token_cmp","H5VL_token_from_str","H5VL_token_to_str","H5VL_unwrap_object","H5VL_vol_object","H5VL_vol_object_verify","H5VL_wrap_object","H5VL_wrap_register","H5VLattr_close","H5VLattr_create","H5VLattr_get","H5VLattr_open","H5VLattr_optional","H5VLattr_optional_op","H5VLattr_read","H5VLattr_specific","H5VLattr_write","H5VLblob_get","H5VLblob_optional","H5VLblob_put","H5VLblob_specific","H5VLclose","H5VLcmp_connector_cls","H5VLcmp_connector_info","H5VLconnector_info_to_str","H5VLconnector_str_to_info","H5VLcopy_connector_info","H5VLdataset_close","H5VLdataset_create","H5VLdataset_get","H5VLdataset_open","H5VLdataset_optional","H5VLdataset_optional_op","H5VLdataset_read","H5VLdataset_specific","H5VLdataset_write","H5VLdatatype_close","H5VLdatatype_commit","H5VLdatatype_get","H5VLdatatype_open","H5VLdatatype_optional","H5VLdatatype_optional_op","H5VLdatatype_specific","H5VLfile_close","H5VLfile_create","H5VLfile_get","H5VLfile_open","H5VLfile_optional","H5VLfile_optional_op","H5VLfile_specific","H5VLfind_opt_operation","H5VLfinish_lib_state","H5VLfree_connector_info","H5VLfree_lib_state","H5VLfree_wrap_ctx","H5VLget_cap_flags","H5VLget_connector_id","H5VLget_connector_id_by_name","H5VLget_connector_id_by_value","H5VLget_connector_name","H5VLget_file_type","H5VLget_object","H5VLget_value","H5VLget_wrap_ctx","H5VLgroup_close","H5VLgroup_create","H5VLgroup_get","H5VLgroup_open","H5VLgroup_optional","H5VLgroup_optional_op","H5VLgroup_specific","H5VLinitialize","H5VLintrospect_get_cap_flags","H5VLintrospect_get_conn_cls","H5VLintrospect_opt_query","H5VLis_connector_registered_by_name","H5VLis_connector_registered_by_value","H5VLlink_copy","H5VLlink_create","H5VLlink_get","H5VLlink_move","H5VLlink_optional","H5VLlink_optional_op","H5VLlink_specific","H5VLnative_addr_to_token","H5VLnative_token_to_addr","H5VLobject","H5VLobject_copy","H5VLobject_get","H5VLobject_is_native","H5VLobject_open","H5VLobject_optional","H5VLobject_optional_op","H5VLobject_specific","H5VLoptional","H5VLpeek_connector_id_by_name","H5VLpeek_connector_id_by_value","H5VLquery_optional","H5VLregister_connector","H5VLregister_connector_by_name","H5VLregister_connector_by_value","H5VLregister_opt_operation","H5VLrequest_cancel","H5VLrequest_free","H5VLrequest_notify","H5VLrequest_optional","H5VLrequest_optional_op","H5VLrequest_specific","H5VLrequest_wait","H5VLrestore_lib_state","H5VLretrieve_lib_state","H5VLstart_lib_state","H5VLterminate","H5VLtoken_cmp","H5VLtoken_from_str","H5VLtoken_to_str","H5VLunregister_connector","H5VLunregister_opt_operation","H5VLunwrap_object","H5VLwrap_object","H5VLwrap_register","H5VM_array_calc","H5VM_array_calc_pre","H5VM_array_down","H5VM_array_fill","H5VM_array_offset","H5VM_array_offset_pre","H5VM_chunk_index","H5VM_chunk_index_scaled","H5VM_chunk_scaled","H5VM_hyper_copy","H5VM_hyper_eq","H5VM_hyper_fill","H5VM_hyper_stride","H5VM_memcpyvv","H5VM_opvv","H5VM_stride_copy","H5VM_stride_copy.part.0","H5VM_stride_copy_s","H5VM_stride_fill","H5WB_actual","H5WB_actual_clear","H5WB_unwrap","H5WB_wrap","H5Z__calc_parms_array","H5Z__calc_parms_compound","H5Z__can_apply_nbit","H5Z__can_apply_scaleoffset","H5Z__check_unregister_dset_cb","H5Z__check_unregister_group_cb","H5Z__do_op","H5Z__filter_deflate","H5Z__filter_fletcher32","H5Z__filter_nbit","H5Z__filter_scaleoffset","H5Z__filter_shuffle","H5Z__flush_file_cb","H5Z__get_token","H5Z__nbit_compress_one_array","H5Z__nbit_compress_one_atomic","H5Z__nbit_compress_one_compound","H5Z__nbit_decompress_one_array","H5Z__nbit_decompress_one_atomic","H5Z__nbit_decompress_one_compound","H5Z__new_node.part.0","H5Z__parse_expression","H5Z__parse_factor","H5Z__parse_term","H5Z__prelude_callback","H5Z__prepare_prelude_callback_dcpl","H5Z__scaleoffset_get_type","H5Z__scaleoffset_postdecompress_i","H5Z__scaleoffset_precompress_fd","H5Z__set_local_nbit","H5Z__set_local_scaleoffset","H5Z__set_local_shuffle","H5Z__set_parms_array","H5Z__set_parms_atomic","H5Z__set_parms_compound","H5Z__unregister","H5Z__xform_copy_tree.isra.0","H5Z__xform_destroy_parse_tree.part.0","H5Z__xform_eval_full","H5Z__xform_reduce_tree","H5Z_all_filters_avail","H5Z_append","H5Z_can_apply","H5Z_can_apply_direct","H5Z_delete","H5Z_filter_avail","H5Z_filter_in_pline","H5Z_filter_info","H5Z_find","H5Z_get_filter_info","H5Z_ignore_filters","H5Z_init","H5Z_modify","H5Z_pipeline","H5Z_register","H5Z_set_local","H5Z_set_local_direct","H5Z_term_package","H5Z_xform_copy","H5Z_xform_create","H5Z_xform_destroy","H5Z_xform_eval","H5Z_xform_extract_xform_str","H5Z_xform_noop","H5Zfilter_avail","H5Zget_filter_info","H5Zregister","H5Zunregister","H5__debug_mask","H5__mpi_delete_cb","H5_bandwidth","H5_basename","H5_buffer_dump","H5_build_extpath","H5_checksum_crc","H5_checksum_fletcher32","H5_checksum_lookup3","H5_checksum_metadata","H5_combine_path","H5_default_vfd_init","H5_dirname","H5_get_option","H5_get_time","H5_hash_string","H5_init_library","H5_make_time","H5_mpi_comm_cmp","H5_mpi_comm_dup","H5_mpi_comm_free","H5_mpi_get_bigio_count","H5_mpi_info_cmp","H5_mpi_info_dup","H5_mpi_info_free","H5_mpi_set_bigio_count","H5_mpio_create_large_type","H5_mpio_gatherv_alloc","H5_mpio_gatherv_alloc_simple","H5_mpio_get_file_sync_required","H5_nanosleep","H5_now","H5_now_usec","H5_strcasestr","H5_term_library","H5_term_library.part.0","H5_timer_get_time_string","H5_timer_get_times","H5_timer_get_total_times","H5_timer_init","H5_timer_start","H5_timer_stop","H5_trace","H5_trace_args","H5allocate_memory","H5atclose","H5check_version","H5close","H5dont_atexit","H5free_memory","H5garbage_collect","H5get_free_list_sizes","H5get_libversion","H5is_library_terminating","H5is_library_threadsafe","H5open","H5resize_memory","H5set_free_list_limits","Nflock","Pflock","__do_global_dtors_aux","atexit","compute_next","deregister_tm_clones","frame_dummy","open_members","register_tm_clones"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so","include_offsets":false},{"type":1,"name":"bio","functions":["bio_add_folio","bio_add_folio_nofail","bio_add_hw_folio","bio_add_hw_page","bio_add_page","bio_add_pc_page","bio_add_zone_append_page","bio_alloc_bioset","bio_alloc_cache_prune.constprop.0","bio_alloc_clone","bio_alloc_irq_cache_splice","bio_alloc_map_data","bio_alloc_rescue","bio_associate_blkg","bio_associate_blkg_from_css","bio_associate_blkg_from_page.isra.0","bio_attempt_back_merge","bio_attempt_discard_merge","bio_attempt_front_merge","bio_await_chain","bio_blkcg_css","bio_chain","bio_chain_and_submit","bio_chain_endio","bio_check_pages_dirty","bio_clone_blkg_association","bio_copy_data","bio_copy_data_iter","bio_copy_from_iter","bio_copy_kern_endio","bio_copy_kern_endio_read","bio_copy_user_iov","bio_cpu_dead","bio_dirty_fn","bio_end_io_acct_remapped","bio_endio","bio_free","bio_free_pages","bio_get_page","bio_init","bio_init_clone","bio_integrity_add_page","bio_integrity_advance","bio_integrity_alloc","bio_integrity_clone","bio_integrity_copy_user","bio_integrity_free","bio_integrity_init_user","bio_integrity_map_user","bio_integrity_prep","bio_integrity_prep.cold","bio_integrity_trim","bio_integrity_unmap_user","bio_integrity_unpin_bvec","bio_integrity_verify_fn","bio_iov_bvec_set","bio_iov_iter_get_pages","bio_kmalloc","bio_map_kern_endio","bio_map_user_iov","bio_next_page","bio_poll","bio_post_read_processing","bio_put","bio_reset","bio_set_pages_dirty","bio_split","bio_split_discard","bio_split_rw","bio_split_rw_at","bio_split_to_limits","bio_split_write_zeroes","bio_split_zone_append","bio_start_io_acct","bio_submit_split.part.0","bio_to_wbt_flags","bio_trim","bio_uninit","bio_wait_end_io","bioset_exit","bioset_init","bioset_integrity_create","bioset_integrity_free","biovec_init_pool"]},{"type":3,"name":"python","functions":["function__entry"],"binary_path":"/usr/lib64/libpython3.9.so","provider":"python"},{"type":1,"name":"os_page_cache","functions":["add_to_page_cache_lru","clear_page_dirty_for_io","delete_from_page_cache_batch","end_page_writeback","fault_in_safe_writeable","fault_in_subpage_writeable","fault_in_writeable","filemap_add_folio","filemap_alloc_folio","filemap_check_errors","filemap_fdatawait_keep_errors","filemap_fdatawait_range","filemap_fdatawait_range_keep_errors","filemap_fdatawrite","filemap_fdatawrite_range","filemap_fdatawrite_wbc","filemap_flush","filemap_get_folios","filemap_get_folios_contig","filemap_get_folios_tag","filemap_range_has_page","filemap_range_has_writeback","filemap_release_folio","filemap_remove_folio","folio_account_cleaned","folio_add_wait_queue","folio_clear_dirty_for_io","folio_end_private_2","folio_end_writeback","folio_invalidate","folio_mapping","folio_wait_bit","folio_wait_bit_killable","folio_wait_private_2","folio_wait_private_2_killable","folio_wait_stable","folio_wait_writeback","folio_wait_writeback_killable","grab_cache_page_write_begin","invalidate_inode_pages2","invalidate_inode_pages2_range","invalidate_mapping_pages","kiocb_invalidate_pages","kiocb_invalidate_post_direct_write","kiocb_write_and_wait","mapping_read_folio_gfp","mapping_seek_hole_data"]},{"type":1,"name":"shm","functions":["shmem_charge","shmem_file_setup","shmem_file_setup_with_mnt","shmem_get_folio","shmem_get_unmapped_area","shmem_init_fs_context","shmem_kernel_file_setup","shmem_lock","shmem_partial_swap_usage","shmem_read_folio_gfp","shmem_read_mapping_page_gfp","shmem_swap_usage","shmem_truncate_range","shmem_uncharge","shmem_unlock_mapping","shmem_unuse","shmem_zero_setup"]},{"type":1,"name":"fscache","functions":["__fscache_acquire_cookie","__fscache_acquire_volume","__fscache_begin_read_operation","__fscache_begin_write_operation","__fscache_clear_page_bits","__fscache_invalidate","__fscache_relinquish_cookie","__fscache_relinquish_volume","__fscache_resize_cookie","__fscache_unuse_cookie","__fscache_use_cookie","__fscache_write_to_cache"]},{"type":1,"name":"xfs","functions":["xfs_agfblock_init","xfs_agflblock_init","xfs_align_sparse_ino.isra.0","xfs_alloc_ag_max_usable","xfs_alloc_ag_vextent_exact","xfs_alloc_ag_vextent_locality","xfs_alloc_ag_vextent_near","xfs_alloc_ag_vextent_size","xfs_alloc_ag_vextent_small","xfs_alloc_btrec_to_irec","xfs_alloc_buftarg","xfs_alloc_cancel_autoreap","xfs_alloc_check_irec","xfs_alloc_cntbt_iter","xfs_alloc_commit_autoreap","xfs_alloc_compute_aligned","xfs_alloc_compute_diff","xfs_alloc_compute_maxlevels","xfs_alloc_cur_check","xfs_alloc_cur_finish","xfs_alloc_file_space","xfs_alloc_fix_freelist","xfs_alloc_fix_len","xfs_alloc_fixup_trees","xfs_alloc_get_freelist","xfs_alloc_get_rec","xfs_alloc_has_records","xfs_alloc_log_agf","xfs_alloc_longest_free_extent","xfs_alloc_lookup_eq","xfs_alloc_lookup_ge","xfs_alloc_lookup_le","xfs_alloc_min_freelist","xfs_alloc_put_freelist","xfs_alloc_query_all","xfs_alloc_query_range","xfs_alloc_query_range_helper","xfs_alloc_read_agf","xfs_alloc_read_agfl","xfs_alloc_schedule_autoreap","xfs_alloc_set_aside","xfs_alloc_space_available","xfs_alloc_update","xfs_alloc_update_counters","xfs_alloc_vextent_check_args","xfs_alloc_vextent_exact_bno","xfs_alloc_vextent_finish","xfs_alloc_vextent_first_ag","xfs_alloc_vextent_iterate_ags.constprop.0","xfs_alloc_vextent_near_bno","xfs_alloc_vextent_prepare_ag","xfs_alloc_vextent_start_ag","xfs_alloc_vextent_this_ag","xfs_alloc_walk_iter","xfs_allocfree_block_count","xfs_attr_leaf_entsize","xfs_attr_leaf_try_add","xfs_attr_restore_rmt_blk","xfs_btroot_init","xfs_buf_alert_ratelimited","xfs_buf_alloc_pages","xfs_buf_cmp","xfs_buf_corruption_error","xfs_buf_delwri_cancel","xfs_buf_delwri_pushbuf","xfs_buf_delwri_queue","xfs_buf_delwri_queue_here","xfs_buf_delwri_submit","xfs_buf_delwri_submit_buffers","xfs_buf_delwri_submit_nowait","xfs_buf_dquot_io_fail","xfs_buf_dquot_iodone","xfs_buf_find_insert.constprop.0","xfs_buf_find_lock","xfs_buf_free","xfs_buf_free_callback","xfs_buf_free_pages","xfs_buf_get_map","xfs_buf_get_uncached","xfs_buf_hash_destroy","xfs_buf_hash_init","xfs_buf_hold","xfs_buf_inode_io_fail","xfs_buf_inode_iodone","xfs_buf_ioapply_map","xfs_buf_ioend","xfs_buf_ioend_fail","xfs_buf_ioend_handle_error","xfs_buf_ioend_work","xfs_buf_ioerror_alert","xfs_buf_iowait","xfs_buf_item_committed","xfs_buf_item_committing","xfs_buf_item_dirty_format","xfs_buf_item_done","xfs_buf_item_format","xfs_buf_item_format_segment","xfs_buf_item_free","xfs_buf_item_free_format","xfs_buf_item_get_format","xfs_buf_item_init","xfs_buf_item_log","xfs_buf_item_pin","xfs_buf_item_push","xfs_buf_item_put","xfs_buf_item_release","xfs_buf_item_relse","xfs_buf_item_size","xfs_buf_item_size_segment.isra.0","xfs_buf_item_unpin","xfs_buf_lock","xfs_buf_log_check_iovec","xfs_buf_log_overhead","xfs_buf_offset","xfs_buf_read_map","xfs_buf_read_uncached","xfs_buf_readahead_map","xfs_buf_rele","xfs_buf_reverify","xfs_buf_set_ref","xfs_buf_stale","xfs_buf_trylock","xfs_buf_unlock","xfs_buf_verifier_error","xfs_buf_wait_unpin","xfs_buf_zero","xfs_buffered_write_delalloc_punch","xfs_buffered_write_iomap_begin","xfs_buffered_write_iomap_end","xfs_buftarg_drain_rele","xfs_buftarg_isolate","xfs_buftarg_shrink_count","xfs_buftarg_shrink_scan","xfs_bunmapi","xfs_bunmapi_range","xfs_bwrite","xfs_cntbt_diff_two_keys","xfs_cntbt_init_high_key_from_rec","xfs_cntbt_key_diff","xfs_cntbt_keys_inorder","xfs_cntbt_recs_inorder","xfs_cntroot_init","xfs_da3_blk_link","xfs_da3_blk_unlink.isra.0","xfs_da3_blkinfo_verify","xfs_da3_fixhashpath","xfs_da3_join","xfs_da3_node_add","xfs_da3_node_create","xfs_da3_node_hdr_from_disk","xfs_da3_node_hdr_to_disk","xfs_da3_node_lasthash.isra.0","xfs_da3_node_lookup_int","xfs_da3_node_order.isra.0","xfs_da3_node_read","xfs_da3_node_read_mapped","xfs_da3_node_read_verify","xfs_da3_node_rebalance.constprop.0","xfs_da3_node_remove","xfs_da3_node_set_type","xfs_da3_node_split","xfs_da3_node_toosmall","xfs_da3_node_unbalance","xfs_da3_node_verify","xfs_da3_node_verify_struct","xfs_da3_node_write_verify","xfs_da3_path_shift","xfs_da3_root_join","xfs_da3_root_split","xfs_da3_split","xfs_da3_swap_lastblock","xfs_da_buf_copy","xfs_da_compname","xfs_da_get_buf","xfs_da_grow_inode","xfs_da_grow_inode_int","xfs_da_hashname","xfs_da_mount","xfs_da_read_buf","xfs_da_reada_buf","xfs_da_shrink_inode","xfs_da_state_alloc","xfs_da_state_free","xfs_da_state_kill_altpath","xfs_da_state_reset","xfs_da_unmount","xfs_dabuf_map.constprop.0","xfs_dax_write_iomap_end","xfs_dax_writepages","xfs_dio_write_end_io","xfs_direct_write_iomap_begin","xfs_discard_endio","xfs_discard_endio_work","xfs_discard_extents","xfs_discard_folio","xfs_do_force_shutdown","xfs_dquot_buf_read_verify","xfs_dquot_buf_readahead_verify","xfs_dquot_buf_verify","xfs_dquot_buf_verify_crc.isra.0","xfs_dquot_buf_verify_struct","xfs_dquot_buf_write_verify","xfs_end_ioend","xfs_extent_busy_ag_cmp","xfs_extent_busy_clear","xfs_extent_busy_clear_one","xfs_extent_busy_flush","xfs_extent_busy_insert","xfs_extent_busy_insert_discard","xfs_extent_busy_insert_list","xfs_extent_busy_list_empty","xfs_extent_busy_reuse","xfs_extent_busy_search","xfs_extent_busy_trim","xfs_extent_busy_update_extent","xfs_extent_busy_wait_all","xfs_extent_free_abort_intent","xfs_extent_free_cancel_item","xfs_extent_free_create_done","xfs_extent_free_create_intent","xfs_extent_free_diff_items","xfs_extent_free_finish_item","xfs_extent_free_get_group","xfs_extent_free_log_item.constprop.0","xfs_extent_free_recover_work","xfs_extent_free_relog_intent","xfs_extfree_intent_destroy_cache","xfs_file_buffered_read","xfs_file_buffered_write","xfs_file_dax_read","xfs_file_dax_write","xfs_file_dio_read","xfs_file_dio_write_aligned","xfs_file_dio_write_unaligned","xfs_file_fadvise","xfs_file_fallocate","xfs_file_fsync","xfs_file_llseek","xfs_file_mmap","xfs_file_open","xfs_file_read_iter","xfs_file_readdir","xfs_file_release","xfs_file_remap_range","xfs_file_write_checks","xfs_file_write_iter","xfs_filemap_fault","xfs_filemap_huge_fault","xfs_filemap_page_mkwrite","xfs_filemap_pfn_mkwrite","xfs_finobt_init_ptr_from_cur","xfs_free_ag_extent","xfs_freesp_init_recs.isra.0","xfs_fs_alloc_inode","xfs_fs_commit_blocks","xfs_fs_destroy_inode","xfs_fs_dirty_inode","xfs_fs_drop_inode","xfs_fs_encode_fh","xfs_fs_fh_to_dentry","xfs_fs_fh_to_parent","xfs_fs_fill_super","xfs_fs_free","xfs_fs_free_cached_objects","xfs_fs_freeze","xfs_fs_geometry","xfs_fs_get_dqblk","xfs_fs_get_nextdqblk","xfs_fs_get_parent","xfs_fs_get_quota_state","xfs_fs_get_tree","xfs_fs_get_uuid","xfs_fs_goingdown","xfs_fs_inode_init_once","xfs_fs_map_blocks","xfs_fs_mark_healthy","xfs_fs_mark_sick","xfs_fs_measure_sickness","xfs_fs_nfs_commit_metadata","xfs_fs_nr_cached_objects","xfs_fs_parse_param","xfs_fs_put_super","xfs_fs_reconfigure","xfs_fs_reserve_ag_blocks","xfs_fs_rm_xquota","xfs_fs_set_dqblk","xfs_fs_set_info","xfs_fs_show_options","xfs_fs_shutdown","xfs_fs_statfs","xfs_fs_sync_fs","xfs_fs_unfreeze","xfs_fs_unreserve_ag_blocks","xfs_fs_validate_params","xfs_fs_writable","xfs_ialloc_ag_alloc","xfs_ialloc_count_inodes_rec","xfs_ialloc_count_ondisk","xfs_ialloc_get_rec","xfs_ialloc_next_rec","xfs_iflush","xfs_iflush_abort","xfs_iflush_cluster","xfs_iflush_fork","xfs_iflush_shutdown_abort","xfs_ifork_init_attr","xfs_ifork_init_cow","xfs_ifork_verify_local_attr","xfs_ifork_verify_local_data","xfs_ifork_zap_attr","xfs_ifork_zapped","xfs_ilock_for_iomap","xfs_ilock_iocb_for_write","xfs_inode_alloc","xfs_inode_buf_read_verify","xfs_inode_buf_readahead_verify","xfs_inode_buf_verify","xfs_inode_buf_write_verify","xfs_inode_clear_cowblocks_tag","xfs_inode_clear_eofblocks_tag","xfs_inode_free","xfs_inode_free_callback","xfs_inode_free_cowblocks","xfs_inode_free_eofblocks.constprop.0","xfs_inode_from_disk","xfs_inode_from_disk_ts","xfs_inode_hasattr","xfs_inode_inherit_flags","xfs_inode_init_security","xfs_inode_item_attr_fork_size","xfs_inode_item_committed","xfs_inode_item_committing","xfs_inode_item_data_fork_size","xfs_inode_item_destroy","xfs_inode_item_format","xfs_inode_item_format_attr_fork","xfs_inode_item_format_convert","xfs_inode_item_format_data_fork","xfs_inode_item_init","xfs_inode_item_pin","xfs_inode_item_precommit","xfs_inode_item_push","xfs_inode_item_release","xfs_inode_item_size","xfs_inode_item_sort","xfs_inode_item_unpin","xfs_inode_mark_healthy","xfs_inode_mark_reclaimable","xfs_inode_mark_sick","xfs_inode_measure_sickness","xfs_inode_near_dquot_enforcement","xfs_inode_needs_inactive","xfs_inode_reload_unlinked","xfs_inode_reload_unlinked_bucket","xfs_inode_set_cowblocks_tag","xfs_inode_set_eofblocks_tag","xfs_inode_to_disk","xfs_inode_to_log_dinode","xfs_inode_validate_cowextsize","xfs_inode_validate_extsize","xfs_inode_verifier_error","xfs_iomap_eof_align_last_fsb","xfs_iomap_inode_sequence","xfs_iomap_prealloc_size.constprop.0.isra.0","xfs_iomap_swapfile_activate","xfs_iomap_valid","xfs_iomap_write_direct","xfs_iomap_write_unwritten","xfs_iread_bmbt_block","xfs_lookup_get_search_key","xfs_map_blocks","xfs_mru_cache_create","xfs_mru_cache_delete","xfs_mru_cache_destroy","xfs_mru_cache_done","xfs_mru_cache_init","xfs_mru_cache_insert","xfs_mru_cache_lookup","xfs_mru_cache_remove","xfs_mru_cache_uninit","xfs_nfs_get_inode.isra.0","xfs_prepare_ioend","xfs_read_agf","xfs_read_agi","xfs_read_iomap_begin","xfs_readdir","xfs_readlink","xfs_readlink_bmap_ilocked","xfs_readlink_by_handle","xfs_release","xfs_remove","xfs_rename","xfs_reserve_blocks","xfs_restore_resvblks","xfs_vm_bmap","xfs_vm_read_folio","xfs_vm_readahead","xfs_vm_writepages","xfs_xattr_iomap_begin"]},{"type":1,"name":"ext4","functions":["ext4_alloc_branch","ext4_alloc_da_blocks","ext4_alloc_file_blocks.isra.0","ext4_alloc_flex_bg_array","ext4_alloc_group_tables","ext4_alloc_inode","ext4_alloc_io_end_vec","ext4_append","ext4_block_bitmap","ext4_block_bitmap_csum_set","ext4_block_bitmap_csum_verify","ext4_block_bitmap_set","ext4_block_to_path","ext4_block_write_begin","ext4_block_zero_page_range","ext4_bmap","ext4_bread","ext4_bread_batch","ext4_da_convert_inline_data_to_extent","ext4_da_get_block_prep","ext4_da_map_blocks.constprop.0","ext4_da_release_space","ext4_da_reserve_space","ext4_da_update_reserve_space","ext4_da_write_begin","ext4_da_write_end","ext4_da_write_inline_data_begin","ext4_dio_alignment","ext4_dio_write_checks","ext4_dio_write_end_io","ext4_dio_write_iter","ext4_dirty_folio","ext4_dirty_inode","ext4_end_buffer_io_sync","ext4_end_io_rsv_work","ext4_exit_es","ext4_exit_mballoc","ext4_exit_pageio","ext4_exit_pending","ext4_exit_post_read_processing","ext4_exit_sysfs","ext4_exit_system_zone","ext4_ext_calc_credits_for_single_extent","ext4_ext_check_inode","ext4_ext_clear_bb","ext4_ext_convert_to_initialized","ext4_ext_correct_indexes","ext4_ext_find_goal","ext4_ext_get_access","ext4_ext_grow_indepth","ext4_ext_handle_unwritten_extents","ext4_ext_index_trans_blocks","ext4_ext_init","ext4_ext_insert_extent","ext4_ext_insert_index","ext4_ext_map_blocks","ext4_ext_migrate","ext4_ext_next_allocated_block","ext4_ext_precache","ext4_ext_precache.part.0","ext4_ext_release","ext4_ext_remove_space","ext4_ext_replay_set_iblocks","ext4_ext_replay_shrink_inode","ext4_ext_replay_update_ex","ext4_ext_rm_idx","ext4_ext_rm_leaf","ext4_ext_search_left","ext4_ext_search_right","ext4_ext_shift_extents","ext4_ext_shift_path_extents","ext4_ext_split","ext4_ext_swap_inode_data","ext4_ext_tree_init","ext4_ext_truncate","ext4_ext_try_to_merge","ext4_ext_try_to_merge_right","ext4_ext_try_to_merge_up","ext4_extent_block_csum_set","ext4_fallocate","ext4_fh_to_dentry","ext4_fh_to_parent","ext4_fiemap","ext4_file_getattr","ext4_file_mmap","ext4_file_open","ext4_file_read_iter","ext4_file_write_iter","ext4_fileattr_get","ext4_fileattr_set","ext4_find_dest_de","ext4_find_entry","ext4_find_extent","ext4_find_inline_data_nolock","ext4_find_inline_entry","ext4_find_shared","ext4_finish_convert_inline_dir","ext4_free_blocks","ext4_free_blocks_simple.isra.0","ext4_free_branches","ext4_free_clusters_after_init","ext4_free_data","ext4_free_ext_path","ext4_free_group_clusters","ext4_free_group_clusters_set","ext4_free_in_core_inode","ext4_free_inode","ext4_free_inodes_count","ext4_free_inodes_set","ext4_free_link","ext4_io_submit","ext4_io_submit_init","ext4_iomap_begin","ext4_iomap_begin_report","ext4_iomap_end","ext4_iomap_overwrite_begin","ext4_iomap_swap_activate","ext4_iomap_xattr_begin","ext4_journal_abort_handle.constprop.0","ext4_journal_bmap","ext4_journal_check_start","ext4_journal_commit_callback","ext4_journal_finish_inode_data_buffers","ext4_journal_submit_inode_data_buffers","ext4_journalled_dirty_folio","ext4_journalled_invalidate_folio","ext4_journalled_submit_inode_data_buffers","ext4_journalled_write_end","ext4_journalled_write_inline_data","ext4_journalled_writepage_callback","ext4_journalled_zero_new_buffers","ext4_mark_bitmap_end","ext4_mark_bitmap_end.part.0","ext4_mark_dquot_dirty","ext4_mark_group_bitmap_corrupted","ext4_mark_iloc_dirty","ext4_mark_inode_used","ext4_mark_recovery_complete.constprop.0","ext4_mballoc_query_range","ext4_meta_trans_blocks","ext4_mkdir","ext4_mknod","ext4_move_extents","ext4_read_bh","ext4_read_bh_lock","ext4_read_bh_nowait","ext4_read_block_bitmap","ext4_read_block_bitmap_nowait","ext4_read_folio","ext4_read_inline_data.part.0.isra.0","ext4_read_inline_dir","ext4_read_inline_link","ext4_read_inline_page","ext4_read_inode_bitmap","ext4_read_merkle_tree_page","ext4_readahead","ext4_readdir","ext4_readpage_inline","ext4_release_io_end","ext4_statfs","ext4_swap_extents","ext4_symlink","ext4_sync_file","ext4_sync_fs","ext4_tmpfile","ext4_trim_all_free","ext4_trim_fs","ext4_truncate","ext4_unfreeze","ext4_unlink","ext4_write_begin","ext4_write_dquot","ext4_write_end","ext4_write_info","ext4_write_inline_data","ext4_write_inline_data_end","ext4_write_inode","ext4_write_merkle_tree_block","ext4_writepage","ext4_writepage_cb","ext4_writepage_trans_blocks","ext4_writepages"]},{"type":1,"name":"iomap","functions":["iomap_add_to_ioend","iomap_adjust_read_range.isra.0","iomap_bmap","iomap_dio_complete","iomap_dio_complete_work","iomap_dio_deferred_complete","iomap_dio_inline_iter","iomap_dio_rw","iomap_dio_zero","iomap_dirty_folio","iomap_do_writepage","iomap_fiemap","iomap_file_buffered_write","iomap_file_buffered_write_punch_delalloc","iomap_file_unshare","iomap_finish_ioend","iomap_finish_ioends","iomap_get_folio","iomap_invalidate_folio","iomap_ioend_compare","iomap_ioend_try_merge","iomap_is_partially_uptodate","iomap_iter","iomap_page_mkwrite","iomap_read_end_io","iomap_read_folio","iomap_read_folio_sync","iomap_read_inline_data","iomap_readahead","iomap_readpage_iter","iomap_release_folio","iomap_seek_data","iomap_seek_hole","iomap_sort_ioends","iomap_submit_ioend","iomap_swapfile_activate","iomap_swapfile_add_extent","iomap_swapfile_fail","iomap_swapfile_iter","iomap_to_bh","iomap_to_fiemap","iomap_truncate_page","iomap_unshare_iter","iomap_write_begin","iomap_write_delalloc_release","iomap_write_end","iomap_write_iter","iomap_writepage_map","iomap_writepages","iomap_zero_iter","iomap_zero_range"]},{"type":2,"name":"mpi","functions":["MPIX_Comm_ack_failed","MPIX_Comm_ack_failed.cold","MPIX_Comm_agree","MPIX_Comm_agree.cold","MPIX_Comm_failure_ack","MPIX_Comm_failure_ack.cold","MPIX_Comm_failure_get_acked","MPIX_Comm_failure_get_acked.cold","MPIX_Comm_get_failed","MPIX_Comm_get_failed.cold","MPIX_Comm_iagree","MPIX_Comm_iagree.cold","MPIX_Comm_is_revoked","MPIX_Comm_revoke","MPIX_Comm_revoke.cold","MPIX_Comm_shrink","MPIX_Comm_shrink.cold","MPIX_Query_cuda_support","MPIX_Query_rocm_support","MPI_AINT_ADD_F90","MPI_AINT_DIFF_F90","MPI_Abort","MPI_Accumulate","MPI_Add_error_class","MPI_Add_error_code","MPI_Add_error_string","MPI_Address","MPI_Allgather","MPI_Allgather_init","MPI_Allgatherv","MPI_Allgatherv_init","MPI_Alloc_mem","MPI_Allreduce","MPI_Allreduce_init","MPI_Alltoall","MPI_Alltoall_init","MPI_Alltoallv","MPI_Alltoallv_init","MPI_Alltoallw","MPI_Alltoallw_init","MPI_Attr_delete","MPI_Attr_get","MPI_Attr_put","MPI_Barrier","MPI_Barrier_init","MPI_Bcast","MPI_Bcast_init","MPI_Bsend","MPI_Bsend_init","MPI_Buffer_attach","MPI_Buffer_detach","MPI_COMM_DUP_FN","MPI_COMM_NULL_COPY_FN","MPI_COMM_NULL_DELETE_FN","MPI_CONVERSION_FN_NULL","MPI_Cancel","MPI_Cart_coords","MPI_Cart_create","MPI_Cart_get","MPI_Cart_map","MPI_Cart_rank","MPI_Cart_shift","MPI_Cart_sub","MPI_Cartdim_get","MPI_Close_port","MPI_Comm_accept","MPI_Comm_c2f","MPI_Comm_call_errhandler","MPI_Comm_compare","MPI_Comm_connect","MPI_Comm_create","MPI_Comm_create_errhandler","MPI_Comm_create_from_group","MPI_Comm_create_group","MPI_Comm_create_keyval","MPI_Comm_delete_attr","MPI_Comm_disconnect","MPI_Comm_dup","MPI_Comm_dup_with_info","MPI_Comm_f2c","MPI_Comm_free","MPI_Comm_free_keyval","MPI_Comm_get_attr","MPI_Comm_get_errhandler","MPI_Comm_get_info","MPI_Comm_get_name","MPI_Comm_get_parent","MPI_Comm_group","MPI_Comm_idup","MPI_Comm_idup_with_info","MPI_Comm_join","MPI_Comm_rank","MPI_Comm_remote_group","MPI_Comm_remote_size","MPI_Comm_set_attr","MPI_Comm_set_errhandler","MPI_Comm_set_info","MPI_Comm_set_name","MPI_Comm_size","MPI_Comm_spawn","MPI_Comm_spawn_multiple","MPI_Comm_split","MPI_Comm_split_type","MPI_Comm_test_inter","MPI_Compare_and_swap","MPI_DUP_FN","MPI_Dims_create","MPI_Dist_graph_create","MPI_Dist_graph_create_adjacent","MPI_Dist_graph_neighbors","MPI_Dist_graph_neighbors_count","MPI_Errhandler_c2f","MPI_Errhandler_create","MPI_Errhandler_f2c","MPI_Errhandler_free","MPI_Errhandler_get","MPI_Errhandler_set","MPI_Error_class","MPI_Error_string","MPI_Exscan","MPI_Exscan_init","MPI_Fetch_and_op","MPI_File_c2f","MPI_File_call_errhandler","MPI_File_close","MPI_File_create_errhandler","MPI_File_delete","MPI_File_f2c","MPI_File_get_amode","MPI_File_get_atomicity","MPI_File_get_byte_offset","MPI_File_get_errhandler","MPI_File_get_group","MPI_File_get_info","MPI_File_get_position","MPI_File_get_position_shared","MPI_File_get_size","MPI_File_get_type_extent","MPI_File_get_view","MPI_File_iread","MPI_File_iread_all","MPI_File_iread_at","MPI_File_iread_at_all","MPI_File_iread_shared","MPI_File_iwrite","MPI_File_iwrite_all","MPI_File_iwrite_at","MPI_File_iwrite_at_all","MPI_File_iwrite_shared","MPI_File_open","MPI_File_preallocate","MPI_File_read","MPI_File_read_all","MPI_File_read_all_begin","MPI_File_read_all_end","MPI_File_read_at","MPI_File_read_at_all","MPI_File_read_at_all_begin","MPI_File_read_at_all_end","MPI_File_read_ordered","MPI_File_read_ordered_begin","MPI_File_read_ordered_end","MPI_File_read_shared","MPI_File_seek","MPI_File_seek_shared","MPI_File_set_atomicity","MPI_File_set_errhandler","MPI_File_set_info","MPI_File_set_size","MPI_File_set_view","MPI_File_sync","MPI_File_write","MPI_File_write_all","MPI_File_write_all_begin","MPI_File_write_all_end","MPI_File_write_at","MPI_File_write_at_all","MPI_File_write_at_all_begin","MPI_File_write_at_all_end","MPI_File_write_ordered","MPI_File_write_ordered_begin","MPI_File_write_ordered_end","MPI_File_write_shared","MPI_Finalize","MPI_Finalized","MPI_Free_mem","MPI_Gather","MPI_Gather_init","MPI_Gatherv","MPI_Gatherv_init","MPI_Get","MPI_Get_accumulate","MPI_Get_address","MPI_Get_count","MPI_Get_elements","MPI_Get_elements_x","MPI_Get_library_version","MPI_Get_processor_name","MPI_Get_version","MPI_Graph_create","MPI_Graph_get","MPI_Graph_map","MPI_Graph_neighbors","MPI_Graph_neighbors_count","MPI_Graphdims_get","MPI_Grequest_complete","MPI_Grequest_start","MPI_Group_c2f","MPI_Group_compare","MPI_Group_difference","MPI_Group_excl","MPI_Group_f2c","MPI_Group_free","MPI_Group_from_session_pset","MPI_Group_incl","MPI_Group_intersection","MPI_Group_range_excl","MPI_Group_range_incl","MPI_Group_rank","MPI_Group_size","MPI_Group_translate_ranks","MPI_Group_union","MPI_Iallgather","MPI_Iallgatherv","MPI_Iallreduce","MPI_Ialltoall","MPI_Ialltoallv","MPI_Ialltoallw","MPI_Ibarrier","MPI_Ibcast","MPI_Ibsend","MPI_Iexscan","MPI_Igather","MPI_Igatherv","MPI_Improbe","MPI_Imrecv","MPI_Ineighbor_allgather","MPI_Ineighbor_allgatherv","MPI_Ineighbor_alltoall","MPI_Ineighbor_alltoallv","MPI_Ineighbor_alltoallw","MPI_Info_c2f","MPI_Info_create","MPI_Info_create_env","MPI_Info_delete","MPI_Info_dup","MPI_Info_f2c","MPI_Info_free","MPI_Info_get","MPI_Info_get_nkeys","MPI_Info_get_nthkey","MPI_Info_get_string","MPI_Info_get_valuelen","MPI_Info_set","MPI_Init","MPI_Init_thread","MPI_Initialized","MPI_Intercomm_create","MPI_Intercomm_create_from_groups","MPI_Intercomm_merge","MPI_Iprobe","MPI_Irecv","MPI_Ireduce","MPI_Ireduce_scatter","MPI_Ireduce_scatter_block","MPI_Irsend","MPI_Is_thread_main","MPI_Iscan","MPI_Iscatter","MPI_Iscatterv","MPI_Isend","MPI_Isendrecv","MPI_Isendrecv_replace","MPI_Issend","MPI_Keyval_create","MPI_Keyval_free","MPI_Lookup_name","MPI_Message_c2f","MPI_Message_f2c","MPI_Mprobe","MPI_Mrecv","MPI_NULL_COPY_FN","MPI_NULL_DELETE_FN","MPI_Neighbor_allgather","MPI_Neighbor_allgather_init","MPI_Neighbor_allgatherv","MPI_Neighbor_allgatherv_init","MPI_Neighbor_alltoall","MPI_Neighbor_alltoall_init","MPI_Neighbor_alltoallv","MPI_Neighbor_alltoallv_init","MPI_Neighbor_alltoallw","MPI_Neighbor_alltoallw_init","MPI_Op_c2f","MPI_Op_commutative","MPI_Op_create","MPI_Op_f2c","MPI_Op_free","MPI_Open_port","MPI_Pack","MPI_Pack_external","MPI_Pack_external_size","MPI_Pack_size","MPI_Parrived","MPI_Pcontrol","MPI_Pready","MPI_Pready_list","MPI_Pready_range","MPI_Precv_init","MPI_Probe","MPI_Psend_init","MPI_Publish_name","MPI_Put","MPI_Query_thread","MPI_Raccumulate","MPI_Recv","MPI_Recv_init","MPI_Reduce","MPI_Reduce_init","MPI_Reduce_local","MPI_Reduce_scatter","MPI_Reduce_scatter_block","MPI_Reduce_scatter_block_init","MPI_Reduce_scatter_init","MPI_Register_datarep","MPI_Request_c2f","MPI_Request_f2c","MPI_Request_free","MPI_Request_get_status","MPI_Rget","MPI_Rget_accumulate","MPI_Rput","MPI_Rsend","MPI_Rsend_init","MPI_Scan","MPI_Scan_init","MPI_Scatter","MPI_Scatter_init","MPI_Scatterv","MPI_Scatterv_init","MPI_Send","MPI_Send_init","MPI_Sendrecv","MPI_Sendrecv_replace","MPI_Session_c2f","MPI_Session_call_errhandler","MPI_Session_create_errhandler","MPI_Session_f2c","MPI_Session_finalize","MPI_Session_get_errhandler","MPI_Session_get_info","MPI_Session_get_nth_pset","MPI_Session_get_num_psets","MPI_Session_get_pset_info","MPI_Session_init","MPI_Session_set_errhandler","MPI_Session_set_info","MPI_Ssend","MPI_Ssend_init","MPI_Start","MPI_Startall","MPI_Status_c2f","MPI_Status_c2f08","MPI_Status_f082c","MPI_Status_f082f","MPI_Status_f2c","MPI_Status_f2f08","MPI_Status_set_cancelled","MPI_Status_set_elements","MPI_Status_set_elements_x","MPI_TYPE_DUP_FN","MPI_TYPE_NULL_COPY_FN","MPI_TYPE_NULL_DELETE_FN","MPI_T_category_changed","MPI_T_category_get_categories","MPI_T_category_get_cvars","MPI_T_category_get_index","MPI_T_category_get_info","MPI_T_category_get_num","MPI_T_category_get_pvars","MPI_T_cvar_get_index","MPI_T_cvar_get_info","MPI_T_cvar_get_num","MPI_T_cvar_handle_alloc","MPI_T_cvar_handle_free","MPI_T_cvar_read","MPI_T_cvar_write","MPI_T_enum_get_info","MPI_T_enum_get_item","MPI_T_finalize","MPI_T_init_thread","MPI_T_pvar_get_index","MPI_T_pvar_get_info","MPI_T_pvar_get_num","MPI_T_pvar_handle_alloc","MPI_T_pvar_handle_free","MPI_T_pvar_read","MPI_T_pvar_readreset","MPI_T_pvar_reset","MPI_T_pvar_session_create","MPI_T_pvar_session_free","MPI_T_pvar_start","MPI_T_pvar_stop","MPI_T_pvar_write","MPI_Test","MPI_Test_cancelled","MPI_Testall","MPI_Testany","MPI_Testsome","MPI_Topo_test","MPI_Type_c2f","MPI_Type_commit","MPI_Type_contiguous","MPI_Type_create_darray","MPI_Type_create_f90_complex","MPI_Type_create_f90_integer","MPI_Type_create_f90_real","MPI_Type_create_hindexed","MPI_Type_create_hindexed_block","MPI_Type_create_hvector","MPI_Type_create_indexed_block","MPI_Type_create_keyval","MPI_Type_create_resized","MPI_Type_create_struct","MPI_Type_create_subarray","MPI_Type_delete_attr","MPI_Type_dup","MPI_Type_extent","MPI_Type_f2c","MPI_Type_free","MPI_Type_free_keyval","MPI_Type_get_attr","MPI_Type_get_contents","MPI_Type_get_envelope","MPI_Type_get_extent","MPI_Type_get_extent_x","MPI_Type_get_name","MPI_Type_get_true_extent","MPI_Type_get_true_extent_x","MPI_Type_hindexed","MPI_Type_hvector","MPI_Type_indexed","MPI_Type_lb","MPI_Type_match_size","MPI_Type_set_attr","MPI_Type_set_name","MPI_Type_size","MPI_Type_size_x","MPI_Type_struct","MPI_Type_ub","MPI_Type_vector","MPI_Unpack","MPI_Unpack_external","MPI_Unpublish_name","MPI_WIN_DUP_FN","MPI_WIN_NULL_COPY_FN","MPI_WIN_NULL_DELETE_FN","MPI_WTICK_F90","MPI_WTIME_F90","MPI_Wait","MPI_Waitall","MPI_Waitany","MPI_Waitsome","MPI_Win_allocate","MPI_Win_allocate_shared","MPI_Win_attach","MPI_Win_c2f","MPI_Win_call_errhandler","MPI_Win_complete","MPI_Win_create","MPI_Win_create_dynamic","MPI_Win_create_errhandler","MPI_Win_create_keyval","MPI_Win_delete_attr","MPI_Win_detach","MPI_Win_f2c","MPI_Win_fence","MPI_Win_flush","MPI_Win_flush_all","MPI_Win_flush_local","MPI_Win_flush_local_all","MPI_Win_free","MPI_Win_free_keyval","MPI_Win_get_attr","MPI_Win_get_errhandler","MPI_Win_get_group","MPI_Win_get_info","MPI_Win_get_name","MPI_Win_lock","MPI_Win_lock_all","MPI_Win_post","MPI_Win_set_attr","MPI_Win_set_errhandler","MPI_Win_set_info","MPI_Win_set_name","MPI_Win_shared_query","MPI_Win_start","MPI_Win_sync","MPI_Win_test","MPI_Win_unlock","MPI_Win_unlock_all","MPI_Win_wait","MPI_Wtick","MPI_Wtime","NBC_Comm_neighbors","NBC_Comm_neighbors_count","NBC_Error","NBC_Error.constprop.0:0x12d820","NBC_Error.constprop.0:0x12e380","NBC_Error.constprop.0:0x12ee10","NBC_Error.constprop.0:0x130de0","NBC_Error.constprop.0:0x138c20","NBC_Error.constprop.0:0x13a930","NBC_Error.constprop.0:0x13bee0","NBC_Init_comm","NBC_Progress","NBC_Return_handle","NBC_Sched_barrier","NBC_Sched_commit","NBC_Sched_copy","NBC_Sched_local_recv","NBC_Sched_local_send","NBC_Sched_op","NBC_Sched_recv","NBC_Sched_send","NBC_Sched_unpack","NBC_Schedule_request","NBC_Start","NBC_Start_round","OMPI_Affinity_str","OMPI_Affinity_str.cold","OMPI_C_MPI_COMM_DUP_FN","OMPI_C_MPI_COMM_NULL_COPY_FN","OMPI_C_MPI_COMM_NULL_DELETE_FN","OMPI_C_MPI_DUP_FN","OMPI_C_MPI_NULL_COPY_FN","OMPI_C_MPI_NULL_DELETE_FN","OMPI_C_MPI_TYPE_DUP_FN","OMPI_C_MPI_TYPE_NULL_COPY_FN","OMPI_C_MPI_TYPE_NULL_DELETE_FN","OMPI_C_MPI_WIN_DUP_FN","OMPI_C_MPI_WIN_NULL_COPY_FN","OMPI_C_MPI_WIN_NULL_DELETE_FN","OMPI_TEST_FORTRAN_CONSTANTS","PMPIX_Comm_ack_failed","PMPIX_Comm_ack_failed.cold","PMPIX_Comm_agree","PMPIX_Comm_agree.cold","PMPIX_Comm_failure_ack","PMPIX_Comm_failure_ack.cold","PMPIX_Comm_failure_get_acked","PMPIX_Comm_failure_get_acked.cold","PMPIX_Comm_get_failed","PMPIX_Comm_get_failed.cold","PMPIX_Comm_iagree","PMPIX_Comm_iagree.cold","PMPIX_Comm_is_revoked","PMPIX_Comm_revoke","PMPIX_Comm_revoke.cold","PMPIX_Comm_shrink","PMPIX_Comm_shrink.cold","PMPI_Abort","PMPI_Accumulate","PMPI_Accumulate.cold","PMPI_Add_error_class","PMPI_Add_error_class.cold","PMPI_Add_error_code","PMPI_Add_error_code.cold","PMPI_Add_error_string","PMPI_Address","PMPI_Allgather","PMPI_Allgather.cold","PMPI_Allgather_init","PMPI_Allgather_init.cold","PMPI_Allgatherv","PMPI_Allgatherv.cold","PMPI_Allgatherv_init","PMPI_Allgatherv_init.cold","PMPI_Alloc_mem","PMPI_Allreduce","PMPI_Allreduce.cold","PMPI_Allreduce_init","PMPI_Allreduce_init.cold","PMPI_Alltoall","PMPI_Alltoall.cold","PMPI_Alltoall_init","PMPI_Alltoall_init.cold","PMPI_Alltoallv","PMPI_Alltoallv.cold","PMPI_Alltoallv_init","PMPI_Alltoallv_init.cold","PMPI_Alltoallw","PMPI_Alltoallw.cold","PMPI_Alltoallw_init","PMPI_Alltoallw_init.cold","PMPI_Attr_delete","PMPI_Attr_get","PMPI_Attr_get.cold","PMPI_Attr_put","PMPI_Barrier","PMPI_Barrier.cold","PMPI_Barrier_init","PMPI_Barrier_init.cold","PMPI_Bcast","PMPI_Bcast.cold","PMPI_Bcast_init","PMPI_Bcast_init.cold","PMPI_Bsend","PMPI_Bsend.cold","PMPI_Bsend_init","PMPI_Bsend_init.cold","PMPI_Buffer_attach","PMPI_Buffer_detach","PMPI_Cancel","PMPI_Cancel.cold","PMPI_Cart_coords","PMPI_Cart_coords.cold","PMPI_Cart_create","PMPI_Cart_create.cold","PMPI_Cart_get","PMPI_Cart_get.cold","PMPI_Cart_map","PMPI_Cart_map.cold","PMPI_Cart_rank","PMPI_Cart_rank.cold","PMPI_Cart_shift","PMPI_Cart_shift.cold","PMPI_Cart_sub","PMPI_Cart_sub.cold","PMPI_Cartdim_get","PMPI_Cartdim_get.cold","PMPI_Close_port","PMPI_Close_port.cold","PMPI_Comm_accept","PMPI_Comm_accept.cold","PMPI_Comm_c2f","PMPI_Comm_call_errhandler","PMPI_Comm_call_errhandler.cold","PMPI_Comm_compare","PMPI_Comm_compare.cold","PMPI_Comm_connect","PMPI_Comm_connect.cold","PMPI_Comm_create","PMPI_Comm_create.cold","PMPI_Comm_create_errhandler","PMPI_Comm_create_from_group","PMPI_Comm_create_group","PMPI_Comm_create_group.cold","PMPI_Comm_create_keyval","PMPI_Comm_delete_attr","PMPI_Comm_disconnect","PMPI_Comm_dup","PMPI_Comm_dup.cold","PMPI_Comm_dup_with_info","PMPI_Comm_dup_with_info.cold","PMPI_Comm_f2c","PMPI_Comm_free","PMPI_Comm_free.cold","PMPI_Comm_free_keyval","PMPI_Comm_get_attr","PMPI_Comm_get_errhandler","PMPI_Comm_get_info","PMPI_Comm_get_name","PMPI_Comm_get_parent","PMPI_Comm_group","PMPI_Comm_group.cold","PMPI_Comm_idup","PMPI_Comm_idup.cold","PMPI_Comm_idup_with_info","PMPI_Comm_idup_with_info.cold","PMPI_Comm_join","PMPI_Comm_join.cold","PMPI_Comm_rank","PMPI_Comm_remote_group","PMPI_Comm_remote_size","PMPI_Comm_set_attr","PMPI_Comm_set_errhandler","PMPI_Comm_set_info","PMPI_Comm_set_name","PMPI_Comm_set_name.cold","PMPI_Comm_size","PMPI_Comm_spawn","PMPI_Comm_spawn.cold","PMPI_Comm_spawn_multiple","PMPI_Comm_spawn_multiple.cold","PMPI_Comm_split","PMPI_Comm_split.cold","PMPI_Comm_split_type","PMPI_Comm_split_type.cold","PMPI_Comm_test_inter","PMPI_Compare_and_swap","PMPI_Compare_and_swap.cold","PMPI_Dims_create","PMPI_Dist_graph_create","PMPI_Dist_graph_create.cold","PMPI_Dist_graph_create_adjacent","PMPI_Dist_graph_create_adjacent.cold","PMPI_Dist_graph_neighbors","PMPI_Dist_graph_neighbors.cold","PMPI_Dist_graph_neighbors_count","PMPI_Dist_graph_neighbors_count.cold","PMPI_Errhandler_c2f","PMPI_Errhandler_create","PMPI_Errhandler_f2c","PMPI_Errhandler_free","PMPI_Errhandler_get","PMPI_Errhandler_set","PMPI_Error_class","PMPI_Error_class.cold","PMPI_Error_string","PMPI_Error_string.cold","PMPI_Exscan","PMPI_Exscan.cold","PMPI_Exscan_init","PMPI_Exscan_init.cold","PMPI_Fetch_and_op","PMPI_Fetch_and_op.cold","PMPI_File_c2f","PMPI_File_call_errhandler","PMPI_File_call_errhandler.cold","PMPI_File_close","PMPI_File_close.cold","PMPI_File_create_errhandler","PMPI_File_delete","PMPI_File_delete.cold","PMPI_File_f2c","PMPI_File_get_amode","PMPI_File_get_amode.cold","PMPI_File_get_atomicity","PMPI_File_get_atomicity.cold","PMPI_File_get_byte_offset","PMPI_File_get_byte_offset.cold","PMPI_File_get_errhandler","PMPI_File_get_group","PMPI_File_get_group.cold","PMPI_File_get_info","PMPI_File_get_info.cold","PMPI_File_get_position","PMPI_File_get_position.cold","PMPI_File_get_position_shared","PMPI_File_get_position_shared.cold","PMPI_File_get_size","PMPI_File_get_size.cold","PMPI_File_get_type_extent","PMPI_File_get_type_extent.cold","PMPI_File_get_view","PMPI_File_get_view.cold","PMPI_File_iread","PMPI_File_iread.cold","PMPI_File_iread_all","PMPI_File_iread_all.cold","PMPI_File_iread_at","PMPI_File_iread_at.cold","PMPI_File_iread_at_all","PMPI_File_iread_at_all.cold","PMPI_File_iread_shared","PMPI_File_iread_shared.cold","PMPI_File_iwrite","PMPI_File_iwrite.cold","PMPI_File_iwrite_all","PMPI_File_iwrite_all.cold","PMPI_File_iwrite_at","PMPI_File_iwrite_at.cold","PMPI_File_iwrite_at_all","PMPI_File_iwrite_at_all.cold","PMPI_File_iwrite_shared","PMPI_File_iwrite_shared.cold","PMPI_File_open","PMPI_File_open.cold","PMPI_File_preallocate","PMPI_File_preallocate.cold","PMPI_File_read","PMPI_File_read.cold","PMPI_File_read_all","PMPI_File_read_all.cold","PMPI_File_read_all_begin","PMPI_File_read_all_begin.cold","PMPI_File_read_all_end","PMPI_File_read_all_end.cold","PMPI_File_read_at","PMPI_File_read_at.cold","PMPI_File_read_at_all","PMPI_File_read_at_all.cold","PMPI_File_read_at_all_begin","PMPI_File_read_at_all_begin.cold","PMPI_File_read_at_all_end","PMPI_File_read_at_all_end.cold","PMPI_File_read_ordered","PMPI_File_read_ordered.cold","PMPI_File_read_ordered_begin","PMPI_File_read_ordered_begin.cold","PMPI_File_read_ordered_end","PMPI_File_read_ordered_end.cold","PMPI_File_read_shared","PMPI_File_read_shared.cold","PMPI_File_seek","PMPI_File_seek.cold","PMPI_File_seek_shared","PMPI_File_seek_shared.cold","PMPI_File_set_atomicity","PMPI_File_set_atomicity.cold","PMPI_File_set_errhandler","PMPI_File_set_info","PMPI_File_set_info.cold","PMPI_File_set_size","PMPI_File_set_size.cold","PMPI_File_set_view","PMPI_File_set_view.cold","PMPI_File_sync","PMPI_File_sync.cold","PMPI_File_write","PMPI_File_write.cold","PMPI_File_write_all","PMPI_File_write_all.cold","PMPI_File_write_all_begin","PMPI_File_write_all_begin.cold","PMPI_File_write_all_end","PMPI_File_write_all_end.cold","PMPI_File_write_at","PMPI_File_write_at.cold","PMPI_File_write_at_all","PMPI_File_write_at_all.cold","PMPI_File_write_at_all_begin","PMPI_File_write_at_all_begin.cold","PMPI_File_write_at_all_end","PMPI_File_write_at_all_end.cold","PMPI_File_write_ordered","PMPI_File_write_ordered.cold","PMPI_File_write_ordered_begin","PMPI_File_write_ordered_begin.cold","PMPI_File_write_ordered_end","PMPI_File_write_ordered_end.cold","PMPI_File_write_shared","PMPI_File_write_shared.cold","PMPI_Finalize","PMPI_Finalized","PMPI_Free_mem","PMPI_Gather","PMPI_Gather.cold","PMPI_Gather_init","PMPI_Gather_init.cold","PMPI_Gatherv","PMPI_Gatherv.cold","PMPI_Gatherv_init","PMPI_Gatherv_init.cold","PMPI_Get","PMPI_Get.cold","PMPI_Get_accumulate","PMPI_Get_accumulate.cold","PMPI_Get_address","PMPI_Get_count","PMPI_Get_elements","PMPI_Get_elements_x","PMPI_Get_library_version","PMPI_Get_processor_name","PMPI_Get_version","PMPI_Graph_create","PMPI_Graph_create.cold","PMPI_Graph_get","PMPI_Graph_get.cold","PMPI_Graph_map","PMPI_Graph_map.cold","PMPI_Graph_neighbors","PMPI_Graph_neighbors.cold","PMPI_Graph_neighbors_count","PMPI_Graph_neighbors_count.cold","PMPI_Graphdims_get","PMPI_Graphdims_get.cold","PMPI_Grequest_complete","PMPI_Grequest_start","PMPI_Grequest_start.cold","PMPI_Group_c2f","PMPI_Group_compare","PMPI_Group_difference","PMPI_Group_difference.cold","PMPI_Group_excl","PMPI_Group_excl.cold","PMPI_Group_f2c","PMPI_Group_free","PMPI_Group_free.cold","PMPI_Group_from_session_pset","PMPI_Group_from_session_pset.cold","PMPI_Group_incl","PMPI_Group_incl.cold","PMPI_Group_intersection","PMPI_Group_intersection.cold","PMPI_Group_range_excl","PMPI_Group_range_excl.cold","PMPI_Group_range_incl","PMPI_Group_range_incl.cold","PMPI_Group_rank","PMPI_Group_size","PMPI_Group_translate_ranks","PMPI_Group_translate_ranks.cold","PMPI_Group_union","PMPI_Group_union.cold","PMPI_Iallgather","PMPI_Iallgather.cold","PMPI_Iallgatherv","PMPI_Iallgatherv.cold","PMPI_Iallreduce","PMPI_Iallreduce.cold","PMPI_Ialltoall","PMPI_Ialltoall.cold","PMPI_Ialltoallv","PMPI_Ialltoallv.cold","PMPI_Ialltoallw","PMPI_Ialltoallw.cold","PMPI_Ibarrier","PMPI_Ibarrier.cold","PMPI_Ibcast","PMPI_Ibcast.cold","PMPI_Ibsend","PMPI_Ibsend.cold","PMPI_Iexscan","PMPI_Iexscan.cold","PMPI_Igather","PMPI_Igather.cold","PMPI_Igatherv","PMPI_Igatherv.cold","PMPI_Improbe","PMPI_Improbe.cold","PMPI_Imrecv","PMPI_Imrecv.cold","PMPI_Ineighbor_allgather","PMPI_Ineighbor_allgather.cold","PMPI_Ineighbor_allgatherv","PMPI_Ineighbor_allgatherv.cold","PMPI_Ineighbor_alltoall","PMPI_Ineighbor_alltoall.cold","PMPI_Ineighbor_alltoallv","PMPI_Ineighbor_alltoallv.cold","PMPI_Ineighbor_alltoallw","PMPI_Ineighbor_alltoallw.cold","PMPI_Info_c2f","PMPI_Info_create","PMPI_Info_create_env","PMPI_Info_create_env.cold","PMPI_Info_delete","PMPI_Info_delete.cold","PMPI_Info_dup","PMPI_Info_dup.cold","PMPI_Info_f2c","PMPI_Info_free","PMPI_Info_free.cold","PMPI_Info_get","PMPI_Info_get.cold","PMPI_Info_get_nkeys","PMPI_Info_get_nkeys.cold","PMPI_Info_get_nthkey","PMPI_Info_get_nthkey.cold","PMPI_Info_get_string","PMPI_Info_get_string.cold","PMPI_Info_get_valuelen","PMPI_Info_get_valuelen.cold","PMPI_Info_set","PMPI_Info_set.cold","PMPI_Init","PMPI_Init.cold","PMPI_Init_thread","PMPI_Init_thread.cold","PMPI_Initialized","PMPI_Intercomm_create","PMPI_Intercomm_create.cold","PMPI_Intercomm_create_from_groups","PMPI_Intercomm_merge","PMPI_Intercomm_merge.cold","PMPI_Iprobe","PMPI_Iprobe.cold","PMPI_Irecv","PMPI_Irecv.cold","PMPI_Ireduce","PMPI_Ireduce.cold","PMPI_Ireduce_scatter","PMPI_Ireduce_scatter.cold","PMPI_Ireduce_scatter_block","PMPI_Ireduce_scatter_block.cold","PMPI_Irsend","PMPI_Irsend.cold","PMPI_Is_thread_main","PMPI_Iscan","PMPI_Iscan.cold","PMPI_Iscatter","PMPI_Iscatter.cold","PMPI_Iscatterv","PMPI_Iscatterv.cold","PMPI_Isend","PMPI_Isend.cold","PMPI_Isendrecv","PMPI_Isendrecv.cold","PMPI_Isendrecv_replace","PMPI_Isendrecv_replace.cold","PMPI_Issend","PMPI_Issend.cold","PMPI_Keyval_create","PMPI_Keyval_free","PMPI_Lookup_name","PMPI_Lookup_name.cold","PMPI_Message_c2f","PMPI_Message_f2c","PMPI_Mprobe","PMPI_Mprobe.cold","PMPI_Mrecv","PMPI_Mrecv.cold","PMPI_Neighbor_allgather","PMPI_Neighbor_allgather.cold","PMPI_Neighbor_allgather_init","PMPI_Neighbor_allgather_init.cold","PMPI_Neighbor_allgatherv","PMPI_Neighbor_allgatherv.cold","PMPI_Neighbor_allgatherv_init","PMPI_Neighbor_allgatherv_init.cold","PMPI_Neighbor_alltoall","PMPI_Neighbor_alltoall.cold","PMPI_Neighbor_alltoall_init","PMPI_Neighbor_alltoall_init.cold","PMPI_Neighbor_alltoallv","PMPI_Neighbor_alltoallv.cold","PMPI_Neighbor_alltoallv_init","PMPI_Neighbor_alltoallv_init.cold","PMPI_Neighbor_alltoallw","PMPI_Neighbor_alltoallw.cold","PMPI_Neighbor_alltoallw_init","PMPI_Neighbor_alltoallw_init.cold","PMPI_Op_c2f","PMPI_Op_commutative","PMPI_Op_create","PMPI_Op_f2c","PMPI_Op_free","PMPI_Open_port","PMPI_Open_port.cold","PMPI_Pack","PMPI_Pack.cold","PMPI_Pack_external","PMPI_Pack_external.cold","PMPI_Pack_external_size","PMPI_Pack_external_size.cold","PMPI_Pack_size","PMPI_Parrived","PMPI_Parrived.cold","PMPI_Pcontrol","PMPI_Pready","PMPI_Pready.cold","PMPI_Pready_list","PMPI_Pready_list.cold","PMPI_Pready_range","PMPI_Pready_range.cold","PMPI_Precv_init","PMPI_Precv_init.cold","PMPI_Probe","PMPI_Probe.cold","PMPI_Psend_init","PMPI_Psend_init.cold","PMPI_Publish_name","PMPI_Publish_name.cold","PMPI_Put","PMPI_Put.cold","PMPI_Query_thread","PMPI_Raccumulate","PMPI_Raccumulate.cold","PMPI_Recv","PMPI_Recv.cold","PMPI_Recv_init","PMPI_Recv_init.cold","PMPI_Reduce","PMPI_Reduce.cold","PMPI_Reduce_init","PMPI_Reduce_init.cold","PMPI_Reduce_local","PMPI_Reduce_local.cold","PMPI_Reduce_scatter","PMPI_Reduce_scatter.cold","PMPI_Reduce_scatter_block","PMPI_Reduce_scatter_block.cold","PMPI_Reduce_scatter_block_init","PMPI_Reduce_scatter_block_init.cold","PMPI_Reduce_scatter_init","PMPI_Reduce_scatter_init.cold","PMPI_Register_datarep","PMPI_Register_datarep.cold","PMPI_Request_c2f","PMPI_Request_f2c","PMPI_Request_free","PMPI_Request_free.cold","PMPI_Request_get_status","PMPI_Rget","PMPI_Rget.cold","PMPI_Rget_accumulate","PMPI_Rget_accumulate.cold","PMPI_Rput","PMPI_Rput.cold","PMPI_Rsend","PMPI_Rsend.cold","PMPI_Rsend_init","PMPI_Rsend_init.cold","PMPI_Scan","PMPI_Scan.cold","PMPI_Scan_init","PMPI_Scan_init.cold","PMPI_Scatter","PMPI_Scatter.cold","PMPI_Scatter_init","PMPI_Scatter_init.cold","PMPI_Scatterv","PMPI_Scatterv.cold","PMPI_Scatterv_init","PMPI_Scatterv_init.cold","PMPI_Send","PMPI_Send.cold","PMPI_Send_init","PMPI_Send_init.cold","PMPI_Sendrecv","PMPI_Sendrecv.cold","PMPI_Sendrecv_replace","PMPI_Sendrecv_replace.cold","PMPI_Session_c2f","PMPI_Session_call_errhandler","PMPI_Session_call_errhandler.cold","PMPI_Session_create_errhandler","PMPI_Session_f2c","PMPI_Session_finalize","PMPI_Session_finalize.cold","PMPI_Session_get_errhandler","PMPI_Session_get_errhandler.cold","PMPI_Session_get_info","PMPI_Session_get_nth_pset","PMPI_Session_get_nth_pset.cold","PMPI_Session_get_num_psets","PMPI_Session_get_num_psets.cold","PMPI_Session_get_pset_info","PMPI_Session_get_pset_info.cold","PMPI_Session_init","PMPI_Session_init.cold","PMPI_Session_set_errhandler","PMPI_Session_set_info","PMPI_Ssend","PMPI_Ssend.cold","PMPI_Ssend_init","PMPI_Ssend_init.cold","PMPI_Start","PMPI_Start.cold","PMPI_Startall","PMPI_Status_c2f","PMPI_Status_c2f08","PMPI_Status_f082c","PMPI_Status_f082f","PMPI_Status_f2c","PMPI_Status_f2f08","PMPI_Status_set_cancelled","PMPI_Status_set_elements","PMPI_Status_set_elements_x","PMPI_T_category_changed","PMPI_T_category_get_categories","PMPI_T_category_get_cvars","PMPI_T_category_get_index","PMPI_T_category_get_info","PMPI_T_category_get_num","PMPI_T_category_get_pvars","PMPI_T_cvar_get_index","PMPI_T_cvar_get_info","PMPI_T_cvar_get_num","PMPI_T_cvar_handle_alloc","PMPI_T_cvar_handle_free","PMPI_T_cvar_read","PMPI_T_cvar_write","PMPI_T_enum_get_info","PMPI_T_enum_get_item","PMPI_T_finalize","PMPI_T_init_thread","PMPI_T_pvar_get_index","PMPI_T_pvar_get_info","PMPI_T_pvar_get_num","PMPI_T_pvar_handle_alloc","PMPI_T_pvar_handle_free","PMPI_T_pvar_read","PMPI_T_pvar_readreset","PMPI_T_pvar_reset","PMPI_T_pvar_session_create","PMPI_T_pvar_session_free","PMPI_T_pvar_start","PMPI_T_pvar_stop","PMPI_T_pvar_write","PMPI_Test","PMPI_Test_cancelled","PMPI_Testall","PMPI_Testany","PMPI_Testsome","PMPI_Topo_test","PMPI_Type_c2f","PMPI_Type_commit","PMPI_Type_commit.cold","PMPI_Type_contiguous","PMPI_Type_contiguous.cold","PMPI_Type_create_darray","PMPI_Type_create_darray.cold","PMPI_Type_create_f90_complex","PMPI_Type_create_f90_complex.cold","PMPI_Type_create_f90_integer","PMPI_Type_create_f90_integer.cold","PMPI_Type_create_f90_real","PMPI_Type_create_f90_real.cold","PMPI_Type_create_hindexed","PMPI_Type_create_hindexed.cold","PMPI_Type_create_hindexed_block","PMPI_Type_create_hindexed_block.cold","PMPI_Type_create_hvector","PMPI_Type_create_hvector.cold","PMPI_Type_create_indexed_block","PMPI_Type_create_indexed_block.cold","PMPI_Type_create_keyval","PMPI_Type_create_keyval.cold","PMPI_Type_create_resized","PMPI_Type_create_resized.cold","PMPI_Type_create_struct","PMPI_Type_create_struct.cold","PMPI_Type_create_subarray","PMPI_Type_create_subarray.cold","PMPI_Type_delete_attr","PMPI_Type_dup","PMPI_Type_dup.cold","PMPI_Type_extent","PMPI_Type_f2c","PMPI_Type_free","PMPI_Type_free_keyval","PMPI_Type_get_attr","PMPI_Type_get_contents","PMPI_Type_get_envelope","PMPI_Type_get_envelope.cold","PMPI_Type_get_extent","PMPI_Type_get_extent_x","PMPI_Type_get_name","PMPI_Type_get_true_extent","PMPI_Type_get_true_extent_x","PMPI_Type_hindexed","PMPI_Type_hvector","PMPI_Type_indexed","PMPI_Type_indexed.cold","PMPI_Type_lb","PMPI_Type_match_size","PMPI_Type_set_attr","PMPI_Type_set_name","PMPI_Type_size","PMPI_Type_size_x","PMPI_Type_struct","PMPI_Type_ub","PMPI_Type_vector","PMPI_Type_vector.cold","PMPI_Unpack","PMPI_Unpack.cold","PMPI_Unpack_external","PMPI_Unpack_external.cold","PMPI_Unpublish_name","PMPI_Unpublish_name.cold","PMPI_Wait","PMPI_Waitall","PMPI_Waitany","PMPI_Waitsome","PMPI_Win_allocate","PMPI_Win_allocate_shared","PMPI_Win_allocate_shared.cold","PMPI_Win_attach","PMPI_Win_attach.cold","PMPI_Win_c2f","PMPI_Win_call_errhandler","PMPI_Win_call_errhandler.cold","PMPI_Win_complete","PMPI_Win_complete.cold","PMPI_Win_create","PMPI_Win_create_dynamic","PMPI_Win_create_errhandler","PMPI_Win_create_keyval","PMPI_Win_delete_attr","PMPI_Win_detach","PMPI_Win_detach.cold","PMPI_Win_f2c","PMPI_Win_fence","PMPI_Win_fence.cold","PMPI_Win_flush","PMPI_Win_flush.cold","PMPI_Win_flush_all","PMPI_Win_flush_all.cold","PMPI_Win_flush_local","PMPI_Win_flush_local.cold","PMPI_Win_flush_local_all","PMPI_Win_flush_local_all.cold","PMPI_Win_free","PMPI_Win_free.cold","PMPI_Win_free_keyval","PMPI_Win_get_attr","PMPI_Win_get_errhandler","PMPI_Win_get_group","PMPI_Win_get_group.cold","PMPI_Win_get_info","PMPI_Win_get_info.cold","PMPI_Win_get_name","PMPI_Win_get_name.cold","PMPI_Win_lock","PMPI_Win_lock.cold","PMPI_Win_lock_all","PMPI_Win_lock_all.cold","PMPI_Win_post","PMPI_Win_post.cold","PMPI_Win_set_attr","PMPI_Win_set_errhandler","PMPI_Win_set_info","PMPI_Win_set_info.cold","PMPI_Win_set_name","PMPI_Win_set_name.cold","PMPI_Win_shared_query","PMPI_Win_shared_query.cold","PMPI_Win_start","PMPI_Win_start.cold","PMPI_Win_sync","PMPI_Win_sync.cold","PMPI_Win_test","PMPI_Win_test.cold","PMPI_Win_unlock","PMPI_Win_unlock.cold","PMPI_Win_unlock_all","PMPI_Win_unlock_all.cold","PMPI_Win_wait","PMPI_Win_wait.cold","PMPI_Wtick","PMPI_Wtime","PQ_adjustElementKey","PQ_adjustKey","PQ_decreaseElementKey","PQ_decreaseKey","PQ_delete","PQ_deleteElement","PQ_deleteMax","PQ_deleteMaxElement","PQ_exit","PQ_findMaxElement","PQ_findMaxKey","PQ_free","PQ_increaseElementKey","PQ_increaseKey","PQ_init","PQ_insert","PQ_insertElement","PQ_isEmpty","V_OUTPUT_ERR","__SENDER_BASED_METHOD_COPY","__do_global_dtors_aux","__muldc3","__mulsc3","__mulxc3","__ompi_datatype_allocate","__ompi_datatype_create_from_args","__ompi_datatype_create_from_packed_description.isra.0","__ompi_datatype_pack_description.isra.0","__ompi_datatype_release","_convert_process_name_to_string:0x84d30","_convert_process_name_to_string:0x88400","_convert_string_to_jobid","_convert_string_to_process_name:0x84b80","_convert_string_to_process_name:0x88410","_jobid_print_for_opal","_mca_topo_base_select.part.0","_process_name_compare:0x849c0","_process_name_compare:0x88420","_process_name_print_for_opal:0x84790","_process_name_print_for_opal:0x88450","_release_fn","_vpid_print_for_opal","adapt_close","adapt_constant_reduce_context_construct","adapt_constant_reduce_context_destruct","adapt_module_construct","adapt_module_destruct","adapt_module_enable","adapt_open","adapt_register","alloc_window","append_frag_to_list","attr_subsys_construct","attr_subsys_construct.cold","attr_subsys_destruct","attribute_key_value_construct","avail_coll_compare","avail_io_compare:0x179350","avail_io_compare:0x1799d0","avail_op_compare","avx_component_close","avx_component_init_query","avx_component_op_query","avx_component_open","avx_component_register","backend_abort_aggregate","backend_abort_no_aggregate","basic_register","block","bootstrap_comm","btl_bandwidth_compare","btl_exclusivity_compare","btl_latency_sort_fn","buffer_cleanup","build_level_topology","build_level_topology.cold","build_process_tab_id","check","check_file","check_one_component","close_component","coll_base_comm_construct","coll_base_comm_destruct","coll_base_module_construct","coll_base_module_destruct","comm_method_string","compFunc","compare_attr_sequence","compare_ints","compare_pmix_proc","compare_ranks:0x1da9b0","compare_ranks:0x1ea3b0","compare_uint16_ts","complete_objs_callback","complete_vecs_callback","component_finalize","component_init","component_open","component_query","component_register","component_select","compute_gain","config_window","construct_peers","cost_calc","create_comm","create_dumb_tree","create_threads","create_win","cset2mapstr.constprop.0","cset2str.constprop.0","datatype_duplicate.isra.0","dbl_cmp_inc","delete_group_list","delete_query","delete_select","depth_first","deregister_tm_clones","destruct_topology_cache","dfs","display_sol","distance","dpm_convert.constprop.0","dpm_convert.constprop.1","dynamic_gen2_register","dynamic_register","era_agreement_comm_specific_constructor","era_agreement_comm_specific_destructor","era_agreement_info_constructor","era_agreement_info_destructor","era_bounce_event_cb","era_cb_fn","era_cb_fn.cold","era_check_status","era_combine_agreement_values","era_combine_agreement_values.cold","era_create_agreement_info","era_create_agreement_info.cold","era_decide","era_error_event_cb","era_iagree_req_complete_cb","era_iagree_req_complete_cb.cold","era_iagree_req_free","era_mark_process_failed","era_merge_new_dead_list","era_next_child","era_on_comm_rank_failure","era_tree_fn_binary","era_tree_fn_star","era_tree_fn_string","era_tree_remove_node","era_update_return_value","era_value_constructor","era_value_destructor","evhandler_dereg_callbk","evhandler_reg_callbk:0x7c580","evhandler_reg_callbk:0x884c0","f1","f2","fast_group","fd_event_cb","fd_heartbeat_rdma_cb","fd_heartbeat_recv_cb","fd_heartbeat_request.isra.0","fd_heartbeat_request_cb","fd_heartbeat_send.isra.0","fd_progress","fence_cbfunc","fence_release:0x820f0","fence_release:0x884b0","file_constructor","file_destructor","file_query","file_unquery","fill_null_pointers","fragment_sent_cb","frame_dummy","free_constraint_tree","free_list_child","free_objs_callback","free_tab_child","free_vecs_callback","ftagree_close","ftagree_register","generate_random_sol.isra.0","generate_work_units.constprop.0","generate_work_units.part.0","get_algorithm","get_dynamic_rule","get_module","get_print_name_buffer","get_rsrc_exists","group_list_asc","group_list_dsc","group_list_id","han_close","han_module_enable","han_open","han_register","hash_asc","hb_itor_search","ibcast_request_fini.isra.0","icompar","individual_register:0x16eff0","individual_register:0x21a490","info_constructor","info_destructor","init_by_array","init_query:0x17b980","init_query:0x21f830","init_query:0x233dc0","inter_register","io_base_request_constructor","ireduce_request_fini.isra.0","kpartition_build_level_topology.isra.0","libnbc_close","libnbc_comm_query","libnbc_init_query","libnbc_module_construct","libnbc_module_destruct","libnbc_module_enable","libnbc_open","libnbc_register","list_all_possible_groups","list_all_possible_groups.cold","lockedfile_register","match_one","mca_bml_base_btl_array_construct","mca_bml_base_btl_array_destruct","mca_bml_base_btl_array_reserve","mca_bml_base_close","mca_bml_base_endpoint_construct","mca_bml_base_endpoint_destruct","mca_bml_base_init","mca_bml_base_inited","mca_bml_base_open","mca_bml_base_register","mca_bml_r2_add_btl","mca_bml_r2_add_btls","mca_bml_r2_add_proc","mca_bml_r2_add_procs","mca_bml_r2_allocate_endpoint","mca_bml_r2_component_close","mca_bml_r2_component_fini","mca_bml_r2_component_init","mca_bml_r2_component_open","mca_bml_r2_component_register","mca_bml_r2_compute_endpoint_metrics","mca_bml_r2_compute_endpoint_metrics.cold","mca_bml_r2_del_btl","mca_bml_r2_del_proc_btl","mca_bml_r2_del_procs","mca_bml_r2_del_procs.cold","mca_bml_r2_endpoint_add_btl","mca_bml_r2_finalize","mca_bml_r2_register","mca_bml_r2_register_error","mca_coll_base_alltoall_intra_basic_inplace","mca_coll_base_alltoallv_intra_basic_inplace","mca_coll_base_colltype_to_str","mca_coll_base_comm_select","mca_coll_base_comm_unselect","mca_coll_base_find_available","mca_coll_base_name_to_colltype","mca_coll_base_reduce_local","mca_coll_basic_allgather_inter","mca_coll_basic_allgatherv_inter","mca_coll_basic_allreduce_inter","mca_coll_basic_allreduce_intra","mca_coll_basic_alltoall_inter","mca_coll_basic_alltoallv_inter","mca_coll_basic_alltoallw_inter","mca_coll_basic_alltoallw_intra","mca_coll_basic_alltoallw_intra_inplace.constprop.0","mca_coll_basic_barrier_inter_lin","mca_coll_basic_barrier_intra_log","mca_coll_basic_bcast_lin_inter","mca_coll_basic_bcast_log_inter","mca_coll_basic_bcast_log_intra","mca_coll_basic_comm_query","mca_coll_basic_exscan_inter","mca_coll_basic_exscan_intra","mca_coll_basic_gather_inter","mca_coll_basic_gatherv_inter","mca_coll_basic_gatherv_intra","mca_coll_basic_init_query","mca_coll_basic_module_enable","mca_coll_basic_neighbor_allgather","mca_coll_basic_neighbor_allgatherv","mca_coll_basic_neighbor_alltoall","mca_coll_basic_neighbor_alltoallv","mca_coll_basic_neighbor_alltoallw","mca_coll_basic_reduce_lin_inter","mca_coll_basic_reduce_log_inter","mca_coll_basic_reduce_log_intra","mca_coll_basic_reduce_scatter_block_inter","mca_coll_basic_reduce_scatter_block_intra","mca_coll_basic_reduce_scatter_inter","mca_coll_basic_reduce_scatter_intra","mca_coll_basic_scan_intra","mca_coll_basic_scatter_inter","mca_coll_basic_scatterv_inter","mca_coll_basic_scatterv_intra","mca_coll_ftagree_comm_query","mca_coll_ftagree_construct","mca_coll_ftagree_era_comm_finalize","mca_coll_ftagree_era_comm_init","mca_coll_ftagree_era_finalize","mca_coll_ftagree_era_init","mca_coll_ftagree_era_inter","mca_coll_ftagree_era_intra","mca_coll_ftagree_eta_intra","mca_coll_ftagree_iera_intra","mca_coll_ftagree_iera_intra.cold","mca_coll_ftagree_init_query","mca_coll_ftagree_module_construct","mca_coll_ftagree_module_destruct","mca_coll_ftagree_module_enable","mca_coll_han_algorithm_id_is_valid","mca_coll_han_algorithm_id_to_fn","mca_coll_han_algorithm_id_to_name","mca_coll_han_algorithm_name_to_id","mca_coll_han_allgather_intra","mca_coll_han_allgather_intra_dynamic","mca_coll_han_allgather_intra_simple","mca_coll_han_allgather_lb_task","mca_coll_han_allgather_lg_task","mca_coll_han_allgather_uag_task","mca_coll_han_allgatherv_intra_dynamic","mca_coll_han_allreduce_intra","mca_coll_han_allreduce_intra_dynamic","mca_coll_han_allreduce_intra_simple","mca_coll_han_allreduce_reproducible","mca_coll_han_allreduce_reproducible_decision","mca_coll_han_allreduce_t0_task","mca_coll_han_allreduce_t1_task","mca_coll_han_allreduce_t2_task","mca_coll_han_allreduce_t3_task","mca_coll_han_barrier_intra_dynamic","mca_coll_han_barrier_intra_simple","mca_coll_han_bcast_intra","mca_coll_han_bcast_intra_dynamic","mca_coll_han_bcast_intra_simple","mca_coll_han_bcast_t0_task","mca_coll_han_bcast_t1_task","mca_coll_han_comm_create","mca_coll_han_comm_create_new","mca_coll_han_comm_query","mca_coll_han_component_name_to_id","mca_coll_han_dump_dynamic_rules","mca_coll_han_free_algorithms","mca_coll_han_free_dynamic_rules","mca_coll_han_gather_intra","mca_coll_han_gather_intra_dynamic","mca_coll_han_gather_intra_simple","mca_coll_han_gather_lg_task","mca_coll_han_gather_ug_task","mca_coll_han_get_all_coll_modules","mca_coll_han_init_algorithms","mca_coll_han_init_dynamic_rules","mca_coll_han_init_query","mca_coll_han_is_coll_dynamic_implemented","mca_coll_han_module_construct","mca_coll_han_module_destruct","mca_coll_han_module_disable","mca_coll_han_reduce_intra","mca_coll_han_reduce_intra_dynamic","mca_coll_han_reduce_intra_simple","mca_coll_han_reduce_reproducible","mca_coll_han_reduce_reproducible_decision","mca_coll_han_reduce_t0_task","mca_coll_han_reduce_t1_task","mca_coll_han_scatter_intra","mca_coll_han_scatter_intra_dynamic","mca_coll_han_scatter_intra_simple","mca_coll_han_scatter_ls_task","mca_coll_han_scatter_us_task","mca_coll_han_topo_init","mca_coll_han_topo_lvl_name_to_id","mca_coll_han_topo_lvl_to_str","mca_coll_inter_allgather_inter","mca_coll_inter_allgatherv_inter","mca_coll_inter_allreduce_inter","mca_coll_inter_bcast_inter","mca_coll_inter_comm_query","mca_coll_inter_gather_inter","mca_coll_inter_gatherv_inter","mca_coll_inter_init_query","mca_coll_inter_module_construct","mca_coll_inter_module_destruct","mca_coll_inter_module_enable","mca_coll_inter_reduce_inter","mca_coll_inter_scatter_inter","mca_coll_inter_scatterv_inter","mca_coll_monitoring_allgather","mca_coll_monitoring_allgatherv","mca_coll_monitoring_allreduce","mca_coll_monitoring_alltoall","mca_coll_monitoring_alltoallv","mca_coll_monitoring_alltoallw","mca_coll_monitoring_barrier","mca_coll_monitoring_bcast","mca_coll_monitoring_component_close","mca_coll_monitoring_component_init","mca_coll_monitoring_component_open","mca_coll_monitoring_component_query","mca_coll_monitoring_component_register","mca_coll_monitoring_exscan","mca_coll_monitoring_gather","mca_coll_monitoring_gatherv","mca_coll_monitoring_iallgather","mca_coll_monitoring_iallgatherv","mca_coll_monitoring_iallreduce","mca_coll_monitoring_ialltoall","mca_coll_monitoring_ialltoallv","mca_coll_monitoring_ialltoallw","mca_coll_monitoring_ibarrier","mca_coll_monitoring_ibcast","mca_coll_monitoring_iexscan","mca_coll_monitoring_igather","mca_coll_monitoring_igatherv","mca_coll_monitoring_ineighbor_allgather","mca_coll_monitoring_ineighbor_allgatherv","mca_coll_monitoring_ineighbor_alltoall","mca_coll_monitoring_ineighbor_alltoallv","mca_coll_monitoring_ineighbor_alltoallw","mca_coll_monitoring_ireduce","mca_coll_monitoring_ireduce_scatter","mca_coll_monitoring_ireduce_scatter_block","mca_coll_monitoring_iscan","mca_coll_monitoring_iscatter","mca_coll_monitoring_iscatterv","mca_coll_monitoring_module_disable","mca_coll_monitoring_module_enable","mca_coll_monitoring_neighbor_allgather","mca_coll_monitoring_neighbor_allgatherv","mca_coll_monitoring_neighbor_alltoall","mca_coll_monitoring_neighbor_alltoallv","mca_coll_monitoring_neighbor_alltoallw","mca_coll_monitoring_reduce","mca_coll_monitoring_reduce_scatter","mca_coll_monitoring_reduce_scatter_block","mca_coll_monitoring_scan","mca_coll_monitoring_scatter","mca_coll_monitoring_scatterv","mca_coll_self_allgather_intra","mca_coll_self_allgatherv_intra","mca_coll_self_allreduce_intra","mca_coll_self_alltoall_intra","mca_coll_self_alltoallv_intra","mca_coll_self_alltoallw_intra","mca_coll_self_barrier_intra","mca_coll_self_bcast_intra","mca_coll_self_comm_query","mca_coll_self_exscan_intra","mca_coll_self_gather_intra","mca_coll_self_gatherv_intra","mca_coll_self_init_query","mca_coll_self_module_enable","mca_coll_self_reduce_intra","mca_coll_self_reduce_scatter_intra","mca_coll_self_scan_intra","mca_coll_self_scatter_intra","mca_coll_self_scatterv_intra","mca_coll_sm_allreduce_intra","mca_coll_sm_barrier_intra","mca_coll_sm_bcast_intra","mca_coll_sm_comm_query","mca_coll_sm_init_query","mca_coll_sm_module_construct","mca_coll_sm_module_destruct","mca_coll_sm_module_disable","mca_coll_sm_reduce_intra","mca_coll_sync_bcast","mca_coll_sync_comm_query","mca_coll_sync_exscan","mca_coll_sync_gather","mca_coll_sync_gatherv","mca_coll_sync_init_query","mca_coll_sync_module_construct","mca_coll_sync_module_destruct","mca_coll_sync_module_enable","mca_coll_sync_reduce","mca_coll_sync_reduce_scatter","mca_coll_sync_scan","mca_coll_sync_scatter","mca_coll_sync_scatterv","mca_coll_task_constructor","mca_coll_task_destructor","mca_coll_tuned_module_construct","mca_comm_cid_context_alloc","mca_comm_cid_context_construct","mca_comm_cid_context_destruct","mca_common_monitoring_add_procs","mca_common_monitoring_coll_a2a","mca_common_monitoring_coll_a2o","mca_common_monitoring_coll_cache_name","mca_common_monitoring_coll_cond_release","mca_common_monitoring_coll_finalize","mca_common_monitoring_coll_flush","mca_common_monitoring_coll_flush_all","mca_common_monitoring_coll_get_a2a_count","mca_common_monitoring_coll_get_a2a_size","mca_common_monitoring_coll_get_a2o_count","mca_common_monitoring_coll_get_a2o_size","mca_common_monitoring_coll_get_o2a_count","mca_common_monitoring_coll_get_o2a_size","mca_common_monitoring_coll_messages_notify","mca_common_monitoring_coll_new","mca_common_monitoring_coll_o2a","mca_common_monitoring_coll_release","mca_common_monitoring_coll_reset","mca_common_monitoring_comm_size_notify","mca_common_monitoring_finalize","mca_common_monitoring_flush.part.0","mca_common_monitoring_get_coll_count","mca_common_monitoring_get_coll_size","mca_common_monitoring_get_flush","mca_common_monitoring_get_osc_recv_count","mca_common_monitoring_get_osc_recv_size","mca_common_monitoring_get_osc_sent_count","mca_common_monitoring_get_osc_sent_size","mca_common_monitoring_get_pml_count","mca_common_monitoring_get_pml_size","mca_common_monitoring_init","mca_common_monitoring_notify_flush","mca_common_monitoring_output","mca_common_monitoring_record_coll","mca_common_monitoring_record_osc","mca_common_monitoring_record_pml","mca_common_monitoring_register","mca_common_monitoring_set_flush","mca_common_ompio_alloc_buf","mca_common_ompio_base_file_read_all","mca_common_ompio_buffer_alloc_fini","mca_common_ompio_buffer_alloc_init","mca_common_ompio_buffer_alloc_seg","mca_common_ompio_buffer_free_seg","mca_common_ompio_build_io_array","mca_common_ompio_cart_based_grouping","mca_common_ompio_check_gpu_buf","mca_common_ompio_create_groups","mca_common_ompio_create_incomplete_file_handle","mca_common_ompio_decode_datatype","mca_common_ompio_empty_print_queue","mca_common_ompio_file_close","mca_common_ompio_file_delete","mca_common_ompio_file_get_position","mca_common_ompio_file_get_size","mca_common_ompio_file_iread","mca_common_ompio_file_iread_all","mca_common_ompio_file_iread_at","mca_common_ompio_file_iread_at_all","mca_common_ompio_file_iwrite","mca_common_ompio_file_iwrite_all","mca_common_ompio_file_iwrite_at","mca_common_ompio_file_iwrite_at_all","mca_common_ompio_file_open","mca_common_ompio_file_read","mca_common_ompio_file_read_all","mca_common_ompio_file_read_all.part.0","mca_common_ompio_file_read_at","mca_common_ompio_file_read_at_all","mca_common_ompio_file_read_pipelined","mca_common_ompio_file_write","mca_common_ompio_file_write_all","mca_common_ompio_file_write_all.part.0","mca_common_ompio_file_write_at","mca_common_ompio_file_write_at_all","mca_common_ompio_file_write_pipelined","mca_common_ompio_finalize_initial_grouping","mca_common_ompio_finalize_split","mca_common_ompio_forced_grouping","mca_common_ompio_full_print_queue","mca_common_ompio_fview_based_grouping","mca_common_ompio_initialize_print_queue","mca_common_ompio_merge_groups","mca_common_ompio_merge_initial_groups","mca_common_ompio_prepare_to_group","mca_common_ompio_print_time_info","mca_common_ompio_progress","mca_common_ompio_register_print_entry","mca_common_ompio_register_progress","mca_common_ompio_release_buf","mca_common_ompio_request_alloc","mca_common_ompio_request_cancel","mca_common_ompio_request_construct","mca_common_ompio_request_destruct","mca_common_ompio_request_fini","mca_common_ompio_request_free","mca_common_ompio_request_init","mca_common_ompio_retain_initial_groups","mca_common_ompio_set_aggregator_props","mca_common_ompio_set_callbacks","mca_common_ompio_set_explicit_offset","mca_common_ompio_set_file_defaults","mca_common_ompio_set_view","mca_common_ompio_simple_grouping","mca_common_ompio_split_a_group","mca_common_ompio_split_initial_groups","mca_common_ompio_unregister_print_entry","mca_fbtl_base_check_atomicity","mca_fbtl_base_file_select","mca_fbtl_base_file_unselect","mca_fbtl_base_find_available","mca_fbtl_posix_check_atomicity","mca_fbtl_posix_component_file_query","mca_fbtl_posix_component_file_unquery","mca_fbtl_posix_component_init_query","mca_fbtl_posix_ipreadv","mca_fbtl_posix_ipwritev","mca_fbtl_posix_lock","mca_fbtl_posix_module_finalize","mca_fbtl_posix_module_init","mca_fbtl_posix_preadv","mca_fbtl_posix_progress","mca_fbtl_posix_pwritev","mca_fbtl_posix_request_free","mca_fbtl_posix_unlock","mca_fcoll_base_component_lookup","mca_fcoll_base_file_select","mca_fcoll_base_file_unselect","mca_fcoll_base_find_available","mca_fcoll_base_query_table","mca_fcoll_dynamic_component_file_query","mca_fcoll_dynamic_component_file_unquery","mca_fcoll_dynamic_component_init_query","mca_fcoll_dynamic_file_read_all","mca_fcoll_dynamic_file_write_all","mca_fcoll_dynamic_gen2_break_file_view","mca_fcoll_dynamic_gen2_component_file_query","mca_fcoll_dynamic_gen2_component_file_unquery","mca_fcoll_dynamic_gen2_component_init_query","mca_fcoll_dynamic_gen2_file_read_all","mca_fcoll_dynamic_gen2_file_write_all","mca_fcoll_dynamic_gen2_get_configuration","mca_fcoll_dynamic_gen2_module_finalize","mca_fcoll_dynamic_gen2_module_init","mca_fcoll_dynamic_gen2_split_iov_array","mca_fcoll_dynamic_module_finalize","mca_fcoll_dynamic_module_init","mca_fcoll_individual_component_file_query","mca_fcoll_individual_component_file_unquery","mca_fcoll_individual_component_init_query","mca_fcoll_individual_file_read_all","mca_fcoll_individual_file_write_all","mca_fcoll_individual_module_finalize","mca_fcoll_individual_module_init","mca_fcoll_vulcan_break_file_view","mca_fcoll_vulcan_component_file_query","mca_fcoll_vulcan_component_file_unquery","mca_fcoll_vulcan_component_init_query","mca_fcoll_vulcan_file_read_all","mca_fcoll_vulcan_file_write_all","mca_fcoll_vulcan_get_configuration","mca_fcoll_vulcan_module_finalize","mca_fcoll_vulcan_module_init","mca_fcoll_vulcan_split_iov_array","mca_fs_base_file_close","mca_fs_base_file_delete","mca_fs_base_file_get_size","mca_fs_base_file_select","mca_fs_base_file_set_size","mca_fs_base_file_sync","mca_fs_base_file_unselect","mca_fs_base_find_available","mca_fs_base_get_file_amode","mca_fs_base_get_file_perm","mca_fs_base_get_fstype","mca_fs_base_get_mpi_err","mca_fs_base_get_parent_dir","mca_fs_base_get_real_filename.constprop.0","mca_fs_ufs_component_file_query","mca_fs_ufs_component_file_unquery","mca_fs_ufs_component_init_query","mca_fs_ufs_file_open","mca_fs_ufs_module_finalize","mca_fs_ufs_module_init","mca_io_base_delete","mca_io_base_delete.cold","mca_io_base_file_select","mca_io_base_file_select.cold","mca_io_base_file_select.localalias","mca_io_base_find_available","mca_io_base_open","mca_io_base_register_datarep","mca_io_ompio_file_close","mca_io_ompio_file_get_amode","mca_io_ompio_file_get_atomicity","mca_io_ompio_file_get_byte_offset","mca_io_ompio_file_get_position","mca_io_ompio_file_get_position_shared","mca_io_ompio_file_get_size","mca_io_ompio_file_get_type_extent","mca_io_ompio_file_get_view","mca_io_ompio_file_iread","mca_io_ompio_file_iread_all","mca_io_ompio_file_iread_at","mca_io_ompio_file_iread_at_all","mca_io_ompio_file_iread_shared","mca_io_ompio_file_iwrite","mca_io_ompio_file_iwrite_all","mca_io_ompio_file_iwrite_at","mca_io_ompio_file_iwrite_at_all","mca_io_ompio_file_iwrite_shared","mca_io_ompio_file_open","mca_io_ompio_file_preallocate","mca_io_ompio_file_read","mca_io_ompio_file_read_all","mca_io_ompio_file_read_all_begin","mca_io_ompio_file_read_all_end","mca_io_ompio_file_read_at","mca_io_ompio_file_read_at_all","mca_io_ompio_file_read_at_all_begin","mca_io_ompio_file_read_at_all_end","mca_io_ompio_file_read_ordered","mca_io_ompio_file_read_ordered_begin","mca_io_ompio_file_read_ordered_end","mca_io_ompio_file_read_shared","mca_io_ompio_file_seek","mca_io_ompio_file_seek_shared","mca_io_ompio_file_set_atomicity","mca_io_ompio_file_set_size","mca_io_ompio_file_set_view","mca_io_ompio_file_sync","mca_io_ompio_file_write","mca_io_ompio_file_write_all","mca_io_ompio_file_write_all_begin","mca_io_ompio_file_write_all_end","mca_io_ompio_file_write_at","mca_io_ompio_file_write_at_all","mca_io_ompio_file_write_at_all_begin","mca_io_ompio_file_write_at_all_end","mca_io_ompio_file_write_ordered","mca_io_ompio_file_write_ordered_begin","mca_io_ompio_file_write_ordered_end","mca_io_ompio_file_write_shared","mca_io_ompio_get_mca_parameter_value","mca_monitoring_coll_construct","mca_monitoring_coll_destruct","mca_osc_monitoring_component_finish","mca_osc_monitoring_component_init","mca_osc_monitoring_component_query","mca_osc_monitoring_component_register","mca_osc_monitoring_component_select","mca_part_base_close","mca_part_base_finalize","mca_part_base_open","mca_part_base_precv_request_construct","mca_part_base_prequest_construct","mca_part_base_progress","mca_part_base_psend_request_construct","mca_part_base_register","mca_part_base_select","mca_part_base_select.cold","mca_part_persist_component_close","mca_part_persist_component_fini","mca_part_persist_component_init","mca_part_persist_component_open","mca_part_persist_component_register","mca_part_persist_free:0x1ee0d0","mca_part_persist_free:0x1ee3e0","mca_part_persist_parrived","mca_part_persist_pready","mca_part_persist_precv_init","mca_part_persist_precv_request_construct","mca_part_persist_progress","mca_part_persist_psend_init","mca_part_persist_psend_request_construct","mca_part_persist_request_construct","mca_part_persist_request_destruct","mca_part_persist_start:0x1ed610","mca_part_persist_start:0x1edf30","mca_part_persist_start:0x1ee240","mca_pml_base_bsend_attach","mca_pml_base_bsend_detach","mca_pml_base_bsend_fini","mca_pml_base_bsend_init","mca_pml_base_bsend_request_alloc","mca_pml_base_bsend_request_alloc_buf","mca_pml_base_bsend_request_fini","mca_pml_base_bsend_request_free","mca_pml_base_bsend_request_start","mca_pml_base_close","mca_pml_base_finalize","mca_pml_base_open","mca_pml_base_pml_check_selected","mca_pml_base_pml_check_selected_impl","mca_pml_base_pml_selected","mca_pml_base_progress","mca_pml_base_recv_request_construct","mca_pml_base_recv_request_destruct","mca_pml_base_register","mca_pml_base_request_construct","mca_pml_base_revoke_comm","mca_pml_base_select","mca_pml_base_select.cold","mca_pml_base_send_request_construct","mca_pml_base_send_request_destruct","mca_pml_bsend_alloc_segment","mca_pml_cm_add_comm","mca_pml_cm_add_procs","mca_pml_cm_cancel","mca_pml_cm_component_close","mca_pml_cm_component_fini","mca_pml_cm_component_init","mca_pml_cm_component_open","mca_pml_cm_component_register","mca_pml_cm_del_comm","mca_pml_cm_del_procs","mca_pml_cm_dump","mca_pml_cm_enable","mca_pml_cm_improbe","mca_pml_cm_imrecv","mca_pml_cm_iprobe","mca_pml_cm_irecv","mca_pml_cm_irecv_init","mca_pml_cm_isend","mca_pml_cm_isend_init","mca_pml_cm_mprobe","mca_pml_cm_mrecv","mca_pml_cm_probe","mca_pml_cm_recv","mca_pml_cm_recv_fast_completion","mca_pml_cm_recv_request_completion","mca_pml_cm_recv_request_construct","mca_pml_cm_recv_request_free","mca_pml_cm_request_construct","mca_pml_cm_request_destruct","mca_pml_cm_send","mca_pml_cm_send_request_completion","mca_pml_cm_send_request_construct","mca_pml_cm_send_request_free","mca_pml_cm_start","mca_pml_monitoring_add_comm","mca_pml_monitoring_add_procs","mca_pml_monitoring_component_finish","mca_pml_monitoring_component_init","mca_pml_monitoring_component_open","mca_pml_monitoring_del_comm","mca_pml_monitoring_del_procs","mca_pml_monitoring_dump","mca_pml_monitoring_enable","mca_pml_monitoring_improbe","mca_pml_monitoring_imrecv","mca_pml_monitoring_iprobe","mca_pml_monitoring_irecv","mca_pml_monitoring_irecv_init","mca_pml_monitoring_isend","mca_pml_monitoring_isend_init","mca_pml_monitoring_mprobe","mca_pml_monitoring_mrecv","mca_pml_monitoring_probe","mca_pml_monitoring_recv","mca_pml_monitoring_revoke_comm","mca_pml_monitoring_send","mca_pml_monitoring_start","mca_pml_ob1_accelerator_add_ipc_support","mca_pml_ob1_accelerator_fini","mca_pml_ob1_accelerator_init","mca_pml_ob1_accelerator_need_buffers","mca_pml_ob1_add_comm","mca_pml_ob1_add_procs","mca_pml_ob1_com_btl_comp","mca_pml_ob1_comm_construct","mca_pml_ob1_comm_destruct","mca_pml_ob1_comm_init_size","mca_pml_ob1_comm_proc_construct","mca_pml_ob1_comm_proc_destruct","mca_pml_ob1_comm_size_notify","mca_pml_ob1_component_close","mca_pml_ob1_component_fini","mca_pml_ob1_component_init","mca_pml_ob1_component_open","mca_pml_ob1_component_register","mca_pml_ob1_control_completion","mca_pml_ob1_copy_frag_completion","mca_pml_ob1_del_comm","mca_pml_ob1_del_procs","mca_pml_ob1_dump","mca_pml_ob1_dump_cant_match","mca_pml_ob1_dump_frag_list","mca_pml_ob1_dump_hdr","mca_pml_ob1_enable","mca_pml_ob1_enable_progress","mca_pml_ob1_error_handler","mca_pml_ob1_frag_completion","mca_pml_ob1_get_dtoh_stream","mca_pml_ob1_get_htod_stream","mca_pml_ob1_get_posted_recvq_size","mca_pml_ob1_get_unex_msgq_size","mca_pml_ob1_handle_cid","mca_pml_ob1_improbe","mca_pml_ob1_imrecv","mca_pml_ob1_imrecv.cold","mca_pml_ob1_iprobe","mca_pml_ob1_irecv","mca_pml_ob1_irecv_init","mca_pml_ob1_isend","mca_pml_ob1_isend_init","mca_pml_ob1_match_completion_free","mca_pml_ob1_merge_cant_match","mca_pml_ob1_mprobe","mca_pml_ob1_mrecv","mca_pml_ob1_mrecv.cold","mca_pml_ob1_peer_create","mca_pml_ob1_probe","mca_pml_ob1_process_pending_packets","mca_pml_ob1_process_pending_rdma","mca_pml_ob1_progress","mca_pml_ob1_progress_one_htod_event","mca_pml_ob1_put_completion:0x2057a0","mca_pml_ob1_put_completion:0x20bf00","mca_pml_ob1_rdma_btls","mca_pml_ob1_rdma_btls.cold","mca_pml_ob1_rdma_cuda_btls","mca_pml_ob1_rdma_cuda_btls.cold","mca_pml_ob1_rdma_frag_constructor","mca_pml_ob1_rdma_pipeline_btls","mca_pml_ob1_rdma_pipeline_btls.cold","mca_pml_ob1_rdma_pipeline_btls_count","mca_pml_ob1_rdma_pipeline_btls_count.cold","mca_pml_ob1_record_htod_event","mca_pml_ob1_recv","mca_pml_ob1_recv_ctl_completion","mca_pml_ob1_recv_frag_callback_ack","mca_pml_ob1_recv_frag_callback_cid","mca_pml_ob1_recv_frag_callback_fin","mca_pml_ob1_recv_frag_callback_frag","mca_pml_ob1_recv_frag_callback_match","mca_pml_ob1_recv_frag_callback_put","mca_pml_ob1_recv_frag_callback_rget","mca_pml_ob1_recv_frag_callback_rndv","mca_pml_ob1_recv_frag_match.isra.0","mca_pml_ob1_recv_frag_match_proc.isra.0","mca_pml_ob1_recv_req_start","mca_pml_ob1_recv_request_ack.isra.0","mca_pml_ob1_recv_request_ack_send_btl","mca_pml_ob1_recv_request_cancel","mca_pml_ob1_recv_request_construct","mca_pml_ob1_recv_request_destruct","mca_pml_ob1_recv_request_frag_copy_finished","mca_pml_ob1_recv_request_frag_copy_start","mca_pml_ob1_recv_request_free","mca_pml_ob1_recv_request_get_frag","mca_pml_ob1_recv_request_get_frag_failed","mca_pml_ob1_recv_request_matched_probe","mca_pml_ob1_recv_request_process_pending","mca_pml_ob1_recv_request_progress_frag","mca_pml_ob1_recv_request_progress_match","mca_pml_ob1_recv_request_progress_rget","mca_pml_ob1_recv_request_progress_rget.cold","mca_pml_ob1_recv_request_progress_rndv","mca_pml_ob1_recv_request_put_frag","mca_pml_ob1_recv_request_schedule_once","mca_pml_ob1_revoke_comm","mca_pml_ob1_revoke_comm.localalias","mca_pml_ob1_rget_completion:0x204ec0","mca_pml_ob1_rget_completion:0x209c10","mca_pml_ob1_rndv_completion","mca_pml_ob1_seg_alloc","mca_pml_ob1_seg_free","mca_pml_ob1_send","mca_pml_ob1_send_cid","mca_pml_ob1_send_control_any","mca_pml_ob1_send_control_btl","mca_pml_ob1_send_ctl_completion","mca_pml_ob1_send_fin","mca_pml_ob1_send_inline.constprop.0","mca_pml_ob1_send_request_cancel","mca_pml_ob1_send_request_construct","mca_pml_ob1_send_request_copy_in_out","mca_pml_ob1_send_request_destruct","mca_pml_ob1_send_request_free","mca_pml_ob1_send_request_process_pending","mca_pml_ob1_send_request_put","mca_pml_ob1_send_request_put_frag","mca_pml_ob1_send_request_put_frag_failed","mca_pml_ob1_send_request_schedule_once","mca_pml_ob1_send_request_start_accelerator","mca_pml_ob1_send_request_start_buffered","mca_pml_ob1_send_request_start_copy","mca_pml_ob1_send_request_start_prepare","mca_pml_ob1_send_request_start_rdma","mca_pml_ob1_send_request_start_rndv","mca_pml_ob1_send_request_start_seq.constprop.0","mca_pml_ob1_set_allow_overtake","mca_pml_ob1_start","mca_pml_v_component_close","mca_pml_v_component_finalize","mca_pml_v_component_init","mca_pml_v_component_open","mca_pml_v_component_parasite_close","mca_pml_v_component_parasite_finalize","mca_pml_v_component_register","mca_pml_v_enable","mca_sharedfp_base_close","mca_sharedfp_base_file_select","mca_sharedfp_base_file_unselect","mca_sharedfp_base_find_available","mca_sharedfp_base_open","mca_sharedfp_individual_assign_globaloffset","mca_sharedfp_individual_collaborate_data","mca_sharedfp_individual_component_file_query","mca_sharedfp_individual_component_file_unquery","mca_sharedfp_individual_component_init_query","mca_sharedfp_individual_create_buff","mca_sharedfp_individual_file_close","mca_sharedfp_individual_file_open","mca_sharedfp_individual_get_position","mca_sharedfp_individual_get_timestamps_and_reclengths","mca_sharedfp_individual_getoffset","mca_sharedfp_individual_gettime","mca_sharedfp_individual_insert_headnode","mca_sharedfp_individual_insert_metadata","mca_sharedfp_individual_iread","mca_sharedfp_individual_iwrite","mca_sharedfp_individual_module_finalize","mca_sharedfp_individual_module_init","mca_sharedfp_individual_read","mca_sharedfp_individual_read_ordered","mca_sharedfp_individual_read_ordered_begin","mca_sharedfp_individual_read_ordered_end","mca_sharedfp_individual_seek","mca_sharedfp_individual_sort_timestamps","mca_sharedfp_individual_write","mca_sharedfp_individual_write_metadata_file","mca_sharedfp_individual_write_ordered","mca_sharedfp_individual_write_ordered_begin","mca_sharedfp_individual_write_ordered_end","mca_sharedfp_lockedfile_component_file_query","mca_sharedfp_lockedfile_component_file_unquery","mca_sharedfp_lockedfile_component_init_query","mca_sharedfp_lockedfile_file_close","mca_sharedfp_lockedfile_file_open","mca_sharedfp_lockedfile_get_position","mca_sharedfp_lockedfile_iread","mca_sharedfp_lockedfile_iwrite","mca_sharedfp_lockedfile_module_finalize","mca_sharedfp_lockedfile_module_init","mca_sharedfp_lockedfile_read","mca_sharedfp_lockedfile_read_ordered","mca_sharedfp_lockedfile_read_ordered.cold","mca_sharedfp_lockedfile_read_ordered_begin","mca_sharedfp_lockedfile_read_ordered_begin.cold","mca_sharedfp_lockedfile_read_ordered_end","mca_sharedfp_lockedfile_request_position","mca_sharedfp_lockedfile_seek","mca_sharedfp_lockedfile_write","mca_sharedfp_lockedfile_write_ordered","mca_sharedfp_lockedfile_write_ordered.cold","mca_sharedfp_lockedfile_write_ordered_begin","mca_sharedfp_lockedfile_write_ordered_begin.cold","mca_sharedfp_lockedfile_write_ordered_end","mca_sharedfp_sm_component_file_query","mca_sharedfp_sm_component_file_unquery","mca_sharedfp_sm_component_init_query","mca_sharedfp_sm_file_close","mca_sharedfp_sm_file_open","mca_sharedfp_sm_get_position","mca_sharedfp_sm_iread","mca_sharedfp_sm_iwrite","mca_sharedfp_sm_module_finalize","mca_sharedfp_sm_module_init","mca_sharedfp_sm_read","mca_sharedfp_sm_read_ordered","mca_sharedfp_sm_read_ordered.cold","mca_sharedfp_sm_read_ordered_begin","mca_sharedfp_sm_read_ordered_begin.cold","mca_sharedfp_sm_read_ordered_end","mca_sharedfp_sm_request_position","mca_sharedfp_sm_seek","mca_sharedfp_sm_write","mca_sharedfp_sm_write_ordered","mca_sharedfp_sm_write_ordered.cold","mca_sharedfp_sm_write_ordered_begin","mca_sharedfp_sm_write_ordered_begin.cold","mca_sharedfp_sm_write_ordered_end","mca_topo_base_cart_coords","mca_topo_base_cart_create","mca_topo_base_cart_get","mca_topo_base_cart_map","mca_topo_base_cart_rank","mca_topo_base_cart_shift","mca_topo_base_cart_sub","mca_topo_base_cartdim_get","mca_topo_base_close","mca_topo_base_comm_cart_2_2_0_construct","mca_topo_base_comm_cart_2_2_0_destruct","mca_topo_base_comm_dist_graph_2_2_0_construct","mca_topo_base_comm_dist_graph_2_2_0_destruct","mca_topo_base_comm_graph_2_2_0_construct","mca_topo_base_comm_graph_2_2_0_destruct","mca_topo_base_comm_select","mca_topo_base_dist_graph_create","mca_topo_base_dist_graph_create_adjacent","mca_topo_base_dist_graph_distribute","mca_topo_base_dist_graph_neighbors","mca_topo_base_dist_graph_neighbors_count","mca_topo_base_find_available","mca_topo_base_graph_create","mca_topo_base_graph_get","mca_topo_base_graph_map","mca_topo_base_graph_neighbors","mca_topo_base_graph_neighbors_count","mca_topo_base_graphdims_get","mca_topo_base_group_select","mca_topo_base_lazy_init","mca_topo_base_module_construct","mca_topo_base_module_destruct","mca_topo_base_neighbor_count","mca_topo_base_open","mca_topo_basic_query","mca_topo_treematch_component_register","mca_topo_treematch_dist_graph_create","mca_topo_treematch_dist_graph_create.cold","mca_topo_treematch_query","mca_vprotocol_base_close","mca_vprotocol_base_open","mca_vprotocol_base_parasite","mca_vprotocol_base_request_parasite","mca_vprotocol_base_select","mca_vprotocol_base_set_include_list","mca_vprotocol_pessimist_add_comm","mca_vprotocol_pessimist_add_procs","mca_vprotocol_pessimist_component_close","mca_vprotocol_pessimist_component_finalize","mca_vprotocol_pessimist_component_init","mca_vprotocol_pessimist_component_open","mca_vprotocol_pessimist_component_register","mca_vprotocol_pessimist_del_comm","mca_vprotocol_pessimist_del_procs","mca_vprotocol_pessimist_dump","mca_vprotocol_pessimist_enable","mca_vprotocol_pessimist_iprobe","mca_vprotocol_pessimist_irecv","mca_vprotocol_pessimist_isend","mca_vprotocol_pessimist_isend.cold","mca_vprotocol_pessimist_probe","mca_vprotocol_pessimist_recv","mca_vprotocol_pessimist_request_free","mca_vprotocol_pessimist_send","mca_vprotocol_pessimist_send.cold","mca_vprotocol_pessimist_start","mca_vprotocol_pessimist_test","mca_vprotocol_pessimist_test_all","mca_vprotocol_pessimist_test_any","mca_vprotocol_pessimist_test_some","mca_vprotocol_pessimist_wait_any","mca_vprotocol_pessimist_wait_some","model_callback","module_constructor","module_constructor_1_0_0","mpi_aint_add_f90","mpi_aint_add_f90_","mpi_aint_add_f90__","mpi_aint_diff_f90","mpi_aint_diff_f90_","mpi_aint_diff_f90__","mpi_comm_dup_fn","mpi_comm_dup_fn_","mpi_comm_dup_fn__","mpi_comm_null_copy_fn","mpi_comm_null_copy_fn_","mpi_comm_null_copy_fn__","mpi_comm_null_delete_fn","mpi_comm_null_delete_fn_","mpi_comm_null_delete_fn__","mpi_conversion_fn_null","mpi_conversion_fn_null_","mpi_conversion_fn_null__","mpi_conversion_fn_null_f","mpi_dup_fn","mpi_dup_fn_","mpi_dup_fn__","mpi_null_copy_fn","mpi_null_copy_fn_","mpi_null_copy_fn__","mpi_null_delete_fn","mpi_null_delete_fn_","mpi_null_delete_fn__","mpi_type_dup_fn","mpi_type_dup_fn_","mpi_type_dup_fn__","mpi_type_null_copy_fn","mpi_type_null_copy_fn_","mpi_type_null_copy_fn__","mpi_type_null_delete_fn","mpi_type_null_delete_fn_","mpi_type_null_delete_fn__","mpi_win_dup_fn","mpi_win_dup_fn_","mpi_win_dup_fn__","mpi_win_null_copy_fn","mpi_win_null_copy_fn_","mpi_win_null_copy_fn__","mpi_win_null_delete_fn","mpi_win_null_delete_fn_","mpi_win_null_delete_fn__","mpi_wtick_f90","mpi_wtick_f90_","mpi_wtick_f90__","mpi_wtime_f90","mpi_wtime_f90_","mpi_wtime_f90__","msg_down","msg_down.cold","msg_up","mycompar","myfn","nb_leaves","nb_lines","nbc_allgather_init","nbc_allgather_inter_init","nbc_allgatherv_init","nbc_allgatherv_inter_init","nbc_allreduce_init","nbc_allreduce_init.cold","nbc_allreduce_inter_init","nbc_alltoall_init","nbc_alltoall_inter_init","nbc_alltoallv_init","nbc_alltoallv_inter_init","nbc_alltoallw_init","nbc_alltoallw_inter_init","nbc_barrier_init","nbc_barrier_inter_init","nbc_bcast_init","nbc_bcast_inter_init","nbc_exscan_init","nbc_gather_init","nbc_gather_inter_init","nbc_gatherv_init","nbc_gatherv_inter_init","nbc_neighbor_allgather_init","nbc_neighbor_allgatherv_init","nbc_neighbor_alltoall_init","nbc_neighbor_alltoallv_init","nbc_neighbor_alltoallw_init","nbc_reduce_init","nbc_reduce_inter_init","nbc_reduce_scatter_block_init","nbc_reduce_scatter_block_inter_init","nbc_reduce_scatter_init","nbc_reduce_scatter_inter_init","nbc_req_constructor","nbc_scan_init","nbc_scatter_init","nbc_scatter_inter_init","nbc_scatterv_init","nbc_scatterv_inter_init","nbc_schedule_constructor","nbc_schedule_destructor","next_bucket_elem","node_height","node_mheight","node_pathlen","ompi_attr_copy_all","ompi_attr_create_keyval","ompi_attr_create_keyval_aint","ompi_attr_create_keyval_fint","ompi_attr_create_keyval_impl","ompi_attr_create_predefined_keyvals","ompi_attr_delete","ompi_attr_delete_all","ompi_attr_delete_impl","ompi_attr_delete_predefined_keyvals_for_wm","ompi_attr_free_keyval","ompi_attr_free_predefined","ompi_attr_get_aint","ompi_attr_get_aint.cold","ompi_attr_get_c","ompi_attr_get_c.cold","ompi_attr_get_fint","ompi_attr_get_fint.cold","ompi_attr_get_ref","ompi_attr_put_ref","ompi_attr_set_aint","ompi_attr_set_c","ompi_attr_set_fint","ompi_attr_set_int","ompi_attr_set_predefined_keyvals_for_wm","ompi_attribute_keyval_construct","ompi_attribute_keyval_destruct","ompi_coll_adapt_bcast","ompi_coll_adapt_comm_query","ompi_coll_adapt_ibcast","ompi_coll_adapt_ibcast_fini","ompi_coll_adapt_ibcast_register","ompi_coll_adapt_init_query","ompi_coll_adapt_ireduce","ompi_coll_adapt_ireduce_fini","ompi_coll_adapt_ireduce_register","ompi_coll_adapt_module_cached_topology","ompi_coll_adapt_reduce","ompi_coll_adapt_request_free","ompi_coll_base_agree_noft","ompi_coll_base_allgather_intra_basic_linear","ompi_coll_base_allgather_intra_bruck","ompi_coll_base_allgather_intra_neighborexchange","ompi_coll_base_allgather_intra_recursivedoubling","ompi_coll_base_allgather_intra_ring","ompi_coll_base_allgather_intra_sparbit","ompi_coll_base_allgather_intra_two_procs","ompi_coll_base_allgatherv_intra_basic_default","ompi_coll_base_allgatherv_intra_bruck","ompi_coll_base_allgatherv_intra_neighborexchange","ompi_coll_base_allgatherv_intra_ring","ompi_coll_base_allgatherv_intra_sparbit","ompi_coll_base_allgatherv_intra_two_procs","ompi_coll_base_allreduce_intra_basic_linear","ompi_coll_base_allreduce_intra_nonoverlapping","ompi_coll_base_allreduce_intra_recursivedoubling","ompi_coll_base_allreduce_intra_redscat_allgather","ompi_coll_base_allreduce_intra_ring","ompi_coll_base_allreduce_intra_ring_segmented","ompi_coll_base_alltoall_intra_basic_linear","ompi_coll_base_alltoall_intra_bruck","ompi_coll_base_alltoall_intra_linear_sync","ompi_coll_base_alltoall_intra_pairwise","ompi_coll_base_alltoall_intra_two_procs","ompi_coll_base_alltoallv_intra_basic_linear","ompi_coll_base_alltoallv_intra_pairwise","ompi_coll_base_barrier_intra_basic_linear","ompi_coll_base_barrier_intra_bruck","ompi_coll_base_barrier_intra_doublering","ompi_coll_base_barrier_intra_recursivedoubling","ompi_coll_base_barrier_intra_tree","ompi_coll_base_barrier_intra_two_procs","ompi_coll_base_bcast_intra_basic_linear","ompi_coll_base_bcast_intra_binomial","ompi_coll_base_bcast_intra_bintree","ompi_coll_base_bcast_intra_chain","ompi_coll_base_bcast_intra_generic","ompi_coll_base_bcast_intra_knomial","ompi_coll_base_bcast_intra_pipeline","ompi_coll_base_bcast_intra_scatter_allgather","ompi_coll_base_bcast_intra_scatter_allgather_ring","ompi_coll_base_bcast_intra_split_bintree","ompi_coll_base_comm_get_reqs","ompi_coll_base_exscan_intra_linear","ompi_coll_base_exscan_intra_recursivedoubling","ompi_coll_base_file_getnext_long","ompi_coll_base_file_getnext_size_t","ompi_coll_base_file_getnext_string","ompi_coll_base_file_peek_next_char_is","ompi_coll_base_file_peek_next_char_isdigit","ompi_coll_base_gather_intra_basic_linear","ompi_coll_base_gather_intra_binomial","ompi_coll_base_gather_intra_linear_sync","ompi_coll_base_iagree_noft","ompi_coll_base_reduce_generic","ompi_coll_base_reduce_intra_basic_linear","ompi_coll_base_reduce_intra_binary","ompi_coll_base_reduce_intra_binomial","ompi_coll_base_reduce_intra_chain","ompi_coll_base_reduce_intra_in_order_binary","ompi_coll_base_reduce_intra_pipeline","ompi_coll_base_reduce_intra_redscat_gather","ompi_coll_base_reduce_scatter_block_basic_linear","ompi_coll_base_reduce_scatter_block_intra_butterfly","ompi_coll_base_reduce_scatter_block_intra_recursivedoubling","ompi_coll_base_reduce_scatter_block_intra_recursivehalving","ompi_coll_base_reduce_scatter_intra_basic_recursivehalving","ompi_coll_base_reduce_scatter_intra_butterfly","ompi_coll_base_reduce_scatter_intra_nonoverlapping","ompi_coll_base_reduce_scatter_intra_ring","ompi_coll_base_retain_datatypes","ompi_coll_base_retain_datatypes_w","ompi_coll_base_retain_op","ompi_coll_base_scan_intra_linear","ompi_coll_base_scan_intra_recursivedoubling","ompi_coll_base_scatter_intra_basic_linear","ompi_coll_base_scatter_intra_binomial","ompi_coll_base_scatter_intra_linear_nb","ompi_coll_base_sendrecv_actual","ompi_coll_base_topo_build_bmtree","ompi_coll_base_topo_build_chain","ompi_coll_base_topo_build_in_order_bintree","ompi_coll_base_topo_build_in_order_bmtree","ompi_coll_base_topo_build_kmtree","ompi_coll_base_topo_build_tree","ompi_coll_base_topo_destroy_tree","ompi_coll_base_topo_dump_tree","ompi_coll_han_reorder_gather","ompi_coll_han_request_free","ompi_coll_libnbc_allgather_init","ompi_coll_libnbc_allgather_inter_init","ompi_coll_libnbc_allgatherv_init","ompi_coll_libnbc_allgatherv_inter_init","ompi_coll_libnbc_allreduce_init","ompi_coll_libnbc_allreduce_inter_init","ompi_coll_libnbc_alltoall_init","ompi_coll_libnbc_alltoall_inter_init","ompi_coll_libnbc_alltoallv_init","ompi_coll_libnbc_alltoallv_inter_init","ompi_coll_libnbc_alltoallw_init","ompi_coll_libnbc_alltoallw_inter_init","ompi_coll_libnbc_barrier_init","ompi_coll_libnbc_barrier_inter_init","ompi_coll_libnbc_bcast_init","ompi_coll_libnbc_bcast_inter_init","ompi_coll_libnbc_dict_destroy","ompi_coll_libnbc_dict_itor_destroy","ompi_coll_libnbc_dict_long_cmp","ompi_coll_libnbc_dict_ptr_cmp","ompi_coll_libnbc_dict_str_cmp","ompi_coll_libnbc_dict_uint_cmp","ompi_coll_libnbc_dict_ulong_cmp","ompi_coll_libnbc_exscan_init","ompi_coll_libnbc_gather_init","ompi_coll_libnbc_gather_inter_init","ompi_coll_libnbc_gatherv_init","ompi_coll_libnbc_gatherv_inter_init","ompi_coll_libnbc_hb_dict_itor_new","ompi_coll_libnbc_hb_dict_new","ompi_coll_libnbc_hb_itor_cdata","ompi_coll_libnbc_hb_itor_data","ompi_coll_libnbc_hb_itor_destroy","ompi_coll_libnbc_hb_itor_first","ompi_coll_libnbc_hb_itor_invalidate","ompi_coll_libnbc_hb_itor_key","ompi_coll_libnbc_hb_itor_last","ompi_coll_libnbc_hb_itor_new","ompi_coll_libnbc_hb_itor_next","ompi_coll_libnbc_hb_itor_nextn","ompi_coll_libnbc_hb_itor_prev","ompi_coll_libnbc_hb_itor_prevn","ompi_coll_libnbc_hb_itor_set_data","ompi_coll_libnbc_hb_itor_valid","ompi_coll_libnbc_hb_tree_count","ompi_coll_libnbc_hb_tree_destroy","ompi_coll_libnbc_hb_tree_empty","ompi_coll_libnbc_hb_tree_height","ompi_coll_libnbc_hb_tree_insert","ompi_coll_libnbc_hb_tree_max","ompi_coll_libnbc_hb_tree_mheight","ompi_coll_libnbc_hb_tree_min","ompi_coll_libnbc_hb_tree_new","ompi_coll_libnbc_hb_tree_pathlen","ompi_coll_libnbc_hb_tree_probe","ompi_coll_libnbc_hb_tree_remove","ompi_coll_libnbc_hb_tree_search","ompi_coll_libnbc_hb_tree_walk","ompi_coll_libnbc_iallgather","ompi_coll_libnbc_iallgather_inter","ompi_coll_libnbc_iallgatherv","ompi_coll_libnbc_iallgatherv_inter","ompi_coll_libnbc_iallreduce","ompi_coll_libnbc_iallreduce_inter","ompi_coll_libnbc_ialltoall","ompi_coll_libnbc_ialltoall_inter","ompi_coll_libnbc_ialltoallv","ompi_coll_libnbc_ialltoallv_inter","ompi_coll_libnbc_ialltoallw","ompi_coll_libnbc_ialltoallw_inter","ompi_coll_libnbc_ibarrier","ompi_coll_libnbc_ibarrier_inter","ompi_coll_libnbc_ibcast","ompi_coll_libnbc_ibcast_inter","ompi_coll_libnbc_iexscan","ompi_coll_libnbc_igather","ompi_coll_libnbc_igather_inter","ompi_coll_libnbc_igatherv","ompi_coll_libnbc_igatherv_inter","ompi_coll_libnbc_ineighbor_allgather","ompi_coll_libnbc_ineighbor_allgatherv","ompi_coll_libnbc_ineighbor_alltoall","ompi_coll_libnbc_ineighbor_alltoallv","ompi_coll_libnbc_ineighbor_alltoallw","ompi_coll_libnbc_ireduce","ompi_coll_libnbc_ireduce_inter","ompi_coll_libnbc_ireduce_scatter","ompi_coll_libnbc_ireduce_scatter_block","ompi_coll_libnbc_ireduce_scatter_block_inter","ompi_coll_libnbc_ireduce_scatter_inter","ompi_coll_libnbc_iscan","ompi_coll_libnbc_iscatter","ompi_coll_libnbc_iscatter_inter","ompi_coll_libnbc_iscatterv","ompi_coll_libnbc_iscatterv_inter","ompi_coll_libnbc_neighbor_allgather_init","ompi_coll_libnbc_neighbor_allgatherv_init","ompi_coll_libnbc_neighbor_alltoall_init","ompi_coll_libnbc_neighbor_alltoallv_init","ompi_coll_libnbc_neighbor_alltoallw_init","ompi_coll_libnbc_progress","ompi_coll_libnbc_reduce_init","ompi_coll_libnbc_reduce_inter_init","ompi_coll_libnbc_reduce_scatter_block_init","ompi_coll_libnbc_reduce_scatter_block_inter_init","ompi_coll_libnbc_reduce_scatter_init","ompi_coll_libnbc_reduce_scatter_inter_init","ompi_coll_libnbc_scan_init","ompi_coll_libnbc_scatter_init","ompi_coll_libnbc_scatter_inter_init","ompi_coll_libnbc_scatterv_init","ompi_coll_libnbc_scatterv_inter_init","ompi_coll_sm_lazy_enable","ompi_coll_tuned_allgather_intra_check_forced_init","ompi_coll_tuned_allgather_intra_dec_dynamic","ompi_coll_tuned_allgather_intra_dec_fixed","ompi_coll_tuned_allgather_intra_do_this","ompi_coll_tuned_allgatherv_intra_check_forced_init","ompi_coll_tuned_allgatherv_intra_dec_dynamic","ompi_coll_tuned_allgatherv_intra_dec_fixed","ompi_coll_tuned_allgatherv_intra_do_this","ompi_coll_tuned_allreduce_intra_check_forced_init","ompi_coll_tuned_allreduce_intra_dec_dynamic","ompi_coll_tuned_allreduce_intra_dec_fixed","ompi_coll_tuned_allreduce_intra_do_this","ompi_coll_tuned_alltoall_intra_check_forced_init","ompi_coll_tuned_alltoall_intra_dec_dynamic","ompi_coll_tuned_alltoall_intra_dec_fixed","ompi_coll_tuned_alltoall_intra_do_this","ompi_coll_tuned_alltoallv_intra_check_forced_init","ompi_coll_tuned_alltoallv_intra_dec_dynamic","ompi_coll_tuned_alltoallv_intra_dec_fixed","ompi_coll_tuned_alltoallv_intra_do_this","ompi_coll_tuned_barrier_intra_check_forced_init","ompi_coll_tuned_barrier_intra_dec_dynamic","ompi_coll_tuned_barrier_intra_dec_fixed","ompi_coll_tuned_barrier_intra_do_this","ompi_coll_tuned_bcast_intra_check_forced_init","ompi_coll_tuned_bcast_intra_dec_dynamic","ompi_coll_tuned_bcast_intra_dec_fixed","ompi_coll_tuned_bcast_intra_do_this","ompi_coll_tuned_comm_query","ompi_coll_tuned_dump_alg_rule","ompi_coll_tuned_dump_all_rules","ompi_coll_tuned_dump_com_rule","ompi_coll_tuned_dump_msg_rule","ompi_coll_tuned_exscan_intra_check_forced_init","ompi_coll_tuned_exscan_intra_dec_dynamic","ompi_coll_tuned_exscan_intra_do_this","ompi_coll_tuned_forced_getvalues.isra.0","ompi_coll_tuned_free_all_rules","ompi_coll_tuned_free_coms_in_alg_rule","ompi_coll_tuned_free_msg_rules_in_com_rule","ompi_coll_tuned_gather_intra_check_forced_init","ompi_coll_tuned_gather_intra_dec_dynamic","ompi_coll_tuned_gather_intra_dec_fixed","ompi_coll_tuned_gather_intra_do_this","ompi_coll_tuned_get_com_rule_ptr","ompi_coll_tuned_get_target_method_params","ompi_coll_tuned_init_query","ompi_coll_tuned_mk_alg_rules","ompi_coll_tuned_mk_com_rules","ompi_coll_tuned_mk_msg_rules","ompi_coll_tuned_read_rules_config_file","ompi_coll_tuned_reduce_intra_check_forced_init","ompi_coll_tuned_reduce_intra_dec_dynamic","ompi_coll_tuned_reduce_intra_dec_fixed","ompi_coll_tuned_reduce_intra_do_this","ompi_coll_tuned_reduce_scatter_block_intra_check_forced_init","ompi_coll_tuned_reduce_scatter_block_intra_dec_dynamic","ompi_coll_tuned_reduce_scatter_block_intra_dec_fixed","ompi_coll_tuned_reduce_scatter_block_intra_do_this","ompi_coll_tuned_reduce_scatter_intra_check_forced_init","ompi_coll_tuned_reduce_scatter_intra_dec_dynamic","ompi_coll_tuned_reduce_scatter_intra_dec_fixed","ompi_coll_tuned_reduce_scatter_intra_do_this","ompi_coll_tuned_scan_intra_check_forced_init","ompi_coll_tuned_scan_intra_dec_dynamic","ompi_coll_tuned_scan_intra_do_this","ompi_coll_tuned_scatter_intra_check_forced_init","ompi_coll_tuned_scatter_intra_dec_dynamic","ompi_coll_tuned_scatter_intra_dec_fixed","ompi_coll_tuned_scatter_intra_do_this","ompi_comm_ack_failed_internal","ompi_comm_activate","ompi_comm_activate_nb","ompi_comm_activate_nb_complete","ompi_comm_allgather_emulate_intra","ompi_comm_allreduce_bridged_reduce_complete","ompi_comm_allreduce_bridged_xchng_complete","ompi_comm_allreduce_context_construct","ompi_comm_allreduce_context_destruct","ompi_comm_allreduce_getnextcid","ompi_comm_allreduce_group_broadcast","ompi_comm_allreduce_group_nb","ompi_comm_allreduce_group_recv_complete","ompi_comm_allreduce_inter_bcast","ompi_comm_allreduce_inter_leader_exchange","ompi_comm_allreduce_inter_leader_reduce","ompi_comm_allreduce_inter_nb","ompi_comm_allreduce_intra_bridge_nb","ompi_comm_allreduce_intra_nb","ompi_comm_allreduce_intra_pmix_nb","ompi_comm_allreduce_pmix_reduce_complete","ompi_comm_assert_subscribe","ompi_comm_checkcid","ompi_comm_cid_init","ompi_comm_compare","ompi_comm_construct","ompi_comm_create","ompi_comm_create_from_group","ompi_comm_create_group","ompi_comm_create_w_info","ompi_comm_destruct","ompi_comm_determine_first","ompi_comm_determine_first_auto","ompi_comm_dump","ompi_comm_dup","ompi_comm_dup_fn_f","ompi_comm_dup_with_info","ompi_comm_enable","ompi_comm_failure_ack_internal","ompi_comm_failure_detector_finalize","ompi_comm_failure_detector_init","ompi_comm_failure_detector_register_params","ompi_comm_failure_detector_start","ompi_comm_failure_get_acked_internal","ompi_comm_failure_propagate","ompi_comm_failure_propagator_finalize","ompi_comm_failure_propagator_init","ompi_comm_failure_propagator_local","ompi_comm_failure_propagator_register_params","ompi_comm_finalize","ompi_comm_free","ompi_comm_free.localalias","ompi_comm_ft_allreduce_agree_completion","ompi_comm_ft_allreduce_inter_nb","ompi_comm_ft_allreduce_intra_nb","ompi_comm_ft_allreduce_intra_pmix_nb","ompi_comm_get_failed_internal","ompi_comm_get_remote_cid_from_pmix","ompi_comm_get_rprocs","ompi_comm_group","ompi_comm_idup","ompi_comm_idup_getcid","ompi_comm_idup_with_info","ompi_comm_idup_with_info_activate","ompi_comm_idup_with_info_finish","ompi_comm_init","ompi_comm_init_mpi3","ompi_comm_is_proc_active","ompi_comm_ishrink_check_activate","ompi_comm_ishrink_check_agree","ompi_comm_ishrink_check_cid","ompi_comm_ishrink_check_setrank","ompi_comm_ishrink_internal","ompi_comm_nextcid","ompi_comm_nextcid_check_flag","ompi_comm_nextcid_nb","ompi_comm_null_copy_fn_f","ompi_comm_null_delete_fn_f","ompi_comm_print_cid","ompi_comm_rbcast_bmg","ompi_comm_rbcast_bml_recv_cb","ompi_comm_rbcast_finalize","ompi_comm_rbcast_init","ompi_comm_rbcast_n2","ompi_comm_rbcast_null","ompi_comm_rbcast_register_cb_type","ompi_comm_rbcast_register_params","ompi_comm_rbcast_send_msg","ompi_comm_rbcast_unregister_cb_type","ompi_comm_request_cancel","ompi_comm_request_construct","ompi_comm_request_destruct","ompi_comm_request_fini","ompi_comm_request_free","ompi_comm_request_get","ompi_comm_request_init","ompi_comm_request_progress","ompi_comm_request_progress.cold","ompi_comm_request_return","ompi_comm_request_schedule_append","ompi_comm_request_schedule_append_w_flags","ompi_comm_request_start","ompi_comm_revoke_finalize","ompi_comm_revoke_init","ompi_comm_revoke_internal","ompi_comm_revoke_local","ompi_comm_set","ompi_comm_set_active_poll","ompi_comm_set_allow_overtake","ompi_comm_set_exact_length","ompi_comm_set_lazy_barrier","ompi_comm_set_name","ompi_comm_set_nb","ompi_comm_set_no_any_source","ompi_comm_set_no_any_tag","ompi_comm_set_rank_failed","ompi_comm_shrink_internal","ompi_comm_split","ompi_comm_split_type","ompi_comm_split_type_core","ompi_comm_split_type_get_part.constprop.0","ompi_comm_split_verify","ompi_comm_split_with_info","ompi_comm_start_detector","ompi_datatype_copy_args","ompi_datatype_create","ompi_datatype_create_contiguous","ompi_datatype_create_darray","ompi_datatype_create_from_packed_description","ompi_datatype_create_hindexed","ompi_datatype_create_hindexed_block","ompi_datatype_create_hvector","ompi_datatype_create_indexed","ompi_datatype_create_indexed_block","ompi_datatype_create_struct","ompi_datatype_create_subarray","ompi_datatype_create_vector","ompi_datatype_default_convertors_fini","ompi_datatype_default_convertors_init","ompi_datatype_destroy","ompi_datatype_dump","ompi_datatype_duplicate","ompi_datatype_finalize","ompi_datatype_get_args","ompi_datatype_get_elements","ompi_datatype_get_pack_description","ompi_datatype_get_single_predefined_type_from_args","ompi_datatype_get_single_predefined_type_from_args.localalias","ompi_datatype_init","ompi_datatype_init.cold","ompi_datatype_match_size","ompi_datatype_match_size.cold","ompi_datatype_pack_description_length","ompi_datatype_pack_external","ompi_datatype_pack_external_size","ompi_datatype_print_args","ompi_datatype_release_args","ompi_datatype_set_args","ompi_datatype_sndrcv","ompi_datatype_unpack_external","ompi_debugger_setup_dlls","ompi_dpm_close_port","ompi_dpm_connect_accept","ompi_dpm_disconnect","ompi_dpm_dyn_finalize","ompi_dpm_dyn_init","ompi_dpm_init","ompi_dpm_mark_dyncomm","ompi_dpm_open_port","ompi_dpm_spawn","ompi_dup_fn_f","ompi_errcode_get_mpi_code.part.0","ompi_errcode_get_mpi_code.part.0.cold","ompi_errcode_intern_construct","ompi_errcode_intern_destruct","ompi_errcode_intern_finalize","ompi_errcode_intern_init","ompi_errhandler_callback","ompi_errhandler_construct","ompi_errhandler_create","ompi_errhandler_destruct","ompi_errhandler_event_cb","ompi_errhandler_finalize","ompi_errhandler_free","ompi_errhandler_init","ompi_errhandler_invoke","ompi_errhandler_proc_failed_internal","ompi_errhandler_registration_callback","ompi_errhandler_request_invoke","ompi_errhandler_request_invoke.cold","ompi_fcoll_base_coll_allgather_array","ompi_fcoll_base_coll_allgatherv_array","ompi_fcoll_base_coll_bcast_array","ompi_fcoll_base_coll_gather_array","ompi_fcoll_base_coll_gatherv_array","ompi_fcoll_base_coll_scatterv_array","ompi_fcoll_base_sort_iovec","ompi_file_close","ompi_file_finalize","ompi_file_init","ompi_file_open","ompi_fortran_argv_blank_f2c","ompi_fortran_argv_count_f2c","ompi_fortran_multiple_argvs_f2c","ompi_fortran_string_c2f","ompi_fortran_string_f2c","ompi_grequest_cancel","ompi_grequest_complete","ompi_grequest_construct","ompi_grequest_destruct","ompi_grequest_free","ompi_grequest_invoke_query","ompi_grequest_start","ompi_group_allocate","ompi_group_allocate_bmap","ompi_group_allocate_plist_w_procs","ompi_group_allocate_sporadic","ompi_group_allocate_strided","ompi_group_calc_bmap","ompi_group_calc_plist","ompi_group_calc_sporadic","ompi_group_calc_strided","ompi_group_compare","ompi_group_construct","ompi_group_count_local_peers","ompi_group_decrement_proc_count","ompi_group_dense_overlap","ompi_group_destruct","ompi_group_difference","ompi_group_div_ceil","ompi_group_dump","ompi_group_excl","ompi_group_finalize","ompi_group_flatten","ompi_group_free","ompi_group_from_pset","ompi_group_have_remote_peers","ompi_group_incl","ompi_group_incl_bmap","ompi_group_incl_plist","ompi_group_incl_spor","ompi_group_incl_strided","ompi_group_increment_proc_count","ompi_group_init","ompi_group_intersection","ompi_group_minloc","ompi_group_overlap","ompi_group_range_excl","ompi_group_range_incl","ompi_group_to_proc_name_array","ompi_group_translate_ranks","ompi_group_translate_ranks_bmap","ompi_group_translate_ranks_bmap_reverse","ompi_group_translate_ranks_sporadic","ompi_group_translate_ranks_sporadic_reverse","ompi_group_translate_ranks_strided","ompi_group_translate_ranks_strided_reverse","ompi_group_union","ompi_hook_base_close","ompi_hook_base_deregister_callbacks","ompi_hook_base_mpi_finalize_bottom","ompi_hook_base_mpi_finalize_top","ompi_hook_base_mpi_finalized_bottom","ompi_hook_base_mpi_finalized_top","ompi_hook_base_mpi_init_bottom","ompi_hook_base_mpi_init_error","ompi_hook_base_mpi_init_thread_bottom","ompi_hook_base_mpi_init_thread_top","ompi_hook_base_mpi_init_top","ompi_hook_base_mpi_init_top_post_opal","ompi_hook_base_mpi_initialized_bottom","ompi_hook_base_mpi_initialized_top","ompi_hook_base_open","ompi_hook_base_register","ompi_hook_base_register_callbacks","ompi_hook_comm_method_component_close","ompi_hook_comm_method_component_open","ompi_hook_comm_method_component_register","ompi_hook_comm_method_mpi_finalize_top","ompi_hook_comm_method_mpi_init_bottom","ompi_info_allocate","ompi_info_close_components","ompi_info_delete","ompi_info_dup","ompi_info_free","ompi_info_get","ompi_info_get_bool","ompi_info_get_nkeys","ompi_info_get_nthkey","ompi_info_get_value_enum","ompi_info_get_valuelen","ompi_info_register_framework_params","ompi_info_register_types","ompi_info_set","ompi_info_set_value_enum","ompi_info_show_ompi_version","ompi_init_preconnect_mpi","ompi_initial_errhandler_init","ompi_instance_construct","ompi_instance_destruct","ompi_instance_get_nth_pset","ompi_instance_get_num_psets","ompi_instance_get_num_psets_complete","ompi_instance_get_pset_info","ompi_instance_group_pmix_pset","ompi_instance_group_shared","ompi_instance_print_error.part.0","ompi_instance_refresh_pmix_psets","ompi_intercomm_create","ompi_intercomm_create_from_groups","ompi_interlib_declare","ompi_io_ompio_generate_current_file_view","ompi_io_ompio_generate_current_file_view.cold","ompi_io_ompio_sort_offlen","ompi_isendrecv_complete_func","ompi_isendrecv_context_constructor","ompi_isendrecv_context_destructor","ompi_isendrecv_replace_complete_func","ompi_message_constructor","ompi_message_finalize","ompi_message_init","ompi_mirror_perm","ompi_mpi_abort","ompi_mpi_dynamics_disable","ompi_mpi_dynamics_finalize","ompi_mpi_dynamics_is_enabled","ompi_mpi_errclass_add","ompi_mpi_errcode_add","ompi_mpi_errcode_construct","ompi_mpi_errcode_destruct","ompi_mpi_errcode_finalize","ompi_mpi_errcode_init","ompi_mpi_errnum_add_string","ompi_mpi_errors_abort_comm_handler","ompi_mpi_errors_abort_file_handler","ompi_mpi_errors_abort_win_handler","ompi_mpi_errors_are_fatal_comm_handler","ompi_mpi_errors_are_fatal_file_handler","ompi_mpi_errors_are_fatal_instance_handler","ompi_mpi_errors_are_fatal_win_handler","ompi_mpi_errors_return_comm_handler","ompi_mpi_errors_return_file_handler","ompi_mpi_errors_return_instance_handler","ompi_mpi_errors_return_win_handler","ompi_mpi_finalize","ompi_mpi_init","ompi_mpi_instance_cleanup_pml","ompi_mpi_instance_finalize","ompi_mpi_instance_finalize_common","ompi_mpi_instance_init","ompi_mpi_instance_init_common","ompi_mpi_instance_release","ompi_mpi_instance_retain","ompi_mpi_register_params","ompi_mpi_thread_level","ompi_mpiext_fini","ompi_mpiext_init","ompi_mpiinfo_finalize","ompi_mpiinfo_init","ompi_mpiinfo_init_env","ompi_mpit_lock","ompi_mpit_unlock","ompi_mtl_base_close","ompi_mtl_base_select","ompi_null_copy_fn_f","ompi_null_delete_fn_f","ompi_op_avx_2buff_add_double_avx","ompi_op_avx_2buff_add_double_avx2","ompi_op_avx_2buff_add_double_avx512","ompi_op_avx_2buff_add_float_avx","ompi_op_avx_2buff_add_float_avx2","ompi_op_avx_2buff_add_float_avx512","ompi_op_avx_2buff_band_int16_t_avx","ompi_op_avx_2buff_band_int16_t_avx2","ompi_op_avx_2buff_band_int16_t_avx512","ompi_op_avx_2buff_band_int32_t_avx","ompi_op_avx_2buff_band_int32_t_avx2","ompi_op_avx_2buff_band_int32_t_avx512","ompi_op_avx_2buff_band_int64_t_avx","ompi_op_avx_2buff_band_int64_t_avx2","ompi_op_avx_2buff_band_int64_t_avx512","ompi_op_avx_2buff_band_int8_t_avx","ompi_op_avx_2buff_band_int8_t_avx2","ompi_op_avx_2buff_band_int8_t_avx512","ompi_op_avx_2buff_band_uint16_t_avx","ompi_op_avx_2buff_band_uint16_t_avx2","ompi_op_avx_2buff_band_uint16_t_avx512","ompi_op_avx_2buff_band_uint32_t_avx","ompi_op_avx_2buff_band_uint32_t_avx2","ompi_op_avx_2buff_band_uint32_t_avx512","ompi_op_avx_2buff_band_uint64_t_avx","ompi_op_avx_2buff_band_uint64_t_avx2","ompi_op_avx_2buff_band_uint64_t_avx512","ompi_op_avx_2buff_band_uint8_t_avx","ompi_op_avx_2buff_band_uint8_t_avx2","ompi_op_avx_2buff_band_uint8_t_avx512","ompi_op_avx_2buff_bor_int16_t_avx","ompi_op_avx_2buff_bor_int16_t_avx2","ompi_op_avx_2buff_bor_int16_t_avx512","ompi_op_avx_2buff_bor_int32_t_avx","ompi_op_avx_2buff_bor_int32_t_avx2","ompi_op_avx_2buff_bor_int32_t_avx512","ompi_op_avx_2buff_bor_int64_t_avx","ompi_op_avx_2buff_bor_int64_t_avx2","ompi_op_avx_2buff_bor_int64_t_avx512","ompi_op_avx_2buff_bor_int8_t_avx","ompi_op_avx_2buff_bor_int8_t_avx2","ompi_op_avx_2buff_bor_int8_t_avx512","ompi_op_avx_2buff_bor_uint16_t_avx","ompi_op_avx_2buff_bor_uint16_t_avx2","ompi_op_avx_2buff_bor_uint16_t_avx512","ompi_op_avx_2buff_bor_uint32_t_avx","ompi_op_avx_2buff_bor_uint32_t_avx2","ompi_op_avx_2buff_bor_uint32_t_avx512","ompi_op_avx_2buff_bor_uint64_t_avx","ompi_op_avx_2buff_bor_uint64_t_avx2","ompi_op_avx_2buff_bor_uint64_t_avx512","ompi_op_avx_2buff_bor_uint8_t_avx","ompi_op_avx_2buff_bor_uint8_t_avx2","ompi_op_avx_2buff_bor_uint8_t_avx512","ompi_op_avx_2buff_bxor_int16_t_avx","ompi_op_avx_2buff_bxor_int16_t_avx2","ompi_op_avx_2buff_bxor_int16_t_avx512","ompi_op_avx_2buff_bxor_int32_t_avx","ompi_op_avx_2buff_bxor_int32_t_avx2","ompi_op_avx_2buff_bxor_int32_t_avx512","ompi_op_avx_2buff_bxor_int64_t_avx","ompi_op_avx_2buff_bxor_int64_t_avx2","ompi_op_avx_2buff_bxor_int64_t_avx512","ompi_op_avx_2buff_bxor_int8_t_avx","ompi_op_avx_2buff_bxor_int8_t_avx2","ompi_op_avx_2buff_bxor_int8_t_avx512","ompi_op_avx_2buff_bxor_uint16_t_avx","ompi_op_avx_2buff_bxor_uint16_t_avx2","ompi_op_avx_2buff_bxor_uint16_t_avx512","ompi_op_avx_2buff_bxor_uint32_t_avx","ompi_op_avx_2buff_bxor_uint32_t_avx2","ompi_op_avx_2buff_bxor_uint32_t_avx512","ompi_op_avx_2buff_bxor_uint64_t_avx","ompi_op_avx_2buff_bxor_uint64_t_avx2","ompi_op_avx_2buff_bxor_uint64_t_avx512","ompi_op_avx_2buff_bxor_uint8_t_avx","ompi_op_avx_2buff_bxor_uint8_t_avx2","ompi_op_avx_2buff_bxor_uint8_t_avx512","ompi_op_avx_2buff_max_double_avx","ompi_op_avx_2buff_max_double_avx2","ompi_op_avx_2buff_max_double_avx512","ompi_op_avx_2buff_max_float_avx","ompi_op_avx_2buff_max_float_avx2","ompi_op_avx_2buff_max_float_avx512","ompi_op_avx_2buff_max_int16_t_avx","ompi_op_avx_2buff_max_int16_t_avx2","ompi_op_avx_2buff_max_int16_t_avx512","ompi_op_avx_2buff_max_int32_t_avx","ompi_op_avx_2buff_max_int32_t_avx2","ompi_op_avx_2buff_max_int32_t_avx512","ompi_op_avx_2buff_max_int64_t_avx512","ompi_op_avx_2buff_max_int8_t_avx","ompi_op_avx_2buff_max_int8_t_avx2","ompi_op_avx_2buff_max_int8_t_avx512","ompi_op_avx_2buff_max_uint16_t_avx","ompi_op_avx_2buff_max_uint16_t_avx2","ompi_op_avx_2buff_max_uint16_t_avx512","ompi_op_avx_2buff_max_uint32_t_avx","ompi_op_avx_2buff_max_uint32_t_avx2","ompi_op_avx_2buff_max_uint32_t_avx512","ompi_op_avx_2buff_max_uint64_t_avx512","ompi_op_avx_2buff_max_uint8_t_avx","ompi_op_avx_2buff_max_uint8_t_avx2","ompi_op_avx_2buff_max_uint8_t_avx512","ompi_op_avx_2buff_min_double_avx","ompi_op_avx_2buff_min_double_avx2","ompi_op_avx_2buff_min_double_avx512","ompi_op_avx_2buff_min_float_avx","ompi_op_avx_2buff_min_float_avx2","ompi_op_avx_2buff_min_float_avx512","ompi_op_avx_2buff_min_int16_t_avx","ompi_op_avx_2buff_min_int16_t_avx2","ompi_op_avx_2buff_min_int16_t_avx512","ompi_op_avx_2buff_min_int32_t_avx","ompi_op_avx_2buff_min_int32_t_avx2","ompi_op_avx_2buff_min_int32_t_avx512","ompi_op_avx_2buff_min_int64_t_avx512","ompi_op_avx_2buff_min_int8_t_avx","ompi_op_avx_2buff_min_int8_t_avx2","ompi_op_avx_2buff_min_int8_t_avx512","ompi_op_avx_2buff_min_uint16_t_avx","ompi_op_avx_2buff_min_uint16_t_avx2","ompi_op_avx_2buff_min_uint16_t_avx512","ompi_op_avx_2buff_min_uint32_t_avx","ompi_op_avx_2buff_min_uint32_t_avx2","ompi_op_avx_2buff_min_uint32_t_avx512","ompi_op_avx_2buff_min_uint64_t_avx512","ompi_op_avx_2buff_min_uint8_t_avx","ompi_op_avx_2buff_min_uint8_t_avx2","ompi_op_avx_2buff_min_uint8_t_avx512","ompi_op_avx_2buff_mul_double_avx","ompi_op_avx_2buff_mul_double_avx2","ompi_op_avx_2buff_mul_double_avx512","ompi_op_avx_2buff_mul_float_avx","ompi_op_avx_2buff_mul_float_avx2","ompi_op_avx_2buff_mul_float_avx512","ompi_op_avx_2buff_prod_int16_t_avx","ompi_op_avx_2buff_prod_int16_t_avx2","ompi_op_avx_2buff_prod_int16_t_avx512","ompi_op_avx_2buff_prod_int32_t_avx","ompi_op_avx_2buff_prod_int32_t_avx2","ompi_op_avx_2buff_prod_int32_t_avx512","ompi_op_avx_2buff_prod_int64_t_avx512","ompi_op_avx_2buff_prod_int8_t_avx","ompi_op_avx_2buff_prod_int8_t_avx2","ompi_op_avx_2buff_prod_int8_t_avx512","ompi_op_avx_2buff_prod_uint16_t_avx","ompi_op_avx_2buff_prod_uint16_t_avx2","ompi_op_avx_2buff_prod_uint16_t_avx512","ompi_op_avx_2buff_prod_uint32_t_avx","ompi_op_avx_2buff_prod_uint32_t_avx2","ompi_op_avx_2buff_prod_uint32_t_avx512","ompi_op_avx_2buff_prod_uint64_t_avx512","ompi_op_avx_2buff_prod_uint8_t_avx","ompi_op_avx_2buff_prod_uint8_t_avx2","ompi_op_avx_2buff_prod_uint8_t_avx512","ompi_op_avx_2buff_sum_int16_t_avx","ompi_op_avx_2buff_sum_int16_t_avx2","ompi_op_avx_2buff_sum_int16_t_avx512","ompi_op_avx_2buff_sum_int32_t_avx","ompi_op_avx_2buff_sum_int32_t_avx2","ompi_op_avx_2buff_sum_int32_t_avx512","ompi_op_avx_2buff_sum_int64_t_avx","ompi_op_avx_2buff_sum_int64_t_avx2","ompi_op_avx_2buff_sum_int64_t_avx512","ompi_op_avx_2buff_sum_int8_t_avx","ompi_op_avx_2buff_sum_int8_t_avx2","ompi_op_avx_2buff_sum_int8_t_avx512","ompi_op_avx_2buff_sum_uint16_t_avx","ompi_op_avx_2buff_sum_uint16_t_avx2","ompi_op_avx_2buff_sum_uint16_t_avx512","ompi_op_avx_2buff_sum_uint32_t_avx","ompi_op_avx_2buff_sum_uint32_t_avx2","ompi_op_avx_2buff_sum_uint32_t_avx512","ompi_op_avx_2buff_sum_uint64_t_avx","ompi_op_avx_2buff_sum_uint64_t_avx2","ompi_op_avx_2buff_sum_uint64_t_avx512","ompi_op_avx_2buff_sum_uint8_t_avx","ompi_op_avx_2buff_sum_uint8_t_avx2","ompi_op_avx_2buff_sum_uint8_t_avx512","ompi_op_avx_3buff_add_double_avx","ompi_op_avx_3buff_add_double_avx2","ompi_op_avx_3buff_add_double_avx512","ompi_op_avx_3buff_add_float_avx","ompi_op_avx_3buff_add_float_avx2","ompi_op_avx_3buff_add_float_avx512","ompi_op_avx_3buff_and_int16_t_avx","ompi_op_avx_3buff_and_int16_t_avx2","ompi_op_avx_3buff_and_int16_t_avx512","ompi_op_avx_3buff_and_int32_t_avx","ompi_op_avx_3buff_and_int32_t_avx2","ompi_op_avx_3buff_and_int32_t_avx512","ompi_op_avx_3buff_and_int64_t_avx","ompi_op_avx_3buff_and_int64_t_avx2","ompi_op_avx_3buff_and_int64_t_avx512","ompi_op_avx_3buff_and_int8_t_avx","ompi_op_avx_3buff_and_int8_t_avx2","ompi_op_avx_3buff_and_int8_t_avx512","ompi_op_avx_3buff_and_uint16_t_avx","ompi_op_avx_3buff_and_uint16_t_avx2","ompi_op_avx_3buff_and_uint16_t_avx512","ompi_op_avx_3buff_and_uint32_t_avx","ompi_op_avx_3buff_and_uint32_t_avx2","ompi_op_avx_3buff_and_uint32_t_avx512","ompi_op_avx_3buff_and_uint64_t_avx","ompi_op_avx_3buff_and_uint64_t_avx2","ompi_op_avx_3buff_and_uint64_t_avx512","ompi_op_avx_3buff_and_uint8_t_avx","ompi_op_avx_3buff_and_uint8_t_avx2","ompi_op_avx_3buff_and_uint8_t_avx512","ompi_op_avx_3buff_max_double_avx","ompi_op_avx_3buff_max_double_avx2","ompi_op_avx_3buff_max_double_avx512","ompi_op_avx_3buff_max_float_avx","ompi_op_avx_3buff_max_float_avx2","ompi_op_avx_3buff_max_float_avx512","ompi_op_avx_3buff_max_int16_t_avx","ompi_op_avx_3buff_max_int16_t_avx2","ompi_op_avx_3buff_max_int16_t_avx512","ompi_op_avx_3buff_max_int32_t_avx","ompi_op_avx_3buff_max_int32_t_avx2","ompi_op_avx_3buff_max_int32_t_avx512","ompi_op_avx_3buff_max_int64_t_avx512","ompi_op_avx_3buff_max_int8_t_avx","ompi_op_avx_3buff_max_int8_t_avx2","ompi_op_avx_3buff_max_int8_t_avx512","ompi_op_avx_3buff_max_uint16_t_avx","ompi_op_avx_3buff_max_uint16_t_avx2","ompi_op_avx_3buff_max_uint16_t_avx512","ompi_op_avx_3buff_max_uint32_t_avx","ompi_op_avx_3buff_max_uint32_t_avx2","ompi_op_avx_3buff_max_uint32_t_avx512","ompi_op_avx_3buff_max_uint64_t_avx512","ompi_op_avx_3buff_max_uint8_t_avx","ompi_op_avx_3buff_max_uint8_t_avx2","ompi_op_avx_3buff_max_uint8_t_avx512","ompi_op_avx_3buff_min_double_avx","ompi_op_avx_3buff_min_double_avx2","ompi_op_avx_3buff_min_double_avx512","ompi_op_avx_3buff_min_float_avx","ompi_op_avx_3buff_min_float_avx2","ompi_op_avx_3buff_min_float_avx512","ompi_op_avx_3buff_min_int16_t_avx","ompi_op_avx_3buff_min_int16_t_avx2","ompi_op_avx_3buff_min_int16_t_avx512","ompi_op_avx_3buff_min_int32_t_avx","ompi_op_avx_3buff_min_int32_t_avx2","ompi_op_avx_3buff_min_int32_t_avx512","ompi_op_avx_3buff_min_int64_t_avx512","ompi_op_avx_3buff_min_int8_t_avx","ompi_op_avx_3buff_min_int8_t_avx2","ompi_op_avx_3buff_min_int8_t_avx512","ompi_op_avx_3buff_min_uint16_t_avx","ompi_op_avx_3buff_min_uint16_t_avx2","ompi_op_avx_3buff_min_uint16_t_avx512","ompi_op_avx_3buff_min_uint32_t_avx","ompi_op_avx_3buff_min_uint32_t_avx2","ompi_op_avx_3buff_min_uint32_t_avx512","ompi_op_avx_3buff_min_uint64_t_avx512","ompi_op_avx_3buff_min_uint8_t_avx","ompi_op_avx_3buff_min_uint8_t_avx2","ompi_op_avx_3buff_min_uint8_t_avx512","ompi_op_avx_3buff_mul_double_avx","ompi_op_avx_3buff_mul_double_avx2","ompi_op_avx_3buff_mul_double_avx512","ompi_op_avx_3buff_mul_float_avx","ompi_op_avx_3buff_mul_float_avx2","ompi_op_avx_3buff_mul_float_avx512","ompi_op_avx_3buff_or_int16_t_avx","ompi_op_avx_3buff_or_int16_t_avx2","ompi_op_avx_3buff_or_int16_t_avx512","ompi_op_avx_3buff_or_int32_t_avx","ompi_op_avx_3buff_or_int32_t_avx2","ompi_op_avx_3buff_or_int32_t_avx512","ompi_op_avx_3buff_or_int64_t_avx","ompi_op_avx_3buff_or_int64_t_avx2","ompi_op_avx_3buff_or_int64_t_avx512","ompi_op_avx_3buff_or_int8_t_avx","ompi_op_avx_3buff_or_int8_t_avx2","ompi_op_avx_3buff_or_int8_t_avx512","ompi_op_avx_3buff_or_uint16_t_avx","ompi_op_avx_3buff_or_uint16_t_avx2","ompi_op_avx_3buff_or_uint16_t_avx512","ompi_op_avx_3buff_or_uint32_t_avx","ompi_op_avx_3buff_or_uint32_t_avx2","ompi_op_avx_3buff_or_uint32_t_avx512","ompi_op_avx_3buff_or_uint64_t_avx","ompi_op_avx_3buff_or_uint64_t_avx2","ompi_op_avx_3buff_or_uint64_t_avx512","ompi_op_avx_3buff_or_uint8_t_avx","ompi_op_avx_3buff_or_uint8_t_avx2","ompi_op_avx_3buff_or_uint8_t_avx512","ompi_op_avx_3buff_prod_int16_t_avx","ompi_op_avx_3buff_prod_int16_t_avx2","ompi_op_avx_3buff_prod_int16_t_avx512","ompi_op_avx_3buff_prod_int32_t_avx","ompi_op_avx_3buff_prod_int32_t_avx2","ompi_op_avx_3buff_prod_int32_t_avx512","ompi_op_avx_3buff_prod_int64_t_avx512","ompi_op_avx_3buff_prod_int8_t_avx","ompi_op_avx_3buff_prod_int8_t_avx2","ompi_op_avx_3buff_prod_int8_t_avx512","ompi_op_avx_3buff_prod_uint16_t_avx","ompi_op_avx_3buff_prod_uint16_t_avx2","ompi_op_avx_3buff_prod_uint16_t_avx512","ompi_op_avx_3buff_prod_uint32_t_avx","ompi_op_avx_3buff_prod_uint32_t_avx2","ompi_op_avx_3buff_prod_uint32_t_avx512","ompi_op_avx_3buff_prod_uint64_t_avx512","ompi_op_avx_3buff_prod_uint8_t_avx","ompi_op_avx_3buff_prod_uint8_t_avx2","ompi_op_avx_3buff_prod_uint8_t_avx512","ompi_op_avx_3buff_sum_int16_t_avx","ompi_op_avx_3buff_sum_int16_t_avx2","ompi_op_avx_3buff_sum_int16_t_avx512","ompi_op_avx_3buff_sum_int32_t_avx","ompi_op_avx_3buff_sum_int32_t_avx2","ompi_op_avx_3buff_sum_int32_t_avx512","ompi_op_avx_3buff_sum_int64_t_avx","ompi_op_avx_3buff_sum_int64_t_avx2","ompi_op_avx_3buff_sum_int64_t_avx512","ompi_op_avx_3buff_sum_int8_t_avx","ompi_op_avx_3buff_sum_int8_t_avx2","ompi_op_avx_3buff_sum_int8_t_avx512","ompi_op_avx_3buff_sum_uint16_t_avx","ompi_op_avx_3buff_sum_uint16_t_avx2","ompi_op_avx_3buff_sum_uint16_t_avx512","ompi_op_avx_3buff_sum_uint32_t_avx","ompi_op_avx_3buff_sum_uint32_t_avx2","ompi_op_avx_3buff_sum_uint32_t_avx512","ompi_op_avx_3buff_sum_uint64_t_avx","ompi_op_avx_3buff_sum_uint64_t_avx2","ompi_op_avx_3buff_sum_uint64_t_avx512","ompi_op_avx_3buff_sum_uint8_t_avx","ompi_op_avx_3buff_sum_uint8_t_avx2","ompi_op_avx_3buff_sum_uint8_t_avx512","ompi_op_avx_3buff_xor_int16_t_avx","ompi_op_avx_3buff_xor_int16_t_avx2","ompi_op_avx_3buff_xor_int16_t_avx512","ompi_op_avx_3buff_xor_int32_t_avx","ompi_op_avx_3buff_xor_int32_t_avx2","ompi_op_avx_3buff_xor_int32_t_avx512","ompi_op_avx_3buff_xor_int64_t_avx","ompi_op_avx_3buff_xor_int64_t_avx2","ompi_op_avx_3buff_xor_int64_t_avx512","ompi_op_avx_3buff_xor_int8_t_avx","ompi_op_avx_3buff_xor_int8_t_avx2","ompi_op_avx_3buff_xor_int8_t_avx512","ompi_op_avx_3buff_xor_uint16_t_avx","ompi_op_avx_3buff_xor_uint16_t_avx2","ompi_op_avx_3buff_xor_uint16_t_avx512","ompi_op_avx_3buff_xor_uint32_t_avx","ompi_op_avx_3buff_xor_uint32_t_avx2","ompi_op_avx_3buff_xor_uint32_t_avx512","ompi_op_avx_3buff_xor_uint64_t_avx","ompi_op_avx_3buff_xor_uint64_t_avx2","ompi_op_avx_3buff_xor_uint64_t_avx512","ompi_op_avx_3buff_xor_uint8_t_avx","ompi_op_avx_3buff_xor_uint8_t_avx2","ompi_op_avx_3buff_xor_uint8_t_avx512","ompi_op_base_2buff_band_byte","ompi_op_base_2buff_band_fortran_integer","ompi_op_base_2buff_band_fortran_integer1","ompi_op_base_2buff_band_fortran_integer2","ompi_op_base_2buff_band_fortran_integer4","ompi_op_base_2buff_band_fortran_integer8","ompi_op_base_2buff_band_int16_t","ompi_op_base_2buff_band_int32_t","ompi_op_base_2buff_band_int64_t","ompi_op_base_2buff_band_int8_t","ompi_op_base_2buff_band_long","ompi_op_base_2buff_band_uint16_t","ompi_op_base_2buff_band_uint32_t","ompi_op_base_2buff_band_uint64_t","ompi_op_base_2buff_band_uint8_t","ompi_op_base_2buff_band_unsigned_long","ompi_op_base_2buff_bor_byte","ompi_op_base_2buff_bor_fortran_integer","ompi_op_base_2buff_bor_fortran_integer1","ompi_op_base_2buff_bor_fortran_integer2","ompi_op_base_2buff_bor_fortran_integer4","ompi_op_base_2buff_bor_fortran_integer8","ompi_op_base_2buff_bor_int16_t","ompi_op_base_2buff_bor_int32_t","ompi_op_base_2buff_bor_int64_t","ompi_op_base_2buff_bor_int8_t","ompi_op_base_2buff_bor_long","ompi_op_base_2buff_bor_uint16_t","ompi_op_base_2buff_bor_uint32_t","ompi_op_base_2buff_bor_uint64_t","ompi_op_base_2buff_bor_uint8_t","ompi_op_base_2buff_bor_unsigned_long","ompi_op_base_2buff_bxor_byte","ompi_op_base_2buff_bxor_fortran_integer","ompi_op_base_2buff_bxor_fortran_integer1","ompi_op_base_2buff_bxor_fortran_integer2","ompi_op_base_2buff_bxor_fortran_integer4","ompi_op_base_2buff_bxor_fortran_integer8","ompi_op_base_2buff_bxor_int16_t","ompi_op_base_2buff_bxor_int32_t","ompi_op_base_2buff_bxor_int64_t","ompi_op_base_2buff_bxor_int8_t","ompi_op_base_2buff_bxor_long","ompi_op_base_2buff_bxor_uint16_t","ompi_op_base_2buff_bxor_uint32_t","ompi_op_base_2buff_bxor_uint64_t","ompi_op_base_2buff_bxor_uint8_t","ompi_op_base_2buff_bxor_unsigned_long","ompi_op_base_2buff_land_bool","ompi_op_base_2buff_land_fortran_logical","ompi_op_base_2buff_land_int16_t","ompi_op_base_2buff_land_int32_t","ompi_op_base_2buff_land_int64_t","ompi_op_base_2buff_land_int8_t","ompi_op_base_2buff_land_long","ompi_op_base_2buff_land_uint16_t","ompi_op_base_2buff_land_uint32_t","ompi_op_base_2buff_land_uint64_t","ompi_op_base_2buff_land_uint8_t","ompi_op_base_2buff_land_unsigned_long","ompi_op_base_2buff_lor_bool","ompi_op_base_2buff_lor_fortran_logical","ompi_op_base_2buff_lor_int16_t","ompi_op_base_2buff_lor_int32_t","ompi_op_base_2buff_lor_int64_t","ompi_op_base_2buff_lor_int8_t","ompi_op_base_2buff_lor_long","ompi_op_base_2buff_lor_uint16_t","ompi_op_base_2buff_lor_uint32_t","ompi_op_base_2buff_lor_uint64_t","ompi_op_base_2buff_lor_uint8_t","ompi_op_base_2buff_lor_unsigned_long","ompi_op_base_2buff_lxor_bool","ompi_op_base_2buff_lxor_fortran_logical","ompi_op_base_2buff_lxor_int16_t","ompi_op_base_2buff_lxor_int32_t","ompi_op_base_2buff_lxor_int64_t","ompi_op_base_2buff_lxor_int8_t","ompi_op_base_2buff_lxor_long","ompi_op_base_2buff_lxor_uint16_t","ompi_op_base_2buff_lxor_uint32_t","ompi_op_base_2buff_lxor_uint64_t","ompi_op_base_2buff_lxor_uint8_t","ompi_op_base_2buff_lxor_unsigned_long","ompi_op_base_2buff_max_double","ompi_op_base_2buff_max_float","ompi_op_base_2buff_max_fortran_double_precision","ompi_op_base_2buff_max_fortran_integer","ompi_op_base_2buff_max_fortran_integer1","ompi_op_base_2buff_max_fortran_integer2","ompi_op_base_2buff_max_fortran_integer4","ompi_op_base_2buff_max_fortran_integer8","ompi_op_base_2buff_max_fortran_real","ompi_op_base_2buff_max_fortran_real16","ompi_op_base_2buff_max_fortran_real4","ompi_op_base_2buff_max_fortran_real8","ompi_op_base_2buff_max_int16_t","ompi_op_base_2buff_max_int32_t","ompi_op_base_2buff_max_int64_t","ompi_op_base_2buff_max_int8_t","ompi_op_base_2buff_max_long","ompi_op_base_2buff_max_long_double","ompi_op_base_2buff_max_uint16_t","ompi_op_base_2buff_max_uint32_t","ompi_op_base_2buff_max_uint64_t","ompi_op_base_2buff_max_uint8_t","ompi_op_base_2buff_max_unsigned_long","ompi_op_base_2buff_maxloc_2double_precision","ompi_op_base_2buff_maxloc_2int","ompi_op_base_2buff_maxloc_2integer","ompi_op_base_2buff_maxloc_2real","ompi_op_base_2buff_maxloc_double_int","ompi_op_base_2buff_maxloc_float_int","ompi_op_base_2buff_maxloc_long_double_int","ompi_op_base_2buff_maxloc_long_int","ompi_op_base_2buff_maxloc_short_int","ompi_op_base_2buff_min_double","ompi_op_base_2buff_min_float","ompi_op_base_2buff_min_fortran_double_precision","ompi_op_base_2buff_min_fortran_integer","ompi_op_base_2buff_min_fortran_integer1","ompi_op_base_2buff_min_fortran_integer2","ompi_op_base_2buff_min_fortran_integer4","ompi_op_base_2buff_min_fortran_integer8","ompi_op_base_2buff_min_fortran_real","ompi_op_base_2buff_min_fortran_real16","ompi_op_base_2buff_min_fortran_real4","ompi_op_base_2buff_min_fortran_real8","ompi_op_base_2buff_min_int16_t","ompi_op_base_2buff_min_int32_t","ompi_op_base_2buff_min_int64_t","ompi_op_base_2buff_min_int8_t","ompi_op_base_2buff_min_long","ompi_op_base_2buff_min_long_double","ompi_op_base_2buff_min_uint16_t","ompi_op_base_2buff_min_uint32_t","ompi_op_base_2buff_min_uint64_t","ompi_op_base_2buff_min_uint8_t","ompi_op_base_2buff_min_unsigned_long","ompi_op_base_2buff_minloc_2double_precision","ompi_op_base_2buff_minloc_2int","ompi_op_base_2buff_minloc_2integer","ompi_op_base_2buff_minloc_2real","ompi_op_base_2buff_minloc_double_int","ompi_op_base_2buff_minloc_float_int","ompi_op_base_2buff_minloc_long_double_int","ompi_op_base_2buff_minloc_long_int","ompi_op_base_2buff_minloc_short_int","ompi_op_base_2buff_prod_c_double_complex","ompi_op_base_2buff_prod_c_float_complex","ompi_op_base_2buff_prod_c_long_double_complex","ompi_op_base_2buff_prod_double","ompi_op_base_2buff_prod_float","ompi_op_base_2buff_prod_fortran_double_precision","ompi_op_base_2buff_prod_fortran_integer","ompi_op_base_2buff_prod_fortran_integer1","ompi_op_base_2buff_prod_fortran_integer2","ompi_op_base_2buff_prod_fortran_integer4","ompi_op_base_2buff_prod_fortran_integer8","ompi_op_base_2buff_prod_fortran_real","ompi_op_base_2buff_prod_fortran_real16","ompi_op_base_2buff_prod_fortran_real4","ompi_op_base_2buff_prod_fortran_real8","ompi_op_base_2buff_prod_int16_t","ompi_op_base_2buff_prod_int32_t","ompi_op_base_2buff_prod_int64_t","ompi_op_base_2buff_prod_int8_t","ompi_op_base_2buff_prod_long","ompi_op_base_2buff_prod_long_double","ompi_op_base_2buff_prod_uint16_t","ompi_op_base_2buff_prod_uint32_t","ompi_op_base_2buff_prod_uint64_t","ompi_op_base_2buff_prod_uint8_t","ompi_op_base_2buff_prod_unsigned_long","ompi_op_base_2buff_sum_c_double_complex","ompi_op_base_2buff_sum_c_float_complex","ompi_op_base_2buff_sum_c_long_double_complex","ompi_op_base_2buff_sum_double","ompi_op_base_2buff_sum_float","ompi_op_base_2buff_sum_fortran_double_precision","ompi_op_base_2buff_sum_fortran_integer","ompi_op_base_2buff_sum_fortran_integer1","ompi_op_base_2buff_sum_fortran_integer2","ompi_op_base_2buff_sum_fortran_integer4","ompi_op_base_2buff_sum_fortran_integer8","ompi_op_base_2buff_sum_fortran_real","ompi_op_base_2buff_sum_fortran_real16","ompi_op_base_2buff_sum_fortran_real4","ompi_op_base_2buff_sum_fortran_real8","ompi_op_base_2buff_sum_int16_t","ompi_op_base_2buff_sum_int32_t","ompi_op_base_2buff_sum_int64_t","ompi_op_base_2buff_sum_int8_t","ompi_op_base_2buff_sum_long","ompi_op_base_2buff_sum_long_double","ompi_op_base_2buff_sum_uint16_t","ompi_op_base_2buff_sum_uint32_t","ompi_op_base_2buff_sum_uint64_t","ompi_op_base_2buff_sum_uint8_t","ompi_op_base_2buff_sum_unsigned_long","ompi_op_base_3buff_band_byte","ompi_op_base_3buff_band_fortran_integer","ompi_op_base_3buff_band_fortran_integer1","ompi_op_base_3buff_band_fortran_integer2","ompi_op_base_3buff_band_fortran_integer4","ompi_op_base_3buff_band_fortran_integer8","ompi_op_base_3buff_band_int16_t","ompi_op_base_3buff_band_int32_t","ompi_op_base_3buff_band_int64_t","ompi_op_base_3buff_band_int8_t","ompi_op_base_3buff_band_long","ompi_op_base_3buff_band_uint16_t","ompi_op_base_3buff_band_uint32_t","ompi_op_base_3buff_band_uint64_t","ompi_op_base_3buff_band_uint8_t","ompi_op_base_3buff_band_unsigned_long","ompi_op_base_3buff_bor_byte","ompi_op_base_3buff_bor_fortran_integer","ompi_op_base_3buff_bor_fortran_integer1","ompi_op_base_3buff_bor_fortran_integer2","ompi_op_base_3buff_bor_fortran_integer4","ompi_op_base_3buff_bor_fortran_integer8","ompi_op_base_3buff_bor_int16_t","ompi_op_base_3buff_bor_int32_t","ompi_op_base_3buff_bor_int64_t","ompi_op_base_3buff_bor_int8_t","ompi_op_base_3buff_bor_long","ompi_op_base_3buff_bor_uint16_t","ompi_op_base_3buff_bor_uint32_t","ompi_op_base_3buff_bor_uint64_t","ompi_op_base_3buff_bor_uint8_t","ompi_op_base_3buff_bor_unsigned_long","ompi_op_base_3buff_bxor_byte","ompi_op_base_3buff_bxor_fortran_integer","ompi_op_base_3buff_bxor_fortran_integer1","ompi_op_base_3buff_bxor_fortran_integer2","ompi_op_base_3buff_bxor_fortran_integer4","ompi_op_base_3buff_bxor_fortran_integer8","ompi_op_base_3buff_bxor_int16_t","ompi_op_base_3buff_bxor_int32_t","ompi_op_base_3buff_bxor_int64_t","ompi_op_base_3buff_bxor_int8_t","ompi_op_base_3buff_bxor_long","ompi_op_base_3buff_bxor_uint16_t","ompi_op_base_3buff_bxor_uint32_t","ompi_op_base_3buff_bxor_uint64_t","ompi_op_base_3buff_bxor_uint8_t","ompi_op_base_3buff_bxor_unsigned_long","ompi_op_base_3buff_land_bool","ompi_op_base_3buff_land_fortran_logical","ompi_op_base_3buff_land_int16_t","ompi_op_base_3buff_land_int32_t","ompi_op_base_3buff_land_int64_t","ompi_op_base_3buff_land_int8_t","ompi_op_base_3buff_land_long","ompi_op_base_3buff_land_uint16_t","ompi_op_base_3buff_land_uint32_t","ompi_op_base_3buff_land_uint64_t","ompi_op_base_3buff_land_uint8_t","ompi_op_base_3buff_land_unsigned_long","ompi_op_base_3buff_lor_bool","ompi_op_base_3buff_lor_fortran_logical","ompi_op_base_3buff_lor_int16_t","ompi_op_base_3buff_lor_int32_t","ompi_op_base_3buff_lor_int64_t","ompi_op_base_3buff_lor_int8_t","ompi_op_base_3buff_lor_long","ompi_op_base_3buff_lor_uint16_t","ompi_op_base_3buff_lor_uint32_t","ompi_op_base_3buff_lor_uint64_t","ompi_op_base_3buff_lor_uint8_t","ompi_op_base_3buff_lor_unsigned_long","ompi_op_base_3buff_lxor_bool","ompi_op_base_3buff_lxor_fortran_logical","ompi_op_base_3buff_lxor_int16_t","ompi_op_base_3buff_lxor_int32_t","ompi_op_base_3buff_lxor_int64_t","ompi_op_base_3buff_lxor_int8_t","ompi_op_base_3buff_lxor_long","ompi_op_base_3buff_lxor_uint16_t","ompi_op_base_3buff_lxor_uint32_t","ompi_op_base_3buff_lxor_uint64_t","ompi_op_base_3buff_lxor_uint8_t","ompi_op_base_3buff_lxor_unsigned_long","ompi_op_base_3buff_max_double","ompi_op_base_3buff_max_float","ompi_op_base_3buff_max_fortran_double_precision","ompi_op_base_3buff_max_fortran_integer","ompi_op_base_3buff_max_fortran_integer1","ompi_op_base_3buff_max_fortran_integer2","ompi_op_base_3buff_max_fortran_integer4","ompi_op_base_3buff_max_fortran_integer8","ompi_op_base_3buff_max_fortran_real","ompi_op_base_3buff_max_fortran_real16","ompi_op_base_3buff_max_fortran_real4","ompi_op_base_3buff_max_fortran_real8","ompi_op_base_3buff_max_int16_t","ompi_op_base_3buff_max_int32_t","ompi_op_base_3buff_max_int64_t","ompi_op_base_3buff_max_int8_t","ompi_op_base_3buff_max_long","ompi_op_base_3buff_max_long_double","ompi_op_base_3buff_max_uint16_t","ompi_op_base_3buff_max_uint32_t","ompi_op_base_3buff_max_uint64_t","ompi_op_base_3buff_max_uint8_t","ompi_op_base_3buff_max_unsigned_long","ompi_op_base_3buff_maxloc_2double_precision","ompi_op_base_3buff_maxloc_2int","ompi_op_base_3buff_maxloc_2integer","ompi_op_base_3buff_maxloc_2real","ompi_op_base_3buff_maxloc_double_int","ompi_op_base_3buff_maxloc_float_int","ompi_op_base_3buff_maxloc_long_double_int","ompi_op_base_3buff_maxloc_long_int","ompi_op_base_3buff_maxloc_short_int","ompi_op_base_3buff_min_double","ompi_op_base_3buff_min_float","ompi_op_base_3buff_min_fortran_double_precision","ompi_op_base_3buff_min_fortran_integer","ompi_op_base_3buff_min_fortran_integer1","ompi_op_base_3buff_min_fortran_integer2","ompi_op_base_3buff_min_fortran_integer4","ompi_op_base_3buff_min_fortran_integer8","ompi_op_base_3buff_min_fortran_real","ompi_op_base_3buff_min_fortran_real16","ompi_op_base_3buff_min_fortran_real4","ompi_op_base_3buff_min_fortran_real8","ompi_op_base_3buff_min_int16_t","ompi_op_base_3buff_min_int32_t","ompi_op_base_3buff_min_int64_t","ompi_op_base_3buff_min_int8_t","ompi_op_base_3buff_min_long","ompi_op_base_3buff_min_long_double","ompi_op_base_3buff_min_uint16_t","ompi_op_base_3buff_min_uint32_t","ompi_op_base_3buff_min_uint64_t","ompi_op_base_3buff_min_uint8_t","ompi_op_base_3buff_min_unsigned_long","ompi_op_base_3buff_minloc_2double_precision","ompi_op_base_3buff_minloc_2int","ompi_op_base_3buff_minloc_2integer","ompi_op_base_3buff_minloc_2real","ompi_op_base_3buff_minloc_double_int","ompi_op_base_3buff_minloc_float_int","ompi_op_base_3buff_minloc_long_double_int","ompi_op_base_3buff_minloc_long_int","ompi_op_base_3buff_minloc_short_int","ompi_op_base_3buff_prod_c_double_complex","ompi_op_base_3buff_prod_c_float_complex","ompi_op_base_3buff_prod_c_long_double_complex","ompi_op_base_3buff_prod_double","ompi_op_base_3buff_prod_float","ompi_op_base_3buff_prod_fortran_double_precision","ompi_op_base_3buff_prod_fortran_integer","ompi_op_base_3buff_prod_fortran_integer1","ompi_op_base_3buff_prod_fortran_integer2","ompi_op_base_3buff_prod_fortran_integer4","ompi_op_base_3buff_prod_fortran_integer8","ompi_op_base_3buff_prod_fortran_real","ompi_op_base_3buff_prod_fortran_real16","ompi_op_base_3buff_prod_fortran_real4","ompi_op_base_3buff_prod_fortran_real8","ompi_op_base_3buff_prod_int16_t","ompi_op_base_3buff_prod_int32_t","ompi_op_base_3buff_prod_int64_t","ompi_op_base_3buff_prod_int8_t","ompi_op_base_3buff_prod_long","ompi_op_base_3buff_prod_long_double","ompi_op_base_3buff_prod_uint16_t","ompi_op_base_3buff_prod_uint32_t","ompi_op_base_3buff_prod_uint64_t","ompi_op_base_3buff_prod_uint8_t","ompi_op_base_3buff_prod_unsigned_long","ompi_op_base_3buff_sum_c_double_complex","ompi_op_base_3buff_sum_c_float_complex","ompi_op_base_3buff_sum_c_long_double_complex","ompi_op_base_3buff_sum_double","ompi_op_base_3buff_sum_float","ompi_op_base_3buff_sum_fortran_double_precision","ompi_op_base_3buff_sum_fortran_integer","ompi_op_base_3buff_sum_fortran_integer1","ompi_op_base_3buff_sum_fortran_integer2","ompi_op_base_3buff_sum_fortran_integer4","ompi_op_base_3buff_sum_fortran_integer8","ompi_op_base_3buff_sum_fortran_real","ompi_op_base_3buff_sum_fortran_real16","ompi_op_base_3buff_sum_fortran_real4","ompi_op_base_3buff_sum_fortran_real8","ompi_op_base_3buff_sum_int16_t","ompi_op_base_3buff_sum_int32_t","ompi_op_base_3buff_sum_int64_t","ompi_op_base_3buff_sum_int8_t","ompi_op_base_3buff_sum_long","ompi_op_base_3buff_sum_long_double","ompi_op_base_3buff_sum_uint16_t","ompi_op_base_3buff_sum_uint32_t","ompi_op_base_3buff_sum_uint64_t","ompi_op_base_3buff_sum_uint8_t","ompi_op_base_3buff_sum_unsigned_long","ompi_op_base_find_available","ompi_op_base_op_select","ompi_op_construct","ompi_op_create_user","ompi_op_destruct","ompi_op_finalize","ompi_op_init","ompi_op_reduce:0x103bf0","ompi_op_reduce:0x105a40","ompi_op_reduce:0x109a40","ompi_op_reduce:0x11a690","ompi_op_reduce:0x11d440","ompi_op_reduce:0x128cd0","ompi_op_reduce:0x153a70","ompi_op_reduce:0x15a800","ompi_op_reduce:0x15ce80","ompi_op_reduce:0x15ed30","ompi_op_reduce:0x1642a0","ompi_op_reduce:0x1c2ff0","ompi_op_reduce:0x1ce8e0","ompi_op_reduce:0x1e8750","ompi_op_reduce:0x5eb80","ompi_op_reduce:0xef780","ompi_op_reduce:0xf6ab0","ompi_op_reduce:0xfc2b0","ompi_op_reduce:0xff940","ompi_op_set_java_callback","ompi_osc_base_finalize","ompi_osc_base_find_available","ompi_osc_base_get_primitive_type_info","ompi_osc_base_process_op","ompi_osc_base_select","ompi_osc_base_set_memory_alignment","ompi_osc_base_sndrcv_op","ompi_osc_get_data_blocking","ompi_osc_get_data_complete","ompi_osc_module_add_peer","ompi_osc_monitoring_portals4_accumulate","ompi_osc_monitoring_portals4_attach","ompi_osc_monitoring_portals4_compare_and_swap","ompi_osc_monitoring_portals4_complete","ompi_osc_monitoring_portals4_detach","ompi_osc_monitoring_portals4_fence","ompi_osc_monitoring_portals4_fetch_and_op","ompi_osc_monitoring_portals4_flush","ompi_osc_monitoring_portals4_flush_all","ompi_osc_monitoring_portals4_flush_local","ompi_osc_monitoring_portals4_flush_local_all","ompi_osc_monitoring_portals4_free","ompi_osc_monitoring_portals4_get","ompi_osc_monitoring_portals4_get_accumulate","ompi_osc_monitoring_portals4_lock","ompi_osc_monitoring_portals4_lock_all","ompi_osc_monitoring_portals4_post","ompi_osc_monitoring_portals4_put","ompi_osc_monitoring_portals4_raccumulate","ompi_osc_monitoring_portals4_rget","ompi_osc_monitoring_portals4_rget_accumulate","ompi_osc_monitoring_portals4_rput","ompi_osc_monitoring_portals4_set_template","ompi_osc_monitoring_portals4_start","ompi_osc_monitoring_portals4_sync","ompi_osc_monitoring_portals4_test","ompi_osc_monitoring_portals4_unlock","ompi_osc_monitoring_portals4_unlock_all","ompi_osc_monitoring_portals4_wait","ompi_osc_monitoring_rdma_accumulate","ompi_osc_monitoring_rdma_attach","ompi_osc_monitoring_rdma_compare_and_swap","ompi_osc_monitoring_rdma_complete","ompi_osc_monitoring_rdma_detach","ompi_osc_monitoring_rdma_fence","ompi_osc_monitoring_rdma_fetch_and_op","ompi_osc_monitoring_rdma_flush","ompi_osc_monitoring_rdma_flush_all","ompi_osc_monitoring_rdma_flush_local","ompi_osc_monitoring_rdma_flush_local_all","ompi_osc_monitoring_rdma_free","ompi_osc_monitoring_rdma_get","ompi_osc_monitoring_rdma_get_accumulate","ompi_osc_monitoring_rdma_lock","ompi_osc_monitoring_rdma_lock_all","ompi_osc_monitoring_rdma_post","ompi_osc_monitoring_rdma_put","ompi_osc_monitoring_rdma_raccumulate","ompi_osc_monitoring_rdma_rget","ompi_osc_monitoring_rdma_rget_accumulate","ompi_osc_monitoring_rdma_rput","ompi_osc_monitoring_rdma_set_template","ompi_osc_monitoring_rdma_start","ompi_osc_monitoring_rdma_sync","ompi_osc_monitoring_rdma_test","ompi_osc_monitoring_rdma_unlock","ompi_osc_monitoring_rdma_unlock_all","ompi_osc_monitoring_rdma_wait","ompi_osc_monitoring_sm_accumulate","ompi_osc_monitoring_sm_attach","ompi_osc_monitoring_sm_compare_and_swap","ompi_osc_monitoring_sm_complete","ompi_osc_monitoring_sm_detach","ompi_osc_monitoring_sm_fence","ompi_osc_monitoring_sm_fetch_and_op","ompi_osc_monitoring_sm_flush","ompi_osc_monitoring_sm_flush_all","ompi_osc_monitoring_sm_flush_local","ompi_osc_monitoring_sm_flush_local_all","ompi_osc_monitoring_sm_free","ompi_osc_monitoring_sm_get","ompi_osc_monitoring_sm_get_accumulate","ompi_osc_monitoring_sm_lock","ompi_osc_monitoring_sm_lock_all","ompi_osc_monitoring_sm_post","ompi_osc_monitoring_sm_put","ompi_osc_monitoring_sm_raccumulate","ompi_osc_monitoring_sm_rget","ompi_osc_monitoring_sm_rget_accumulate","ompi_osc_monitoring_sm_rput","ompi_osc_monitoring_sm_set_template","ompi_osc_monitoring_sm_start","ompi_osc_monitoring_sm_sync","ompi_osc_monitoring_sm_test","ompi_osc_monitoring_sm_unlock","ompi_osc_monitoring_sm_unlock_all","ompi_osc_monitoring_sm_wait","ompi_osc_monitoring_ucx_accumulate","ompi_osc_monitoring_ucx_attach","ompi_osc_monitoring_ucx_compare_and_swap","ompi_osc_monitoring_ucx_complete","ompi_osc_monitoring_ucx_detach","ompi_osc_monitoring_ucx_fence","ompi_osc_monitoring_ucx_fetch_and_op","ompi_osc_monitoring_ucx_flush","ompi_osc_monitoring_ucx_flush_all","ompi_osc_monitoring_ucx_flush_local","ompi_osc_monitoring_ucx_flush_local_all","ompi_osc_monitoring_ucx_free","ompi_osc_monitoring_ucx_get","ompi_osc_monitoring_ucx_get_accumulate","ompi_osc_monitoring_ucx_lock","ompi_osc_monitoring_ucx_lock_all","ompi_osc_monitoring_ucx_post","ompi_osc_monitoring_ucx_put","ompi_osc_monitoring_ucx_raccumulate","ompi_osc_monitoring_ucx_rget","ompi_osc_monitoring_ucx_rget_accumulate","ompi_osc_monitoring_ucx_rput","ompi_osc_monitoring_ucx_set_template","ompi_osc_monitoring_ucx_start","ompi_osc_monitoring_ucx_sync","ompi_osc_monitoring_ucx_test","ompi_osc_monitoring_ucx_unlock","ompi_osc_monitoring_ucx_unlock_all","ompi_osc_monitoring_ucx_wait","ompi_osc_rdma_accumulate","ompi_osc_rdma_add_attachment","ompi_osc_rdma_atomic_complete","ompi_osc_rdma_attach","ompi_osc_rdma_btl_op.constprop.0","ompi_osc_rdma_cas_put_complete","ompi_osc_rdma_check_posts","ompi_osc_rdma_compare_and_swap","ompi_osc_rdma_compare_and_swap.cold","ompi_osc_rdma_complete_atomic","ompi_osc_rdma_component_finalize","ompi_osc_rdma_component_init","ompi_osc_rdma_component_query","ompi_osc_rdma_component_register","ompi_osc_rdma_component_select","ompi_osc_rdma_demand_lock_peer","ompi_osc_rdma_detach","ompi_osc_rdma_fence_atomic","ompi_osc_rdma_fetch_and_op","ompi_osc_rdma_find_dynamic_region","ompi_osc_rdma_flush","ompi_osc_rdma_flush_all","ompi_osc_rdma_flush_local","ompi_osc_rdma_flush_local_all","ompi_osc_rdma_frag_alloc","ompi_osc_rdma_frag_alloc.constprop.0:0x1dafc0","ompi_osc_rdma_frag_alloc.constprop.0:0x1dd090","ompi_osc_rdma_frag_alloc.constprop.0:0x1e0770","ompi_osc_rdma_free","ompi_osc_rdma_gacc_amo.constprop.0","ompi_osc_rdma_gacc_master","ompi_osc_rdma_gacc_master_cleanup","ompi_osc_rdma_gacc_master_cleanup.cold","ompi_osc_rdma_get","ompi_osc_rdma_get_accumulate","ompi_osc_rdma_get_complete","ompi_osc_rdma_get_contig","ompi_osc_rdma_get_partial","ompi_osc_rdma_get_peers","ompi_osc_rdma_handle_fini","ompi_osc_rdma_handle_init","ompi_osc_rdma_initialize_region.isra.0","ompi_osc_rdma_lock_all_atomic","ompi_osc_rdma_lock_atomic","ompi_osc_rdma_lock_atomic_internal","ompi_osc_rdma_lock_release_exclusive.constprop.0.isra.0","ompi_osc_rdma_lock_release_exclusive.constprop.0.isra.0.cold","ompi_osc_rdma_master_noncontig","ompi_osc_rdma_new_peer","ompi_osc_rdma_new_peer.cold","ompi_osc_rdma_peer_accumulate_cleanup","ompi_osc_rdma_peer_accumulate_cleanup.cold","ompi_osc_rdma_peer_basic_construct","ompi_osc_rdma_peer_basic_destruct","ompi_osc_rdma_peer_btl_endpoint","ompi_osc_rdma_peer_construct","ompi_osc_rdma_peer_destruct","ompi_osc_rdma_peer_dynamic_construct","ompi_osc_rdma_peer_dynamic_destruct","ompi_osc_rdma_peer_lookup","ompi_osc_rdma_peer_setup","ompi_osc_rdma_pending_op_construct","ompi_osc_rdma_pending_op_destruct","ompi_osc_rdma_post_atomic","ompi_osc_rdma_put","ompi_osc_rdma_put_complete","ompi_osc_rdma_put_complete_flush","ompi_osc_rdma_put_contig","ompi_osc_rdma_pvar_read","ompi_osc_rdma_raccumulate","ompi_osc_rdma_release_peers","ompi_osc_rdma_request_complete:0x1c62b0","ompi_osc_rdma_request_complete:0x1cee10","ompi_osc_rdma_rget","ompi_osc_rdma_rget_accumulate","ompi_osc_rdma_rget_accumulate_internal","ompi_osc_rdma_rget_accumulate_internal.cold","ompi_osc_rdma_rput","ompi_osc_rdma_set_no_lock_info","ompi_osc_rdma_start_atomic","ompi_osc_rdma_sync","ompi_osc_rdma_sync_allocate","ompi_osc_rdma_sync_constructor","ompi_osc_rdma_sync_destructor","ompi_osc_rdma_sync_pscw_peer","ompi_osc_rdma_sync_return","ompi_osc_rdma_test_atomic","ompi_osc_rdma_unlock_all_atomic","ompi_osc_rdma_unlock_all_atomic.cold","ompi_osc_rdma_unlock_atomic","ompi_osc_rdma_unlock_atomic.cold","ompi_osc_rdma_wait_atomic","ompi_osc_sm_accumulate","ompi_osc_sm_attach","ompi_osc_sm_compare_and_swap","ompi_osc_sm_complete","ompi_osc_sm_detach","ompi_osc_sm_fence","ompi_osc_sm_fetch_and_op","ompi_osc_sm_flush","ompi_osc_sm_flush_all","ompi_osc_sm_flush_local","ompi_osc_sm_flush_local_all","ompi_osc_sm_free","ompi_osc_sm_get","ompi_osc_sm_get_accumulate","ompi_osc_sm_get_info","ompi_osc_sm_group_ranks","ompi_osc_sm_lock","ompi_osc_sm_lock_all","ompi_osc_sm_post","ompi_osc_sm_put","ompi_osc_sm_raccumulate","ompi_osc_sm_rget","ompi_osc_sm_rget_accumulate","ompi_osc_sm_rput","ompi_osc_sm_set_info","ompi_osc_sm_shared_query","ompi_osc_sm_start","ompi_osc_sm_sync","ompi_osc_sm_test","ompi_osc_sm_unlock","ompi_osc_sm_unlock_all","ompi_osc_sm_wait","ompi_pmix_print_id","ompi_pmix_print_name","ompi_pmix_snprintf_jobid","ompi_pml_ob1_append_frag_to_ordered_list","ompi_pml_ob1_check_cantmatch_for_match","ompi_pml_v_output_close","ompi_pml_v_output_open","ompi_proc_all","ompi_proc_allocate","ompi_proc_compare_vid","ompi_proc_complete_init","ompi_proc_complete_init_single","ompi_proc_construct","ompi_proc_destruct","ompi_proc_finalize","ompi_proc_find","ompi_proc_find_and_add","ompi_proc_for_name","ompi_proc_get_allocated","ompi_proc_init","ompi_proc_lookup","ompi_proc_pack","ompi_proc_refresh","ompi_proc_self","ompi_proc_unpack","ompi_proc_world","ompi_proc_world_size","ompi_rbcast_bml_send_complete_cb","ompi_report_comm_methods","ompi_request_check_same_instance","ompi_request_construct","ompi_request_default_test","ompi_request_default_test_all","ompi_request_default_test_any","ompi_request_default_test_some","ompi_request_default_wait","ompi_request_default_wait_all","ompi_request_default_wait_any","ompi_request_default_wait_some","ompi_request_destruct","ompi_request_empty_free","ompi_request_finalize","ompi_request_init","ompi_request_is_failed_fn","ompi_request_null_cancel","ompi_request_null_free","ompi_request_persistent_noop_create","ompi_request_persistent_noop_free","ompi_request_wait_completion:0x1f3e20","ompi_request_wait_completion:0x1f56c0","ompi_request_wait_completion:0x1f7c70","ompi_request_wait_completion:0x212b80","ompi_request_wait_completion:0x5d7f0","ompi_rounddown","ompi_rte_abort","ompi_rte_abort_peers","ompi_rte_breakpoint","ompi_rte_compare_name_fields","ompi_rte_convert_process_name_to_string","ompi_rte_convert_string_to_process_name","ompi_rte_finalize","ompi_rte_init","ompi_rte_wait_for_debugger","ompi_seq_tracker_check_duplicate","ompi_seq_tracker_construct","ompi_seq_tracker_copy","ompi_seq_tracker_destruct","ompi_seq_tracker_insert","ompi_set_group_rank","ompi_show_all_mca_params","ompi_test_fortran_constants","ompi_test_fortran_constants_","ompi_test_fortran_constants__","ompi_test_fortran_constants_f","ompi_type_dup_fn_f","ompi_type_null_copy_fn_f","ompi_type_null_delete_fn_f","ompi_vprotocol_pessimist_delivery_replay","ompi_vprotocol_pessimist_event_logger_connect","ompi_vprotocol_pessimist_event_logger_connect.cold","ompi_vprotocol_pessimist_event_logger_disconnect","ompi_vprotocol_pessimist_matching_replay","ompi_vprotocol_pessimist_sender_based_alloc","ompi_vprotocol_pessimist_sender_based_finalize","ompi_vprotocol_pessimist_sender_based_init","ompi_win_allocate","ompi_win_allocate_shared","ompi_win_construct","ompi_win_create","ompi_win_create_dynamic","ompi_win_destruct","ompi_win_dup_fn_f","ompi_win_finalize","ompi_win_free","ompi_win_get_name","ompi_win_group","ompi_win_init","ompi_win_null_copy_fn_f","ompi_win_null_delete_fn_f","ompi_win_set_name","ompit_opal_to_mpit_error","ompit_var_type_to_datatype","opal_free_list_wait","opal_free_list_wait.constprop.0:0x1f8730","opal_free_list_wait.constprop.0:0x1fbad0","open_component","optimize_arity","partial_aggregate_aff_mat","partial_exhaustive_search","partial_update_val","rankkeycompare","recurs_select_independent_groups","recv_cb:0x1613b0","recv_cb:0x1647d0","recv_request_pml_complete","reduce_inorder","register_component:0x1686b0","register_component:0x175430","register_component:0x17baa0","register_datarep","register_tm_clones","release_objs_callback","release_vecs_callback","request_cancel:0x127800","request_cancel:0x1da890","request_construct:0x127810","request_construct:0x1da8a0","request_free:0x127b50","request_free:0x1da910","request_start","result_request","retreive_size","retreive_size.cold","save_ptr","select_independent_groups","self_register","send_cb:0x160b60","send_cb:0x163f50","send_msg","send_msg.cold","send_request_pml_complete","set_handler_default","set_value","shuffle_init.constprop.0:0x16bb70","shuffle_init.constprop.0:0x16f180","sm_close","sm_module_enable","sm_register:0x108080","sm_register:0x215be0","sync_register","tab_cmp","tgt_to_tm","thread_loop","tm_bucket_grouping","tm_build_affinity_mat","tm_build_synthetic_topology","tm_build_tree_from_topology","tm_calloc","tm_close_verbose_file","tm_complete_obj_weight","tm_compute_mapping","tm_compute_nb_leaves_from_level","tm_create_work","tm_destroy_work","tm_display_arity","tm_display_other_heuristics","tm_display_solution","tm_display_tab","tm_display_topology","tm_enable_oversubscribing","tm_fiboTreeDel","tm_fiboTreeExit","tm_fiboTreeFree","tm_fiboTreeInit","tm_fiboTreeMin","tm_fill_tab","tm_finalize","tm_free","tm_free_affinity_mat","tm_free_solution","tm_free_topology","tm_free_tree","tm_genrand_int31","tm_genrand_int32","tm_genrand_real1","tm_genrand_real2","tm_genrand_real3","tm_genrand_res53","tm_get_exhaustive_search_flag","tm_get_greedy_flag","tm_get_local_topology_with_hwloc","tm_get_local_topology_with_hwloc.cold","tm_get_nb_threads","tm_get_numbering","tm_get_time","tm_get_verbose_level","tm_get_verbose_output","tm_in_tab","tm_init_genrand","tm_intCIV_get","tm_intCIV_init","tm_intCIV_isInitialized","tm_intCIV_set","tm_int_cmp_inc","tm_kPartitioning","tm_kpartition","tm_kpartition.cold","tm_kpartition_build_tree_from_topology","tm_load_aff_mat","tm_load_topology","tm_load_topology.cold","tm_malloc","tm_map_MPIPP","tm_map_Packed","tm_map_RR","tm_map_topology","tm_mem_check","tm_nb_processing_units","tm_new_affinity_mat","tm_open_verbose_file","tm_optimize_topology","tm_print_1D_tab","tm_realloc","tm_set_exhaustive_search_flag","tm_set_greedy_flag","tm_set_max_nb_threads","tm_set_node","tm_set_numbering","tm_set_verbose_level","tm_submit_work","tm_terminate_thread_pool","tm_test_main","tm_time_diff","tm_topology_add_binding_constraints","tm_topology_set_binding_constraints","tm_try_add_edge","tm_update_val","tm_wait_work_completion","treematch_module_constructor","treematch_module_destructor","tuned_close","tuned_module_enable","tuned_open","tuned_register","vprotocol_pessimist_delivery_log","vprotocol_pessimist_request_construct","vprotocol_pessimist_request_no_free","vulcan_register","weighted_degree_dsc","write_init","write_init.constprop.0"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/openmpi-5.0.7-y6xplmqxukxsuvvwnv2jqvztli5rhevm/lib/libmpi.so.40","include_offsets":false},{"type":2,"name":"ior","functions":["AllocResults","CheckFileSize","CheckForOutliers","CheckRunSettings","CompareBuffers","CountErrors","CreateTest","CurrentTimeString","DUMMY_Close","DUMMY_Create","DUMMY_Delete","DUMMY_Fsync","DUMMY_GetFileSize","DUMMY_Open","DUMMY_Sync","DUMMY_Xfer","DUMMY_access","DUMMY_check_params","DUMMY_getVersion","DUMMY_mkdir","DUMMY_options","DUMMY_rmdir","DUMMY_stat","DUMMY_statfs","DecodeDirective","DelaySecs","DestroyTest","DestroyTests","DisplayFreespace","DisplayOutliers","DistributeHints","DumpBuffer","ExtractHint","FailMessage","FillBuffer","FillIncompressibleBuffer","FreeResults","GetNumNodes","GetNumTasks","GetNumTasksOnNode0","GetOffsetArrayRandom","GetOffsetArraySequential","GetPlatformName","GetTestFileName","GetTimeStamp","HDF5_Access","HDF5_Close","HDF5_Create","HDF5_Delete","HDF5_Fsync","HDF5_GetFileSize","HDF5_GetVersion","HDF5_Open","HDF5_Xfer","HDF5_options","HogMemory","HumanReadable","InitTests","MMAP_Close","MMAP_Create","MMAP_Fsync","MMAP_Open","MMAP_Xfer","MMAP_options","MPIIO_Access","MPIIO_Close","MPIIO_Create","MPIIO_Delete","MPIIO_Fsync","MPIIO_GetFileSize","MPIIO_GetVersion","MPIIO_Open","MPIIO_Xfer","NodeMemoryStringToBytes","POSIX_Close","POSIX_Create","POSIX_Delete","POSIX_Fsync","POSIX_GetFileSize","POSIX_Mknod","POSIX_Open","POSIX_Sync","POSIX_Xfer","POSIX_options","PPDouble","ParseCommandLine","ParseFileName","ParseLine","PrependDir","PrintArrayEnd","PrintArrayNamedStart","PrintArrayStart","PrintEndSection","PrintHeader","PrintIndent","PrintKeyVal","PrintKeyValDouble","PrintKeyValEnd","PrintKeyValInt","PrintKeyValStart","PrintLongSummaryAllTests","PrintLongSummaryHeader","PrintLongSummaryOneOperation","PrintLongSummaryOneTest","PrintNamedArrayStart","PrintNamedSectionStart","PrintNextToken","PrintReducedResult","PrintRemoveTiming","PrintRepeatEnd","PrintRepeatStart","PrintShortSummary","PrintStartSection","PrintTableHeader","PrintTestEnds","PrintTimestamp","QueryNodeMapping","ReadConfigScript","ReadStoneWallingIterations","ReduceIterResults","Regex","RemoveFile","SeedRandGen","SetHints","SetupDataSet","ShowFileSystemSize","ShowHints","ShowSetup","ShowTestEnd","ShowTestStart","StoreStoneWallingIterations","StringToBytes","TestIoSys","TimeDeviation","ValidateTests","WriteOrRead","WriteOrReadSingle","WriteTimes","XferBuffersFree","XferBuffersSetup","__do_global_dtors_aux","aiori_count","aiori_default","aiori_finalize","aiori_get_version","aiori_initialize","aiori_posix_access","aiori_posix_mkdir","aiori_posix_rmdir","aiori_posix_stat","aiori_posix_statfs","aiori_select","aiori_supported_apis","airoi_create_all_module_options","airoi_update_module_options","aligned_buffer_alloc","aligned_buffer_free","bw_ops_values","bw_values","contains_only","createGlobalOptions","decodeDirectiveWrapper","deregister_tm_clones","file_hits_histogram","frame_dummy","init_IOR_Param_t","init_clock","init_or_fini","init_or_fini_internal","ior_main","ior_mmap_file","ior_run","main","malloc_and_touch","mean_of_array_of_doubles","ops_values","option_parse","option_parse_key_value","option_parse_str","option_parse_token","option_print_current","option_print_help","print_current_option_section","print_help_section","print_option_value","print_value","register_tm_clones","safeMalloc","set_o_direct_flag","string_to_bytes","test_time_elapsed","updateParsedOptions"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/ior-3.3.0-ip47j26fw7xxfftdzjvy2h36phgcuypv/bin/ior","include_offsets":false}] +[{"type":4,"name":"custom1","functions":["openat","read","write","close","fallocate","fdatasync","flock","fsync","ftruncate","lseek","pread64","preadv","preadv2","pwrite64","pwritev","pwritev2","readahead","readv","writev","open","openat2"],"bpf_path":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2},{"type":0,"name":"sys","functions":["access","chdir","close","close_range","copy_file_range","creat","dup","dup2","dup3","eventfd2","exit","exit_group","faccessat","faccessat2","fadvise64","fadvise64_64","fallocate","fanotify_init","fanotify_mark","fchdir","fchmod","fchmodat","fchmodat2","fchown","fchownat","fcntl","fdatasync","fgetxattr","flistxattr","flock","fremovexattr","fsetxattr","fstat","fstatfs","fstatfs64","fsync","ftruncate","getcwd","getdents","getxattr","inotify_add_watch","inotify_init","inotify_init1","inotify_rm_watch","io_cancel","io_destroy","io_setup","io_submit","io_uring_enter","io_uring_register","io_uring_setup","lgetxattr","link","linkat","listxattr","llistxattr","llseek","lremovexattr","lseek","lsetxattr","lstat","madvise","mbind","migrate_pages","mincore","mkdir","mkdirat","mknod","mknodat","mlock","mlockall","mmap_pgoff","move_pages","mprotect","mremap","msync","munlock","munlockall","munmap","newfstat","newlstat","newstat","open","openat","openat2","pidfd_open","pipe","pread64","preadv","preadv2","process_madvise","process_mrelease","process_vm_readv","process_vm_writev","pwrite64","pwritev","pwritev2","read","readlink","readlinkat","readv","remap_file_pages","removexattr","rename","renameat","rmdir","sendfile64","setxattr","stat","statfs","statfs64","statx","symlink","symlinkat","sync","sync_file_range","sync_file_range2","syncfs","sysfs","truncate","unlink","unlinkat","ustat","vfork","write","writev"]},{"type":2,"name":"libc","functions":["__GI___fork","__GI___register_atfork","__GI___vfork","__GI_forkpty","__dyn_pthread_atfork","__fork","__forkpty","__libc_fork","__libc_unwind_link_after_fork","__libc_vfork","__malloc_fork_lock_parent","__malloc_fork_unlock_child","__malloc_fork_unlock_parent","__mq_notify_fork_subprocess","__nss_database_fork_prepare_parent","__nss_database_fork_subprocess","__register_atfork","__run_postfork_handlers","__run_prefork_handlers","__timer_fork_subprocess","__unregister_atfork","__vfork","fork","pthread_atfork@GLIBC_2.2.5","vfork"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false},{"type":2,"name":"hdf5","functions":["H5AC__broadcast_clean_list_cb","H5AC__check_if_write_permitted","H5AC__copy_candidate_list_to_buffer.constprop.0","H5AC__copy_candidate_list_to_buffer_cb","H5AC__flush_entries","H5AC__log_cleaned_entry","H5AC__log_deleted_entry","H5AC__log_dirtied_entry","H5AC__log_flushed_entry","H5AC__log_inserted_entry","H5AC__log_moved_entry","H5AC__propagate_flushed_and_still_clean_entries_list","H5AC__proxy_entry_add_child_cb","H5AC__proxy_entry_free_icr","H5AC__proxy_entry_image_len","H5AC__proxy_entry_notify","H5AC__proxy_entry_remove_child_cb","H5AC__proxy_entry_serialize","H5AC__receive_haddr_list","H5AC__run_sync_point","H5AC__set_sync_point_done_callback","H5AC__set_write_done_callback","H5AC_add_candidate","H5AC_cache_image_pending","H5AC_cork","H5AC_create","H5AC_create_flush_dependency","H5AC_dest","H5AC_destroy_flush_dependency","H5AC_evict","H5AC_evict_tagged_metadata","H5AC_expunge_entry","H5AC_expunge_tag_type_metadata","H5AC_flush","H5AC_flush_tagged_metadata","H5AC_get_cache_auto_resize_config","H5AC_get_cache_flush_in_progress","H5AC_get_cache_hit_rate","H5AC_get_cache_size","H5AC_get_entry_ring","H5AC_get_entry_status","H5AC_get_mdc_image_info","H5AC_get_tag","H5AC_ignore_tags","H5AC_init","H5AC_insert_entry","H5AC_load_cache_image_on_next_protect","H5AC_mark_entry_clean","H5AC_mark_entry_dirty","H5AC_mark_entry_serialized","H5AC_mark_entry_unserialized","H5AC_move_entry","H5AC_pin_protected_entry","H5AC_prep_for_file_close","H5AC_prep_for_file_flush","H5AC_protect","H5AC_proxy_entry_add_child","H5AC_proxy_entry_add_parent","H5AC_proxy_entry_create","H5AC_proxy_entry_dest","H5AC_proxy_entry_remove_child","H5AC_proxy_entry_remove_parent","H5AC_remove_entry","H5AC_reset_cache_hit_rate_stats","H5AC_resize_entry","H5AC_retag_copied_metadata","H5AC_secure_from_file_flush","H5AC_set_cache_auto_resize_config","H5AC_set_ring","H5AC_stats","H5AC_tag","H5AC_term_package","H5AC_unpin_entry","H5AC_unprotect","H5AC_unsettle_entry_ring","H5AC_unsettle_ring","H5AC_validate_cache_image_config","H5AC_validate_config","H5A__attr_cmp_corder_dec","H5A__attr_cmp_corder_inc","H5A__attr_cmp_name_dec","H5A__attr_cmp_name_inc","H5A__attr_copy_file","H5A__attr_iterate_table","H5A__attr_post_copy_file","H5A__attr_release_table","H5A__close","H5A__close_cb","H5A__compact_build_table","H5A__compact_build_table_cb","H5A__copy","H5A__create","H5A__create_api_common","H5A__create_by_name","H5A__create_by_name_api_common","H5A__delete_by_idx","H5A__delete_by_name","H5A__dense_btree2_corder_compare","H5A__dense_btree2_corder_debug","H5A__dense_btree2_corder_decode","H5A__dense_btree2_corder_encode","H5A__dense_btree2_corder_store","H5A__dense_btree2_name_compare","H5A__dense_btree2_name_debug","H5A__dense_btree2_name_decode","H5A__dense_btree2_name_encode","H5A__dense_btree2_name_store","H5A__dense_build_table","H5A__dense_build_table_cb","H5A__dense_copy_fh_cb","H5A__dense_create","H5A__dense_delete","H5A__dense_delete_bt2_cb","H5A__dense_exists","H5A__dense_fh_name_cmp","H5A__dense_fnd_cb","H5A__dense_insert","H5A__dense_iterate","H5A__dense_iterate_bt2_cb","H5A__dense_open","H5A__dense_post_copy_file_all","H5A__dense_post_copy_file_cb","H5A__dense_remove","H5A__dense_remove_bt2_cb","H5A__dense_remove_by_idx","H5A__dense_remove_by_idx_bt2_cb","H5A__dense_rename","H5A__dense_write","H5A__dense_write_bt2_cb","H5A__dense_write_bt2_cb2","H5A__exists_by_name","H5A__get_ainfo","H5A__get_create_plist","H5A__get_info","H5A__get_name","H5A__get_shared_rc_test","H5A__get_type","H5A__is_shared_test","H5A__iterate","H5A__iterate_old","H5A__open","H5A__open_by_idx","H5A__open_by_name","H5A__open_common:0x6a920","H5A__open_common:0x76bf0","H5A__read","H5A__rename_by_name","H5A__set_version","H5A__shared_free","H5A__write","H5A_get_space","H5A_init","H5A_nameof","H5A_oloc","H5A_term_package","H5A_top_term_package","H5A_type","H5Aclose","H5Aclose_async","H5Acreate1","H5Acreate2","H5Acreate_async","H5Acreate_by_name","H5Acreate_by_name_async","H5Adelete","H5Adelete_by_idx","H5Adelete_by_name","H5Aexists","H5Aexists_async","H5Aexists_by_name","H5Aexists_by_name_async","H5Aget_create_plist","H5Aget_info","H5Aget_info_by_idx","H5Aget_info_by_name","H5Aget_name","H5Aget_name_by_idx","H5Aget_num_attrs","H5Aget_space","H5Aget_storage_size","H5Aget_type","H5Aiterate1","H5Aiterate2","H5Aiterate_by_name","H5Aopen","H5Aopen_async","H5Aopen_by_idx","H5Aopen_by_idx_async","H5Aopen_by_name","H5Aopen_by_name_async","H5Aopen_idx","H5Aopen_name","H5Aread","H5Aread_async","H5Arename","H5Arename_async","H5Arename_by_name","H5Arename_by_name_async","H5Awrite","H5Awrite_async","H5B2__cache_hdr_deserialize","H5B2__cache_hdr_free_icr","H5B2__cache_hdr_get_initial_load_size","H5B2__cache_hdr_image_len","H5B2__cache_hdr_notify","H5B2__cache_hdr_serialize","H5B2__cache_hdr_verify_chksum","H5B2__cache_int_deserialize","H5B2__cache_int_free_icr","H5B2__cache_int_get_initial_load_size","H5B2__cache_int_image_len","H5B2__cache_int_notify","H5B2__cache_int_serialize","H5B2__cache_int_verify_chksum","H5B2__cache_leaf_deserialize","H5B2__cache_leaf_free_icr","H5B2__cache_leaf_get_initial_load_size","H5B2__cache_leaf_image_len","H5B2__cache_leaf_notify","H5B2__cache_leaf_serialize","H5B2__cache_leaf_verify_chksum","H5B2__create_flush_depend","H5B2__create_internal","H5B2__create_leaf","H5B2__delete_node","H5B2__delete_node.localalias","H5B2__destroy_flush_depend","H5B2__get_node_depth_test","H5B2__get_node_info_test","H5B2__get_root_addr_test","H5B2__hdr_alloc","H5B2__hdr_create","H5B2__hdr_debug","H5B2__hdr_decr","H5B2__hdr_delete","H5B2__hdr_dirty","H5B2__hdr_free","H5B2__hdr_fuse_decr","H5B2__hdr_fuse_incr","H5B2__hdr_incr","H5B2__hdr_init","H5B2__hdr_protect","H5B2__hdr_unprotect","H5B2__insert","H5B2__insert_internal","H5B2__insert_internal.localalias","H5B2__insert_leaf","H5B2__int_debug","H5B2__internal_free","H5B2__iterate_node","H5B2__iterate_node.localalias","H5B2__leaf_debug","H5B2__leaf_free","H5B2__locate_record","H5B2__merge2","H5B2__merge3","H5B2__neighbor_internal","H5B2__neighbor_internal.localalias","H5B2__neighbor_leaf","H5B2__node_size","H5B2__node_size.localalias","H5B2__protect_internal","H5B2__protect_leaf","H5B2__redistribute2","H5B2__redistribute3","H5B2__remove_internal","H5B2__remove_internal.localalias","H5B2__remove_internal_by_idx","H5B2__remove_internal_by_idx.localalias","H5B2__remove_leaf","H5B2__remove_leaf_by_idx","H5B2__shadow_internal","H5B2__shadow_leaf","H5B2__split1","H5B2__split_root","H5B2__swap_leaf","H5B2__test2_compare","H5B2__test2_debug","H5B2__test2_decode","H5B2__test2_encode","H5B2__test2_store","H5B2__test_compare","H5B2__test_crt_context","H5B2__test_debug","H5B2__test_decode","H5B2__test_dst_context","H5B2__test_encode","H5B2__test_store","H5B2__update_flush_depend","H5B2__update_internal","H5B2__update_internal.localalias","H5B2__update_leaf","H5B2_close","H5B2_create","H5B2_delete","H5B2_depend","H5B2_find","H5B2_get_addr","H5B2_get_nrec","H5B2_index","H5B2_insert","H5B2_iterate","H5B2_modify","H5B2_neighbor","H5B2_open","H5B2_patch_file","H5B2_remove","H5B2_remove_by_idx","H5B2_size","H5B2_stat_info","H5B2_update","H5B__cache_deserialize","H5B__cache_free_icr","H5B__cache_get_initial_load_size","H5B__cache_image_len","H5B__cache_serialize","H5B__get_info_helper","H5B__insert_helper","H5B__iterate_helper","H5B__node_dest","H5B__remove_helper","H5B__verify_structure","H5B_create","H5B_debug","H5B_delete","H5B_delete.localalias","H5B_find","H5B_find.localalias","H5B_get_info","H5B_insert","H5B_iterate","H5B_remove","H5B_shared_free","H5B_shared_new","H5B_valid","H5CX__pop_common","H5CX_free_state","H5CX_get_actual_selection_io_mode","H5CX_get_bkgr_buf","H5CX_get_bkgr_buf_type","H5CX_get_btree_split_ratios","H5CX_get_coll_metadata_read","H5CX_get_data_transform","H5CX_get_dset_min_ohdr_flag","H5CX_get_dt_conv_cb","H5CX_get_dxpl","H5CX_get_encoding","H5CX_get_err_detect","H5CX_get_ext_file_prefix","H5CX_get_filter_cb","H5CX_get_intermediate_group","H5CX_get_io_xfer_mode","H5CX_get_lapl","H5CX_get_libver_bounds","H5CX_get_max_temp_buf","H5CX_get_modify_write_buf","H5CX_get_mpi_coll_datatypes","H5CX_get_mpi_file_flushing","H5CX_get_mpio_chunk_opt_mode","H5CX_get_mpio_chunk_opt_num","H5CX_get_mpio_chunk_opt_ratio","H5CX_get_mpio_coll_opt","H5CX_get_mpio_global_no_coll_cause","H5CX_get_mpio_local_no_coll_cause","H5CX_get_mpio_rank0_bcast","H5CX_get_nlinks","H5CX_get_no_selection_io_cause","H5CX_get_ohdr_flags","H5CX_get_ring","H5CX_get_selection_io_mode","H5CX_get_tag","H5CX_get_tconv_buf","H5CX_get_vds_prefix","H5CX_get_vec_size","H5CX_get_vlen_alloc_info","H5CX_get_vol_connector_prop","H5CX_get_vol_wrap_ctx","H5CX_init","H5CX_is_def_dxpl","H5CX_pop","H5CX_push","H5CX_push_special","H5CX_pushed","H5CX_restore_state","H5CX_retrieve_state","H5CX_set_actual_selection_io_mode","H5CX_set_apl","H5CX_set_coll_metadata_read","H5CX_set_dcpl","H5CX_set_dxpl","H5CX_set_io_xfer_mode","H5CX_set_lapl","H5CX_set_lcpl","H5CX_set_libver_bounds","H5CX_set_loc","H5CX_set_mpi_coll_datatypes","H5CX_set_mpi_file_flushing","H5CX_set_mpio_actual_chunk_opt","H5CX_set_mpio_actual_io_mode","H5CX_set_mpio_coll_opt","H5CX_set_mpio_global_no_coll_cause","H5CX_set_mpio_local_no_coll_cause","H5CX_set_mpio_rank0_bcast","H5CX_set_nlinks","H5CX_set_no_selection_io_cause","H5CX_set_ring","H5CX_set_tag","H5CX_set_vlen_alloc_info","H5CX_set_vol_connector_prop","H5CX_set_vol_wrap_ctx","H5CX_term_package","H5C__auto_adjust_cache_size","H5C__autoadjust__ageout__remove_all_markers","H5C__autoadjust__ageout__remove_excess_markers","H5C__epoch_marker_deserialize","H5C__epoch_marker_free_icr","H5C__epoch_marker_fsf_size","H5C__epoch_marker_get_final_load_size","H5C__epoch_marker_get_initial_load_size","H5C__epoch_marker_image_len","H5C__epoch_marker_notify","H5C__epoch_marker_pre_serialize","H5C__epoch_marker_serialize","H5C__epoch_marker_verify_chksum","H5C__evict_tagged_entries_cb","H5C__expunge_tag_type_metadata_cb","H5C__flash_increase_cache_size","H5C__flush_invalidate_cache","H5C__flush_ring","H5C__flush_single_entry","H5C__flush_tagged_entries_cb","H5C__generate_cache_image","H5C__generate_image","H5C__get_cache_image_config","H5C__image_entry_cmp","H5C__image_stats","H5C__iter_tagged_entries","H5C__iter_tagged_entries_real","H5C__json_tear_down_logging","H5C__json_write_create_cache_log_msg","H5C__json_write_create_fd_log_msg","H5C__json_write_destroy_cache_log_msg","H5C__json_write_destroy_fd_log_msg","H5C__json_write_evict_cache_log_msg","H5C__json_write_expunge_entry_log_msg","H5C__json_write_flush_cache_log_msg","H5C__json_write_insert_entry_log_msg","H5C__json_write_mark_entry_clean_log_msg","H5C__json_write_mark_entry_dirty_log_msg","H5C__json_write_mark_serialized_entry_log_msg","H5C__json_write_mark_unserialized_entry_log_msg","H5C__json_write_move_entry_log_msg","H5C__json_write_pin_entry_log_msg","H5C__json_write_protect_entry_log_msg","H5C__json_write_remove_entry_log_msg","H5C__json_write_resize_entry_log_msg","H5C__json_write_set_cache_config_log_msg","H5C__json_write_start_log_msg","H5C__json_write_stop_log_msg","H5C__json_write_unpin_entry_log_msg","H5C__json_write_unprotect_entry_log_msg","H5C__load_cache_image","H5C__log_json_set_up","H5C__log_trace_set_up","H5C__make_space_in_cache","H5C__pin_entry_from_client.part.0","H5C__prefetched_entry_deserialize","H5C__prefetched_entry_free_icr","H5C__prefetched_entry_fsf_size","H5C__prefetched_entry_get_final_load_size","H5C__prefetched_entry_get_initial_load_size","H5C__prefetched_entry_image_len","H5C__prefetched_entry_notify","H5C__prefetched_entry_pre_serialize","H5C__prefetched_entry_serialize","H5C__prefetched_entry_verify_chksum","H5C__prep_for_file_close__compute_fd_heights_real","H5C__prep_image_for_file_close","H5C__serialize_cache","H5C__serialize_single_entry","H5C__tag_entry","H5C__trace_tear_down_logging","H5C__trace_write_create_fd_log_msg","H5C__trace_write_destroy_fd_log_msg","H5C__trace_write_expunge_entry_log_msg","H5C__trace_write_flush_cache_log_msg","H5C__trace_write_insert_entry_log_msg","H5C__trace_write_mark_entry_clean_log_msg","H5C__trace_write_mark_entry_dirty_log_msg","H5C__trace_write_mark_serialized_entry_log_msg","H5C__trace_write_mark_unserialized_entry_log_msg","H5C__trace_write_move_entry_log_msg","H5C__trace_write_pin_entry_log_msg","H5C__trace_write_protect_entry_log_msg","H5C__trace_write_remove_entry_log_msg","H5C__trace_write_resize_entry_log_msg","H5C__trace_write_set_cache_config_log_msg","H5C__trace_write_unpin_entry_log_msg","H5C__trace_write_unprotect_entry_log_msg","H5C__unpin_entry_from_client","H5C__untag_entry","H5C__verify_cork_tag_test","H5C__verify_cork_tag_test_cb","H5C__verify_len_eoa.isra.0","H5C_apply_candidate_list","H5C_cache_image_pending","H5C_cache_image_status","H5C_clear_coll_entries","H5C_construct_candidate_list__clean_cache","H5C_construct_candidate_list__min_clean","H5C_cork","H5C_create","H5C_create_flush_dependency","H5C_def_auto_resize_rpt_fcn","H5C_dest","H5C_destroy_flush_dependency","H5C_evict","H5C_evict_tagged_entries","H5C_expunge_entry","H5C_expunge_tag_type_metadata","H5C_flush_cache","H5C_flush_tagged_entries","H5C_flush_to_min_clean","H5C_get_aux_ptr","H5C_get_cache_auto_resize_config","H5C_get_cache_flush_in_progress","H5C_get_cache_hit_rate","H5C_get_cache_size","H5C_get_entry_ring","H5C_get_entry_status","H5C_get_evictions_enabled","H5C_get_ignore_tags","H5C_get_logging_status","H5C_get_mdc_image_info","H5C_get_num_objs_corked","H5C_get_tag","H5C_ignore_tags","H5C_insert_entry","H5C_load_cache_image_on_next_protect","H5C_log_set_up","H5C_log_tear_down","H5C_log_write_create_cache_msg","H5C_log_write_create_fd_msg","H5C_log_write_destroy_cache_msg","H5C_log_write_destroy_fd_msg","H5C_log_write_evict_cache_msg","H5C_log_write_expunge_entry_msg","H5C_log_write_flush_cache_msg","H5C_log_write_insert_entry_msg","H5C_log_write_mark_entry_clean_msg","H5C_log_write_mark_entry_dirty_msg","H5C_log_write_mark_serialized_entry_msg","H5C_log_write_mark_unserialized_entry_msg","H5C_log_write_move_entry_msg","H5C_log_write_pin_entry_msg","H5C_log_write_protect_entry_msg","H5C_log_write_remove_entry_msg","H5C_log_write_resize_entry_msg","H5C_log_write_set_cache_config_msg","H5C_log_write_unpin_entry_msg","H5C_log_write_unprotect_entry_msg","H5C_mark_entries_as_clean","H5C_mark_entry_clean","H5C_mark_entry_dirty","H5C_mark_entry_serialized","H5C_mark_entry_unserialized","H5C_move_entry","H5C_pin_protected_entry","H5C_prep_for_file_close","H5C_protect","H5C_remove_entry","H5C_reset_cache_hit_rate_stats","H5C_resize_entry","H5C_retag_entries","H5C_set_cache_auto_resize_config","H5C_set_cache_image_config","H5C_set_evictions_enabled","H5C_set_prefix","H5C_set_slist_enabled","H5C_start_logging","H5C_stats","H5C_stats__reset","H5C_stop_logging","H5C_unpin_entry","H5C_unprotect","H5C_unsettle_entry_ring","H5C_unsettle_ring","H5C_validate_cache_image_config","H5C_validate_resize_config","H5D__alloc_storage","H5D__append_flush_setup.part.0","H5D__bt2_compare","H5D__bt2_crt_context","H5D__bt2_dst_context","H5D__bt2_filt_debug","H5D__bt2_filt_decode","H5D__bt2_filt_encode","H5D__bt2_found_cb","H5D__bt2_idx_close","H5D__bt2_idx_copy_setup","H5D__bt2_idx_copy_shutdown","H5D__bt2_idx_create","H5D__bt2_idx_delete","H5D__bt2_idx_dest","H5D__bt2_idx_dump","H5D__bt2_idx_get_addr","H5D__bt2_idx_init","H5D__bt2_idx_insert","H5D__bt2_idx_is_open","H5D__bt2_idx_is_space_alloc","H5D__bt2_idx_iterate","H5D__bt2_idx_iterate_cb","H5D__bt2_idx_load_metadata","H5D__bt2_idx_open","H5D__bt2_idx_remove","H5D__bt2_idx_reset","H5D__bt2_idx_size","H5D__bt2_mod_cb","H5D__bt2_remove_cb","H5D__bt2_store","H5D__bt2_unfilt_debug","H5D__bt2_unfilt_decode","H5D__bt2_unfilt_encode","H5D__btree2_idx_depend","H5D__btree_cmp2","H5D__btree_cmp3","H5D__btree_debug_key","H5D__btree_decode_key","H5D__btree_encode_key","H5D__btree_found","H5D__btree_get_shared","H5D__btree_idx_close","H5D__btree_idx_copy_setup","H5D__btree_idx_copy_shutdown","H5D__btree_idx_create","H5D__btree_idx_delete","H5D__btree_idx_dest","H5D__btree_idx_dump","H5D__btree_idx_get_addr","H5D__btree_idx_init","H5D__btree_idx_insert","H5D__btree_idx_is_open","H5D__btree_idx_is_space_alloc","H5D__btree_idx_iterate","H5D__btree_idx_iterate_cb","H5D__btree_idx_load_metadata","H5D__btree_idx_open","H5D__btree_idx_remove","H5D__btree_idx_reset","H5D__btree_idx_size","H5D__btree_insert","H5D__btree_new_node","H5D__btree_remove","H5D__btree_shared_create","H5D__btree_shared_free","H5D__build_file_prefix.isra.0","H5D__cache_dataspace_info","H5D__chunk_addrmap","H5D__chunk_addrmap_cb","H5D__chunk_allocate","H5D__chunk_allocated","H5D__chunk_allocated_cb","H5D__chunk_bh_info","H5D__chunk_cache_evict","H5D__chunk_cache_evict.constprop.0","H5D__chunk_cacheable","H5D__chunk_cmp_coll_fill_info","H5D__chunk_construct","H5D__chunk_copy","H5D__chunk_copy_cb","H5D__chunk_create","H5D__chunk_delete","H5D__chunk_dest","H5D__chunk_direct_read","H5D__chunk_direct_write","H5D__chunk_dump_index","H5D__chunk_dump_index_cb","H5D__chunk_file_alloc","H5D__chunk_flush","H5D__chunk_flush_entry","H5D__chunk_flush_entry.constprop.0","H5D__chunk_format_convert","H5D__chunk_format_convert_cb","H5D__chunk_get_offset_copy","H5D__chunk_index_empty","H5D__chunk_index_empty_cb","H5D__chunk_init","H5D__chunk_io_init","H5D__chunk_io_term","H5D__chunk_is_data_cached","H5D__chunk_is_partial_edge_chunk","H5D__chunk_is_space_alloc","H5D__chunk_iter","H5D__chunk_iter_cb","H5D__chunk_lock.constprop.0","H5D__chunk_lookup","H5D__chunk_mdio_init","H5D__chunk_mem_alloc","H5D__chunk_mem_free","H5D__chunk_mem_realloc","H5D__chunk_mem_xfree","H5D__chunk_prune_by_extent","H5D__chunk_read","H5D__chunk_set_info","H5D__chunk_set_info_real","H5D__chunk_set_sizes","H5D__chunk_unlock.constprop.0","H5D__chunk_update_cache","H5D__chunk_update_old_edge_chunks","H5D__chunk_write","H5D__close_cb","H5D__cmp_chunk_redistribute_info","H5D__cmp_chunk_redistribute_info_orig_owner","H5D__cmp_filtered_collective_io_info_entry","H5D__cmp_piece_addr","H5D__collective_read","H5D__collective_write","H5D__compact_construct","H5D__compact_copy","H5D__compact_dest","H5D__compact_fill","H5D__compact_flush","H5D__compact_init","H5D__compact_io_init","H5D__compact_iovv_memmanage_cb","H5D__compact_is_space_alloc","H5D__compact_readvv","H5D__compact_writevv","H5D__compound_opt_read","H5D__contig_alloc","H5D__contig_check","H5D__contig_construct","H5D__contig_copy","H5D__contig_delete","H5D__contig_fill","H5D__contig_flush","H5D__contig_init","H5D__contig_io_init","H5D__contig_io_term","H5D__contig_is_data_cached","H5D__contig_is_space_alloc","H5D__contig_mdio_init","H5D__contig_read","H5D__contig_readvv","H5D__contig_readvv_cb","H5D__contig_readvv_sieve_cb","H5D__contig_write","H5D__contig_writevv","H5D__contig_writevv_cb","H5D__contig_writevv_sieve_cb","H5D__create","H5D__create_named","H5D__current_cache_size_test","H5D__earray_crt_context","H5D__earray_crt_dbg_context","H5D__earray_debug","H5D__earray_decode","H5D__earray_dst_context","H5D__earray_dst_dbg_context","H5D__earray_encode","H5D__earray_fill","H5D__earray_filt_debug","H5D__earray_filt_decode","H5D__earray_filt_encode","H5D__earray_filt_fill","H5D__earray_idx_close","H5D__earray_idx_copy_setup","H5D__earray_idx_copy_shutdown","H5D__earray_idx_create","H5D__earray_idx_delete","H5D__earray_idx_delete_cb","H5D__earray_idx_depend","H5D__earray_idx_dest","H5D__earray_idx_dump","H5D__earray_idx_get_addr","H5D__earray_idx_init","H5D__earray_idx_insert","H5D__earray_idx_is_open","H5D__earray_idx_is_space_alloc","H5D__earray_idx_iterate","H5D__earray_idx_iterate_cb","H5D__earray_idx_load_metadata","H5D__earray_idx_open","H5D__earray_idx_remove","H5D__earray_idx_reset","H5D__earray_idx_resize","H5D__earray_idx_size","H5D__efl_bh_info","H5D__efl_construct","H5D__efl_init","H5D__efl_io_init","H5D__efl_is_space_alloc","H5D__efl_readvv","H5D__efl_readvv_cb","H5D__efl_writevv","H5D__efl_writevv_cb","H5D__farray_crt_context","H5D__farray_crt_dbg_context","H5D__farray_debug","H5D__farray_decode","H5D__farray_dst_context","H5D__farray_dst_dbg_context","H5D__farray_encode","H5D__farray_fill","H5D__farray_filt_debug","H5D__farray_filt_decode","H5D__farray_filt_encode","H5D__farray_filt_fill","H5D__farray_idx_close","H5D__farray_idx_copy_setup","H5D__farray_idx_copy_shutdown","H5D__farray_idx_create","H5D__farray_idx_delete","H5D__farray_idx_delete_cb","H5D__farray_idx_depend","H5D__farray_idx_dest","H5D__farray_idx_dump","H5D__farray_idx_get_addr","H5D__farray_idx_init","H5D__farray_idx_insert","H5D__farray_idx_is_open","H5D__farray_idx_is_space_alloc","H5D__farray_idx_iterate","H5D__farray_idx_iterate_cb","H5D__farray_idx_load_metadata","H5D__farray_idx_open","H5D__farray_idx_remove","H5D__farray_idx_reset","H5D__farray_idx_size","H5D__fill","H5D__fill_init","H5D__fill_refill_vl","H5D__fill_term","H5D__flush","H5D__flush_all_cb","H5D__flush_real","H5D__flush_sieve_buf","H5D__format_convert","H5D__free_piece_info","H5D__gather_file","H5D__gather_mem","H5D__get_chunk_info","H5D__get_chunk_info_by_coord","H5D__get_chunk_info_by_coord_cb","H5D__get_chunk_info_cb","H5D__get_chunk_storage_size","H5D__get_num_chunks","H5D__get_num_chunks_cb","H5D__get_offset","H5D__get_space","H5D__get_space_status","H5D__get_storage_size","H5D__get_type","H5D__init_storage","H5D__inter_collective_io","H5D__ioinfo_adjust","H5D__layout_compact_dirty_test","H5D__layout_contig_size_test","H5D__layout_idx_type_test","H5D__layout_meta_size","H5D__layout_oh_create","H5D__layout_oh_read","H5D__layout_oh_write","H5D__layout_set_io_ops","H5D__layout_set_latest_indexing","H5D__layout_set_version","H5D__layout_type_test","H5D__layout_version_test","H5D__link_chunk_filtered_collective_io","H5D__link_piece_collective_io.constprop.0","H5D__mark","H5D__mpio_collective_filtered_chunk_read.constprop.0","H5D__mpio_collective_filtered_chunk_reinsert","H5D__mpio_collective_filtered_chunk_update","H5D__mpio_collective_filtered_vec_io","H5D__mpio_get_chunk_alloc_info_types.constprop.0","H5D__mpio_get_no_coll_cause_strings","H5D__mpio_opt_possible","H5D__mpio_redistribute_shared_chunks","H5D__mpio_select_read","H5D__mpio_select_write","H5D__mpio_share_chunk_modification_data.constprop.0","H5D__multi_chunk_collective_io","H5D__multi_chunk_filtered_collective_io.constprop.0","H5D__new","H5D__none_idx_close","H5D__none_idx_copy_setup","H5D__none_idx_create","H5D__none_idx_delete","H5D__none_idx_dump","H5D__none_idx_get_addr","H5D__none_idx_is_open","H5D__none_idx_is_space_alloc","H5D__none_idx_iterate","H5D__none_idx_load_metadata","H5D__none_idx_open","H5D__none_idx_remove","H5D__none_idx_reset","H5D__none_idx_size","H5D__nonexistent_readvv","H5D__nonexistent_readvv_cb","H5D__open_name","H5D__piece_file_cb","H5D__piece_io","H5D__piece_mem_cb","H5D__read","H5D__read_api_common","H5D__read_api_common.constprop.0","H5D__refresh","H5D__scatgath_read","H5D__scatgath_read_select","H5D__scatgath_write","H5D__scatgath_write_select","H5D__scatter_file","H5D__scatter_mem","H5D__select_io","H5D__select_read","H5D__select_write","H5D__set_extent","H5D__single_idx_close","H5D__single_idx_copy_setup","H5D__single_idx_create","H5D__single_idx_delete","H5D__single_idx_dump","H5D__single_idx_get_addr","H5D__single_idx_init","H5D__single_idx_insert","H5D__single_idx_is_open","H5D__single_idx_is_space_alloc","H5D__single_idx_iterate","H5D__single_idx_load_metadata","H5D__single_idx_open","H5D__single_idx_remove","H5D__single_idx_reset","H5D__single_idx_size","H5D__typeinfo_init","H5D__typeinfo_init_phase2","H5D__typeinfo_init_phase3.part.0","H5D__virtual_build_source_name.part.0","H5D__virtual_copy","H5D__virtual_copy_layout","H5D__virtual_copy_parsed_name","H5D__virtual_delete","H5D__virtual_flush","H5D__virtual_hold_source_dset_files","H5D__virtual_init","H5D__virtual_io_init","H5D__virtual_is_data_cached","H5D__virtual_is_space_alloc","H5D__virtual_open_source_dset","H5D__virtual_post_io","H5D__virtual_pre_io.isra.0","H5D__virtual_read","H5D__virtual_read_one","H5D__virtual_refresh_source_dset","H5D__virtual_refresh_source_dsets","H5D__virtual_release_source_dset_files","H5D__virtual_reset_layout","H5D__virtual_set_extent_unlim","H5D__virtual_store_layout","H5D__virtual_str_append","H5D__virtual_write","H5D__virtual_write_one","H5D__vlen_get_buf_size","H5D__vlen_get_buf_size_alloc","H5D__vlen_get_buf_size_cb","H5D__vlen_get_buf_size_gen","H5D__vlen_get_buf_size_gen_cb","H5D__write","H5D__write_api_common","H5D__write_api_common.constprop.0","H5D_btree_debug","H5D_chunk_idx_reset","H5D_close","H5D_close.localalias","H5D_flush_all","H5D_get_access_plist","H5D_get_create_plist","H5D_get_dcpl_id","H5D_init","H5D_mult_refresh_close","H5D_mult_refresh_reopen","H5D_nameof","H5D_oloc","H5D_open","H5D_select_io_mem","H5D_term_package","H5D_top_term_package","H5D_virtual_check_mapping_post","H5D_virtual_check_mapping_pre","H5D_virtual_check_min_dims","H5D_virtual_free_parsed_name","H5D_virtual_parse_source_name","H5D_virtual_update_min_dims","H5Dchunk_iter","H5Dclose","H5Dclose_async","H5Dcreate1","H5Dcreate2","H5Dcreate_anon","H5Dcreate_async","H5Ddebug","H5Dextend","H5Dfill","H5Dflush","H5Dformat_convert","H5Dgather","H5Dget_access_plist","H5Dget_chunk_index_type","H5Dget_chunk_info","H5Dget_chunk_info_by_coord","H5Dget_chunk_storage_size","H5Dget_create_plist","H5Dget_num_chunks","H5Dget_offset","H5Dget_space","H5Dget_space_async","H5Dget_space_status","H5Dget_storage_size","H5Dget_type","H5Diterate","H5Dopen1","H5Dopen2","H5Dopen_async","H5Dread","H5Dread_async","H5Dread_chunk","H5Dread_multi","H5Dread_multi_async","H5Drefresh","H5Dscatter","H5Dset_extent","H5Dset_extent_async","H5Dvlen_get_buf_size","H5Dvlen_reclaim","H5Dwrite","H5Dwrite_async","H5Dwrite_chunk","H5Dwrite_multi","H5Dwrite_multi_async","H5EA__cache_dblk_page_deserialize","H5EA__cache_dblk_page_free_icr","H5EA__cache_dblk_page_get_initial_load_size","H5EA__cache_dblk_page_image_len","H5EA__cache_dblk_page_notify","H5EA__cache_dblk_page_serialize","H5EA__cache_dblk_page_verify_chksum","H5EA__cache_dblock_deserialize","H5EA__cache_dblock_free_icr","H5EA__cache_dblock_fsf_size","H5EA__cache_dblock_get_initial_load_size","H5EA__cache_dblock_image_len","H5EA__cache_dblock_notify","H5EA__cache_dblock_serialize","H5EA__cache_dblock_verify_chksum","H5EA__cache_hdr_deserialize","H5EA__cache_hdr_free_icr","H5EA__cache_hdr_get_initial_load_size","H5EA__cache_hdr_image_len","H5EA__cache_hdr_notify","H5EA__cache_hdr_serialize","H5EA__cache_hdr_verify_chksum","H5EA__cache_iblock_deserialize","H5EA__cache_iblock_free_icr","H5EA__cache_iblock_get_initial_load_size","H5EA__cache_iblock_image_len","H5EA__cache_iblock_notify","H5EA__cache_iblock_serialize","H5EA__cache_iblock_verify_chksum","H5EA__cache_sblock_deserialize","H5EA__cache_sblock_free_icr","H5EA__cache_sblock_get_initial_load_size","H5EA__cache_sblock_image_len","H5EA__cache_sblock_notify","H5EA__cache_sblock_serialize","H5EA__cache_sblock_verify_chksum","H5EA__cmp_cparam_test","H5EA__create_flush_depend","H5EA__dblk_page_alloc","H5EA__dblk_page_create","H5EA__dblk_page_dest","H5EA__dblk_page_protect","H5EA__dblk_page_unprotect","H5EA__dblock_alloc","H5EA__dblock_create","H5EA__dblock_debug","H5EA__dblock_delete","H5EA__dblock_dest","H5EA__dblock_protect","H5EA__dblock_sblk_idx","H5EA__dblock_unprotect","H5EA__destroy_flush_depend","H5EA__get_cparam_test","H5EA__hdr_alloc","H5EA__hdr_alloc_elmts","H5EA__hdr_create","H5EA__hdr_debug","H5EA__hdr_decr","H5EA__hdr_delete","H5EA__hdr_dest","H5EA__hdr_free_elmts","H5EA__hdr_fuse_decr","H5EA__hdr_fuse_incr","H5EA__hdr_incr","H5EA__hdr_init","H5EA__hdr_modified","H5EA__hdr_protect","H5EA__hdr_unprotect","H5EA__iblock_alloc","H5EA__iblock_create","H5EA__iblock_debug","H5EA__iblock_delete","H5EA__iblock_dest","H5EA__iblock_protect","H5EA__iblock_unprotect","H5EA__lookup_elmt.constprop.0.isra.0","H5EA__sblock_alloc","H5EA__sblock_create","H5EA__sblock_debug","H5EA__sblock_delete","H5EA__sblock_dest","H5EA__sblock_protect","H5EA__sblock_unprotect","H5EA__test_crt_context","H5EA__test_crt_dbg_context","H5EA__test_debug","H5EA__test_decode","H5EA__test_dst_context","H5EA__test_dst_dbg_context","H5EA__test_encode","H5EA__test_fill","H5EA_close","H5EA_create","H5EA_delete","H5EA_depend","H5EA_get","H5EA_get_addr","H5EA_get_nelmts","H5EA_get_stats","H5EA_iterate","H5EA_open","H5EA_patch_file","H5EA_set","H5ES__cancel","H5ES__cancel_cb","H5ES__close_cb","H5ES__close_failed_cb","H5ES__create","H5ES__event_completed","H5ES__event_free","H5ES__event_new","H5ES__get_err_info","H5ES__get_err_info_cb","H5ES__get_requests","H5ES__get_requests_cb","H5ES__insert_request","H5ES__list_append","H5ES__list_count","H5ES__list_iterate","H5ES__list_remove","H5ES__op_complete","H5ES__wait","H5ES__wait_cb","H5ES_init","H5ES_insert","H5ES_term_package","H5EScancel","H5ESclose","H5EScreate","H5ESfree_err_info","H5ESget_count","H5ESget_err_count","H5ESget_err_info","H5ESget_err_status","H5ESget_op_counter","H5ESget_requests","H5ESinsert_request","H5ESregister_complete_func","H5ESregister_insert_func","H5ESwait","H5E__append_stack","H5E__clear_entries","H5E__clear_stack","H5E__close_msg","H5E__close_msg_cb","H5E__close_stack","H5E__create_msg","H5E__get_auto","H5E__get_class_name","H5E__get_current_stack","H5E__get_msg","H5E__get_num","H5E__pop","H5E__print","H5E__print2","H5E__push_stack","H5E__register_class","H5E__set_auto","H5E__set_current_stack","H5E__set_default_auto","H5E__unregister_class","H5E__walk","H5E__walk1_cb","H5E__walk2_cb","H5E_clear_stack","H5E_dump_api_stack","H5E_init","H5E_pause_stack","H5E_printf_stack","H5E_resume_stack","H5E_term_package","H5Eappend_stack","H5Eauto_is_v2","H5Eclear1","H5Eclear2","H5Eclose_msg","H5Eclose_stack","H5Ecreate_msg","H5Ecreate_stack","H5Eget_auto1","H5Eget_auto2","H5Eget_class_name","H5Eget_current_stack","H5Eget_major","H5Eget_minor","H5Eget_msg","H5Eget_num","H5Eis_paused","H5Epause_stack","H5Epop","H5Eprint1","H5Eprint2","H5Epush1","H5Epush2","H5Eregister_class","H5Eresume_stack","H5Eset_auto1","H5Eset_auto2","H5Eset_current_stack","H5Eunregister_class","H5Ewalk1","H5Ewalk2","H5FA__cache_dblk_page_deserialize","H5FA__cache_dblk_page_free_icr","H5FA__cache_dblk_page_get_initial_load_size","H5FA__cache_dblk_page_image_len","H5FA__cache_dblk_page_notify","H5FA__cache_dblk_page_serialize","H5FA__cache_dblk_page_verify_chksum","H5FA__cache_dblock_deserialize","H5FA__cache_dblock_free_icr","H5FA__cache_dblock_fsf_size","H5FA__cache_dblock_get_initial_load_size","H5FA__cache_dblock_image_len","H5FA__cache_dblock_notify","H5FA__cache_dblock_serialize","H5FA__cache_dblock_verify_chksum","H5FA__cache_hdr_deserialize","H5FA__cache_hdr_free_icr","H5FA__cache_hdr_get_initial_load_size","H5FA__cache_hdr_image_len","H5FA__cache_hdr_notify","H5FA__cache_hdr_serialize","H5FA__cache_hdr_verify_chksum","H5FA__cmp_cparam_test","H5FA__create_flush_depend","H5FA__dblk_page_alloc","H5FA__dblk_page_create","H5FA__dblk_page_dest","H5FA__dblk_page_protect","H5FA__dblk_page_unprotect","H5FA__dblock_alloc","H5FA__dblock_create","H5FA__dblock_debug","H5FA__dblock_delete","H5FA__dblock_dest","H5FA__dblock_protect","H5FA__dblock_unprotect","H5FA__destroy_flush_depend","H5FA__get_cparam_test","H5FA__hdr_alloc","H5FA__hdr_create","H5FA__hdr_debug","H5FA__hdr_decr","H5FA__hdr_delete","H5FA__hdr_dest","H5FA__hdr_fuse_decr","H5FA__hdr_fuse_incr","H5FA__hdr_incr","H5FA__hdr_init","H5FA__hdr_modified","H5FA__hdr_protect","H5FA__hdr_unprotect","H5FA__test_crt_context","H5FA__test_crt_dbg_context","H5FA__test_debug","H5FA__test_decode","H5FA__test_dst_context","H5FA__test_encode","H5FA__test_fill","H5FA_close","H5FA_create","H5FA_delete","H5FA_depend","H5FA_get","H5FA_get_addr","H5FA_get_nelmts","H5FA_get_stats","H5FA_iterate","H5FA_open","H5FA_patch_file","H5FA_set","H5FD__alloc_real","H5FD__copy_plist","H5FD__core_close","H5FD__core_cmp","H5FD__core_delete","H5FD__core_fapl_get","H5FD__core_flush","H5FD__core_flush.part.0","H5FD__core_get_eoa","H5FD__core_get_eof","H5FD__core_get_handle","H5FD__core_lock","H5FD__core_open","H5FD__core_query","H5FD__core_read","H5FD__core_set_eoa","H5FD__core_term","H5FD__core_truncate","H5FD__core_unlock","H5FD__core_write","H5FD__core_write_to_bstore","H5FD__extend","H5FD__family_close","H5FD__family_cmp","H5FD__family_delete","H5FD__family_fapl_copy","H5FD__family_fapl_free","H5FD__family_fapl_get","H5FD__family_flush","H5FD__family_get_default_config","H5FD__family_get_default_printf_filename","H5FD__family_get_eoa","H5FD__family_get_eof","H5FD__family_get_handle","H5FD__family_lock","H5FD__family_open","H5FD__family_query","H5FD__family_read","H5FD__family_sb_decode","H5FD__family_sb_encode","H5FD__family_sb_size","H5FD__family_set_eoa","H5FD__family_term","H5FD__family_truncate","H5FD__family_unlock","H5FD__family_write","H5FD__free_cls","H5FD__free_real","H5FD__get_driver_cb","H5FD__log_alloc","H5FD__log_close","H5FD__log_cmp","H5FD__log_delete","H5FD__log_fapl_copy","H5FD__log_fapl_free","H5FD__log_fapl_get","H5FD__log_free","H5FD__log_get_eoa","H5FD__log_get_eof","H5FD__log_get_handle","H5FD__log_lock","H5FD__log_open","H5FD__log_query","H5FD__log_read","H5FD__log_set_eoa","H5FD__log_term","H5FD__log_truncate","H5FD__log_unlock","H5FD__log_write","H5FD__mpio_close","H5FD__mpio_ctl","H5FD__mpio_delete","H5FD__mpio_flush","H5FD__mpio_get_eoa","H5FD__mpio_get_eof","H5FD__mpio_get_handle","H5FD__mpio_open","H5FD__mpio_query","H5FD__mpio_read","H5FD__mpio_read_selection","H5FD__mpio_read_vector","H5FD__mpio_set_eoa","H5FD__mpio_term","H5FD__mpio_truncate","H5FD__mpio_vector_build_types.constprop.0","H5FD__mpio_write","H5FD__mpio_write_selection","H5FD__mpio_write_vector","H5FD__onion_archival_index_find","H5FD__onion_archival_index_is_valid","H5FD__onion_archival_index_list_sort_cmp","H5FD__onion_close","H5FD__onion_ctl","H5FD__onion_get_eoa","H5FD__onion_get_eof","H5FD__onion_header_decode","H5FD__onion_header_encode","H5FD__onion_history_decode","H5FD__onion_history_encode","H5FD__onion_ingest_header","H5FD__onion_ingest_history","H5FD__onion_ingest_revision_record","H5FD__onion_merge_revision_index_into_archival_index","H5FD__onion_open","H5FD__onion_read","H5FD__onion_revision_index_destroy","H5FD__onion_revision_index_find","H5FD__onion_revision_index_init","H5FD__onion_revision_index_insert","H5FD__onion_revision_record_decode","H5FD__onion_revision_record_encode","H5FD__onion_sb_decode","H5FD__onion_sb_encode","H5FD__onion_sb_size","H5FD__onion_set_eoa","H5FD__onion_term","H5FD__onion_write","H5FD__onion_write_final_history","H5FD__onion_write_header","H5FD__onion_write_history","H5FD__read_selection_translate","H5FD__sec2_close","H5FD__sec2_cmp","H5FD__sec2_ctl","H5FD__sec2_delete","H5FD__sec2_get_eoa","H5FD__sec2_get_eof","H5FD__sec2_get_handle","H5FD__sec2_lock","H5FD__sec2_open","H5FD__sec2_query","H5FD__sec2_read","H5FD__sec2_set_eoa","H5FD__sec2_term","H5FD__sec2_truncate","H5FD__sec2_unlock","H5FD__sec2_write","H5FD__selection_build_types.constprop.0","H5FD__sort_io_req_real.constprop.0","H5FD__splitter_alloc","H5FD__splitter_close","H5FD__splitter_cmp","H5FD__splitter_ctl","H5FD__splitter_delete","H5FD__splitter_fapl_copy","H5FD__splitter_fapl_free","H5FD__splitter_fapl_get","H5FD__splitter_flush","H5FD__splitter_free","H5FD__splitter_get_default_wo_path.constprop.0","H5FD__splitter_get_eoa","H5FD__splitter_get_eof","H5FD__splitter_get_handle","H5FD__splitter_get_type_map","H5FD__splitter_lock","H5FD__splitter_log_error.part.0.isra.0","H5FD__splitter_open","H5FD__splitter_populate_config","H5FD__splitter_query","H5FD__splitter_read","H5FD__splitter_sb_decode","H5FD__splitter_sb_encode","H5FD__splitter_sb_size","H5FD__splitter_set_eoa","H5FD__splitter_term","H5FD__splitter_truncate","H5FD__splitter_unlock","H5FD__splitter_write","H5FD__srt_tmp_cmp","H5FD__supports_swmr_test","H5FD__write_selection_translate","H5FD_alloc","H5FD_check_plugin_load","H5FD_close","H5FD_cmp","H5FD_core_init","H5FD_ctl","H5FD_delete","H5FD_driver_query","H5FD_family_init","H5FD_fapl_get","H5FD_flush","H5FD_free","H5FD_free_driver_info","H5FD_get_base_addr","H5FD_get_class","H5FD_get_class.localalias","H5FD_get_driver_id_by_name","H5FD_get_driver_id_by_value","H5FD_get_eoa","H5FD_get_eof","H5FD_get_feature_flags","H5FD_get_fileno","H5FD_get_fs_type_map","H5FD_get_maxaddr","H5FD_get_mpio_atomicity","H5FD_get_vfd_handle","H5FD_init","H5FD_is_driver_registered_by_name","H5FD_is_driver_registered_by_value","H5FD_locate_signature","H5FD_lock","H5FD_log_init","H5FD_mpi_MPIOff_to_haddr","H5FD_mpi_get_comm","H5FD_mpi_get_file_sync_required","H5FD_mpi_get_info","H5FD_mpi_get_rank","H5FD_mpi_get_size","H5FD_mpi_haddr_to_MPIOff","H5FD_mpio_init","H5FD_multi_alloc","H5FD_multi_close","H5FD_multi_cmp","H5FD_multi_ctl","H5FD_multi_delete","H5FD_multi_fapl_copy","H5FD_multi_fapl_free","H5FD_multi_fapl_get","H5FD_multi_flush","H5FD_multi_free","H5FD_multi_get_eoa","H5FD_multi_get_eof","H5FD_multi_get_handle","H5FD_multi_get_type_map","H5FD_multi_init","H5FD_multi_lock","H5FD_multi_open","H5FD_multi_populate_config","H5FD_multi_query","H5FD_multi_read","H5FD_multi_sb_decode","H5FD_multi_sb_decode.part.0","H5FD_multi_sb_encode","H5FD_multi_sb_size","H5FD_multi_set_eoa","H5FD_multi_term","H5FD_multi_truncate","H5FD_multi_unlock","H5FD_multi_write","H5FD_onion_init","H5FD_open","H5FD_read","H5FD_read_from_selection","H5FD_read_selection","H5FD_read_selection_id","H5FD_read_vector","H5FD_read_vector_from_selection","H5FD_register","H5FD_register_driver_by_name","H5FD_register_driver_by_value","H5FD_sb_encode","H5FD_sb_load","H5FD_sb_size","H5FD_sec2_init","H5FD_set_base_addr","H5FD_set_eoa","H5FD_set_feature_flags","H5FD_set_mpio_atomicity","H5FD_set_paged_aggr","H5FD_sort_selection_io_req","H5FD_sort_vector_io_req","H5FD_split_populate_config.constprop.0","H5FD_splitter_init","H5FD_stdio_alloc","H5FD_stdio_close","H5FD_stdio_cmp","H5FD_stdio_delete","H5FD_stdio_flush","H5FD_stdio_get_eoa","H5FD_stdio_get_eof","H5FD_stdio_get_handle","H5FD_stdio_init","H5FD_stdio_lock","H5FD_stdio_open","H5FD_stdio_query","H5FD_stdio_read","H5FD_stdio_set_eoa","H5FD_stdio_term","H5FD_stdio_truncate","H5FD_stdio_unlock","H5FD_stdio_write","H5FD_term_package","H5FD_truncate","H5FD_try_extend","H5FD_unlock","H5FD_write","H5FD_write_from_selection","H5FD_write_selection","H5FD_write_selection_id","H5FD_write_vector","H5FD_write_vector_from_selection","H5FDalloc","H5FDclose","H5FDcmp","H5FDctl","H5FDdelete","H5FDdriver_query","H5FDflush","H5FDfree","H5FDget_eoa","H5FDget_eof","H5FDget_vfd_handle","H5FDis_driver_registered_by_name","H5FDis_driver_registered_by_value","H5FDlock","H5FDonion_get_revision_count","H5FDopen","H5FDperform_init","H5FDquery","H5FDread","H5FDread_from_selection","H5FDread_selection","H5FDread_vector","H5FDread_vector_from_selection","H5FDregister","H5FDset_eoa","H5FDtruncate","H5FDunlock","H5FDunregister","H5FDwrite","H5FDwrite_from_selection","H5FDwrite_selection","H5FDwrite_vector","H5FDwrite_vector_from_selection","H5FL__blk_create_list.part.0","H5FL__blk_gc_list","H5FL_arr_calloc","H5FL_arr_free","H5FL_arr_malloc","H5FL_arr_realloc","H5FL_blk_calloc","H5FL_blk_free","H5FL_blk_free_block_avail","H5FL_blk_malloc","H5FL_blk_realloc","H5FL_fac_calloc","H5FL_fac_free","H5FL_fac_init","H5FL_fac_malloc","H5FL_fac_term","H5FL_garbage_coll","H5FL_get_free_list_sizes","H5FL_reg_calloc","H5FL_reg_free","H5FL_reg_malloc","H5FL_seq_calloc","H5FL_seq_free","H5FL_seq_malloc","H5FL_seq_realloc","H5FL_set_free_list_limits","H5FL_term_package","H5FO_create","H5FO_delete","H5FO_dest","H5FO_insert","H5FO_mark","H5FO_marked","H5FO_opened","H5FO_top_count","H5FO_top_create","H5FO_top_decr","H5FO_top_dest","H5FO_top_incr","H5FS__cache_hdr_deserialize","H5FS__cache_hdr_free_icr","H5FS__cache_hdr_get_initial_load_size","H5FS__cache_hdr_image_len","H5FS__cache_hdr_notify","H5FS__cache_hdr_pre_serialize","H5FS__cache_hdr_serialize","H5FS__cache_hdr_verify_chksum","H5FS__cache_sinfo_deserialize","H5FS__cache_sinfo_free_icr","H5FS__cache_sinfo_get_initial_load_size","H5FS__cache_sinfo_image_len","H5FS__cache_sinfo_notify","H5FS__cache_sinfo_pre_serialize","H5FS__cache_sinfo_serialize","H5FS__cache_sinfo_verify_chksum","H5FS__cmp_cparam_test","H5FS__create_flush_depend","H5FS__decr","H5FS__destroy_flush_depend","H5FS__dirty","H5FS__get_cparam_test","H5FS__hdr_dest","H5FS__incr","H5FS__iterate_node_cb","H5FS__iterate_sect_cb","H5FS__new","H5FS__sect_init_cls.part.0","H5FS__sect_link","H5FS__sect_merge","H5FS__sect_node_new.part.0","H5FS__sect_remove_real","H5FS__sect_unlink_rest","H5FS__sinfo_dest","H5FS__sinfo_free_node_cb","H5FS__sinfo_free_sect_cb","H5FS__sinfo_lock","H5FS__sinfo_new","H5FS__sinfo_serialize_node_cb","H5FS__sinfo_serialize_sect_cb","H5FS__sinfo_unlock","H5FS__size_node_decr.isra.0","H5FS_alloc_hdr","H5FS_alloc_sect","H5FS_close","H5FS_create","H5FS_debug","H5FS_delete","H5FS_free","H5FS_get_sect_count","H5FS_open","H5FS_sect_add","H5FS_sect_change_class","H5FS_sect_debug","H5FS_sect_find","H5FS_sect_iterate","H5FS_sect_remove","H5FS_sect_stats","H5FS_sect_try_extend","H5FS_sect_try_merge","H5FS_sect_try_shrink_eoa","H5FS_sects_debug","H5FS_size","H5FS_stat_info","H5FS_vfd_alloc_hdr_and_section_info_if_needed","H5F_Kvalue","H5F__accum_adjust","H5F__accum_flush","H5F__accum_free","H5F__accum_read","H5F__accum_reset","H5F__accum_write","H5F__alloc","H5F__build_actual_name","H5F__build_name","H5F__cache_drvrinfo_deserialize","H5F__cache_drvrinfo_free_icr","H5F__cache_drvrinfo_get_final_load_size","H5F__cache_drvrinfo_get_initial_load_size","H5F__cache_drvrinfo_image_len","H5F__cache_drvrinfo_serialize","H5F__cache_superblock_deserialize","H5F__cache_superblock_free_icr","H5F__cache_superblock_get_final_load_size","H5F__cache_superblock_get_initial_load_size","H5F__cache_superblock_image_len","H5F__cache_superblock_serialize","H5F__cache_superblock_verify_chksum","H5F__check_cached_stab_test","H5F__close","H5F__close_cb","H5F__close_mounts","H5F__create_api_common","H5F__delete","H5F__dest","H5F__efc_create","H5F__efc_destroy","H5F__efc_max_nfiles","H5F__efc_open","H5F__efc_open_file","H5F__efc_release","H5F__efc_release_real","H5F__efc_try_close","H5F__efc_try_close_tag1.isra.0","H5F__efc_try_close_tag2.isra.0","H5F__evict_cache_entries","H5F__flush","H5F__flush_api_common","H5F__flush_mounts_recurse","H5F__flush_phase2","H5F__format_convert","H5F__free","H5F__get_all_count_cb","H5F__get_all_ids_cb","H5F__get_cont_info","H5F__get_file_image","H5F__get_info","H5F__get_max_eof_eoa","H5F__get_maxaddr_test","H5F__get_mpi_atomicity","H5F__get_objects_cb","H5F__get_sbe_addr_test","H5F__get_sohm_mesg_count_test","H5F__is_hdf5","H5F__mount_count_ids","H5F__mount_count_ids_recurse","H5F__new","H5F__open_api_common","H5F__parse_file_lock_env_var","H5F__post_open","H5F__post_open_api_common","H5F__reopen","H5F__reopen_api_common","H5F__reparse_file_lock_variable_test","H5F__same_file_test","H5F__set_base_addr","H5F__set_eoa","H5F__set_libver_bounds","H5F__set_mpi_atomicity","H5F__set_paged_aggr","H5F__sfile_add","H5F__sfile_remove","H5F__sfile_search","H5F__start_swmr_write","H5F__super_ext_close","H5F__super_ext_create","H5F__super_ext_open","H5F__super_ext_remove_msg","H5F__super_ext_write_msg","H5F__super_free","H5F__super_init","H5F__super_read","H5F__super_size","H5F__superblock_prefix_decode","H5F__try_extend","H5F__update_super_ext_driver_msg","H5F_addr_decode","H5F_addr_decode_len","H5F_addr_encode","H5F_addr_encode_len","H5F_block_read","H5F_block_write","H5F_coll_md_read","H5F_cwfs_add","H5F_cwfs_advance_heap","H5F_cwfs_find_free_heap","H5F_cwfs_remove_heap","H5F_debug","H5F_decr_nopen_objs","H5F_efc_close","H5F_eoa_dirty","H5F_fake_alloc","H5F_fake_free","H5F_file_id_exists","H5F_flush_mounts","H5F_flush_tagged_metadata","H5F_gc_ref","H5F_get_access_plist","H5F_get_actual_name","H5F_get_alignment","H5F_get_base_addr","H5F_get_checksums","H5F_get_coll_metadata_reads","H5F_get_driver_id","H5F_get_eoa","H5F_get_evict_on_close","H5F_get_extpath","H5F_get_fc_degree","H5F_get_fcpl","H5F_get_file_id","H5F_get_fileno","H5F_get_high_bound","H5F_get_id","H5F_get_intent","H5F_get_low_bound","H5F_get_metadata_read_retry_info","H5F_get_min_dset_ohdr","H5F_get_nmounts","H5F_get_nopen_objs","H5F_get_nrefs","H5F_get_null_fsm_addr","H5F_get_obj_count","H5F_get_obj_ids","H5F_get_open_name","H5F_get_parent","H5F_get_pgend_meta_thres","H5F_get_point_of_no_return","H5F_get_read_attempts","H5F_get_rfic_flags","H5F_get_shared","H5F_get_sohm_addr","H5F_get_sohm_nindexes","H5F_get_sohm_vers","H5F_get_threshold","H5F_get_use_file_locking","H5F_get_vfd_handle","H5F_get_vol_cls","H5F_get_vol_obj","H5F_grp_btree_shared","H5F_has_feature","H5F_has_vector_select_io","H5F_incr_nopen_objs","H5F_init","H5F_is_mount","H5F_is_tmp_addr","H5F_mdc_log_location","H5F_mount","H5F_mpi_get_comm","H5F_mpi_get_file_block_type","H5F_mpi_get_info","H5F_mpi_get_rank","H5F_mpi_get_size","H5F_mpi_retrieve_comm","H5F_object_flush_cb","H5F_open","H5F_prefix_open_file","H5F_rdcc_nbytes","H5F_rdcc_nslots","H5F_rdcc_w0","H5F_same_shared","H5F_set_coll_metadata_reads","H5F_set_grp_btree_shared","H5F_set_min_dset_ohdr","H5F_set_retries","H5F_set_sohm_addr","H5F_set_sohm_nindexes","H5F_set_sohm_vers","H5F_set_store_msg_crt_idx","H5F_sfile_assert_num","H5F_shared_block_read","H5F_shared_block_write","H5F_shared_coll_md_read","H5F_shared_get_coll_metadata_reads","H5F_shared_get_eoa","H5F_shared_get_file_driver","H5F_shared_get_intent","H5F_shared_get_mpi_file_sync_required","H5F_shared_has_feature","H5F_shared_mpi_get_size","H5F_shared_select_read","H5F_shared_select_write","H5F_shared_vector_read","H5F_shared_vector_write","H5F_sieve_buf_size","H5F_sizeof_addr","H5F_sizeof_size","H5F_start_mdc_log_on_access","H5F_store_msg_crt_idx","H5F_super_dirty","H5F_sym_leaf_k","H5F_term_package","H5F_track_metadata_read_retries","H5F_traverse_mount","H5F_try_close","H5F_try_close.localalias","H5F_unmount","H5F_use_mdc_logging","H5F_use_tmp_space","H5Fclear_elink_file_cache","H5Fclose","H5Fclose_async","H5Fcreate","H5Fcreate_async","H5Fdelete","H5Fflush","H5Fflush_async","H5Fformat_convert","H5Fget_access_plist","H5Fget_create_plist","H5Fget_dset_no_attrs_hint","H5Fget_eoa","H5Fget_file_image","H5Fget_fileno","H5Fget_filesize","H5Fget_free_sections","H5Fget_freespace","H5Fget_info1","H5Fget_info2","H5Fget_intent","H5Fget_mdc_config","H5Fget_mdc_hit_rate","H5Fget_mdc_image_info","H5Fget_mdc_logging_status","H5Fget_mdc_size","H5Fget_metadata_read_retry_info","H5Fget_mpi_atomicity","H5Fget_name","H5Fget_obj_count","H5Fget_obj_ids","H5Fget_page_buffering_stats","H5Fget_vfd_handle","H5Fincrement_filesize","H5Fis_accessible","H5Fis_hdf5","H5Fmount","H5Fopen","H5Fopen_async","H5Freopen","H5Freopen_async","H5Freset_mdc_hit_rate_stats","H5Freset_page_buffering_stats","H5Fset_dset_no_attrs_hint","H5Fset_latest_format","H5Fset_libver_bounds","H5Fset_mdc_config","H5Fset_mpi_atomicity","H5Fstart_mdc_logging","H5Fstart_swmr_write","H5Fstop_mdc_logging","H5Funmount","H5G__cache_node_deserialize","H5G__cache_node_free_icr","H5G__cache_node_get_initial_load_size","H5G__cache_node_image_len","H5G__cache_node_serialize","H5G__close_cb","H5G__common_path","H5G__compact_build_table_cb","H5G__compact_get_name_by_idx","H5G__compact_insert","H5G__compact_iterate","H5G__compact_lookup","H5G__compact_lookup_by_idx","H5G__compact_lookup_cb","H5G__compact_remove","H5G__compact_remove_by_idx","H5G__compact_remove_common_cb","H5G__component","H5G__create","H5G__create_named","H5G__dense_btree2_corder_compare","H5G__dense_btree2_corder_debug","H5G__dense_btree2_corder_decode","H5G__dense_btree2_corder_encode","H5G__dense_btree2_corder_store","H5G__dense_btree2_name_compare","H5G__dense_btree2_name_debug","H5G__dense_btree2_name_decode","H5G__dense_btree2_name_encode","H5G__dense_btree2_name_store","H5G__dense_build_table","H5G__dense_build_table_cb","H5G__dense_create","H5G__dense_delete","H5G__dense_fh_name_cmp","H5G__dense_get_name_by_idx","H5G__dense_get_name_by_idx_bt2_cb","H5G__dense_get_name_by_idx_fh_cb","H5G__dense_insert","H5G__dense_iterate","H5G__dense_iterate_bt2_cb","H5G__dense_iterate_fh_cb","H5G__dense_lookup","H5G__dense_lookup_by_idx","H5G__dense_lookup_by_idx_bt2_cb","H5G__dense_lookup_by_idx_fh_cb","H5G__dense_lookup_cb","H5G__dense_remove","H5G__dense_remove_bt2_cb","H5G__dense_remove_by_idx","H5G__dense_remove_by_idx_bt2_cb","H5G__dense_remove_by_idx_fh_cb","H5G__dense_remove_fh_cb","H5G__ent_copy","H5G__ent_debug","H5G__ent_decode_vec","H5G__ent_encode_vec","H5G__ent_reset","H5G__ent_to_link","H5G__free_visit_visited","H5G__get_info_by_idx","H5G__get_info_by_name","H5G__get_name_by_addr_cb","H5G__get_objinfo","H5G__get_objinfo_cb","H5G__has_links_test","H5G__has_stab_test","H5G__is_empty_test","H5G__is_new_dense_test","H5G__iterate_cb","H5G__lheap_size_test","H5G__link_cmp_corder_dec","H5G__link_cmp_corder_inc","H5G__link_cmp_name_dec","H5G__link_cmp_name_inc","H5G__link_iterate_table","H5G__link_name_replace","H5G__link_release_table","H5G__link_sort_table","H5G__link_to_ent","H5G__link_to_loc","H5G__loc_addr","H5G__loc_addr_cb","H5G__loc_exists_cb","H5G__loc_find_by_idx_cb","H5G__loc_find_cb","H5G__loc_get_comment_cb","H5G__loc_info_cb","H5G__loc_insert","H5G__loc_native_info_cb","H5G__loc_set_comment_cb","H5G__name_init","H5G__name_replace_cb","H5G__new_dense_info_test","H5G__node_build_table","H5G__node_by_idx","H5G__node_cmp2","H5G__node_cmp3","H5G__node_copy","H5G__node_create","H5G__node_debug_key","H5G__node_decode_key","H5G__node_encode_key","H5G__node_found","H5G__node_free","H5G__node_get_shared","H5G__node_init","H5G__node_insert","H5G__node_iterate","H5G__node_iterate_size","H5G__node_remove","H5G__node_sumup","H5G__obj_compact_to_dense_cb","H5G__obj_create","H5G__obj_create_real","H5G__obj_get_linfo","H5G__obj_info","H5G__obj_iterate","H5G__obj_lookup","H5G__obj_remove_update_linfo","H5G__obj_stab_to_new_cb","H5G__open_name","H5G__stab_bh_size","H5G__stab_count","H5G__stab_create","H5G__stab_create_components","H5G__stab_delete","H5G__stab_get_name_by_idx","H5G__stab_get_name_by_idx_cb","H5G__stab_insert","H5G__stab_insert_real","H5G__stab_iterate","H5G__stab_lookup","H5G__stab_lookup_by_idx","H5G__stab_lookup_by_idx_cb","H5G__stab_lookup_cb","H5G__stab_remove","H5G__stab_remove_by_idx","H5G__stab_valid","H5G__traverse_real","H5G__traverse_slink_cb","H5G__traverse_special","H5G__user_path_test","H5G__verify_cached_stab_test","H5G__verify_cached_stabs_test","H5G__verify_cached_stabs_test_cb","H5G__visit_cb","H5G_build_fullpath_refstr_str","H5G_close","H5G_ent_decode","H5G_ent_encode","H5G_fileof","H5G_get_create_plist","H5G_get_gcpl_id","H5G_get_name","H5G_get_name_by_addr","H5G_get_shared_count","H5G_init","H5G_iterate","H5G_link_to_info","H5G_loc","H5G_loc_copy","H5G_loc_exists","H5G_loc_find","H5G_loc_find_by_idx","H5G_loc_free","H5G_loc_get_comment","H5G_loc_info","H5G_loc_native_info","H5G_loc_real","H5G_loc_reset","H5G_loc_set_comment","H5G_map_obj_type","H5G_mkroot","H5G_mount","H5G_mounted","H5G_name_copy","H5G_name_free","H5G_name_replace","H5G_name_reset","H5G_name_set","H5G_nameof","H5G_node_close","H5G_node_debug","H5G_normalize","H5G_obj_get_name_by_idx","H5G_obj_insert","H5G_obj_insert.localalias","H5G_obj_lookup_by_idx","H5G_obj_remove","H5G_obj_remove_by_idx","H5G_oloc","H5G_open","H5G_root_free","H5G_root_loc","H5G_rootof","H5G_term_package","H5G_top_term_package","H5G_traverse","H5G_unmount","H5G_visit","H5Gclose","H5Gclose_async","H5Gcreate1","H5Gcreate2","H5Gcreate_anon","H5Gcreate_async","H5Gflush","H5Gget_comment","H5Gget_create_plist","H5Gget_info","H5Gget_info_async","H5Gget_info_by_idx","H5Gget_info_by_idx_async","H5Gget_info_by_name","H5Gget_info_by_name_async","H5Gget_linkval","H5Gget_num_objs","H5Gget_objinfo","H5Gget_objname_by_idx","H5Gget_objtype_by_idx","H5Giterate","H5Glink","H5Glink2","H5Gmove","H5Gmove2","H5Gopen1","H5Gopen2","H5Gopen_async","H5Grefresh","H5Gset_comment","H5Gunlink","H5HF__cache_dblock_deserialize","H5HF__cache_dblock_free_icr","H5HF__cache_dblock_fsf_size","H5HF__cache_dblock_get_initial_load_size","H5HF__cache_dblock_image_len","H5HF__cache_dblock_notify","H5HF__cache_dblock_pre_serialize","H5HF__cache_dblock_serialize","H5HF__cache_dblock_verify_chksum","H5HF__cache_hdr_deserialize","H5HF__cache_hdr_free_icr","H5HF__cache_hdr_get_final_load_size","H5HF__cache_hdr_get_initial_load_size","H5HF__cache_hdr_image_len","H5HF__cache_hdr_pre_serialize","H5HF__cache_hdr_serialize","H5HF__cache_hdr_verify_chksum","H5HF__cache_iblock_deserialize","H5HF__cache_iblock_free_icr","H5HF__cache_iblock_get_initial_load_size","H5HF__cache_iblock_image_len","H5HF__cache_iblock_notify","H5HF__cache_iblock_pre_serialize","H5HF__cache_iblock_serialize","H5HF__cache_iblock_verify_chksum","H5HF__dtable_dest","H5HF__dtable_init","H5HF__dtable_lookup","H5HF__dtable_size_to_row","H5HF__dtable_size_to_rows","H5HF__dtable_span_size","H5HF__hdr_adj_free","H5HF__hdr_adjust_heap","H5HF__hdr_alloc","H5HF__hdr_create","H5HF__hdr_decr","H5HF__hdr_delete","H5HF__hdr_dirty","H5HF__hdr_empty","H5HF__hdr_finish_init","H5HF__hdr_finish_init_phase1","H5HF__hdr_finish_init_phase2","H5HF__hdr_free","H5HF__hdr_fuse_decr","H5HF__hdr_fuse_incr","H5HF__hdr_inc_alloc","H5HF__hdr_inc_iter","H5HF__hdr_incr","H5HF__hdr_protect","H5HF__hdr_reset_iter","H5HF__hdr_reverse_iter","H5HF__hdr_skip_blocks","H5HF__hdr_start_iter","H5HF__hdr_update_iter","H5HF__huge_bt2_crt_context","H5HF__huge_bt2_dir_compare","H5HF__huge_bt2_dir_debug","H5HF__huge_bt2_dir_decode","H5HF__huge_bt2_dir_encode","H5HF__huge_bt2_dir_remove","H5HF__huge_bt2_dir_store","H5HF__huge_bt2_dst_context","H5HF__huge_bt2_filt_dir_compare","H5HF__huge_bt2_filt_dir_debug","H5HF__huge_bt2_filt_dir_decode","H5HF__huge_bt2_filt_dir_encode","H5HF__huge_bt2_filt_dir_found","H5HF__huge_bt2_filt_dir_remove","H5HF__huge_bt2_filt_dir_store","H5HF__huge_bt2_filt_indir_compare","H5HF__huge_bt2_filt_indir_debug","H5HF__huge_bt2_filt_indir_decode","H5HF__huge_bt2_filt_indir_encode","H5HF__huge_bt2_filt_indir_found","H5HF__huge_bt2_filt_indir_remove","H5HF__huge_bt2_filt_indir_store","H5HF__huge_bt2_indir_compare","H5HF__huge_bt2_indir_debug","H5HF__huge_bt2_indir_decode","H5HF__huge_bt2_indir_encode","H5HF__huge_bt2_indir_found","H5HF__huge_bt2_indir_remove","H5HF__huge_bt2_indir_store","H5HF__huge_delete","H5HF__huge_get_obj_len","H5HF__huge_get_obj_off","H5HF__huge_init","H5HF__huge_insert","H5HF__huge_op","H5HF__huge_op_real","H5HF__huge_read","H5HF__huge_remove","H5HF__huge_term","H5HF__huge_write","H5HF__iblock_decr","H5HF__iblock_dirty","H5HF__iblock_incr","H5HF__man_dblock_create","H5HF__man_dblock_delete","H5HF__man_dblock_dest","H5HF__man_dblock_destroy","H5HF__man_dblock_locate","H5HF__man_dblock_new","H5HF__man_dblock_protect","H5HF__man_get_obj_len","H5HF__man_get_obj_off","H5HF__man_iblock_alloc_row","H5HF__man_iblock_attach","H5HF__man_iblock_create","H5HF__man_iblock_delete","H5HF__man_iblock_delete.localalias","H5HF__man_iblock_dest","H5HF__man_iblock_detach","H5HF__man_iblock_detach.localalias","H5HF__man_iblock_entry_addr","H5HF__man_iblock_parent_info","H5HF__man_iblock_protect","H5HF__man_iblock_root_create","H5HF__man_iblock_root_double","H5HF__man_iblock_size","H5HF__man_iblock_size.localalias","H5HF__man_iblock_unprotect","H5HF__man_insert","H5HF__man_iter_curr","H5HF__man_iter_down","H5HF__man_iter_init","H5HF__man_iter_next","H5HF__man_iter_ready","H5HF__man_iter_reset","H5HF__man_iter_set_entry","H5HF__man_iter_start_entry","H5HF__man_iter_start_offset","H5HF__man_iter_up","H5HF__man_op","H5HF__man_op_real","H5HF__man_read","H5HF__man_remove","H5HF__man_write","H5HF__op_read","H5HF__op_write","H5HF__sect_indirect_add","H5HF__sect_indirect_decr","H5HF__sect_indirect_first","H5HF__sect_indirect_free","H5HF__sect_indirect_init_cls","H5HF__sect_indirect_init_rows","H5HF__sect_indirect_new","H5HF__sect_indirect_reduce","H5HF__sect_indirect_revive","H5HF__sect_indirect_serialize","H5HF__sect_indirect_shrink","H5HF__sect_indirect_term_cls","H5HF__sect_indirect_valid.isra.0","H5HF__sect_row_can_merge","H5HF__sect_row_can_shrink","H5HF__sect_row_debug","H5HF__sect_row_deserialize","H5HF__sect_row_first.part.0","H5HF__sect_row_free","H5HF__sect_row_get_iblock","H5HF__sect_row_init_cls","H5HF__sect_row_merge","H5HF__sect_row_reduce","H5HF__sect_row_revive","H5HF__sect_row_serialize","H5HF__sect_row_shrink","H5HF__sect_row_term_cls","H5HF__sect_row_valid","H5HF__sect_single_add","H5HF__sect_single_can_merge","H5HF__sect_single_can_shrink","H5HF__sect_single_dblock_info","H5HF__sect_single_deserialize","H5HF__sect_single_free","H5HF__sect_single_full_dblock","H5HF__sect_single_merge","H5HF__sect_single_new","H5HF__sect_single_reduce","H5HF__sect_single_revive","H5HF__sect_single_shrink","H5HF__sect_single_valid","H5HF__space_add","H5HF__space_close","H5HF__space_create_root","H5HF__space_create_root_cb","H5HF__space_delete","H5HF__space_find","H5HF__space_remove","H5HF__space_revert_root","H5HF__space_revert_root_cb","H5HF__space_sect_change_class","H5HF__space_size","H5HF__space_start","H5HF__tiny_get_obj_len","H5HF__tiny_init","H5HF__tiny_insert","H5HF__tiny_op","H5HF__tiny_read","H5HF__tiny_remove","H5HF_close","H5HF_cmp_cparam_test","H5HF_create","H5HF_dblock_debug","H5HF_dblock_debug_cb","H5HF_delete","H5HF_get_cparam_test","H5HF_get_dblock_free_test","H5HF_get_dblock_size_test","H5HF_get_dtable_max_drows_test","H5HF_get_dtable_width_test","H5HF_get_heap_addr","H5HF_get_huge_info_test","H5HF_get_iblock_max_drows_test","H5HF_get_id_len","H5HF_get_id_off_test","H5HF_get_id_type_test","H5HF_get_max_root_rows","H5HF_get_obj_len","H5HF_get_obj_off","H5HF_get_tiny_info_test","H5HF_hdr_debug","H5HF_hdr_print","H5HF_iblock_debug","H5HF_iblock_print","H5HF_iblock_print.localalias","H5HF_id_print","H5HF_insert","H5HF_op","H5HF_open","H5HF_read","H5HF_remove","H5HF_sects_debug","H5HF_sects_debug_cb","H5HF_size","H5HF_stat_info","H5HF_write","H5HG__cache_heap_deserialize","H5HG__cache_heap_free_icr","H5HG__cache_heap_get_final_load_size","H5HG__cache_heap_get_initial_load_size","H5HG__cache_heap_image_len","H5HG__cache_heap_serialize","H5HG__free","H5HG__protect","H5HG_debug","H5HG_extend","H5HG_get_addr","H5HG_get_free_size","H5HG_get_obj_size","H5HG_get_size","H5HG_insert","H5HG_link","H5HG_read","H5HG_remove","H5HL__cache_datablock_deserialize","H5HL__cache_datablock_free_icr","H5HL__cache_datablock_get_initial_load_size","H5HL__cache_datablock_image_len","H5HL__cache_datablock_notify","H5HL__cache_datablock_serialize","H5HL__cache_prefix_deserialize","H5HL__cache_prefix_free_icr","H5HL__cache_prefix_get_final_load_size","H5HL__cache_prefix_get_initial_load_size","H5HL__cache_prefix_image_len","H5HL__cache_prefix_serialize","H5HL__dblk_dest","H5HL__dblk_new","H5HL__dblk_realloc","H5HL__dec_rc","H5HL__dest","H5HL__fl_deserialize","H5HL__fl_serialize","H5HL__hdr_deserialize","H5HL__inc_rc","H5HL__minimize_heap_space","H5HL__new","H5HL__prfx_dest","H5HL__prfx_new","H5HL_create","H5HL_debug","H5HL_delete","H5HL_get_size","H5HL_heap_get_size","H5HL_heapsize","H5HL_insert","H5HL_offset_into","H5HL_protect","H5HL_remove","H5HL_unprotect","H5I__destroy_type","H5I__find_id","H5I__get_name_test","H5I__get_type_ref","H5I__inc_type_ref","H5I__iterate_pub_cb","H5I__register","H5I__remove_common","H5I__remove_verify","H5I__search_cb","H5I_clear_type","H5I_dec_app_ref","H5I_dec_app_ref_always_close","H5I_dec_app_ref_always_close_async","H5I_dec_app_ref_async","H5I_dec_ref","H5I_dec_type_ref","H5I_dump_ids_for_type","H5I_find_id","H5I_get_ref","H5I_get_type","H5I_inc_ref","H5I_is_file_object","H5I_iterate","H5I_nmembers","H5I_object","H5I_object_verify","H5I_register","H5I_register_type","H5I_register_using_existing_id","H5I_remove","H5I_subst","H5I_term_package","H5Iclear_type","H5Idec_ref","H5Idec_type_ref","H5Idestroy_type","H5Iget_file_id","H5Iget_name","H5Iget_ref","H5Iget_type","H5Iget_type_ref","H5Iinc_ref","H5Iinc_type_ref","H5Iis_valid","H5Iiterate","H5Inmembers","H5Iobject_verify","H5Iregister","H5Iregister_future","H5Iregister_type","H5Iremove_verify","H5Isearch","H5Itype_exists","H5L__create_hard","H5L__create_hard_api_common","H5L__create_real","H5L__create_soft","H5L__create_soft_api_common","H5L__create_ud","H5L__delete","H5L__delete_by_idx","H5L__delete_by_idx_cb","H5L__delete_cb","H5L__exists","H5L__exists_final_cb","H5L__exists_inter_cb","H5L__extern_query","H5L__extern_traverse","H5L__get_info_by_idx","H5L__get_info_by_idx_cb","H5L__get_info_cb","H5L__get_name_by_idx","H5L__get_name_by_idx_cb","H5L__get_val","H5L__get_val_by_idx","H5L__get_val_by_idx_cb","H5L__get_val_cb","H5L__iterate2_shim","H5L__link_cb","H5L__link_copy_file","H5L__move","H5L__move_cb","H5L__move_dest_cb","H5L_exists_tolerant","H5L_find_class","H5L_get_info","H5L_get_ocrt_info","H5L_init","H5L_is_registered","H5L_iterate","H5L_link","H5L_link_object","H5L_register","H5L_register_external","H5L_term_package","H5L_unregister","H5Lcopy","H5Lcreate_external","H5Lcreate_hard","H5Lcreate_hard_async","H5Lcreate_soft","H5Lcreate_soft_async","H5Lcreate_ud","H5Ldelete","H5Ldelete_async","H5Ldelete_by_idx","H5Ldelete_by_idx_async","H5Lexists","H5Lexists_async","H5Lget_info1","H5Lget_info2","H5Lget_info_by_idx1","H5Lget_info_by_idx2","H5Lget_name_by_idx","H5Lget_val","H5Lget_val_by_idx","H5Lis_registered","H5Literate1","H5Literate2","H5Literate_async","H5Literate_by_name1","H5Literate_by_name2","H5Lmove","H5Lregister","H5Lunpack_elink_val","H5Lunregister","H5Lvisit1","H5Lvisit2","H5Lvisit_by_name1","H5Lvisit_by_name2","H5MF__add_sect","H5MF__aggr_absorb","H5MF__aggr_alloc","H5MF__aggr_can_absorb","H5MF__aggr_query","H5MF__aggr_try_extend","H5MF__aggrs_try_shrink_eoa","H5MF__alloc_to_fs_type","H5MF__close_delete_fstype","H5MF__close_shrink_eoa","H5MF__find_sect","H5MF__fsm_is_self_referential","H5MF__fsm_type_is_self_referential","H5MF__open_fstype","H5MF__sect_deserialize","H5MF__sect_free","H5MF__sect_large_can_merge","H5MF__sect_large_can_shrink","H5MF__sect_large_merge","H5MF__sect_large_shrink","H5MF__sect_new","H5MF__sect_simple_can_merge","H5MF__sect_simple_can_shrink","H5MF__sect_simple_merge","H5MF__sect_simple_shrink","H5MF__sect_small_add","H5MF__sect_small_can_merge","H5MF__sect_small_merge","H5MF__sect_split","H5MF__sect_valid","H5MF__sects_cb","H5MF__sects_debug_cb","H5MF__start_fstype","H5MF_aggr_vfd_alloc","H5MF_alloc","H5MF_alloc_tmp","H5MF_close","H5MF_free_aggrs","H5MF_get_free_sections","H5MF_get_freespace","H5MF_init_merge_flags","H5MF_sects_debug","H5MF_settle_meta_data_fsm","H5MF_settle_raw_data_fsm","H5MF_try_close","H5MF_try_extend","H5MF_try_shrink","H5MF_xfree","H5MM_realloc","H5MM_strdup","H5MM_strndup","H5MM_xfree","H5MM_xfree_const","H5MM_xstrdup","H5M__close_cb","H5M_init","H5M_term_package","H5M_top_term_package","H5O__add_gap.constprop.0","H5O__ainfo_copy","H5O__ainfo_copy_file","H5O__ainfo_debug","H5O__ainfo_decode","H5O__ainfo_delete","H5O__ainfo_encode","H5O__ainfo_free","H5O__ainfo_post_copy_file","H5O__ainfo_pre_copy_file","H5O__ainfo_size","H5O__alloc","H5O__alloc_chunk","H5O__alloc_find_best_null","H5O__alloc_msgs","H5O__alloc_null","H5O__are_mdc_flushes_disabled","H5O__attr_bh_info","H5O__attr_copy","H5O__attr_count_real","H5O__attr_create","H5O__attr_delete","H5O__attr_dense_info_test","H5O__attr_exists","H5O__attr_exists_cb","H5O__attr_find_opened_attr","H5O__attr_free","H5O__attr_get_crt_index","H5O__attr_iterate","H5O__attr_link","H5O__attr_open_by_idx","H5O__attr_open_by_idx_cb","H5O__attr_open_by_name","H5O__attr_open_cb","H5O__attr_pre_copy_file","H5O__attr_remove","H5O__attr_remove_by_idx","H5O__attr_remove_cb","H5O__attr_remove_update","H5O__attr_rename","H5O__attr_rename_chk_cb","H5O__attr_rename_mod_cb","H5O__attr_reset","H5O__attr_set_crt_index","H5O__attr_shared_copy_file","H5O__attr_shared_debug","H5O__attr_shared_decode","H5O__attr_shared_delete","H5O__attr_shared_encode","H5O__attr_shared_link","H5O__attr_shared_post_copy_file","H5O__attr_shared_size","H5O__attr_to_dense_cb","H5O__attr_update_shared","H5O__attr_write","H5O__attr_write_cb","H5O__btreek_copy","H5O__btreek_debug","H5O__btreek_decode","H5O__btreek_encode","H5O__btreek_size","H5O__cache_chk_deserialize","H5O__cache_chk_free_icr","H5O__cache_chk_get_initial_load_size","H5O__cache_chk_image_len","H5O__cache_chk_notify","H5O__cache_chk_serialize","H5O__cache_chk_verify_chksum","H5O__cache_deserialize","H5O__cache_free_icr","H5O__cache_get_final_load_size","H5O__cache_get_initial_load_size","H5O__cache_image_len","H5O__cache_notify","H5O__cache_serialize","H5O__cache_verify_chksum","H5O__check_msg_marked_test","H5O__chunk_add","H5O__chunk_delete","H5O__chunk_deserialize","H5O__chunk_dest","H5O__chunk_protect","H5O__chunk_resize","H5O__chunk_serialize","H5O__chunk_unprotect","H5O__chunk_update_idx","H5O__condense_header","H5O__cont_debug","H5O__cont_decode","H5O__cont_delete","H5O__cont_encode","H5O__cont_free","H5O__cont_size","H5O__copy","H5O__copy_api_common","H5O__copy_comm_dt_cmp","H5O__copy_free_addrmap_cb","H5O__copy_free_comm_dt_cb","H5O__copy_header_real","H5O__copy_obj_by_ref","H5O__copy_search_comm_dt_attr_cb","H5O__copy_search_comm_dt_cb","H5O__copy_search_comm_dt_check","H5O__debug_real","H5O__dec_rc","H5O__delete_mesg","H5O__disable_mdc_flushes","H5O__drvinfo_copy","H5O__drvinfo_debug","H5O__drvinfo_decode","H5O__drvinfo_encode","H5O__drvinfo_reset","H5O__drvinfo_size","H5O__dset_bh_info","H5O__dset_create","H5O__dset_flush","H5O__dset_free_copy_file_udata","H5O__dset_get_copy_file_udata","H5O__dset_get_oloc","H5O__dset_isa","H5O__dset_open","H5O__dtype_can_share","H5O__dtype_copy","H5O__dtype_create","H5O__dtype_debug.isra.0","H5O__dtype_decode_helper","H5O__dtype_encode_helper","H5O__dtype_encode_helper.cold","H5O__dtype_free","H5O__dtype_get_oloc","H5O__dtype_isa","H5O__dtype_open","H5O__dtype_pre_copy_file","H5O__dtype_reset","H5O__dtype_set_share","H5O__dtype_shared_copy_file","H5O__dtype_shared_debug","H5O__dtype_shared_decode","H5O__dtype_shared_delete","H5O__dtype_shared_encode","H5O__dtype_shared_link","H5O__dtype_shared_post_copy_file","H5O__dtype_shared_size","H5O__dtype_size.isra.0","H5O__efl_copy","H5O__efl_copy_file","H5O__efl_debug","H5O__efl_decode","H5O__efl_encode","H5O__efl_reset","H5O__efl_size","H5O__eliminate_gap","H5O__enable_mdc_flushes","H5O__expunge_chunks_test","H5O__fill_copy","H5O__fill_debug.constprop.0","H5O__fill_free","H5O__fill_new_shared_copy_file","H5O__fill_new_shared_debug","H5O__fill_new_shared_decode","H5O__fill_new_shared_delete","H5O__fill_new_shared_encode","H5O__fill_new_shared_link","H5O__fill_new_shared_post_copy_file","H5O__fill_new_shared_size","H5O__fill_pre_copy_file","H5O__fill_reset","H5O__fill_shared_copy_file","H5O__fill_shared_debug","H5O__fill_shared_decode","H5O__fill_shared_delete","H5O__fill_shared_encode","H5O__fill_shared_link","H5O__fill_shared_post_copy_file","H5O__fill_shared_size","H5O__flush_msgs","H5O__free","H5O__free_visit_visited","H5O__fsinfo_copy","H5O__fsinfo_debug","H5O__fsinfo_decode","H5O__fsinfo_encode","H5O__fsinfo_free","H5O__fsinfo_size","H5O__get_hdr_info_real","H5O__get_info_old","H5O__get_rc_test","H5O__ginfo_copy","H5O__ginfo_debug","H5O__ginfo_decode","H5O__ginfo_encode","H5O__ginfo_free","H5O__ginfo_size","H5O__group_bh_info","H5O__group_create","H5O__group_free_copy_file_udata","H5O__group_get_copy_file_udata","H5O__group_get_oloc","H5O__group_isa","H5O__group_open","H5O__inc_rc","H5O__is_attr_dense_test","H5O__is_attr_empty_test","H5O__iterate1_adapter","H5O__layout_copy","H5O__layout_copy_file","H5O__layout_debug","H5O__layout_decode","H5O__layout_delete","H5O__layout_encode","H5O__layout_free","H5O__layout_pre_copy_file","H5O__layout_reset","H5O__layout_reset.part.0","H5O__layout_size","H5O__linfo_copy","H5O__linfo_copy.part.0","H5O__linfo_copy_file","H5O__linfo_debug","H5O__linfo_decode","H5O__linfo_delete","H5O__linfo_encode","H5O__linfo_free","H5O__linfo_post_copy_file","H5O__linfo_post_copy_file_cb","H5O__linfo_size","H5O__link_copy","H5O__link_copy_file","H5O__link_debug","H5O__link_decode","H5O__link_encode","H5O__link_free","H5O__link_oh","H5O__link_post_copy_file","H5O__link_pre_copy_file","H5O__link_reset","H5O__link_size","H5O__mdci_copy","H5O__mdci_debug","H5O__mdci_decode","H5O__mdci_delete","H5O__mdci_encode","H5O__mdci_free","H5O__mdci_size","H5O__msg_alloc","H5O__msg_append_real","H5O__msg_copy_file","H5O__msg_count_real","H5O__msg_free_mesg","H5O__msg_get_chunkno_test","H5O__msg_iterate_real","H5O__msg_move_to_new_chunk_test","H5O__msg_remove_cb","H5O__msg_remove_real","H5O__msg_write_real","H5O__mtime_copy","H5O__mtime_debug","H5O__mtime_decode","H5O__mtime_encode","H5O__mtime_free","H5O__mtime_new_decode","H5O__mtime_new_encode","H5O__mtime_new_size","H5O__mtime_size","H5O__name_copy","H5O__name_debug","H5O__name_decode","H5O__name_encode","H5O__name_reset","H5O__name_size","H5O__num_attrs_test","H5O__obj_class","H5O__obj_class_real","H5O__open_by_addr","H5O__open_by_idx","H5O__pline_copy","H5O__pline_free","H5O__pline_pre_copy_file","H5O__pline_reset","H5O__pline_shared_copy_file","H5O__pline_shared_debug","H5O__pline_shared_decode","H5O__pline_shared_delete","H5O__pline_shared_encode","H5O__pline_shared_link","H5O__pline_shared_post_copy_file","H5O__pline_shared_size","H5O__prefix_deserialize","H5O__refcount_copy","H5O__refcount_debug","H5O__refcount_decode","H5O__refcount_encode","H5O__refcount_free","H5O__refcount_pre_copy_file","H5O__refcount_size","H5O__release_mesg","H5O__remove_empty_chunks","H5O__sdspace_copy","H5O__sdspace_free","H5O__sdspace_pre_copy_file","H5O__sdspace_reset","H5O__sdspace_shared_copy_file","H5O__sdspace_shared_debug","H5O__sdspace_shared_decode","H5O__sdspace_shared_delete","H5O__sdspace_shared_encode","H5O__sdspace_shared_link","H5O__sdspace_shared_post_copy_file","H5O__sdspace_shared_size","H5O__shared_copy_file","H5O__shared_debug","H5O__shared_decode","H5O__shared_delete","H5O__shared_encode","H5O__shared_link","H5O__shared_post_copy_file","H5O__shared_size","H5O__shmesg_copy","H5O__shmesg_debug","H5O__shmesg_decode","H5O__shmesg_encode","H5O__shmesg_size","H5O__stab_copy","H5O__stab_copy_file","H5O__stab_debug","H5O__stab_decode","H5O__stab_delete","H5O__stab_encode","H5O__stab_free","H5O__stab_post_copy_file","H5O__stab_size","H5O__unknown_free","H5O__visit","H5O__visit_cb","H5O_apply_ohdr","H5O_attr_iterate_real","H5O_close","H5O_copy_expand_ref","H5O_copy_header_map","H5O_create","H5O_create_ohdr","H5O_debug","H5O_debug_id","H5O_dec_rc_by_loc","H5O_delete","H5O_efl_total_size","H5O_fill_convert","H5O_fill_reset_dyn","H5O_fill_set_version","H5O_flush","H5O_flush_common","H5O_fsinfo_check_version","H5O_fsinfo_set_version","H5O_get_create_plist","H5O_get_hdr_info","H5O_get_info","H5O_get_loc","H5O_get_native_info","H5O_get_nlinks","H5O_get_oh_addr","H5O_get_oh_flags","H5O_get_oh_mtime","H5O_get_oh_version","H5O_get_proxy","H5O_get_rc_and_type","H5O_has_chksum","H5O_init","H5O_link","H5O_link_delete","H5O_loc_copy","H5O_loc_copy_deep","H5O_loc_copy_shallow","H5O_loc_free","H5O_loc_hold_file","H5O_loc_reset","H5O_msg_append_oh","H5O_msg_can_share","H5O_msg_can_share_in_ohdr","H5O_msg_copy","H5O_msg_count","H5O_msg_create","H5O_msg_decode","H5O_msg_delete","H5O_msg_encode","H5O_msg_exists","H5O_msg_exists_oh","H5O_msg_flush","H5O_msg_free","H5O_msg_free_real","H5O_msg_get_crt_index","H5O_msg_get_flags","H5O_msg_is_shared","H5O_msg_iterate","H5O_msg_raw_size","H5O_msg_read","H5O_msg_read_oh","H5O_msg_remove","H5O_msg_remove_op","H5O_msg_reset","H5O_msg_reset_share","H5O_msg_set_share","H5O_msg_size_f","H5O_msg_size_oh","H5O_msg_write","H5O_msg_write_oh","H5O_obj_create","H5O_obj_type","H5O_open","H5O_open_by_loc","H5O_open_name","H5O_pin","H5O_pline_set_version","H5O_protect","H5O_refresh_metadata","H5O_refresh_metadata_reopen","H5O_set_shared","H5O_touch","H5O_touch_oh","H5O_unpin","H5O_unprotect","H5Oare_mdc_flushes_disabled","H5Oclose","H5Oclose_async","H5Ocopy","H5Ocopy_async","H5Odecr_refcount","H5Odisable_mdc_flushes","H5Oenable_mdc_flushes","H5Oexists_by_name","H5Oflush","H5Oflush_async","H5Oget_comment","H5Oget_comment_by_name","H5Oget_info1","H5Oget_info2","H5Oget_info3","H5Oget_info_by_idx1","H5Oget_info_by_idx2","H5Oget_info_by_idx3","H5Oget_info_by_name1","H5Oget_info_by_name2","H5Oget_info_by_name3","H5Oget_info_by_name_async","H5Oget_native_info","H5Oget_native_info_by_idx","H5Oget_native_info_by_name","H5Oincr_refcount","H5Olink","H5Oopen","H5Oopen_async","H5Oopen_by_addr","H5Oopen_by_idx","H5Oopen_by_idx_async","H5Oopen_by_token","H5Orefresh","H5Orefresh_async","H5Oset_comment","H5Oset_comment_by_name","H5Otoken_cmp","H5Otoken_from_str","H5Otoken_to_str","H5Ovisit1","H5Ovisit2","H5Ovisit3","H5Ovisit_by_name1","H5Ovisit_by_name2","H5Ovisit_by_name3","H5PB__dest_cb","H5PB__flush_cb","H5PB__make_space","H5PB_add_new_page","H5PB_create","H5PB_dest","H5PB_enabled","H5PB_flush","H5PB_get_stats","H5PB_print_stats","H5PB_read","H5PB_remove_entry","H5PB_reset_stats","H5PB_update_entry","H5PB_write","H5PL__add_plugin","H5PL__append_path","H5PL__close","H5PL__close_path_table","H5PL__close_plugin_cache","H5PL__create_path_table","H5PL__create_plugin_cache","H5PL__find_plugin_in_cache","H5PL__find_plugin_in_path_table","H5PL__get_num_paths","H5PL__get_path","H5PL__get_plugin_control_mask","H5PL__insert_at","H5PL__insert_path","H5PL__open","H5PL__path_table_iterate","H5PL__prepend_path","H5PL__remove_path","H5PL__replace_path","H5PL__set_plugin_control_mask","H5PL_init","H5PL_iterate","H5PL_load","H5PL_term_package","H5PLappend","H5PLget","H5PLget_loading_state","H5PLinsert","H5PLprepend","H5PLremove","H5PLreplace","H5PLset_loading_state","H5PLsize","H5P__access_class","H5P__access_class.localalias","H5P__add_prop","H5P__class_get","H5P__class_set","H5P__close_class","H5P__close_class_cb","H5P__close_list_cb","H5P__cmp_class","H5P__cmp_plist","H5P__cmp_plist_cb","H5P__cmp_prop.part.0","H5P__copy_merge_comm_dt_list","H5P__copy_pclass","H5P__copy_prop_pclass","H5P__copy_prop_plist","H5P__create_class","H5P__create_prop","H5P__dacc_reg_prop","H5P__dacc_vds_view_dec","H5P__dacc_vds_view_enc","H5P__dapl_efile_pref_close","H5P__dapl_efile_pref_cmp","H5P__dapl_efile_pref_copy","H5P__dapl_efile_pref_dec","H5P__dapl_efile_pref_del","H5P__dapl_efile_pref_enc","H5P__dapl_efile_pref_get","H5P__dapl_efile_pref_set","H5P__dapl_vds_file_pref_close","H5P__dapl_vds_file_pref_cmp","H5P__dapl_vds_file_pref_copy","H5P__dapl_vds_file_pref_dec","H5P__dapl_vds_file_pref_del","H5P__dapl_vds_file_pref_enc","H5P__dapl_vds_file_pref_get","H5P__dapl_vds_file_pref_set","H5P__dcrt_ext_file_list_close","H5P__dcrt_ext_file_list_cmp","H5P__dcrt_ext_file_list_copy","H5P__dcrt_ext_file_list_dec","H5P__dcrt_ext_file_list_del","H5P__dcrt_ext_file_list_enc","H5P__dcrt_ext_file_list_get","H5P__dcrt_ext_file_list_set","H5P__dcrt_fill_value_close","H5P__dcrt_fill_value_copy","H5P__dcrt_fill_value_dec","H5P__dcrt_fill_value_del","H5P__dcrt_fill_value_enc","H5P__dcrt_fill_value_get","H5P__dcrt_fill_value_set","H5P__dcrt_layout_close","H5P__dcrt_layout_cmp","H5P__dcrt_layout_copy","H5P__dcrt_layout_dec","H5P__dcrt_layout_del","H5P__dcrt_layout_enc","H5P__dcrt_layout_get","H5P__dcrt_layout_set","H5P__dcrt_reg_prop","H5P__decode","H5P__decode_bool","H5P__decode_chunk_cache_nbytes","H5P__decode_chunk_cache_nslots","H5P__decode_coll_md_read_flag_t","H5P__decode_double","H5P__decode_hsize_t","H5P__decode_size_t","H5P__decode_uint64_t","H5P__decode_uint8_t","H5P__decode_unsigned","H5P__do_prop_cb1","H5P__dup_prop","H5P__dxfr_bkgr_buf_type_dec","H5P__dxfr_bkgr_buf_type_enc","H5P__dxfr_btree_split_ratio_dec","H5P__dxfr_btree_split_ratio_enc","H5P__dxfr_dset_io_hyp_sel_close","H5P__dxfr_dset_io_hyp_sel_cmp","H5P__dxfr_dset_io_hyp_sel_copy","H5P__dxfr_edc_dec","H5P__dxfr_edc_enc","H5P__dxfr_io_xfer_mode_dec","H5P__dxfr_io_xfer_mode_enc","H5P__dxfr_modify_write_buf_dec","H5P__dxfr_modify_write_buf_enc","H5P__dxfr_mpio_chunk_opt_hard_dec","H5P__dxfr_mpio_chunk_opt_hard_enc","H5P__dxfr_mpio_collective_opt_dec","H5P__dxfr_mpio_collective_opt_enc","H5P__dxfr_reg_prop","H5P__dxfr_selection_io_mode_dec","H5P__dxfr_selection_io_mode_enc","H5P__dxfr_xform_close","H5P__dxfr_xform_cmp","H5P__dxfr_xform_copy","H5P__dxfr_xform_dec","H5P__dxfr_xform_del","H5P__dxfr_xform_enc","H5P__dxfr_xform_get","H5P__dxfr_xform_set","H5P__encode","H5P__encode_bool","H5P__encode_cb","H5P__encode_chunk_cache_nbytes","H5P__encode_chunk_cache_nslots","H5P__encode_coll_md_read_flag_t","H5P__encode_double","H5P__encode_hsize_t","H5P__encode_size_t","H5P__encode_uint64_t","H5P__encode_uint8_t","H5P__encode_unsigned","H5P__exist_pclass","H5P__facc_cache_config_cmp","H5P__facc_cache_config_dec","H5P__facc_cache_config_enc","H5P__facc_cache_image_config_cmp","H5P__facc_cache_image_config_dec","H5P__facc_cache_image_config_enc","H5P__facc_fclose_degree_dec","H5P__facc_fclose_degree_enc","H5P__facc_file_driver_close","H5P__facc_file_driver_cmp","H5P__facc_file_driver_copy","H5P__facc_file_driver_create","H5P__facc_file_driver_del","H5P__facc_file_driver_get","H5P__facc_file_driver_set","H5P__facc_file_image_info_close","H5P__facc_file_image_info_cmp","H5P__facc_file_image_info_copy","H5P__facc_file_image_info_del","H5P__facc_file_image_info_get","H5P__facc_file_image_info_set","H5P__facc_libver_type_dec","H5P__facc_libver_type_enc","H5P__facc_mdc_log_location_close","H5P__facc_mdc_log_location_cmp","H5P__facc_mdc_log_location_copy","H5P__facc_mdc_log_location_dec","H5P__facc_mdc_log_location_del","H5P__facc_mdc_log_location_enc","H5P__facc_mpi_comm_close","H5P__facc_mpi_comm_cmp","H5P__facc_mpi_comm_copy","H5P__facc_mpi_comm_del","H5P__facc_mpi_comm_get","H5P__facc_mpi_comm_set","H5P__facc_mpi_info_close","H5P__facc_mpi_info_cmp","H5P__facc_mpi_info_copy","H5P__facc_mpi_info_del","H5P__facc_mpi_info_get","H5P__facc_mpi_info_set","H5P__facc_multi_type_dec","H5P__facc_multi_type_enc","H5P__facc_reg_prop","H5P__facc_set_def_driver","H5P__facc_vol_close","H5P__facc_vol_cmp","H5P__facc_vol_copy","H5P__facc_vol_create","H5P__facc_vol_del","H5P__facc_vol_get","H5P__facc_vol_set","H5P__fcrt_btree_rank_dec","H5P__fcrt_btree_rank_enc","H5P__fcrt_fspace_strategy_dec","H5P__fcrt_fspace_strategy_enc","H5P__fcrt_reg_prop","H5P__fcrt_shmsg_index_minsize_dec","H5P__fcrt_shmsg_index_minsize_enc","H5P__fcrt_shmsg_index_types_dec","H5P__fcrt_shmsg_index_types_enc","H5P__find_prop_plist","H5P__fmnt_reg_prop","H5P__free_del_name_cb","H5P__free_prop_cb","H5P__gcrt_group_info_dec","H5P__gcrt_group_info_enc","H5P__gcrt_link_info_dec","H5P__gcrt_link_info_enc","H5P__gcrt_reg_prop","H5P__get_cb","H5P__get_class_parent","H5P__get_class_path","H5P__get_class_path.localalias","H5P__get_class_path_test","H5P__get_filter","H5P__get_nprops_plist","H5P__get_size_pclass","H5P__get_size_plist","H5P__iterate_cb","H5P__iterate_pclass","H5P__iterate_pclass_cb","H5P__iterate_plist","H5P__iterate_plist_cb","H5P__iterate_plist_pclass_cb","H5P__lacc_elink_fapl_close","H5P__lacc_elink_fapl_cmp","H5P__lacc_elink_fapl_copy","H5P__lacc_elink_fapl_dec","H5P__lacc_elink_fapl_del","H5P__lacc_elink_fapl_enc","H5P__lacc_elink_fapl_get","H5P__lacc_elink_fapl_set","H5P__lacc_elink_pref_close","H5P__lacc_elink_pref_cmp","H5P__lacc_elink_pref_copy","H5P__lacc_elink_pref_dec","H5P__lacc_elink_pref_del","H5P__lacc_elink_pref_enc","H5P__lacc_elink_pref_get","H5P__lacc_elink_pref_set","H5P__lacc_reg_prop","H5P__lcrt_reg_prop","H5P__macc_reg_prop","H5P__mcrt_reg_prop","H5P__new_plist_of_type","H5P__ocpy_merge_comm_dt_list_close","H5P__ocpy_merge_comm_dt_list_cmp","H5P__ocpy_merge_comm_dt_list_copy","H5P__ocpy_merge_comm_dt_list_dec","H5P__ocpy_merge_comm_dt_list_del","H5P__ocpy_merge_comm_dt_list_enc","H5P__ocpy_merge_comm_dt_list_enc.cold","H5P__ocpy_merge_comm_dt_list_get","H5P__ocpy_merge_comm_dt_list_set","H5P__ocpy_reg_prop","H5P__ocrt_pipeline_close","H5P__ocrt_pipeline_cmp","H5P__ocrt_pipeline_copy","H5P__ocrt_pipeline_dec","H5P__ocrt_pipeline_del","H5P__ocrt_pipeline_enc","H5P__ocrt_pipeline_get","H5P__ocrt_pipeline_set","H5P__ocrt_reg_prop","H5P__open_class_path","H5P__open_class_path_cb","H5P__open_class_path_test","H5P__register","H5P__register_real","H5P__set_layout","H5P__strcrt_char_encoding_dec","H5P__strcrt_char_encoding_enc","H5P__strcrt_reg_prop","H5P__unregister","H5P_class_isa","H5P_close","H5P_copy_plist","H5P_create_id","H5P_exist_plist","H5P_fill_value_cmp","H5P_fill_value_defined","H5P_filter_in_pline","H5P_get","H5P_get_class","H5P_get_class_name","H5P_get_fill_value","H5P_get_filter_by_id","H5P_get_nprops_pclass","H5P_get_plist_id","H5P_ignore_cmp","H5P_init_phase1","H5P_init_phase2","H5P_insert","H5P_is_fill_value_defined","H5P_isa_class","H5P_modify_filter","H5P_object_verify","H5P_peek","H5P_peek_driver","H5P_peek_driver_config_str","H5P_peek_driver_info","H5P_poke","H5P_remove","H5P_reset_vol_class","H5P_set","H5P_set_driver","H5P_set_driver_by_name","H5P_set_driver_by_value","H5P_set_vlen_mem_manager","H5P_set_vol","H5P_term_package","H5Padd_merge_committed_dtype_path","H5Pall_filters_avail","H5Pclose","H5Pclose_class","H5Pcopy","H5Pcopy_prop","H5Pcreate","H5Pcreate_class","H5Pdecode","H5Pencode1","H5Pencode2","H5Pequal","H5Pexist","H5Pfill_value_defined","H5Pfree_merge_committed_dtype_paths","H5Pget","H5Pget_actual_selection_io_mode","H5Pget_alignment","H5Pget_all_coll_metadata_ops","H5Pget_alloc_time","H5Pget_append_flush","H5Pget_attr_creation_order","H5Pget_attr_phase_change","H5Pget_btree_ratios","H5Pget_buffer","H5Pget_cache","H5Pget_char_encoding","H5Pget_chunk","H5Pget_chunk_cache","H5Pget_chunk_opts","H5Pget_class","H5Pget_class_name","H5Pget_class_parent","H5Pget_coll_metadata_write","H5Pget_copy_object","H5Pget_core_write_tracking","H5Pget_create_intermediate_group","H5Pget_data_transform","H5Pget_driver","H5Pget_driver_config_str","H5Pget_driver_info","H5Pget_dset_no_attrs_hint","H5Pget_dxpl_mpio","H5Pget_edc_check","H5Pget_efile_prefix","H5Pget_elink_acc_flags","H5Pget_elink_cb","H5Pget_elink_fapl","H5Pget_elink_file_cache_size","H5Pget_elink_prefix","H5Pget_est_link_info","H5Pget_evict_on_close","H5Pget_external","H5Pget_external_count","H5Pget_family_offset","H5Pget_fapl_core","H5Pget_fapl_family","H5Pget_fapl_mpio","H5Pget_fapl_multi","H5Pget_fapl_onion","H5Pget_fapl_splitter","H5Pget_fclose_degree","H5Pget_file_image","H5Pget_file_image_callbacks","H5Pget_file_locking","H5Pget_file_space","H5Pget_file_space_page_size","H5Pget_file_space_strategy","H5Pget_fill_time","H5Pget_fill_value","H5Pget_filter1","H5Pget_filter2","H5Pget_filter_by_id1","H5Pget_filter_by_id2","H5Pget_gc_references","H5Pget_hyper_vector_size","H5Pget_istore_k","H5Pget_layout","H5Pget_libver_bounds","H5Pget_link_creation_order","H5Pget_link_phase_change","H5Pget_local_heap_size_hint","H5Pget_mcdt_search_cb","H5Pget_mdc_config","H5Pget_mdc_image_config","H5Pget_mdc_log_options","H5Pget_meta_block_size","H5Pget_metadata_read_attempts","H5Pget_modify_write_buf","H5Pget_mpi_params","H5Pget_mpio_actual_chunk_opt_mode","H5Pget_mpio_actual_io_mode","H5Pget_mpio_no_collective_cause","H5Pget_multi_type","H5Pget_nfilters","H5Pget_nlinks","H5Pget_no_selection_io_cause","H5Pget_nprops","H5Pget_obj_track_times","H5Pget_object_flush_cb","H5Pget_page_buffer_size","H5Pget_preserve","H5Pget_relax_file_integrity_checks","H5Pget_selection_io","H5Pget_shared_mesg_index","H5Pget_shared_mesg_nindexes","H5Pget_shared_mesg_phase_change","H5Pget_sieve_buf_size","H5Pget_size","H5Pget_sizes","H5Pget_small_data_block_size","H5Pget_sym_k","H5Pget_type_conv_cb","H5Pget_userblock","H5Pget_version","H5Pget_virtual_count","H5Pget_virtual_dsetname","H5Pget_virtual_filename","H5Pget_virtual_prefix","H5Pget_virtual_printf_gap","H5Pget_virtual_srcspace","H5Pget_virtual_view","H5Pget_virtual_vspace","H5Pget_vlen_mem_manager","H5Pget_vol_cap_flags","H5Pget_vol_id","H5Pget_vol_info","H5Pinsert1","H5Pinsert2","H5Pisa_class","H5Piterate","H5Pmodify_filter","H5Pregister1","H5Pregister2","H5Premove","H5Premove_filter","H5Pset","H5Pset_alignment","H5Pset_all_coll_metadata_ops","H5Pset_alloc_time","H5Pset_append_flush","H5Pset_attr_creation_order","H5Pset_attr_phase_change","H5Pset_btree_ratios","H5Pset_buffer","H5Pset_cache","H5Pset_char_encoding","H5Pset_chunk","H5Pset_chunk_cache","H5Pset_chunk_opts","H5Pset_coll_metadata_write","H5Pset_copy_object","H5Pset_core_write_tracking","H5Pset_create_intermediate_group","H5Pset_data_transform","H5Pset_dataset_io_hyperslab_selection","H5Pset_deflate","H5Pset_driver","H5Pset_driver_by_name","H5Pset_driver_by_value","H5Pset_dset_no_attrs_hint","H5Pset_dxpl_mpio","H5Pset_dxpl_mpio_chunk_opt","H5Pset_dxpl_mpio_chunk_opt_num","H5Pset_dxpl_mpio_chunk_opt_ratio","H5Pset_dxpl_mpio_collective_opt","H5Pset_edc_check","H5Pset_efile_prefix","H5Pset_elink_acc_flags","H5Pset_elink_cb","H5Pset_elink_fapl","H5Pset_elink_file_cache_size","H5Pset_elink_prefix","H5Pset_est_link_info","H5Pset_evict_on_close","H5Pset_external","H5Pset_family_offset","H5Pset_fapl_core","H5Pset_fapl_family","H5Pset_fapl_log","H5Pset_fapl_mpio","H5Pset_fapl_multi","H5Pset_fapl_onion","H5Pset_fapl_sec2","H5Pset_fapl_split","H5Pset_fapl_splitter","H5Pset_fapl_stdio","H5Pset_fclose_degree","H5Pset_file_image","H5Pset_file_image_callbacks","H5Pset_file_locking","H5Pset_file_space","H5Pset_file_space_page_size","H5Pset_file_space_strategy","H5Pset_fill_time","H5Pset_fill_value","H5Pset_filter","H5Pset_filter_callback","H5Pset_fletcher32","H5Pset_gc_references","H5Pset_hyper_vector_size","H5Pset_istore_k","H5Pset_layout","H5Pset_libver_bounds","H5Pset_link_creation_order","H5Pset_link_phase_change","H5Pset_local_heap_size_hint","H5Pset_mcdt_search_cb","H5Pset_mdc_config","H5Pset_mdc_image_config","H5Pset_mdc_log_options","H5Pset_meta_block_size","H5Pset_metadata_read_attempts","H5Pset_modify_write_buf","H5Pset_mpi_params","H5Pset_multi_type","H5Pset_nbit","H5Pset_nlinks","H5Pset_obj_track_times","H5Pset_object_flush_cb","H5Pset_page_buffer_size","H5Pset_preserve","H5Pset_relax_file_integrity_checks","H5Pset_scaleoffset","H5Pset_selection_io","H5Pset_shared_mesg_index","H5Pset_shared_mesg_nindexes","H5Pset_shared_mesg_phase_change","H5Pset_shuffle","H5Pset_sieve_buf_size","H5Pset_sizes","H5Pset_small_data_block_size","H5Pset_sym_k","H5Pset_szip","H5Pset_type_conv_cb","H5Pset_userblock","H5Pset_virtual","H5Pset_virtual_prefix","H5Pset_virtual_printf_gap","H5Pset_virtual_view","H5Pset_vlen_mem_manager","H5Pset_vol","H5Punregister","H5RS__prepare_for_append","H5RS__resize_for_append.part.0","H5RS_acat","H5RS_ancat","H5RS_aputc","H5RS_asprintf_cat","H5RS_cmp","H5RS_create","H5RS_decr","H5RS_dup","H5RS_get_count","H5RS_get_str","H5RS_incr","H5RS_len","H5RS_wrap","H5R__copy","H5R__create_attr","H5R__create_object","H5R__create_region","H5R__decode","H5R__decode_heap","H5R__decode_string","H5R__decode_token_compat","H5R__decode_token_obj_compat","H5R__decode_token_region_compat","H5R__destroy","H5R__encode","H5R__encode_heap","H5R__encode_token_obj_compat","H5R__equal","H5R__get_attr_name","H5R__get_file_name","H5R__get_loc_id","H5R__get_obj_token","H5R__get_region","H5R__get_type","H5R__open_attr_api_common","H5R__open_object_api_common","H5R__open_region_api_common","H5R__reopen_file","H5R__set_loc_id","H5R__set_obj_token","H5R_init","H5Rcopy","H5Rcreate","H5Rcreate_attr","H5Rcreate_object","H5Rcreate_region","H5Rdereference1","H5Rdereference2","H5Rdestroy","H5Requal","H5Rget_attr_name","H5Rget_file_name","H5Rget_name","H5Rget_obj_name","H5Rget_obj_type1","H5Rget_obj_type2","H5Rget_obj_type3","H5Rget_region","H5Rget_type","H5Ropen_attr","H5Ropen_attr_async","H5Ropen_object","H5Ropen_object_async","H5Ropen_region","H5Ropen_region_async","H5SL__insert_common","H5SL__insert_common.cold","H5SL__release_common","H5SL_below","H5SL_close","H5SL_count","H5SL_create","H5SL_destroy","H5SL_find","H5SL_find.cold","H5SL_first","H5SL_free","H5SL_greater","H5SL_init","H5SL_insert","H5SL_item","H5SL_iterate","H5SL_last","H5SL_less","H5SL_next","H5SL_prev","H5SL_release","H5SL_remove","H5SL_remove.cold","H5SL_remove_first","H5SL_search","H5SL_search.cold","H5SL_term_package","H5SM__bt2_convert_to_list_op","H5SM__bt2_crt_context","H5SM__bt2_debug","H5SM__bt2_dst_context","H5SM__bt2_store","H5SM__cache_list_deserialize","H5SM__cache_list_free_icr","H5SM__cache_list_get_initial_load_size","H5SM__cache_list_image_len","H5SM__cache_list_serialize","H5SM__cache_list_verify_chksum","H5SM__cache_table_deserialize","H5SM__cache_table_free_icr","H5SM__cache_table_get_initial_load_size","H5SM__cache_table_image_len","H5SM__cache_table_serialize","H5SM__cache_table_verify_chksum","H5SM__compare_cb","H5SM__compare_iter_op","H5SM__create_list","H5SM__decr_ref","H5SM__delete_index","H5SM__get_index","H5SM__get_mesg_count_test","H5SM__get_refcount_bt2_cb","H5SM__incr_ref","H5SM__list_free","H5SM__message_compare","H5SM__message_decode","H5SM__message_encode","H5SM__read_iter_op","H5SM__read_mesg","H5SM__read_mesg_fh_cb","H5SM__table_free","H5SM_can_share","H5SM_delete","H5SM_get_fheap_addr","H5SM_get_info","H5SM_get_refcount","H5SM_ih_size","H5SM_init","H5SM_list_debug","H5SM_reconstitute","H5SM_table_debug","H5SM_try_share","H5SM_type_shared","H5S__all_adjust_s","H5S__all_adjust_u","H5S__all_bounds","H5S__all_copy","H5S__all_deserialize","H5S__all_intersect_block","H5S__all_is_contiguous","H5S__all_is_regular","H5S__all_is_single","H5S__all_is_valid","H5S__all_iter_block","H5S__all_iter_coords","H5S__all_iter_get_seq_list","H5S__all_iter_has_next_block","H5S__all_iter_init","H5S__all_iter_nelmts","H5S__all_iter_next","H5S__all_iter_next_block","H5S__all_iter_release","H5S__all_offset","H5S__all_project_scalar","H5S__all_project_simple","H5S__all_release","H5S__all_serial_size","H5S__all_serialize","H5S__all_shape_same","H5S__all_unlim_dim","H5S__check_internal_consistency","H5S__check_spans_overlap","H5S__check_spans_tail_ptr","H5S__close_cb","H5S__combine_select","H5S__copy_pnt_list","H5S__extent_copy_real","H5S__extent_release","H5S__fill_in_new_space","H5S__fill_in_select","H5S__generate_hyperslab","H5S__get_diminfo_status_test","H5S__get_rebuild_status_test","H5S__get_select_hyper_blocklist","H5S__hyper_add_disjoint_spans","H5S__hyper_add_span_element_helper.constprop.0","H5S__hyper_adjust_s","H5S__hyper_adjust_s_helper.constprop.0","H5S__hyper_adjust_u","H5S__hyper_adjust_u_helper.constprop.0","H5S__hyper_append_span","H5S__hyper_append_span.constprop.0","H5S__hyper_bounds","H5S__hyper_clip_spans.constprop.0","H5S__hyper_cmp_spans.part.0","H5S__hyper_coord_to_span","H5S__hyper_copy","H5S__hyper_copy_span_helper.part.0","H5S__hyper_deserialize","H5S__hyper_free_span_info","H5S__hyper_generate_spans","H5S__hyper_get_op_gen","H5S__hyper_get_version_enc_size","H5S__hyper_intersect_block","H5S__hyper_intersect_block_helper.constprop.0","H5S__hyper_is_contiguous","H5S__hyper_is_regular","H5S__hyper_is_single","H5S__hyper_is_valid","H5S__hyper_iter_block","H5S__hyper_iter_coords","H5S__hyper_iter_get_seq_list","H5S__hyper_iter_get_seq_list_opt","H5S__hyper_iter_get_seq_list_single","H5S__hyper_iter_has_next_block","H5S__hyper_iter_init","H5S__hyper_iter_nelmts","H5S__hyper_iter_next","H5S__hyper_iter_next_block","H5S__hyper_iter_release","H5S__hyper_make_spans","H5S__hyper_merge_spans_helper","H5S__hyper_new_span.part.0","H5S__hyper_new_span_info.part.0","H5S__hyper_num_elem_non_unlim","H5S__hyper_offset","H5S__hyper_proj_int_build_proj","H5S__hyper_proj_int_iterate","H5S__hyper_project_intersection","H5S__hyper_project_scalar","H5S__hyper_project_simple","H5S__hyper_rebuild","H5S__hyper_rebuild_helper","H5S__hyper_release","H5S__hyper_serial_size","H5S__hyper_serialize","H5S__hyper_serialize_helper","H5S__hyper_shape_same","H5S__hyper_span_blocklist","H5S__hyper_span_nblocks_helper.constprop.0","H5S__hyper_spans_nelem_helper.part.0.constprop.0","H5S__hyper_spans_shape_same","H5S__hyper_spans_shape_same_helper","H5S__hyper_unlim_dim","H5S__hyper_update_diminfo","H5S__internal_consistency_test","H5S__modify_select","H5S__mpio_create_point_datatype","H5S__mpio_reg_hyper_type","H5S__mpio_span_hyper_type","H5S__none_adjust_s","H5S__none_adjust_u","H5S__none_bounds","H5S__none_copy","H5S__none_deserialize","H5S__none_intersect_block","H5S__none_is_contiguous","H5S__none_is_regular","H5S__none_is_single","H5S__none_is_valid","H5S__none_iter_block","H5S__none_iter_coords","H5S__none_iter_get_seq_list","H5S__none_iter_has_next_block","H5S__none_iter_init","H5S__none_iter_nelmts","H5S__none_iter_next","H5S__none_iter_next_block","H5S__none_iter_release","H5S__none_offset","H5S__none_project_scalar","H5S__none_project_simple","H5S__none_release","H5S__none_serial_size","H5S__none_serialize","H5S__none_shape_same","H5S__none_unlim_dim","H5S__obtain_datatype.constprop.0","H5S__point_adjust_s","H5S__point_adjust_u","H5S__point_bounds","H5S__point_copy","H5S__point_deserialize","H5S__point_get_version_enc_size","H5S__point_intersect_block","H5S__point_is_contiguous","H5S__point_is_regular","H5S__point_is_single","H5S__point_is_valid","H5S__point_iter_block","H5S__point_iter_coords","H5S__point_iter_get_seq_list","H5S__point_iter_has_next_block","H5S__point_iter_init","H5S__point_iter_nelmts","H5S__point_iter_next","H5S__point_iter_next_block","H5S__point_iter_release","H5S__point_offset","H5S__point_project_scalar","H5S__point_project_simple","H5S__point_release","H5S__point_serial_size","H5S__point_serialize","H5S__point_shape_same","H5S__point_unlim_dim","H5S__sel_iter_close_cb","H5S__set_regular_hyperslab","H5S__verify_offsets","H5S_append","H5S_close","H5S_combine_hyperslab","H5S_copy","H5S_create","H5S_create_simple","H5S_debug","H5S_decode","H5S_encode","H5S_extent_copy","H5S_extent_equal","H5S_extent_get_dims","H5S_extent_nelem","H5S_get_npoints_max","H5S_get_select_bounds","H5S_get_select_npoints","H5S_get_select_num_elem_non_unlim","H5S_get_select_offset","H5S_get_select_type","H5S_get_select_unlim_dim","H5S_get_simple_extent","H5S_get_simple_extent_dims","H5S_get_simple_extent_ndims","H5S_get_simple_extent_npoints","H5S_get_simple_extent_type","H5S_has_extent","H5S_hyper_add_span_element","H5S_hyper_clip_unlim","H5S_hyper_denormalize_offset","H5S_hyper_get_clip_extent","H5S_hyper_get_clip_extent_match","H5S_hyper_get_first_inc_block","H5S_hyper_get_unlim_block","H5S_hyper_normalize_offset","H5S_init","H5S_mpio_space_type","H5S_read","H5S_sel_iter_close","H5S_select_adjust_s","H5S_select_adjust_u","H5S_select_all","H5S_select_construct_projection","H5S_select_contig_block","H5S_select_copy","H5S_select_deserialize","H5S_select_elements","H5S_select_fill","H5S_select_hyperslab","H5S_select_hyperslab.localalias","H5S_select_intersect_block","H5S_select_is_contiguous","H5S_select_is_regular","H5S_select_is_single","H5S_select_iter_coords","H5S_select_iter_get_seq_list","H5S_select_iter_init","H5S_select_iter_nelmts","H5S_select_iter_next","H5S_select_iter_release","H5S_select_iterate","H5S_select_none","H5S_select_offset","H5S_select_project_intersection","H5S_select_project_scalar","H5S_select_project_simple","H5S_select_release","H5S_select_serial_size","H5S_select_serialize","H5S_select_shape_same","H5S_select_subtract","H5S_select_valid","H5S_set_extent","H5S_set_extent_real","H5S_set_extent_simple","H5S_set_version","H5S_term_package","H5S_top_term_package","H5S_write","H5Sclose","H5Scombine_hyperslab","H5Scombine_select","H5Scopy","H5Screate","H5Screate_simple","H5Sdecode","H5Sencode1","H5Sencode2","H5Sextent_copy","H5Sextent_equal","H5Sget_regular_hyperslab","H5Sget_select_bounds","H5Sget_select_elem_npoints","H5Sget_select_elem_pointlist","H5Sget_select_hyper_blocklist","H5Sget_select_hyper_nblocks","H5Sget_select_npoints","H5Sget_select_type","H5Sget_simple_extent_dims","H5Sget_simple_extent_ndims","H5Sget_simple_extent_npoints","H5Sget_simple_extent_type","H5Sis_regular_hyperslab","H5Sis_simple","H5Smodify_select","H5Soffset_simple","H5Ssel_iter_close","H5Ssel_iter_create","H5Ssel_iter_get_seq_list","H5Ssel_iter_reset","H5Sselect_adjust","H5Sselect_all","H5Sselect_copy","H5Sselect_elements","H5Sselect_hyperslab","H5Sselect_intersect_block","H5Sselect_none","H5Sselect_project_intersection","H5Sselect_shape_same","H5Sselect_valid","H5Sset_extent_none","H5Sset_extent_simple","H5T__alloc","H5T__array_create","H5T__bit_cmp.constprop.0","H5T__bit_copy","H5T__bit_dec","H5T__bit_find","H5T__bit_get_d","H5T__bit_inc","H5T__bit_neg","H5T__bit_set","H5T__bit_set_d","H5T__bit_shift","H5T__close_cb","H5T__commit","H5T__commit_anon","H5T__commit_api_common","H5T__commit_named","H5T__complete_copy","H5T__conv_array","H5T__conv_b_b","H5T__conv_double_float","H5T__conv_double_int","H5T__conv_double_ldouble","H5T__conv_double_ldouble.cold","H5T__conv_double_llong","H5T__conv_double_long","H5T__conv_double_schar","H5T__conv_double_short","H5T__conv_double_uchar","H5T__conv_double_uint","H5T__conv_double_ullong","H5T__conv_double_ulong","H5T__conv_double_ushort","H5T__conv_enum","H5T__conv_enum_free.part.0","H5T__conv_enum_init","H5T__conv_enum_numeric","H5T__conv_f_f","H5T__conv_f_i","H5T__conv_float_double","H5T__conv_float_double.cold","H5T__conv_float_int","H5T__conv_float_ldouble","H5T__conv_float_ldouble.cold","H5T__conv_float_llong","H5T__conv_float_long","H5T__conv_float_schar","H5T__conv_float_short","H5T__conv_float_uchar","H5T__conv_float_uint","H5T__conv_float_ullong","H5T__conv_float_ulong","H5T__conv_float_ushort","H5T__conv_i_f","H5T__conv_i_i","H5T__conv_int_double","H5T__conv_int_float","H5T__conv_int_ldouble","H5T__conv_int_llong","H5T__conv_int_llong.cold","H5T__conv_int_long","H5T__conv_int_long.cold","H5T__conv_int_schar","H5T__conv_int_short","H5T__conv_int_uchar","H5T__conv_int_uint","H5T__conv_int_ullong","H5T__conv_int_ulong","H5T__conv_int_ushort","H5T__conv_ldouble_double","H5T__conv_ldouble_float","H5T__conv_ldouble_int","H5T__conv_ldouble_llong","H5T__conv_ldouble_long","H5T__conv_ldouble_schar","H5T__conv_ldouble_short","H5T__conv_ldouble_uchar","H5T__conv_ldouble_uint","H5T__conv_ldouble_ullong","H5T__conv_ldouble_ulong","H5T__conv_ldouble_ushort","H5T__conv_llong_double","H5T__conv_llong_float","H5T__conv_llong_int","H5T__conv_llong_ldouble","H5T__conv_llong_long","H5T__conv_llong_schar","H5T__conv_llong_short","H5T__conv_llong_uchar","H5T__conv_llong_uint","H5T__conv_llong_ullong","H5T__conv_llong_ulong","H5T__conv_llong_ushort","H5T__conv_long_double","H5T__conv_long_float","H5T__conv_long_int","H5T__conv_long_ldouble","H5T__conv_long_llong","H5T__conv_long_schar","H5T__conv_long_short","H5T__conv_long_uchar","H5T__conv_long_uint","H5T__conv_long_ullong","H5T__conv_long_ulong","H5T__conv_long_ushort","H5T__conv_noop","H5T__conv_order","H5T__conv_order_opt","H5T__conv_ref","H5T__conv_s_s","H5T__conv_schar_double","H5T__conv_schar_float","H5T__conv_schar_int","H5T__conv_schar_int.cold","H5T__conv_schar_ldouble","H5T__conv_schar_llong","H5T__conv_schar_llong.cold","H5T__conv_schar_long","H5T__conv_schar_long.cold","H5T__conv_schar_short","H5T__conv_schar_short.cold","H5T__conv_schar_uchar","H5T__conv_schar_uint","H5T__conv_schar_ullong","H5T__conv_schar_ulong","H5T__conv_schar_ushort","H5T__conv_short_double","H5T__conv_short_float","H5T__conv_short_int","H5T__conv_short_int.cold","H5T__conv_short_ldouble","H5T__conv_short_llong","H5T__conv_short_llong.cold","H5T__conv_short_long","H5T__conv_short_long.cold","H5T__conv_short_schar","H5T__conv_short_uchar","H5T__conv_short_uint","H5T__conv_short_ullong","H5T__conv_short_ulong","H5T__conv_short_ushort","H5T__conv_struct","H5T__conv_struct_free","H5T__conv_struct_init","H5T__conv_struct_opt","H5T__conv_struct_subset","H5T__conv_uchar_double","H5T__conv_uchar_float","H5T__conv_uchar_int","H5T__conv_uchar_int.cold","H5T__conv_uchar_ldouble","H5T__conv_uchar_llong","H5T__conv_uchar_llong.cold","H5T__conv_uchar_long","H5T__conv_uchar_long.cold","H5T__conv_uchar_schar","H5T__conv_uchar_short","H5T__conv_uchar_short.cold","H5T__conv_uchar_uint","H5T__conv_uchar_uint.cold","H5T__conv_uchar_ullong","H5T__conv_uchar_ullong.cold","H5T__conv_uchar_ulong","H5T__conv_uchar_ulong.cold","H5T__conv_uchar_ushort","H5T__conv_uchar_ushort.cold","H5T__conv_uint_double","H5T__conv_uint_float","H5T__conv_uint_int","H5T__conv_uint_ldouble","H5T__conv_uint_llong","H5T__conv_uint_llong.cold","H5T__conv_uint_long","H5T__conv_uint_long.cold","H5T__conv_uint_schar","H5T__conv_uint_short","H5T__conv_uint_uchar","H5T__conv_uint_ullong","H5T__conv_uint_ullong.cold","H5T__conv_uint_ulong","H5T__conv_uint_ulong.cold","H5T__conv_uint_ushort","H5T__conv_ullong_double","H5T__conv_ullong_float","H5T__conv_ullong_int","H5T__conv_ullong_ldouble","H5T__conv_ullong_llong","H5T__conv_ullong_long","H5T__conv_ullong_schar","H5T__conv_ullong_short","H5T__conv_ullong_uchar","H5T__conv_ullong_uint","H5T__conv_ullong_ulong","H5T__conv_ullong_ushort","H5T__conv_ulong_double","H5T__conv_ulong_float","H5T__conv_ulong_int","H5T__conv_ulong_ldouble","H5T__conv_ulong_llong","H5T__conv_ulong_long","H5T__conv_ulong_schar","H5T__conv_ulong_short","H5T__conv_ulong_uchar","H5T__conv_ulong_uint","H5T__conv_ulong_ullong","H5T__conv_ulong_ushort","H5T__conv_ushort_double","H5T__conv_ushort_float","H5T__conv_ushort_int","H5T__conv_ushort_int.cold","H5T__conv_ushort_ldouble","H5T__conv_ushort_llong","H5T__conv_ushort_llong.cold","H5T__conv_ushort_long","H5T__conv_ushort_long.cold","H5T__conv_ushort_schar","H5T__conv_ushort_short","H5T__conv_ushort_uchar","H5T__conv_ushort_uint","H5T__conv_ushort_uint.cold","H5T__conv_ushort_ullong","H5T__conv_ushort_ullong.cold","H5T__conv_ushort_ulong","H5T__conv_ushort_ulong.cold","H5T__conv_vlen","H5T__conv_vlen_nested_free","H5T__copy_all","H5T__copy_transient","H5T__create","H5T__detect_vlen_ref","H5T__enum_create","H5T__enum_insert","H5T__free","H5T__get_array_dims","H5T__get_array_ndims","H5T__get_create_plist","H5T__get_member_name","H5T__get_member_size","H5T__get_member_value","H5T__get_native_type","H5T__get_path_table_npaths","H5T__init_native_float_types","H5T__init_native_internal","H5T__initiate_copy","H5T__insert","H5T__open_api_common","H5T__open_name","H5T__pack","H5T__path_find_real","H5T__path_free","H5T__print_path_stats","H5T__ref_disk_getsize","H5T__ref_disk_isnull","H5T__ref_disk_read","H5T__ref_disk_setnull","H5T__ref_disk_write","H5T__ref_dsetreg_disk_getsize","H5T__ref_dsetreg_disk_isnull","H5T__ref_dsetreg_disk_read","H5T__ref_mem_getsize","H5T__ref_mem_isnull","H5T__ref_mem_read","H5T__ref_mem_setnull","H5T__ref_mem_write","H5T__ref_obj_disk_getsize","H5T__ref_obj_disk_isnull","H5T__ref_obj_disk_read","H5T__ref_reclaim","H5T__ref_set_loc","H5T__register","H5T__register_int","H5T__reverse_order","H5T__set_offset","H5T__set_order","H5T__set_precision","H5T__set_size","H5T__sort_name","H5T__sort_value","H5T__unlock_cb","H5T__update_packed","H5T__upgrade_version","H5T__upgrade_version_cb","H5T__visit","H5T__visit.localalias","H5T__vlen_create","H5T__vlen_disk_delete","H5T__vlen_disk_delete.part.0","H5T__vlen_disk_getlen","H5T__vlen_disk_isnull","H5T__vlen_disk_read","H5T__vlen_disk_setnull","H5T__vlen_disk_write","H5T__vlen_mem_seq_getlen","H5T__vlen_mem_seq_getptr","H5T__vlen_mem_seq_isnull","H5T__vlen_mem_seq_read","H5T__vlen_mem_seq_setnull","H5T__vlen_mem_seq_write","H5T__vlen_mem_str_getlen","H5T__vlen_mem_str_getptr","H5T__vlen_mem_str_isnull","H5T__vlen_mem_str_read","H5T__vlen_mem_str_setnull","H5T__vlen_mem_str_write","H5T__vlen_reclaim","H5T__vlen_set_loc","H5T_already_vol_managed","H5T_close","H5T_close_real","H5T_cmp","H5T_cmp.localalias","H5T_construct_datatype","H5T_convert","H5T_convert_committed_datatype","H5T_convert_with_ctx","H5T_copy","H5T_copy_reopen","H5T_debug","H5T_debug.cold","H5T_debug.localalias","H5T_decode","H5T_detect_class","H5T_detect_class.localalias","H5T_encode","H5T_get_actual_type","H5T_get_class","H5T_get_force_conv","H5T_get_member_offset","H5T_get_member_type","H5T_get_named_type","H5T_get_nmembers","H5T_get_offset","H5T_get_order","H5T_get_order.localalias","H5T_get_precision","H5T_get_ref_type","H5T_get_sign","H5T_get_size","H5T_get_super","H5T_init","H5T_invoke_vol_optional","H5T_is_immutable","H5T_is_named","H5T_is_numeric_with_unusual_unused_bits","H5T_is_relocatable","H5T_is_sensible","H5T_is_variable_str","H5T_is_vl_storage","H5T_link","H5T_lock","H5T_nameof","H5T_noop_conv","H5T_oloc","H5T_open","H5T_own_vol_obj","H5T_patch_file","H5T_patch_vlen_file","H5T_path_bkg","H5T_path_compound_subset","H5T_path_find","H5T_path_match_find_type_with_volobj","H5T_path_noop","H5T_reclaim","H5T_reclaim_cb","H5T_restore_refresh_state","H5T_save_refresh_state","H5T_set_loc","H5T_set_loc.localalias","H5T_set_version","H5T_term_package","H5T_top_term_package","H5T_unregister","H5T_update_shared","H5T_vlen_reclaim_elmt","H5Tarray_create1","H5Tarray_create2","H5Tclose","H5Tclose_async","H5Tcommit1","H5Tcommit2","H5Tcommit_anon","H5Tcommit_async","H5Tcommitted","H5Tcompiler_conv","H5Tconvert","H5Tcopy","H5Tcreate","H5Tdecode","H5Tdetect_class","H5Tencode","H5Tenum_create","H5Tenum_insert","H5Tenum_nameof","H5Tenum_valueof","H5Tequal","H5Tfind","H5Tflush","H5Tget_array_dims1","H5Tget_array_dims2","H5Tget_array_ndims","H5Tget_class","H5Tget_create_plist","H5Tget_cset","H5Tget_ebias","H5Tget_fields","H5Tget_inpad","H5Tget_member_class","H5Tget_member_index","H5Tget_member_name","H5Tget_member_offset","H5Tget_member_type","H5Tget_member_value","H5Tget_native_type","H5Tget_nmembers","H5Tget_norm","H5Tget_offset","H5Tget_order","H5Tget_pad","H5Tget_precision","H5Tget_sign","H5Tget_size","H5Tget_strpad","H5Tget_super","H5Tget_tag","H5Tinsert","H5Tis_variable_str","H5Tlock","H5Topen1","H5Topen2","H5Topen_async","H5Tpack","H5Treclaim","H5Trefresh","H5Tregister","H5Tset_cset","H5Tset_ebias","H5Tset_fields","H5Tset_inpad","H5Tset_norm","H5Tset_offset","H5Tset_order","H5Tset_pad","H5Tset_precision","H5Tset_sign","H5Tset_size","H5Tset_strpad","H5Tset_tag","H5Tunregister","H5Tvlen_create","H5UC_create","H5UC_decr","H5VL__connector_str_to_info","H5VL__file_open_find_connector_cb","H5VL__find_opt_operation","H5VL__free_cls","H5VL__get_connector_cb","H5VL__get_connector_id","H5VL__get_connector_id_by_name","H5VL__get_connector_id_by_value","H5VL__get_connector_name","H5VL__is_connector_registered_by_name","H5VL__is_connector_registered_by_value","H5VL__is_default_conn","H5VL__native_attr_close","H5VL__native_attr_create","H5VL__native_attr_get","H5VL__native_attr_open","H5VL__native_attr_optional","H5VL__native_attr_read","H5VL__native_attr_specific","H5VL__native_attr_write","H5VL__native_blob_get","H5VL__native_blob_put","H5VL__native_blob_specific","H5VL__native_dataset_close","H5VL__native_dataset_create","H5VL__native_dataset_get","H5VL__native_dataset_io_cleanup","H5VL__native_dataset_io_setup","H5VL__native_dataset_open","H5VL__native_dataset_optional","H5VL__native_dataset_read","H5VL__native_dataset_specific","H5VL__native_dataset_write","H5VL__native_datatype_close","H5VL__native_datatype_commit","H5VL__native_datatype_get","H5VL__native_datatype_open","H5VL__native_datatype_specific","H5VL__native_file_close","H5VL__native_file_create","H5VL__native_file_get","H5VL__native_file_open","H5VL__native_file_optional","H5VL__native_file_specific","H5VL__native_get_file_addr_len","H5VL__native_group_close","H5VL__native_group_create","H5VL__native_group_get","H5VL__native_group_open","H5VL__native_group_optional","H5VL__native_group_specific","H5VL__native_introspect_get_cap_flags","H5VL__native_introspect_get_conn_cls","H5VL__native_introspect_opt_query","H5VL__native_link_copy","H5VL__native_link_create","H5VL__native_link_get","H5VL__native_link_move","H5VL__native_link_specific","H5VL__native_object_copy","H5VL__native_object_get","H5VL__native_object_open","H5VL__native_object_optional","H5VL__native_object_specific","H5VL__native_str_to_token","H5VL__native_term","H5VL__native_token_cmp","H5VL__native_token_to_str","H5VL__num_opt_operation","H5VL__peek_connector_id_by_name","H5VL__peek_connector_id_by_value","H5VL__register_connector","H5VL__register_connector_by_class","H5VL__register_connector_by_name","H5VL__register_connector_by_value","H5VL__register_opt_operation","H5VL__reparse_def_vol_conn_variable_test","H5VL__set_def_conn","H5VL__term_opt_operation","H5VL__term_opt_operation_cb","H5VL__unregister_opt_operation","H5VL__wrap_obj","H5VL_attr_close","H5VL_attr_create","H5VL_attr_get","H5VL_attr_open","H5VL_attr_optional","H5VL_attr_read","H5VL_attr_specific","H5VL_attr_write","H5VL_blob_get","H5VL_blob_optional","H5VL_blob_put","H5VL_blob_specific","H5VL_check_plugin_load","H5VL_cmp_connector_cls","H5VL_cmp_connector_info","H5VL_conn_copy","H5VL_conn_dec_rc","H5VL_conn_free","H5VL_conn_inc_rc","H5VL_copy_connector_info","H5VL_create_object","H5VL_create_object_using_vol_id","H5VL_dataset_close","H5VL_dataset_create","H5VL_dataset_get","H5VL_dataset_open","H5VL_dataset_optional","H5VL_dataset_read","H5VL_dataset_specific","H5VL_dataset_write","H5VL_datatype_close","H5VL_datatype_commit","H5VL_datatype_get","H5VL_datatype_open","H5VL_datatype_optional","H5VL_datatype_optional_op","H5VL_datatype_specific","H5VL_dec_vol_wrapper","H5VL_file_close","H5VL_file_create","H5VL_file_get","H5VL_file_is_same","H5VL_file_open","H5VL_file_optional","H5VL_file_specific","H5VL_finish_lib_state","H5VL_free_connector_info","H5VL_free_lib_state","H5VL_free_object","H5VL_free_wrap_ctx","H5VL_get_cap_flags","H5VL_get_wrap_ctx","H5VL_group_close","H5VL_group_create","H5VL_group_get","H5VL_group_open","H5VL_group_optional","H5VL_group_specific","H5VL_inc_vol_wrapper","H5VL_init_phase1","H5VL_init_phase2","H5VL_introspect_get_cap_flags","H5VL_introspect_get_conn_cls","H5VL_introspect_opt_query","H5VL_link_copy","H5VL_link_create","H5VL_link_get","H5VL_link_move","H5VL_link_optional","H5VL_link_specific","H5VL_native_addr_to_token","H5VL_native_get_file_addr_len","H5VL_native_get_file_struct","H5VL_native_register","H5VL_native_token_to_addr","H5VL_new_connector","H5VL_object","H5VL_object_copy","H5VL_object_data","H5VL_object_get","H5VL_object_inc_rc","H5VL_object_is_native","H5VL_object_open","H5VL_object_optional","H5VL_object_specific","H5VL_object_unwrap","H5VL_object_verify","H5VL_optional","H5VL_pass_through_attr_close","H5VL_pass_through_attr_create","H5VL_pass_through_attr_get","H5VL_pass_through_attr_open","H5VL_pass_through_attr_optional","H5VL_pass_through_attr_read","H5VL_pass_through_attr_specific","H5VL_pass_through_attr_write","H5VL_pass_through_blob_get","H5VL_pass_through_blob_optional","H5VL_pass_through_blob_put","H5VL_pass_through_blob_specific","H5VL_pass_through_dataset_close","H5VL_pass_through_dataset_create","H5VL_pass_through_dataset_get","H5VL_pass_through_dataset_open","H5VL_pass_through_dataset_optional","H5VL_pass_through_dataset_read","H5VL_pass_through_dataset_specific","H5VL_pass_through_dataset_write","H5VL_pass_through_datatype_close","H5VL_pass_through_datatype_commit","H5VL_pass_through_datatype_get","H5VL_pass_through_datatype_open","H5VL_pass_through_datatype_optional","H5VL_pass_through_datatype_specific","H5VL_pass_through_file_close","H5VL_pass_through_file_create","H5VL_pass_through_file_get","H5VL_pass_through_file_open","H5VL_pass_through_file_optional","H5VL_pass_through_file_specific","H5VL_pass_through_free_wrap_ctx","H5VL_pass_through_get_object","H5VL_pass_through_get_wrap_ctx","H5VL_pass_through_group_close","H5VL_pass_through_group_create","H5VL_pass_through_group_get","H5VL_pass_through_group_open","H5VL_pass_through_group_optional","H5VL_pass_through_group_specific","H5VL_pass_through_info_cmp","H5VL_pass_through_info_copy","H5VL_pass_through_info_free","H5VL_pass_through_info_to_str","H5VL_pass_through_init","H5VL_pass_through_introspect_get_cap_flags","H5VL_pass_through_introspect_get_conn_cls","H5VL_pass_through_introspect_opt_query","H5VL_pass_through_link_copy","H5VL_pass_through_link_create","H5VL_pass_through_link_get","H5VL_pass_through_link_move","H5VL_pass_through_link_optional","H5VL_pass_through_link_specific","H5VL_pass_through_object_copy","H5VL_pass_through_object_get","H5VL_pass_through_object_open","H5VL_pass_through_object_optional","H5VL_pass_through_object_specific","H5VL_pass_through_optional","H5VL_pass_through_register","H5VL_pass_through_request_cancel","H5VL_pass_through_request_free","H5VL_pass_through_request_notify","H5VL_pass_through_request_optional","H5VL_pass_through_request_specific","H5VL_pass_through_request_wait","H5VL_pass_through_str_to_info","H5VL_pass_through_term","H5VL_pass_through_token_cmp","H5VL_pass_through_token_from_str","H5VL_pass_through_token_to_str","H5VL_pass_through_unwrap_object","H5VL_pass_through_wrap_object","H5VL_register","H5VL_register_using_existing_id","H5VL_register_using_vol_id","H5VL_request_cancel","H5VL_request_free","H5VL_request_notify","H5VL_request_optional","H5VL_request_specific","H5VL_request_wait","H5VL_reset_vol_wrapper","H5VL_restore_lib_state","H5VL_retrieve_lib_state","H5VL_set_vol_wrapper","H5VL_setup_acc_args","H5VL_setup_args","H5VL_setup_idx_args","H5VL_setup_loc_args","H5VL_setup_name_args","H5VL_setup_self_args","H5VL_setup_token_args","H5VL_start_lib_state","H5VL_term_package","H5VL_token_cmp","H5VL_token_from_str","H5VL_token_to_str","H5VL_unwrap_object","H5VL_vol_object","H5VL_vol_object_verify","H5VL_wrap_object","H5VL_wrap_register","H5VLattr_close","H5VLattr_create","H5VLattr_get","H5VLattr_open","H5VLattr_optional","H5VLattr_optional_op","H5VLattr_read","H5VLattr_specific","H5VLattr_write","H5VLblob_get","H5VLblob_optional","H5VLblob_put","H5VLblob_specific","H5VLclose","H5VLcmp_connector_cls","H5VLcmp_connector_info","H5VLconnector_info_to_str","H5VLconnector_str_to_info","H5VLcopy_connector_info","H5VLdataset_close","H5VLdataset_create","H5VLdataset_get","H5VLdataset_open","H5VLdataset_optional","H5VLdataset_optional_op","H5VLdataset_read","H5VLdataset_specific","H5VLdataset_write","H5VLdatatype_close","H5VLdatatype_commit","H5VLdatatype_get","H5VLdatatype_open","H5VLdatatype_optional","H5VLdatatype_optional_op","H5VLdatatype_specific","H5VLfile_close","H5VLfile_create","H5VLfile_get","H5VLfile_open","H5VLfile_optional","H5VLfile_optional_op","H5VLfile_specific","H5VLfind_opt_operation","H5VLfinish_lib_state","H5VLfree_connector_info","H5VLfree_lib_state","H5VLfree_wrap_ctx","H5VLget_cap_flags","H5VLget_connector_id","H5VLget_connector_id_by_name","H5VLget_connector_id_by_value","H5VLget_connector_name","H5VLget_file_type","H5VLget_object","H5VLget_value","H5VLget_wrap_ctx","H5VLgroup_close","H5VLgroup_create","H5VLgroup_get","H5VLgroup_open","H5VLgroup_optional","H5VLgroup_optional_op","H5VLgroup_specific","H5VLinitialize","H5VLintrospect_get_cap_flags","H5VLintrospect_get_conn_cls","H5VLintrospect_opt_query","H5VLis_connector_registered_by_name","H5VLis_connector_registered_by_value","H5VLlink_copy","H5VLlink_create","H5VLlink_get","H5VLlink_move","H5VLlink_optional","H5VLlink_optional_op","H5VLlink_specific","H5VLnative_addr_to_token","H5VLnative_token_to_addr","H5VLobject","H5VLobject_copy","H5VLobject_get","H5VLobject_is_native","H5VLobject_open","H5VLobject_optional","H5VLobject_optional_op","H5VLobject_specific","H5VLoptional","H5VLpeek_connector_id_by_name","H5VLpeek_connector_id_by_value","H5VLquery_optional","H5VLregister_connector","H5VLregister_connector_by_name","H5VLregister_connector_by_value","H5VLregister_opt_operation","H5VLrequest_cancel","H5VLrequest_free","H5VLrequest_notify","H5VLrequest_optional","H5VLrequest_optional_op","H5VLrequest_specific","H5VLrequest_wait","H5VLrestore_lib_state","H5VLretrieve_lib_state","H5VLstart_lib_state","H5VLterminate","H5VLtoken_cmp","H5VLtoken_from_str","H5VLtoken_to_str","H5VLunregister_connector","H5VLunregister_opt_operation","H5VLunwrap_object","H5VLwrap_object","H5VLwrap_register","H5VM_array_calc","H5VM_array_calc_pre","H5VM_array_down","H5VM_array_fill","H5VM_array_offset","H5VM_array_offset_pre","H5VM_chunk_index","H5VM_chunk_index_scaled","H5VM_chunk_scaled","H5VM_hyper_copy","H5VM_hyper_eq","H5VM_hyper_fill","H5VM_hyper_stride","H5VM_memcpyvv","H5VM_opvv","H5VM_stride_copy","H5VM_stride_copy.part.0","H5VM_stride_copy_s","H5VM_stride_fill","H5WB_actual","H5WB_actual_clear","H5WB_unwrap","H5WB_wrap","H5Z__calc_parms_array","H5Z__calc_parms_compound","H5Z__can_apply_nbit","H5Z__can_apply_scaleoffset","H5Z__check_unregister_dset_cb","H5Z__check_unregister_group_cb","H5Z__do_op","H5Z__filter_deflate","H5Z__filter_fletcher32","H5Z__filter_nbit","H5Z__filter_scaleoffset","H5Z__filter_shuffle","H5Z__flush_file_cb","H5Z__get_token","H5Z__nbit_compress_one_array","H5Z__nbit_compress_one_atomic","H5Z__nbit_compress_one_compound","H5Z__nbit_decompress_one_array","H5Z__nbit_decompress_one_atomic","H5Z__nbit_decompress_one_compound","H5Z__new_node.part.0","H5Z__parse_expression","H5Z__parse_factor","H5Z__parse_term","H5Z__prelude_callback","H5Z__prepare_prelude_callback_dcpl","H5Z__scaleoffset_get_type","H5Z__scaleoffset_postdecompress_i","H5Z__scaleoffset_precompress_fd","H5Z__set_local_nbit","H5Z__set_local_scaleoffset","H5Z__set_local_shuffle","H5Z__set_parms_array","H5Z__set_parms_atomic","H5Z__set_parms_compound","H5Z__unregister","H5Z__xform_copy_tree.isra.0","H5Z__xform_destroy_parse_tree.part.0","H5Z__xform_eval_full","H5Z__xform_reduce_tree","H5Z_all_filters_avail","H5Z_append","H5Z_can_apply","H5Z_can_apply_direct","H5Z_delete","H5Z_filter_avail","H5Z_filter_in_pline","H5Z_filter_info","H5Z_find","H5Z_get_filter_info","H5Z_ignore_filters","H5Z_init","H5Z_modify","H5Z_pipeline","H5Z_register","H5Z_set_local","H5Z_set_local_direct","H5Z_term_package","H5Z_xform_copy","H5Z_xform_create","H5Z_xform_destroy","H5Z_xform_eval","H5Z_xform_extract_xform_str","H5Z_xform_noop","H5Zfilter_avail","H5Zget_filter_info","H5Zregister","H5Zunregister","H5__debug_mask","H5__mpi_delete_cb","H5_bandwidth","H5_basename","H5_buffer_dump","H5_build_extpath","H5_checksum_crc","H5_checksum_fletcher32","H5_checksum_lookup3","H5_checksum_metadata","H5_combine_path","H5_default_vfd_init","H5_dirname","H5_get_option","H5_get_time","H5_hash_string","H5_init_library","H5_make_time","H5_mpi_comm_cmp","H5_mpi_comm_dup","H5_mpi_comm_free","H5_mpi_get_bigio_count","H5_mpi_info_cmp","H5_mpi_info_dup","H5_mpi_info_free","H5_mpi_set_bigio_count","H5_mpio_create_large_type","H5_mpio_gatherv_alloc","H5_mpio_gatherv_alloc_simple","H5_mpio_get_file_sync_required","H5_nanosleep","H5_now","H5_now_usec","H5_strcasestr","H5_term_library","H5_term_library.part.0","H5_timer_get_time_string","H5_timer_get_times","H5_timer_get_total_times","H5_timer_init","H5_timer_start","H5_timer_stop","H5_trace","H5_trace_args","H5allocate_memory","H5atclose","H5check_version","H5close","H5dont_atexit","H5free_memory","H5garbage_collect","H5get_free_list_sizes","H5get_libversion","H5is_library_terminating","H5is_library_threadsafe","H5open","H5resize_memory","H5set_free_list_limits","Nflock","Pflock","__do_global_dtors_aux","atexit","compute_next","deregister_tm_clones","frame_dummy","open_members","register_tm_clones"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so","include_offsets":false},{"type":1,"name":"bio","functions":["bio_add_folio","bio_add_folio_nofail","bio_add_hw_folio","bio_add_hw_page","bio_add_page","bio_add_pc_page","bio_add_zone_append_page","bio_alloc_bioset","bio_alloc_cache_prune.constprop.0","bio_alloc_clone","bio_alloc_irq_cache_splice","bio_alloc_map_data","bio_alloc_rescue","bio_associate_blkg","bio_associate_blkg_from_css","bio_associate_blkg_from_page.isra.0","bio_attempt_back_merge","bio_attempt_discard_merge","bio_attempt_front_merge","bio_await_chain","bio_blkcg_css","bio_chain","bio_chain_and_submit","bio_chain_endio","bio_check_pages_dirty","bio_clone_blkg_association","bio_copy_data","bio_copy_data_iter","bio_copy_from_iter","bio_copy_kern_endio","bio_copy_kern_endio_read","bio_copy_user_iov","bio_cpu_dead","bio_dirty_fn","bio_end_io_acct_remapped","bio_endio","bio_free","bio_free_pages","bio_get_page","bio_init","bio_init_clone","bio_integrity_add_page","bio_integrity_advance","bio_integrity_alloc","bio_integrity_clone","bio_integrity_copy_user","bio_integrity_free","bio_integrity_init_user","bio_integrity_map_user","bio_integrity_prep","bio_integrity_prep.cold","bio_integrity_trim","bio_integrity_unmap_user","bio_integrity_unpin_bvec","bio_integrity_verify_fn","bio_iov_bvec_set","bio_iov_iter_get_pages","bio_kmalloc","bio_map_kern_endio","bio_map_user_iov","bio_next_page","bio_poll","bio_post_read_processing","bio_put","bio_reset","bio_set_pages_dirty","bio_split","bio_split_discard","bio_split_rw","bio_split_rw_at","bio_split_to_limits","bio_split_write_zeroes","bio_split_zone_append","bio_start_io_acct","bio_submit_split.part.0","bio_to_wbt_flags","bio_trim","bio_uninit","bio_wait_end_io","bioset_exit","bioset_init","bioset_integrity_create","bioset_integrity_free","biovec_init_pool"]},{"type":3,"name":"python","functions":["function__entry"],"binary_path":"/usr/lib64/libpython3.9.so","provider":"python"},{"type":1,"name":"os_page_cache","functions":["add_to_page_cache_lru","clear_page_dirty_for_io","delete_from_page_cache_batch","end_page_writeback","fault_in_safe_writeable","fault_in_subpage_writeable","fault_in_writeable","filemap_add_folio","filemap_alloc_folio","filemap_check_errors","filemap_fdatawait_keep_errors","filemap_fdatawait_range","filemap_fdatawait_range_keep_errors","filemap_fdatawrite","filemap_fdatawrite_range","filemap_fdatawrite_wbc","filemap_flush","filemap_get_folios","filemap_get_folios_contig","filemap_get_folios_tag","filemap_range_has_page","filemap_range_has_writeback","filemap_release_folio","filemap_remove_folio","folio_account_cleaned","folio_add_wait_queue","folio_clear_dirty_for_io","folio_end_private_2","folio_end_writeback","folio_invalidate","folio_mapping","folio_wait_bit","folio_wait_bit_killable","folio_wait_private_2","folio_wait_private_2_killable","folio_wait_stable","folio_wait_writeback","folio_wait_writeback_killable","grab_cache_page_write_begin","invalidate_inode_pages2","invalidate_inode_pages2_range","invalidate_mapping_pages","kiocb_invalidate_pages","kiocb_invalidate_post_direct_write","kiocb_write_and_wait","mapping_read_folio_gfp","mapping_seek_hole_data"]},{"type":1,"name":"shm","functions":["shmem_charge","shmem_file_setup","shmem_file_setup_with_mnt","shmem_get_folio","shmem_get_unmapped_area","shmem_init_fs_context","shmem_kernel_file_setup","shmem_lock","shmem_partial_swap_usage","shmem_read_folio_gfp","shmem_read_mapping_page_gfp","shmem_swap_usage","shmem_truncate_range","shmem_uncharge","shmem_unlock_mapping","shmem_unuse","shmem_zero_setup"]},{"type":1,"name":"fscache","functions":["__fscache_acquire_cookie","__fscache_acquire_volume","__fscache_begin_read_operation","__fscache_begin_write_operation","__fscache_clear_page_bits","__fscache_invalidate","__fscache_relinquish_cookie","__fscache_relinquish_volume","__fscache_resize_cookie","__fscache_unuse_cookie","__fscache_use_cookie","__fscache_write_to_cache"]},{"type":1,"name":"xfs","functions":["xfs_agfblock_init","xfs_agflblock_init","xfs_align_sparse_ino.isra.0","xfs_alloc_ag_max_usable","xfs_alloc_ag_vextent_exact","xfs_alloc_ag_vextent_locality","xfs_alloc_ag_vextent_near","xfs_alloc_ag_vextent_size","xfs_alloc_ag_vextent_small","xfs_alloc_btrec_to_irec","xfs_alloc_buftarg","xfs_alloc_cancel_autoreap","xfs_alloc_check_irec","xfs_alloc_cntbt_iter","xfs_alloc_commit_autoreap","xfs_alloc_compute_aligned","xfs_alloc_compute_diff","xfs_alloc_compute_maxlevels","xfs_alloc_cur_check","xfs_alloc_cur_finish","xfs_alloc_file_space","xfs_alloc_fix_freelist","xfs_alloc_fix_len","xfs_alloc_fixup_trees","xfs_alloc_get_freelist","xfs_alloc_get_rec","xfs_alloc_has_records","xfs_alloc_log_agf","xfs_alloc_longest_free_extent","xfs_alloc_lookup_eq","xfs_alloc_lookup_ge","xfs_alloc_lookup_le","xfs_alloc_min_freelist","xfs_alloc_put_freelist","xfs_alloc_query_all","xfs_alloc_query_range","xfs_alloc_query_range_helper","xfs_alloc_read_agf","xfs_alloc_read_agfl","xfs_alloc_schedule_autoreap","xfs_alloc_set_aside","xfs_alloc_space_available","xfs_alloc_update","xfs_alloc_update_counters","xfs_alloc_vextent_check_args","xfs_alloc_vextent_exact_bno","xfs_alloc_vextent_finish","xfs_alloc_vextent_first_ag","xfs_alloc_vextent_iterate_ags.constprop.0","xfs_alloc_vextent_near_bno","xfs_alloc_vextent_prepare_ag","xfs_alloc_vextent_start_ag","xfs_alloc_vextent_this_ag","xfs_alloc_walk_iter","xfs_allocfree_block_count","xfs_attr_leaf_entsize","xfs_attr_leaf_try_add","xfs_attr_restore_rmt_blk","xfs_btroot_init","xfs_buf_alert_ratelimited","xfs_buf_alloc_pages","xfs_buf_cmp","xfs_buf_corruption_error","xfs_buf_delwri_cancel","xfs_buf_delwri_pushbuf","xfs_buf_delwri_queue","xfs_buf_delwri_queue_here","xfs_buf_delwri_submit","xfs_buf_delwri_submit_buffers","xfs_buf_delwri_submit_nowait","xfs_buf_dquot_io_fail","xfs_buf_dquot_iodone","xfs_buf_find_insert.constprop.0","xfs_buf_find_lock","xfs_buf_free","xfs_buf_free_callback","xfs_buf_free_pages","xfs_buf_get_map","xfs_buf_get_uncached","xfs_buf_hash_destroy","xfs_buf_hash_init","xfs_buf_hold","xfs_buf_inode_io_fail","xfs_buf_inode_iodone","xfs_buf_ioapply_map","xfs_buf_ioend","xfs_buf_ioend_fail","xfs_buf_ioend_handle_error","xfs_buf_ioend_work","xfs_buf_ioerror_alert","xfs_buf_iowait","xfs_buf_item_committed","xfs_buf_item_committing","xfs_buf_item_dirty_format","xfs_buf_item_done","xfs_buf_item_format","xfs_buf_item_format_segment","xfs_buf_item_free","xfs_buf_item_free_format","xfs_buf_item_get_format","xfs_buf_item_init","xfs_buf_item_log","xfs_buf_item_pin","xfs_buf_item_push","xfs_buf_item_put","xfs_buf_item_release","xfs_buf_item_relse","xfs_buf_item_size","xfs_buf_item_size_segment.isra.0","xfs_buf_item_unpin","xfs_buf_lock","xfs_buf_log_check_iovec","xfs_buf_log_overhead","xfs_buf_offset","xfs_buf_read_map","xfs_buf_read_uncached","xfs_buf_readahead_map","xfs_buf_rele","xfs_buf_reverify","xfs_buf_set_ref","xfs_buf_stale","xfs_buf_trylock","xfs_buf_unlock","xfs_buf_verifier_error","xfs_buf_wait_unpin","xfs_buf_zero","xfs_buffered_write_delalloc_punch","xfs_buffered_write_iomap_begin","xfs_buffered_write_iomap_end","xfs_buftarg_drain_rele","xfs_buftarg_isolate","xfs_buftarg_shrink_count","xfs_buftarg_shrink_scan","xfs_bunmapi","xfs_bunmapi_range","xfs_bwrite","xfs_cntbt_diff_two_keys","xfs_cntbt_init_high_key_from_rec","xfs_cntbt_key_diff","xfs_cntbt_keys_inorder","xfs_cntbt_recs_inorder","xfs_cntroot_init","xfs_da3_blk_link","xfs_da3_blk_unlink.isra.0","xfs_da3_blkinfo_verify","xfs_da3_fixhashpath","xfs_da3_join","xfs_da3_node_add","xfs_da3_node_create","xfs_da3_node_hdr_from_disk","xfs_da3_node_hdr_to_disk","xfs_da3_node_lasthash.isra.0","xfs_da3_node_lookup_int","xfs_da3_node_order.isra.0","xfs_da3_node_read","xfs_da3_node_read_mapped","xfs_da3_node_read_verify","xfs_da3_node_rebalance.constprop.0","xfs_da3_node_remove","xfs_da3_node_set_type","xfs_da3_node_split","xfs_da3_node_toosmall","xfs_da3_node_unbalance","xfs_da3_node_verify","xfs_da3_node_verify_struct","xfs_da3_node_write_verify","xfs_da3_path_shift","xfs_da3_root_join","xfs_da3_root_split","xfs_da3_split","xfs_da3_swap_lastblock","xfs_da_buf_copy","xfs_da_compname","xfs_da_get_buf","xfs_da_grow_inode","xfs_da_grow_inode_int","xfs_da_hashname","xfs_da_mount","xfs_da_read_buf","xfs_da_reada_buf","xfs_da_shrink_inode","xfs_da_state_alloc","xfs_da_state_free","xfs_da_state_kill_altpath","xfs_da_state_reset","xfs_da_unmount","xfs_dabuf_map.constprop.0","xfs_dax_write_iomap_end","xfs_dax_writepages","xfs_dio_write_end_io","xfs_direct_write_iomap_begin","xfs_discard_endio","xfs_discard_endio_work","xfs_discard_extents","xfs_discard_folio","xfs_do_force_shutdown","xfs_dquot_buf_read_verify","xfs_dquot_buf_readahead_verify","xfs_dquot_buf_verify","xfs_dquot_buf_verify_crc.isra.0","xfs_dquot_buf_verify_struct","xfs_dquot_buf_write_verify","xfs_end_ioend","xfs_extent_busy_ag_cmp","xfs_extent_busy_clear","xfs_extent_busy_clear_one","xfs_extent_busy_flush","xfs_extent_busy_insert","xfs_extent_busy_insert_discard","xfs_extent_busy_insert_list","xfs_extent_busy_list_empty","xfs_extent_busy_reuse","xfs_extent_busy_search","xfs_extent_busy_trim","xfs_extent_busy_update_extent","xfs_extent_busy_wait_all","xfs_extent_free_abort_intent","xfs_extent_free_cancel_item","xfs_extent_free_create_done","xfs_extent_free_create_intent","xfs_extent_free_diff_items","xfs_extent_free_finish_item","xfs_extent_free_get_group","xfs_extent_free_log_item.constprop.0","xfs_extent_free_recover_work","xfs_extent_free_relog_intent","xfs_extfree_intent_destroy_cache","xfs_file_buffered_read","xfs_file_buffered_write","xfs_file_dax_read","xfs_file_dax_write","xfs_file_dio_read","xfs_file_dio_write_aligned","xfs_file_dio_write_unaligned","xfs_file_fadvise","xfs_file_fallocate","xfs_file_fsync","xfs_file_llseek","xfs_file_mmap","xfs_file_open","xfs_file_read_iter","xfs_file_readdir","xfs_file_release","xfs_file_remap_range","xfs_file_write_checks","xfs_file_write_iter","xfs_filemap_fault","xfs_filemap_huge_fault","xfs_filemap_page_mkwrite","xfs_filemap_pfn_mkwrite","xfs_finobt_init_ptr_from_cur","xfs_free_ag_extent","xfs_freesp_init_recs.isra.0","xfs_fs_alloc_inode","xfs_fs_commit_blocks","xfs_fs_destroy_inode","xfs_fs_dirty_inode","xfs_fs_drop_inode","xfs_fs_encode_fh","xfs_fs_fh_to_dentry","xfs_fs_fh_to_parent","xfs_fs_fill_super","xfs_fs_free","xfs_fs_free_cached_objects","xfs_fs_freeze","xfs_fs_geometry","xfs_fs_get_dqblk","xfs_fs_get_nextdqblk","xfs_fs_get_parent","xfs_fs_get_quota_state","xfs_fs_get_tree","xfs_fs_get_uuid","xfs_fs_goingdown","xfs_fs_inode_init_once","xfs_fs_map_blocks","xfs_fs_mark_healthy","xfs_fs_mark_sick","xfs_fs_measure_sickness","xfs_fs_nfs_commit_metadata","xfs_fs_nr_cached_objects","xfs_fs_parse_param","xfs_fs_put_super","xfs_fs_reconfigure","xfs_fs_reserve_ag_blocks","xfs_fs_rm_xquota","xfs_fs_set_dqblk","xfs_fs_set_info","xfs_fs_show_options","xfs_fs_shutdown","xfs_fs_statfs","xfs_fs_sync_fs","xfs_fs_unfreeze","xfs_fs_unreserve_ag_blocks","xfs_fs_validate_params","xfs_fs_writable","xfs_ialloc_ag_alloc","xfs_ialloc_count_inodes_rec","xfs_ialloc_count_ondisk","xfs_ialloc_get_rec","xfs_ialloc_next_rec","xfs_iflush","xfs_iflush_abort","xfs_iflush_cluster","xfs_iflush_fork","xfs_iflush_shutdown_abort","xfs_ifork_init_attr","xfs_ifork_init_cow","xfs_ifork_verify_local_attr","xfs_ifork_verify_local_data","xfs_ifork_zap_attr","xfs_ifork_zapped","xfs_ilock_for_iomap","xfs_ilock_iocb_for_write","xfs_inode_alloc","xfs_inode_buf_read_verify","xfs_inode_buf_readahead_verify","xfs_inode_buf_verify","xfs_inode_buf_write_verify","xfs_inode_clear_cowblocks_tag","xfs_inode_clear_eofblocks_tag","xfs_inode_free","xfs_inode_free_callback","xfs_inode_free_cowblocks","xfs_inode_free_eofblocks.constprop.0","xfs_inode_from_disk","xfs_inode_from_disk_ts","xfs_inode_hasattr","xfs_inode_inherit_flags","xfs_inode_init_security","xfs_inode_item_attr_fork_size","xfs_inode_item_committed","xfs_inode_item_committing","xfs_inode_item_data_fork_size","xfs_inode_item_destroy","xfs_inode_item_format","xfs_inode_item_format_attr_fork","xfs_inode_item_format_convert","xfs_inode_item_format_data_fork","xfs_inode_item_init","xfs_inode_item_pin","xfs_inode_item_precommit","xfs_inode_item_push","xfs_inode_item_release","xfs_inode_item_size","xfs_inode_item_sort","xfs_inode_item_unpin","xfs_inode_mark_healthy","xfs_inode_mark_reclaimable","xfs_inode_mark_sick","xfs_inode_measure_sickness","xfs_inode_near_dquot_enforcement","xfs_inode_needs_inactive","xfs_inode_reload_unlinked","xfs_inode_reload_unlinked_bucket","xfs_inode_set_cowblocks_tag","xfs_inode_set_eofblocks_tag","xfs_inode_to_disk","xfs_inode_to_log_dinode","xfs_inode_validate_cowextsize","xfs_inode_validate_extsize","xfs_inode_verifier_error","xfs_iomap_eof_align_last_fsb","xfs_iomap_inode_sequence","xfs_iomap_prealloc_size.constprop.0.isra.0","xfs_iomap_swapfile_activate","xfs_iomap_valid","xfs_iomap_write_direct","xfs_iomap_write_unwritten","xfs_iread_bmbt_block","xfs_lookup_get_search_key","xfs_map_blocks","xfs_mru_cache_create","xfs_mru_cache_delete","xfs_mru_cache_destroy","xfs_mru_cache_done","xfs_mru_cache_init","xfs_mru_cache_insert","xfs_mru_cache_lookup","xfs_mru_cache_remove","xfs_mru_cache_uninit","xfs_nfs_get_inode.isra.0","xfs_prepare_ioend","xfs_read_agf","xfs_read_agi","xfs_read_iomap_begin","xfs_readdir","xfs_readlink","xfs_readlink_bmap_ilocked","xfs_readlink_by_handle","xfs_release","xfs_remove","xfs_rename","xfs_reserve_blocks","xfs_restore_resvblks","xfs_vm_bmap","xfs_vm_read_folio","xfs_vm_readahead","xfs_vm_writepages","xfs_xattr_iomap_begin"]},{"type":1,"name":"ext4","functions":["ext4_alloc_branch","ext4_alloc_da_blocks","ext4_alloc_file_blocks.isra.0","ext4_alloc_flex_bg_array","ext4_alloc_group_tables","ext4_alloc_inode","ext4_alloc_io_end_vec","ext4_append","ext4_block_bitmap","ext4_block_bitmap_csum_set","ext4_block_bitmap_csum_verify","ext4_block_bitmap_set","ext4_block_to_path","ext4_block_write_begin","ext4_block_zero_page_range","ext4_bmap","ext4_bread","ext4_bread_batch","ext4_da_convert_inline_data_to_extent","ext4_da_get_block_prep","ext4_da_map_blocks.constprop.0","ext4_da_release_space","ext4_da_reserve_space","ext4_da_update_reserve_space","ext4_da_write_begin","ext4_da_write_end","ext4_da_write_inline_data_begin","ext4_dio_alignment","ext4_dio_write_checks","ext4_dio_write_end_io","ext4_dio_write_iter","ext4_dirty_folio","ext4_dirty_inode","ext4_end_buffer_io_sync","ext4_end_io_rsv_work","ext4_exit_es","ext4_exit_mballoc","ext4_exit_pageio","ext4_exit_pending","ext4_exit_post_read_processing","ext4_exit_sysfs","ext4_exit_system_zone","ext4_ext_calc_credits_for_single_extent","ext4_ext_check_inode","ext4_ext_clear_bb","ext4_ext_convert_to_initialized","ext4_ext_correct_indexes","ext4_ext_find_goal","ext4_ext_get_access","ext4_ext_grow_indepth","ext4_ext_handle_unwritten_extents","ext4_ext_index_trans_blocks","ext4_ext_init","ext4_ext_insert_extent","ext4_ext_insert_index","ext4_ext_map_blocks","ext4_ext_migrate","ext4_ext_next_allocated_block","ext4_ext_precache","ext4_ext_precache.part.0","ext4_ext_release","ext4_ext_remove_space","ext4_ext_replay_set_iblocks","ext4_ext_replay_shrink_inode","ext4_ext_replay_update_ex","ext4_ext_rm_idx","ext4_ext_rm_leaf","ext4_ext_search_left","ext4_ext_search_right","ext4_ext_shift_extents","ext4_ext_shift_path_extents","ext4_ext_split","ext4_ext_swap_inode_data","ext4_ext_tree_init","ext4_ext_truncate","ext4_ext_try_to_merge","ext4_ext_try_to_merge_right","ext4_ext_try_to_merge_up","ext4_extent_block_csum_set","ext4_fallocate","ext4_fh_to_dentry","ext4_fh_to_parent","ext4_fiemap","ext4_file_getattr","ext4_file_mmap","ext4_file_open","ext4_file_read_iter","ext4_file_write_iter","ext4_fileattr_get","ext4_fileattr_set","ext4_find_dest_de","ext4_find_entry","ext4_find_extent","ext4_find_inline_data_nolock","ext4_find_inline_entry","ext4_find_shared","ext4_finish_convert_inline_dir","ext4_free_blocks","ext4_free_blocks_simple.isra.0","ext4_free_branches","ext4_free_clusters_after_init","ext4_free_data","ext4_free_ext_path","ext4_free_group_clusters","ext4_free_group_clusters_set","ext4_free_in_core_inode","ext4_free_inode","ext4_free_inodes_count","ext4_free_inodes_set","ext4_free_link","ext4_io_submit","ext4_io_submit_init","ext4_iomap_begin","ext4_iomap_begin_report","ext4_iomap_end","ext4_iomap_overwrite_begin","ext4_iomap_swap_activate","ext4_iomap_xattr_begin","ext4_journal_abort_handle.constprop.0","ext4_journal_bmap","ext4_journal_check_start","ext4_journal_commit_callback","ext4_journal_finish_inode_data_buffers","ext4_journal_submit_inode_data_buffers","ext4_journalled_dirty_folio","ext4_journalled_invalidate_folio","ext4_journalled_submit_inode_data_buffers","ext4_journalled_write_end","ext4_journalled_write_inline_data","ext4_journalled_writepage_callback","ext4_journalled_zero_new_buffers","ext4_mark_bitmap_end","ext4_mark_bitmap_end.part.0","ext4_mark_dquot_dirty","ext4_mark_group_bitmap_corrupted","ext4_mark_iloc_dirty","ext4_mark_inode_used","ext4_mark_recovery_complete.constprop.0","ext4_mballoc_query_range","ext4_meta_trans_blocks","ext4_mkdir","ext4_mknod","ext4_move_extents","ext4_read_bh","ext4_read_bh_lock","ext4_read_bh_nowait","ext4_read_block_bitmap","ext4_read_block_bitmap_nowait","ext4_read_folio","ext4_read_inline_data.part.0.isra.0","ext4_read_inline_dir","ext4_read_inline_link","ext4_read_inline_page","ext4_read_inode_bitmap","ext4_read_merkle_tree_page","ext4_readahead","ext4_readdir","ext4_readpage_inline","ext4_release_io_end","ext4_statfs","ext4_swap_extents","ext4_symlink","ext4_sync_file","ext4_sync_fs","ext4_tmpfile","ext4_trim_all_free","ext4_trim_fs","ext4_truncate","ext4_unfreeze","ext4_unlink","ext4_write_begin","ext4_write_dquot","ext4_write_end","ext4_write_info","ext4_write_inline_data","ext4_write_inline_data_end","ext4_write_inode","ext4_write_merkle_tree_block","ext4_writepage","ext4_writepage_cb","ext4_writepage_trans_blocks","ext4_writepages"]},{"type":1,"name":"iomap","functions":["iomap_add_to_ioend","iomap_adjust_read_range.isra.0","iomap_bmap","iomap_dio_complete","iomap_dio_complete_work","iomap_dio_deferred_complete","iomap_dio_inline_iter","iomap_dio_rw","iomap_dio_zero","iomap_dirty_folio","iomap_do_writepage","iomap_fiemap","iomap_file_buffered_write","iomap_file_buffered_write_punch_delalloc","iomap_file_unshare","iomap_finish_ioend","iomap_finish_ioends","iomap_get_folio","iomap_invalidate_folio","iomap_ioend_compare","iomap_ioend_try_merge","iomap_is_partially_uptodate","iomap_iter","iomap_page_mkwrite","iomap_read_end_io","iomap_read_folio","iomap_read_folio_sync","iomap_read_inline_data","iomap_readahead","iomap_readpage_iter","iomap_release_folio","iomap_seek_data","iomap_seek_hole","iomap_sort_ioends","iomap_submit_ioend","iomap_swapfile_activate","iomap_swapfile_add_extent","iomap_swapfile_fail","iomap_swapfile_iter","iomap_to_bh","iomap_to_fiemap","iomap_truncate_page","iomap_unshare_iter","iomap_write_begin","iomap_write_delalloc_release","iomap_write_end","iomap_write_iter","iomap_writepage_map","iomap_writepages","iomap_zero_iter","iomap_zero_range"]},{"type":2,"name":"mpi","functions":["MPIX_Comm_ack_failed","MPIX_Comm_ack_failed.cold","MPIX_Comm_agree","MPIX_Comm_agree.cold","MPIX_Comm_failure_ack","MPIX_Comm_failure_ack.cold","MPIX_Comm_failure_get_acked","MPIX_Comm_failure_get_acked.cold","MPIX_Comm_get_failed","MPIX_Comm_get_failed.cold","MPIX_Comm_iagree","MPIX_Comm_iagree.cold","MPIX_Comm_is_revoked","MPIX_Comm_revoke","MPIX_Comm_revoke.cold","MPIX_Comm_shrink","MPIX_Comm_shrink.cold","MPIX_Query_cuda_support","MPIX_Query_rocm_support","MPI_AINT_ADD_F90","MPI_AINT_DIFF_F90","MPI_Abort","MPI_Accumulate","MPI_Add_error_class","MPI_Add_error_code","MPI_Add_error_string","MPI_Address","MPI_Allgather","MPI_Allgather_init","MPI_Allgatherv","MPI_Allgatherv_init","MPI_Alloc_mem","MPI_Allreduce","MPI_Allreduce_init","MPI_Alltoall","MPI_Alltoall_init","MPI_Alltoallv","MPI_Alltoallv_init","MPI_Alltoallw","MPI_Alltoallw_init","MPI_Attr_delete","MPI_Attr_get","MPI_Attr_put","MPI_Barrier","MPI_Barrier_init","MPI_Bcast","MPI_Bcast_init","MPI_Bsend","MPI_Bsend_init","MPI_Buffer_attach","MPI_Buffer_detach","MPI_COMM_DUP_FN","MPI_COMM_NULL_COPY_FN","MPI_COMM_NULL_DELETE_FN","MPI_CONVERSION_FN_NULL","MPI_Cancel","MPI_Cart_coords","MPI_Cart_create","MPI_Cart_get","MPI_Cart_map","MPI_Cart_rank","MPI_Cart_shift","MPI_Cart_sub","MPI_Cartdim_get","MPI_Close_port","MPI_Comm_accept","MPI_Comm_c2f","MPI_Comm_call_errhandler","MPI_Comm_compare","MPI_Comm_connect","MPI_Comm_create","MPI_Comm_create_errhandler","MPI_Comm_create_from_group","MPI_Comm_create_group","MPI_Comm_create_keyval","MPI_Comm_delete_attr","MPI_Comm_disconnect","MPI_Comm_dup","MPI_Comm_dup_with_info","MPI_Comm_f2c","MPI_Comm_free","MPI_Comm_free_keyval","MPI_Comm_get_attr","MPI_Comm_get_errhandler","MPI_Comm_get_info","MPI_Comm_get_name","MPI_Comm_get_parent","MPI_Comm_group","MPI_Comm_idup","MPI_Comm_idup_with_info","MPI_Comm_join","MPI_Comm_rank","MPI_Comm_remote_group","MPI_Comm_remote_size","MPI_Comm_set_attr","MPI_Comm_set_errhandler","MPI_Comm_set_info","MPI_Comm_set_name","MPI_Comm_size","MPI_Comm_spawn","MPI_Comm_spawn_multiple","MPI_Comm_split","MPI_Comm_split_type","MPI_Comm_test_inter","MPI_Compare_and_swap","MPI_DUP_FN","MPI_Dims_create","MPI_Dist_graph_create","MPI_Dist_graph_create_adjacent","MPI_Dist_graph_neighbors","MPI_Dist_graph_neighbors_count","MPI_Errhandler_c2f","MPI_Errhandler_create","MPI_Errhandler_f2c","MPI_Errhandler_free","MPI_Errhandler_get","MPI_Errhandler_set","MPI_Error_class","MPI_Error_string","MPI_Exscan","MPI_Exscan_init","MPI_Fetch_and_op","MPI_File_c2f","MPI_File_call_errhandler","MPI_File_close","MPI_File_create_errhandler","MPI_File_delete","MPI_File_f2c","MPI_File_get_amode","MPI_File_get_atomicity","MPI_File_get_byte_offset","MPI_File_get_errhandler","MPI_File_get_group","MPI_File_get_info","MPI_File_get_position","MPI_File_get_position_shared","MPI_File_get_size","MPI_File_get_type_extent","MPI_File_get_view","MPI_File_iread","MPI_File_iread_all","MPI_File_iread_at","MPI_File_iread_at_all","MPI_File_iread_shared","MPI_File_iwrite","MPI_File_iwrite_all","MPI_File_iwrite_at","MPI_File_iwrite_at_all","MPI_File_iwrite_shared","MPI_File_open","MPI_File_preallocate","MPI_File_read","MPI_File_read_all","MPI_File_read_all_begin","MPI_File_read_all_end","MPI_File_read_at","MPI_File_read_at_all","MPI_File_read_at_all_begin","MPI_File_read_at_all_end","MPI_File_read_ordered","MPI_File_read_ordered_begin","MPI_File_read_ordered_end","MPI_File_read_shared","MPI_File_seek","MPI_File_seek_shared","MPI_File_set_atomicity","MPI_File_set_errhandler","MPI_File_set_info","MPI_File_set_size","MPI_File_set_view","MPI_File_sync","MPI_File_write","MPI_File_write_all","MPI_File_write_all_begin","MPI_File_write_all_end","MPI_File_write_at","MPI_File_write_at_all","MPI_File_write_at_all_begin","MPI_File_write_at_all_end","MPI_File_write_ordered","MPI_File_write_ordered_begin","MPI_File_write_ordered_end","MPI_File_write_shared","MPI_Finalize","MPI_Finalized","MPI_Free_mem","MPI_Gather","MPI_Gather_init","MPI_Gatherv","MPI_Gatherv_init","MPI_Get","MPI_Get_accumulate","MPI_Get_address","MPI_Get_count","MPI_Get_elements","MPI_Get_elements_x","MPI_Get_library_version","MPI_Get_processor_name","MPI_Get_version","MPI_Graph_create","MPI_Graph_get","MPI_Graph_map","MPI_Graph_neighbors","MPI_Graph_neighbors_count","MPI_Graphdims_get","MPI_Grequest_complete","MPI_Grequest_start","MPI_Group_c2f","MPI_Group_compare","MPI_Group_difference","MPI_Group_excl","MPI_Group_f2c","MPI_Group_free","MPI_Group_from_session_pset","MPI_Group_incl","MPI_Group_intersection","MPI_Group_range_excl","MPI_Group_range_incl","MPI_Group_rank","MPI_Group_size","MPI_Group_translate_ranks","MPI_Group_union","MPI_Iallgather","MPI_Iallgatherv","MPI_Iallreduce","MPI_Ialltoall","MPI_Ialltoallv","MPI_Ialltoallw","MPI_Ibarrier","MPI_Ibcast","MPI_Ibsend","MPI_Iexscan","MPI_Igather","MPI_Igatherv","MPI_Improbe","MPI_Imrecv","MPI_Ineighbor_allgather","MPI_Ineighbor_allgatherv","MPI_Ineighbor_alltoall","MPI_Ineighbor_alltoallv","MPI_Ineighbor_alltoallw","MPI_Info_c2f","MPI_Info_create","MPI_Info_create_env","MPI_Info_delete","MPI_Info_dup","MPI_Info_f2c","MPI_Info_free","MPI_Info_get","MPI_Info_get_nkeys","MPI_Info_get_nthkey","MPI_Info_get_string","MPI_Info_get_valuelen","MPI_Info_set","MPI_Init","MPI_Init_thread","MPI_Initialized","MPI_Intercomm_create","MPI_Intercomm_create_from_groups","MPI_Intercomm_merge","MPI_Iprobe","MPI_Irecv","MPI_Ireduce","MPI_Ireduce_scatter","MPI_Ireduce_scatter_block","MPI_Irsend","MPI_Is_thread_main","MPI_Iscan","MPI_Iscatter","MPI_Iscatterv","MPI_Isend","MPI_Isendrecv","MPI_Isendrecv_replace","MPI_Issend","MPI_Keyval_create","MPI_Keyval_free","MPI_Lookup_name","MPI_Message_c2f","MPI_Message_f2c","MPI_Mprobe","MPI_Mrecv","MPI_NULL_COPY_FN","MPI_NULL_DELETE_FN","MPI_Neighbor_allgather","MPI_Neighbor_allgather_init","MPI_Neighbor_allgatherv","MPI_Neighbor_allgatherv_init","MPI_Neighbor_alltoall","MPI_Neighbor_alltoall_init","MPI_Neighbor_alltoallv","MPI_Neighbor_alltoallv_init","MPI_Neighbor_alltoallw","MPI_Neighbor_alltoallw_init","MPI_Op_c2f","MPI_Op_commutative","MPI_Op_create","MPI_Op_f2c","MPI_Op_free","MPI_Open_port","MPI_Pack","MPI_Pack_external","MPI_Pack_external_size","MPI_Pack_size","MPI_Parrived","MPI_Pcontrol","MPI_Pready","MPI_Pready_list","MPI_Pready_range","MPI_Precv_init","MPI_Probe","MPI_Psend_init","MPI_Publish_name","MPI_Put","MPI_Query_thread","MPI_Raccumulate","MPI_Recv","MPI_Recv_init","MPI_Reduce","MPI_Reduce_init","MPI_Reduce_local","MPI_Reduce_scatter","MPI_Reduce_scatter_block","MPI_Reduce_scatter_block_init","MPI_Reduce_scatter_init","MPI_Register_datarep","MPI_Request_c2f","MPI_Request_f2c","MPI_Request_free","MPI_Request_get_status","MPI_Rget","MPI_Rget_accumulate","MPI_Rput","MPI_Rsend","MPI_Rsend_init","MPI_Scan","MPI_Scan_init","MPI_Scatter","MPI_Scatter_init","MPI_Scatterv","MPI_Scatterv_init","MPI_Send","MPI_Send_init","MPI_Sendrecv","MPI_Sendrecv_replace","MPI_Session_c2f","MPI_Session_call_errhandler","MPI_Session_create_errhandler","MPI_Session_f2c","MPI_Session_finalize","MPI_Session_get_errhandler","MPI_Session_get_info","MPI_Session_get_nth_pset","MPI_Session_get_num_psets","MPI_Session_get_pset_info","MPI_Session_init","MPI_Session_set_errhandler","MPI_Session_set_info","MPI_Ssend","MPI_Ssend_init","MPI_Start","MPI_Startall","MPI_Status_c2f","MPI_Status_c2f08","MPI_Status_f082c","MPI_Status_f082f","MPI_Status_f2c","MPI_Status_f2f08","MPI_Status_set_cancelled","MPI_Status_set_elements","MPI_Status_set_elements_x","MPI_TYPE_DUP_FN","MPI_TYPE_NULL_COPY_FN","MPI_TYPE_NULL_DELETE_FN","MPI_T_category_changed","MPI_T_category_get_categories","MPI_T_category_get_cvars","MPI_T_category_get_index","MPI_T_category_get_info","MPI_T_category_get_num","MPI_T_category_get_pvars","MPI_T_cvar_get_index","MPI_T_cvar_get_info","MPI_T_cvar_get_num","MPI_T_cvar_handle_alloc","MPI_T_cvar_handle_free","MPI_T_cvar_read","MPI_T_cvar_write","MPI_T_enum_get_info","MPI_T_enum_get_item","MPI_T_finalize","MPI_T_init_thread","MPI_T_pvar_get_index","MPI_T_pvar_get_info","MPI_T_pvar_get_num","MPI_T_pvar_handle_alloc","MPI_T_pvar_handle_free","MPI_T_pvar_read","MPI_T_pvar_readreset","MPI_T_pvar_reset","MPI_T_pvar_session_create","MPI_T_pvar_session_free","MPI_T_pvar_start","MPI_T_pvar_stop","MPI_T_pvar_write","MPI_Test","MPI_Test_cancelled","MPI_Testall","MPI_Testany","MPI_Testsome","MPI_Topo_test","MPI_Type_c2f","MPI_Type_commit","MPI_Type_contiguous","MPI_Type_create_darray","MPI_Type_create_f90_complex","MPI_Type_create_f90_integer","MPI_Type_create_f90_real","MPI_Type_create_hindexed","MPI_Type_create_hindexed_block","MPI_Type_create_hvector","MPI_Type_create_indexed_block","MPI_Type_create_keyval","MPI_Type_create_resized","MPI_Type_create_struct","MPI_Type_create_subarray","MPI_Type_delete_attr","MPI_Type_dup","MPI_Type_extent","MPI_Type_f2c","MPI_Type_free","MPI_Type_free_keyval","MPI_Type_get_attr","MPI_Type_get_contents","MPI_Type_get_envelope","MPI_Type_get_extent","MPI_Type_get_extent_x","MPI_Type_get_name","MPI_Type_get_true_extent","MPI_Type_get_true_extent_x","MPI_Type_hindexed","MPI_Type_hvector","MPI_Type_indexed","MPI_Type_lb","MPI_Type_match_size","MPI_Type_set_attr","MPI_Type_set_name","MPI_Type_size","MPI_Type_size_x","MPI_Type_struct","MPI_Type_ub","MPI_Type_vector","MPI_Unpack","MPI_Unpack_external","MPI_Unpublish_name","MPI_WIN_DUP_FN","MPI_WIN_NULL_COPY_FN","MPI_WIN_NULL_DELETE_FN","MPI_WTICK_F90","MPI_WTIME_F90","MPI_Wait","MPI_Waitall","MPI_Waitany","MPI_Waitsome","MPI_Win_allocate","MPI_Win_allocate_shared","MPI_Win_attach","MPI_Win_c2f","MPI_Win_call_errhandler","MPI_Win_complete","MPI_Win_create","MPI_Win_create_dynamic","MPI_Win_create_errhandler","MPI_Win_create_keyval","MPI_Win_delete_attr","MPI_Win_detach","MPI_Win_f2c","MPI_Win_fence","MPI_Win_flush","MPI_Win_flush_all","MPI_Win_flush_local","MPI_Win_flush_local_all","MPI_Win_free","MPI_Win_free_keyval","MPI_Win_get_attr","MPI_Win_get_errhandler","MPI_Win_get_group","MPI_Win_get_info","MPI_Win_get_name","MPI_Win_lock","MPI_Win_lock_all","MPI_Win_post","MPI_Win_set_attr","MPI_Win_set_errhandler","MPI_Win_set_info","MPI_Win_set_name","MPI_Win_shared_query","MPI_Win_start","MPI_Win_sync","MPI_Win_test","MPI_Win_unlock","MPI_Win_unlock_all","MPI_Win_wait","MPI_Wtick","MPI_Wtime","NBC_Comm_neighbors","NBC_Comm_neighbors_count","NBC_Error","NBC_Error.constprop.0:0x12d820","NBC_Error.constprop.0:0x12e380","NBC_Error.constprop.0:0x12ee10","NBC_Error.constprop.0:0x130de0","NBC_Error.constprop.0:0x138c20","NBC_Error.constprop.0:0x13a930","NBC_Error.constprop.0:0x13bee0","NBC_Init_comm","NBC_Progress","NBC_Return_handle","NBC_Sched_barrier","NBC_Sched_commit","NBC_Sched_copy","NBC_Sched_local_recv","NBC_Sched_local_send","NBC_Sched_op","NBC_Sched_recv","NBC_Sched_send","NBC_Sched_unpack","NBC_Schedule_request","NBC_Start","NBC_Start_round","OMPI_Affinity_str","OMPI_Affinity_str.cold","OMPI_C_MPI_COMM_DUP_FN","OMPI_C_MPI_COMM_NULL_COPY_FN","OMPI_C_MPI_COMM_NULL_DELETE_FN","OMPI_C_MPI_DUP_FN","OMPI_C_MPI_NULL_COPY_FN","OMPI_C_MPI_NULL_DELETE_FN","OMPI_C_MPI_TYPE_DUP_FN","OMPI_C_MPI_TYPE_NULL_COPY_FN","OMPI_C_MPI_TYPE_NULL_DELETE_FN","OMPI_C_MPI_WIN_DUP_FN","OMPI_C_MPI_WIN_NULL_COPY_FN","OMPI_C_MPI_WIN_NULL_DELETE_FN","OMPI_TEST_FORTRAN_CONSTANTS","PMPIX_Comm_ack_failed","PMPIX_Comm_ack_failed.cold","PMPIX_Comm_agree","PMPIX_Comm_agree.cold","PMPIX_Comm_failure_ack","PMPIX_Comm_failure_ack.cold","PMPIX_Comm_failure_get_acked","PMPIX_Comm_failure_get_acked.cold","PMPIX_Comm_get_failed","PMPIX_Comm_get_failed.cold","PMPIX_Comm_iagree","PMPIX_Comm_iagree.cold","PMPIX_Comm_is_revoked","PMPIX_Comm_revoke","PMPIX_Comm_revoke.cold","PMPIX_Comm_shrink","PMPIX_Comm_shrink.cold","PMPI_Abort","PMPI_Accumulate","PMPI_Accumulate.cold","PMPI_Add_error_class","PMPI_Add_error_class.cold","PMPI_Add_error_code","PMPI_Add_error_code.cold","PMPI_Add_error_string","PMPI_Address","PMPI_Allgather","PMPI_Allgather.cold","PMPI_Allgather_init","PMPI_Allgather_init.cold","PMPI_Allgatherv","PMPI_Allgatherv.cold","PMPI_Allgatherv_init","PMPI_Allgatherv_init.cold","PMPI_Alloc_mem","PMPI_Allreduce","PMPI_Allreduce.cold","PMPI_Allreduce_init","PMPI_Allreduce_init.cold","PMPI_Alltoall","PMPI_Alltoall.cold","PMPI_Alltoall_init","PMPI_Alltoall_init.cold","PMPI_Alltoallv","PMPI_Alltoallv.cold","PMPI_Alltoallv_init","PMPI_Alltoallv_init.cold","PMPI_Alltoallw","PMPI_Alltoallw.cold","PMPI_Alltoallw_init","PMPI_Alltoallw_init.cold","PMPI_Attr_delete","PMPI_Attr_get","PMPI_Attr_get.cold","PMPI_Attr_put","PMPI_Barrier","PMPI_Barrier.cold","PMPI_Barrier_init","PMPI_Barrier_init.cold","PMPI_Bcast","PMPI_Bcast.cold","PMPI_Bcast_init","PMPI_Bcast_init.cold","PMPI_Bsend","PMPI_Bsend.cold","PMPI_Bsend_init","PMPI_Bsend_init.cold","PMPI_Buffer_attach","PMPI_Buffer_detach","PMPI_Cancel","PMPI_Cancel.cold","PMPI_Cart_coords","PMPI_Cart_coords.cold","PMPI_Cart_create","PMPI_Cart_create.cold","PMPI_Cart_get","PMPI_Cart_get.cold","PMPI_Cart_map","PMPI_Cart_map.cold","PMPI_Cart_rank","PMPI_Cart_rank.cold","PMPI_Cart_shift","PMPI_Cart_shift.cold","PMPI_Cart_sub","PMPI_Cart_sub.cold","PMPI_Cartdim_get","PMPI_Cartdim_get.cold","PMPI_Close_port","PMPI_Close_port.cold","PMPI_Comm_accept","PMPI_Comm_accept.cold","PMPI_Comm_c2f","PMPI_Comm_call_errhandler","PMPI_Comm_call_errhandler.cold","PMPI_Comm_compare","PMPI_Comm_compare.cold","PMPI_Comm_connect","PMPI_Comm_connect.cold","PMPI_Comm_create","PMPI_Comm_create.cold","PMPI_Comm_create_errhandler","PMPI_Comm_create_from_group","PMPI_Comm_create_group","PMPI_Comm_create_group.cold","PMPI_Comm_create_keyval","PMPI_Comm_delete_attr","PMPI_Comm_disconnect","PMPI_Comm_dup","PMPI_Comm_dup.cold","PMPI_Comm_dup_with_info","PMPI_Comm_dup_with_info.cold","PMPI_Comm_f2c","PMPI_Comm_free","PMPI_Comm_free.cold","PMPI_Comm_free_keyval","PMPI_Comm_get_attr","PMPI_Comm_get_errhandler","PMPI_Comm_get_info","PMPI_Comm_get_name","PMPI_Comm_get_parent","PMPI_Comm_group","PMPI_Comm_group.cold","PMPI_Comm_idup","PMPI_Comm_idup.cold","PMPI_Comm_idup_with_info","PMPI_Comm_idup_with_info.cold","PMPI_Comm_join","PMPI_Comm_join.cold","PMPI_Comm_rank","PMPI_Comm_remote_group","PMPI_Comm_remote_size","PMPI_Comm_set_attr","PMPI_Comm_set_errhandler","PMPI_Comm_set_info","PMPI_Comm_set_name","PMPI_Comm_set_name.cold","PMPI_Comm_size","PMPI_Comm_spawn","PMPI_Comm_spawn.cold","PMPI_Comm_spawn_multiple","PMPI_Comm_spawn_multiple.cold","PMPI_Comm_split","PMPI_Comm_split.cold","PMPI_Comm_split_type","PMPI_Comm_split_type.cold","PMPI_Comm_test_inter","PMPI_Compare_and_swap","PMPI_Compare_and_swap.cold","PMPI_Dims_create","PMPI_Dist_graph_create","PMPI_Dist_graph_create.cold","PMPI_Dist_graph_create_adjacent","PMPI_Dist_graph_create_adjacent.cold","PMPI_Dist_graph_neighbors","PMPI_Dist_graph_neighbors.cold","PMPI_Dist_graph_neighbors_count","PMPI_Dist_graph_neighbors_count.cold","PMPI_Errhandler_c2f","PMPI_Errhandler_create","PMPI_Errhandler_f2c","PMPI_Errhandler_free","PMPI_Errhandler_get","PMPI_Errhandler_set","PMPI_Error_class","PMPI_Error_class.cold","PMPI_Error_string","PMPI_Error_string.cold","PMPI_Exscan","PMPI_Exscan.cold","PMPI_Exscan_init","PMPI_Exscan_init.cold","PMPI_Fetch_and_op","PMPI_Fetch_and_op.cold","PMPI_File_c2f","PMPI_File_call_errhandler","PMPI_File_call_errhandler.cold","PMPI_File_close","PMPI_File_close.cold","PMPI_File_create_errhandler","PMPI_File_delete","PMPI_File_delete.cold","PMPI_File_f2c","PMPI_File_get_amode","PMPI_File_get_amode.cold","PMPI_File_get_atomicity","PMPI_File_get_atomicity.cold","PMPI_File_get_byte_offset","PMPI_File_get_byte_offset.cold","PMPI_File_get_errhandler","PMPI_File_get_group","PMPI_File_get_group.cold","PMPI_File_get_info","PMPI_File_get_info.cold","PMPI_File_get_position","PMPI_File_get_position.cold","PMPI_File_get_position_shared","PMPI_File_get_position_shared.cold","PMPI_File_get_size","PMPI_File_get_size.cold","PMPI_File_get_type_extent","PMPI_File_get_type_extent.cold","PMPI_File_get_view","PMPI_File_get_view.cold","PMPI_File_iread","PMPI_File_iread.cold","PMPI_File_iread_all","PMPI_File_iread_all.cold","PMPI_File_iread_at","PMPI_File_iread_at.cold","PMPI_File_iread_at_all","PMPI_File_iread_at_all.cold","PMPI_File_iread_shared","PMPI_File_iread_shared.cold","PMPI_File_iwrite","PMPI_File_iwrite.cold","PMPI_File_iwrite_all","PMPI_File_iwrite_all.cold","PMPI_File_iwrite_at","PMPI_File_iwrite_at.cold","PMPI_File_iwrite_at_all","PMPI_File_iwrite_at_all.cold","PMPI_File_iwrite_shared","PMPI_File_iwrite_shared.cold","PMPI_File_open","PMPI_File_open.cold","PMPI_File_preallocate","PMPI_File_preallocate.cold","PMPI_File_read","PMPI_File_read.cold","PMPI_File_read_all","PMPI_File_read_all.cold","PMPI_File_read_all_begin","PMPI_File_read_all_begin.cold","PMPI_File_read_all_end","PMPI_File_read_all_end.cold","PMPI_File_read_at","PMPI_File_read_at.cold","PMPI_File_read_at_all","PMPI_File_read_at_all.cold","PMPI_File_read_at_all_begin","PMPI_File_read_at_all_begin.cold","PMPI_File_read_at_all_end","PMPI_File_read_at_all_end.cold","PMPI_File_read_ordered","PMPI_File_read_ordered.cold","PMPI_File_read_ordered_begin","PMPI_File_read_ordered_begin.cold","PMPI_File_read_ordered_end","PMPI_File_read_ordered_end.cold","PMPI_File_read_shared","PMPI_File_read_shared.cold","PMPI_File_seek","PMPI_File_seek.cold","PMPI_File_seek_shared","PMPI_File_seek_shared.cold","PMPI_File_set_atomicity","PMPI_File_set_atomicity.cold","PMPI_File_set_errhandler","PMPI_File_set_info","PMPI_File_set_info.cold","PMPI_File_set_size","PMPI_File_set_size.cold","PMPI_File_set_view","PMPI_File_set_view.cold","PMPI_File_sync","PMPI_File_sync.cold","PMPI_File_write","PMPI_File_write.cold","PMPI_File_write_all","PMPI_File_write_all.cold","PMPI_File_write_all_begin","PMPI_File_write_all_begin.cold","PMPI_File_write_all_end","PMPI_File_write_all_end.cold","PMPI_File_write_at","PMPI_File_write_at.cold","PMPI_File_write_at_all","PMPI_File_write_at_all.cold","PMPI_File_write_at_all_begin","PMPI_File_write_at_all_begin.cold","PMPI_File_write_at_all_end","PMPI_File_write_at_all_end.cold","PMPI_File_write_ordered","PMPI_File_write_ordered.cold","PMPI_File_write_ordered_begin","PMPI_File_write_ordered_begin.cold","PMPI_File_write_ordered_end","PMPI_File_write_ordered_end.cold","PMPI_File_write_shared","PMPI_File_write_shared.cold","PMPI_Finalize","PMPI_Finalized","PMPI_Free_mem","PMPI_Gather","PMPI_Gather.cold","PMPI_Gather_init","PMPI_Gather_init.cold","PMPI_Gatherv","PMPI_Gatherv.cold","PMPI_Gatherv_init","PMPI_Gatherv_init.cold","PMPI_Get","PMPI_Get.cold","PMPI_Get_accumulate","PMPI_Get_accumulate.cold","PMPI_Get_address","PMPI_Get_count","PMPI_Get_elements","PMPI_Get_elements_x","PMPI_Get_library_version","PMPI_Get_processor_name","PMPI_Get_version","PMPI_Graph_create","PMPI_Graph_create.cold","PMPI_Graph_get","PMPI_Graph_get.cold","PMPI_Graph_map","PMPI_Graph_map.cold","PMPI_Graph_neighbors","PMPI_Graph_neighbors.cold","PMPI_Graph_neighbors_count","PMPI_Graph_neighbors_count.cold","PMPI_Graphdims_get","PMPI_Graphdims_get.cold","PMPI_Grequest_complete","PMPI_Grequest_start","PMPI_Grequest_start.cold","PMPI_Group_c2f","PMPI_Group_compare","PMPI_Group_difference","PMPI_Group_difference.cold","PMPI_Group_excl","PMPI_Group_excl.cold","PMPI_Group_f2c","PMPI_Group_free","PMPI_Group_free.cold","PMPI_Group_from_session_pset","PMPI_Group_from_session_pset.cold","PMPI_Group_incl","PMPI_Group_incl.cold","PMPI_Group_intersection","PMPI_Group_intersection.cold","PMPI_Group_range_excl","PMPI_Group_range_excl.cold","PMPI_Group_range_incl","PMPI_Group_range_incl.cold","PMPI_Group_rank","PMPI_Group_size","PMPI_Group_translate_ranks","PMPI_Group_translate_ranks.cold","PMPI_Group_union","PMPI_Group_union.cold","PMPI_Iallgather","PMPI_Iallgather.cold","PMPI_Iallgatherv","PMPI_Iallgatherv.cold","PMPI_Iallreduce","PMPI_Iallreduce.cold","PMPI_Ialltoall","PMPI_Ialltoall.cold","PMPI_Ialltoallv","PMPI_Ialltoallv.cold","PMPI_Ialltoallw","PMPI_Ialltoallw.cold","PMPI_Ibarrier","PMPI_Ibarrier.cold","PMPI_Ibcast","PMPI_Ibcast.cold","PMPI_Ibsend","PMPI_Ibsend.cold","PMPI_Iexscan","PMPI_Iexscan.cold","PMPI_Igather","PMPI_Igather.cold","PMPI_Igatherv","PMPI_Igatherv.cold","PMPI_Improbe","PMPI_Improbe.cold","PMPI_Imrecv","PMPI_Imrecv.cold","PMPI_Ineighbor_allgather","PMPI_Ineighbor_allgather.cold","PMPI_Ineighbor_allgatherv","PMPI_Ineighbor_allgatherv.cold","PMPI_Ineighbor_alltoall","PMPI_Ineighbor_alltoall.cold","PMPI_Ineighbor_alltoallv","PMPI_Ineighbor_alltoallv.cold","PMPI_Ineighbor_alltoallw","PMPI_Ineighbor_alltoallw.cold","PMPI_Info_c2f","PMPI_Info_create","PMPI_Info_create_env","PMPI_Info_create_env.cold","PMPI_Info_delete","PMPI_Info_delete.cold","PMPI_Info_dup","PMPI_Info_dup.cold","PMPI_Info_f2c","PMPI_Info_free","PMPI_Info_free.cold","PMPI_Info_get","PMPI_Info_get.cold","PMPI_Info_get_nkeys","PMPI_Info_get_nkeys.cold","PMPI_Info_get_nthkey","PMPI_Info_get_nthkey.cold","PMPI_Info_get_string","PMPI_Info_get_string.cold","PMPI_Info_get_valuelen","PMPI_Info_get_valuelen.cold","PMPI_Info_set","PMPI_Info_set.cold","PMPI_Init","PMPI_Init.cold","PMPI_Init_thread","PMPI_Init_thread.cold","PMPI_Initialized","PMPI_Intercomm_create","PMPI_Intercomm_create.cold","PMPI_Intercomm_create_from_groups","PMPI_Intercomm_merge","PMPI_Intercomm_merge.cold","PMPI_Iprobe","PMPI_Iprobe.cold","PMPI_Irecv","PMPI_Irecv.cold","PMPI_Ireduce","PMPI_Ireduce.cold","PMPI_Ireduce_scatter","PMPI_Ireduce_scatter.cold","PMPI_Ireduce_scatter_block","PMPI_Ireduce_scatter_block.cold","PMPI_Irsend","PMPI_Irsend.cold","PMPI_Is_thread_main","PMPI_Iscan","PMPI_Iscan.cold","PMPI_Iscatter","PMPI_Iscatter.cold","PMPI_Iscatterv","PMPI_Iscatterv.cold","PMPI_Isend","PMPI_Isend.cold","PMPI_Isendrecv","PMPI_Isendrecv.cold","PMPI_Isendrecv_replace","PMPI_Isendrecv_replace.cold","PMPI_Issend","PMPI_Issend.cold","PMPI_Keyval_create","PMPI_Keyval_free","PMPI_Lookup_name","PMPI_Lookup_name.cold","PMPI_Message_c2f","PMPI_Message_f2c","PMPI_Mprobe","PMPI_Mprobe.cold","PMPI_Mrecv","PMPI_Mrecv.cold","PMPI_Neighbor_allgather","PMPI_Neighbor_allgather.cold","PMPI_Neighbor_allgather_init","PMPI_Neighbor_allgather_init.cold","PMPI_Neighbor_allgatherv","PMPI_Neighbor_allgatherv.cold","PMPI_Neighbor_allgatherv_init","PMPI_Neighbor_allgatherv_init.cold","PMPI_Neighbor_alltoall","PMPI_Neighbor_alltoall.cold","PMPI_Neighbor_alltoall_init","PMPI_Neighbor_alltoall_init.cold","PMPI_Neighbor_alltoallv","PMPI_Neighbor_alltoallv.cold","PMPI_Neighbor_alltoallv_init","PMPI_Neighbor_alltoallv_init.cold","PMPI_Neighbor_alltoallw","PMPI_Neighbor_alltoallw.cold","PMPI_Neighbor_alltoallw_init","PMPI_Neighbor_alltoallw_init.cold","PMPI_Op_c2f","PMPI_Op_commutative","PMPI_Op_create","PMPI_Op_f2c","PMPI_Op_free","PMPI_Open_port","PMPI_Open_port.cold","PMPI_Pack","PMPI_Pack.cold","PMPI_Pack_external","PMPI_Pack_external.cold","PMPI_Pack_external_size","PMPI_Pack_external_size.cold","PMPI_Pack_size","PMPI_Parrived","PMPI_Parrived.cold","PMPI_Pcontrol","PMPI_Pready","PMPI_Pready.cold","PMPI_Pready_list","PMPI_Pready_list.cold","PMPI_Pready_range","PMPI_Pready_range.cold","PMPI_Precv_init","PMPI_Precv_init.cold","PMPI_Probe","PMPI_Probe.cold","PMPI_Psend_init","PMPI_Psend_init.cold","PMPI_Publish_name","PMPI_Publish_name.cold","PMPI_Put","PMPI_Put.cold","PMPI_Query_thread","PMPI_Raccumulate","PMPI_Raccumulate.cold","PMPI_Recv","PMPI_Recv.cold","PMPI_Recv_init","PMPI_Recv_init.cold","PMPI_Reduce","PMPI_Reduce.cold","PMPI_Reduce_init","PMPI_Reduce_init.cold","PMPI_Reduce_local","PMPI_Reduce_local.cold","PMPI_Reduce_scatter","PMPI_Reduce_scatter.cold","PMPI_Reduce_scatter_block","PMPI_Reduce_scatter_block.cold","PMPI_Reduce_scatter_block_init","PMPI_Reduce_scatter_block_init.cold","PMPI_Reduce_scatter_init","PMPI_Reduce_scatter_init.cold","PMPI_Register_datarep","PMPI_Register_datarep.cold","PMPI_Request_c2f","PMPI_Request_f2c","PMPI_Request_free","PMPI_Request_free.cold","PMPI_Request_get_status","PMPI_Rget","PMPI_Rget.cold","PMPI_Rget_accumulate","PMPI_Rget_accumulate.cold","PMPI_Rput","PMPI_Rput.cold","PMPI_Rsend","PMPI_Rsend.cold","PMPI_Rsend_init","PMPI_Rsend_init.cold","PMPI_Scan","PMPI_Scan.cold","PMPI_Scan_init","PMPI_Scan_init.cold","PMPI_Scatter","PMPI_Scatter.cold","PMPI_Scatter_init","PMPI_Scatter_init.cold","PMPI_Scatterv","PMPI_Scatterv.cold","PMPI_Scatterv_init","PMPI_Scatterv_init.cold","PMPI_Send","PMPI_Send.cold","PMPI_Send_init","PMPI_Send_init.cold","PMPI_Sendrecv","PMPI_Sendrecv.cold","PMPI_Sendrecv_replace","PMPI_Sendrecv_replace.cold","PMPI_Session_c2f","PMPI_Session_call_errhandler","PMPI_Session_call_errhandler.cold","PMPI_Session_create_errhandler","PMPI_Session_f2c","PMPI_Session_finalize","PMPI_Session_finalize.cold","PMPI_Session_get_errhandler","PMPI_Session_get_errhandler.cold","PMPI_Session_get_info","PMPI_Session_get_nth_pset","PMPI_Session_get_nth_pset.cold","PMPI_Session_get_num_psets","PMPI_Session_get_num_psets.cold","PMPI_Session_get_pset_info","PMPI_Session_get_pset_info.cold","PMPI_Session_init","PMPI_Session_init.cold","PMPI_Session_set_errhandler","PMPI_Session_set_info","PMPI_Ssend","PMPI_Ssend.cold","PMPI_Ssend_init","PMPI_Ssend_init.cold","PMPI_Start","PMPI_Start.cold","PMPI_Startall","PMPI_Status_c2f","PMPI_Status_c2f08","PMPI_Status_f082c","PMPI_Status_f082f","PMPI_Status_f2c","PMPI_Status_f2f08","PMPI_Status_set_cancelled","PMPI_Status_set_elements","PMPI_Status_set_elements_x","PMPI_T_category_changed","PMPI_T_category_get_categories","PMPI_T_category_get_cvars","PMPI_T_category_get_index","PMPI_T_category_get_info","PMPI_T_category_get_num","PMPI_T_category_get_pvars","PMPI_T_cvar_get_index","PMPI_T_cvar_get_info","PMPI_T_cvar_get_num","PMPI_T_cvar_handle_alloc","PMPI_T_cvar_handle_free","PMPI_T_cvar_read","PMPI_T_cvar_write","PMPI_T_enum_get_info","PMPI_T_enum_get_item","PMPI_T_finalize","PMPI_T_init_thread","PMPI_T_pvar_get_index","PMPI_T_pvar_get_info","PMPI_T_pvar_get_num","PMPI_T_pvar_handle_alloc","PMPI_T_pvar_handle_free","PMPI_T_pvar_read","PMPI_T_pvar_readreset","PMPI_T_pvar_reset","PMPI_T_pvar_session_create","PMPI_T_pvar_session_free","PMPI_T_pvar_start","PMPI_T_pvar_stop","PMPI_T_pvar_write","PMPI_Test","PMPI_Test_cancelled","PMPI_Testall","PMPI_Testany","PMPI_Testsome","PMPI_Topo_test","PMPI_Type_c2f","PMPI_Type_commit","PMPI_Type_commit.cold","PMPI_Type_contiguous","PMPI_Type_contiguous.cold","PMPI_Type_create_darray","PMPI_Type_create_darray.cold","PMPI_Type_create_f90_complex","PMPI_Type_create_f90_complex.cold","PMPI_Type_create_f90_integer","PMPI_Type_create_f90_integer.cold","PMPI_Type_create_f90_real","PMPI_Type_create_f90_real.cold","PMPI_Type_create_hindexed","PMPI_Type_create_hindexed.cold","PMPI_Type_create_hindexed_block","PMPI_Type_create_hindexed_block.cold","PMPI_Type_create_hvector","PMPI_Type_create_hvector.cold","PMPI_Type_create_indexed_block","PMPI_Type_create_indexed_block.cold","PMPI_Type_create_keyval","PMPI_Type_create_keyval.cold","PMPI_Type_create_resized","PMPI_Type_create_resized.cold","PMPI_Type_create_struct","PMPI_Type_create_struct.cold","PMPI_Type_create_subarray","PMPI_Type_create_subarray.cold","PMPI_Type_delete_attr","PMPI_Type_dup","PMPI_Type_dup.cold","PMPI_Type_extent","PMPI_Type_f2c","PMPI_Type_free","PMPI_Type_free_keyval","PMPI_Type_get_attr","PMPI_Type_get_contents","PMPI_Type_get_envelope","PMPI_Type_get_envelope.cold","PMPI_Type_get_extent","PMPI_Type_get_extent_x","PMPI_Type_get_name","PMPI_Type_get_true_extent","PMPI_Type_get_true_extent_x","PMPI_Type_hindexed","PMPI_Type_hvector","PMPI_Type_indexed","PMPI_Type_indexed.cold","PMPI_Type_lb","PMPI_Type_match_size","PMPI_Type_set_attr","PMPI_Type_set_name","PMPI_Type_size","PMPI_Type_size_x","PMPI_Type_struct","PMPI_Type_ub","PMPI_Type_vector","PMPI_Type_vector.cold","PMPI_Unpack","PMPI_Unpack.cold","PMPI_Unpack_external","PMPI_Unpack_external.cold","PMPI_Unpublish_name","PMPI_Unpublish_name.cold","PMPI_Wait","PMPI_Waitall","PMPI_Waitany","PMPI_Waitsome","PMPI_Win_allocate","PMPI_Win_allocate_shared","PMPI_Win_allocate_shared.cold","PMPI_Win_attach","PMPI_Win_attach.cold","PMPI_Win_c2f","PMPI_Win_call_errhandler","PMPI_Win_call_errhandler.cold","PMPI_Win_complete","PMPI_Win_complete.cold","PMPI_Win_create","PMPI_Win_create_dynamic","PMPI_Win_create_errhandler","PMPI_Win_create_keyval","PMPI_Win_delete_attr","PMPI_Win_detach","PMPI_Win_detach.cold","PMPI_Win_f2c","PMPI_Win_fence","PMPI_Win_fence.cold","PMPI_Win_flush","PMPI_Win_flush.cold","PMPI_Win_flush_all","PMPI_Win_flush_all.cold","PMPI_Win_flush_local","PMPI_Win_flush_local.cold","PMPI_Win_flush_local_all","PMPI_Win_flush_local_all.cold","PMPI_Win_free","PMPI_Win_free.cold","PMPI_Win_free_keyval","PMPI_Win_get_attr","PMPI_Win_get_errhandler","PMPI_Win_get_group","PMPI_Win_get_group.cold","PMPI_Win_get_info","PMPI_Win_get_info.cold","PMPI_Win_get_name","PMPI_Win_get_name.cold","PMPI_Win_lock","PMPI_Win_lock.cold","PMPI_Win_lock_all","PMPI_Win_lock_all.cold","PMPI_Win_post","PMPI_Win_post.cold","PMPI_Win_set_attr","PMPI_Win_set_errhandler","PMPI_Win_set_info","PMPI_Win_set_info.cold","PMPI_Win_set_name","PMPI_Win_set_name.cold","PMPI_Win_shared_query","PMPI_Win_shared_query.cold","PMPI_Win_start","PMPI_Win_start.cold","PMPI_Win_sync","PMPI_Win_sync.cold","PMPI_Win_test","PMPI_Win_test.cold","PMPI_Win_unlock","PMPI_Win_unlock.cold","PMPI_Win_unlock_all","PMPI_Win_unlock_all.cold","PMPI_Win_wait","PMPI_Win_wait.cold","PMPI_Wtick","PMPI_Wtime","PQ_adjustElementKey","PQ_adjustKey","PQ_decreaseElementKey","PQ_decreaseKey","PQ_delete","PQ_deleteElement","PQ_deleteMax","PQ_deleteMaxElement","PQ_exit","PQ_findMaxElement","PQ_findMaxKey","PQ_free","PQ_increaseElementKey","PQ_increaseKey","PQ_init","PQ_insert","PQ_insertElement","PQ_isEmpty","V_OUTPUT_ERR","__SENDER_BASED_METHOD_COPY","__do_global_dtors_aux","__muldc3","__mulsc3","__mulxc3","__ompi_datatype_allocate","__ompi_datatype_create_from_args","__ompi_datatype_create_from_packed_description.isra.0","__ompi_datatype_pack_description.isra.0","__ompi_datatype_release","_convert_process_name_to_string:0x84d30","_convert_process_name_to_string:0x88400","_convert_string_to_jobid","_convert_string_to_process_name:0x84b80","_convert_string_to_process_name:0x88410","_jobid_print_for_opal","_mca_topo_base_select.part.0","_process_name_compare:0x849c0","_process_name_compare:0x88420","_process_name_print_for_opal:0x84790","_process_name_print_for_opal:0x88450","_release_fn","_vpid_print_for_opal","adapt_close","adapt_constant_reduce_context_construct","adapt_constant_reduce_context_destruct","adapt_module_construct","adapt_module_destruct","adapt_module_enable","adapt_open","adapt_register","alloc_window","append_frag_to_list","attr_subsys_construct","attr_subsys_construct.cold","attr_subsys_destruct","attribute_key_value_construct","avail_coll_compare","avail_io_compare:0x179350","avail_io_compare:0x1799d0","avail_op_compare","avx_component_close","avx_component_init_query","avx_component_op_query","avx_component_open","avx_component_register","backend_abort_aggregate","backend_abort_no_aggregate","basic_register","block","bootstrap_comm","btl_bandwidth_compare","btl_exclusivity_compare","btl_latency_sort_fn","buffer_cleanup","build_level_topology","build_level_topology.cold","build_process_tab_id","check","check_file","check_one_component","close_component","coll_base_comm_construct","coll_base_comm_destruct","coll_base_module_construct","coll_base_module_destruct","comm_method_string","compFunc","compare_attr_sequence","compare_ints","compare_pmix_proc","compare_ranks:0x1da9b0","compare_ranks:0x1ea3b0","compare_uint16_ts","complete_objs_callback","complete_vecs_callback","component_finalize","component_init","component_open","component_query","component_register","component_select","compute_gain","config_window","construct_peers","cost_calc","create_comm","create_dumb_tree","create_threads","create_win","cset2mapstr.constprop.0","cset2str.constprop.0","datatype_duplicate.isra.0","dbl_cmp_inc","delete_group_list","delete_query","delete_select","depth_first","deregister_tm_clones","destruct_topology_cache","dfs","display_sol","distance","dpm_convert.constprop.0","dpm_convert.constprop.1","dynamic_gen2_register","dynamic_register","era_agreement_comm_specific_constructor","era_agreement_comm_specific_destructor","era_agreement_info_constructor","era_agreement_info_destructor","era_bounce_event_cb","era_cb_fn","era_cb_fn.cold","era_check_status","era_combine_agreement_values","era_combine_agreement_values.cold","era_create_agreement_info","era_create_agreement_info.cold","era_decide","era_error_event_cb","era_iagree_req_complete_cb","era_iagree_req_complete_cb.cold","era_iagree_req_free","era_mark_process_failed","era_merge_new_dead_list","era_next_child","era_on_comm_rank_failure","era_tree_fn_binary","era_tree_fn_star","era_tree_fn_string","era_tree_remove_node","era_update_return_value","era_value_constructor","era_value_destructor","evhandler_dereg_callbk","evhandler_reg_callbk:0x7c580","evhandler_reg_callbk:0x884c0","f1","f2","fast_group","fd_event_cb","fd_heartbeat_rdma_cb","fd_heartbeat_recv_cb","fd_heartbeat_request.isra.0","fd_heartbeat_request_cb","fd_heartbeat_send.isra.0","fd_progress","fence_cbfunc","fence_release:0x820f0","fence_release:0x884b0","file_constructor","file_destructor","file_query","file_unquery","fill_null_pointers","fragment_sent_cb","frame_dummy","free_constraint_tree","free_list_child","free_objs_callback","free_tab_child","free_vecs_callback","ftagree_close","ftagree_register","generate_random_sol.isra.0","generate_work_units.constprop.0","generate_work_units.part.0","get_algorithm","get_dynamic_rule","get_module","get_print_name_buffer","get_rsrc_exists","group_list_asc","group_list_dsc","group_list_id","han_close","han_module_enable","han_open","han_register","hash_asc","hb_itor_search","ibcast_request_fini.isra.0","icompar","individual_register:0x16eff0","individual_register:0x21a490","info_constructor","info_destructor","init_by_array","init_query:0x17b980","init_query:0x21f830","init_query:0x233dc0","inter_register","io_base_request_constructor","ireduce_request_fini.isra.0","kpartition_build_level_topology.isra.0","libnbc_close","libnbc_comm_query","libnbc_init_query","libnbc_module_construct","libnbc_module_destruct","libnbc_module_enable","libnbc_open","libnbc_register","list_all_possible_groups","list_all_possible_groups.cold","lockedfile_register","match_one","mca_bml_base_btl_array_construct","mca_bml_base_btl_array_destruct","mca_bml_base_btl_array_reserve","mca_bml_base_close","mca_bml_base_endpoint_construct","mca_bml_base_endpoint_destruct","mca_bml_base_init","mca_bml_base_inited","mca_bml_base_open","mca_bml_base_register","mca_bml_r2_add_btl","mca_bml_r2_add_btls","mca_bml_r2_add_proc","mca_bml_r2_add_procs","mca_bml_r2_allocate_endpoint","mca_bml_r2_component_close","mca_bml_r2_component_fini","mca_bml_r2_component_init","mca_bml_r2_component_open","mca_bml_r2_component_register","mca_bml_r2_compute_endpoint_metrics","mca_bml_r2_compute_endpoint_metrics.cold","mca_bml_r2_del_btl","mca_bml_r2_del_proc_btl","mca_bml_r2_del_procs","mca_bml_r2_del_procs.cold","mca_bml_r2_endpoint_add_btl","mca_bml_r2_finalize","mca_bml_r2_register","mca_bml_r2_register_error","mca_coll_base_alltoall_intra_basic_inplace","mca_coll_base_alltoallv_intra_basic_inplace","mca_coll_base_colltype_to_str","mca_coll_base_comm_select","mca_coll_base_comm_unselect","mca_coll_base_find_available","mca_coll_base_name_to_colltype","mca_coll_base_reduce_local","mca_coll_basic_allgather_inter","mca_coll_basic_allgatherv_inter","mca_coll_basic_allreduce_inter","mca_coll_basic_allreduce_intra","mca_coll_basic_alltoall_inter","mca_coll_basic_alltoallv_inter","mca_coll_basic_alltoallw_inter","mca_coll_basic_alltoallw_intra","mca_coll_basic_alltoallw_intra_inplace.constprop.0","mca_coll_basic_barrier_inter_lin","mca_coll_basic_barrier_intra_log","mca_coll_basic_bcast_lin_inter","mca_coll_basic_bcast_log_inter","mca_coll_basic_bcast_log_intra","mca_coll_basic_comm_query","mca_coll_basic_exscan_inter","mca_coll_basic_exscan_intra","mca_coll_basic_gather_inter","mca_coll_basic_gatherv_inter","mca_coll_basic_gatherv_intra","mca_coll_basic_init_query","mca_coll_basic_module_enable","mca_coll_basic_neighbor_allgather","mca_coll_basic_neighbor_allgatherv","mca_coll_basic_neighbor_alltoall","mca_coll_basic_neighbor_alltoallv","mca_coll_basic_neighbor_alltoallw","mca_coll_basic_reduce_lin_inter","mca_coll_basic_reduce_log_inter","mca_coll_basic_reduce_log_intra","mca_coll_basic_reduce_scatter_block_inter","mca_coll_basic_reduce_scatter_block_intra","mca_coll_basic_reduce_scatter_inter","mca_coll_basic_reduce_scatter_intra","mca_coll_basic_scan_intra","mca_coll_basic_scatter_inter","mca_coll_basic_scatterv_inter","mca_coll_basic_scatterv_intra","mca_coll_ftagree_comm_query","mca_coll_ftagree_construct","mca_coll_ftagree_era_comm_finalize","mca_coll_ftagree_era_comm_init","mca_coll_ftagree_era_finalize","mca_coll_ftagree_era_init","mca_coll_ftagree_era_inter","mca_coll_ftagree_era_intra","mca_coll_ftagree_eta_intra","mca_coll_ftagree_iera_intra","mca_coll_ftagree_iera_intra.cold","mca_coll_ftagree_init_query","mca_coll_ftagree_module_construct","mca_coll_ftagree_module_destruct","mca_coll_ftagree_module_enable","mca_coll_han_algorithm_id_is_valid","mca_coll_han_algorithm_id_to_fn","mca_coll_han_algorithm_id_to_name","mca_coll_han_algorithm_name_to_id","mca_coll_han_allgather_intra","mca_coll_han_allgather_intra_dynamic","mca_coll_han_allgather_intra_simple","mca_coll_han_allgather_lb_task","mca_coll_han_allgather_lg_task","mca_coll_han_allgather_uag_task","mca_coll_han_allgatherv_intra_dynamic","mca_coll_han_allreduce_intra","mca_coll_han_allreduce_intra_dynamic","mca_coll_han_allreduce_intra_simple","mca_coll_han_allreduce_reproducible","mca_coll_han_allreduce_reproducible_decision","mca_coll_han_allreduce_t0_task","mca_coll_han_allreduce_t1_task","mca_coll_han_allreduce_t2_task","mca_coll_han_allreduce_t3_task","mca_coll_han_barrier_intra_dynamic","mca_coll_han_barrier_intra_simple","mca_coll_han_bcast_intra","mca_coll_han_bcast_intra_dynamic","mca_coll_han_bcast_intra_simple","mca_coll_han_bcast_t0_task","mca_coll_han_bcast_t1_task","mca_coll_han_comm_create","mca_coll_han_comm_create_new","mca_coll_han_comm_query","mca_coll_han_component_name_to_id","mca_coll_han_dump_dynamic_rules","mca_coll_han_free_algorithms","mca_coll_han_free_dynamic_rules","mca_coll_han_gather_intra","mca_coll_han_gather_intra_dynamic","mca_coll_han_gather_intra_simple","mca_coll_han_gather_lg_task","mca_coll_han_gather_ug_task","mca_coll_han_get_all_coll_modules","mca_coll_han_init_algorithms","mca_coll_han_init_dynamic_rules","mca_coll_han_init_query","mca_coll_han_is_coll_dynamic_implemented","mca_coll_han_module_construct","mca_coll_han_module_destruct","mca_coll_han_module_disable","mca_coll_han_reduce_intra","mca_coll_han_reduce_intra_dynamic","mca_coll_han_reduce_intra_simple","mca_coll_han_reduce_reproducible","mca_coll_han_reduce_reproducible_decision","mca_coll_han_reduce_t0_task","mca_coll_han_reduce_t1_task","mca_coll_han_scatter_intra","mca_coll_han_scatter_intra_dynamic","mca_coll_han_scatter_intra_simple","mca_coll_han_scatter_ls_task","mca_coll_han_scatter_us_task","mca_coll_han_topo_init","mca_coll_han_topo_lvl_name_to_id","mca_coll_han_topo_lvl_to_str","mca_coll_inter_allgather_inter","mca_coll_inter_allgatherv_inter","mca_coll_inter_allreduce_inter","mca_coll_inter_bcast_inter","mca_coll_inter_comm_query","mca_coll_inter_gather_inter","mca_coll_inter_gatherv_inter","mca_coll_inter_init_query","mca_coll_inter_module_construct","mca_coll_inter_module_destruct","mca_coll_inter_module_enable","mca_coll_inter_reduce_inter","mca_coll_inter_scatter_inter","mca_coll_inter_scatterv_inter","mca_coll_monitoring_allgather","mca_coll_monitoring_allgatherv","mca_coll_monitoring_allreduce","mca_coll_monitoring_alltoall","mca_coll_monitoring_alltoallv","mca_coll_monitoring_alltoallw","mca_coll_monitoring_barrier","mca_coll_monitoring_bcast","mca_coll_monitoring_component_close","mca_coll_monitoring_component_init","mca_coll_monitoring_component_open","mca_coll_monitoring_component_query","mca_coll_monitoring_component_register","mca_coll_monitoring_exscan","mca_coll_monitoring_gather","mca_coll_monitoring_gatherv","mca_coll_monitoring_iallgather","mca_coll_monitoring_iallgatherv","mca_coll_monitoring_iallreduce","mca_coll_monitoring_ialltoall","mca_coll_monitoring_ialltoallv","mca_coll_monitoring_ialltoallw","mca_coll_monitoring_ibarrier","mca_coll_monitoring_ibcast","mca_coll_monitoring_iexscan","mca_coll_monitoring_igather","mca_coll_monitoring_igatherv","mca_coll_monitoring_ineighbor_allgather","mca_coll_monitoring_ineighbor_allgatherv","mca_coll_monitoring_ineighbor_alltoall","mca_coll_monitoring_ineighbor_alltoallv","mca_coll_monitoring_ineighbor_alltoallw","mca_coll_monitoring_ireduce","mca_coll_monitoring_ireduce_scatter","mca_coll_monitoring_ireduce_scatter_block","mca_coll_monitoring_iscan","mca_coll_monitoring_iscatter","mca_coll_monitoring_iscatterv","mca_coll_monitoring_module_disable","mca_coll_monitoring_module_enable","mca_coll_monitoring_neighbor_allgather","mca_coll_monitoring_neighbor_allgatherv","mca_coll_monitoring_neighbor_alltoall","mca_coll_monitoring_neighbor_alltoallv","mca_coll_monitoring_neighbor_alltoallw","mca_coll_monitoring_reduce","mca_coll_monitoring_reduce_scatter","mca_coll_monitoring_reduce_scatter_block","mca_coll_monitoring_scan","mca_coll_monitoring_scatter","mca_coll_monitoring_scatterv","mca_coll_self_allgather_intra","mca_coll_self_allgatherv_intra","mca_coll_self_allreduce_intra","mca_coll_self_alltoall_intra","mca_coll_self_alltoallv_intra","mca_coll_self_alltoallw_intra","mca_coll_self_barrier_intra","mca_coll_self_bcast_intra","mca_coll_self_comm_query","mca_coll_self_exscan_intra","mca_coll_self_gather_intra","mca_coll_self_gatherv_intra","mca_coll_self_init_query","mca_coll_self_module_enable","mca_coll_self_reduce_intra","mca_coll_self_reduce_scatter_intra","mca_coll_self_scan_intra","mca_coll_self_scatter_intra","mca_coll_self_scatterv_intra","mca_coll_sm_allreduce_intra","mca_coll_sm_barrier_intra","mca_coll_sm_bcast_intra","mca_coll_sm_comm_query","mca_coll_sm_init_query","mca_coll_sm_module_construct","mca_coll_sm_module_destruct","mca_coll_sm_module_disable","mca_coll_sm_reduce_intra","mca_coll_sync_bcast","mca_coll_sync_comm_query","mca_coll_sync_exscan","mca_coll_sync_gather","mca_coll_sync_gatherv","mca_coll_sync_init_query","mca_coll_sync_module_construct","mca_coll_sync_module_destruct","mca_coll_sync_module_enable","mca_coll_sync_reduce","mca_coll_sync_reduce_scatter","mca_coll_sync_scan","mca_coll_sync_scatter","mca_coll_sync_scatterv","mca_coll_task_constructor","mca_coll_task_destructor","mca_coll_tuned_module_construct","mca_comm_cid_context_alloc","mca_comm_cid_context_construct","mca_comm_cid_context_destruct","mca_common_monitoring_add_procs","mca_common_monitoring_coll_a2a","mca_common_monitoring_coll_a2o","mca_common_monitoring_coll_cache_name","mca_common_monitoring_coll_cond_release","mca_common_monitoring_coll_finalize","mca_common_monitoring_coll_flush","mca_common_monitoring_coll_flush_all","mca_common_monitoring_coll_get_a2a_count","mca_common_monitoring_coll_get_a2a_size","mca_common_monitoring_coll_get_a2o_count","mca_common_monitoring_coll_get_a2o_size","mca_common_monitoring_coll_get_o2a_count","mca_common_monitoring_coll_get_o2a_size","mca_common_monitoring_coll_messages_notify","mca_common_monitoring_coll_new","mca_common_monitoring_coll_o2a","mca_common_monitoring_coll_release","mca_common_monitoring_coll_reset","mca_common_monitoring_comm_size_notify","mca_common_monitoring_finalize","mca_common_monitoring_flush.part.0","mca_common_monitoring_get_coll_count","mca_common_monitoring_get_coll_size","mca_common_monitoring_get_flush","mca_common_monitoring_get_osc_recv_count","mca_common_monitoring_get_osc_recv_size","mca_common_monitoring_get_osc_sent_count","mca_common_monitoring_get_osc_sent_size","mca_common_monitoring_get_pml_count","mca_common_monitoring_get_pml_size","mca_common_monitoring_init","mca_common_monitoring_notify_flush","mca_common_monitoring_output","mca_common_monitoring_record_coll","mca_common_monitoring_record_osc","mca_common_monitoring_record_pml","mca_common_monitoring_register","mca_common_monitoring_set_flush","mca_common_ompio_alloc_buf","mca_common_ompio_base_file_read_all","mca_common_ompio_buffer_alloc_fini","mca_common_ompio_buffer_alloc_init","mca_common_ompio_buffer_alloc_seg","mca_common_ompio_buffer_free_seg","mca_common_ompio_build_io_array","mca_common_ompio_cart_based_grouping","mca_common_ompio_check_gpu_buf","mca_common_ompio_create_groups","mca_common_ompio_create_incomplete_file_handle","mca_common_ompio_decode_datatype","mca_common_ompio_empty_print_queue","mca_common_ompio_file_close","mca_common_ompio_file_delete","mca_common_ompio_file_get_position","mca_common_ompio_file_get_size","mca_common_ompio_file_iread","mca_common_ompio_file_iread_all","mca_common_ompio_file_iread_at","mca_common_ompio_file_iread_at_all","mca_common_ompio_file_iwrite","mca_common_ompio_file_iwrite_all","mca_common_ompio_file_iwrite_at","mca_common_ompio_file_iwrite_at_all","mca_common_ompio_file_open","mca_common_ompio_file_read","mca_common_ompio_file_read_all","mca_common_ompio_file_read_all.part.0","mca_common_ompio_file_read_at","mca_common_ompio_file_read_at_all","mca_common_ompio_file_read_pipelined","mca_common_ompio_file_write","mca_common_ompio_file_write_all","mca_common_ompio_file_write_all.part.0","mca_common_ompio_file_write_at","mca_common_ompio_file_write_at_all","mca_common_ompio_file_write_pipelined","mca_common_ompio_finalize_initial_grouping","mca_common_ompio_finalize_split","mca_common_ompio_forced_grouping","mca_common_ompio_full_print_queue","mca_common_ompio_fview_based_grouping","mca_common_ompio_initialize_print_queue","mca_common_ompio_merge_groups","mca_common_ompio_merge_initial_groups","mca_common_ompio_prepare_to_group","mca_common_ompio_print_time_info","mca_common_ompio_progress","mca_common_ompio_register_print_entry","mca_common_ompio_register_progress","mca_common_ompio_release_buf","mca_common_ompio_request_alloc","mca_common_ompio_request_cancel","mca_common_ompio_request_construct","mca_common_ompio_request_destruct","mca_common_ompio_request_fini","mca_common_ompio_request_free","mca_common_ompio_request_init","mca_common_ompio_retain_initial_groups","mca_common_ompio_set_aggregator_props","mca_common_ompio_set_callbacks","mca_common_ompio_set_explicit_offset","mca_common_ompio_set_file_defaults","mca_common_ompio_set_view","mca_common_ompio_simple_grouping","mca_common_ompio_split_a_group","mca_common_ompio_split_initial_groups","mca_common_ompio_unregister_print_entry","mca_fbtl_base_check_atomicity","mca_fbtl_base_file_select","mca_fbtl_base_file_unselect","mca_fbtl_base_find_available","mca_fbtl_posix_check_atomicity","mca_fbtl_posix_component_file_query","mca_fbtl_posix_component_file_unquery","mca_fbtl_posix_component_init_query","mca_fbtl_posix_ipreadv","mca_fbtl_posix_ipwritev","mca_fbtl_posix_lock","mca_fbtl_posix_module_finalize","mca_fbtl_posix_module_init","mca_fbtl_posix_preadv","mca_fbtl_posix_progress","mca_fbtl_posix_pwritev","mca_fbtl_posix_request_free","mca_fbtl_posix_unlock","mca_fcoll_base_component_lookup","mca_fcoll_base_file_select","mca_fcoll_base_file_unselect","mca_fcoll_base_find_available","mca_fcoll_base_query_table","mca_fcoll_dynamic_component_file_query","mca_fcoll_dynamic_component_file_unquery","mca_fcoll_dynamic_component_init_query","mca_fcoll_dynamic_file_read_all","mca_fcoll_dynamic_file_write_all","mca_fcoll_dynamic_gen2_break_file_view","mca_fcoll_dynamic_gen2_component_file_query","mca_fcoll_dynamic_gen2_component_file_unquery","mca_fcoll_dynamic_gen2_component_init_query","mca_fcoll_dynamic_gen2_file_read_all","mca_fcoll_dynamic_gen2_file_write_all","mca_fcoll_dynamic_gen2_get_configuration","mca_fcoll_dynamic_gen2_module_finalize","mca_fcoll_dynamic_gen2_module_init","mca_fcoll_dynamic_gen2_split_iov_array","mca_fcoll_dynamic_module_finalize","mca_fcoll_dynamic_module_init","mca_fcoll_individual_component_file_query","mca_fcoll_individual_component_file_unquery","mca_fcoll_individual_component_init_query","mca_fcoll_individual_file_read_all","mca_fcoll_individual_file_write_all","mca_fcoll_individual_module_finalize","mca_fcoll_individual_module_init","mca_fcoll_vulcan_break_file_view","mca_fcoll_vulcan_component_file_query","mca_fcoll_vulcan_component_file_unquery","mca_fcoll_vulcan_component_init_query","mca_fcoll_vulcan_file_read_all","mca_fcoll_vulcan_file_write_all","mca_fcoll_vulcan_get_configuration","mca_fcoll_vulcan_module_finalize","mca_fcoll_vulcan_module_init","mca_fcoll_vulcan_split_iov_array","mca_fs_base_file_close","mca_fs_base_file_delete","mca_fs_base_file_get_size","mca_fs_base_file_select","mca_fs_base_file_set_size","mca_fs_base_file_sync","mca_fs_base_file_unselect","mca_fs_base_find_available","mca_fs_base_get_file_amode","mca_fs_base_get_file_perm","mca_fs_base_get_fstype","mca_fs_base_get_mpi_err","mca_fs_base_get_parent_dir","mca_fs_base_get_real_filename.constprop.0","mca_fs_ufs_component_file_query","mca_fs_ufs_component_file_unquery","mca_fs_ufs_component_init_query","mca_fs_ufs_file_open","mca_fs_ufs_module_finalize","mca_fs_ufs_module_init","mca_io_base_delete","mca_io_base_delete.cold","mca_io_base_file_select","mca_io_base_file_select.cold","mca_io_base_file_select.localalias","mca_io_base_find_available","mca_io_base_open","mca_io_base_register_datarep","mca_io_ompio_file_close","mca_io_ompio_file_get_amode","mca_io_ompio_file_get_atomicity","mca_io_ompio_file_get_byte_offset","mca_io_ompio_file_get_position","mca_io_ompio_file_get_position_shared","mca_io_ompio_file_get_size","mca_io_ompio_file_get_type_extent","mca_io_ompio_file_get_view","mca_io_ompio_file_iread","mca_io_ompio_file_iread_all","mca_io_ompio_file_iread_at","mca_io_ompio_file_iread_at_all","mca_io_ompio_file_iread_shared","mca_io_ompio_file_iwrite","mca_io_ompio_file_iwrite_all","mca_io_ompio_file_iwrite_at","mca_io_ompio_file_iwrite_at_all","mca_io_ompio_file_iwrite_shared","mca_io_ompio_file_open","mca_io_ompio_file_preallocate","mca_io_ompio_file_read","mca_io_ompio_file_read_all","mca_io_ompio_file_read_all_begin","mca_io_ompio_file_read_all_end","mca_io_ompio_file_read_at","mca_io_ompio_file_read_at_all","mca_io_ompio_file_read_at_all_begin","mca_io_ompio_file_read_at_all_end","mca_io_ompio_file_read_ordered","mca_io_ompio_file_read_ordered_begin","mca_io_ompio_file_read_ordered_end","mca_io_ompio_file_read_shared","mca_io_ompio_file_seek","mca_io_ompio_file_seek_shared","mca_io_ompio_file_set_atomicity","mca_io_ompio_file_set_size","mca_io_ompio_file_set_view","mca_io_ompio_file_sync","mca_io_ompio_file_write","mca_io_ompio_file_write_all","mca_io_ompio_file_write_all_begin","mca_io_ompio_file_write_all_end","mca_io_ompio_file_write_at","mca_io_ompio_file_write_at_all","mca_io_ompio_file_write_at_all_begin","mca_io_ompio_file_write_at_all_end","mca_io_ompio_file_write_ordered","mca_io_ompio_file_write_ordered_begin","mca_io_ompio_file_write_ordered_end","mca_io_ompio_file_write_shared","mca_io_ompio_get_mca_parameter_value","mca_monitoring_coll_construct","mca_monitoring_coll_destruct","mca_osc_monitoring_component_finish","mca_osc_monitoring_component_init","mca_osc_monitoring_component_query","mca_osc_monitoring_component_register","mca_osc_monitoring_component_select","mca_part_base_close","mca_part_base_finalize","mca_part_base_open","mca_part_base_precv_request_construct","mca_part_base_prequest_construct","mca_part_base_progress","mca_part_base_psend_request_construct","mca_part_base_register","mca_part_base_select","mca_part_base_select.cold","mca_part_persist_component_close","mca_part_persist_component_fini","mca_part_persist_component_init","mca_part_persist_component_open","mca_part_persist_component_register","mca_part_persist_free:0x1ee0d0","mca_part_persist_free:0x1ee3e0","mca_part_persist_parrived","mca_part_persist_pready","mca_part_persist_precv_init","mca_part_persist_precv_request_construct","mca_part_persist_progress","mca_part_persist_psend_init","mca_part_persist_psend_request_construct","mca_part_persist_request_construct","mca_part_persist_request_destruct","mca_part_persist_start:0x1ed610","mca_part_persist_start:0x1edf30","mca_part_persist_start:0x1ee240","mca_pml_base_bsend_attach","mca_pml_base_bsend_detach","mca_pml_base_bsend_fini","mca_pml_base_bsend_init","mca_pml_base_bsend_request_alloc","mca_pml_base_bsend_request_alloc_buf","mca_pml_base_bsend_request_fini","mca_pml_base_bsend_request_free","mca_pml_base_bsend_request_start","mca_pml_base_close","mca_pml_base_finalize","mca_pml_base_open","mca_pml_base_pml_check_selected","mca_pml_base_pml_check_selected_impl","mca_pml_base_pml_selected","mca_pml_base_progress","mca_pml_base_recv_request_construct","mca_pml_base_recv_request_destruct","mca_pml_base_register","mca_pml_base_request_construct","mca_pml_base_revoke_comm","mca_pml_base_select","mca_pml_base_select.cold","mca_pml_base_send_request_construct","mca_pml_base_send_request_destruct","mca_pml_bsend_alloc_segment","mca_pml_cm_add_comm","mca_pml_cm_add_procs","mca_pml_cm_cancel","mca_pml_cm_component_close","mca_pml_cm_component_fini","mca_pml_cm_component_init","mca_pml_cm_component_open","mca_pml_cm_component_register","mca_pml_cm_del_comm","mca_pml_cm_del_procs","mca_pml_cm_dump","mca_pml_cm_enable","mca_pml_cm_improbe","mca_pml_cm_imrecv","mca_pml_cm_iprobe","mca_pml_cm_irecv","mca_pml_cm_irecv_init","mca_pml_cm_isend","mca_pml_cm_isend_init","mca_pml_cm_mprobe","mca_pml_cm_mrecv","mca_pml_cm_probe","mca_pml_cm_recv","mca_pml_cm_recv_fast_completion","mca_pml_cm_recv_request_completion","mca_pml_cm_recv_request_construct","mca_pml_cm_recv_request_free","mca_pml_cm_request_construct","mca_pml_cm_request_destruct","mca_pml_cm_send","mca_pml_cm_send_request_completion","mca_pml_cm_send_request_construct","mca_pml_cm_send_request_free","mca_pml_cm_start","mca_pml_monitoring_add_comm","mca_pml_monitoring_add_procs","mca_pml_monitoring_component_finish","mca_pml_monitoring_component_init","mca_pml_monitoring_component_open","mca_pml_monitoring_del_comm","mca_pml_monitoring_del_procs","mca_pml_monitoring_dump","mca_pml_monitoring_enable","mca_pml_monitoring_improbe","mca_pml_monitoring_imrecv","mca_pml_monitoring_iprobe","mca_pml_monitoring_irecv","mca_pml_monitoring_irecv_init","mca_pml_monitoring_isend","mca_pml_monitoring_isend_init","mca_pml_monitoring_mprobe","mca_pml_monitoring_mrecv","mca_pml_monitoring_probe","mca_pml_monitoring_recv","mca_pml_monitoring_revoke_comm","mca_pml_monitoring_send","mca_pml_monitoring_start","mca_pml_ob1_accelerator_add_ipc_support","mca_pml_ob1_accelerator_fini","mca_pml_ob1_accelerator_init","mca_pml_ob1_accelerator_need_buffers","mca_pml_ob1_add_comm","mca_pml_ob1_add_procs","mca_pml_ob1_com_btl_comp","mca_pml_ob1_comm_construct","mca_pml_ob1_comm_destruct","mca_pml_ob1_comm_init_size","mca_pml_ob1_comm_proc_construct","mca_pml_ob1_comm_proc_destruct","mca_pml_ob1_comm_size_notify","mca_pml_ob1_component_close","mca_pml_ob1_component_fini","mca_pml_ob1_component_init","mca_pml_ob1_component_open","mca_pml_ob1_component_register","mca_pml_ob1_control_completion","mca_pml_ob1_copy_frag_completion","mca_pml_ob1_del_comm","mca_pml_ob1_del_procs","mca_pml_ob1_dump","mca_pml_ob1_dump_cant_match","mca_pml_ob1_dump_frag_list","mca_pml_ob1_dump_hdr","mca_pml_ob1_enable","mca_pml_ob1_enable_progress","mca_pml_ob1_error_handler","mca_pml_ob1_frag_completion","mca_pml_ob1_get_dtoh_stream","mca_pml_ob1_get_htod_stream","mca_pml_ob1_get_posted_recvq_size","mca_pml_ob1_get_unex_msgq_size","mca_pml_ob1_handle_cid","mca_pml_ob1_improbe","mca_pml_ob1_imrecv","mca_pml_ob1_imrecv.cold","mca_pml_ob1_iprobe","mca_pml_ob1_irecv","mca_pml_ob1_irecv_init","mca_pml_ob1_isend","mca_pml_ob1_isend_init","mca_pml_ob1_match_completion_free","mca_pml_ob1_merge_cant_match","mca_pml_ob1_mprobe","mca_pml_ob1_mrecv","mca_pml_ob1_mrecv.cold","mca_pml_ob1_peer_create","mca_pml_ob1_probe","mca_pml_ob1_process_pending_packets","mca_pml_ob1_process_pending_rdma","mca_pml_ob1_progress","mca_pml_ob1_progress_one_htod_event","mca_pml_ob1_put_completion:0x2057a0","mca_pml_ob1_put_completion:0x20bf00","mca_pml_ob1_rdma_btls","mca_pml_ob1_rdma_btls.cold","mca_pml_ob1_rdma_cuda_btls","mca_pml_ob1_rdma_cuda_btls.cold","mca_pml_ob1_rdma_frag_constructor","mca_pml_ob1_rdma_pipeline_btls","mca_pml_ob1_rdma_pipeline_btls.cold","mca_pml_ob1_rdma_pipeline_btls_count","mca_pml_ob1_rdma_pipeline_btls_count.cold","mca_pml_ob1_record_htod_event","mca_pml_ob1_recv","mca_pml_ob1_recv_ctl_completion","mca_pml_ob1_recv_frag_callback_ack","mca_pml_ob1_recv_frag_callback_cid","mca_pml_ob1_recv_frag_callback_fin","mca_pml_ob1_recv_frag_callback_frag","mca_pml_ob1_recv_frag_callback_match","mca_pml_ob1_recv_frag_callback_put","mca_pml_ob1_recv_frag_callback_rget","mca_pml_ob1_recv_frag_callback_rndv","mca_pml_ob1_recv_frag_match.isra.0","mca_pml_ob1_recv_frag_match_proc.isra.0","mca_pml_ob1_recv_req_start","mca_pml_ob1_recv_request_ack.isra.0","mca_pml_ob1_recv_request_ack_send_btl","mca_pml_ob1_recv_request_cancel","mca_pml_ob1_recv_request_construct","mca_pml_ob1_recv_request_destruct","mca_pml_ob1_recv_request_frag_copy_finished","mca_pml_ob1_recv_request_frag_copy_start","mca_pml_ob1_recv_request_free","mca_pml_ob1_recv_request_get_frag","mca_pml_ob1_recv_request_get_frag_failed","mca_pml_ob1_recv_request_matched_probe","mca_pml_ob1_recv_request_process_pending","mca_pml_ob1_recv_request_progress_frag","mca_pml_ob1_recv_request_progress_match","mca_pml_ob1_recv_request_progress_rget","mca_pml_ob1_recv_request_progress_rget.cold","mca_pml_ob1_recv_request_progress_rndv","mca_pml_ob1_recv_request_put_frag","mca_pml_ob1_recv_request_schedule_once","mca_pml_ob1_revoke_comm","mca_pml_ob1_revoke_comm.localalias","mca_pml_ob1_rget_completion:0x204ec0","mca_pml_ob1_rget_completion:0x209c10","mca_pml_ob1_rndv_completion","mca_pml_ob1_seg_alloc","mca_pml_ob1_seg_free","mca_pml_ob1_send","mca_pml_ob1_send_cid","mca_pml_ob1_send_control_any","mca_pml_ob1_send_control_btl","mca_pml_ob1_send_ctl_completion","mca_pml_ob1_send_fin","mca_pml_ob1_send_inline.constprop.0","mca_pml_ob1_send_request_cancel","mca_pml_ob1_send_request_construct","mca_pml_ob1_send_request_copy_in_out","mca_pml_ob1_send_request_destruct","mca_pml_ob1_send_request_free","mca_pml_ob1_send_request_process_pending","mca_pml_ob1_send_request_put","mca_pml_ob1_send_request_put_frag","mca_pml_ob1_send_request_put_frag_failed","mca_pml_ob1_send_request_schedule_once","mca_pml_ob1_send_request_start_accelerator","mca_pml_ob1_send_request_start_buffered","mca_pml_ob1_send_request_start_copy","mca_pml_ob1_send_request_start_prepare","mca_pml_ob1_send_request_start_rdma","mca_pml_ob1_send_request_start_rndv","mca_pml_ob1_send_request_start_seq.constprop.0","mca_pml_ob1_set_allow_overtake","mca_pml_ob1_start","mca_pml_v_component_close","mca_pml_v_component_finalize","mca_pml_v_component_init","mca_pml_v_component_open","mca_pml_v_component_parasite_close","mca_pml_v_component_parasite_finalize","mca_pml_v_component_register","mca_pml_v_enable","mca_sharedfp_base_close","mca_sharedfp_base_file_select","mca_sharedfp_base_file_unselect","mca_sharedfp_base_find_available","mca_sharedfp_base_open","mca_sharedfp_individual_assign_globaloffset","mca_sharedfp_individual_collaborate_data","mca_sharedfp_individual_component_file_query","mca_sharedfp_individual_component_file_unquery","mca_sharedfp_individual_component_init_query","mca_sharedfp_individual_create_buff","mca_sharedfp_individual_file_close","mca_sharedfp_individual_file_open","mca_sharedfp_individual_get_position","mca_sharedfp_individual_get_timestamps_and_reclengths","mca_sharedfp_individual_getoffset","mca_sharedfp_individual_gettime","mca_sharedfp_individual_insert_headnode","mca_sharedfp_individual_insert_metadata","mca_sharedfp_individual_iread","mca_sharedfp_individual_iwrite","mca_sharedfp_individual_module_finalize","mca_sharedfp_individual_module_init","mca_sharedfp_individual_read","mca_sharedfp_individual_read_ordered","mca_sharedfp_individual_read_ordered_begin","mca_sharedfp_individual_read_ordered_end","mca_sharedfp_individual_seek","mca_sharedfp_individual_sort_timestamps","mca_sharedfp_individual_write","mca_sharedfp_individual_write_metadata_file","mca_sharedfp_individual_write_ordered","mca_sharedfp_individual_write_ordered_begin","mca_sharedfp_individual_write_ordered_end","mca_sharedfp_lockedfile_component_file_query","mca_sharedfp_lockedfile_component_file_unquery","mca_sharedfp_lockedfile_component_init_query","mca_sharedfp_lockedfile_file_close","mca_sharedfp_lockedfile_file_open","mca_sharedfp_lockedfile_get_position","mca_sharedfp_lockedfile_iread","mca_sharedfp_lockedfile_iwrite","mca_sharedfp_lockedfile_module_finalize","mca_sharedfp_lockedfile_module_init","mca_sharedfp_lockedfile_read","mca_sharedfp_lockedfile_read_ordered","mca_sharedfp_lockedfile_read_ordered.cold","mca_sharedfp_lockedfile_read_ordered_begin","mca_sharedfp_lockedfile_read_ordered_begin.cold","mca_sharedfp_lockedfile_read_ordered_end","mca_sharedfp_lockedfile_request_position","mca_sharedfp_lockedfile_seek","mca_sharedfp_lockedfile_write","mca_sharedfp_lockedfile_write_ordered","mca_sharedfp_lockedfile_write_ordered.cold","mca_sharedfp_lockedfile_write_ordered_begin","mca_sharedfp_lockedfile_write_ordered_begin.cold","mca_sharedfp_lockedfile_write_ordered_end","mca_sharedfp_sm_component_file_query","mca_sharedfp_sm_component_file_unquery","mca_sharedfp_sm_component_init_query","mca_sharedfp_sm_file_close","mca_sharedfp_sm_file_open","mca_sharedfp_sm_get_position","mca_sharedfp_sm_iread","mca_sharedfp_sm_iwrite","mca_sharedfp_sm_module_finalize","mca_sharedfp_sm_module_init","mca_sharedfp_sm_read","mca_sharedfp_sm_read_ordered","mca_sharedfp_sm_read_ordered.cold","mca_sharedfp_sm_read_ordered_begin","mca_sharedfp_sm_read_ordered_begin.cold","mca_sharedfp_sm_read_ordered_end","mca_sharedfp_sm_request_position","mca_sharedfp_sm_seek","mca_sharedfp_sm_write","mca_sharedfp_sm_write_ordered","mca_sharedfp_sm_write_ordered.cold","mca_sharedfp_sm_write_ordered_begin","mca_sharedfp_sm_write_ordered_begin.cold","mca_sharedfp_sm_write_ordered_end","mca_topo_base_cart_coords","mca_topo_base_cart_create","mca_topo_base_cart_get","mca_topo_base_cart_map","mca_topo_base_cart_rank","mca_topo_base_cart_shift","mca_topo_base_cart_sub","mca_topo_base_cartdim_get","mca_topo_base_close","mca_topo_base_comm_cart_2_2_0_construct","mca_topo_base_comm_cart_2_2_0_destruct","mca_topo_base_comm_dist_graph_2_2_0_construct","mca_topo_base_comm_dist_graph_2_2_0_destruct","mca_topo_base_comm_graph_2_2_0_construct","mca_topo_base_comm_graph_2_2_0_destruct","mca_topo_base_comm_select","mca_topo_base_dist_graph_create","mca_topo_base_dist_graph_create_adjacent","mca_topo_base_dist_graph_distribute","mca_topo_base_dist_graph_neighbors","mca_topo_base_dist_graph_neighbors_count","mca_topo_base_find_available","mca_topo_base_graph_create","mca_topo_base_graph_get","mca_topo_base_graph_map","mca_topo_base_graph_neighbors","mca_topo_base_graph_neighbors_count","mca_topo_base_graphdims_get","mca_topo_base_group_select","mca_topo_base_lazy_init","mca_topo_base_module_construct","mca_topo_base_module_destruct","mca_topo_base_neighbor_count","mca_topo_base_open","mca_topo_basic_query","mca_topo_treematch_component_register","mca_topo_treematch_dist_graph_create","mca_topo_treematch_dist_graph_create.cold","mca_topo_treematch_query","mca_vprotocol_base_close","mca_vprotocol_base_open","mca_vprotocol_base_parasite","mca_vprotocol_base_request_parasite","mca_vprotocol_base_select","mca_vprotocol_base_set_include_list","mca_vprotocol_pessimist_add_comm","mca_vprotocol_pessimist_add_procs","mca_vprotocol_pessimist_component_close","mca_vprotocol_pessimist_component_finalize","mca_vprotocol_pessimist_component_init","mca_vprotocol_pessimist_component_open","mca_vprotocol_pessimist_component_register","mca_vprotocol_pessimist_del_comm","mca_vprotocol_pessimist_del_procs","mca_vprotocol_pessimist_dump","mca_vprotocol_pessimist_enable","mca_vprotocol_pessimist_iprobe","mca_vprotocol_pessimist_irecv","mca_vprotocol_pessimist_isend","mca_vprotocol_pessimist_isend.cold","mca_vprotocol_pessimist_probe","mca_vprotocol_pessimist_recv","mca_vprotocol_pessimist_request_free","mca_vprotocol_pessimist_send","mca_vprotocol_pessimist_send.cold","mca_vprotocol_pessimist_start","mca_vprotocol_pessimist_test","mca_vprotocol_pessimist_test_all","mca_vprotocol_pessimist_test_any","mca_vprotocol_pessimist_test_some","mca_vprotocol_pessimist_wait_any","mca_vprotocol_pessimist_wait_some","model_callback","module_constructor","module_constructor_1_0_0","mpi_aint_add_f90","mpi_aint_add_f90_","mpi_aint_add_f90__","mpi_aint_diff_f90","mpi_aint_diff_f90_","mpi_aint_diff_f90__","mpi_comm_dup_fn","mpi_comm_dup_fn_","mpi_comm_dup_fn__","mpi_comm_null_copy_fn","mpi_comm_null_copy_fn_","mpi_comm_null_copy_fn__","mpi_comm_null_delete_fn","mpi_comm_null_delete_fn_","mpi_comm_null_delete_fn__","mpi_conversion_fn_null","mpi_conversion_fn_null_","mpi_conversion_fn_null__","mpi_conversion_fn_null_f","mpi_dup_fn","mpi_dup_fn_","mpi_dup_fn__","mpi_null_copy_fn","mpi_null_copy_fn_","mpi_null_copy_fn__","mpi_null_delete_fn","mpi_null_delete_fn_","mpi_null_delete_fn__","mpi_type_dup_fn","mpi_type_dup_fn_","mpi_type_dup_fn__","mpi_type_null_copy_fn","mpi_type_null_copy_fn_","mpi_type_null_copy_fn__","mpi_type_null_delete_fn","mpi_type_null_delete_fn_","mpi_type_null_delete_fn__","mpi_win_dup_fn","mpi_win_dup_fn_","mpi_win_dup_fn__","mpi_win_null_copy_fn","mpi_win_null_copy_fn_","mpi_win_null_copy_fn__","mpi_win_null_delete_fn","mpi_win_null_delete_fn_","mpi_win_null_delete_fn__","mpi_wtick_f90","mpi_wtick_f90_","mpi_wtick_f90__","mpi_wtime_f90","mpi_wtime_f90_","mpi_wtime_f90__","msg_down","msg_down.cold","msg_up","mycompar","myfn","nb_leaves","nb_lines","nbc_allgather_init","nbc_allgather_inter_init","nbc_allgatherv_init","nbc_allgatherv_inter_init","nbc_allreduce_init","nbc_allreduce_init.cold","nbc_allreduce_inter_init","nbc_alltoall_init","nbc_alltoall_inter_init","nbc_alltoallv_init","nbc_alltoallv_inter_init","nbc_alltoallw_init","nbc_alltoallw_inter_init","nbc_barrier_init","nbc_barrier_inter_init","nbc_bcast_init","nbc_bcast_inter_init","nbc_exscan_init","nbc_gather_init","nbc_gather_inter_init","nbc_gatherv_init","nbc_gatherv_inter_init","nbc_neighbor_allgather_init","nbc_neighbor_allgatherv_init","nbc_neighbor_alltoall_init","nbc_neighbor_alltoallv_init","nbc_neighbor_alltoallw_init","nbc_reduce_init","nbc_reduce_inter_init","nbc_reduce_scatter_block_init","nbc_reduce_scatter_block_inter_init","nbc_reduce_scatter_init","nbc_reduce_scatter_inter_init","nbc_req_constructor","nbc_scan_init","nbc_scatter_init","nbc_scatter_inter_init","nbc_scatterv_init","nbc_scatterv_inter_init","nbc_schedule_constructor","nbc_schedule_destructor","next_bucket_elem","node_height","node_mheight","node_pathlen","ompi_attr_copy_all","ompi_attr_create_keyval","ompi_attr_create_keyval_aint","ompi_attr_create_keyval_fint","ompi_attr_create_keyval_impl","ompi_attr_create_predefined_keyvals","ompi_attr_delete","ompi_attr_delete_all","ompi_attr_delete_impl","ompi_attr_delete_predefined_keyvals_for_wm","ompi_attr_free_keyval","ompi_attr_free_predefined","ompi_attr_get_aint","ompi_attr_get_aint.cold","ompi_attr_get_c","ompi_attr_get_c.cold","ompi_attr_get_fint","ompi_attr_get_fint.cold","ompi_attr_get_ref","ompi_attr_put_ref","ompi_attr_set_aint","ompi_attr_set_c","ompi_attr_set_fint","ompi_attr_set_int","ompi_attr_set_predefined_keyvals_for_wm","ompi_attribute_keyval_construct","ompi_attribute_keyval_destruct","ompi_coll_adapt_bcast","ompi_coll_adapt_comm_query","ompi_coll_adapt_ibcast","ompi_coll_adapt_ibcast_fini","ompi_coll_adapt_ibcast_register","ompi_coll_adapt_init_query","ompi_coll_adapt_ireduce","ompi_coll_adapt_ireduce_fini","ompi_coll_adapt_ireduce_register","ompi_coll_adapt_module_cached_topology","ompi_coll_adapt_reduce","ompi_coll_adapt_request_free","ompi_coll_base_agree_noft","ompi_coll_base_allgather_intra_basic_linear","ompi_coll_base_allgather_intra_bruck","ompi_coll_base_allgather_intra_neighborexchange","ompi_coll_base_allgather_intra_recursivedoubling","ompi_coll_base_allgather_intra_ring","ompi_coll_base_allgather_intra_sparbit","ompi_coll_base_allgather_intra_two_procs","ompi_coll_base_allgatherv_intra_basic_default","ompi_coll_base_allgatherv_intra_bruck","ompi_coll_base_allgatherv_intra_neighborexchange","ompi_coll_base_allgatherv_intra_ring","ompi_coll_base_allgatherv_intra_sparbit","ompi_coll_base_allgatherv_intra_two_procs","ompi_coll_base_allreduce_intra_basic_linear","ompi_coll_base_allreduce_intra_nonoverlapping","ompi_coll_base_allreduce_intra_recursivedoubling","ompi_coll_base_allreduce_intra_redscat_allgather","ompi_coll_base_allreduce_intra_ring","ompi_coll_base_allreduce_intra_ring_segmented","ompi_coll_base_alltoall_intra_basic_linear","ompi_coll_base_alltoall_intra_bruck","ompi_coll_base_alltoall_intra_linear_sync","ompi_coll_base_alltoall_intra_pairwise","ompi_coll_base_alltoall_intra_two_procs","ompi_coll_base_alltoallv_intra_basic_linear","ompi_coll_base_alltoallv_intra_pairwise","ompi_coll_base_barrier_intra_basic_linear","ompi_coll_base_barrier_intra_bruck","ompi_coll_base_barrier_intra_doublering","ompi_coll_base_barrier_intra_recursivedoubling","ompi_coll_base_barrier_intra_tree","ompi_coll_base_barrier_intra_two_procs","ompi_coll_base_bcast_intra_basic_linear","ompi_coll_base_bcast_intra_binomial","ompi_coll_base_bcast_intra_bintree","ompi_coll_base_bcast_intra_chain","ompi_coll_base_bcast_intra_generic","ompi_coll_base_bcast_intra_knomial","ompi_coll_base_bcast_intra_pipeline","ompi_coll_base_bcast_intra_scatter_allgather","ompi_coll_base_bcast_intra_scatter_allgather_ring","ompi_coll_base_bcast_intra_split_bintree","ompi_coll_base_comm_get_reqs","ompi_coll_base_exscan_intra_linear","ompi_coll_base_exscan_intra_recursivedoubling","ompi_coll_base_file_getnext_long","ompi_coll_base_file_getnext_size_t","ompi_coll_base_file_getnext_string","ompi_coll_base_file_peek_next_char_is","ompi_coll_base_file_peek_next_char_isdigit","ompi_coll_base_gather_intra_basic_linear","ompi_coll_base_gather_intra_binomial","ompi_coll_base_gather_intra_linear_sync","ompi_coll_base_iagree_noft","ompi_coll_base_reduce_generic","ompi_coll_base_reduce_intra_basic_linear","ompi_coll_base_reduce_intra_binary","ompi_coll_base_reduce_intra_binomial","ompi_coll_base_reduce_intra_chain","ompi_coll_base_reduce_intra_in_order_binary","ompi_coll_base_reduce_intra_pipeline","ompi_coll_base_reduce_intra_redscat_gather","ompi_coll_base_reduce_scatter_block_basic_linear","ompi_coll_base_reduce_scatter_block_intra_butterfly","ompi_coll_base_reduce_scatter_block_intra_recursivedoubling","ompi_coll_base_reduce_scatter_block_intra_recursivehalving","ompi_coll_base_reduce_scatter_intra_basic_recursivehalving","ompi_coll_base_reduce_scatter_intra_butterfly","ompi_coll_base_reduce_scatter_intra_nonoverlapping","ompi_coll_base_reduce_scatter_intra_ring","ompi_coll_base_retain_datatypes","ompi_coll_base_retain_datatypes_w","ompi_coll_base_retain_op","ompi_coll_base_scan_intra_linear","ompi_coll_base_scan_intra_recursivedoubling","ompi_coll_base_scatter_intra_basic_linear","ompi_coll_base_scatter_intra_binomial","ompi_coll_base_scatter_intra_linear_nb","ompi_coll_base_sendrecv_actual","ompi_coll_base_topo_build_bmtree","ompi_coll_base_topo_build_chain","ompi_coll_base_topo_build_in_order_bintree","ompi_coll_base_topo_build_in_order_bmtree","ompi_coll_base_topo_build_kmtree","ompi_coll_base_topo_build_tree","ompi_coll_base_topo_destroy_tree","ompi_coll_base_topo_dump_tree","ompi_coll_han_reorder_gather","ompi_coll_han_request_free","ompi_coll_libnbc_allgather_init","ompi_coll_libnbc_allgather_inter_init","ompi_coll_libnbc_allgatherv_init","ompi_coll_libnbc_allgatherv_inter_init","ompi_coll_libnbc_allreduce_init","ompi_coll_libnbc_allreduce_inter_init","ompi_coll_libnbc_alltoall_init","ompi_coll_libnbc_alltoall_inter_init","ompi_coll_libnbc_alltoallv_init","ompi_coll_libnbc_alltoallv_inter_init","ompi_coll_libnbc_alltoallw_init","ompi_coll_libnbc_alltoallw_inter_init","ompi_coll_libnbc_barrier_init","ompi_coll_libnbc_barrier_inter_init","ompi_coll_libnbc_bcast_init","ompi_coll_libnbc_bcast_inter_init","ompi_coll_libnbc_dict_destroy","ompi_coll_libnbc_dict_itor_destroy","ompi_coll_libnbc_dict_long_cmp","ompi_coll_libnbc_dict_ptr_cmp","ompi_coll_libnbc_dict_str_cmp","ompi_coll_libnbc_dict_uint_cmp","ompi_coll_libnbc_dict_ulong_cmp","ompi_coll_libnbc_exscan_init","ompi_coll_libnbc_gather_init","ompi_coll_libnbc_gather_inter_init","ompi_coll_libnbc_gatherv_init","ompi_coll_libnbc_gatherv_inter_init","ompi_coll_libnbc_hb_dict_itor_new","ompi_coll_libnbc_hb_dict_new","ompi_coll_libnbc_hb_itor_cdata","ompi_coll_libnbc_hb_itor_data","ompi_coll_libnbc_hb_itor_destroy","ompi_coll_libnbc_hb_itor_first","ompi_coll_libnbc_hb_itor_invalidate","ompi_coll_libnbc_hb_itor_key","ompi_coll_libnbc_hb_itor_last","ompi_coll_libnbc_hb_itor_new","ompi_coll_libnbc_hb_itor_next","ompi_coll_libnbc_hb_itor_nextn","ompi_coll_libnbc_hb_itor_prev","ompi_coll_libnbc_hb_itor_prevn","ompi_coll_libnbc_hb_itor_set_data","ompi_coll_libnbc_hb_itor_valid","ompi_coll_libnbc_hb_tree_count","ompi_coll_libnbc_hb_tree_destroy","ompi_coll_libnbc_hb_tree_empty","ompi_coll_libnbc_hb_tree_height","ompi_coll_libnbc_hb_tree_insert","ompi_coll_libnbc_hb_tree_max","ompi_coll_libnbc_hb_tree_mheight","ompi_coll_libnbc_hb_tree_min","ompi_coll_libnbc_hb_tree_new","ompi_coll_libnbc_hb_tree_pathlen","ompi_coll_libnbc_hb_tree_probe","ompi_coll_libnbc_hb_tree_remove","ompi_coll_libnbc_hb_tree_search","ompi_coll_libnbc_hb_tree_walk","ompi_coll_libnbc_iallgather","ompi_coll_libnbc_iallgather_inter","ompi_coll_libnbc_iallgatherv","ompi_coll_libnbc_iallgatherv_inter","ompi_coll_libnbc_iallreduce","ompi_coll_libnbc_iallreduce_inter","ompi_coll_libnbc_ialltoall","ompi_coll_libnbc_ialltoall_inter","ompi_coll_libnbc_ialltoallv","ompi_coll_libnbc_ialltoallv_inter","ompi_coll_libnbc_ialltoallw","ompi_coll_libnbc_ialltoallw_inter","ompi_coll_libnbc_ibarrier","ompi_coll_libnbc_ibarrier_inter","ompi_coll_libnbc_ibcast","ompi_coll_libnbc_ibcast_inter","ompi_coll_libnbc_iexscan","ompi_coll_libnbc_igather","ompi_coll_libnbc_igather_inter","ompi_coll_libnbc_igatherv","ompi_coll_libnbc_igatherv_inter","ompi_coll_libnbc_ineighbor_allgather","ompi_coll_libnbc_ineighbor_allgatherv","ompi_coll_libnbc_ineighbor_alltoall","ompi_coll_libnbc_ineighbor_alltoallv","ompi_coll_libnbc_ineighbor_alltoallw","ompi_coll_libnbc_ireduce","ompi_coll_libnbc_ireduce_inter","ompi_coll_libnbc_ireduce_scatter","ompi_coll_libnbc_ireduce_scatter_block","ompi_coll_libnbc_ireduce_scatter_block_inter","ompi_coll_libnbc_ireduce_scatter_inter","ompi_coll_libnbc_iscan","ompi_coll_libnbc_iscatter","ompi_coll_libnbc_iscatter_inter","ompi_coll_libnbc_iscatterv","ompi_coll_libnbc_iscatterv_inter","ompi_coll_libnbc_neighbor_allgather_init","ompi_coll_libnbc_neighbor_allgatherv_init","ompi_coll_libnbc_neighbor_alltoall_init","ompi_coll_libnbc_neighbor_alltoallv_init","ompi_coll_libnbc_neighbor_alltoallw_init","ompi_coll_libnbc_progress","ompi_coll_libnbc_reduce_init","ompi_coll_libnbc_reduce_inter_init","ompi_coll_libnbc_reduce_scatter_block_init","ompi_coll_libnbc_reduce_scatter_block_inter_init","ompi_coll_libnbc_reduce_scatter_init","ompi_coll_libnbc_reduce_scatter_inter_init","ompi_coll_libnbc_scan_init","ompi_coll_libnbc_scatter_init","ompi_coll_libnbc_scatter_inter_init","ompi_coll_libnbc_scatterv_init","ompi_coll_libnbc_scatterv_inter_init","ompi_coll_sm_lazy_enable","ompi_coll_tuned_allgather_intra_check_forced_init","ompi_coll_tuned_allgather_intra_dec_dynamic","ompi_coll_tuned_allgather_intra_dec_fixed","ompi_coll_tuned_allgather_intra_do_this","ompi_coll_tuned_allgatherv_intra_check_forced_init","ompi_coll_tuned_allgatherv_intra_dec_dynamic","ompi_coll_tuned_allgatherv_intra_dec_fixed","ompi_coll_tuned_allgatherv_intra_do_this","ompi_coll_tuned_allreduce_intra_check_forced_init","ompi_coll_tuned_allreduce_intra_dec_dynamic","ompi_coll_tuned_allreduce_intra_dec_fixed","ompi_coll_tuned_allreduce_intra_do_this","ompi_coll_tuned_alltoall_intra_check_forced_init","ompi_coll_tuned_alltoall_intra_dec_dynamic","ompi_coll_tuned_alltoall_intra_dec_fixed","ompi_coll_tuned_alltoall_intra_do_this","ompi_coll_tuned_alltoallv_intra_check_forced_init","ompi_coll_tuned_alltoallv_intra_dec_dynamic","ompi_coll_tuned_alltoallv_intra_dec_fixed","ompi_coll_tuned_alltoallv_intra_do_this","ompi_coll_tuned_barrier_intra_check_forced_init","ompi_coll_tuned_barrier_intra_dec_dynamic","ompi_coll_tuned_barrier_intra_dec_fixed","ompi_coll_tuned_barrier_intra_do_this","ompi_coll_tuned_bcast_intra_check_forced_init","ompi_coll_tuned_bcast_intra_dec_dynamic","ompi_coll_tuned_bcast_intra_dec_fixed","ompi_coll_tuned_bcast_intra_do_this","ompi_coll_tuned_comm_query","ompi_coll_tuned_dump_alg_rule","ompi_coll_tuned_dump_all_rules","ompi_coll_tuned_dump_com_rule","ompi_coll_tuned_dump_msg_rule","ompi_coll_tuned_exscan_intra_check_forced_init","ompi_coll_tuned_exscan_intra_dec_dynamic","ompi_coll_tuned_exscan_intra_do_this","ompi_coll_tuned_forced_getvalues.isra.0","ompi_coll_tuned_free_all_rules","ompi_coll_tuned_free_coms_in_alg_rule","ompi_coll_tuned_free_msg_rules_in_com_rule","ompi_coll_tuned_gather_intra_check_forced_init","ompi_coll_tuned_gather_intra_dec_dynamic","ompi_coll_tuned_gather_intra_dec_fixed","ompi_coll_tuned_gather_intra_do_this","ompi_coll_tuned_get_com_rule_ptr","ompi_coll_tuned_get_target_method_params","ompi_coll_tuned_init_query","ompi_coll_tuned_mk_alg_rules","ompi_coll_tuned_mk_com_rules","ompi_coll_tuned_mk_msg_rules","ompi_coll_tuned_read_rules_config_file","ompi_coll_tuned_reduce_intra_check_forced_init","ompi_coll_tuned_reduce_intra_dec_dynamic","ompi_coll_tuned_reduce_intra_dec_fixed","ompi_coll_tuned_reduce_intra_do_this","ompi_coll_tuned_reduce_scatter_block_intra_check_forced_init","ompi_coll_tuned_reduce_scatter_block_intra_dec_dynamic","ompi_coll_tuned_reduce_scatter_block_intra_dec_fixed","ompi_coll_tuned_reduce_scatter_block_intra_do_this","ompi_coll_tuned_reduce_scatter_intra_check_forced_init","ompi_coll_tuned_reduce_scatter_intra_dec_dynamic","ompi_coll_tuned_reduce_scatter_intra_dec_fixed","ompi_coll_tuned_reduce_scatter_intra_do_this","ompi_coll_tuned_scan_intra_check_forced_init","ompi_coll_tuned_scan_intra_dec_dynamic","ompi_coll_tuned_scan_intra_do_this","ompi_coll_tuned_scatter_intra_check_forced_init","ompi_coll_tuned_scatter_intra_dec_dynamic","ompi_coll_tuned_scatter_intra_dec_fixed","ompi_coll_tuned_scatter_intra_do_this","ompi_comm_ack_failed_internal","ompi_comm_activate","ompi_comm_activate_nb","ompi_comm_activate_nb_complete","ompi_comm_allgather_emulate_intra","ompi_comm_allreduce_bridged_reduce_complete","ompi_comm_allreduce_bridged_xchng_complete","ompi_comm_allreduce_context_construct","ompi_comm_allreduce_context_destruct","ompi_comm_allreduce_getnextcid","ompi_comm_allreduce_group_broadcast","ompi_comm_allreduce_group_nb","ompi_comm_allreduce_group_recv_complete","ompi_comm_allreduce_inter_bcast","ompi_comm_allreduce_inter_leader_exchange","ompi_comm_allreduce_inter_leader_reduce","ompi_comm_allreduce_inter_nb","ompi_comm_allreduce_intra_bridge_nb","ompi_comm_allreduce_intra_nb","ompi_comm_allreduce_intra_pmix_nb","ompi_comm_allreduce_pmix_reduce_complete","ompi_comm_assert_subscribe","ompi_comm_checkcid","ompi_comm_cid_init","ompi_comm_compare","ompi_comm_construct","ompi_comm_create","ompi_comm_create_from_group","ompi_comm_create_group","ompi_comm_create_w_info","ompi_comm_destruct","ompi_comm_determine_first","ompi_comm_determine_first_auto","ompi_comm_dump","ompi_comm_dup","ompi_comm_dup_fn_f","ompi_comm_dup_with_info","ompi_comm_enable","ompi_comm_failure_ack_internal","ompi_comm_failure_detector_finalize","ompi_comm_failure_detector_init","ompi_comm_failure_detector_register_params","ompi_comm_failure_detector_start","ompi_comm_failure_get_acked_internal","ompi_comm_failure_propagate","ompi_comm_failure_propagator_finalize","ompi_comm_failure_propagator_init","ompi_comm_failure_propagator_local","ompi_comm_failure_propagator_register_params","ompi_comm_finalize","ompi_comm_free","ompi_comm_free.localalias","ompi_comm_ft_allreduce_agree_completion","ompi_comm_ft_allreduce_inter_nb","ompi_comm_ft_allreduce_intra_nb","ompi_comm_ft_allreduce_intra_pmix_nb","ompi_comm_get_failed_internal","ompi_comm_get_remote_cid_from_pmix","ompi_comm_get_rprocs","ompi_comm_group","ompi_comm_idup","ompi_comm_idup_getcid","ompi_comm_idup_with_info","ompi_comm_idup_with_info_activate","ompi_comm_idup_with_info_finish","ompi_comm_init","ompi_comm_init_mpi3","ompi_comm_is_proc_active","ompi_comm_ishrink_check_activate","ompi_comm_ishrink_check_agree","ompi_comm_ishrink_check_cid","ompi_comm_ishrink_check_setrank","ompi_comm_ishrink_internal","ompi_comm_nextcid","ompi_comm_nextcid_check_flag","ompi_comm_nextcid_nb","ompi_comm_null_copy_fn_f","ompi_comm_null_delete_fn_f","ompi_comm_print_cid","ompi_comm_rbcast_bmg","ompi_comm_rbcast_bml_recv_cb","ompi_comm_rbcast_finalize","ompi_comm_rbcast_init","ompi_comm_rbcast_n2","ompi_comm_rbcast_null","ompi_comm_rbcast_register_cb_type","ompi_comm_rbcast_register_params","ompi_comm_rbcast_send_msg","ompi_comm_rbcast_unregister_cb_type","ompi_comm_request_cancel","ompi_comm_request_construct","ompi_comm_request_destruct","ompi_comm_request_fini","ompi_comm_request_free","ompi_comm_request_get","ompi_comm_request_init","ompi_comm_request_progress","ompi_comm_request_progress.cold","ompi_comm_request_return","ompi_comm_request_schedule_append","ompi_comm_request_schedule_append_w_flags","ompi_comm_request_start","ompi_comm_revoke_finalize","ompi_comm_revoke_init","ompi_comm_revoke_internal","ompi_comm_revoke_local","ompi_comm_set","ompi_comm_set_active_poll","ompi_comm_set_allow_overtake","ompi_comm_set_exact_length","ompi_comm_set_lazy_barrier","ompi_comm_set_name","ompi_comm_set_nb","ompi_comm_set_no_any_source","ompi_comm_set_no_any_tag","ompi_comm_set_rank_failed","ompi_comm_shrink_internal","ompi_comm_split","ompi_comm_split_type","ompi_comm_split_type_core","ompi_comm_split_type_get_part.constprop.0","ompi_comm_split_verify","ompi_comm_split_with_info","ompi_comm_start_detector","ompi_datatype_copy_args","ompi_datatype_create","ompi_datatype_create_contiguous","ompi_datatype_create_darray","ompi_datatype_create_from_packed_description","ompi_datatype_create_hindexed","ompi_datatype_create_hindexed_block","ompi_datatype_create_hvector","ompi_datatype_create_indexed","ompi_datatype_create_indexed_block","ompi_datatype_create_struct","ompi_datatype_create_subarray","ompi_datatype_create_vector","ompi_datatype_default_convertors_fini","ompi_datatype_default_convertors_init","ompi_datatype_destroy","ompi_datatype_dump","ompi_datatype_duplicate","ompi_datatype_finalize","ompi_datatype_get_args","ompi_datatype_get_elements","ompi_datatype_get_pack_description","ompi_datatype_get_single_predefined_type_from_args","ompi_datatype_get_single_predefined_type_from_args.localalias","ompi_datatype_init","ompi_datatype_init.cold","ompi_datatype_match_size","ompi_datatype_match_size.cold","ompi_datatype_pack_description_length","ompi_datatype_pack_external","ompi_datatype_pack_external_size","ompi_datatype_print_args","ompi_datatype_release_args","ompi_datatype_set_args","ompi_datatype_sndrcv","ompi_datatype_unpack_external","ompi_debugger_setup_dlls","ompi_dpm_close_port","ompi_dpm_connect_accept","ompi_dpm_disconnect","ompi_dpm_dyn_finalize","ompi_dpm_dyn_init","ompi_dpm_init","ompi_dpm_mark_dyncomm","ompi_dpm_open_port","ompi_dpm_spawn","ompi_dup_fn_f","ompi_errcode_get_mpi_code.part.0","ompi_errcode_get_mpi_code.part.0.cold","ompi_errcode_intern_construct","ompi_errcode_intern_destruct","ompi_errcode_intern_finalize","ompi_errcode_intern_init","ompi_errhandler_callback","ompi_errhandler_construct","ompi_errhandler_create","ompi_errhandler_destruct","ompi_errhandler_event_cb","ompi_errhandler_finalize","ompi_errhandler_free","ompi_errhandler_init","ompi_errhandler_invoke","ompi_errhandler_proc_failed_internal","ompi_errhandler_registration_callback","ompi_errhandler_request_invoke","ompi_errhandler_request_invoke.cold","ompi_fcoll_base_coll_allgather_array","ompi_fcoll_base_coll_allgatherv_array","ompi_fcoll_base_coll_bcast_array","ompi_fcoll_base_coll_gather_array","ompi_fcoll_base_coll_gatherv_array","ompi_fcoll_base_coll_scatterv_array","ompi_fcoll_base_sort_iovec","ompi_file_close","ompi_file_finalize","ompi_file_init","ompi_file_open","ompi_fortran_argv_blank_f2c","ompi_fortran_argv_count_f2c","ompi_fortran_multiple_argvs_f2c","ompi_fortran_string_c2f","ompi_fortran_string_f2c","ompi_grequest_cancel","ompi_grequest_complete","ompi_grequest_construct","ompi_grequest_destruct","ompi_grequest_free","ompi_grequest_invoke_query","ompi_grequest_start","ompi_group_allocate","ompi_group_allocate_bmap","ompi_group_allocate_plist_w_procs","ompi_group_allocate_sporadic","ompi_group_allocate_strided","ompi_group_calc_bmap","ompi_group_calc_plist","ompi_group_calc_sporadic","ompi_group_calc_strided","ompi_group_compare","ompi_group_construct","ompi_group_count_local_peers","ompi_group_decrement_proc_count","ompi_group_dense_overlap","ompi_group_destruct","ompi_group_difference","ompi_group_div_ceil","ompi_group_dump","ompi_group_excl","ompi_group_finalize","ompi_group_flatten","ompi_group_free","ompi_group_from_pset","ompi_group_have_remote_peers","ompi_group_incl","ompi_group_incl_bmap","ompi_group_incl_plist","ompi_group_incl_spor","ompi_group_incl_strided","ompi_group_increment_proc_count","ompi_group_init","ompi_group_intersection","ompi_group_minloc","ompi_group_overlap","ompi_group_range_excl","ompi_group_range_incl","ompi_group_to_proc_name_array","ompi_group_translate_ranks","ompi_group_translate_ranks_bmap","ompi_group_translate_ranks_bmap_reverse","ompi_group_translate_ranks_sporadic","ompi_group_translate_ranks_sporadic_reverse","ompi_group_translate_ranks_strided","ompi_group_translate_ranks_strided_reverse","ompi_group_union","ompi_hook_base_close","ompi_hook_base_deregister_callbacks","ompi_hook_base_mpi_finalize_bottom","ompi_hook_base_mpi_finalize_top","ompi_hook_base_mpi_finalized_bottom","ompi_hook_base_mpi_finalized_top","ompi_hook_base_mpi_init_bottom","ompi_hook_base_mpi_init_error","ompi_hook_base_mpi_init_thread_bottom","ompi_hook_base_mpi_init_thread_top","ompi_hook_base_mpi_init_top","ompi_hook_base_mpi_init_top_post_opal","ompi_hook_base_mpi_initialized_bottom","ompi_hook_base_mpi_initialized_top","ompi_hook_base_open","ompi_hook_base_register","ompi_hook_base_register_callbacks","ompi_hook_comm_method_component_close","ompi_hook_comm_method_component_open","ompi_hook_comm_method_component_register","ompi_hook_comm_method_mpi_finalize_top","ompi_hook_comm_method_mpi_init_bottom","ompi_info_allocate","ompi_info_close_components","ompi_info_delete","ompi_info_dup","ompi_info_free","ompi_info_get","ompi_info_get_bool","ompi_info_get_nkeys","ompi_info_get_nthkey","ompi_info_get_value_enum","ompi_info_get_valuelen","ompi_info_register_framework_params","ompi_info_register_types","ompi_info_set","ompi_info_set_value_enum","ompi_info_show_ompi_version","ompi_init_preconnect_mpi","ompi_initial_errhandler_init","ompi_instance_construct","ompi_instance_destruct","ompi_instance_get_nth_pset","ompi_instance_get_num_psets","ompi_instance_get_num_psets_complete","ompi_instance_get_pset_info","ompi_instance_group_pmix_pset","ompi_instance_group_shared","ompi_instance_print_error.part.0","ompi_instance_refresh_pmix_psets","ompi_intercomm_create","ompi_intercomm_create_from_groups","ompi_interlib_declare","ompi_io_ompio_generate_current_file_view","ompi_io_ompio_generate_current_file_view.cold","ompi_io_ompio_sort_offlen","ompi_isendrecv_complete_func","ompi_isendrecv_context_constructor","ompi_isendrecv_context_destructor","ompi_isendrecv_replace_complete_func","ompi_message_constructor","ompi_message_finalize","ompi_message_init","ompi_mirror_perm","ompi_mpi_abort","ompi_mpi_dynamics_disable","ompi_mpi_dynamics_finalize","ompi_mpi_dynamics_is_enabled","ompi_mpi_errclass_add","ompi_mpi_errcode_add","ompi_mpi_errcode_construct","ompi_mpi_errcode_destruct","ompi_mpi_errcode_finalize","ompi_mpi_errcode_init","ompi_mpi_errnum_add_string","ompi_mpi_errors_abort_comm_handler","ompi_mpi_errors_abort_file_handler","ompi_mpi_errors_abort_win_handler","ompi_mpi_errors_are_fatal_comm_handler","ompi_mpi_errors_are_fatal_file_handler","ompi_mpi_errors_are_fatal_instance_handler","ompi_mpi_errors_are_fatal_win_handler","ompi_mpi_errors_return_comm_handler","ompi_mpi_errors_return_file_handler","ompi_mpi_errors_return_instance_handler","ompi_mpi_errors_return_win_handler","ompi_mpi_finalize","ompi_mpi_init","ompi_mpi_instance_cleanup_pml","ompi_mpi_instance_finalize","ompi_mpi_instance_finalize_common","ompi_mpi_instance_init","ompi_mpi_instance_init_common","ompi_mpi_instance_release","ompi_mpi_instance_retain","ompi_mpi_register_params","ompi_mpi_thread_level","ompi_mpiext_fini","ompi_mpiext_init","ompi_mpiinfo_finalize","ompi_mpiinfo_init","ompi_mpiinfo_init_env","ompi_mpit_lock","ompi_mpit_unlock","ompi_mtl_base_close","ompi_mtl_base_select","ompi_null_copy_fn_f","ompi_null_delete_fn_f","ompi_op_avx_2buff_add_double_avx","ompi_op_avx_2buff_add_double_avx2","ompi_op_avx_2buff_add_double_avx512","ompi_op_avx_2buff_add_float_avx","ompi_op_avx_2buff_add_float_avx2","ompi_op_avx_2buff_add_float_avx512","ompi_op_avx_2buff_band_int16_t_avx","ompi_op_avx_2buff_band_int16_t_avx2","ompi_op_avx_2buff_band_int16_t_avx512","ompi_op_avx_2buff_band_int32_t_avx","ompi_op_avx_2buff_band_int32_t_avx2","ompi_op_avx_2buff_band_int32_t_avx512","ompi_op_avx_2buff_band_int64_t_avx","ompi_op_avx_2buff_band_int64_t_avx2","ompi_op_avx_2buff_band_int64_t_avx512","ompi_op_avx_2buff_band_int8_t_avx","ompi_op_avx_2buff_band_int8_t_avx2","ompi_op_avx_2buff_band_int8_t_avx512","ompi_op_avx_2buff_band_uint16_t_avx","ompi_op_avx_2buff_band_uint16_t_avx2","ompi_op_avx_2buff_band_uint16_t_avx512","ompi_op_avx_2buff_band_uint32_t_avx","ompi_op_avx_2buff_band_uint32_t_avx2","ompi_op_avx_2buff_band_uint32_t_avx512","ompi_op_avx_2buff_band_uint64_t_avx","ompi_op_avx_2buff_band_uint64_t_avx2","ompi_op_avx_2buff_band_uint64_t_avx512","ompi_op_avx_2buff_band_uint8_t_avx","ompi_op_avx_2buff_band_uint8_t_avx2","ompi_op_avx_2buff_band_uint8_t_avx512","ompi_op_avx_2buff_bor_int16_t_avx","ompi_op_avx_2buff_bor_int16_t_avx2","ompi_op_avx_2buff_bor_int16_t_avx512","ompi_op_avx_2buff_bor_int32_t_avx","ompi_op_avx_2buff_bor_int32_t_avx2","ompi_op_avx_2buff_bor_int32_t_avx512","ompi_op_avx_2buff_bor_int64_t_avx","ompi_op_avx_2buff_bor_int64_t_avx2","ompi_op_avx_2buff_bor_int64_t_avx512","ompi_op_avx_2buff_bor_int8_t_avx","ompi_op_avx_2buff_bor_int8_t_avx2","ompi_op_avx_2buff_bor_int8_t_avx512","ompi_op_avx_2buff_bor_uint16_t_avx","ompi_op_avx_2buff_bor_uint16_t_avx2","ompi_op_avx_2buff_bor_uint16_t_avx512","ompi_op_avx_2buff_bor_uint32_t_avx","ompi_op_avx_2buff_bor_uint32_t_avx2","ompi_op_avx_2buff_bor_uint32_t_avx512","ompi_op_avx_2buff_bor_uint64_t_avx","ompi_op_avx_2buff_bor_uint64_t_avx2","ompi_op_avx_2buff_bor_uint64_t_avx512","ompi_op_avx_2buff_bor_uint8_t_avx","ompi_op_avx_2buff_bor_uint8_t_avx2","ompi_op_avx_2buff_bor_uint8_t_avx512","ompi_op_avx_2buff_bxor_int16_t_avx","ompi_op_avx_2buff_bxor_int16_t_avx2","ompi_op_avx_2buff_bxor_int16_t_avx512","ompi_op_avx_2buff_bxor_int32_t_avx","ompi_op_avx_2buff_bxor_int32_t_avx2","ompi_op_avx_2buff_bxor_int32_t_avx512","ompi_op_avx_2buff_bxor_int64_t_avx","ompi_op_avx_2buff_bxor_int64_t_avx2","ompi_op_avx_2buff_bxor_int64_t_avx512","ompi_op_avx_2buff_bxor_int8_t_avx","ompi_op_avx_2buff_bxor_int8_t_avx2","ompi_op_avx_2buff_bxor_int8_t_avx512","ompi_op_avx_2buff_bxor_uint16_t_avx","ompi_op_avx_2buff_bxor_uint16_t_avx2","ompi_op_avx_2buff_bxor_uint16_t_avx512","ompi_op_avx_2buff_bxor_uint32_t_avx","ompi_op_avx_2buff_bxor_uint32_t_avx2","ompi_op_avx_2buff_bxor_uint32_t_avx512","ompi_op_avx_2buff_bxor_uint64_t_avx","ompi_op_avx_2buff_bxor_uint64_t_avx2","ompi_op_avx_2buff_bxor_uint64_t_avx512","ompi_op_avx_2buff_bxor_uint8_t_avx","ompi_op_avx_2buff_bxor_uint8_t_avx2","ompi_op_avx_2buff_bxor_uint8_t_avx512","ompi_op_avx_2buff_max_double_avx","ompi_op_avx_2buff_max_double_avx2","ompi_op_avx_2buff_max_double_avx512","ompi_op_avx_2buff_max_float_avx","ompi_op_avx_2buff_max_float_avx2","ompi_op_avx_2buff_max_float_avx512","ompi_op_avx_2buff_max_int16_t_avx","ompi_op_avx_2buff_max_int16_t_avx2","ompi_op_avx_2buff_max_int16_t_avx512","ompi_op_avx_2buff_max_int32_t_avx","ompi_op_avx_2buff_max_int32_t_avx2","ompi_op_avx_2buff_max_int32_t_avx512","ompi_op_avx_2buff_max_int64_t_avx512","ompi_op_avx_2buff_max_int8_t_avx","ompi_op_avx_2buff_max_int8_t_avx2","ompi_op_avx_2buff_max_int8_t_avx512","ompi_op_avx_2buff_max_uint16_t_avx","ompi_op_avx_2buff_max_uint16_t_avx2","ompi_op_avx_2buff_max_uint16_t_avx512","ompi_op_avx_2buff_max_uint32_t_avx","ompi_op_avx_2buff_max_uint32_t_avx2","ompi_op_avx_2buff_max_uint32_t_avx512","ompi_op_avx_2buff_max_uint64_t_avx512","ompi_op_avx_2buff_max_uint8_t_avx","ompi_op_avx_2buff_max_uint8_t_avx2","ompi_op_avx_2buff_max_uint8_t_avx512","ompi_op_avx_2buff_min_double_avx","ompi_op_avx_2buff_min_double_avx2","ompi_op_avx_2buff_min_double_avx512","ompi_op_avx_2buff_min_float_avx","ompi_op_avx_2buff_min_float_avx2","ompi_op_avx_2buff_min_float_avx512","ompi_op_avx_2buff_min_int16_t_avx","ompi_op_avx_2buff_min_int16_t_avx2","ompi_op_avx_2buff_min_int16_t_avx512","ompi_op_avx_2buff_min_int32_t_avx","ompi_op_avx_2buff_min_int32_t_avx2","ompi_op_avx_2buff_min_int32_t_avx512","ompi_op_avx_2buff_min_int64_t_avx512","ompi_op_avx_2buff_min_int8_t_avx","ompi_op_avx_2buff_min_int8_t_avx2","ompi_op_avx_2buff_min_int8_t_avx512","ompi_op_avx_2buff_min_uint16_t_avx","ompi_op_avx_2buff_min_uint16_t_avx2","ompi_op_avx_2buff_min_uint16_t_avx512","ompi_op_avx_2buff_min_uint32_t_avx","ompi_op_avx_2buff_min_uint32_t_avx2","ompi_op_avx_2buff_min_uint32_t_avx512","ompi_op_avx_2buff_min_uint64_t_avx512","ompi_op_avx_2buff_min_uint8_t_avx","ompi_op_avx_2buff_min_uint8_t_avx2","ompi_op_avx_2buff_min_uint8_t_avx512","ompi_op_avx_2buff_mul_double_avx","ompi_op_avx_2buff_mul_double_avx2","ompi_op_avx_2buff_mul_double_avx512","ompi_op_avx_2buff_mul_float_avx","ompi_op_avx_2buff_mul_float_avx2","ompi_op_avx_2buff_mul_float_avx512","ompi_op_avx_2buff_prod_int16_t_avx","ompi_op_avx_2buff_prod_int16_t_avx2","ompi_op_avx_2buff_prod_int16_t_avx512","ompi_op_avx_2buff_prod_int32_t_avx","ompi_op_avx_2buff_prod_int32_t_avx2","ompi_op_avx_2buff_prod_int32_t_avx512","ompi_op_avx_2buff_prod_int64_t_avx512","ompi_op_avx_2buff_prod_int8_t_avx","ompi_op_avx_2buff_prod_int8_t_avx2","ompi_op_avx_2buff_prod_int8_t_avx512","ompi_op_avx_2buff_prod_uint16_t_avx","ompi_op_avx_2buff_prod_uint16_t_avx2","ompi_op_avx_2buff_prod_uint16_t_avx512","ompi_op_avx_2buff_prod_uint32_t_avx","ompi_op_avx_2buff_prod_uint32_t_avx2","ompi_op_avx_2buff_prod_uint32_t_avx512","ompi_op_avx_2buff_prod_uint64_t_avx512","ompi_op_avx_2buff_prod_uint8_t_avx","ompi_op_avx_2buff_prod_uint8_t_avx2","ompi_op_avx_2buff_prod_uint8_t_avx512","ompi_op_avx_2buff_sum_int16_t_avx","ompi_op_avx_2buff_sum_int16_t_avx2","ompi_op_avx_2buff_sum_int16_t_avx512","ompi_op_avx_2buff_sum_int32_t_avx","ompi_op_avx_2buff_sum_int32_t_avx2","ompi_op_avx_2buff_sum_int32_t_avx512","ompi_op_avx_2buff_sum_int64_t_avx","ompi_op_avx_2buff_sum_int64_t_avx2","ompi_op_avx_2buff_sum_int64_t_avx512","ompi_op_avx_2buff_sum_int8_t_avx","ompi_op_avx_2buff_sum_int8_t_avx2","ompi_op_avx_2buff_sum_int8_t_avx512","ompi_op_avx_2buff_sum_uint16_t_avx","ompi_op_avx_2buff_sum_uint16_t_avx2","ompi_op_avx_2buff_sum_uint16_t_avx512","ompi_op_avx_2buff_sum_uint32_t_avx","ompi_op_avx_2buff_sum_uint32_t_avx2","ompi_op_avx_2buff_sum_uint32_t_avx512","ompi_op_avx_2buff_sum_uint64_t_avx","ompi_op_avx_2buff_sum_uint64_t_avx2","ompi_op_avx_2buff_sum_uint64_t_avx512","ompi_op_avx_2buff_sum_uint8_t_avx","ompi_op_avx_2buff_sum_uint8_t_avx2","ompi_op_avx_2buff_sum_uint8_t_avx512","ompi_op_avx_3buff_add_double_avx","ompi_op_avx_3buff_add_double_avx2","ompi_op_avx_3buff_add_double_avx512","ompi_op_avx_3buff_add_float_avx","ompi_op_avx_3buff_add_float_avx2","ompi_op_avx_3buff_add_float_avx512","ompi_op_avx_3buff_and_int16_t_avx","ompi_op_avx_3buff_and_int16_t_avx2","ompi_op_avx_3buff_and_int16_t_avx512","ompi_op_avx_3buff_and_int32_t_avx","ompi_op_avx_3buff_and_int32_t_avx2","ompi_op_avx_3buff_and_int32_t_avx512","ompi_op_avx_3buff_and_int64_t_avx","ompi_op_avx_3buff_and_int64_t_avx2","ompi_op_avx_3buff_and_int64_t_avx512","ompi_op_avx_3buff_and_int8_t_avx","ompi_op_avx_3buff_and_int8_t_avx2","ompi_op_avx_3buff_and_int8_t_avx512","ompi_op_avx_3buff_and_uint16_t_avx","ompi_op_avx_3buff_and_uint16_t_avx2","ompi_op_avx_3buff_and_uint16_t_avx512","ompi_op_avx_3buff_and_uint32_t_avx","ompi_op_avx_3buff_and_uint32_t_avx2","ompi_op_avx_3buff_and_uint32_t_avx512","ompi_op_avx_3buff_and_uint64_t_avx","ompi_op_avx_3buff_and_uint64_t_avx2","ompi_op_avx_3buff_and_uint64_t_avx512","ompi_op_avx_3buff_and_uint8_t_avx","ompi_op_avx_3buff_and_uint8_t_avx2","ompi_op_avx_3buff_and_uint8_t_avx512","ompi_op_avx_3buff_max_double_avx","ompi_op_avx_3buff_max_double_avx2","ompi_op_avx_3buff_max_double_avx512","ompi_op_avx_3buff_max_float_avx","ompi_op_avx_3buff_max_float_avx2","ompi_op_avx_3buff_max_float_avx512","ompi_op_avx_3buff_max_int16_t_avx","ompi_op_avx_3buff_max_int16_t_avx2","ompi_op_avx_3buff_max_int16_t_avx512","ompi_op_avx_3buff_max_int32_t_avx","ompi_op_avx_3buff_max_int32_t_avx2","ompi_op_avx_3buff_max_int32_t_avx512","ompi_op_avx_3buff_max_int64_t_avx512","ompi_op_avx_3buff_max_int8_t_avx","ompi_op_avx_3buff_max_int8_t_avx2","ompi_op_avx_3buff_max_int8_t_avx512","ompi_op_avx_3buff_max_uint16_t_avx","ompi_op_avx_3buff_max_uint16_t_avx2","ompi_op_avx_3buff_max_uint16_t_avx512","ompi_op_avx_3buff_max_uint32_t_avx","ompi_op_avx_3buff_max_uint32_t_avx2","ompi_op_avx_3buff_max_uint32_t_avx512","ompi_op_avx_3buff_max_uint64_t_avx512","ompi_op_avx_3buff_max_uint8_t_avx","ompi_op_avx_3buff_max_uint8_t_avx2","ompi_op_avx_3buff_max_uint8_t_avx512","ompi_op_avx_3buff_min_double_avx","ompi_op_avx_3buff_min_double_avx2","ompi_op_avx_3buff_min_double_avx512","ompi_op_avx_3buff_min_float_avx","ompi_op_avx_3buff_min_float_avx2","ompi_op_avx_3buff_min_float_avx512","ompi_op_avx_3buff_min_int16_t_avx","ompi_op_avx_3buff_min_int16_t_avx2","ompi_op_avx_3buff_min_int16_t_avx512","ompi_op_avx_3buff_min_int32_t_avx","ompi_op_avx_3buff_min_int32_t_avx2","ompi_op_avx_3buff_min_int32_t_avx512","ompi_op_avx_3buff_min_int64_t_avx512","ompi_op_avx_3buff_min_int8_t_avx","ompi_op_avx_3buff_min_int8_t_avx2","ompi_op_avx_3buff_min_int8_t_avx512","ompi_op_avx_3buff_min_uint16_t_avx","ompi_op_avx_3buff_min_uint16_t_avx2","ompi_op_avx_3buff_min_uint16_t_avx512","ompi_op_avx_3buff_min_uint32_t_avx","ompi_op_avx_3buff_min_uint32_t_avx2","ompi_op_avx_3buff_min_uint32_t_avx512","ompi_op_avx_3buff_min_uint64_t_avx512","ompi_op_avx_3buff_min_uint8_t_avx","ompi_op_avx_3buff_min_uint8_t_avx2","ompi_op_avx_3buff_min_uint8_t_avx512","ompi_op_avx_3buff_mul_double_avx","ompi_op_avx_3buff_mul_double_avx2","ompi_op_avx_3buff_mul_double_avx512","ompi_op_avx_3buff_mul_float_avx","ompi_op_avx_3buff_mul_float_avx2","ompi_op_avx_3buff_mul_float_avx512","ompi_op_avx_3buff_or_int16_t_avx","ompi_op_avx_3buff_or_int16_t_avx2","ompi_op_avx_3buff_or_int16_t_avx512","ompi_op_avx_3buff_or_int32_t_avx","ompi_op_avx_3buff_or_int32_t_avx2","ompi_op_avx_3buff_or_int32_t_avx512","ompi_op_avx_3buff_or_int64_t_avx","ompi_op_avx_3buff_or_int64_t_avx2","ompi_op_avx_3buff_or_int64_t_avx512","ompi_op_avx_3buff_or_int8_t_avx","ompi_op_avx_3buff_or_int8_t_avx2","ompi_op_avx_3buff_or_int8_t_avx512","ompi_op_avx_3buff_or_uint16_t_avx","ompi_op_avx_3buff_or_uint16_t_avx2","ompi_op_avx_3buff_or_uint16_t_avx512","ompi_op_avx_3buff_or_uint32_t_avx","ompi_op_avx_3buff_or_uint32_t_avx2","ompi_op_avx_3buff_or_uint32_t_avx512","ompi_op_avx_3buff_or_uint64_t_avx","ompi_op_avx_3buff_or_uint64_t_avx2","ompi_op_avx_3buff_or_uint64_t_avx512","ompi_op_avx_3buff_or_uint8_t_avx","ompi_op_avx_3buff_or_uint8_t_avx2","ompi_op_avx_3buff_or_uint8_t_avx512","ompi_op_avx_3buff_prod_int16_t_avx","ompi_op_avx_3buff_prod_int16_t_avx2","ompi_op_avx_3buff_prod_int16_t_avx512","ompi_op_avx_3buff_prod_int32_t_avx","ompi_op_avx_3buff_prod_int32_t_avx2","ompi_op_avx_3buff_prod_int32_t_avx512","ompi_op_avx_3buff_prod_int64_t_avx512","ompi_op_avx_3buff_prod_int8_t_avx","ompi_op_avx_3buff_prod_int8_t_avx2","ompi_op_avx_3buff_prod_int8_t_avx512","ompi_op_avx_3buff_prod_uint16_t_avx","ompi_op_avx_3buff_prod_uint16_t_avx2","ompi_op_avx_3buff_prod_uint16_t_avx512","ompi_op_avx_3buff_prod_uint32_t_avx","ompi_op_avx_3buff_prod_uint32_t_avx2","ompi_op_avx_3buff_prod_uint32_t_avx512","ompi_op_avx_3buff_prod_uint64_t_avx512","ompi_op_avx_3buff_prod_uint8_t_avx","ompi_op_avx_3buff_prod_uint8_t_avx2","ompi_op_avx_3buff_prod_uint8_t_avx512","ompi_op_avx_3buff_sum_int16_t_avx","ompi_op_avx_3buff_sum_int16_t_avx2","ompi_op_avx_3buff_sum_int16_t_avx512","ompi_op_avx_3buff_sum_int32_t_avx","ompi_op_avx_3buff_sum_int32_t_avx2","ompi_op_avx_3buff_sum_int32_t_avx512","ompi_op_avx_3buff_sum_int64_t_avx","ompi_op_avx_3buff_sum_int64_t_avx2","ompi_op_avx_3buff_sum_int64_t_avx512","ompi_op_avx_3buff_sum_int8_t_avx","ompi_op_avx_3buff_sum_int8_t_avx2","ompi_op_avx_3buff_sum_int8_t_avx512","ompi_op_avx_3buff_sum_uint16_t_avx","ompi_op_avx_3buff_sum_uint16_t_avx2","ompi_op_avx_3buff_sum_uint16_t_avx512","ompi_op_avx_3buff_sum_uint32_t_avx","ompi_op_avx_3buff_sum_uint32_t_avx2","ompi_op_avx_3buff_sum_uint32_t_avx512","ompi_op_avx_3buff_sum_uint64_t_avx","ompi_op_avx_3buff_sum_uint64_t_avx2","ompi_op_avx_3buff_sum_uint64_t_avx512","ompi_op_avx_3buff_sum_uint8_t_avx","ompi_op_avx_3buff_sum_uint8_t_avx2","ompi_op_avx_3buff_sum_uint8_t_avx512","ompi_op_avx_3buff_xor_int16_t_avx","ompi_op_avx_3buff_xor_int16_t_avx2","ompi_op_avx_3buff_xor_int16_t_avx512","ompi_op_avx_3buff_xor_int32_t_avx","ompi_op_avx_3buff_xor_int32_t_avx2","ompi_op_avx_3buff_xor_int32_t_avx512","ompi_op_avx_3buff_xor_int64_t_avx","ompi_op_avx_3buff_xor_int64_t_avx2","ompi_op_avx_3buff_xor_int64_t_avx512","ompi_op_avx_3buff_xor_int8_t_avx","ompi_op_avx_3buff_xor_int8_t_avx2","ompi_op_avx_3buff_xor_int8_t_avx512","ompi_op_avx_3buff_xor_uint16_t_avx","ompi_op_avx_3buff_xor_uint16_t_avx2","ompi_op_avx_3buff_xor_uint16_t_avx512","ompi_op_avx_3buff_xor_uint32_t_avx","ompi_op_avx_3buff_xor_uint32_t_avx2","ompi_op_avx_3buff_xor_uint32_t_avx512","ompi_op_avx_3buff_xor_uint64_t_avx","ompi_op_avx_3buff_xor_uint64_t_avx2","ompi_op_avx_3buff_xor_uint64_t_avx512","ompi_op_avx_3buff_xor_uint8_t_avx","ompi_op_avx_3buff_xor_uint8_t_avx2","ompi_op_avx_3buff_xor_uint8_t_avx512","ompi_op_base_2buff_band_byte","ompi_op_base_2buff_band_fortran_integer","ompi_op_base_2buff_band_fortran_integer1","ompi_op_base_2buff_band_fortran_integer2","ompi_op_base_2buff_band_fortran_integer4","ompi_op_base_2buff_band_fortran_integer8","ompi_op_base_2buff_band_int16_t","ompi_op_base_2buff_band_int32_t","ompi_op_base_2buff_band_int64_t","ompi_op_base_2buff_band_int8_t","ompi_op_base_2buff_band_long","ompi_op_base_2buff_band_uint16_t","ompi_op_base_2buff_band_uint32_t","ompi_op_base_2buff_band_uint64_t","ompi_op_base_2buff_band_uint8_t","ompi_op_base_2buff_band_unsigned_long","ompi_op_base_2buff_bor_byte","ompi_op_base_2buff_bor_fortran_integer","ompi_op_base_2buff_bor_fortran_integer1","ompi_op_base_2buff_bor_fortran_integer2","ompi_op_base_2buff_bor_fortran_integer4","ompi_op_base_2buff_bor_fortran_integer8","ompi_op_base_2buff_bor_int16_t","ompi_op_base_2buff_bor_int32_t","ompi_op_base_2buff_bor_int64_t","ompi_op_base_2buff_bor_int8_t","ompi_op_base_2buff_bor_long","ompi_op_base_2buff_bor_uint16_t","ompi_op_base_2buff_bor_uint32_t","ompi_op_base_2buff_bor_uint64_t","ompi_op_base_2buff_bor_uint8_t","ompi_op_base_2buff_bor_unsigned_long","ompi_op_base_2buff_bxor_byte","ompi_op_base_2buff_bxor_fortran_integer","ompi_op_base_2buff_bxor_fortran_integer1","ompi_op_base_2buff_bxor_fortran_integer2","ompi_op_base_2buff_bxor_fortran_integer4","ompi_op_base_2buff_bxor_fortran_integer8","ompi_op_base_2buff_bxor_int16_t","ompi_op_base_2buff_bxor_int32_t","ompi_op_base_2buff_bxor_int64_t","ompi_op_base_2buff_bxor_int8_t","ompi_op_base_2buff_bxor_long","ompi_op_base_2buff_bxor_uint16_t","ompi_op_base_2buff_bxor_uint32_t","ompi_op_base_2buff_bxor_uint64_t","ompi_op_base_2buff_bxor_uint8_t","ompi_op_base_2buff_bxor_unsigned_long","ompi_op_base_2buff_land_bool","ompi_op_base_2buff_land_fortran_logical","ompi_op_base_2buff_land_int16_t","ompi_op_base_2buff_land_int32_t","ompi_op_base_2buff_land_int64_t","ompi_op_base_2buff_land_int8_t","ompi_op_base_2buff_land_long","ompi_op_base_2buff_land_uint16_t","ompi_op_base_2buff_land_uint32_t","ompi_op_base_2buff_land_uint64_t","ompi_op_base_2buff_land_uint8_t","ompi_op_base_2buff_land_unsigned_long","ompi_op_base_2buff_lor_bool","ompi_op_base_2buff_lor_fortran_logical","ompi_op_base_2buff_lor_int16_t","ompi_op_base_2buff_lor_int32_t","ompi_op_base_2buff_lor_int64_t","ompi_op_base_2buff_lor_int8_t","ompi_op_base_2buff_lor_long","ompi_op_base_2buff_lor_uint16_t","ompi_op_base_2buff_lor_uint32_t","ompi_op_base_2buff_lor_uint64_t","ompi_op_base_2buff_lor_uint8_t","ompi_op_base_2buff_lor_unsigned_long","ompi_op_base_2buff_lxor_bool","ompi_op_base_2buff_lxor_fortran_logical","ompi_op_base_2buff_lxor_int16_t","ompi_op_base_2buff_lxor_int32_t","ompi_op_base_2buff_lxor_int64_t","ompi_op_base_2buff_lxor_int8_t","ompi_op_base_2buff_lxor_long","ompi_op_base_2buff_lxor_uint16_t","ompi_op_base_2buff_lxor_uint32_t","ompi_op_base_2buff_lxor_uint64_t","ompi_op_base_2buff_lxor_uint8_t","ompi_op_base_2buff_lxor_unsigned_long","ompi_op_base_2buff_max_double","ompi_op_base_2buff_max_float","ompi_op_base_2buff_max_fortran_double_precision","ompi_op_base_2buff_max_fortran_integer","ompi_op_base_2buff_max_fortran_integer1","ompi_op_base_2buff_max_fortran_integer2","ompi_op_base_2buff_max_fortran_integer4","ompi_op_base_2buff_max_fortran_integer8","ompi_op_base_2buff_max_fortran_real","ompi_op_base_2buff_max_fortran_real16","ompi_op_base_2buff_max_fortran_real4","ompi_op_base_2buff_max_fortran_real8","ompi_op_base_2buff_max_int16_t","ompi_op_base_2buff_max_int32_t","ompi_op_base_2buff_max_int64_t","ompi_op_base_2buff_max_int8_t","ompi_op_base_2buff_max_long","ompi_op_base_2buff_max_long_double","ompi_op_base_2buff_max_uint16_t","ompi_op_base_2buff_max_uint32_t","ompi_op_base_2buff_max_uint64_t","ompi_op_base_2buff_max_uint8_t","ompi_op_base_2buff_max_unsigned_long","ompi_op_base_2buff_maxloc_2double_precision","ompi_op_base_2buff_maxloc_2int","ompi_op_base_2buff_maxloc_2integer","ompi_op_base_2buff_maxloc_2real","ompi_op_base_2buff_maxloc_double_int","ompi_op_base_2buff_maxloc_float_int","ompi_op_base_2buff_maxloc_long_double_int","ompi_op_base_2buff_maxloc_long_int","ompi_op_base_2buff_maxloc_short_int","ompi_op_base_2buff_min_double","ompi_op_base_2buff_min_float","ompi_op_base_2buff_min_fortran_double_precision","ompi_op_base_2buff_min_fortran_integer","ompi_op_base_2buff_min_fortran_integer1","ompi_op_base_2buff_min_fortran_integer2","ompi_op_base_2buff_min_fortran_integer4","ompi_op_base_2buff_min_fortran_integer8","ompi_op_base_2buff_min_fortran_real","ompi_op_base_2buff_min_fortran_real16","ompi_op_base_2buff_min_fortran_real4","ompi_op_base_2buff_min_fortran_real8","ompi_op_base_2buff_min_int16_t","ompi_op_base_2buff_min_int32_t","ompi_op_base_2buff_min_int64_t","ompi_op_base_2buff_min_int8_t","ompi_op_base_2buff_min_long","ompi_op_base_2buff_min_long_double","ompi_op_base_2buff_min_uint16_t","ompi_op_base_2buff_min_uint32_t","ompi_op_base_2buff_min_uint64_t","ompi_op_base_2buff_min_uint8_t","ompi_op_base_2buff_min_unsigned_long","ompi_op_base_2buff_minloc_2double_precision","ompi_op_base_2buff_minloc_2int","ompi_op_base_2buff_minloc_2integer","ompi_op_base_2buff_minloc_2real","ompi_op_base_2buff_minloc_double_int","ompi_op_base_2buff_minloc_float_int","ompi_op_base_2buff_minloc_long_double_int","ompi_op_base_2buff_minloc_long_int","ompi_op_base_2buff_minloc_short_int","ompi_op_base_2buff_prod_c_double_complex","ompi_op_base_2buff_prod_c_float_complex","ompi_op_base_2buff_prod_c_long_double_complex","ompi_op_base_2buff_prod_double","ompi_op_base_2buff_prod_float","ompi_op_base_2buff_prod_fortran_double_precision","ompi_op_base_2buff_prod_fortran_integer","ompi_op_base_2buff_prod_fortran_integer1","ompi_op_base_2buff_prod_fortran_integer2","ompi_op_base_2buff_prod_fortran_integer4","ompi_op_base_2buff_prod_fortran_integer8","ompi_op_base_2buff_prod_fortran_real","ompi_op_base_2buff_prod_fortran_real16","ompi_op_base_2buff_prod_fortran_real4","ompi_op_base_2buff_prod_fortran_real8","ompi_op_base_2buff_prod_int16_t","ompi_op_base_2buff_prod_int32_t","ompi_op_base_2buff_prod_int64_t","ompi_op_base_2buff_prod_int8_t","ompi_op_base_2buff_prod_long","ompi_op_base_2buff_prod_long_double","ompi_op_base_2buff_prod_uint16_t","ompi_op_base_2buff_prod_uint32_t","ompi_op_base_2buff_prod_uint64_t","ompi_op_base_2buff_prod_uint8_t","ompi_op_base_2buff_prod_unsigned_long","ompi_op_base_2buff_sum_c_double_complex","ompi_op_base_2buff_sum_c_float_complex","ompi_op_base_2buff_sum_c_long_double_complex","ompi_op_base_2buff_sum_double","ompi_op_base_2buff_sum_float","ompi_op_base_2buff_sum_fortran_double_precision","ompi_op_base_2buff_sum_fortran_integer","ompi_op_base_2buff_sum_fortran_integer1","ompi_op_base_2buff_sum_fortran_integer2","ompi_op_base_2buff_sum_fortran_integer4","ompi_op_base_2buff_sum_fortran_integer8","ompi_op_base_2buff_sum_fortran_real","ompi_op_base_2buff_sum_fortran_real16","ompi_op_base_2buff_sum_fortran_real4","ompi_op_base_2buff_sum_fortran_real8","ompi_op_base_2buff_sum_int16_t","ompi_op_base_2buff_sum_int32_t","ompi_op_base_2buff_sum_int64_t","ompi_op_base_2buff_sum_int8_t","ompi_op_base_2buff_sum_long","ompi_op_base_2buff_sum_long_double","ompi_op_base_2buff_sum_uint16_t","ompi_op_base_2buff_sum_uint32_t","ompi_op_base_2buff_sum_uint64_t","ompi_op_base_2buff_sum_uint8_t","ompi_op_base_2buff_sum_unsigned_long","ompi_op_base_3buff_band_byte","ompi_op_base_3buff_band_fortran_integer","ompi_op_base_3buff_band_fortran_integer1","ompi_op_base_3buff_band_fortran_integer2","ompi_op_base_3buff_band_fortran_integer4","ompi_op_base_3buff_band_fortran_integer8","ompi_op_base_3buff_band_int16_t","ompi_op_base_3buff_band_int32_t","ompi_op_base_3buff_band_int64_t","ompi_op_base_3buff_band_int8_t","ompi_op_base_3buff_band_long","ompi_op_base_3buff_band_uint16_t","ompi_op_base_3buff_band_uint32_t","ompi_op_base_3buff_band_uint64_t","ompi_op_base_3buff_band_uint8_t","ompi_op_base_3buff_band_unsigned_long","ompi_op_base_3buff_bor_byte","ompi_op_base_3buff_bor_fortran_integer","ompi_op_base_3buff_bor_fortran_integer1","ompi_op_base_3buff_bor_fortran_integer2","ompi_op_base_3buff_bor_fortran_integer4","ompi_op_base_3buff_bor_fortran_integer8","ompi_op_base_3buff_bor_int16_t","ompi_op_base_3buff_bor_int32_t","ompi_op_base_3buff_bor_int64_t","ompi_op_base_3buff_bor_int8_t","ompi_op_base_3buff_bor_long","ompi_op_base_3buff_bor_uint16_t","ompi_op_base_3buff_bor_uint32_t","ompi_op_base_3buff_bor_uint64_t","ompi_op_base_3buff_bor_uint8_t","ompi_op_base_3buff_bor_unsigned_long","ompi_op_base_3buff_bxor_byte","ompi_op_base_3buff_bxor_fortran_integer","ompi_op_base_3buff_bxor_fortran_integer1","ompi_op_base_3buff_bxor_fortran_integer2","ompi_op_base_3buff_bxor_fortran_integer4","ompi_op_base_3buff_bxor_fortran_integer8","ompi_op_base_3buff_bxor_int16_t","ompi_op_base_3buff_bxor_int32_t","ompi_op_base_3buff_bxor_int64_t","ompi_op_base_3buff_bxor_int8_t","ompi_op_base_3buff_bxor_long","ompi_op_base_3buff_bxor_uint16_t","ompi_op_base_3buff_bxor_uint32_t","ompi_op_base_3buff_bxor_uint64_t","ompi_op_base_3buff_bxor_uint8_t","ompi_op_base_3buff_bxor_unsigned_long","ompi_op_base_3buff_land_bool","ompi_op_base_3buff_land_fortran_logical","ompi_op_base_3buff_land_int16_t","ompi_op_base_3buff_land_int32_t","ompi_op_base_3buff_land_int64_t","ompi_op_base_3buff_land_int8_t","ompi_op_base_3buff_land_long","ompi_op_base_3buff_land_uint16_t","ompi_op_base_3buff_land_uint32_t","ompi_op_base_3buff_land_uint64_t","ompi_op_base_3buff_land_uint8_t","ompi_op_base_3buff_land_unsigned_long","ompi_op_base_3buff_lor_bool","ompi_op_base_3buff_lor_fortran_logical","ompi_op_base_3buff_lor_int16_t","ompi_op_base_3buff_lor_int32_t","ompi_op_base_3buff_lor_int64_t","ompi_op_base_3buff_lor_int8_t","ompi_op_base_3buff_lor_long","ompi_op_base_3buff_lor_uint16_t","ompi_op_base_3buff_lor_uint32_t","ompi_op_base_3buff_lor_uint64_t","ompi_op_base_3buff_lor_uint8_t","ompi_op_base_3buff_lor_unsigned_long","ompi_op_base_3buff_lxor_bool","ompi_op_base_3buff_lxor_fortran_logical","ompi_op_base_3buff_lxor_int16_t","ompi_op_base_3buff_lxor_int32_t","ompi_op_base_3buff_lxor_int64_t","ompi_op_base_3buff_lxor_int8_t","ompi_op_base_3buff_lxor_long","ompi_op_base_3buff_lxor_uint16_t","ompi_op_base_3buff_lxor_uint32_t","ompi_op_base_3buff_lxor_uint64_t","ompi_op_base_3buff_lxor_uint8_t","ompi_op_base_3buff_lxor_unsigned_long","ompi_op_base_3buff_max_double","ompi_op_base_3buff_max_float","ompi_op_base_3buff_max_fortran_double_precision","ompi_op_base_3buff_max_fortran_integer","ompi_op_base_3buff_max_fortran_integer1","ompi_op_base_3buff_max_fortran_integer2","ompi_op_base_3buff_max_fortran_integer4","ompi_op_base_3buff_max_fortran_integer8","ompi_op_base_3buff_max_fortran_real","ompi_op_base_3buff_max_fortran_real16","ompi_op_base_3buff_max_fortran_real4","ompi_op_base_3buff_max_fortran_real8","ompi_op_base_3buff_max_int16_t","ompi_op_base_3buff_max_int32_t","ompi_op_base_3buff_max_int64_t","ompi_op_base_3buff_max_int8_t","ompi_op_base_3buff_max_long","ompi_op_base_3buff_max_long_double","ompi_op_base_3buff_max_uint16_t","ompi_op_base_3buff_max_uint32_t","ompi_op_base_3buff_max_uint64_t","ompi_op_base_3buff_max_uint8_t","ompi_op_base_3buff_max_unsigned_long","ompi_op_base_3buff_maxloc_2double_precision","ompi_op_base_3buff_maxloc_2int","ompi_op_base_3buff_maxloc_2integer","ompi_op_base_3buff_maxloc_2real","ompi_op_base_3buff_maxloc_double_int","ompi_op_base_3buff_maxloc_float_int","ompi_op_base_3buff_maxloc_long_double_int","ompi_op_base_3buff_maxloc_long_int","ompi_op_base_3buff_maxloc_short_int","ompi_op_base_3buff_min_double","ompi_op_base_3buff_min_float","ompi_op_base_3buff_min_fortran_double_precision","ompi_op_base_3buff_min_fortran_integer","ompi_op_base_3buff_min_fortran_integer1","ompi_op_base_3buff_min_fortran_integer2","ompi_op_base_3buff_min_fortran_integer4","ompi_op_base_3buff_min_fortran_integer8","ompi_op_base_3buff_min_fortran_real","ompi_op_base_3buff_min_fortran_real16","ompi_op_base_3buff_min_fortran_real4","ompi_op_base_3buff_min_fortran_real8","ompi_op_base_3buff_min_int16_t","ompi_op_base_3buff_min_int32_t","ompi_op_base_3buff_min_int64_t","ompi_op_base_3buff_min_int8_t","ompi_op_base_3buff_min_long","ompi_op_base_3buff_min_long_double","ompi_op_base_3buff_min_uint16_t","ompi_op_base_3buff_min_uint32_t","ompi_op_base_3buff_min_uint64_t","ompi_op_base_3buff_min_uint8_t","ompi_op_base_3buff_min_unsigned_long","ompi_op_base_3buff_minloc_2double_precision","ompi_op_base_3buff_minloc_2int","ompi_op_base_3buff_minloc_2integer","ompi_op_base_3buff_minloc_2real","ompi_op_base_3buff_minloc_double_int","ompi_op_base_3buff_minloc_float_int","ompi_op_base_3buff_minloc_long_double_int","ompi_op_base_3buff_minloc_long_int","ompi_op_base_3buff_minloc_short_int","ompi_op_base_3buff_prod_c_double_complex","ompi_op_base_3buff_prod_c_float_complex","ompi_op_base_3buff_prod_c_long_double_complex","ompi_op_base_3buff_prod_double","ompi_op_base_3buff_prod_float","ompi_op_base_3buff_prod_fortran_double_precision","ompi_op_base_3buff_prod_fortran_integer","ompi_op_base_3buff_prod_fortran_integer1","ompi_op_base_3buff_prod_fortran_integer2","ompi_op_base_3buff_prod_fortran_integer4","ompi_op_base_3buff_prod_fortran_integer8","ompi_op_base_3buff_prod_fortran_real","ompi_op_base_3buff_prod_fortran_real16","ompi_op_base_3buff_prod_fortran_real4","ompi_op_base_3buff_prod_fortran_real8","ompi_op_base_3buff_prod_int16_t","ompi_op_base_3buff_prod_int32_t","ompi_op_base_3buff_prod_int64_t","ompi_op_base_3buff_prod_int8_t","ompi_op_base_3buff_prod_long","ompi_op_base_3buff_prod_long_double","ompi_op_base_3buff_prod_uint16_t","ompi_op_base_3buff_prod_uint32_t","ompi_op_base_3buff_prod_uint64_t","ompi_op_base_3buff_prod_uint8_t","ompi_op_base_3buff_prod_unsigned_long","ompi_op_base_3buff_sum_c_double_complex","ompi_op_base_3buff_sum_c_float_complex","ompi_op_base_3buff_sum_c_long_double_complex","ompi_op_base_3buff_sum_double","ompi_op_base_3buff_sum_float","ompi_op_base_3buff_sum_fortran_double_precision","ompi_op_base_3buff_sum_fortran_integer","ompi_op_base_3buff_sum_fortran_integer1","ompi_op_base_3buff_sum_fortran_integer2","ompi_op_base_3buff_sum_fortran_integer4","ompi_op_base_3buff_sum_fortran_integer8","ompi_op_base_3buff_sum_fortran_real","ompi_op_base_3buff_sum_fortran_real16","ompi_op_base_3buff_sum_fortran_real4","ompi_op_base_3buff_sum_fortran_real8","ompi_op_base_3buff_sum_int16_t","ompi_op_base_3buff_sum_int32_t","ompi_op_base_3buff_sum_int64_t","ompi_op_base_3buff_sum_int8_t","ompi_op_base_3buff_sum_long","ompi_op_base_3buff_sum_long_double","ompi_op_base_3buff_sum_uint16_t","ompi_op_base_3buff_sum_uint32_t","ompi_op_base_3buff_sum_uint64_t","ompi_op_base_3buff_sum_uint8_t","ompi_op_base_3buff_sum_unsigned_long","ompi_op_base_find_available","ompi_op_base_op_select","ompi_op_construct","ompi_op_create_user","ompi_op_destruct","ompi_op_finalize","ompi_op_init","ompi_op_reduce:0x103bf0","ompi_op_reduce:0x105a40","ompi_op_reduce:0x109a40","ompi_op_reduce:0x11a690","ompi_op_reduce:0x11d440","ompi_op_reduce:0x128cd0","ompi_op_reduce:0x153a70","ompi_op_reduce:0x15a800","ompi_op_reduce:0x15ce80","ompi_op_reduce:0x15ed30","ompi_op_reduce:0x1642a0","ompi_op_reduce:0x1c2ff0","ompi_op_reduce:0x1ce8e0","ompi_op_reduce:0x1e8750","ompi_op_reduce:0x5eb80","ompi_op_reduce:0xef780","ompi_op_reduce:0xf6ab0","ompi_op_reduce:0xfc2b0","ompi_op_reduce:0xff940","ompi_op_set_java_callback","ompi_osc_base_finalize","ompi_osc_base_find_available","ompi_osc_base_get_primitive_type_info","ompi_osc_base_process_op","ompi_osc_base_select","ompi_osc_base_set_memory_alignment","ompi_osc_base_sndrcv_op","ompi_osc_get_data_blocking","ompi_osc_get_data_complete","ompi_osc_module_add_peer","ompi_osc_monitoring_portals4_accumulate","ompi_osc_monitoring_portals4_attach","ompi_osc_monitoring_portals4_compare_and_swap","ompi_osc_monitoring_portals4_complete","ompi_osc_monitoring_portals4_detach","ompi_osc_monitoring_portals4_fence","ompi_osc_monitoring_portals4_fetch_and_op","ompi_osc_monitoring_portals4_flush","ompi_osc_monitoring_portals4_flush_all","ompi_osc_monitoring_portals4_flush_local","ompi_osc_monitoring_portals4_flush_local_all","ompi_osc_monitoring_portals4_free","ompi_osc_monitoring_portals4_get","ompi_osc_monitoring_portals4_get_accumulate","ompi_osc_monitoring_portals4_lock","ompi_osc_monitoring_portals4_lock_all","ompi_osc_monitoring_portals4_post","ompi_osc_monitoring_portals4_put","ompi_osc_monitoring_portals4_raccumulate","ompi_osc_monitoring_portals4_rget","ompi_osc_monitoring_portals4_rget_accumulate","ompi_osc_monitoring_portals4_rput","ompi_osc_monitoring_portals4_set_template","ompi_osc_monitoring_portals4_start","ompi_osc_monitoring_portals4_sync","ompi_osc_monitoring_portals4_test","ompi_osc_monitoring_portals4_unlock","ompi_osc_monitoring_portals4_unlock_all","ompi_osc_monitoring_portals4_wait","ompi_osc_monitoring_rdma_accumulate","ompi_osc_monitoring_rdma_attach","ompi_osc_monitoring_rdma_compare_and_swap","ompi_osc_monitoring_rdma_complete","ompi_osc_monitoring_rdma_detach","ompi_osc_monitoring_rdma_fence","ompi_osc_monitoring_rdma_fetch_and_op","ompi_osc_monitoring_rdma_flush","ompi_osc_monitoring_rdma_flush_all","ompi_osc_monitoring_rdma_flush_local","ompi_osc_monitoring_rdma_flush_local_all","ompi_osc_monitoring_rdma_free","ompi_osc_monitoring_rdma_get","ompi_osc_monitoring_rdma_get_accumulate","ompi_osc_monitoring_rdma_lock","ompi_osc_monitoring_rdma_lock_all","ompi_osc_monitoring_rdma_post","ompi_osc_monitoring_rdma_put","ompi_osc_monitoring_rdma_raccumulate","ompi_osc_monitoring_rdma_rget","ompi_osc_monitoring_rdma_rget_accumulate","ompi_osc_monitoring_rdma_rput","ompi_osc_monitoring_rdma_set_template","ompi_osc_monitoring_rdma_start","ompi_osc_monitoring_rdma_sync","ompi_osc_monitoring_rdma_test","ompi_osc_monitoring_rdma_unlock","ompi_osc_monitoring_rdma_unlock_all","ompi_osc_monitoring_rdma_wait","ompi_osc_monitoring_sm_accumulate","ompi_osc_monitoring_sm_attach","ompi_osc_monitoring_sm_compare_and_swap","ompi_osc_monitoring_sm_complete","ompi_osc_monitoring_sm_detach","ompi_osc_monitoring_sm_fence","ompi_osc_monitoring_sm_fetch_and_op","ompi_osc_monitoring_sm_flush","ompi_osc_monitoring_sm_flush_all","ompi_osc_monitoring_sm_flush_local","ompi_osc_monitoring_sm_flush_local_all","ompi_osc_monitoring_sm_free","ompi_osc_monitoring_sm_get","ompi_osc_monitoring_sm_get_accumulate","ompi_osc_monitoring_sm_lock","ompi_osc_monitoring_sm_lock_all","ompi_osc_monitoring_sm_post","ompi_osc_monitoring_sm_put","ompi_osc_monitoring_sm_raccumulate","ompi_osc_monitoring_sm_rget","ompi_osc_monitoring_sm_rget_accumulate","ompi_osc_monitoring_sm_rput","ompi_osc_monitoring_sm_set_template","ompi_osc_monitoring_sm_start","ompi_osc_monitoring_sm_sync","ompi_osc_monitoring_sm_test","ompi_osc_monitoring_sm_unlock","ompi_osc_monitoring_sm_unlock_all","ompi_osc_monitoring_sm_wait","ompi_osc_monitoring_ucx_accumulate","ompi_osc_monitoring_ucx_attach","ompi_osc_monitoring_ucx_compare_and_swap","ompi_osc_monitoring_ucx_complete","ompi_osc_monitoring_ucx_detach","ompi_osc_monitoring_ucx_fence","ompi_osc_monitoring_ucx_fetch_and_op","ompi_osc_monitoring_ucx_flush","ompi_osc_monitoring_ucx_flush_all","ompi_osc_monitoring_ucx_flush_local","ompi_osc_monitoring_ucx_flush_local_all","ompi_osc_monitoring_ucx_free","ompi_osc_monitoring_ucx_get","ompi_osc_monitoring_ucx_get_accumulate","ompi_osc_monitoring_ucx_lock","ompi_osc_monitoring_ucx_lock_all","ompi_osc_monitoring_ucx_post","ompi_osc_monitoring_ucx_put","ompi_osc_monitoring_ucx_raccumulate","ompi_osc_monitoring_ucx_rget","ompi_osc_monitoring_ucx_rget_accumulate","ompi_osc_monitoring_ucx_rput","ompi_osc_monitoring_ucx_set_template","ompi_osc_monitoring_ucx_start","ompi_osc_monitoring_ucx_sync","ompi_osc_monitoring_ucx_test","ompi_osc_monitoring_ucx_unlock","ompi_osc_monitoring_ucx_unlock_all","ompi_osc_monitoring_ucx_wait","ompi_osc_rdma_accumulate","ompi_osc_rdma_add_attachment","ompi_osc_rdma_atomic_complete","ompi_osc_rdma_attach","ompi_osc_rdma_btl_op.constprop.0","ompi_osc_rdma_cas_put_complete","ompi_osc_rdma_check_posts","ompi_osc_rdma_compare_and_swap","ompi_osc_rdma_compare_and_swap.cold","ompi_osc_rdma_complete_atomic","ompi_osc_rdma_component_finalize","ompi_osc_rdma_component_init","ompi_osc_rdma_component_query","ompi_osc_rdma_component_register","ompi_osc_rdma_component_select","ompi_osc_rdma_demand_lock_peer","ompi_osc_rdma_detach","ompi_osc_rdma_fence_atomic","ompi_osc_rdma_fetch_and_op","ompi_osc_rdma_find_dynamic_region","ompi_osc_rdma_flush","ompi_osc_rdma_flush_all","ompi_osc_rdma_flush_local","ompi_osc_rdma_flush_local_all","ompi_osc_rdma_frag_alloc","ompi_osc_rdma_frag_alloc.constprop.0:0x1dafc0","ompi_osc_rdma_frag_alloc.constprop.0:0x1dd090","ompi_osc_rdma_frag_alloc.constprop.0:0x1e0770","ompi_osc_rdma_free","ompi_osc_rdma_gacc_amo.constprop.0","ompi_osc_rdma_gacc_master","ompi_osc_rdma_gacc_master_cleanup","ompi_osc_rdma_gacc_master_cleanup.cold","ompi_osc_rdma_get","ompi_osc_rdma_get_accumulate","ompi_osc_rdma_get_complete","ompi_osc_rdma_get_contig","ompi_osc_rdma_get_partial","ompi_osc_rdma_get_peers","ompi_osc_rdma_handle_fini","ompi_osc_rdma_handle_init","ompi_osc_rdma_initialize_region.isra.0","ompi_osc_rdma_lock_all_atomic","ompi_osc_rdma_lock_atomic","ompi_osc_rdma_lock_atomic_internal","ompi_osc_rdma_lock_release_exclusive.constprop.0.isra.0","ompi_osc_rdma_lock_release_exclusive.constprop.0.isra.0.cold","ompi_osc_rdma_master_noncontig","ompi_osc_rdma_new_peer","ompi_osc_rdma_new_peer.cold","ompi_osc_rdma_peer_accumulate_cleanup","ompi_osc_rdma_peer_accumulate_cleanup.cold","ompi_osc_rdma_peer_basic_construct","ompi_osc_rdma_peer_basic_destruct","ompi_osc_rdma_peer_btl_endpoint","ompi_osc_rdma_peer_construct","ompi_osc_rdma_peer_destruct","ompi_osc_rdma_peer_dynamic_construct","ompi_osc_rdma_peer_dynamic_destruct","ompi_osc_rdma_peer_lookup","ompi_osc_rdma_peer_setup","ompi_osc_rdma_pending_op_construct","ompi_osc_rdma_pending_op_destruct","ompi_osc_rdma_post_atomic","ompi_osc_rdma_put","ompi_osc_rdma_put_complete","ompi_osc_rdma_put_complete_flush","ompi_osc_rdma_put_contig","ompi_osc_rdma_pvar_read","ompi_osc_rdma_raccumulate","ompi_osc_rdma_release_peers","ompi_osc_rdma_request_complete:0x1c62b0","ompi_osc_rdma_request_complete:0x1cee10","ompi_osc_rdma_rget","ompi_osc_rdma_rget_accumulate","ompi_osc_rdma_rget_accumulate_internal","ompi_osc_rdma_rget_accumulate_internal.cold","ompi_osc_rdma_rput","ompi_osc_rdma_set_no_lock_info","ompi_osc_rdma_start_atomic","ompi_osc_rdma_sync","ompi_osc_rdma_sync_allocate","ompi_osc_rdma_sync_constructor","ompi_osc_rdma_sync_destructor","ompi_osc_rdma_sync_pscw_peer","ompi_osc_rdma_sync_return","ompi_osc_rdma_test_atomic","ompi_osc_rdma_unlock_all_atomic","ompi_osc_rdma_unlock_all_atomic.cold","ompi_osc_rdma_unlock_atomic","ompi_osc_rdma_unlock_atomic.cold","ompi_osc_rdma_wait_atomic","ompi_osc_sm_accumulate","ompi_osc_sm_attach","ompi_osc_sm_compare_and_swap","ompi_osc_sm_complete","ompi_osc_sm_detach","ompi_osc_sm_fence","ompi_osc_sm_fetch_and_op","ompi_osc_sm_flush","ompi_osc_sm_flush_all","ompi_osc_sm_flush_local","ompi_osc_sm_flush_local_all","ompi_osc_sm_free","ompi_osc_sm_get","ompi_osc_sm_get_accumulate","ompi_osc_sm_get_info","ompi_osc_sm_group_ranks","ompi_osc_sm_lock","ompi_osc_sm_lock_all","ompi_osc_sm_post","ompi_osc_sm_put","ompi_osc_sm_raccumulate","ompi_osc_sm_rget","ompi_osc_sm_rget_accumulate","ompi_osc_sm_rput","ompi_osc_sm_set_info","ompi_osc_sm_shared_query","ompi_osc_sm_start","ompi_osc_sm_sync","ompi_osc_sm_test","ompi_osc_sm_unlock","ompi_osc_sm_unlock_all","ompi_osc_sm_wait","ompi_pmix_print_id","ompi_pmix_print_name","ompi_pmix_snprintf_jobid","ompi_pml_ob1_append_frag_to_ordered_list","ompi_pml_ob1_check_cantmatch_for_match","ompi_pml_v_output_close","ompi_pml_v_output_open","ompi_proc_all","ompi_proc_allocate","ompi_proc_compare_vid","ompi_proc_complete_init","ompi_proc_complete_init_single","ompi_proc_construct","ompi_proc_destruct","ompi_proc_finalize","ompi_proc_find","ompi_proc_find_and_add","ompi_proc_for_name","ompi_proc_get_allocated","ompi_proc_init","ompi_proc_lookup","ompi_proc_pack","ompi_proc_refresh","ompi_proc_self","ompi_proc_unpack","ompi_proc_world","ompi_proc_world_size","ompi_rbcast_bml_send_complete_cb","ompi_report_comm_methods","ompi_request_check_same_instance","ompi_request_construct","ompi_request_default_test","ompi_request_default_test_all","ompi_request_default_test_any","ompi_request_default_test_some","ompi_request_default_wait","ompi_request_default_wait_all","ompi_request_default_wait_any","ompi_request_default_wait_some","ompi_request_destruct","ompi_request_empty_free","ompi_request_finalize","ompi_request_init","ompi_request_is_failed_fn","ompi_request_null_cancel","ompi_request_null_free","ompi_request_persistent_noop_create","ompi_request_persistent_noop_free","ompi_request_wait_completion:0x1f3e20","ompi_request_wait_completion:0x1f56c0","ompi_request_wait_completion:0x1f7c70","ompi_request_wait_completion:0x212b80","ompi_request_wait_completion:0x5d7f0","ompi_rounddown","ompi_rte_abort","ompi_rte_abort_peers","ompi_rte_breakpoint","ompi_rte_compare_name_fields","ompi_rte_convert_process_name_to_string","ompi_rte_convert_string_to_process_name","ompi_rte_finalize","ompi_rte_init","ompi_rte_wait_for_debugger","ompi_seq_tracker_check_duplicate","ompi_seq_tracker_construct","ompi_seq_tracker_copy","ompi_seq_tracker_destruct","ompi_seq_tracker_insert","ompi_set_group_rank","ompi_show_all_mca_params","ompi_test_fortran_constants","ompi_test_fortran_constants_","ompi_test_fortran_constants__","ompi_test_fortran_constants_f","ompi_type_dup_fn_f","ompi_type_null_copy_fn_f","ompi_type_null_delete_fn_f","ompi_vprotocol_pessimist_delivery_replay","ompi_vprotocol_pessimist_event_logger_connect","ompi_vprotocol_pessimist_event_logger_connect.cold","ompi_vprotocol_pessimist_event_logger_disconnect","ompi_vprotocol_pessimist_matching_replay","ompi_vprotocol_pessimist_sender_based_alloc","ompi_vprotocol_pessimist_sender_based_finalize","ompi_vprotocol_pessimist_sender_based_init","ompi_win_allocate","ompi_win_allocate_shared","ompi_win_construct","ompi_win_create","ompi_win_create_dynamic","ompi_win_destruct","ompi_win_dup_fn_f","ompi_win_finalize","ompi_win_free","ompi_win_get_name","ompi_win_group","ompi_win_init","ompi_win_null_copy_fn_f","ompi_win_null_delete_fn_f","ompi_win_set_name","ompit_opal_to_mpit_error","ompit_var_type_to_datatype","opal_free_list_wait","opal_free_list_wait.constprop.0:0x1f8730","opal_free_list_wait.constprop.0:0x1fbad0","open_component","optimize_arity","partial_aggregate_aff_mat","partial_exhaustive_search","partial_update_val","rankkeycompare","recurs_select_independent_groups","recv_cb:0x1613b0","recv_cb:0x1647d0","recv_request_pml_complete","reduce_inorder","register_component:0x1686b0","register_component:0x175430","register_component:0x17baa0","register_datarep","register_tm_clones","release_objs_callback","release_vecs_callback","request_cancel:0x127800","request_cancel:0x1da890","request_construct:0x127810","request_construct:0x1da8a0","request_free:0x127b50","request_free:0x1da910","request_start","result_request","retreive_size","retreive_size.cold","save_ptr","select_independent_groups","self_register","send_cb:0x160b60","send_cb:0x163f50","send_msg","send_msg.cold","send_request_pml_complete","set_handler_default","set_value","shuffle_init.constprop.0:0x16bb70","shuffle_init.constprop.0:0x16f180","sm_close","sm_module_enable","sm_register:0x108080","sm_register:0x215be0","sync_register","tab_cmp","tgt_to_tm","thread_loop","tm_bucket_grouping","tm_build_affinity_mat","tm_build_synthetic_topology","tm_build_tree_from_topology","tm_calloc","tm_close_verbose_file","tm_complete_obj_weight","tm_compute_mapping","tm_compute_nb_leaves_from_level","tm_create_work","tm_destroy_work","tm_display_arity","tm_display_other_heuristics","tm_display_solution","tm_display_tab","tm_display_topology","tm_enable_oversubscribing","tm_fiboTreeDel","tm_fiboTreeExit","tm_fiboTreeFree","tm_fiboTreeInit","tm_fiboTreeMin","tm_fill_tab","tm_finalize","tm_free","tm_free_affinity_mat","tm_free_solution","tm_free_topology","tm_free_tree","tm_genrand_int31","tm_genrand_int32","tm_genrand_real1","tm_genrand_real2","tm_genrand_real3","tm_genrand_res53","tm_get_exhaustive_search_flag","tm_get_greedy_flag","tm_get_local_topology_with_hwloc","tm_get_local_topology_with_hwloc.cold","tm_get_nb_threads","tm_get_numbering","tm_get_time","tm_get_verbose_level","tm_get_verbose_output","tm_in_tab","tm_init_genrand","tm_intCIV_get","tm_intCIV_init","tm_intCIV_isInitialized","tm_intCIV_set","tm_int_cmp_inc","tm_kPartitioning","tm_kpartition","tm_kpartition.cold","tm_kpartition_build_tree_from_topology","tm_load_aff_mat","tm_load_topology","tm_load_topology.cold","tm_malloc","tm_map_MPIPP","tm_map_Packed","tm_map_RR","tm_map_topology","tm_mem_check","tm_nb_processing_units","tm_new_affinity_mat","tm_open_verbose_file","tm_optimize_topology","tm_print_1D_tab","tm_realloc","tm_set_exhaustive_search_flag","tm_set_greedy_flag","tm_set_max_nb_threads","tm_set_node","tm_set_numbering","tm_set_verbose_level","tm_submit_work","tm_terminate_thread_pool","tm_test_main","tm_time_diff","tm_topology_add_binding_constraints","tm_topology_set_binding_constraints","tm_try_add_edge","tm_update_val","tm_wait_work_completion","treematch_module_constructor","treematch_module_destructor","tuned_close","tuned_module_enable","tuned_open","tuned_register","vprotocol_pessimist_delivery_log","vprotocol_pessimist_request_construct","vprotocol_pessimist_request_no_free","vulcan_register","weighted_degree_dsc","write_init","write_init.constprop.0"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/openmpi-5.0.7-y6xplmqxukxsuvvwnv2jqvztli5rhevm/lib/libmpi.so.40","include_offsets":false},{"type":2,"name":"ior","functions":["AllocResults","CheckFileSize","CheckForOutliers","CheckRunSettings","CompareBuffers","CountErrors","CreateTest","CurrentTimeString","DUMMY_Close","DUMMY_Create","DUMMY_Delete","DUMMY_Fsync","DUMMY_GetFileSize","DUMMY_Open","DUMMY_Sync","DUMMY_Xfer","DUMMY_access","DUMMY_check_params","DUMMY_getVersion","DUMMY_mkdir","DUMMY_options","DUMMY_rmdir","DUMMY_stat","DUMMY_statfs","DecodeDirective","DelaySecs","DestroyTest","DestroyTests","DisplayFreespace","DisplayOutliers","DistributeHints","DumpBuffer","ExtractHint","FailMessage","FillBuffer","FillIncompressibleBuffer","FreeResults","GetNumNodes","GetNumTasks","GetNumTasksOnNode0","GetOffsetArrayRandom","GetOffsetArraySequential","GetPlatformName","GetTestFileName","GetTimeStamp","HDF5_Access","HDF5_Close","HDF5_Create","HDF5_Delete","HDF5_Fsync","HDF5_GetFileSize","HDF5_GetVersion","HDF5_Open","HDF5_Xfer","HDF5_options","HogMemory","HumanReadable","InitTests","MMAP_Close","MMAP_Create","MMAP_Fsync","MMAP_Open","MMAP_Xfer","MMAP_options","MPIIO_Access","MPIIO_Close","MPIIO_Create","MPIIO_Delete","MPIIO_Fsync","MPIIO_GetFileSize","MPIIO_GetVersion","MPIIO_Open","MPIIO_Xfer","NodeMemoryStringToBytes","POSIX_Close","POSIX_Create","POSIX_Delete","POSIX_Fsync","POSIX_GetFileSize","POSIX_Mknod","POSIX_Open","POSIX_Sync","POSIX_Xfer","POSIX_options","PPDouble","ParseCommandLine","ParseFileName","ParseLine","PrependDir","PrintArrayEnd","PrintArrayNamedStart","PrintArrayStart","PrintEndSection","PrintHeader","PrintIndent","PrintKeyVal","PrintKeyValDouble","PrintKeyValEnd","PrintKeyValInt","PrintKeyValStart","PrintLongSummaryAllTests","PrintLongSummaryHeader","PrintLongSummaryOneOperation","PrintLongSummaryOneTest","PrintNamedArrayStart","PrintNamedSectionStart","PrintNextToken","PrintReducedResult","PrintRemoveTiming","PrintRepeatEnd","PrintRepeatStart","PrintShortSummary","PrintStartSection","PrintTableHeader","PrintTestEnds","PrintTimestamp","QueryNodeMapping","ReadConfigScript","ReadStoneWallingIterations","ReduceIterResults","Regex","RemoveFile","SeedRandGen","SetHints","SetupDataSet","ShowFileSystemSize","ShowHints","ShowSetup","ShowTestEnd","ShowTestStart","StoreStoneWallingIterations","StringToBytes","TestIoSys","TimeDeviation","ValidateTests","WriteOrRead","WriteOrReadSingle","WriteTimes","XferBuffersFree","XferBuffersSetup","__do_global_dtors_aux","aiori_count","aiori_default","aiori_finalize","aiori_get_version","aiori_initialize","aiori_posix_access","aiori_posix_mkdir","aiori_posix_rmdir","aiori_posix_stat","aiori_posix_statfs","aiori_select","aiori_supported_apis","airoi_create_all_module_options","airoi_update_module_options","aligned_buffer_alloc","aligned_buffer_free","bw_ops_values","bw_values","contains_only","createGlobalOptions","decodeDirectiveWrapper","deregister_tm_clones","file_hits_histogram","frame_dummy","init_IOR_Param_t","init_clock","init_or_fini","init_or_fini_internal","ior_main","ior_mmap_file","ior_run","main","malloc_and_touch","mean_of_array_of_doubles","ops_values","option_parse","option_parse_key_value","option_parse_str","option_parse_token","option_print_current","option_print_help","print_current_option_section","print_help_section","print_option_value","print_value","register_tm_clones","safeMalloc","set_o_direct_flag","string_to_bytes","test_time_elapsed","updateParsedOptions"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/ior-3.3.0-ip47j26fw7xxfftdzjvy2h36phgcuypv/bin/ior","include_offsets":false},{"type":1,"name":"lustre","functions":["cap_drop"]}] diff --git a/etc/datacrumbs/data/probes-invalid-haridev-lead.json b/etc/datacrumbs/data/probes-invalid-haridev-lead.json index e38f0cab..fd9f7654 100644 --- a/etc/datacrumbs/data/probes-invalid-haridev-lead.json +++ b/etc/datacrumbs/data/probes-invalid-haridev-lead.json @@ -1 +1 @@ -[{"type":4,"name":"custom1","functions":[],"bpf_path":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2},{"type":0,"name":"sys","functions":[]},{"type":1,"name":"os_page_cache","functions":[]},{"type":1,"name":"lustre","functions":["__pfx___pcc_inode_create","__pfx___pcc_layout_invalidate.part.0.constprop.0","__pfx___sa_make_ready","__pfx_alloc_rw_stats_info","__pfx_blocksize_show","__pfx_can_populate_pages.isra.0","__pfx_cap_drop","__pfx_cfs_cdebug_show.part.0.constprop.0:0x1b60","__pfx_cfs_cdebug_show.part.0.constprop.0:0x2b120","__pfx_cfs_cdebug_show.part.0.constprop.0:0x480c0","__pfx_cfs_cdebug_show.part.0.constprop.0:0x4b040","__pfx_cfs_cdebug_show.part.0.constprop.0:0x54740","__pfx_cfs_cdebug_show.part.0.constprop.0:0x57840","__pfx_cfs_cdebug_show.part.0.constprop.0:0x60ab0","__pfx_cfs_cdebug_show.part.0.constprop.0:0x612b0","__pfx_cfs_cdebug_show.part.0.constprop.0:0x6a0b0","__pfx_cfs_cdebug_show.part.0.constprop.0:0x6cad0","__pfx_cfs_cdebug_show.part.0.constprop.0:0x73ad0","__pfx_cfs_cdebug_show.part.0.constprop.0:0x7f620","__pfx_cfs_cdebug_show.part.0.constprop.0:0x82e50","__pfx_cfs_cdebug_show.part.0.constprop.0:0xea90","__pfx_cfs_cpt_bind_workqueue.constprop.0","__pfx_cfs_match_wildcard","__pfx_cfs_race.constprop.0","__pfx_checksums_show","__pfx_checksums_store","__pfx_cl_falloc","__pfx_cl_fid_build_gen","__pfx_cl_fid_build_ino","__pfx_cl_file_inode_init","__pfx_cl_get_grouplock","__pfx_cl_glimpse_lock","__pfx_cl_glimpse_size0","__pfx_cl_init_ea_size.isra.0","__pfx_cl_inode2vvp","__pfx_cl_inode_fini","__pfx_cl_io_get","__pfx_cl_ocd_update","__pfx_cl_put_grouplock","__pfx_cl_sb_fini","__pfx_cl_sb_init","__pfx_cl_setattr_ost","__pfx_cl_sync_file_range","__pfx_cleanup_module","__pfx_client_common_fill_super","__pfx_client_type_show","__pfx_copy_and_ct_start.constprop.0","__pfx_default_easize_show","__pfx_default_easize_store","__pfx_dirty_cnt","__pfx_do_release_page.constprop.0","__pfx_fast_read_show","__pfx_fast_read_store","__pfx_file_heat_show","__pfx_file_heat_store","__pfx_file_read_confine_iter","__pfx_filesfree_show","__pfx_filestotal_show","__pfx_foreign_symlink_alloc_and_copy_prefix","__pfx_foreign_symlink_enable_show","__pfx_foreign_symlink_enable_store","__pfx_foreign_symlink_prefix_show","__pfx_foreign_symlink_prefix_store","__pfx_foreign_symlink_upcall_info_store","__pfx_foreign_symlink_upcall_show","__pfx_foreign_symlink_upcall_store","__pfx_free_dentry_data","__pfx_fstype_show","__pfx_get_hsm_state.constprop.0","__pfx_get_uuid2int","__pfx_get_xattr_type","__pfx_has_same_mount_namespace","__pfx_heat_decay_percentage_show","__pfx_heat_decay_percentage_store","__pfx_heat_period_second_show","__pfx_heat_period_second_store","__pfx_init_module","__pfx_inode_cache_show","__pfx_inode_cache_store","__pfx_is_first_dirent","__pfx_kbytesavail_show","__pfx_kbytesfree_show","__pfx_kbytestotal_show","__pfx_kickoff_async_readahead","__pfx_lazystatfs_show","__pfx_lazystatfs_store","__pfx_ll_agl_add","__pfx_ll_agl_thread","__pfx_ll_agl_trigger","__pfx_ll_alloc_inode","__pfx_ll_atomic_open","__pfx_ll_authorize_statahead","__pfx_ll_check_swap_layouts_validity","__pfx_ll_cl_add","__pfx_ll_cl_find","__pfx_ll_cl_remove","__pfx_ll_clear_inode","__pfx_ll_close_inode_openhandle","__pfx_ll_compute_rootsquash_state","__pfx_ll_copy_user_md","__pfx_ll_create_it","__pfx_ll_create_nd","__pfx_ll_create_node","__pfx_ll_d_init","__pfx_ll_data_version","__pfx_ll_dcompare","__pfx_ll_ddelete","__pfx_ll_deauthorize_statahead","__pfx_ll_debugfs_register_super","__pfx_ll_debugfs_unregister_super","__pfx_ll_delete_inode","__pfx_ll_dentry_init_security","__pfx_ll_destroy_inode","__pfx_ll_dir_clear_lsm_md","__pfx_ll_dir_flush","__pfx_ll_dir_get_default_layout","__pfx_ll_dir_get_parent_fid","__pfx_ll_dir_getstripe","__pfx_ll_dir_getstripe_default","__pfx_ll_dir_ioctl","__pfx_ll_dir_open","__pfx_ll_dir_read","__pfx_ll_dir_release","__pfx_ll_dir_seek","__pfx_ll_dir_setdirstripe","__pfx_ll_dir_setstripe","__pfx_ll_direct_IO","__pfx_ll_direct_IO_impl","__pfx_ll_direct_rw_pages","__pfx_ll_dirty_page_discard_warn","__pfx_ll_display_extents_info","__pfx_ll_do_fiemap","__pfx_ll_do_tiny_write","__pfx_ll_dom_finish_open","__pfx_ll_dom_lock_cancel","__pfx_ll_dom_read_folio","__pfx_ll_dom_readpage","__pfx_ll_dput_later","__pfx_ll_drop_inode","__pfx_ll_dummy_context","__pfx_ll_empty_dir","__pfx_ll_encode_fh","__pfx_ll_fallocate","__pfx_ll_fault","__pfx_ll_fault0","__pfx_ll_fault_io_init","__pfx_ll_fh_to_dentry","__pfx_ll_fh_to_parent","__pfx_ll_fid2path","__pfx_ll_fiemap","__pfx_ll_file_data_put.part.0","__pfx_ll_file_flock","__pfx_ll_file_futimes_3","__pfx_ll_file_getstripe","__pfx_ll_file_io_generic","__pfx_ll_file_ioctl","__pfx_ll_file_lock_ahead","__pfx_ll_file_mmap","__pfx_ll_file_noflock","__pfx_ll_file_open","__pfx_ll_file_open_encrypt","__pfx_ll_file_read_iter","__pfx_ll_file_release","__pfx_ll_file_seek","__pfx_ll_file_set_lease","__pfx_ll_file_unlock_lease","__pfx_ll_file_write_iter","__pfx_ll_filemap_fault","__pfx_ll_filemap_get_one_page_contig","__pfx_ll_filename_enc_seq_show","__pfx_ll_filename_enc_seq_write","__pfx_ll_filename_enc_single_open","__pfx_ll_fill_super","__pfx_ll_find_alias","__pfx_ll_finish_md_op_data","__pfx_ll_flush","__pfx_ll_flush_ctx","__pfx_ll_fname_disk_to_usr","__pfx_ll_foreign_dir_lookup","__pfx_ll_foreign_get_link","__pfx_ll_foreign_is_openable","__pfx_ll_foreign_is_removable","__pfx_ll_foreign_put_link","__pfx_ll_foreign_readlink_internal","__pfx_ll_foreign_symlink_default_parse","__pfx_ll_foreign_symlink_getattr","__pfx_ll_foreign_symlink_upcall_parse","__pfx_ll_free_rw_stats_info","__pfx_ll_free_sbi.isra.0","__pfx_ll_fsync","__pfx_ll_get_acl","__pfx_ll_get_acl_common","__pfx_ll_get_context","__pfx_ll_get_default_mdsize","__pfx_ll_get_dir_page","__pfx_ll_get_fid_by_name","__pfx_ll_get_grouplock","__pfx_ll_get_inode_acl","__pfx_ll_get_link","__pfx_ll_get_max_mdsize","__pfx_ll_get_mdt_idx","__pfx_ll_get_mdt_idx_by_fid","__pfx_ll_get_name","__pfx_ll_get_obd_name","__pfx_ll_get_parent","__pfx_ll_getattr","__pfx_ll_getattr_dentry","__pfx_ll_getattr_link","__pfx_ll_getname","__pfx_ll_getparent","__pfx_ll_getxattr_lov","__pfx_ll_have_md_lock","__pfx_ll_heat_add","__pfx_ll_hsm_import","__pfx_ll_hsm_release","__pfx_ll_hsm_state_set","__pfx_ll_i2gids","__pfx_ll_i2suppgid","__pfx_ll_iget","__pfx_ll_iget_anon_dir","__pfx_ll_iget_for_nfs.constprop.0","__pfx_ll_init_lsm_md","__pfx_ll_init_sbi","__pfx_ll_initxattrs","__pfx_ll_inode2fid.part.0:0x1ad0","__pfx_ll_inode2fid.part.0:0x2abb0","__pfx_ll_inode2fid.part.0:0x4b000","__pfx_ll_inode2fid.part.0:0x54700","__pfx_ll_inode2fid.part.0:0x61270","__pfx_ll_inode2fid.part.0:0x7f5e0","__pfx_ll_inode2fid.part.0:0xe9d0","__pfx_ll_inode_destroy_callback","__pfx_ll_inode_from_resource_lock","__pfx_ll_inode_init_security","__pfx_ll_inode_notifysecctx","__pfx_ll_inode_permission","__pfx_ll_inode_revalidate","__pfx_ll_inode_size_lock","__pfx_ll_inode_size_unlock","__pfx_ll_intent_drop_lock","__pfx_ll_intent_drop_lock.part.0","__pfx_ll_intent_file_open","__pfx_ll_intent_release","__pfx_ll_invalidate_folio","__pfx_ll_io_init","__pfx_ll_io_read_page","__pfx_ll_io_set_mirror","__pfx_ll_io_zero_page","__pfx_ll_ioc_copy_end","__pfx_ll_ioc_copy_start","__pfx_ll_ioc_data_version","__pfx_ll_iocontrol","__pfx_ll_ioctl_check_project","__pfx_ll_ioctl_fsgetxattr","__pfx_ll_ioctl_fssetxattr","__pfx_ll_ioctl_project","__pfx_ll_iterate","__pfx_ll_kill_super","__pfx_ll_ladvise.constprop.0","__pfx_ll_ladvise_sanity.isra.0","__pfx_ll_layout_conf","__pfx_ll_layout_fetch","__pfx_ll_layout_intent","__pfx_ll_layout_lock_set","__pfx_ll_layout_refresh","__pfx_ll_layout_restore","__pfx_ll_layout_write_intent","__pfx_ll_lease_close_intent","__pfx_ll_lease_file_resync","__pfx_ll_lease_och_acquire","__pfx_ll_lease_open","__pfx_ll_link","__pfx_ll_linkea_decode","__pfx_ll_listxattr","__pfx_ll_lli_init","__pfx_ll_local_open","__pfx_ll_lock_cancel_bits","__pfx_ll_lookup_finish_locks","__pfx_ll_lookup_it","__pfx_ll_lookup_it_finish.constprop.0","__pfx_ll_lookup_nd","__pfx_ll_lov_getstripe_ea_info","__pfx_ll_lov_setea","__pfx_ll_lov_setstripe","__pfx_ll_lov_setstripe_ea_info","__pfx_ll_lseek","__pfx_ll_manage_foreign","__pfx_ll_manage_foreign_dir","__pfx_ll_manage_foreign_file","__pfx_ll_max_cached_mb_seq_show","__pfx_ll_max_cached_mb_seq_write","__pfx_ll_max_cached_mb_single_open","__pfx_ll_md_blocking_ast","__pfx_ll_md_blocking_lease_ast","__pfx_ll_md_close","__pfx_ll_md_need_convert","__pfx_ll_md_real_close","__pfx_ll_md_setattr","__pfx_ll_merge_attr","__pfx_ll_merge_md_attr","__pfx_ll_migrate","__pfx_ll_migrate_folio","__pfx_ll_mkdir","__pfx_ll_mknod","__pfx_ll_new_node","__pfx_ll_nfs_get_name_filldir","__pfx_ll_nosquash_nids_seq_show","__pfx_ll_nosquash_nids_seq_write","__pfx_ll_nosquash_nids_single_open","__pfx_ll_obd_statfs","__pfx_ll_och_fill","__pfx_ll_old_b64_enc_seq_show","__pfx_ll_old_b64_enc_seq_write","__pfx_ll_old_b64_enc_single_open","__pfx_ll_open_cleanup","__pfx_ll_options.isra.0","__pfx_ll_page_mkwrite","__pfx_ll_page_mkwrite0.constprop.0","__pfx_ll_pcc_seq_show","__pfx_ll_pcc_seq_write","__pfx_ll_pcc_single_open","__pfx_ll_prep_inode","__pfx_ll_prep_md_op_data","__pfx_ll_prepare_close","__pfx_ll_prepare_partial_page","__pfx_ll_prune_aliases","__pfx_ll_prune_negative_children","__pfx_ll_put_grouplock.isra.0","__pfx_ll_put_link","__pfx_ll_put_super","__pfx_ll_ra_count_get.constprop.0","__pfx_ll_ra_count_put","__pfx_ll_ra_stats_inc","__pfx_ll_ras_enter","__pfx_ll_read_ahead_page","__pfx_ll_read_ahead_pages","__pfx_ll_read_cache_page.constprop.0","__pfx_ll_read_folio","__pfx_ll_read_inode2","__pfx_ll_readahead.constprop.0","__pfx_ll_readahead_file_kms","__pfx_ll_readahead_handle_work","__pfx_ll_readahead_init","__pfx_ll_readlink_internal.constprop.0","__pfx_ll_readpage","__pfx_ll_readpages","__pfx_ll_release","__pfx_ll_release_folio","__pfx_ll_release_openhandle","__pfx_ll_release_page","__pfx_ll_remount_fs","__pfx_ll_rename","__pfx_ll_revalidate_d_crypto","__pfx_ll_revalidate_dentry","__pfx_ll_revalidate_it_finish","__pfx_ll_revalidate_statahead","__pfx_ll_rmdir","__pfx_ll_rmdir_entry","__pfx_ll_rmfid","__pfx_ll_root_squash_seq_show","__pfx_ll_root_squash_seq_write","__pfx_ll_root_squash_single_open","__pfx_ll_rw_extents_stats_pp_seq_show","__pfx_ll_rw_extents_stats_pp_seq_write","__pfx_ll_rw_extents_stats_pp_single_open","__pfx_ll_rw_extents_stats_seq_show","__pfx_ll_rw_extents_stats_seq_write","__pfx_ll_rw_extents_stats_single_open","__pfx_ll_rw_offset_stats_seq_show","__pfx_ll_rw_offset_stats_seq_write","__pfx_ll_rw_offset_stats_single_open","__pfx_ll_rw_stats_tally","__pfx_ll_sai_alloc","__pfx_ll_sai_free","__pfx_ll_sai_put","__pfx_ll_sb_has_test_dummy_encryption","__pfx_ll_sbi_flags_seq_show","__pfx_ll_sbi_flags_single_open","__pfx_ll_sbi_has_encrypt","__pfx_ll_sbi_has_name_encrypt","__pfx_ll_sbi_set_encrypt","__pfx_ll_sbi_set_name_encrypt","__pfx_ll_secctx_name_free","__pfx_ll_secctx_name_get","__pfx_ll_secctx_name_store","__pfx_ll_security_secctx_name_filter","__pfx_ll_select_file_operations","__pfx_ll_set_acl","__pfx_ll_set_context","__pfx_ll_set_default_mdsize","__pfx_ll_set_encflags","__pfx_ll_set_inode","__pfx_ll_set_lock_data.constprop.0:0x5b620","__pfx_ll_set_lock_data.constprop.0:0x62560","__pfx_ll_set_lock_data:0x11720","__pfx_ll_set_lock_data:0x4b5a0","__pfx_ll_set_lock_data:0x960","__pfx_ll_set_project","__pfx_ll_setattr","__pfx_ll_setattr_raw","__pfx_ll_setstripe_ea","__pfx_ll_setup_filename","__pfx_ll_show_options","__pfx_ll_site_stats_seq_show","__pfx_ll_site_stats_single_open","__pfx_ll_splice_alias","__pfx_ll_start_agl","__pfx_ll_start_statahead","__pfx_ll_statahead_interpret","__pfx_ll_statahead_stats_seq_show","__pfx_ll_statahead_stats_single_open","__pfx_ll_statahead_thread","__pfx_ll_statfs","__pfx_ll_statfs_internal","__pfx_ll_statfs_project.constprop.0","__pfx_ll_stats_ops_tally","__pfx_ll_stats_pid_write","__pfx_ll_stop_agl","__pfx_ll_swap_layouts","__pfx_ll_swap_layouts_close","__pfx_ll_symlink","__pfx_ll_take_md_lock","__pfx_ll_test_inode","__pfx_ll_test_inode_by_fid","__pfx_ll_thread_key_fini","__pfx_ll_thread_key_init","__pfx_ll_track_file_opens","__pfx_ll_truncate_inode_pages_final","__pfx_ll_umount_begin","__pfx_ll_unlink","__pfx_ll_unlock_md_op_lsm","__pfx_ll_unstable_stats_seq_show","__pfx_ll_unstable_stats_seq_write","__pfx_ll_unstable_stats_single_open","__pfx_ll_update_default_lsm_md","__pfx_ll_update_dir_depth","__pfx_ll_update_inode","__pfx_ll_update_inode_flags","__pfx_ll_update_lsm_md","__pfx_ll_update_times","__pfx_ll_vm_close","__pfx_ll_vm_open","__pfx_ll_write_begin","__pfx_ll_write_end","__pfx_ll_writepage","__pfx_ll_writepages","__pfx_ll_xattr_cache_add","__pfx_ll_xattr_cache_del.constprop.0","__pfx_ll_xattr_cache_destroy","__pfx_ll_xattr_cache_destroy_locked","__pfx_ll_xattr_cache_empty","__pfx_ll_xattr_cache_find","__pfx_ll_xattr_cache_get","__pfx_ll_xattr_cache_init","__pfx_ll_xattr_cache_insert","__pfx_ll_xattr_cache_list","__pfx_ll_xattr_cache_refill","__pfx_ll_xattr_find_get_lock","__pfx_ll_xattr_fini","__pfx_ll_xattr_get","__pfx_ll_xattr_get_common","__pfx_ll_xattr_init","__pfx_ll_xattr_list","__pfx_ll_xattr_set","__pfx_ll_xattr_set_common","__pfx_llcrypt_free_ctx","__pfx_llcrypt_require_key","__pfx_llite_kobj_release","__pfx_llite_tunables_register","__pfx_llite_tunables_unregister","__pfx_lsm_md_dump","__pfx_lustre_fill_super","__pfx_lustre_kill_super","__pfx_lustre_mount","__pfx_max_easize_show","__pfx_max_read_ahead_async_active_show","__pfx_max_read_ahead_async_active_store","__pfx_max_read_ahead_mb_show","__pfx_max_read_ahead_mb_store","__pfx_max_read_ahead_per_file_mb_show","__pfx_max_read_ahead_per_file_mb_store","__pfx_max_read_ahead_whole_mb_show","__pfx_max_read_ahead_whole_mb_store","__pfx_mkwrite_commit_callback","__pfx_obd_connect.constprop.0","__pfx_obd_disconnect.isra.0","__pfx_obd_get_info.constprop.0:0x2650","__pfx_obd_get_info.constprop.0:0x2c120","__pfx_obd_get_info.constprop.0:0x69180","__pfx_obd_iocontrol.constprop.0:0x2bdb0","__pfx_obd_iocontrol.constprop.0:0x57870","__pfx_obd_iocontrol.constprop.0:0x74a70","__pfx_obd_iocontrol:0x10460","__pfx_obd_iocontrol:0x22e0","__pfx_obd_quotactl","__pfx_obd_set_info_async.constprop.0:0x2c490","__pfx_obd_set_info_async.constprop.0:0x492e0","__pfx_obd_statfs.constprop.0","__pfx_opencache_max_ms_show","__pfx_opencache_max_ms_store","__pfx_opencache_threshold_count_show","__pfx_opencache_threshold_count_store","__pfx_opencache_threshold_ms_show","__pfx_opencache_threshold_ms_store","__pfx_our_vma","__pfx_page_list_sanity_check.constprop.0","__pfx_parallel_dio_show","__pfx_parallel_dio_store","__pfx_pathname_is_valid","__pfx_pcc_cmd_fini.part.0","__pfx_pcc_cmd_handle","__pfx_pcc_cmd_parse.constprop.0","__pfx_pcc_conds_parse","__pfx_pcc_conjunction_free","__pfx_pcc_copy_data","__pfx_pcc_create_attach_cleanup","__pfx_pcc_dataset_add","__pfx_pcc_dataset_get","__pfx_pcc_dataset_match_get","__pfx_pcc_dataset_put","__pfx_pcc_dataset_rule_fini","__pfx_pcc_dataset_rule_init","__pfx_pcc_expression_free","__pfx_pcc_expression_parse","__pfx_pcc_fault","__pfx_pcc_fid2dataset_path.constprop.0.isra.0","__pfx_pcc_file_init","__pfx_pcc_file_mmap","__pfx_pcc_file_open","__pfx_pcc_file_read_iter","__pfx_pcc_file_release","__pfx_pcc_file_splice_read","__pfx_pcc_file_write_iter","__pfx_pcc_fname_list_add","__pfx_pcc_fname_list_free","__pfx_pcc_fsync","__pfx_pcc_get_layout_info","__pfx_pcc_hsm_remove","__pfx_pcc_id_list_free","__pfx_pcc_id_list_parse","__pfx_pcc_id_parse","__pfx_pcc_inode_attach_set.constprop.0","__pfx_pcc_inode_create","__pfx_pcc_inode_create_fini","__pfx_pcc_inode_free","__pfx_pcc_inode_getattr","__pfx_pcc_inode_put","__pfx_pcc_inode_remove.isra.0","__pfx_pcc_inode_reset_iattr","__pfx_pcc_inode_setattr","__pfx_pcc_io_fini","__pfx_pcc_io_init","__pfx_pcc_ioctl_detach","__pfx_pcc_ioctl_state","__pfx_pcc_layout_invalidate","__pfx_pcc_layout_xattr_set.isra.0","__pfx_pcc_lookup","__pfx_pcc_mkdir_p.constprop.0","__pfx_pcc_page_mkwrite","__pfx_pcc_parse_value_pair","__pfx_pcc_parse_value_pairs","__pfx_pcc_readwrite_attach","__pfx_pcc_readwrite_attach_fini","__pfx_pcc_remove_datasets","__pfx_pcc_rule_conds_free","__pfx_pcc_super_dump","__pfx_pcc_super_fini","__pfx_pcc_super_init","__pfx_pcc_try_auto_attach","__pfx_pcc_try_dataset_attach.constprop.0","__pfx_pcc_vm_close","__pfx_pcc_vm_open","__pfx_policy_from_vma","__pfx_posix_acl_release.part.0","__pfx_quotactl_ioctl","__pfx_ras_detect_read_pattern","__pfx_ras_reset","__pfx_ras_stride_increase_window","__pfx_ras_stride_reset","__pfx_ras_update","__pfx_read_ahead_async_file_threshold_mb_show","__pfx_read_ahead_async_file_threshold_mb_store","__pfx_read_ahead_range_kb_show","__pfx_read_ahead_range_kb_store","__pfx_read_in_stride_window","__pfx_revalidate_statahead_dentry","__pfx_ria_page_count","__pfx_sa_alloc","__pfx_sa_fini_data","__pfx_sa_free","__pfx_sa_handle_callback","__pfx_sa_instantiate","__pfx_sa_lookup","__pfx_sa_make_ready","__pfx_sa_prep_data","__pfx_sa_revalidate","__pfx_sa_statahead","__pfx_sbi_kobj_release","__pfx_search_inode_for_lustre","__pfx_start_statahead_thread","__pfx_stat_blocksize_show","__pfx_stat_blocksize_store","__pfx_statahead_agl_show","__pfx_statahead_agl_store","__pfx_statahead_max_show","__pfx_statahead_max_store","__pfx_statahead_running_max_show","__pfx_statahead_running_max_store","__pfx_statfs_max_age_show","__pfx_statfs_max_age_store","__pfx_stats_track_gid_show","__pfx_stats_track_gid_store","__pfx_stats_track_pid_show","__pfx_stats_track_pid_store","__pfx_stats_track_ppid_show","__pfx_stats_track_ppid_store","__pfx_stride_byte_count","__pfx_tiny_write_show","__pfx_tiny_write_store","__pfx_trunc_sem_down_read","__pfx_trunc_sem_down_write","__pfx_uuid_show","__pfx_volatile_ref_file","__pfx_vvp_attr_get","__pfx_vvp_attr_update","__pfx_vvp_conf_set","__pfx_vvp_device_alloc","__pfx_vvp_device_fini","__pfx_vvp_device_free","__pfx_vvp_device_init","__pfx_vvp_dump_pgcache_seq_open","__pfx_vvp_dump_pgcache_seq_release","__pfx_vvp_global_fini","__pfx_vvp_global_init","__pfx_vvp_io_advance","__pfx_vvp_io_commit_sync","__pfx_vvp_io_fault_end","__pfx_vvp_io_fault_fini","__pfx_vvp_io_fault_iter_init","__pfx_vvp_io_fault_lock","__pfx_vvp_io_fault_start","__pfx_vvp_io_fini","__pfx_vvp_io_fsync_start","__pfx_vvp_io_init","__pfx_vvp_io_kernel_fault","__pfx_vvp_io_lseek_end","__pfx_vvp_io_lseek_lock","__pfx_vvp_io_lseek_start","__pfx_vvp_io_one_lock_index","__pfx_vvp_io_read_ahead","__pfx_vvp_io_read_iter_init","__pfx_vvp_io_read_lock","__pfx_vvp_io_read_start","__pfx_vvp_io_rw_end","__pfx_vvp_io_rw_lock","__pfx_vvp_io_setattr_end","__pfx_vvp_io_setattr_fini","__pfx_vvp_io_setattr_iter_init","__pfx_vvp_io_setattr_lock","__pfx_vvp_io_setattr_start","__pfx_vvp_io_write_commit","__pfx_vvp_io_write_iter_fini","__pfx_vvp_io_write_iter_init","__pfx_vvp_io_write_lock","__pfx_vvp_io_write_start","__pfx_vvp_key_init_generic.constprop.0","__pfx_vvp_mmap_locks","__pfx_vvp_object_alloc","__pfx_vvp_object_free","__pfx_vvp_object_free_rcu","__pfx_vvp_object_glimpse","__pfx_vvp_object_init","__pfx_vvp_object_invariant","__pfx_vvp_object_print","__pfx_vvp_page_completion_read","__pfx_vvp_page_completion_write","__pfx_vvp_page_delete","__pfx_vvp_page_discard","__pfx_vvp_page_init","__pfx_vvp_pgcache_current","__pfx_vvp_pgcache_next","__pfx_vvp_pgcache_page_show.constprop.0","__pfx_vvp_pgcache_show","__pfx_vvp_pgcache_start","__pfx_vvp_pgcache_stop","__pfx_vvp_prep_size","__pfx_vvp_prune","__pfx_vvp_req_attr_set","__pfx_vvp_session_key_fini","__pfx_vvp_session_key_init","__pfx_vvp_set_batch_dirty","__pfx_vvp_thread_key_fini","__pfx_vvp_thread_key_init","__pfx_vvp_type_fini","__pfx_vvp_type_init","__pfx_vvp_type_start","__pfx_vvp_type_stop","__pfx_vvp_vmpage_error","__pfx_write_commit_callback","__pfx_xattr_cache_show","__pfx_xattr_cache_store","__pfx_xattr_type_filter","__pfx_zero_user_segments.constprop.0","cap_drop","cfs_cdebug_show.part.0.constprop.0:0x1b70","cfs_cdebug_show.part.0.constprop.0:0x2b130","cfs_cdebug_show.part.0.constprop.0:0x480d0","cfs_cdebug_show.part.0.constprop.0:0x4b050","cfs_cdebug_show.part.0.constprop.0:0x54750","cfs_cdebug_show.part.0.constprop.0:0x57850","cfs_cdebug_show.part.0.constprop.0:0x60ac0","cfs_cdebug_show.part.0.constprop.0:0x612c0","cfs_cdebug_show.part.0.constprop.0:0x6a0c0","cfs_cdebug_show.part.0.constprop.0:0x6cae0","cfs_cdebug_show.part.0.constprop.0:0x73ae0","cfs_cdebug_show.part.0.constprop.0:0x7f630","cfs_cdebug_show.part.0.constprop.0:0x82e60","cfs_cdebug_show.part.0.constprop.0:0xeaa0","cfs_cpt_bind_workqueue.constprop.0","cfs_race.constprop.0","cleanup_module","init_module","ll_dom_read_folio","ll_dom_readpage","ll_inode2fid.part.0:0x1ae0","ll_inode2fid.part.0:0x2abc0","ll_inode2fid.part.0:0x4b010","ll_inode2fid.part.0:0x54710","ll_inode2fid.part.0:0x61280","ll_inode2fid.part.0:0x7f5f0","ll_inode2fid.part.0:0xe9e0","ll_read_cache_page.constprop.0","ll_readlink_internal.constprop.0.cold","ll_sai_free","ll_set_lock_data.constprop.0:0x5b630","ll_set_lock_data.constprop.0:0x62570","ll_set_lock_data:0x11730","ll_set_lock_data:0x4b5b0","ll_set_lock_data:0x970","llcrypt_require_key","lsm_md_dump","lustre_exit","lustre_init","obd_connect.constprop.0","obd_disconnect.isra.0","obd_get_info.constprop.0:0x2660","obd_get_info.constprop.0:0x2c130","obd_get_info.constprop.0:0x69190","obd_iocontrol.constprop.0:0x2bdc0","obd_iocontrol.constprop.0:0x57880","obd_iocontrol.constprop.0:0x74a80","obd_iocontrol:0x10470","obd_iocontrol:0x22f0","obd_quotactl","obd_set_info_async.constprop.0:0x2c4a0","obd_set_info_async.constprop.0:0x492f0","obd_statfs.constprop.0","posix_acl_release.part.0","trunc_sem_down_read","trunc_sem_down_write","zero_user_segments.constprop.0"]},{"type":2,"name":"mpiio","functions":[],"binary_path":"/opt/toss/openmpi/4.1/gnu/lib/libmpi.so","include_offsets":false},{"type":2,"name":"ior","functions":[],"binary_path":"/home/haridev/software/ior/install/bin/ior","include_offsets":false}] +[{"type":4,"name":"custom1","functions":[],"bpf_path":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/home/haridev/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2},{"type":0,"name":"sys","functions":[]},{"type":1,"name":"os_page_cache","functions":["page_cache_sync_readahead"]},{"type":1,"name":"lustre","functions":["cap_drop","cleanup_module","init_module","ll_dom_read_folio","ll_dom_readpage","ll_sai_free","llcrypt_require_key","lsm_md_dump","lustre_exit","lustre_init","obd_quotactl","posix_acl_release.part.0","trunc_sem_down_read","trunc_sem_down_write"]},{"type":1,"name":"mdc","functions":["cfs_delete_from_page_cache","cleanup_module","init_module","mdc_attr_pack","mdc_clear_replay_flag.part.0","mdc_exit","mdc_init","mdc_read_folio_remote","obd_notify","obd_quotactl"]},{"type":1,"name":"mgc","functions":["cleanup_module","init_module","mgc_exit","mgc_init"]},{"type":1,"name":"osc","functions":["_compound_head","cleanup_module","ext_flags","init_module","libcfs_nidstr","obd_notify","osc_exit","osc_init","osc_release_bounce_pages","ostid_id","ostid_seq"]},{"type":1,"name":"ptlrpc","functions":["cfs_race","cleanup_module","cpumask_weight","dt_delete","dt_insert","enc_pools_alloc","enc_pools_free","exp_connect_healthy","exp_finished","exp_finished_or_from_mdt","exp_lock_replay_healthy","exp_req_replay_healthy_or_from_mdt","exp_vbr_healthy","init_module","lcd_cpu_to_le","lcd_le_to_cpu","ldlm_callback_errmsg","ldlm_flock_destroy","ldlm_plain_compat_queue","libcfs_nid2str","lsd_cpu_to_le","lsd_le_to_cpu","obd_cksum_type_unpack","obd_commitrw","obd_connect","obd_disconnect","obd_preprw","obd_reconnect","ost_fid_from_resid","ostid_id","ostid_seq","page_from_bulkdesc","page_from_pagearray","ptlrpc_exit","ptlrpc_init","ptlrpc_release_bulk_noop","ptlrpc_req_drop_rs.part.0","ptlrpc_set_producer","tgt_fmd_put_nolock"]},{"type":2,"name":"mpi","functions":[],"binary_path":"/opt/toss/openmpi/4.1/gnu/lib/libmpi.so","include_offsets":false},{"type":2,"name":"ior","functions":[],"binary_path":"/home/haridev/software/ior/install/bin/ior","include_offsets":false},{"type":1,"name":"iomap","functions":["iomap_init","iomap_iter_advance","iomap_iter_done"]},{"type":1,"name":"xfs","functions":["xfs_ag_resv_rmapbt_alloc","xfs_attri_log_nameval_alloc","xfs_attri_recover_work","xfs_buf_lookup.constprop.0","xfs_bui_copy_format","xfs_cui_copy_format","xfs_defer_pending_cancel_work","xfs_fs_eofblocks_from_user","xfs_has_finobt","xfs_has_reflink","xfs_has_rmapbt","xfs_icount_range","xfs_iext_count","xfs_inobt_maxlevels_ondisk","xfs_internal_inum","xfs_rui_copy_format","xfs_sysfs_del.constprop.0","xfs_sysfs_release","xfs_verify_fsbno","xfs_verify_ino","xfs_verify_rtbno"]}] diff --git a/etc/datacrumbs/flux/cli/plugins/datacrumbs.py b/etc/datacrumbs/flux/cli/plugins/datacrumbs.py index f53401a0..d9a88782 100644 --- a/etc/datacrumbs/flux/cli/plugins/datacrumbs.py +++ b/etc/datacrumbs/flux/cli/plugins/datacrumbs.py @@ -45,7 +45,7 @@ def validate(self, jobspec): # user = jobspec.attributes["system"]["environment"].get("USER", "") # if user == "": # raise ValueError("USER environment variable is required for datacrumbs composite validation") - # file = f"@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXEC_DIR@/@PROJECT_NAME@/@CMAKE_INSTALL_SBINDIR@/{user}/datacrumbs_{composite_name}" + # file = f"@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/@PROJECT_NAME@/@CMAKE_INSTALL_SBINDIR@/{user}/datacrumbs_{composite_name}" # if not os.path.exists(file): # raise ValueError(f"Datacrumbs composite: {composite_name} does not exist") except KeyError: diff --git a/etc/datacrumbs/modulefiles/module.lua.in b/etc/datacrumbs/modulefiles/module.lua.in index 71bb7e92..fb91b4a5 100644 --- a/etc/datacrumbs/modulefiles/module.lua.in +++ b/etc/datacrumbs/modulefiles/module.lua.in @@ -23,7 +23,7 @@ local user = os.getenv("DATACRUMBS_USER") or os.getenv("USER") or "@DATACRUMBS_I local bin_dir = pathJoin(prefix, "@CMAKE_INSTALL_BINDIR@") local sbin_dir = pathJoin(prefix, "@CMAKE_INSTALL_SBINDIR@") local etc_dir = pathJoin(prefix, "@CMAKE_INSTALL_SYSCONFDIR@") -local userbin = prefix .. "/@CMAKE_INSTALL_LIBEXEC_DIR@/@CMAKE_INSTALL_SBINDIR@/" .. user +local userbin = prefix .. "/@CMAKE_INSTALL_LIBEXECDIR@/@CMAKE_INSTALL_SBINDIR@/" .. user local libexec_dir = pathJoin(prefix, userbin) local lib_dir = pathJoin(prefix, "@DATACRUMBS_INSTALL_LIB_DIR@") diff --git a/etc/datacrumbs/systemd/datacrumbs@.service.in b/etc/datacrumbs/systemd/datacrumbs@.service.in index 658ae80e..36d5ea40 100644 --- a/etc/datacrumbs/systemd/datacrumbs@.service.in +++ b/etc/datacrumbs/systemd/datacrumbs@.service.in @@ -4,15 +4,17 @@ After=network.target [Service] Type=forking -ExecStart=@DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_server_run.sh --verbose --composite-name %i -ExecStop=@DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_server_stop.sh --verbose --composite-name %i +ExecStart=@DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_server_run.sh --verbose +ExecStop=@DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_server_stop.sh --verbose User=root # Optional: RemainAfterExit=no -PIDFile=/run/datacrumbs.pid +# Copy PIDFile path to project yaml +PIDFile=@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@/datacrumbs-systemd-%i.pid TimeoutStartSec=10min TimeoutStopSec=5min -EnvironmentFile=/run/datacrumbs.env +# Copy ENVFile path to project yaml +EnvironmentFile=@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@/datacrumbs-%i.env [Install] WantedBy=multi-user.target \ No newline at end of file diff --git a/infrastrutcure/docker/Dockerfile b/infrastructure/docker/Dockerfile similarity index 66% rename from infrastrutcure/docker/Dockerfile rename to infrastructure/docker/Dockerfile index 9803acd4..1deb1045 100644 --- a/infrastrutcure/docker/Dockerfile +++ b/infrastructure/docker/Dockerfile @@ -3,18 +3,6 @@ FROM hdevarajan92/datacrumbs:latest RUN mkdir -p /opt/datacrumbs COPY . /opt/datacrumbs/ -# Create a non-root user 'docker' with passwordless sudo access and install tools -RUN (dnf -y install epel-release || yum -y install epel-release) && \ - (dnf -y install sudo || yum -y install sudo) && \ - (dnf -y install patchelf || yum -y install patchelf) && \ - (dnf -y install openmpi-devel || yum -y install openmpi-devel) && \ - (dnf clean all || yum clean all) && \ - groupadd -f wheel && \ - useradd -m -s /bin/bash docker && \ - usermod -aG wheel docker && \ - echo 'docker ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/docker && \ - chmod 0440 /etc/sudoers.d/docker - RUN . /opt/rh/gcc-toolset-11/enable && \ mkdir -p datacrumbs-build && \ rm -rf datacrumbs-build/* && \ diff --git a/infrastrutcure/docker/Dockerfile.build b/infrastructure/docker/Dockerfile.build similarity index 83% rename from infrastrutcure/docker/Dockerfile.build rename to infrastructure/docker/Dockerfile.build index bcfa048f..20751e6c 100644 --- a/infrastrutcure/docker/Dockerfile.build +++ b/infrastructure/docker/Dockerfile.build @@ -8,6 +8,9 @@ RUN cd /etc/yum.repos.d/ && \ # Update system RUN yum update -y +# Install EPEL repository first (needed for patchelf) +RUN yum install -y epel-release + # Install base development tools and dependencies RUN yum install -y \ gcc \ @@ -79,12 +82,21 @@ RUN echo "/usr/local/lib64" > /etc/ld.so.conf.d/local.conf && \ echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf && \ ldconfig +# Create a non-root user 'docker' with passwordless sudo access and install tools +RUN (dnf -y install openmpi-devel || yum -y install openmpi-devel) && \ + (dnf clean all || yum clean all) && \ + groupadd -f wheel && \ + useradd -m -s /bin/bash docker && \ + usermod -aG wheel docker && \ + echo 'docker ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/docker && \ + chmod 0440 /etc/sudoers.d/docker + # Create datacrumbs directory WORKDIR /opt/datacrumbs # Set environment variables ENV PATH="/opt/rh/gcc-toolset-11/root/usr/bin:${PATH}" -ENV LD_LIBRARY_PATH="/opt/rh/gcc-toolset-11/root/usr/lib64:/usr/local/lib64:/usr/local/lib:${LD_LIBRARY_PATH}" +ENV LD_LIBRARY_PATH="/opt/rh/gcc-toolset-11/root/usr/lib64:/usr/local/lib64:/usr/local/lib" # Create entrypoint script RUN echo '#!/bin/bash' > /entrypoint.sh && \ diff --git a/infrastrutcure/docker/README.md b/infrastructure/docker/README.md similarity index 100% rename from infrastrutcure/docker/README.md rename to infrastructure/docker/README.md diff --git a/infrastructure/docker/build-multiarch.sh b/infrastructure/docker/build-multiarch.sh new file mode 100755 index 00000000..dd1bb2c5 --- /dev/null +++ b/infrastructure/docker/build-multiarch.sh @@ -0,0 +1,222 @@ +#!/bin/bash + +# Multi-architecture Docker build script for DataCrumbs +# Builds for linux/amd64 and linux/arm64 platforms + +set -e + +# Configuration +IMAGE_NAME="${IMAGE_NAME:-datacrumbs}" +IMAGE_TAG="${IMAGE_TAG:-latest}" +DOCKERFILE="${DOCKERFILE:-infrastructure/docker/Dockerfile.build}" +REGISTRY="${REGISTRY:-docker.io}" +USERNAME="${USERNAME:-hdevarajan92}" +PLATFORMS="${PLATFORMS:-linux/amd64,linux/arm64}" + +# Parse command line arguments +PUSH=false +LOAD=false +RUN=false + +print_usage() { + echo "Usage: $0 [OPTIONS]" + echo "" + echo "Options:" + echo " --push Push the built images to the registry" + echo " --load Load the image into local Docker (only works for single platform)" + echo " --run Run the container after loading (implies --load)" + echo " --platform ARCH Comma-separated list of platforms (default: linux/amd64,linux/arm64)" + echo " --tag TAG Image tag (default: latest)" + echo " --name NAME Image name (default: datacrumbs)" + echo " --registry REG Registry URL (default: docker.io)" + echo " --username USER Registry username (default: hdevarajan92)" + echo " -h, --help Show this help message" + echo "" + echo "Examples:" + echo " $0 --push # Build and push multi-arch images" + echo " $0 --load --platform linux/amd64 # Build and load amd64 only" + echo " $0 --run --platform linux/amd64 # Build, load and run container" + echo " $0 --push --tag v1.0.0 --name myimage # Custom tag and name" +} + +while [[ $# -gt 0 ]]; do + case $1 in + --push) + PUSH=true + shift + ;; + --load) + LOAD=true + shift + ;; + --run) + RUN=true + LOAD=true + shift + ;; + --platform) + PLATFORMS="$2" + shift 2 + ;; + --tag) + IMAGE_TAG="$2" + shift 2 + ;; + --name) + IMAGE_NAME="$2" + shift 2 + ;; + --registry) + REGISTRY="$2" + shift 2 + ;; + --username) + USERNAME="$2" + shift 2 + ;; + -h|--help) + print_usage + exit 0 + ;; + *) + echo "Unknown option: $1" + print_usage + exit 1 + ;; + esac +done + +# Construct full image name +if [ "$REGISTRY" = "docker.io" ]; then + FULL_IMAGE_NAME="${USERNAME}/${IMAGE_NAME}:${IMAGE_TAG}" +else + FULL_IMAGE_NAME="${REGISTRY}/${USERNAME}/${IMAGE_NAME}:${IMAGE_TAG}" +fi + +echo "======================================" +echo "Multi-Architecture Docker Build" +echo "======================================" +echo "Image: ${FULL_IMAGE_NAME}" +echo "Platforms: ${PLATFORMS}" +echo "Dockerfile: ${DOCKERFILE}" +echo "Push: ${PUSH}" +echo "Load: ${LOAD}" +echo "======================================" +echo "" + +# Check if Docker Buildx is available +if ! docker buildx version &> /dev/null; then + echo "Error: Docker Buildx is not available. Please install Docker Buildx." + exit 1 +fi + +# Create a new builder instance if it doesn't exist +BUILDER_NAME="datacrumbs-multiarch-builder" +if ! docker buildx inspect "$BUILDER_NAME" &> /dev/null; then + echo "Creating new buildx builder: $BUILDER_NAME" + docker buildx create --name "$BUILDER_NAME" --use --platform "$PLATFORMS" +else + echo "Using existing buildx builder: $BUILDER_NAME" + docker buildx use "$BUILDER_NAME" +fi + +# Bootstrap the builder +echo "Bootstrapping builder..." +docker buildx inspect --bootstrap + +# Build command +BUILD_CMD="docker buildx build" +BUILD_CMD+=" --platform ${PLATFORMS}" +BUILD_CMD+=" -t ${FULL_IMAGE_NAME}" +BUILD_CMD+=" -f ${DOCKERFILE}" + +if [ "$PUSH" = true ] && [ "$LOAD" = true ]; then + echo "Error: Cannot use --push and --load together. Use --load for single platform only." + exit 1 +fi + +if [ "$PUSH" = true ]; then + BUILD_CMD+=" --push" + echo "Images will be pushed to registry after build." +elif [ "$LOAD" = true ]; then + BUILD_CMD+=" --load" + echo "Image will be loaded into local Docker." + if [[ "$PLATFORMS" == *","* ]]; then + echo "Warning: --load only works with a single platform. Building first platform only." + PLATFORMS=$(echo "$PLATFORMS" | cut -d',' -f1) + BUILD_CMD="docker buildx build --platform ${PLATFORMS} -t ${FULL_IMAGE_NAME} -f ${DOCKERFILE} --load" + fi +else + echo "Note: Images will be built but not pushed or loaded." + echo "Use --push to push to registry or --load to load locally." +fi + +BUILD_CMD+=" ." + +echo "" +echo "Executing: $BUILD_CMD" +echo "" + +# Change to repository root +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" +cd "$REPO_ROOT" + +# Execute the build +eval "$BUILD_CMD" + +if [ $? -eq 0 ]; then + echo "" + echo "======================================" + echo "Build completed successfully!" + echo "======================================" + echo "Image: ${FULL_IMAGE_NAME}" + echo "Platforms: ${PLATFORMS}" + + if [ "$PUSH" = true ]; then + echo "" + echo "Images have been pushed to the registry." + echo "You can pull them with:" + echo " docker pull ${FULL_IMAGE_NAME}" + elif [ "$LOAD" = true ]; then + echo "" + echo "Image has been loaded into local Docker." + + if [ "$RUN" = true ]; then + echo "" + echo "Starting container with workspace mounted at /opt/datacrumbs..." + docker run -ti --privileged --cap-add sys_admin --cap-add sys_ptrace \ + --net=host --pid=host --hostname docker \ + -v /lib/modules/:/lib/modules:ro \ + -v /sys/kernel/debug/:/sys/kernel/debug:rw \ + -v /sys/fs/bpf:/sys/fs/bpf \ + -v "$(pwd):/opt/datacrumbs" -w /opt/datacrumbs \ + ${FULL_IMAGE_NAME} + else + echo "" + echo "To run with current workspace mounted (replaces built version in container):" + echo " docker run -ti --privileged --cap-add sys_admin --cap-add sys_ptrace \\" + echo " --net=host --pid=host --hostname docker \\" + echo " -v /lib/modules/:/lib/modules:ro \\" + echo " -v /sys/kernel/debug/:/sys/kernel/debug:rw \\" + echo " -v /sys/fs/bpf:/sys/fs/bpf \\" + echo " -v \"\$(pwd):/opt/datacrumbs\" -w /opt/datacrumbs \\" + echo " ${FULL_IMAGE_NAME}" + echo "" + echo "To run with workspace mounted at /workspace (keeps built version):" + echo " docker run -ti --privileged --cap-add sys_admin --cap-add sys_ptrace \\" + echo " --net=host --pid=host --hostname docker \\" + echo " -v /lib/modules/:/lib/modules:ro \\" + echo " -v /sys/kernel/debug/:/sys/kernel/debug:rw \\" + echo " -v /sys/fs/bpf:/sys/fs/bpf \\" + echo " -v \"\$(pwd):/workspace\" -w /workspace \\" + echo " ${FULL_IMAGE_NAME}" + fi + fi +else + echo "" + echo "======================================" + echo "Build failed!" + echo "======================================" + exit 1 +fi diff --git a/infrastrutcure/docker/test_run.sh b/infrastructure/docker/test_run.sh similarity index 100% rename from infrastrutcure/docker/test_run.sh rename to infrastructure/docker/test_run.sh diff --git a/infrastrutcure/lima/README.md b/infrastructure/lima/README.md similarity index 100% rename from infrastrutcure/lima/README.md rename to infrastructure/lima/README.md diff --git a/infrastrutcure/lima/ebpf.yaml b/infrastructure/lima/ebpf.yaml similarity index 100% rename from infrastrutcure/lima/ebpf.yaml rename to infrastructure/lima/ebpf.yaml diff --git a/notes.MD b/notes.MD index fd811ca5..552f53af 100644 --- a/notes.MD +++ b/notes.MD @@ -21,21 +21,33 @@ for i in {3..6} {9..11}; do done ``` ```bash -for i in 2 {4..6} {9..11}; do +for i in {2..6} {9..11}; do echo "Copying prolog and epilog files into server:lead${i}" -sudo ssh lead${i} rm /etc/flux/system/prolog-job-manager.d/datacrumbs* -sudo ssh lead${i} rm /etc/flux/system/epilog.d/datacrumbs* -sudo scp -p ./bin/datacrumbs_service_run.sh lead${i}:/etc/flux/system/prolog-job-manager.d/ -sudo scp -p ./bin/datacrumbs_service_stop.sh lead${i}:/etc/flux/system/epilog.d/ -sudo scp -p ./etc/datacrumbs/systemd/datacrumbs@.service lead${i}:/etc/systemd/system/ sudo ssh lead${i} << 'EOF' +DATACRUMBS_INSTALL=/home/haridev/datacrumbs/install +rm /etc/flux/system/prolog-job-manager.d/datacrumbs* +rm /etc/flux/system/epilog.d/datacrumbs* +rm /etc/systemd/system/datacrumbs* +ln -s ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh /etc/flux/system/prolog-job-manager.d/datacrumbs_service_run.sh +ln -s ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh /etc/flux/system/epilog.d/datacrumbs_service_stop.sh +ln -s ${DATACRUMBS_INSTALL}/etc/datacrumbs/systemd/datacrumbs@.service /etc/systemd/system/datacrumbs@.service chmod u+x /etc/flux/system/prolog-job-manager.d/datacrumbs* chmod u+x /etc/flux/system/epilog.d//datacrumbs* rm -r /tmp/datacrumbs* +rm -rf /var/run/datacrumbs* +systemctl daemon-reload +EOF +done +for i in {2..6} {9..11}; do +echo "Copying prolog and epilog files into server:lead${i}" +sudo ssh lead${i} << 'EOF' systemctl daemon-reload EOF done ``` +``` + + ```bash for i in 2 {4..6} {9..11}; do sudo scp -p /etc/flux/system/conf.d/job-manager.toml lead${i}:/etc/flux/system/conf.d/ @@ -53,7 +65,7 @@ sudo ssh lead${i} << 'EOF' rm /etc/systemd/system/datacrumbs.service EOF done -for i in 2 {4..6} {9..11}; do +for i in 2; do sudo ssh lead${i} << 'EOF' /admin/scripts/flux_reconfig.sh flux config reload @@ -61,10 +73,10 @@ EOF done ``` ```bash -for i in 2 {4..6} {9..11}; do +for i in {2..6} {9..11}; do echo Checking lead${i} sudo ssh lead${i} << 'EOF' -systemctl daemon-reload +chmod 777 /p/ssd EOF done ``` @@ -111,4 +123,19 @@ flux run -N $nodes --tasks-per-node 16 ~/software/ior/install/bin/ior -t 1m -b 1 flux run -N $nodes --tasks-per-node 16 ~/software/ior/install/bin/ior -a MPIIO -t 1m -b 16m -F -o /tmp/file2 flux run -N $nodes --tasks-per-node 16 ~/software/ior/install/bin/ior -c -t 1m -b 16m -F -o /tmp/file2 -z flux run -N $nodes --tasks-per-node 16 ~/software/ior/install/bin/ior -t 1m -b 16m -F -o /tmp/file2 +``` + +```bash +mkfs /dev/sda +DIR=/p/ssd +pdsh -g compute mkdir -p $DIR +pdsh -g compute 'mount /dev/sda $DIR' +pdsh -g compute 'chmod 777 $DIR' +``` + +```bash +for i in {0..16}; do +done +flux run -n 1 ~/software/ior/install/bin/ior -o /p/ssd/test -t 1g -b 64g +flux run -n 16 ~/software/ior/install/bin/ior -o /p/ssd/test -t 32m -b 4g ``` \ No newline at end of file diff --git a/scripts/datacrumbs/datacrumbs_args.in b/scripts/datacrumbs/datacrumbs_args.in index 9dbf9060..a587ae5f 100755 --- a/scripts/datacrumbs/datacrumbs_args.in +++ b/scripts/datacrumbs/datacrumbs_args.in @@ -266,9 +266,19 @@ dc_args_usage() { done done if (( ${#__vals[@]} > 0 )); then - local __vals_joined - IFS='|' read -r __vals_joined <<< "${__vals[*]}" - note=" (required when --$SUBCMD_OPT=$__vals_joined)" + # Check if the subcommand option is a bool type + local __subcmd_idx="${IDX[$SUBCMD_OPT]}" + local __subcmd_type="${T[$__subcmd_idx]}" + + if [[ "$__subcmd_type" == "bool" ]]; then + # For bool, just show --option without =value + note=" (required when --$SUBCMD_OPT)" + else + # For non-bool, show --option=value1|value2 + local __vals_joined + IFS='|' read -r __vals_joined <<< "${__vals[*]}" + note=" (required when --$SUBCMD_OPT=$__vals_joined)" + fi fi fi if [[ "${T[i]}" == "bool" ]]; then @@ -503,12 +513,22 @@ dc_args_pretty_print() { done done if (( ${#__vals[@]} > 0 )); then - local __joined=""; local __idx - for __idx in "${!__vals[@]}"; do - [[ "$__idx" -gt 0 ]] && __joined+="|" - __joined+="${__vals[$__idx]}" - done - note=" (required when --$SUBCMD_OPT=$__joined)" + # Check if the subcommand option is a bool type + local __subcmd_idx="${IDX[$SUBCMD_OPT]}" + local __subcmd_type="${T[$__subcmd_idx]}" + + if [[ "$__subcmd_type" == "bool" ]]; then + # For bool, just show --option without =value + note=" (required when --$SUBCMD_OPT)" + else + # For non-bool, show --option=value1|value2|... + local __joined=""; local __idx + for __idx in "${!__vals[@]}"; do + [[ "$__idx" -gt 0 ]] && __joined+="|" + __joined+="${__vals[$__idx]}" + done + note=" (required when --$SUBCMD_OPT=$__joined)" + fi fi fi diff --git a/scripts/datacrumbs/datacrumbs_compose.in b/scripts/datacrumbs/datacrumbs_compose.in index fc472d52..5dc946bf 100755 --- a/scripts/datacrumbs/datacrumbs_compose.in +++ b/scripts/datacrumbs/datacrumbs_compose.in @@ -52,7 +52,7 @@ if [[ -n "${DRY_RUN}" && "${DRY_RUN}" != "0" ]]; then fi run() { - if [[ "$DRY_RUN_MODE" -eq 1 ]]; then + if [[ "$DRY_RUN_MODE" == "1" ]]; then printf "[DRY-RUN]" printf " %q" "$@" printf "\n" @@ -92,7 +92,7 @@ elif [[ "$ACTION" == "compose" ]]; then done log "Composing $COMPOSABLE_NAME for: ${DATACRUMBS_USER}" - BUILD_DIR="/tmp/datacrumbs_${DATACRUMBS_USER}_$(date +%s%N)" + BUILD_DIR="@DATACRUMBS_INSTALL_RUNSTATEDIR@/datacrumbs_${DATACRUMBS_USER}_$(date +%s%N)" if [[ -d "${BUILD_DIR}" ]]; then warn "Cleaning existing build directory: ${BUILD_DIR}" run rm -rf "${BUILD_DIR}" diff --git a/scripts/datacrumbs/datacrumbs_compose_run.in b/scripts/datacrumbs/datacrumbs_compose_run.in index ca41496b..57f2d2e8 100755 --- a/scripts/datacrumbs/datacrumbs_compose_run.in +++ b/scripts/datacrumbs/datacrumbs_compose_run.in @@ -13,7 +13,7 @@ source "$SCRIPT_DIR/datacrumbs_args" # Initialize argument parser for this script dc_args_init "DATACRUMBS_COMPOSE_RUN" -dc_args_add_option "DATACRUMBS_COMPOSE_RUN" "composite_name" "MANDATORY" "Composable name" "string" +dc_args_add_option "DATACRUMBS_COMPOSE_RUN" "composite_name" "MANDATORY" "Composable name" "string" "${DATACRUMBS_COMPOSABLE_NAME}" dc_args_add_option "DATACRUMBS_COMPOSE_RUN" "app" "MANDATORY" "App command" "string" dc_args_add_option "DATACRUMBS_COMPOSE_RUN" "enable_mpi" "OPTIONAL" "switch to enable MPI" "bool" "0" dc_args_add_option "DATACRUMBS_COMPOSE_RUN" "nodes" "OPTIONAL" "Set number of nodes" "int" "1" @@ -38,7 +38,7 @@ export DATACRUMBS_JOB_ENABLE_MPI=${DATACRUMBS_COMPOSE_RUN_ENABLE_MPI:-0} export DATACRUMBS_JOB_NODES=${DATACRUMBS_COMPOSE_RUN_NODES:-1} export DATACRUMBS_JOB_PPN=${DATACRUMBS_COMPOSE_RUN_PPN:-1} -if [[ -z "$DATACRUMBS_COMPOSABLE_NAME" ]]; then +if [[ -z "$DATACRUMBS_COMPOSABLE_NAME" || "$DATACRUMBS_COMPOSABLE_NAME" == "NONE" ]]; then echo "Error: COMPOSITE_NAME argument is required." show_help exit 1 @@ -56,39 +56,51 @@ read -ra APP_CMD <<< "${DATACRUMBS_COMPOSE_RUN_APP}" # Load environment source "$SCRIPT_DIR/datacrumbs_setup" +if ! validate_datacrumbs_composite_name "${DATACRUMBS_COMPOSABLE_NAME}"; then + error "Invalid composable name: ${DATACRUMBS_COMPOSABLE_NAME}" + exit 1 +fi + check_regular_user log "Running cmd: ${APP_CMD[*]} as USER = $DATACRUMBS_USER using composable $DATACRUMBS_COMPOSABLE_NAME" -if [[ -z "$DRY_RUN" ]]; then - datacrumbs_init "$DATACRUMBS_USER" "$DATACRUMBS_TRACE_DIR" +# Build args to pass to server scripts +server_args=() +if [[ -n "${DATACRUMBS_COMPOSABLE_NAME}" && "${DATACRUMBS_COMPOSABLE_NAME}" != "NONE" ]]; then + server_args+=("--composite-name" "${DATACRUMBS_COMPOSABLE_NAME}") +fi +if [[ "${DATACRUMBS_JOB_ENABLE_MPI}" == "1" ]]; then + server_args+=("--enable-mpi") + server_args+=("--nodes" "${DATACRUMBS_JOB_NODES}") + server_args+=("--ppn" "${DATACRUMBS_JOB_PPN}") +fi +if [[ "${VERBOSE:-0}" == "1" ]]; then + server_args+=("--verbose") +fi +if [[ "${QUIET:-0}" == "1" ]]; then + server_args+=("--quiet") +fi +if [[ "${DRY_RUN:-0}" == "1" ]]; then + server_args+=("--dry-run") fi -RUNID=${!DATACRUMBS_JOB_ID_VAR} -RUNID=${RUNID:-1000} -DATACRUMBS_LOG_FILE=${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${RUNID}.log -READY_FILE="/tmp/datacrumbs_${DATACRUMBS_USER}_${RUNID}.ready" -debug "RUNID: $RUNID" -debug "DATACRUMBS_JOB_ID_VAR: $DATACRUMBS_JOB_ID_VAR" -debug "value DATACRUMBS_JOB_ID_VAR: ${!DATACRUMBS_JOB_ID_VAR}" -debug "DATACRUMBS_LOG_FILE: $DATACRUMBS_LOG_FILE" -debug "READY_FILE: $READY_FILE" -exec=("${DATACRUMBS_INSTALL_SBIN_DIR}/datacrumbs_compose_wrapper" "${DATACRUMBS_COMPOSABLE_NAME}") -debug "Starting datacrumbs server with exec: ${exec[*]}" -datacrumbs_start_server "${exec[*]}" +SERVER_RUN_BIN=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs_server_run.sh +SERVER_STOP_BIN=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs_server_stop.sh +echo "Starting DataCrumbs server via: $SERVER_RUN_BIN ${server_args[*]}" +sudo "$SERVER_RUN_BIN" "${server_args[@]}" +if [[ $? -ne 0 ]]; then + echo "Error: Failed to start DataCrumbs server" + exit 1 +fi log "Running App: ${APP_CMD[*]}" job_launch "${APP_CMD[@]}" log "Finished App" -debug "Stopping datacrumbs server with exec: ${exec[*]}" -datacrumbs_stop_server "${exec[*]}" $PROG_NAME -if [[ "$DRY_RUN" == "1" ]]; then - debug "[DRY_RUN] Would print datacrumbs status" - debug "[DRY_RUN] Would finalize datacrumbs for user: $DATACRUMBS_USER" -else - debug "Printing datacrumbs status" - datacrumbs_print_status - debug "Finalizing datacrumbs for user: $DATACRUMBS_USER" - datacrumbs_finalize "$DATACRUMBS_USER" +echo "Stopping DataCrumbs server via: $SERVER_STOP_BIN ${server_args[*]}" +sudo "$SERVER_STOP_BIN" "${server_args[@]}" +if [[ $? -ne 0 ]]; then + echo "Error: Failed to stop DataCrumbs server" + exit 1 fi diff --git a/scripts/datacrumbs/datacrumbs_compose_wrapper.in b/scripts/datacrumbs/datacrumbs_compose_wrapper.in index 68e0fa71..7111aedf 100755 --- a/scripts/datacrumbs/datacrumbs_compose_wrapper.in +++ b/scripts/datacrumbs/datacrumbs_compose_wrapper.in @@ -10,4 +10,9 @@ check_sudo_user DATACRUMBS_COMPOSABLE_NAME=$1 shift +if ! validate_datacrumbs_composite_name "${DATACRUMBS_COMPOSABLE_NAME}"; then + error "Invalid composable name: ${DATACRUMBS_COMPOSABLE_NAME}" + exit 1 +fi + ${DATACRUMBS_CLIENT_BIN}/datacrumbs_${DATACRUMBS_COMPOSABLE_NAME} $@ \ No newline at end of file diff --git a/scripts/datacrumbs/datacrumbs_logging.in b/scripts/datacrumbs/datacrumbs_logging.in index a2e739d0..1cc33d04 100755 --- a/scripts/datacrumbs/datacrumbs_logging.in +++ b/scripts/datacrumbs/datacrumbs_logging.in @@ -1,14 +1,14 @@ #! /usr/bin/env bash log() { - if [ "${QUIET:-0}" -eq 0 ]; then + if [[ "${QUIET:-0}" == "0" ]]; then printf "[INFO $(date '+%Y-%m-%d %H:%M:%S')] $@" printf "\n" fi } debug() { - if [ "${VERBOSE:-0}" -eq 1 ] && [ "${QUIET:-1}" -eq 0 ]; then + if [[ "${VERBOSE:-0}" == "1" ]] && [[ "${QUIET:-1}" == "0" ]]; then printf "[DEBUG $(date '+%Y-%m-%d %H:%M:%S')] $@" printf "\n" fi @@ -20,8 +20,48 @@ error() { } warn() { - if [ "${QUIET:-1}" != "" ] && [ "${QUIET:-1}" -eq 0 ]; then + if [[ "${QUIET:-1}" != "" ]] && [[ "${QUIET:-1}" == "0" ]]; then printf "[WARN $(date '+%Y-%m-%d %H:%M:%S')] $@" >&2 printf "\n" >&2 fi } + +log_system() { + if [[ "FLUX" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${FLUX_JOB_ID}] $@" + elif [[ "@DATACRUMBS_SCHEDULER_TYPE@" == "SLURM" ]]; then + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${SLURM_JOB_ID}] $@" + else + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S')] $@" + fi +} + +log_user() { + if [[ "FLUX" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + flux job raise --severity=7 ${FLUX_JOB_ID} "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${FLUX_JOB_ID}] $@" + elif [[ "@DATACRUMBS_SCHEDULER_TYPE@" == "SLURM" ]]; then + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${SLURM_JOB_ID}] $@" + else + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S')] $@" + fi +} + +warn_user() { + if [[ "FLUX" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + flux job raise --severity=1 ${FLUX_JOB_ID} "[WARN $(date '+%Y-%m-%d %H:%M:%S') ${FLUX_JOB_ID}] $@" + elif [[ "@DATACRUMBS_SCHEDULER_TYPE@" == "SLURM" ]]; then + logger "[WARN $(date '+%Y-%m-%d %H:%M:%S') ${SLURM_JOB_ID}] $@" + else + logger "[WARN $(date '+%Y-%m-%d %H:%M:%S')] $@" + fi +} + +error_user() { + if [[ "FLUX" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + flux job raise --severity=1 ${FLUX_JOB_ID} "[ERROR $(date '+%Y-%m-%d %H:%M:%S') ${FLUX_JOB_ID}] $@" + elif [[ "@DATACRUMBS_SCHEDULER_TYPE@" == "SLURM" ]]; then + logger "[ERROR $(date '+%Y-%m-%d %H:%M:%S') ${SLURM_JOB_ID}] $@" + else + logger "[ERROR $(date '+%Y-%m-%d %H:%M:%S')] $@" + fi +} diff --git a/scripts/datacrumbs/datacrumbs_run.in b/scripts/datacrumbs/datacrumbs_run.in index e03a7393..0413c5f1 100755 --- a/scripts/datacrumbs/datacrumbs_run.in +++ b/scripts/datacrumbs/datacrumbs_run.in @@ -45,29 +45,39 @@ source $SCRIPT_DIR/datacrumbs_setup check_regular_user +# Build args to pass to server scripts +server_args=() +if [[ "${DATACRUMBS_JOB_ENABLE_MPI}" == "1" ]]; then + server_args+=("--enable-mpi") + server_args+=("--nodes" "${DATACRUMBS_JOB_NODES}") + server_args+=("--ppn" "${DATACRUMBS_JOB_PPN}") +fi +if [[ "${VERBOSE:-0}" == "1" ]]; then + server_args+=("--verbose") +fi +if [[ "${QUIET:-0}" == "1" ]]; then + server_args+=("--quiet") +fi +if [[ "${DRY_RUN:-0}" == "1" ]]; then + server_args+=("--dry-run") +fi +SERVER_RUN_BIN=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs_server_run.sh +SERVER_STOP_BIN=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs_server_stop.sh -RUNID=${!DATACRUMBS_JOB_ID_VAR} -RUNID=${RUNID:-1000} -DATACRUMBS_LOG_FILE=${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${RUNID}.log -READY_FILE="/tmp/datacrumbs_${DATACRUMBS_USER}_${RUNID}.ready" -debug "RUNID: $RUNID" -debug "DATACRUMBS_JOB_ID_VAR: $DATACRUMBS_JOB_ID_VAR" -debug "value DATACRUMBS_JOB_ID_VAR: ${!DATACRUMBS_JOB_ID_VAR}" -debug "DATACRUMBS_LOG_FILE: $DATACRUMBS_LOG_FILE" -debug "READY_FILE: $READY_FILE" -datacrumbs_init $DATACRUMBS_USER $DATACRUMBS_TRACE_DIR - - -echo "Running cmd: ${APP_CMD[*]} as USER = $DATACRUMBS_USER and storing traces in $DATACRUMBS_TRACE_DIR and log file $DATACRUMBS_LOG_FILE" -datacrumbs_start_server @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs - +echo "Starting DataCrumbs server via: $SERVER_RUN_BIN ${server_args[*]}" +sudo "$SERVER_RUN_BIN" "${server_args[@]}" +if [[ $? -ne 0 ]]; then + echo "Error: Failed to start DataCrumbs server" + exit 1 +fi log "Running App: ${APP_CMD[*]}" job_launch "${APP_CMD[@]}" log "Finished App" -datacrumbs_stop_server @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs $PROG_NAME - -datacrumbs_print_status - -datacrumbs_finalize $DATACRUMBS_USER $DATACRUMBS_TRACE_DIR +echo "Stopping DataCrumbs server via: $SERVER_STOP_BIN ${server_args[*]}" +sudo "$SERVER_STOP_BIN" "${server_args[@]}" +if [[ $? -ne 0 ]]; then + echo "Error: Failed to stop DataCrumbs server" + exit 1 +fi diff --git a/scripts/datacrumbs/datacrumbs_run_validator.in b/scripts/datacrumbs/datacrumbs_run_validator.in index dd19c23d..4a120b63 100755 --- a/scripts/datacrumbs/datacrumbs_run_validator.in +++ b/scripts/datacrumbs/datacrumbs_run_validator.in @@ -2,6 +2,14 @@ SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ +# Source argument parser +source "$SCRIPT_DIR/datacrumbs_args" + +dc_args_init "DATACRUMBS_VALIDATOR" +dc_args_add_subcommand "DATACRUMBS_VALIDATOR" "enable_mpi" "1" "nodes" "ppn" + +dc_args_parse "DATACRUMBS_VALIDATOR" "datacrumbs_run_validator" "$@" + source $SCRIPT_DIR/datacrumbs_setup check_root_user diff --git a/scripts/datacrumbs/datacrumbs_server_run.sh.in b/scripts/datacrumbs/datacrumbs_server_run.sh.in index 4e6ddfd8..1d76f5b2 100755 --- a/scripts/datacrumbs/datacrumbs_server_run.sh.in +++ b/scripts/datacrumbs/datacrumbs_server_run.sh.in @@ -12,7 +12,7 @@ fi source "$SCRIPT_DIR/datacrumbs_args" dc_args_init "DATACRUMBS" -dc_args_add_option "DATACRUMBS" "composite-name" "OPTIONAL" "Composable name" "string" +dc_args_add_option "DATACRUMBS" "composite-name" "OPTIONAL" "Composable name" "string" "$DATACRUMBS_COMPOSABLE_NAME" dc_args_add_option "DATACRUMBS" "enable-mpi" "OPTIONAL" "switch to enable MPI" "bool" "0" dc_args_add_option "DATACRUMBS" "nodes" "OPTIONAL" "Set number of nodes" "int" "1" dc_args_add_option "DATACRUMBS" "ppn" "OPTIONAL" "Set processes per node" "int" "1" @@ -35,24 +35,20 @@ PROG_NAME=$(basename "$0") source $SCRIPT_DIR/datacrumbs_setup if [[ "$DATACRUMBS_COMPOSITE_NAME" != "" ]] && [[ "$DATACRUMBS_COMPOSITE_NAME" != "NONE" ]]; then - if [[ ! -f "${DATACRUMBS_CLIENT_BIN}/datacrumbs_${DATACRUMBS_COMPOSITE_NAME}" ]]; then - error "Composite ${DATACRUMBS_COMPOSITE_NAME} not found for ${DATACRUMBS_USER}" + if ! validate_datacrumbs_composite_name "${DATACRUMBS_COMPOSITE_NAME}"; then + error "Invalid composable name: ${DATACRUMBS_COMPOSITE_NAME}" exit 1 fi fi check_sudo_user - -RUNID=${!DATACRUMBS_JOB_ID_VAR} -RUNID=${RUNID:-1000} -DATACRUMBS_LOG_FILE=${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${RUNID}.log -READY_FILE="/tmp/datacrumbs_${DATACRUMBS_USER}_${RUNID}.ready" -debug "RUNID: $RUNID" + +debug "DATACRUMBS_SERVER_RUN_ID: $DATACRUMBS_SERVER_RUN_ID" debug "DATACRUMBS_JOB_ID_VAR: $DATACRUMBS_JOB_ID_VAR" debug "value DATACRUMBS_JOB_ID_VAR: ${!DATACRUMBS_JOB_ID_VAR}" debug "DATACRUMBS_LOG_FILE: $DATACRUMBS_LOG_FILE" -debug "READY_FILE: $READY_FILE" +debug "DATACRUMBS_SERVER_READY_FILE: $DATACRUMBS_SERVER_READY_FILE" log "Running as USER = $DATACRUMBS_USER and storing traces in $DATACRUMBS_TRACE_DIR and log file $DATACRUMBS_LOG_FILE" datacrumbs_init $DATACRUMBS_USER $DATACRUMBS_TRACE_DIR exec=() diff --git a/scripts/datacrumbs/datacrumbs_server_stop.sh.in b/scripts/datacrumbs/datacrumbs_server_stop.sh.in index 473848d6..cb424072 100755 --- a/scripts/datacrumbs/datacrumbs_server_stop.sh.in +++ b/scripts/datacrumbs/datacrumbs_server_stop.sh.in @@ -12,7 +12,7 @@ fi source "$SCRIPT_DIR/datacrumbs_args" dc_args_init "DATACRUMBS" -dc_args_add_option "DATACRUMBS" "composite-name" "OPTIONAL" "Composable name" "string" +dc_args_add_option "DATACRUMBS" "composite-name" "OPTIONAL" "Composable name" "string" "$DATACRUMBS_COMPOSABLE_NAME" dc_args_add_option "DATACRUMBS" "enable-mpi" "OPTIONAL" "switch to enable MPI" "bool" "0" dc_args_add_option "DATACRUMBS" "nodes" "OPTIONAL" "Set number of nodes" "int" "1" dc_args_add_option "DATACRUMBS" "ppn" "OPTIONAL" "Set processes per node" "int" "1" @@ -49,15 +49,11 @@ read -ra APP_CMD <<< "${DATACRUMBS_APP}" check_sudo_user -RUNID=${!DATACRUMBS_JOB_ID_VAR} -RUNID=${RUNID:-1000} -DATACRUMBS_LOG_FILE=${DATACRUMBS_LOG_DIR:-/tmp}/datacrumbs_${DATACRUMBS_USER}_${RUNID}.log -READY_FILE="/tmp/datacrumbs_${DATACRUMBS_USER}_${RUNID}.ready" -debug "RUNID: $RUNID" +debug "DATACRUMBS_SERVER_RUN_ID: $DATACRUMBS_SERVER_RUN_ID" debug "DATACRUMBS_JOB_ID_VAR: $DATACRUMBS_JOB_ID_VAR" debug "value DATACRUMBS_JOB_ID_VAR: ${!DATACRUMBS_JOB_ID_VAR}" debug "DATACRUMBS_LOG_FILE: $DATACRUMBS_LOG_FILE" -debug "READY_FILE: $READY_FILE" +debug "DATACRUMBS_SERVER_READY_FILE: $DATACRUMBS_SERVER_READY_FILE" echo "Running cmd: ${APP_CMD[*]} as USER = $DATACRUMBS_USER and storing traces in $DATACRUMBS_TRACE_DIR and log file $DATACRUMBS_LOG_FILE" exec=() diff --git a/scripts/datacrumbs/datacrumbs_service_common.sh.in b/scripts/datacrumbs/datacrumbs_service_common.sh.in index 621a45e9..6dfa041e 100755 --- a/scripts/datacrumbs/datacrumbs_service_common.sh.in +++ b/scripts/datacrumbs/datacrumbs_service_common.sh.in @@ -1,41 +1,128 @@ #!/bin/bash -FLUX_DATACRUMBS=$(flux job info $FLUX_JOB_ID jobspec | jq -r .attributes.system.datacrumbs) +source @DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_setup -warn_user() { - ## post exception to flux log, cancel job - flux job raise --severity=1 ${FLUX_JOB_ID} "datacrumbs-prolog: $@" +function get_general_datacrumbs_enabled() { + local enabled=${DATACRUMBS_ENABLED:-0} + enabled_value="no" + if [[ "${enabled}" -eq "1" ]]; then + enabled_value="yes" + fi + log_system "get_general_datacrumbs_enabled returned enabled:${enabled_value}" + echo "${enabled_value}" } -if [[ ${FLUX_DATACRUMBS} == "null" ]]; then - logger "User hasn't requested datacrumbs feature, exiting." - return 1 -fi -FLUX_DATACRUMBS=$(flux job info $FLUX_JOB_ID jobspec | jq -r .attributes.system.datacrumbs.enable) -if [[ ${FLUX_DATACRUMBS} == "null" || "${FLUX_DATACRUMBS}" != "yes" ]]; then - logger "User hasn't requested datacrumbs feature, exiting." - return 1 -fi +function get_flux_datacrumbs_enabled() { + local enabled=$(flux job info $FLUX_JOB_ID jobspec 2>/dev/null | jq -r .attributes.system.datacrumbs 2>/dev/null) + enabled_value="no" + if [[ ${enabled} == "null" ]]; then + log_system "User hasn't requested datacrumbs feature enabled:${enabled}, exiting." + else + FLUX_DATACRUMBS=$(flux job info $FLUX_JOB_ID jobspec 2>/dev/null | jq -r .attributes.system.datacrumbs.enable 2>/dev/null) + if [[ ${FLUX_DATACRUMBS} == "null" || "${FLUX_DATACRUMBS}" != "yes" ]]; then + log_system "User hasn't requested datacrumbs feature FLUX_DATACRUMBS:${FLUX_DATACRUMBS}, exiting." + else + enabled_value="yes" + fi + fi + log_system "get_flux_datacrumbs_enabled returned enabled:${enabled_value}" + echo "${enabled_value}" +} -FLUX_DATACRUMBS_COMPOSE=$(flux job info $FLUX_JOB_ID jobspec | jq -r .attributes.system.datacrumbs.composite) -if [[ ${FLUX_DATACRUMBS_COMPOSE} == "null" || ${FLUX_DATACRUMBS_COMPOSE} == "" ]]; then - DATACRUMBS_COMPOSABLE_NAME="NONE" - logger "User hasn't requested datacrumbs' composite feature using ${DATACRUMBS_COMPOSABLE_NAME}." -else - DATACRUMBS_COMPOSABLE_NAME=${FLUX_DATACRUMBS_COMPOSE} - if [ -n "$FLUX_JOB_USERID" ]; then - DATACRUMBS_USER=$(id -nu $FLUX_JOB_USERID) + +function get_slurm_datacrumbs_enabled() { + enabled_value=$(get_general_datacrumbs_enabled) + if [[ "${enabled_value}" == "no" ]]; then + if [[ ${SLURM_JOB_PARTITION} != "datacrumbs" ]]; then + enabled_value="no" + else + enabled_value="yes" + fi fi - if [[ ! -f "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXEC_DIR@/@PROJECT_NAME@/@CMAKE_INSTALL_SBINDIR@/${DATACRUMBS_USER}/datacrumbs_${DATACRUMBS_COMPOSABLE_NAME}" ]]; then - warn_user "Error: Composable name ${DATACRUMBS_COMPOSABLE_NAME} does not exist." - return 1 + log_system "get_slurm_datacrumbs_enabled returned enabled:${enabled_value}" + echo "${enabled_value}" +} + + +function get_datacrumbs_enabled() { + local enabled="no" + if [[ "FLUX" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + enabled=$(get_flux_datacrumbs_enabled) + elif [[ "@DATACRUMBS_SCHEDULER_TYPE@" == "SLURM" ]]; then + enabled=$(get_slurm_datacrumbs_enabled) + else + enabled=$(get_general_datacrumbs_enabled) fi - logger "User has requested datacrumbs' composite feature using ${DATACRUMBS_COMPOSABLE_NAME}." -fi + log_system "get_datacrumbs_enabled returned enabled:${enabled}" + echo "${enabled}" +} + +function get_default_datacrumbs_composite_name() { + echo "NONE" +} -if [[ ! ${DATACRUMBS_COMPOSABLE_NAME} =~ ^[a-zA-Z_]+$ ]]; then - warn_user "Error: DATACRUMBS_COMPOSABLE_NAME: ${DATACRUMBS_COMPOSABLE_NAME} contains invalid characters. Only alphabets and underscores are allowed." +function get_flux_datacrumbs_composite_name() { + local composite_name=$(flux job info $FLUX_JOB_ID jobspec | jq -r .attributes.system.datacrumbs.composite) + if [[ ${composite_name} == "null" || ${composite_name} == "" ]]; then + log_system "User hasn't requested datacrumbs' composite feature using ${composite_name}.""ERROR" + else + log_system "User has requested datacrumbs' composite feature using ${composite_name}." + fi + log_system "get_flux_datacrumbs_composite_name returned composite_name:${composite_name}" + echo "${composite_name}" +} + +function get_general_datacrumbs_composite_name() { + local composite_name=$(get_default_datacrumbs_composite_name) + if [[ ${DATACRUMBS_COMPOSITE_NAME} == "null" || ${composite_name} == "" ]]; then + log_system "User hasn't requested datacrumbs' composite feature using ${composite_name}." + else + log_system "User has requested datacrumbs' composite feature using ${composite_name}." + fi + log_system "get_general_datacrumbs_composite_name returned composite_name:${composite_name}" + echo "${composite_name}" +} + + +function get_slurm_datacrumbs_composite_name() { + local composite_name=$(get_general_datacrumbs_composite_name) + log_system "get_slurm_datacrumbs_composite_name returned composite_name:${composite_name}" + echo "${composite_name}" +} + +function get_datacrumbs_composite_name() { + local name=$(get_default_datacrumbs_composite_name) + if [[ "FLUX" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + name=$(get_flux_datacrumbs_composite_name) + elif [[ "@DATACRUMBS_SCHEDULER_TYPE@" == "SLURM" ]]; then + name=$(get_slurm_datacrumbs_composite_name) + else + name=$(get_general_datacrumbs_composite_name) + fi + if [[ "${name}" != "$(get_default_datacrumbs_composite_name)" && "${name}" != "ERROR" ]]; then + if ! validate_datacrumbs_composite_name "${name}"; then + name="ERROR" + fi + fi + log_system "get_datacrumbs_composite_name returned name:${name}" + echo "${name}" +} + +DATACRUMBS_ENABLED=$(get_datacrumbs_enabled) +if [[ "${DATACRUMBS_ENABLED}" != "yes" ]]; then + log_system "User hasn't requested datacrumbs feature, exiting." return 1 fi +DATACRUMBS_COMPOSABLE_NAME=$(get_datacrumbs_composite_name) +if [[ "${DATACRUMBS_COMPOSABLE_NAME}" == "ERROR" ]]; then + return 1 +fi +if [[ "${DATACRUMBS_COMPOSABLE_NAME}" == "$(get_default_datacrumbs_composite_name)" ]]; then + log_user "Running system datacrumbs" +else + log_user "Running a composite datacrumbs with name: ${DATACRUMBS_COMPOSABLE_NAME}" +fi -export DATACRUMBS_COMPOSABLE_NAME \ No newline at end of file +readonly DATACRUMBS_COMPOSABLE_NAME +export DATACRUMBS_COMPOSABLE_NAME +export DATACRUMBS_USER \ No newline at end of file diff --git a/scripts/datacrumbs/datacrumbs_service_run.sh.in b/scripts/datacrumbs/datacrumbs_service_run.sh.in index 6edf519e..14b39ac6 100755 --- a/scripts/datacrumbs/datacrumbs_service_run.sh.in +++ b/scripts/datacrumbs/datacrumbs_service_run.sh.in @@ -1,10 +1,10 @@ #!/bin/bash source @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_service_common.sh -if [ $? -eq 0 ]; then +if [[ $? -eq 0 ]]; then umask 022 - printenv > /run/datacrumbs.env - echo datacrumbs_service_run "Starting datacrumbs service run script on job ${FLUX_JOB_ID}" - sudo systemctl enable datacrumbs@$DATACRUMBS_COMPOSABLE_NAME.service - sudo systemctl start datacrumbs@$DATACRUMBS_COMPOSABLE_NAME.service + printenv > ${DATACRUMBS_SERVER_ENV_FILE} + echo datacrumbs_service_run "Starting datacrumbs service run script on job ${DATACRUMBS_SERVER_RUN_ID}" + sudo systemctl enable datacrumbs@${DATACRUMBS_SERVER_RUN_ID}.service + sudo systemctl start datacrumbs@${DATACRUMBS_SERVER_RUN_ID}.service fi exit 0 \ No newline at end of file diff --git a/scripts/datacrumbs/datacrumbs_service_stop.sh.in b/scripts/datacrumbs/datacrumbs_service_stop.sh.in index 291c707c..278ca082 100755 --- a/scripts/datacrumbs/datacrumbs_service_stop.sh.in +++ b/scripts/datacrumbs/datacrumbs_service_stop.sh.in @@ -1,7 +1,8 @@ #!/bin/bash source @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_service_common.sh -if [ $? -eq 0 ]; then - sudo systemctl stop datacrumbs@$DATACRUMBS_COMPOSABLE_NAME.service +if [[ $? -eq 0 ]]; then + sudo systemctl stop datacrumbs@${DATACRUMBS_SERVER_RUN_ID}.service + sudo rm ${DATACRUMBS_SERVER_ENV_FILE} fi exit 0 diff --git a/scripts/datacrumbs/datacrumbs_setup.in b/scripts/datacrumbs/datacrumbs_setup.in index 3abd1430..5428beee 100755 --- a/scripts/datacrumbs/datacrumbs_setup.in +++ b/scripts/datacrumbs/datacrumbs_setup.in @@ -1,31 +1,32 @@ #! /usr/bin/env bash +if [[ -z "${BASH_VERSION}" ]]; then + error "This script requires bash" + exit 1 +fi + SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ CONFIG_FILE=@DATACRUMBS_INSTALL_ETC_CONFIGSDIR@/project.yaml source ${SCRIPT_DIR}/datacrumbs_utility -if [ "${DATACRUMBS_ENV_LOADED:-0}" -eq 0 ]; then - if [ "$EUID" -ne 0 ]; then - export DATACRUMBS_IS_ROOT=0 - export DATACRUMBS_USER=$(id -un) - else - export DATACRUMBS_IS_ROOT=1 - export DATACRUMBS_USER=$SUDO_USER - if [ -z "$DATACRUMBS_USER" ]; then - DATACRUMBS_USER=$USER - debug "User is root." - fi - if [ -z "$DATACRUMBS_USER" ] || [ "$DATACRUMBS_USER" = "root" ]; then - if [ -n "$FLUX_JOB_USERID" ]; then - DATACRUMBS_USER=$(id -nu $FLUX_JOB_USERID) - fi - fi +if [[ "$(id -u)" != "0" ]]; then + export DATACRUMBS_IS_ROOT=0 + export DATACRUMBS_USER=$(id -un) +else + export DATACRUMBS_IS_ROOT=1 + export DATACRUMBS_USER=$SUDO_USER + if [[ -z "$DATACRUMBS_USER" ]]; then + DATACRUMBS_USER=$USER + debug "User is root." fi - - readonly DATACRUMBS_IS_ROOT - readonly DATACRUMBS_USER + if [[ -z "$DATACRUMBS_USER" ]] || [[ "$DATACRUMBS_USER" = "root" ]]; then + DATACRUMBS_USER=$(get_actual_user) + fi +fi + +if [[ "${DATACRUMBS_ENV_LOADED:-0}" == "0" ]]; then eval $(datacrumbs_parse_yaml ${CONFIG_FILE} "DATACRUMBS_") log "After loading yaml for $DATACRUMBS_USER" YEAR=$(date +%y) @@ -34,13 +35,24 @@ if [ "${DATACRUMBS_ENV_LOADED:-0}" -eq 0 ]; then export DATACRUMBS_TRACE_DIR=$(echo "$DATACRUMBS_TRACE_DIR_PATTERN" | sed "s|%YY%|$YEAR|g; s|%MM%|$MONTH|g; s|%DD%|$DAY|g") readonly DATACRUMBS_TRACE_DIR debug "Log directory set to $DATACRUMBS_TRACE_DIR" + + mkdir -p "${DATACRUMBS_SERVER_RUN_DIR}" 2> /dev/null + export DATACRUMBS_ENV_LOADED=1 readonly DATACRUMBS_ENV_LOADED + if command -v module &> /dev/null; then + export DATACRUMBS_MODULE_AVAILABLE=1 + else + export DATACRUMBS_MODULE_AVAILABLE=0 + fi + readonly DATACRUMBS_MODULE_AVAILABLE + eval $DATACRUMBS_SERVER_PREAMBLE + fi -if [ "$DATACRUMBS_MODULE_AVAILABLE" -eq 1 ] && [ "$DATACRUMBS_SERVER_MODULE" == "1" ]; then +if [[ "$DATACRUMBS_MODULE_AVAILABLE" == "1" ]] && [[ "$DATACRUMBS_SERVER_MODULE" == "1" ]]; then if ! module is-loaded datacrumbs/@DATACRUMBS_RELEASE_VERSION_STRING@; then module use @DATACRUMBS_INSTALL_ETC_MODULESDIR@ module load datacrumbs/@DATACRUMBS_RELEASE_VERSION_STRING@ diff --git a/scripts/datacrumbs/datacrumbs_stop.in b/scripts/datacrumbs/datacrumbs_stop.in index 6c4b140a..3fc2b7fe 100755 --- a/scripts/datacrumbs/datacrumbs_stop.in +++ b/scripts/datacrumbs/datacrumbs_stop.in @@ -13,7 +13,7 @@ if [[ "$DATACRUMBS_IS_ROOT" != "1" ]]; then exit 1 fi -if [ "$PROG_NAME" == "" ]; then +if [[ "$PROG_NAME" == "" ]]; then ps -aef | grep 'datacrumbs' | grep ${DATACRUMBS_USER} | awk '{print $2}' | xargs kill -9 else ps -aef | grep 'datacrumbs' | grep ${DATACRUMBS_USER} | grep -v $PROG_NAME | awk '{print $2}' | xargs kill -9 diff --git a/scripts/datacrumbs/datacrumbs_utility.in b/scripts/datacrumbs/datacrumbs_utility.in index 116298d4..0a20cc79 100755 --- a/scripts/datacrumbs/datacrumbs_utility.in +++ b/scripts/datacrumbs/datacrumbs_utility.in @@ -30,13 +30,13 @@ function datacrumbs_parse_yaml { function datacrumbs_run_command() { local err_msg="$1" shift - if [ "${DRY_RUN:-0}" -eq 1 ]; then + if [[ "${DRY_RUN:-0}" == "1" ]]; then log "[DRY RUN] Would run: $*" return 0 fi "$@" local status=$? - if [ $status -ne 0 ]; then + if [[ $status -ne 0 ]]; then log "Error: $err_msg" exit $status fi @@ -46,20 +46,20 @@ function datacrumbs_run_command() { # datacrumbs_run_command "Failed to list directory" ls /nonexistent/path function datacrumbs_finalize() { - if [ "${DRY_RUN:-0}" -eq 1 ]; then + if [[ "${DRY_RUN:-0}" == "1" ]]; then log "[DRY RUN] Would finalize for user: $DATACRUMBS_USER, log path: $DATACRUMBS_TRACE_DIR" return 0 fi } function datacrumbs_init() { - if [ "${DRY_RUN:-0}" -eq 1 ]; then + if [[ "${DRY_RUN:-0}" == "1" ]]; then log "[DRY RUN] Would create log directory: ${DATACRUMBS_TRACE_DIR}" return 0 fi - if [ ! -d "${DATACRUMBS_TRACE_DIR}" ]; then + if [[ ! -d "${DATACRUMBS_TRACE_DIR}" ]]; then mkdir -p "${DATACRUMBS_TRACE_DIR}" - if [ $? -ne 0 ]; then + if [[ $? -ne 0 ]]; then error "Failed to create trace directory: ${DATACRUMBS_TRACE_DIR}" exit 1 fi @@ -68,81 +68,77 @@ function datacrumbs_init() { } function datacrumbs_start_server() { - if [ "$RUNID" == "1000" ]; then - RUNID=$(date +"%Y-%m-%d-%H-%M-%S") + if [[ ! -w "$DATACRUMBS_SERVER_RUN_DIR" ]]; then + warn "Cannot write to DATACRUMBS_SERVER_RUN_DIR: $DATACRUMBS_SERVER_RUN_DIR. Trying sudo." + sudo mkdir -p "$DATACRUMBS_SERVER_RUN_DIR" fi - READY_FILE="/tmp/datacrumbs_${DATACRUMBS_USER}_${RUNID}.ready" exec=$1 exec=($exec) - if [ -z "$DATACRUMBS_TRACE_DIR" ]; then + if [[ -z "$DATACRUMBS_TRACE_DIR" ]]; then error "DATACRUMBS_TRACE_DIR is empty. Please set the trace directory." exit 1 fi - common_cmd=("$DATACRUMBS_INSTALL_HOST" "--user" "$DATACRUMBS_USER" "--config_path" "$DATACRUMBS_INSTALL_CONFIGS_DIR" "--data_dir" "$DATACRUMBS_INSTALL_DATA_DIR" "--trace_log_dir" "$DATACRUMBS_TRACE_DIR" --run_id "$RUNID") + common_cmd=("$DATACRUMBS_INSTALL_HOST" "--user" "$DATACRUMBS_USER" "--config_path" "$DATACRUMBS_INSTALL_CONFIGS_DIR" "--data_dir" "$DATACRUMBS_INSTALL_DATA_DIR" "--trace_log_dir" "$DATACRUMBS_TRACE_DIR" --run_id "$DATACRUMBS_SERVER_RUN_ID") cmd=("${exec[@]}" "run" "${common_cmd[@]}") WAIT_INTERVAL=2 ELAPSED=0 log "Starting Server: ${cmd[*]}" - if [ "${DRY_RUN:-0}" -eq 1 ]; then + if [[ "${DRY_RUN:-0}" == "1" ]]; then server_launch "${cmd[@]}" else server_launch "${cmd[@]}" > $DATACRUMBS_LOG_FILE 2>&1 & PID=$! - echo $PID > "$DATACRUMBS_SERVER_PID_FILE" + echo $PID > "$DATACRUMBS_SERVER_SYSTEMD_PID_FILE" log "Service started with PID: $PID" chown ${DATACRUMBS_USER}:${DATACRUMBS_USER} $DATACRUMBS_LOG_FILE fi - if [ "${DRY_RUN:-0}" -eq 1 ]; then - log "[DRY RUN] Would wait for ready file: $READY_FILE (DATACRUMBS_SERVER_LOAD_TIMEOUT: $DATACRUMBS_SERVER_LOAD_TIMEOUT seconds)" + if [[ "${DRY_RUN:-0}" == "1" ]]; then + log "[DRY RUN] Would wait for ready file: $DATACRUMBS_SERVER_READY_FILE (DATACRUMBS_SERVER_LOAD_TIMEOUT: $DATACRUMBS_SERVER_LOAD_TIMEOUT seconds)" return 0 fi - while [ ! -f "$READY_FILE" ]; do + while [[ ! -f "$DATACRUMBS_SERVER_READY_FILE" ]]; do sleep $WAIT_INTERVAL log "Waiting for ${ELAPSED} seconds $Server..." ELAPSED=$((ELAPSED + WAIT_INTERVAL)) - if [ $ELAPSED -ge $DATACRUMBS_SERVER_LOAD_TIMEOUT ]; then - log "DATACRUMBS_SERVER_LOAD_TIMEOUT waiting for $READY_FILE" + if [[ $ELAPSED -ge $DATACRUMBS_SERVER_LOAD_TIMEOUT ]]; then + log "DATACRUMBS_SERVER_LOAD_TIMEOUT waiting for $DATACRUMBS_SERVER_READY_FILE" server_launch $DATACRUMBS_INSTALL_SBIN_DIR/datacrumbs_stop cat $DATACRUMBS_LOG_FILE exit 1 fi done - echo $RUNID > "$DATACRUMBS_SERVER_RUNID_FILE" + echo $DATACRUMBS_SERVER_RUN_ID > "${DATACRUMBS_SERVER_RUN_ID_FILE}" log "Started server" } function datacrumbs_stop_server() { exec=$1 prog_name=$2 - if [ "$RUNID" == "1000" ] && [ -f "$DATACRUMBS_SERVER_RUNID_FILE" ]; then - RUNID=$(cat "$DATACRUMBS_SERVER_RUNID_FILE" 2>/dev/null) - fi - READY_FILE="/tmp/datacrumbs_${DATACRUMBS_USER}_${RUNID}.ready" exec=($exec) - common_cmd=("$DATACRUMBS_INSTALL_HOST" "--user" "$DATACRUMBS_USER" "--config_path" "$DATACRUMBS_INSTALL_CONFIGS_DIR" "--data_dir" "$DATACRUMBS_INSTALL_DATA_DIR" "--trace_log_dir" "$DATACRUMBS_TRACE_DIR" --run_id "$RUNID") + common_cmd=("$DATACRUMBS_INSTALL_HOST" "--user" "$DATACRUMBS_USER" "--config_path" "$DATACRUMBS_INSTALL_CONFIGS_DIR" "--data_dir" "$DATACRUMBS_INSTALL_DATA_DIR" "--trace_log_dir" "$DATACRUMBS_TRACE_DIR" --run_id "$DATACRUMBS_SERVER_RUN_ID") cmd=("${exec[@]}" "stop" "${common_cmd[@]}") log "Stopping Server: ${cmd[*]}" - if [ "${DRY_RUN:-0}" -eq 1 ]; then + if [[ "${DRY_RUN:-0}" == "1" ]]; then server_launch "${cmd[@]}" else server_launch "${cmd[@]}" >> $DATACRUMBS_LOG_FILE 2>&1 fi - - if [ "${DRY_RUN:-0}" -eq 1 ]; then - log "[DRY RUN] Would find and kill process(es) with RUNID ${RUNID}" - log "[DRY RUN] Would remove ready file: $READY_FILE" + + if [[ "${DRY_RUN:-0}" == "1" ]]; then + log "[DRY RUN] Would find and kill process(es) with DATACRUMBS_SERVER_RUN_ID ${DATACRUMBS_SERVER_RUN_ID}" + log "[DRY RUN] Would remove ready file: $DATACRUMBS_SERVER_READY_FILE" return 0 fi SERVER_PID=$(cat "$DATACRUMBS_SERVER_PID_FILE") # SERVER_PID=$(ps aux | grep "${RUNID}" | grep -v grep | grep -v "${prog_name}" | awk '{print $2}') - if [ -n "$SERVER_PID" ]; then - log "Found process(es) with RUNID ${RUNID}: $SERVER_PID. Killing them." + if [[ -n "$SERVER_PID" ]]; then + log "Found process(es) with DATACRUMBS_SERVER_RUN_ID ${DATACRUMBS_SERVER_RUN_ID}: $SERVER_PID. Killing them." if [[ "$DATACRUMBS_IS_ROOT" == "1" ]]; then ${DATACRUMBS_INSTALL_SBIN_DIR}/datacrumbs_stop "${prog_name}" else @@ -150,23 +146,22 @@ function datacrumbs_stop_server() { fi cat "${DATACRUMBS_LOG_FILE}" fi - rm -f "${READY_FILE}" - rm -f "${DATACRUMBS_SERVER_RUNID_FILE}" + rm -f "${DATACRUMBS_SERVER_READY_FILE}" + rm -f "${DATACRUMBS_SERVER_RUN_ID_FILE}" + rm -f "${DATACRUMBS_SERVER_PID_FILE}" + rm -f "${DATACRUMBS_SERVER_SYSTEMD_PID_FILE}" log "Stopped server" } function datacrumbs_print_status() { - if [ "$RUNID" == "1000" ] && [ -f "$DATACRUMBS_SERVER_RUNID_FILE" ]; then - RUNID=$(cat "$DATACRUMBS_SERVER_RUNID_FILE" 2>/dev/null) - fi - local status_file="/tmp/datacrumbs_${DATACRUMBS_USER}_status_${RUNID}.json" - if [ "${DRY_RUN:-0}" -eq 1 ]; then + local status_file=${DATACRUMBS_SERVER_STATUS_FILE} + if [[ "${DRY_RUN:-0}" == "1" ]]; then log "[DRY RUN] Would print status from: $status_file" log "[DRY RUN] Would remove status file: $status_file" return 0 fi - if [ ! -f "$status_file" ]; then + if [[ ! -f "$status_file" ]]; then log "Status file not found: $status_file" return 1 fi @@ -212,7 +207,7 @@ function job_launch() { debug "Launching job without MPI" cmd=("$@") fi - if [ "${DRY_RUN:-0}" -eq 1 ]; then + if [[ "${DRY_RUN:-0}" == "1" ]]; then log "[DRY RUN] Would launch job: ${cmd[*]}" return 0 fi @@ -239,9 +234,9 @@ function server_launch() { cmd=( "${cmd[@]}" ) else debug "Launching server without MPI" - cmd=( "${cmd[@]}" --disable_mpi) + cmd=( "${cmd[@]}" --disable-mpi) fi - if [ "${DRY_RUN:-0}" -eq 1 ]; then + if [[ "${DRY_RUN:-0}" == "1" ]]; then log "[DRY RUN] Would launch server: ${cmd[*]}" return 0 fi @@ -249,9 +244,49 @@ function server_launch() { "${cmd[@]}" } -if command -v module &> /dev/null -then - export DATACRUMBS_MODULE_AVAILABLE=1 -else - export DATACRUMBS_MODULE_AVAILABLE=0 -fi \ No newline at end of file +function get_actual_user() { + local user=$(whoami) + if [[ "FLUX" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + if [[ -n "$FLUX_JOB_USERID" ]]; then + user=$(id -nu $FLUX_JOB_USERID) + fi + elif [[ "SLURM" == "@DATACRUMBS_SCHEDULER_TYPE@" ]]; then + if [[ -n "$SLURM_JOB_UID" ]]; then + user=$(id -nu $SLURM_JOB_UID) + fi + fi + log_system "get_actual_user returned user:${user}" + echo "${user}" +} + +function check_composite_location() { + local name="$1" + local selected_location="" + local user_location=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/@PROJECT_NAME@/@CMAKE_INSTALL_SBINDIR@/${DATACRUMBS_USER}/datacrumbs_${name} + local system_location=@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBEXECDIR@/@PROJECT_NAME@/@CMAKE_INSTALL_SBINDIR@/${DATACRUMBS_INSTALL_USER}/datacrumbs_${name} + if [[ -f "${user_location}" ]]; then + selected_location="${user_location}" + elif [[ -f "${system_location}" ]]; then + selected_location="${system_location}" + else + selected_location="NA" + fi + log_system "check_composite_location for name:${name} selected_location:${selected_location}" + echo "${selected_location}" +} + +function validate_datacrumbs_composite_name() { + local name="$1" + return_code=0 + if [[ ! ${name} =~ ^[a-zA-Z_]+$ ]]; then + warn_user "Error: DATACRUMBS_COMPOSABLE_NAME: ${name} contains invalid characters. Only alphabets and underscores are allowed." + return_code=1 + fi + local selected_location=$(check_composite_location "${name}") + if [[ ${return_code} -eq 0 && "${selected_location}" == "NA" ]]; then + warn_user "Error: Composable name ${name} does not exist." + return_code=1 + fi + log_system "validate_datacrumbs_composite_name validated name:${name} return_code:${return_code}" + return ${return_code} +} diff --git a/scripts/docker-build.sh b/scripts/docker-build.sh index f56a8d56..53972794 100755 --- a/scripts/docker-build.sh +++ b/scripts/docker-build.sh @@ -31,7 +31,7 @@ print_error() { } # Check if we're in the correct directory -if [ ! -f "$DOCKERFILE_PATH" ]; then +if [[ ! -f "$DOCKERFILE_PATH" ]]; then print_error "Dockerfile not found at $DOCKERFILE_PATH" print_error "Please run this script from the datacrumbs root directory" exit 1 @@ -86,7 +86,7 @@ while [[ $# -gt 0 ]]; do done # Validate Docker Hub username if pushing -if [ "$PUSH_TO_HUB" = true ] && [ "$DOCKER_HUB_USERNAME" = "your-dockerhub-username" ]; then +if [[ "$PUSH_TO_HUB" = true ]] && [[ "$DOCKER_HUB_USERNAME" = "your-dockerhub-username" ]]; then print_error "Please provide a valid Docker Hub username with -u or set DOCKER_HUB_USERNAME environment variable" exit 1 fi @@ -121,7 +121,7 @@ else fi # Tag for Docker Hub if pushing -if [ "$PUSH_TO_HUB" = true ]; then +if [[ "$PUSH_TO_HUB" = true ]]; then print_status "Tagging image for Docker Hub..." # Tag with version @@ -133,7 +133,7 @@ if [ "$PUSH_TO_HUB" = true ]; then fi # Tag as latest if version is not already latest - if [ "$VERSION" != "latest" ]; then + if [[ "$VERSION" != "latest" ]]; then if $CONTAINER_CMD tag "$LOCAL_TAG" "$HUB_LATEST_TAG"; then print_status "✅ Tagged as $HUB_LATEST_TAG" else @@ -162,7 +162,7 @@ if [ "$PUSH_TO_HUB" = true ]; then fi # Push latest tag if different from version - if [ "$VERSION" != "latest" ]; then + if [[ "$VERSION" != "latest" ]]; then if $PUSH_CMD "$HUB_LATEST_TAG"; then print_status "✅ Pushed $HUB_LATEST_TAG" else @@ -175,7 +175,7 @@ if [ "$PUSH_TO_HUB" = true ]; then echo "" echo "Your image is now available at:" echo " docker pull $HUB_TAG" - if [ "$VERSION" != "latest" ]; then + if [[ "$VERSION" != "latest" ]]; then echo " docker pull $HUB_LATEST_TAG" fi else diff --git a/scripts/formatting/autoformat.sh b/scripts/formatting/autoformat.sh index 9b3e608c..b397ab82 100755 --- a/scripts/formatting/autoformat.sh +++ b/scripts/formatting/autoformat.sh @@ -1,7 +1,7 @@ #! /bin/bash clang_format_exe="clang-format" -if [ $# -ge 1 ]; then +if [[ $# -ge 1 ]]; then clang_format_exe="$1" fi diff --git a/scripts/formatting/check-formatting.sh b/scripts/formatting/check-formatting.sh index b66a6f2b..ed8a1c37 100755 --- a/scripts/formatting/check-formatting.sh +++ b/scripts/formatting/check-formatting.sh @@ -1,7 +1,7 @@ #! /bin/bash clang_format_exe="clang-format" -if [ $# -ge 1 ]; then +if [[ $# -ge 1 ]]; then clang_format_exe="$1" fi diff --git a/src/datacrumbs/common/configuration_manager.cpp b/src/datacrumbs/common/configuration_manager.cpp index 9ff7b293..0d948797 100644 --- a/src/datacrumbs/common/configuration_manager.cpp +++ b/src/datacrumbs/common/configuration_manager.cpp @@ -97,14 +97,14 @@ ArgumentParser::ArgumentParser(int argc, char** argv, ExecutableType exe_type) { } else if (arg == "--log_dir" && i + 1 < argc) { log_dir = argv[++i]; DC_LOG_DEBUG("[ArgumentParser] Log directory set to: %s", log_dir->c_str()); - } else if (arg == "--disable_mpi") { + } else if (arg == "--disable-mpi") { disable_mpi = true; DC_LOG_DEBUG("[ArgumentParser] disable_mpi set to: %s", disable_mpi ? "true" : "false"); } else if (arg == "--help" || arg == "-h") { DC_LOG_PRINT( "Usage: %s [--run_id ] [--trace_log_dir ] " "[--config_path ] [--user ] [--data_dir " - "] [--inclusion_path ] [--log_dir ]", + "] [--inclusion_path ] [--log_dir ] [--disable-mpi]", argv[0]); exit(0); } else { @@ -220,6 +220,8 @@ ConfigurationManager::ConfigurationManager(int argc, char** argv, bool print, std::shared_ptr probe; + DC_LOG_DEBUG("[ConfigurationManager] Capture probe enable_explorer set to: %s", + probe->enable_explorer ? "true" : "false"); // Handle each capture probe type switch (type) { case CaptureType::HEADER: { @@ -343,6 +345,11 @@ ConfigurationManager::ConfigurationManager(int argc, char** argv, bool print, throw std::invalid_argument("Unknown CaptureType in configuration: " + probe_node["type"].as()); } + if (probe_node["enable_explorer"]) { + probe->enable_explorer = probe_node["enable_explorer"].as(); + } else { + probe->enable_explorer = true; // Default to true if not specified + } // Parse probe type if (probe_node["probe"]) { auto probe_type_str = probe_node["probe"].as(); diff --git a/src/datacrumbs/common/data_structures.h b/src/datacrumbs/common/data_structures.h index 56a45071..b7d299d3 100644 --- a/src/datacrumbs/common/data_structures.h +++ b/src/datacrumbs/common/data_structures.h @@ -393,6 +393,7 @@ class CaptureProbe { std::string regex; // Regex pattern for matching std::string name; // Name of the capture probe ProbeType probe_type; // Type of probe associated with the capture + bool enable_explorer; // Flag to enable explorer for this capture probe }; // Capture probe for kernel symbols diff --git a/src/datacrumbs/common/logging.h b/src/datacrumbs/common/logging.h index 2e0f06f5..f5d83d1e 100644 --- a/src/datacrumbs/common/logging.h +++ b/src/datacrumbs/common/logging.h @@ -150,20 +150,40 @@ namespace datacrumbs::logging_internal { inline void log_progress(const std::string& message, size_t current, size_t total) { using namespace std::chrono; static auto start_time = steady_clock::now(); + static size_t last_printed = 0; + constexpr size_t PRINT_INTERVAL = 10000; // Print every 10K events + + // Only print every PRINT_INTERVAL events or when done + if (current != total && (current - last_printed) < PRINT_INTERVAL) { + return; + } + + last_printed = current; float percent = (total > 0) ? (100.0f * current / total) : 0.0f; auto now = steady_clock::now(); double elapsed = duration_cast>(now - start_time).count(); double rate = (elapsed > 0.0) ? (current / elapsed) : 0.0; +#ifdef LOG_TO_FILE + // For file logging, write complete lines without \r to avoid log file bloat + DC_LOG_PRINT("%s [%zu/%zu] %d%% completed | %.2fs elapsed | %.2f events/s", message.c_str(), + current, total, static_cast(percent), elapsed, rate); +#else + // For console logging, use \r for in-place updates DC_LOG_PRINT_NO_NEW_LINE("\r%s [%zu/%zu] %d%% completed | %.2fs elapsed | %.2f events/s", message.c_str(), current, total, static_cast(percent), elapsed, rate); +#endif if (current == total) { +#ifndef LOG_TO_FILE + DC_LOG_PRINT(""); // Print newline to finish the progress line +#endif DC_LOG_PRINT("%s done. Total time: %.2fs, Avg rate: %.2f events/s", message.c_str(), elapsed, rate); start_time = steady_clock::now(); // Reset for next progress + last_printed = 0; } } @@ -171,6 +191,16 @@ inline void log_progress(const std::string& message, size_t current) { using namespace std::chrono; static auto start_time = steady_clock::now(); static std::mutex mtx; + static size_t last_printed = 0; + constexpr size_t PRINT_INTERVAL = 10000; // Print every 10K events + + // Only print every PRINT_INTERVAL events + if ((current - last_printed) < PRINT_INTERVAL) { + return; + } + + last_printed = current; + auto now = steady_clock::now(); double elapsed = duration_cast>(now - start_time).count(); double rate = (elapsed > 0.0) ? (current / elapsed) : 0.0; @@ -220,10 +250,17 @@ inline void log_progress(const std::string& message, size_t current) { current_str.resize(current_str.find('.') != std::string::npos ? current_str.find('.') + 3 : current_str.size()); current_str += multiplier; + +#ifdef LOG_TO_FILE + // For file logging, write complete lines without \r to avoid log file bloat + DC_LOG_PRINT("%s [%s events] | %s elapsed | %s events/s", message.c_str(), current_str.c_str(), + elapsed_str, rate_str.c_str()); +#else + // For console logging, use \r for in-place updates DC_LOG_PRINT_NO_NEW_LINE( "\r \r%s [%s events] | %s elapsed | %s events/s ", message.c_str(), current_str.c_str(), elapsed_str, rate_str.c_str()); - // Optionally, print newline if desired when called with a special value +#endif } } // namespace datacrumbs::logging_internal // Progress logging macro diff --git a/src/datacrumbs/common/utils.h b/src/datacrumbs/common/utils.h index 7959050f..b2b37aa8 100644 --- a/src/datacrumbs/common/utils.h +++ b/src/datacrumbs/common/utils.h @@ -150,5 +150,66 @@ class Timer { double elapsed_time; // Accumulated elapsed time in seconds }; +// Function to remove non-UTF8 characters from a string +inline std::string remove_non_utf8(const std::string& input) { + DC_LOG_TRACE("Start remove_non_utf8, input size: %zu", input.size()); + std::string result; + result.reserve(input.size()); + + for (size_t i = 0; i < input.size();) { + unsigned char byte = static_cast(input[i]); + + // Single-byte UTF-8 character (0xxxxxxx) + if (byte <= 0x7F) { + // Only keep characters valid for filenames/paths + if ((byte >= 'A' && byte <= 'Z') || (byte >= 'a' && byte <= 'z') || + (byte >= '0' && byte <= '9') || byte == '_' || byte == '-' || byte == '.' || + byte == '/') { + result += input[i]; + } else { + DC_LOG_DEBUG("Skipping invalid filename character 0x%02X at position %zu", byte, i); + } + i++; + } + // Multi-byte UTF-8 character + else if ((byte & 0xE0) == 0xC0) { // 2-byte (110xxxxx) + if (i + 1 < input.size() && (static_cast(input[i + 1]) & 0xC0) == 0x80) { + result += input.substr(i, 2); + i += 2; + } else { + DC_LOG_DEBUG("Invalid 2-byte UTF-8 sequence at position %zu", i); + i++; + } + } else if ((byte & 0xF0) == 0xE0) { // 3-byte (1110xxxx) + if (i + 2 < input.size() && (static_cast(input[i + 1]) & 0xC0) == 0x80 && + (static_cast(input[i + 2]) & 0xC0) == 0x80) { + result += input.substr(i, 3); + i += 3; + } else { + DC_LOG_DEBUG("Invalid 3-byte UTF-8 sequence at position %zu", i); + i++; + } + } else if ((byte & 0xF8) == 0xF0) { // 4-byte (11110xxx) + if (i + 3 < input.size() && (static_cast(input[i + 1]) & 0xC0) == 0x80 && + (static_cast(input[i + 2]) & 0xC0) == 0x80 && + (static_cast(input[i + 3]) & 0xC0) == 0x80) { + result += input.substr(i, 4); + i += 4; + } else { + DC_LOG_DEBUG("Invalid 4-byte UTF-8 sequence at position %zu", i); + i++; + } + } else { + // Invalid UTF-8 start byte + DC_LOG_DEBUG("Invalid UTF-8 start byte 0x%02X at position %zu", byte, i); + i++; + } + } + + DC_LOG_DEBUG("remove_non_utf8 completed, output size: %zu", result.size()); + DC_LOG_TRACE("End remove_non_utf8"); + return result; +} + } // namespace utils } // namespace datacrumbs \ No newline at end of file diff --git a/src/datacrumbs/composable/CMakeLists.txt.in b/src/datacrumbs/composable/CMakeLists.txt.in index e6995967..b3ce4bb7 100644 --- a/src/datacrumbs/composable/CMakeLists.txt.in +++ b/src/datacrumbs/composable/CMakeLists.txt.in @@ -77,8 +77,47 @@ endforeach() # ------------------------------------------------------------------------------ # Find all dependencies # ------------------------------------------------------------------------------ -set(yaml-cpp_DIR @YAML_CPP_CMAKE_DIR@) -include_dependencies() +# LIBBPF +include_directories(@LIBBPF_INCLUDEDIR@) +link_directories(@LIBBPF_LIBRARY_DIRS@) +set(LIBBPF_VERSION @LIBBPF_VERSION@) +# YAML_CPP +include_directories(@YAML_CPP_INCLUDE_DIR@) +link_directories(@YAML_CPP_LIBRARY_DIR@) +set(yaml-cpp_VERSION @yaml-cpp_VERSION@) +# LLVM +include_directories(@LLVM_INCLUDE_DIRS@) +link_directories(@LLVM_LIBRARY_DIRS@) +set(CLANG_EXECUTABLE @CLANG_EXECUTABLE@) +set(CLANG_VERSION_OUTPUT @CLANG_VERSION_OUTPUT@) +set(LLVM_VERSION @LLVM_VERSION@) +# JSON_C +include_directories(@json-c_INCLUDE_DIR@) +link_directories(@json-c_LIBRARY_DIR@) +set(json-c_CONSIDERED_VERSIONS @json-c_CONSIDERED_VERSIONS@) +# ZLIB +include_directories(@ZLIB_INCLUDE_DIRS@) +link_directories(@ZLIB_LIBRARY_DIRS@) +set(ZLIB_VERSION @ZLIB_VERSION@) +# MPI +include_directories(@MPI_CXX_INCLUDE_DIRS@) +link_directories(@MPI_CXX_LIBRARY_DIR@) +set(MPI_CXX_VERSION @MPI_CXX_VERSION@) +# Dependencies +set(DEPENDENCY_LIB @DEPENDENCY_LIB@) +set(DEPENDENCY_LIBRARY_DIRS @DEPENDENCY_LIBRARY_DIRS@) +set(CMAKE_INSTALL_RPATH "${DEPENDENCY_LIBRARY_DIRS}") +set(CMAKE_BUILD_RPATH "${DEPENDENCY_LIBRARY_DIRS}") + +# print found packages +message(STATUS " - Found libbpf:${LIBBPF_VERSION} at include:${LIBBPF_INCLUDEDIR} lib:${LIBBPF_LIBRARY_DIRS}") +message(STATUS " - Found yaml-cpp:${yaml-cpp_VERSION} at include:${YAML_CPP_INCLUDE_DIR} lib:${YAML_CPP_LIBRARY_DIR}") +message(STATUS " - Found llvm:${LLVM_VERSION} at include:${LLVM_INCLUDE_DIRS} lib:${LLVM_LIBRARY_DIRS} clang:${CLANG_EXECUTABLE}") +message(STATUS " - Found json-c:${json-c_CONSIDERED_VERSIONS} at include:${json-c_INCLUDE_DIR} lib:${json-c_LIBRARY_DIR}") +message(STATUS " - Found zlib:${ZLIB_VERSION} at include:${ZLIB_INCLUDE_DIRS} lib:${ZLIB_LIBRARY_DIRS}") +message(STATUS " - Found mpi:${MPI_CXX_VERSION} at include:${MPI_CXX_INCLUDE_DIRS} lib:${MPI_CXX_LIBRARY_DIR}") +message(STATUS " - DEPENDENCY_LIBRARY_DIRS for RPATH:${DEPENDENCY_LIBRARY_DIRS}") +message(STATUS " - DEPENDENCY_LIB for linking :${DEPENDENCY_LIB}") # ------------------------------------------------------------------------------ # Build composite object file diff --git a/src/datacrumbs/explorer/mechanism/elf_capture.cpp b/src/datacrumbs/explorer/mechanism/elf_capture.cpp index 5364fda5..0d4c3e7c 100644 --- a/src/datacrumbs/explorer/mechanism/elf_capture.cpp +++ b/src/datacrumbs/explorer/mechanism/elf_capture.cpp @@ -93,7 +93,7 @@ std::vector ElfSymbolExtractor::extract_symbols() { if (symbols_map.find(name) == symbols_map.end()) { symbols_map[name] = std::unordered_set(); } - if (!name.empty()) { + if (!name.empty() && name.find(':') == std::string::npos) { char buffer[32]; unsigned long offset = static_cast( syms[j].st_value); // TODO(Hari): Explore if i have to relocate for virtual address diff --git a/src/datacrumbs/explorer/probe_explorer.cpp b/src/datacrumbs/explorer/probe_explorer.cpp index 93277e51..12d5c1f0 100644 --- a/src/datacrumbs/explorer/probe_explorer.cpp +++ b/src/datacrumbs/explorer/probe_explorer.cpp @@ -135,6 +135,8 @@ std::vector> ProbeExplorer::extractProbes() { } } + auto existingProbesMap = loadExistingProbes(); + static std::unordered_set global_function_names; std::vector> probes; // Iterate over all capture probes from configuration @@ -163,7 +165,65 @@ std::vector> ProbeExplorer::extractProbes() { DC_LOG_ERROR("Unknown probe type encountered in extractProbes()"); throw std::runtime_error("Unknown probe type encountered in extractProbes()"); } + if (!capture_probe->enable_explorer) { + // Check if probe already exists and can be reused + auto existingProbeIt = existingProbesMap.find(capture_probe->name); + if (existingProbeIt != existingProbesMap.end()) { + DC_LOG_INFO("Found existing probe '%s', reusing it", capture_probe->name.c_str()); + auto existingProbe = existingProbeIt->second; + + // Copy fields from existing probe to new probe + probe->name = existingProbe->name; + probe->functions = existingProbe->functions; + // Copy type-specific fields based on probe type + switch (capture_probe->probe_type) { + case ProbeType::UPROBE: + if (auto existingUprobe = std::dynamic_pointer_cast(existingProbe)) { + if (auto uprobe = std::dynamic_pointer_cast(probe)) { + uprobe->binary_path = existingUprobe->binary_path; + uprobe->include_offsets = existingUprobe->include_offsets; + } + } + break; + case ProbeType::USDT: + if (auto existingUsdtProbe = std::dynamic_pointer_cast(existingProbe)) { + if (auto usdtProbe = std::dynamic_pointer_cast(probe)) { + usdtProbe->binary_path = existingUsdtProbe->binary_path; + usdtProbe->provider = existingUsdtProbe->provider; + } + } + break; + case ProbeType::CUSTOM: + if (auto existingCustomProbe = std::dynamic_pointer_cast(existingProbe)) { + if (auto customProbe = std::dynamic_pointer_cast(probe)) { + customProbe->bpf_path = existingCustomProbe->bpf_path; + customProbe->start_event_id = existingCustomProbe->start_event_id; + customProbe->process_header = existingCustomProbe->process_header; + customProbe->event_type = existingCustomProbe->event_type; + } + } + break; + default: + // For SYSCALLS and KPROBE, no additional fields to copy + break; + } + DC_LOG_INFO("Reused existing probe: %s", probe->name.c_str()); + + // Validate the existing probe and add it to the list + if (probe->validate()) { + DC_LOG_INFO("Valid probe reused: %s", probe->name.c_str()); + probes.push_back(probe); + continue; // Skip the rest of the processing for this probe + } else { + DC_LOG_WARN("Existing probe '%s' failed validation, will extract fresh", + probe->name.c_str()); + } + } else { + DC_LOG_INFO("No existing probe found for '%s', will extract fresh", + capture_probe->name.c_str()); + } + } // Extract function names based on capture type switch (capture_probe->type) { case CaptureType::HEADER: @@ -505,6 +565,173 @@ void ProbeExplorer::create_exclusion_file(std::vector> pr DC_LOG_TRACE("ProbeExplorer::create_exclusion_file - end"); } +// Loads existing probes from JSON file and builds a map for querying +std::unordered_map> ProbeExplorer::loadExistingProbes() { + DC_LOG_TRACE("ProbeExplorer::loadExistingProbes - start"); + std::unordered_map> existingProbesMap; + + if (!configManager_->probe_file_path.empty() && + std::filesystem::exists(configManager_->probe_file_path)) { + std::ifstream ifs(configManager_->probe_file_path); + if (ifs.is_open()) { + std::string content((std::istreambuf_iterator(ifs)), std::istreambuf_iterator()); + json_object* jobj = json_tokener_parse(content.c_str()); + + if (jobj && json_object_get_type(jobj) == json_type_array) { + int arr_len = json_object_array_length(jobj); + for (int i = 0; i < arr_len; ++i) { + json_object* probe_obj = json_object_array_get_idx(jobj, i); + if (!probe_obj) { + DC_LOG_WARN("Probe object at index %d is null", i); + continue; + } + + json_object* name_obj = nullptr; + json_object* type_obj = nullptr; + + if (json_object_object_get_ex(probe_obj, "name", &name_obj) && + json_object_object_get_ex(probe_obj, "type", &type_obj) && + json_object_get_type(name_obj) == json_type_string && + json_object_get_type(type_obj) == json_type_int) { + std::string probe_name = json_object_get_string(name_obj); + ProbeType probe_type = static_cast(json_object_get_int(type_obj)); + + std::shared_ptr probe; + + // Create appropriate probe type based on the type field + switch (probe_type) { + case ProbeType::UPROBE: + probe = std::make_shared(); + probe->type = ProbeType::UPROBE; + break; + case ProbeType::SYSCALLS: + probe = std::make_shared(); + probe->type = ProbeType::SYSCALLS; + break; + case ProbeType::USDT: + probe = std::make_shared(); + probe->type = ProbeType::USDT; + break; + case ProbeType::KPROBE: + probe = std::make_shared(); + probe->type = ProbeType::KPROBE; + break; + case ProbeType::CUSTOM: + probe = std::make_shared(); + probe->type = ProbeType::CUSTOM; + break; + default: + DC_LOG_WARN("Unknown probe type '%d' for probe '%s'", static_cast(probe_type), + probe_name.c_str()); + continue; + } + + probe->name = probe_name; + + // Load functions array if present + json_object* funcs_obj = nullptr; + if (json_object_object_get_ex(probe_obj, "functions", &funcs_obj) && + json_object_get_type(funcs_obj) == json_type_array) { + int func_len = json_object_array_length(funcs_obj); + for (int j = 0; j < func_len; ++j) { + json_object* func_obj = json_object_array_get_idx(funcs_obj, j); + if (func_obj && json_object_get_type(func_obj) == json_type_string) { + probe->functions.push_back(json_object_get_string(func_obj)); + } + } + } + + // Load type-specific fields + switch (probe_type) { + case ProbeType::UPROBE: + if (auto uprobe = std::dynamic_pointer_cast(probe)) { + json_object* binary_path_obj = nullptr; + json_object* include_offsets_obj = nullptr; + if (json_object_object_get_ex(probe_obj, "binary_path", &binary_path_obj) && + json_object_get_type(binary_path_obj) == json_type_string) { + uprobe->binary_path = json_object_get_string(binary_path_obj); + } + if (json_object_object_get_ex(probe_obj, "include_offsets", + &include_offsets_obj) && + json_object_get_type(include_offsets_obj) == json_type_boolean) { + uprobe->include_offsets = json_object_get_boolean(include_offsets_obj); + } + } + break; + case ProbeType::USDT: + if (auto usdtProbe = std::dynamic_pointer_cast(probe)) { + json_object* binary_path_obj = nullptr; + json_object* provider_obj = nullptr; + if (json_object_object_get_ex(probe_obj, "binary_path", &binary_path_obj) && + json_object_get_type(binary_path_obj) == json_type_string) { + usdtProbe->binary_path = json_object_get_string(binary_path_obj); + } + if (json_object_object_get_ex(probe_obj, "provider", &provider_obj) && + json_object_get_type(provider_obj) == json_type_string) { + usdtProbe->provider = json_object_get_string(provider_obj); + } + } + break; + case ProbeType::CUSTOM: + if (auto customProbe = std::dynamic_pointer_cast(probe)) { + json_object* bpf_path_obj = nullptr; + json_object* start_event_id_obj = nullptr; + json_object* process_header_obj = nullptr; + json_object* event_type_obj = nullptr; + + if (json_object_object_get_ex(probe_obj, "bpf_path", &bpf_path_obj) && + json_object_get_type(bpf_path_obj) == json_type_string) { + customProbe->bpf_path = json_object_get_string(bpf_path_obj); + } + if (json_object_object_get_ex(probe_obj, "start_event_id", &start_event_id_obj) && + json_object_get_type(start_event_id_obj) == json_type_int) { + customProbe->start_event_id = json_object_get_int(start_event_id_obj); + } + if (json_object_object_get_ex(probe_obj, "process_header", &process_header_obj) && + json_object_get_type(process_header_obj) == json_type_string) { + customProbe->process_header = json_object_get_string(process_header_obj); + } + if (json_object_object_get_ex(probe_obj, "event_type", &event_type_obj) && + json_object_get_type(event_type_obj) == json_type_int) { + customProbe->event_type = json_object_get_int(event_type_obj); + } + } + break; + case ProbeType::SYSCALLS: + case ProbeType::KPROBE: + // No additional fields to load for these types + break; + default: + // Already handled above, should not reach here + break; + } + + existingProbesMap[probe_name] = probe; + DC_LOG_DEBUG("Loaded existing probe: %s with %zu functions", probe_name.c_str(), + probe->functions.size()); + } else { + DC_LOG_WARN("Probe at index %d missing required 'name' or 'type' field", i); + } + } + } else { + DC_LOG_WARN("Existing probe file is not a valid JSON array"); + } + + if (jobj) json_object_put(jobj); + } else { + DC_LOG_ERROR("Failed to open existing probe file: %s", + configManager_->probe_file_path.string().c_str()); + } + } else { + DC_LOG_INFO("No existing probe file found at: %s", + configManager_->probe_file_path.string().c_str()); + } + + DC_LOG_INFO("Loaded %zu existing probes", existingProbesMap.size()); + DC_LOG_TRACE("ProbeExplorer::loadExistingProbes - end"); + return existingProbesMap; +} + // Writes extracted probes to a JSON file and returns the probe list std::vector> ProbeExplorer::writeProbesToJson() { DC_LOG_TRACE("ProbeExplorer::writeProbesToJson - start"); diff --git a/src/datacrumbs/explorer/probe_explorer.h b/src/datacrumbs/explorer/probe_explorer.h index 40c57c0f..2ec25b4a 100644 --- a/src/datacrumbs/explorer/probe_explorer.h +++ b/src/datacrumbs/explorer/probe_explorer.h @@ -42,6 +42,9 @@ class ProbeExplorer { // Returns a vector of shared pointers to Probe objects std::vector> writeProbesToJson(); + // Loads existing probes from a JSON file + std::unordered_map> loadExistingProbes(); + bool has_invalid_probes_ = false; // Flag to indicate if any invalid probes were found private: diff --git a/src/datacrumbs/server/bpf/common.h b/src/datacrumbs/server/bpf/common.h index 669885cc..b743ca22 100644 --- a/src/datacrumbs/server/bpf/common.h +++ b/src/datacrumbs/server/bpf/common.h @@ -31,7 +31,6 @@ DATACRUMBS_TRIE_EXTERN(inclusion_path_trie, struct string_t, struct string_t); static inline __attribute__((always_inline)) u32 hash_str(const char* str, size_t len) { u32 hash = 5381; -#pragma unroll for (int i = 0; i < 128; ++i) { if (i >= len) break; hash = ((hash << 5) + hash) + str[i]; diff --git a/src/datacrumbs/server/process/event_processor.cpp b/src/datacrumbs/server/process/event_processor.cpp index 1ab96f9f..2fb9ed8b 100644 --- a/src/datacrumbs/server/process/event_processor.cpp +++ b/src/datacrumbs/server/process/event_processor.cpp @@ -148,9 +148,9 @@ int EventProcessor::handle_event(void* data, size_t data_sz) { DC_LOG_WARN("No category found for event_id %llu", event->event_id); } DC_LOG_TRACE("handle_event: end"); - std::string progress_msg = - "Processed events failed: " + std::to_string(failed_events) + " current:"; - if (configManager_->mpi_rank == 0) DC_LOG_PROGRESS_SINGLE(progress_msg.c_str(), event_index); + // std::string progress_msg = + // "Processed events failed: " + std::to_string(failed_events) + " current:"; + // if (configManager_->mpi_rank == 0) DC_LOG_PROGRESS_SINGLE(progress_msg.c_str(), event_index); return 0; } int EventProcessor::update_filename(const char* filename, unsigned int hash) { @@ -158,9 +158,11 @@ int EventProcessor::update_filename(const char* filename, unsigned int hash) { DC_LOG_DEBUG("Filename %s with hash %u already processed, skipping", filename, hash); return 0; // Skip if already processed } + auto file_str = utils::remove_non_utf8(filename); + processed_hashes_.insert(hash); // Mark this hash as processed auto args = new DataCrumbsArgs(); - args->emplace("value", std::string(filename)); + args->emplace("value", file_str); args->emplace("hash", hash); auto event = new datacrumbs::EventWithId(METADATA_EVENT, event_index.fetch_add(1), 0, 0, 0, 0, 0, args); @@ -170,6 +172,7 @@ int EventProcessor::update_filename(const char* filename, unsigned int hash) { return 0; } int EventProcessor::finalize() { + DC_LOG_PRINT("Collected %d events and failed %d events", event_index.load(), failed_events); auto writer_ = datacrumbs::Singleton::get_instance(); if (writer_) { writer_->finalize(); diff --git a/src/datacrumbs/server/process/server.impl.cpp b/src/datacrumbs/server/process/server.impl.cpp index f782fd47..a75c6bbe 100644 --- a/src/datacrumbs/server/process/server.impl.cpp +++ b/src/datacrumbs/server/process/server.impl.cpp @@ -519,16 +519,27 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event // Main event polling loop signal(SIGINT, sig_handler); if (event_processor->configManager_->mpi_rank == 0) { - std::string ready_file = "/tmp/datacrumbs_" + event_processor->configManager_->user + "_" + - event_processor->configManager_->run_id + ".ready"; + std::string ready_file; + const char* env_ready_file = getenv("DATACRUMBS_SERVER_READY_FILE"); + if (env_ready_file) { + ready_file = std::string(env_ready_file); + } else { + ready_file = std::string(DATACRUMBS_INSTALL_RUNSTATEDIR) + "/datacrumbs-" + + event_processor->configManager_->run_id + ".ready"; + } std::ofstream ofs_ready(ready_file); ofs_ready << "ready" << std::endl; ofs_ready.close(); - auto pwd = getpwnam(event_processor->configManager_->user.c_str()); - uid_t uid = pwd ? pwd->pw_uid : static_cast(-1); - gid_t gid = pwd ? pwd->pw_gid : static_cast(-1); - chown(ready_file.c_str(), uid, gid); - chmod(ready_file.c_str(), 0660); + if (ready_file.substr(0, 4) != "/run" && ready_file.substr(0, 8) != "/var/run") { + auto pwd = getpwnam(event_processor->configManager_->user.c_str()); + auto uid = pwd ? pwd->pw_uid : static_cast(-1); + auto gid = pwd ? pwd->pw_gid : static_cast(-1); + chown(ready_file.c_str(), uid, gid); + chmod(ready_file.c_str(), 0660); + } + DC_LOG_INFO("Ready file created: %s for user:%s on %d nodes", ready_file.c_str(), + event_processor->configManager_->user.c_str(), + event_processor->configManager_->mpi_size); DC_LOG_PRINT("Server running on %d nodes. Ready to run the code.", event_processor->configManager_->mpi_size); } @@ -776,8 +787,14 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event DC_LOG_PRINT("Total events: sum=%d, min=%d, max=%d", global_total_events_sum, global_total_events_min, global_total_events_max); // Write status info to JSON file for postprocessing - std::string status_file = "/tmp/datacrumbs_" + event_processor->configManager_->user + - "_status_" + event_processor->configManager_->run_id + ".json"; + std::string status_file; + const char* env_statusfile = getenv("DATACRUMBS_SERVER_STATUS_FILE"); + if (env_statusfile) { + status_file = std::string(env_statusfile); + } else { + status_file = std::string(DATACRUMBS_INSTALL_RUNSTATEDIR) + "/datacrumbs-" + + event_processor->configManager_->run_id + ".json"; + } struct json_object* status_json = json_object_new_object(); json_object_object_add( status_json, "trace_file", @@ -791,11 +808,13 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event DC_LOG_ERROR("Failed to write status file: %s", status_file.c_str()); } json_object_put(status_json); - auto pwd = getpwnam(event_processor->configManager_->user.c_str()); - auto uid = pwd ? pwd->pw_uid : static_cast(-1); - auto gid = pwd ? pwd->pw_gid : static_cast(-1); - chown(status_file.c_str(), uid, gid); - chmod(status_file.c_str(), 0660); + if (status_file.substr(0, 4) != "/run" && status_file.substr(0, 8) != "/var/run") { + auto pwd = getpwnam(event_processor->configManager_->user.c_str()); + auto uid = pwd ? pwd->pw_uid : static_cast(-1); + auto gid = pwd ? pwd->pw_gid : static_cast(-1); + chown(status_file.c_str(), uid, gid); + chmod(status_file.c_str(), 0660); + } } DC_LOG_TRACE("main: end"); @@ -809,9 +828,14 @@ static int main_call(int argc, char** argv) { event_processor.configManager_->load_mpi_configurations(); } - std::string hostname = get_hostname(); - std::string pidfile = event_processor.configManager_->log_dir + "/datacrumbs_" + hostname + "_" + - event_processor.configManager_->run_id + ".pid"; + std::string pidfile; + const char* env_pidfile = getenv("DATACRUMBS_SERVER_PID_FILE"); + if (env_pidfile) { + pidfile = std::string(env_pidfile); + } else { + pidfile = std::string(DATACRUMBS_INSTALL_RUNSTATEDIR) + "/datacrumbs-" + + event_processor.configManager_->run_id + ".pid"; + } int return_code = 0; if (event_processor.configManager_->mpi_rank == 0 && @@ -823,6 +847,7 @@ static int main_call(int argc, char** argv) { return_code = main_process(argc, argv, &event_processor, false); } else if (event_processor.configManager_->exe_mode == datacrumbs::ExecutableMode::START) { daemonize(); + std::string hostname = get_hostname(); std::string logfile = event_processor.configManager_->log_dir + "/datacrumbs_" + event_processor.configManager_->user + "_" + hostname + "_" + event_processor.configManager_->run_id + ".log"; diff --git a/src/datacrumbs/validator/probe_validator.cpp b/src/datacrumbs/validator/probe_validator.cpp index 8f216bc7..4e2148d2 100644 --- a/src/datacrumbs/validator/probe_validator.cpp +++ b/src/datacrumbs/validator/probe_validator.cpp @@ -10,21 +10,84 @@ #include // Logging header #include // std headers +#include #include +#include #include #include #include #include +#include +#include #include #include #include #include #include #include -#include #include + namespace datacrumbs { + +// Function to pretty print invalid probes categorized by probe name +void prettyPrintInvalidProbes( + const std::unordered_map>& invalid_function_names, + size_t total_probes, size_t invalid_probes) { + std::cout << "\n"; + std::cout << "╔════════════════════════════════════════════════════════════════════════════╗\n"; + std::cout << "║ PROBE VALIDATION SUMMARY ║\n"; + std::cout << "╠════════════════════════════════════════════════════════════════════════════╣\n"; + std::cout << "║ Total Probes: " << std::setw(58) << std::left << total_probes << "║\n"; + std::cout << "║ Invalid Probes: " << std::setw(58) << std::left << invalid_probes << "║\n"; + std::cout << "║ Valid Probes: " << std::setw(58) << std::left << (total_probes - invalid_probes) + << "║\n"; + std::cout << "╚════════════════════════════════════════════════════════════════════════════╝\n"; + + if (invalid_function_names.empty()) { + std::cout << "\n✅ All probes validated successfully!\n\n"; + return; + } + + std::cout << "\n"; + std::cout << "╔════════════════════════════════════════════════════════════════════════════╗\n"; + std::cout << "║ INVALID PROBES BY CATEGORY ║\n"; + std::cout << "╚════════════════════════════════════════════════════════════════════════════╝\n"; + + for (const auto& [category, functions] : invalid_function_names) { + std::cout << "\n┌─ Category: " << category << " (" << functions.size() << " invalid)\n"; + std::cout << "│\n"; + + // Show first 10 invalid functions for each category + size_t max_display = std::min(10, functions.size()); + for (size_t i = 0; i < max_display; ++i) { + std::cout << "│ ✗ " << functions[i] << "\n"; + } + + if (functions.size() > max_display) { + std::cout << "│ ... and " << (functions.size() - max_display) << " more\n"; + } + std::cout << "└─────────────────────────────────────────────────────────────────────────────\n"; + } + + std::cout << "\n"; +} + +// Function to set memory limit to 2GB +bool setMemoryLimit(size_t limit_mb = 2048) { + struct rlimit limit; + limit.rlim_cur = limit_mb * 1024 * 1024; // 2GB in bytes + limit.rlim_max = limit_mb * 1024 * 1024; // 2GB in bytes + + if (setrlimit(RLIMIT_AS, &limit) != 0) { + DC_LOG_ERROR("Failed to set memory limit: %s", strerror(errno)); + return false; + } + + DC_LOG_INFO("Memory limit set to %zu MB", limit_mb); + return true; +} + class ProbeValidator { public: ProbeValidator(int argc, char** argv) { @@ -45,6 +108,16 @@ class ProbeValidator { DC_LOG_ERROR("Failed to read probes file: %s", probesFile.c_str()); return invalid_function_names; } + + // Use RAII wrapper for automatic cleanup + auto json_cleanup = [](struct json_object* ptr) { + if (ptr) { + json_object_put(ptr); + } + }; + std::unique_ptr json_guard(probesJson, + json_cleanup); + int arr_len = json_object_array_length(probesJson); DC_LOG_INFO("[ProbeGenerator] Number of probes: %d", arr_len); struct bpf_program* kprobe_prog = bpf_object__find_program_by_name(skel->obj, "kprobe_test"); @@ -70,12 +143,12 @@ class ProbeValidator { std::atomic atomic_invalid_probes{0}; std::atomic atomic_current_probe{0}; - auto validate_func = [&](const Probe& probe, const std::string& func, - struct json_object* jprobe) { + auto validate_func = [&](const std::string& probe_name, ProbeType probe_type, + const std::string& func, struct json_object* jprobe) { atomic_current_probe++; DC_LOG_PROGRESS("Validating probe", atomic_current_probe.load(), total_probes); bool is_invalid = false; - if (probe.type == ProbeType::KPROBE) { + if (probe_type == ProbeType::KPROBE) { struct bpf_kprobe_opts opts = { .sz = sizeof(struct bpf_kprobe_opts), }; @@ -85,7 +158,7 @@ class ProbeValidator { } else { bpf_link__destroy(link); } - } else if (probe.type == ProbeType::UPROBE) { + } else if (probe_type == ProbeType::UPROBE) { auto uprobe = UProbe::fromJson(jprobe); std::string function_name, offset; auto pos = func.find(':'); @@ -109,7 +182,7 @@ class ProbeValidator { } else { bpf_link__destroy(link); } - } else if (probe.type == ProbeType::SYSCALLS) { + } else if (probe_type == ProbeType::SYSCALLS) { struct bpf_ksyscall_opts opts = { .sz = sizeof(struct bpf_ksyscall_opts), }; @@ -123,7 +196,7 @@ class ProbeValidator { if (is_invalid) { atomic_invalid_probes++; std::lock_guard lock(invalid_mutex); - invalid_function_names[probe.name].push_back(func); + invalid_function_names[probe_name].push_back(func); } }; @@ -134,7 +207,9 @@ class ProbeValidator { std::mutex queue_mutex; std::condition_variable cv; bool done = false; - std::queue> task_queue; + + // Store probe_name, probe_type, function_name, and json_object + std::queue> task_queue; // Producer: enqueue all validation tasks for (int i = 0; i < arr_len; ++i) { @@ -143,7 +218,8 @@ class ProbeValidator { for (size_t func_index = 0; func_index < probe.functions.size(); ++func_index) { const auto& func = probe.functions[func_index]; std::lock_guard lock(queue_mutex); - task_queue.emplace(probe, func, jprobe); + // Store copies of probe.name and probe.type to avoid race conditions + task_queue.emplace(probe.name, probe.type, func, jprobe); } } @@ -151,7 +227,6 @@ class ProbeValidator { for (size_t i = 0; i < num_workers; ++i) { workers.emplace_back([&]() { while (true) { - std::tuple task; { std::unique_lock lock(queue_mutex); cv.wait(lock, [&]() { return !task_queue.empty() || done; }); @@ -161,10 +236,19 @@ class ProbeValidator { else continue; } - // Move declaration and initialization together to avoid default construction - auto task = std::move(task_queue.front()); + // Extract data from the queue with proper copies + auto& front_task = task_queue.front(); + std::string probe_name = std::get<0>(front_task); + ProbeType probe_type = std::get<1>(front_task); + std::string func = std::get<2>(front_task); + struct json_object* jprobe = std::get<3>(front_task); task_queue.pop(); - validate_func(std::get<0>(task), std::get<1>(task), std::get<2>(task)); + + // Release lock before validation (which can be slow) + lock.unlock(); + + // Now validate with copied data + validate_func(probe_name, probe_type, func, jprobe); } } }); @@ -180,6 +264,21 @@ class ProbeValidator { for (auto& t : workers) t.join(); invalid_probes = atomic_invalid_probes.load(); + + // Verify counts match - diagnostic check + size_t total_invalid_stored = 0; + for (const auto& [name, functions] : invalid_function_names) { + total_invalid_stored += functions.size(); + } + + if (total_invalid_stored != invalid_probes) { + DC_LOG_ERROR("Race condition detected! Invalid probes counted: %zu, but stored: %zu", + invalid_probes, total_invalid_stored); + } else { + DC_LOG_INFO("Validation counts verified: %zu invalid probes counted and stored", + invalid_probes); + } + return invalid_function_names; } size_t total_probes() const { return configManager_->category_map.size(); } @@ -191,13 +290,26 @@ class ProbeValidator { } // namespace datacrumbs int main(int argc, char** argv) { + // Set memory limit to 2GB + if (!datacrumbs::setMemoryLimit(2048)) { + DC_LOG_ERROR("Failed to set memory limit, continuing anyway..."); + } + auto configManager_ = datacrumbs::Singleton::get_instance(argc, argv); + struct validator* skel = validator__open_and_load(); if (!skel) { DC_LOG_ERROR("Failed to open and load datacrumbs_validator BPF skeleton"); return 1; } + + // Use RAII for skeleton cleanup + auto skel_cleanup = [](struct validator* s) { + if (s) validator__destroy(s); + }; + std::unique_ptr skel_guard(skel, skel_cleanup); + size_t invalid_probes = 0; try { datacrumbs::ProbeValidator validator(argc, argv); @@ -206,6 +318,10 @@ int main(int argc, char** argv) { invalid_probes = validator.invalid_probes; DC_LOG_INFO("\nProbe validation completed: total_probes=%zu, invalid_probes=%zu", total_probes, invalid_probes); + + // Pretty print the invalid probes categorized by category + datacrumbs::prettyPrintInvalidProbes(invalid_function_names, total_probes, invalid_probes); + struct json_object* invalid_probesJson = json_object_from_file(configManager_->probe_file_path.c_str()); // Iterate over probesJson array, clear functions attribute for all probes, then add invalid @@ -249,10 +365,8 @@ int main(int argc, char** argv) { chmod(configManager_->probe_invalid_file_path.c_str(), 0640); } catch (const std::exception& ex) { DC_LOG_ERROR("Exception: %s", ex.what()); - validator__destroy(skel); return -1; } - validator__destroy(skel); return invalid_probes > 0 ? -1 : 0; } \ No newline at end of file diff --git a/valgrind.supp b/valgrind.supp new file mode 100644 index 00000000..1f6aaa78 --- /dev/null +++ b/valgrind.supp @@ -0,0 +1,34 @@ +# Valgrind suppression file for probe_validator +# This file helps suppress known false positives in BPF/libbpf libraries + +{ + libbpf_allocation + Memcheck:Leak + match-leak-kinds: definite,indirect + ... + fun:*bpf* +} + +{ + json_c_allocation + Memcheck:Leak + match-leak-kinds: definite,indirect + ... + fun:*json* +} + +{ + glibc_dl_allocation + Memcheck:Leak + match-leak-kinds: definite,indirect + ... + fun:_dl_* +} + +{ + pthread_allocation + Memcheck:Leak + match-leak-kinds: definite,indirect + ... + fun:pthread_* +} \ No newline at end of file