From 1a97109efadc6d42af013d767bf97ecd10bee4ac Mon Sep 17 00:00:00 2001 From: Hariharan Devarajan Date: Thu, 19 Mar 2026 09:58:29 -0700 Subject: [PATCH] feat: changed datacrumbs generation based logic to dynamic probe atttach. 1. Reduces the footprint of sudo review code. 2. Removes unneccessary scripts only support systemd in sudo. 3. Creates a system configuration and secrete to sign user probes. 4. No predefined probes, everything is a probe submitted by user. 5. Validation of probe is on runtime and we maintain invalid list. 6. Updated documentation. 7. No MPI dependency. 8. All other features moved to utils. 9. Composability replaced with user input of probes. 10. Include utils part of build for ease of deployment no direct dependency. --- .github/workflows/docker-build-test.yml | 27 +- .github/workflows/format-check.yml | 14 +- CMakeLists.txt | 749 +-- analysis/analysis.ipynb | 5050 ----------------- analysis/analysis_dfanalyzer.ipynb | 1756 ------ analysis/dfanalyzer.README.md | 13 - analysis/relevant_functions.ipynb | 1379 ----- analysis/requirements.txt | 16 - analysis/trace_analysis.ipynb | 1825 ------ analysis/trace_analysis_important_fn.ipynb | 634 --- cmake/configure_files/datacrumbs_config.h.in | 21 +- cmake/configure_files/project.env.local.in | 43 + cmake/modules/datacrumbs-utils.cmake | 193 +- .../run_system_configurator_if_missing.cmake | 33 + docs/build.rst | 961 +--- docs/composability.rst | 666 +-- docs/deployment.rst | 631 +- docs/flux_integration.rst | 686 +-- docs/index.rst | 33 +- docs/integration.rst | 767 +-- docs/run.rst | 354 +- docs/setup.rst | 1564 +---- docs/slurm_integration.rst | 933 +-- docs/usage.rst | 829 +-- etc/datacrumbs/configs/corona.yaml | 6 - etc/datacrumbs/configs/docker-toss.yaml | 31 - etc/datacrumbs/configs/docker.yaml | 24 - etc/datacrumbs/configs/ebpf.yaml | 9 - etc/datacrumbs/configs/hdf.yaml | 61 - etc/datacrumbs/configs/lead-us.yaml | 6 - etc/datacrumbs/configs/lead.yaml | 61 - etc/datacrumbs/configs/project.env.local.in | 93 - etc/datacrumbs/configs/quokka.yaml | 6 - etc/datacrumbs/configs/tuolumne-mpiio.yaml | 16 - etc/datacrumbs/configs/tuolumne.yaml | 6 - etc/datacrumbs/data/.gitattributes | 3 - etc/datacrumbs/data/categories-cc-ebpf.json | 1 - .../data/categories-dhari-quokka.json | 1 - .../data/categories-haridev-corona.json | 1 - .../data/categories-haridev-lead-us.json | 1 - .../data/categories-haridev-lead.json | 1 - .../categories-haridev-tuolumne-mpiio.json | 1 - .../data/categories-haridev-tuolumne.json | 1 - .../data/categories-root-docker.json | 1 - etc/datacrumbs/data/compact.sh | 6 - .../data/manual-probes-haridev-lead-us.json | 1 - .../data/manual-probes-haridev-lead.json | 1 - .../manual-probes-haridev-tuolumne-mpiio.json | 1 - etc/datacrumbs/data/probes-cc-ebpf.json | 1 - etc/datacrumbs/data/probes-dhari-quokka.json | 1 - .../data/probes-exclusion-cc-ebpf.json | 1 - .../data/probes-exclusion-dhari-quokka.json | 1 - .../probes-exclusion-haridev-lead-us.json | 1 - .../data/probes-exclusion-haridev-lead.json | 1 - ...obes-exclusion-haridev-tuolumne-mpiio.json | 1 - .../probes-exclusion-haridev-tuolumne.json | 1 - .../data/probes-exclusion-root-docker.json | 1 - .../data/probes-haridev-corona.json | 1 - .../data/probes-haridev-lead-us.json | 1 - etc/datacrumbs/data/probes-haridev-lead.json | 1 - .../data/probes-haridev-tuolumne-mpiio.json | 1 - .../data/probes-haridev-tuolumne.json | 1 - .../data/probes-invalid-haridev-lead-us.json | 1 - .../data/probes-invalid-haridev-lead.json | 1 - etc/datacrumbs/data/probes-root-docker.json | 1 - etc/datacrumbs/data/sorter.py | 49 - etc/datacrumbs/data/temp.json | 0 etc/datacrumbs/flux/cli/plugins/datacrumbs.py | 29 +- etc/datacrumbs/logs/.gitignore | 1 - etc/datacrumbs/modulefiles/module.lua.in | 54 - .../plugins/custom_probes/custom_probes.h.in | 10 + .../custom_probes/custom_probes_process.h.in | 10 + etc/datacrumbs/systemd/datacrumbs@.service.in | 27 +- .../systemd/datacrumbs_sign_probes.service.in | 13 + etc/datacrumbs/systems/README.ares.md | 113 - etc/datacrumbs/systems/README.chameleon.md | 87 - etc/datacrumbs/systems/README.lead2.md | 97 - etc/datacrumbs/systems/README.md | 149 - etc/datacrumbs/systems/README.quokka.md | 167 - etc/datacrumbs/systems/README.wombat.md | 97 - infrastructure/docker/Dockerfile | 33 - infrastructure/docker/Dockerfile.build | 116 - infrastructure/docker/README.md | 5 - infrastructure/docker/build-multiarch.sh | 221 - infrastructure/docker/test_run.sh | 79 +- infrastructure/lima/README.md | 95 - infrastructure/lima/ebpf.yaml | 64 - scripts/datacrumbs/datacrumbs_args.in | 668 --- scripts/datacrumbs/datacrumbs_compose.in | 138 - scripts/datacrumbs/datacrumbs_compose_run.in | 102 - .../datacrumbs/datacrumbs_compose_wrapper.in | 20 - .../datacrumbs/datacrumbs_create_log_dir.in | 32 - scripts/datacrumbs/datacrumbs_logging.in | 69 - scripts/datacrumbs/datacrumbs_run.in | 85 - .../datacrumbs/datacrumbs_run_validator.in | 34 - scripts/datacrumbs/datacrumbs_salloc.in | 117 - .../datacrumbs/datacrumbs_server_run.sh.in | 62 - .../datacrumbs/datacrumbs_server_stop.sh.in | 69 - .../datacrumbs_service_common.sh.in | 392 +- .../datacrumbs/datacrumbs_service_run.sh.in | 13 +- .../datacrumbs/datacrumbs_service_stop.sh.in | 12 +- scripts/datacrumbs/datacrumbs_setup.in | 82 - scripts/datacrumbs/datacrumbs_stop.in | 21 - scripts/datacrumbs/datacrumbs_track.in | 69 - scripts/datacrumbs/datacrumbs_untrack.in | 70 - scripts/datacrumbs/datacrumbs_utility.in | 288 - scripts/datacrumbs/datacrumbs_wrap.in | 14 - scripts/docker-build.sh | 193 - scripts/formatting/autoformat.sh | 22 +- scripts/formatting/check-formatting.sh | 28 +- src/datacrumbs/client/library.cpp | 65 - src/datacrumbs/client/library.h | 20 - .../common/configuration_manager.cpp | 671 --- src/datacrumbs/common/configuration_manager.h | 167 - src/datacrumbs/common/data_structures.h | 131 +- src/datacrumbs/common/logging.h | 23 +- src/datacrumbs/common/probe_file.h | 284 + .../common/probe_signing_service.cpp | 252 + src/datacrumbs/common/probe_signing_service.h | 14 + .../common/runtime_configuration_manager.cpp | 531 ++ .../common/runtime_configuration_manager.h | 78 + src/datacrumbs/common/singleton.h | 31 +- src/datacrumbs/common/typedefs.h | 9 + src/datacrumbs/composable/CMakeLists.txt.in | 224 - src/datacrumbs/composable/process/server.cpp | 7 - .../explorer/mechanism/elf_capture.cpp | 150 - .../explorer/mechanism/elf_capture.h | 65 - .../explorer/mechanism/header_capture.cpp | 61 - .../explorer/mechanism/header_capture.h | 48 - .../explorer/mechanism/ksym_capture.cpp | 14 - .../explorer/mechanism/ksym_capture.h | 82 - .../explorer/mechanism/usdt_functions.h | 36 - src/datacrumbs/explorer/probe_explorer.cpp | 835 --- src/datacrumbs/explorer/probe_explorer.h | 55 - src/datacrumbs/generator/generator.cpp | 346 -- src/datacrumbs/generator/generator.h | 92 - .../generator/mechanisms/kprobe_generator.h | 80 - .../generator/mechanisms/syscall_generator.h | 76 - .../generator/mechanisms/uprobe_generator.h | 97 - .../generator/mechanisms/usdt_generator.h | 80 - src/datacrumbs/server/bpf/common.c | 8 + src/datacrumbs/server/bpf/common.h | 358 +- src/datacrumbs/server/bpf/generic.bpf.c | 58 + src/datacrumbs/server/bpf/init.bpf.c | 61 +- src/datacrumbs/server/bpf/main.bpf.c | 9 +- src/datacrumbs/server/bpf/shared.h | 41 +- .../server/process/event_processor.cpp | 67 +- .../server/process/event_processor.h | 8 +- .../server/process/processing/general_event.h | 5 +- .../server/process/processing/usdt_event.h | 8 +- src/datacrumbs/server/process/server.impl.cpp | 913 ++- .../server/process/writer/chrome_writer.cpp | 268 +- .../server/process/writer/chrome_writer.h | 3 +- .../signer/sign_probes_service_main.cpp | 5 + .../system_configurator_main.cpp | 147 + src/datacrumbs/validator/bpf/probe.bpf.c | 24 - src/datacrumbs/validator/probe_validator.cpp | 372 -- tests/CMakeLists.txt | 2 - tests/apps/Montage/MontageExec.template.sh | 66 - tests/apps/Montage/README.md | 20 - tests/apps/Montage/gcc-11-montage-v6.1.patch | 120 - tests/apps/Montage/setup_montage.sh | 65 - tests/benchmarks/ior/CMakeLists.txt | 45 - tests/output/buffered_write.png | Bin 90965 -> 0 bytes tests/output/direct_write.png | Bin 88288 -> 0 bytes tests/poc/bpf-core/.gitignore | 5 - tests/poc/bpf-core/Makefile | 28 - tests/poc/bpf-core/example.c | 62 - tests/poc/bpf-core/example.generic.bpf.c | 19 - tests/poc/bpf-core/example.generic.bpf.h | 60 - tests/poc/bpf-core/example.h | 9 - tests/poc/bpf-core/example.kprobe.bpf.c | 12 - tests/poc/bpf-core/example.syscall.bpf.c | 11 - tests/poc/bpf-core/example.uprobe.bpf.c | 12 - tests/poc/bpf-core/example.usdt.bpf.c | 11 - tests/poc/bpf-time/.gitignore | 7 - tests/poc/bpf-time/Makefile | 56 - tests/poc/bpf-time/malloc.bpf.c | 30 - tests/poc/bpf-time/malloc.c | 38 - tests/poc/bpf-time/victim.c | 16 - tests/poc/notes.MD | 7 - tests/poc/test.c | 4 - tests/poc/test.py | 13 - tests/poc/uprobes.py | 379 -- tests/unittests/CMakeLists.txt | 1 - .../component/compress_decompress_zlib.cpp | 133 - .../unittests/component/elf_capture_test.cpp | 24 - .../component/header_capture_test.cpp | 18 - .../unittests/component/ksym_capture_test.cpp | 14 - .../component/probe_explorer_test.cpp | 25 - tests/unittests/io_tests/CMakeLists.txt | 18 - tests/unittests/io_tests/images/read.png | Bin 35310 -> 0 bytes tests/unittests/io_tests/images/write.png | Bin 74095 -> 0 bytes tests/unittests/io_tests/scripts/ior.sh | 80 - .../io_tests/scripts/ior_hdf5_fpp.sh | 20 - tests/unittests/io_tests/scripts/ior_mpiio.sh | 20 - .../unittests/io_tests/scripts/test_posix.sh | 46 - .../io_tests/scripts/test_posix_overhead.sh | 35 - .../io_tests/scripts/test_posix_read.sh | 50 - .../unittests/io_tests/scripts/test_stdio.sh | 28 - tests/unittests/io_tests/test.cpp | 232 - tests/unittests/io_tests/test.py | 25 - tests/unittests/io_tests/test_stdio.cpp | 137 - tools/CMakeLists.txt | 11 - tools/README.md | 27 - tools/aggregate_trace.cpp | 154 - tools/analyze_trace.sh | 186 - tools/callgraph_vis.cpp | 506 -- tools/decompression.h | 63 - tools/examples/imageoutput.png | Bin 2090276 -> 0 bytes tools/examples/textoutput.txt | 115 - tools/separator.sh | 44 - 212 files changed, 4082 insertions(+), 29655 deletions(-) delete mode 100755 analysis/analysis.ipynb delete mode 100644 analysis/analysis_dfanalyzer.ipynb delete mode 100644 analysis/dfanalyzer.README.md delete mode 100755 analysis/relevant_functions.ipynb delete mode 100755 analysis/requirements.txt delete mode 100755 analysis/trace_analysis.ipynb delete mode 100755 analysis/trace_analysis_important_fn.ipynb create mode 100644 cmake/configure_files/project.env.local.in create mode 100644 cmake/run_system_configurator_if_missing.cmake mode change 100755 => 100644 docs/build.rst mode change 100755 => 100644 docs/composability.rst mode change 100755 => 100644 docs/deployment.rst mode change 100755 => 100644 docs/flux_integration.rst mode change 100755 => 100644 docs/index.rst mode change 100755 => 100644 docs/integration.rst mode change 100755 => 100644 docs/run.rst mode change 100755 => 100644 docs/setup.rst mode change 100755 => 100644 docs/usage.rst delete mode 100755 etc/datacrumbs/configs/corona.yaml delete mode 100755 etc/datacrumbs/configs/docker-toss.yaml delete mode 100755 etc/datacrumbs/configs/docker.yaml delete mode 100755 etc/datacrumbs/configs/ebpf.yaml delete mode 100644 etc/datacrumbs/configs/hdf.yaml delete mode 100755 etc/datacrumbs/configs/lead-us.yaml delete mode 100755 etc/datacrumbs/configs/lead.yaml delete mode 100644 etc/datacrumbs/configs/project.env.local.in delete mode 100755 etc/datacrumbs/configs/quokka.yaml delete mode 100755 etc/datacrumbs/configs/tuolumne-mpiio.yaml delete mode 100755 etc/datacrumbs/configs/tuolumne.yaml delete mode 100644 etc/datacrumbs/data/.gitattributes delete mode 100644 etc/datacrumbs/data/categories-cc-ebpf.json delete mode 100644 etc/datacrumbs/data/categories-dhari-quokka.json delete mode 100644 etc/datacrumbs/data/categories-haridev-corona.json delete mode 100644 etc/datacrumbs/data/categories-haridev-lead-us.json delete mode 100644 etc/datacrumbs/data/categories-haridev-lead.json delete mode 100644 etc/datacrumbs/data/categories-haridev-tuolumne-mpiio.json delete mode 100644 etc/datacrumbs/data/categories-haridev-tuolumne.json delete mode 100644 etc/datacrumbs/data/categories-root-docker.json delete mode 100755 etc/datacrumbs/data/compact.sh delete mode 100644 etc/datacrumbs/data/manual-probes-haridev-lead-us.json delete mode 100644 etc/datacrumbs/data/manual-probes-haridev-lead.json delete mode 100644 etc/datacrumbs/data/manual-probes-haridev-tuolumne-mpiio.json delete mode 100644 etc/datacrumbs/data/probes-cc-ebpf.json delete mode 100644 etc/datacrumbs/data/probes-dhari-quokka.json delete mode 100644 etc/datacrumbs/data/probes-exclusion-cc-ebpf.json delete mode 100644 etc/datacrumbs/data/probes-exclusion-dhari-quokka.json delete mode 100644 etc/datacrumbs/data/probes-exclusion-haridev-lead-us.json delete mode 100644 etc/datacrumbs/data/probes-exclusion-haridev-lead.json delete mode 100644 etc/datacrumbs/data/probes-exclusion-haridev-tuolumne-mpiio.json delete mode 100644 etc/datacrumbs/data/probes-exclusion-haridev-tuolumne.json delete mode 100644 etc/datacrumbs/data/probes-exclusion-root-docker.json delete mode 100644 etc/datacrumbs/data/probes-haridev-corona.json delete mode 100644 etc/datacrumbs/data/probes-haridev-lead-us.json delete mode 100644 etc/datacrumbs/data/probes-haridev-lead.json delete mode 100644 etc/datacrumbs/data/probes-haridev-tuolumne-mpiio.json delete mode 100644 etc/datacrumbs/data/probes-haridev-tuolumne.json delete mode 100644 etc/datacrumbs/data/probes-invalid-haridev-lead-us.json delete mode 100644 etc/datacrumbs/data/probes-invalid-haridev-lead.json delete mode 100644 etc/datacrumbs/data/probes-root-docker.json delete mode 100644 etc/datacrumbs/data/sorter.py delete mode 100644 etc/datacrumbs/data/temp.json delete mode 100644 etc/datacrumbs/logs/.gitignore delete mode 100644 etc/datacrumbs/modulefiles/module.lua.in create mode 100644 etc/datacrumbs/plugins/custom_probes/custom_probes.h.in create mode 100644 etc/datacrumbs/plugins/custom_probes/custom_probes_process.h.in create mode 100644 etc/datacrumbs/systemd/datacrumbs_sign_probes.service.in delete mode 100644 etc/datacrumbs/systems/README.ares.md delete mode 100755 etc/datacrumbs/systems/README.chameleon.md delete mode 100755 etc/datacrumbs/systems/README.lead2.md delete mode 100755 etc/datacrumbs/systems/README.md delete mode 100644 etc/datacrumbs/systems/README.quokka.md delete mode 100755 etc/datacrumbs/systems/README.wombat.md delete mode 100644 infrastructure/docker/Dockerfile delete mode 100644 infrastructure/docker/Dockerfile.build delete mode 100644 infrastructure/docker/README.md delete mode 100755 infrastructure/docker/build-multiarch.sh delete mode 100755 infrastructure/lima/README.md delete mode 100755 infrastructure/lima/ebpf.yaml delete mode 100755 scripts/datacrumbs/datacrumbs_args.in delete mode 100755 scripts/datacrumbs/datacrumbs_compose.in delete mode 100755 scripts/datacrumbs/datacrumbs_compose_run.in delete mode 100755 scripts/datacrumbs/datacrumbs_compose_wrapper.in delete mode 100755 scripts/datacrumbs/datacrumbs_create_log_dir.in delete mode 100755 scripts/datacrumbs/datacrumbs_logging.in delete mode 100755 scripts/datacrumbs/datacrumbs_run.in delete mode 100755 scripts/datacrumbs/datacrumbs_run_validator.in delete mode 100755 scripts/datacrumbs/datacrumbs_salloc.in delete mode 100755 scripts/datacrumbs/datacrumbs_server_run.sh.in delete mode 100755 scripts/datacrumbs/datacrumbs_server_stop.sh.in mode change 100755 => 100644 scripts/datacrumbs/datacrumbs_service_common.sh.in delete mode 100755 scripts/datacrumbs/datacrumbs_setup.in delete mode 100755 scripts/datacrumbs/datacrumbs_stop.in delete mode 100755 scripts/datacrumbs/datacrumbs_track.in delete mode 100755 scripts/datacrumbs/datacrumbs_untrack.in delete mode 100755 scripts/datacrumbs/datacrumbs_utility.in delete mode 100755 scripts/datacrumbs/datacrumbs_wrap.in delete mode 100755 scripts/docker-build.sh delete mode 100755 src/datacrumbs/client/library.cpp delete mode 100755 src/datacrumbs/client/library.h delete mode 100644 src/datacrumbs/common/configuration_manager.cpp delete mode 100644 src/datacrumbs/common/configuration_manager.h create mode 100644 src/datacrumbs/common/probe_file.h create mode 100644 src/datacrumbs/common/probe_signing_service.cpp create mode 100644 src/datacrumbs/common/probe_signing_service.h create mode 100644 src/datacrumbs/common/runtime_configuration_manager.cpp create mode 100644 src/datacrumbs/common/runtime_configuration_manager.h delete mode 100644 src/datacrumbs/composable/CMakeLists.txt.in delete mode 100644 src/datacrumbs/composable/process/server.cpp delete mode 100644 src/datacrumbs/explorer/mechanism/elf_capture.cpp delete mode 100644 src/datacrumbs/explorer/mechanism/elf_capture.h delete mode 100644 src/datacrumbs/explorer/mechanism/header_capture.cpp delete mode 100644 src/datacrumbs/explorer/mechanism/header_capture.h delete mode 100644 src/datacrumbs/explorer/mechanism/ksym_capture.cpp delete mode 100644 src/datacrumbs/explorer/mechanism/ksym_capture.h delete mode 100644 src/datacrumbs/explorer/mechanism/usdt_functions.h delete mode 100644 src/datacrumbs/explorer/probe_explorer.cpp delete mode 100644 src/datacrumbs/explorer/probe_explorer.h delete mode 100644 src/datacrumbs/generator/generator.cpp delete mode 100644 src/datacrumbs/generator/generator.h delete mode 100644 src/datacrumbs/generator/mechanisms/kprobe_generator.h delete mode 100644 src/datacrumbs/generator/mechanisms/syscall_generator.h delete mode 100644 src/datacrumbs/generator/mechanisms/uprobe_generator.h delete mode 100644 src/datacrumbs/generator/mechanisms/usdt_generator.h create mode 100644 src/datacrumbs/server/bpf/generic.bpf.c create mode 100644 src/datacrumbs/signer/sign_probes_service_main.cpp create mode 100644 src/datacrumbs/system_configurator/system_configurator_main.cpp delete mode 100644 src/datacrumbs/validator/bpf/probe.bpf.c delete mode 100644 src/datacrumbs/validator/probe_validator.cpp delete mode 100755 tests/CMakeLists.txt delete mode 100755 tests/apps/Montage/MontageExec.template.sh delete mode 100644 tests/apps/Montage/README.md delete mode 100644 tests/apps/Montage/gcc-11-montage-v6.1.patch delete mode 100755 tests/apps/Montage/setup_montage.sh delete mode 100644 tests/benchmarks/ior/CMakeLists.txt delete mode 100755 tests/output/buffered_write.png delete mode 100755 tests/output/direct_write.png delete mode 100644 tests/poc/bpf-core/.gitignore delete mode 100644 tests/poc/bpf-core/Makefile delete mode 100644 tests/poc/bpf-core/example.c delete mode 100644 tests/poc/bpf-core/example.generic.bpf.c delete mode 100644 tests/poc/bpf-core/example.generic.bpf.h delete mode 100644 tests/poc/bpf-core/example.h delete mode 100644 tests/poc/bpf-core/example.kprobe.bpf.c delete mode 100644 tests/poc/bpf-core/example.syscall.bpf.c delete mode 100644 tests/poc/bpf-core/example.uprobe.bpf.c delete mode 100644 tests/poc/bpf-core/example.usdt.bpf.c delete mode 100644 tests/poc/bpf-time/.gitignore delete mode 100644 tests/poc/bpf-time/Makefile delete mode 100644 tests/poc/bpf-time/malloc.bpf.c delete mode 100644 tests/poc/bpf-time/malloc.c delete mode 100644 tests/poc/bpf-time/victim.c delete mode 100644 tests/poc/notes.MD delete mode 100644 tests/poc/test.c delete mode 100755 tests/poc/test.py delete mode 100755 tests/poc/uprobes.py delete mode 100644 tests/unittests/CMakeLists.txt delete mode 100644 tests/unittests/component/compress_decompress_zlib.cpp delete mode 100644 tests/unittests/component/elf_capture_test.cpp delete mode 100644 tests/unittests/component/header_capture_test.cpp delete mode 100644 tests/unittests/component/ksym_capture_test.cpp delete mode 100644 tests/unittests/component/probe_explorer_test.cpp delete mode 100644 tests/unittests/io_tests/CMakeLists.txt delete mode 100755 tests/unittests/io_tests/images/read.png delete mode 100755 tests/unittests/io_tests/images/write.png delete mode 100755 tests/unittests/io_tests/scripts/ior.sh delete mode 100755 tests/unittests/io_tests/scripts/ior_hdf5_fpp.sh delete mode 100755 tests/unittests/io_tests/scripts/ior_mpiio.sh delete mode 100755 tests/unittests/io_tests/scripts/test_posix.sh delete mode 100755 tests/unittests/io_tests/scripts/test_posix_overhead.sh delete mode 100755 tests/unittests/io_tests/scripts/test_posix_read.sh delete mode 100755 tests/unittests/io_tests/scripts/test_stdio.sh delete mode 100755 tests/unittests/io_tests/test.cpp delete mode 100755 tests/unittests/io_tests/test.py delete mode 100644 tests/unittests/io_tests/test_stdio.cpp delete mode 100644 tools/CMakeLists.txt delete mode 100644 tools/README.md delete mode 100644 tools/aggregate_trace.cpp delete mode 100755 tools/analyze_trace.sh delete mode 100644 tools/callgraph_vis.cpp delete mode 100644 tools/decompression.h delete mode 100644 tools/examples/imageoutput.png delete mode 100644 tools/examples/textoutput.txt delete mode 100755 tools/separator.sh diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml index 56b582b0..3fa6b866 100644 --- a/.github/workflows/docker-build-test.yml +++ b/.github/workflows/docker-build-test.yml @@ -7,7 +7,7 @@ on: workflow_dispatch: env: - DOCKER_IMAGE_NAME: datacrumbs-test + DOCKER_IMAGE_NAME: datacrumbs DOCKER_TAG: latest jobs: @@ -18,22 +18,27 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 with: + path: datacrumbs submodules: recursive + - name: Checkout datacrumbs-utils + uses: actions/checkout@v4 + with: + repository: llnl/datacrumbs-utils + ref: main + fetch-depth: 1 + path: datacrumbs-utils + - 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 infrastructure/docker/Dockerfile \ - . - - - name: Run DataCrumbs tests + bash "${GITHUB_WORKSPACE}/datacrumbs-utils/scripts/docker-build.sh" \ + --repo-root "${GITHUB_WORKSPACE}/datacrumbs" \ + --version ${{ env.DOCKER_TAG }} + + - name: Run DataCrumbs smoke test run: | docker run --rm \ -v /lib/modules/:/lib/modules:ro \ @@ -46,4 +51,4 @@ jobs: --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 + bash -lc 'bash /opt/datacrumbs/infrastructure/docker/test_run.sh' diff --git a/.github/workflows/format-check.yml b/.github/workflows/format-check.yml index 47c797b2..275d72b8 100644 --- a/.github/workflows/format-check.yml +++ b/.github/workflows/format-check.yml @@ -12,6 +12,16 @@ jobs: steps: - uses: actions/checkout@v4 + with: + path: datacrumbs + + - name: Checkout datacrumbs-utils + uses: actions/checkout@v4 + with: + repository: llnl/datacrumbs-utils + ref: main + fetch-depth: 1 + path: datacrumbs-utils - name: Set up Go uses: actions/setup-go@v5 @@ -33,8 +43,8 @@ jobs: - name: Install cmake-format run: | sudo apt-get install -y python3-pip - sudo pip3 install cmake-format + sudo pip3 install cmakelang PyYAML - name: Test formatting run: | - ./scripts/formatting/check-formatting.sh /usr/bin/clang-format-19 \ No newline at end of file + ./datacrumbs-utils/scripts/formatting/check-formatting.sh /usr/bin/clang-format-19 ./datacrumbs diff --git a/CMakeLists.txt b/CMakeLists.txt index 655f1283..71f36bc1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,29 +50,68 @@ set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_BINARY_DIR} ${CMAKE_INSTALL_P include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) include_directories(${CMAKE_BINARY_DIR}/include) -include_directories(${DATACRUMBS_INSTALL_LIBEXEC}) include_directories(${CMAKE_BINARY_DIR}/libexec) +find_package(Python3 COMPONENTS Interpreter REQUIRED) +include(ExternalProject) + +set(_DATACRUMBS_UTILS_GITHUB_REPOSITORY_DEFAULT + "https://github.com/LLNL/datacrumbs-utils.git" +) + +set( + DATACRUMBS_UTILS_GIT_REPOSITORY + "${_DATACRUMBS_UTILS_GITHUB_REPOSITORY_DEFAULT}" + CACHE STRING "GitHub repository URL for datacrumbs-utils" FORCE +) +set( + DATACRUMBS_UTILS_GIT_REF + "main" + CACHE STRING "Git branch, tag, or commit used for datacrumbs-utils bootstrap" +) +set( + DATACRUMBS_UTILS_SOURCE_DIR + "${CMAKE_BINARY_DIR}/_deps/datacrumbs-utils-src" + CACHE PATH "Path to the datacrumbs-utils source tree" FORCE +) +set( + DATACRUMBS_UTILS_BUILD_DIR + "${CMAKE_BINARY_DIR}/_deps/datacrumbs-utils-build" + CACHE PATH "Path to the datacrumbs-utils build tree" FORCE +) +set( + DATACRUMBS_UTILS_INSTALL_PREFIX + "${CMAKE_INSTALL_PREFIX}" + CACHE PATH "Path to the datacrumbs-utils install prefix" +) + # ------------------------------------------------------------------------------ # Options for CMake # ------------------------------------------------------------------------------ option(DATACRUMBS_BPFTIME_COMPATIBLE "Enable compatibility with bpftime" OFF) option(DATACRUMBS_ENABLE_OPT "Enable tracing" ON) 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)") set_property(CACHE DATACRUMBS_MODE_STR PROPERTY STRINGS TRACE PROFILE) # options for managing installation set(BPFTOOL_EXECUTABLE "NONE" CACHE STRING "Path to bpftool executable") -set(DATACRUMBS_HOST "NONE" CACHE STRING "Host name for datacrumbs (numbers will be stripped if not set)") -set(DATACRUMBS_USER "$ENV{USER}" CACHE STRING "User name for datacrumbs (default: current environment user)") -set(DATACRUMBS_INSTALL_USER "$ENV{USER}" CACHE STRING "Installation user name for datacrumbs (used in file naming)") + +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") +set(DATACRUMBS_HOST "NONE" CACHE STRING "Host name for datacrumbs") +set(DATACRUMBS_USER "$ENV{USER}" CACHE STRING "User name for datacrumbs") +set(DATACRUMBS_INSTALL_USER "$ENV{USER}" CACHE STRING "Installation user name for datacrumbs") +set(DATACRUMBS_SCHEDULER_TYPE "FLUX" CACHE STRING "Scheduler type for datacrumbs") +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") # Configure Make steps option(DATACRUMBS_SKIP_PROBE_EXPLORING "Skip building the probe explorer executable" OFF) @@ -80,27 +119,16 @@ option(DATACRUMBS_SKIP_PROBE_GENERATION "Skip building the probe generator execu # Tracing Options set(DATACRUMBS_TRACE_RINGBUF_SIZE_MB "16" CACHE STRING "Ring buffer size in MB for BPF tracing") +set(DATACRUMBS_MAX_RUNTIME_FUNCTIONS "16384" CACHE STRING "Maximum number of runtime functions supported in one probes file") set(DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS "1000" CACHE STRING "Threshold in microseconds for skipping events") # 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) -set(DATACRUMBS_KERNEL_VERSION "" CACHE STRING "Kernel version") -set(DATACRUMBS_KERNEL_HEADERS_PATH "" CACHE STRING "Path to the kernel headers directory") 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 @@ -115,6 +143,89 @@ derive_configurations() find_system_details() # ------------------------------------------------------------------------------ +set(DATACRUMBS_INSTALL_PREFIX_PATH "${CMAKE_INSTALL_PREFIX}") +set(DATACRUMBS_INSTALL_HOST "${DATACRUMBS_HOST}") +set(DATACRUMBS_INSTALL_CONFIGS_DIR "${DATACRUMBS_INSTALL_ETC_CONFIGSDIR}") +set(DATACRUMBS_INSTALL_SHARED_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/datacrumbs/data") +set(DATACRUMBS_INSTALL_DATA_DIR "${DATACRUMBS_INSTALL_SHARED_DATA_DIR}") +set(DATACRUMBS_SYSTEM_PROBE_FILE + "${DATACRUMBS_INSTALL_SHARED_DATA_DIR}/system-probe-${DATACRUMBS_INSTALL_USER}-${DATACRUMBS_HOST}.json.gz" +) +set(DATACRUMBS_PROBE_SECRET_FILE + "${DATACRUMBS_INSTALL_SHARED_DATA_DIR}/.datacrumbs-probe-secret" +) +set(DATACRUMBS_SIGN_PROBES_SOCKET_PATH + "${DATACRUMBS_INSTALL_SHARED_DATA_DIR}/datacrumbs-sign-probes.sock" +) +set(DATACRUMBS_TRACE_DIR_PATTERN "${DATACRUMBS_CONFIGURED_TRACE_DIR}/%YY%/%MM%/%DD%") +set(DATACRUMBS_CLIENT_LIB "${DATACRUMBS_UTILS_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/libdatacrumbs_client.so") +set(DATACRUMBS_JOB_SCHEDULER "${DATACRUMBS_SCHEDULER_TYPE}") +set(DATACRUMBS_JOB_RUN "${DATACRUMBS_SCHEDULER_RUN_CMD}") +set(DATACRUMBS_JOB_NODE_FLAG "${DATACRUMBS_SCHEDULER_NODES_CMD_OPT}") +set(DATACRUMBS_JOB_PPN_FLAG "${DATACRUMBS_SCHEDULER_PPN_CMD_OPT}") +set(DATACRUMBS_JOB_OTHER_FLAGS "${DATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS}") +set(DATACRUMBS_JOB_ID_VAR "${DATACRUMBS_SCHEDULER_JOBID_ENV_VAR}") +if(DATACRUMBS_ENABLE_INCLUSION_PATH) + set(DATACRUMBS_INCLUSION_PATHS "${DATACRUMBS_INCLUSION_PATH}") +else() + set(DATACRUMBS_INCLUSION_PATHS "") +endif() +set(DATACRUMBS_SERVER_RUN_DIR "${DATACRUMBS_INSTALL_RUNSTATEDIR}/datacrumbs") +set(DATACRUMBS_SERVER_RUN_ID_FILE "${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs.runid") + +set(DATACRUMBS_SYSTEM_CONFIGURATION_DEFINE_KEYS + DATACRUMBS_INSTALL_PREFIX + DATACRUMBS_INSTALL_HOST + DATACRUMBS_INSTALL_USER + DATACRUMBS_INSTALL_BIN_DIR + DATACRUMBS_INSTALL_SBIN_DIR + DATACRUMBS_INSTALL_LIB_DIR + DATACRUMBS_INSTALL_LIBEXEC_DIR + DATACRUMBS_INSTALL_ETC_DIR + DATACRUMBS_INSTALL_DATA_DIR + DATACRUMBS_INSTALL_MODULES_DIR + DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR + DATACRUMBS_CLIENT_LIB + DATACRUMBS_JOB_SCHEDULER + DATACRUMBS_JOB_RUN + DATACRUMBS_JOB_NODE_FLAG + DATACRUMBS_JOB_PPN_FLAG + DATACRUMBS_JOB_OTHER_FLAGS + DATACRUMBS_JOB_ID_VAR + DATACRUMBS_SERVER_RUN_DIR + DATACRUMBS_CONFIGURED_TRACE_DIR + DATACRUMBS_USER + DATACRUMBS_INCLUSION_PATHS + DATACRUMBS_KERNEL_UNAME_R + DATACRUMBS_KERNEL_HEADERS_PATH + DATACRUMBS_LIBC_SO +) + +set(DATACRUMBS_INSTALL_PREFIX "${DATACRUMBS_INSTALL_PREFIX_PATH}") +set(DATACRUMBS_INSTALL_BIN_DIR "${DATACRUMBS_INSTALL_BINARYDIR}") +set(DATACRUMBS_INSTALL_SBIN_DIR "${DATACRUMBS_INSTALL_SBINARYDIR}") +set(DATACRUMBS_INSTALL_LIBEXEC_DIR "${DATACRUMBS_INSTALL_LIBEXEC}") +set(DATACRUMBS_INSTALL_ETC_DIR "${DATACRUMBS_INSTALL_SYSCONFDIR}") +set(DATACRUMBS_INSTALL_MODULES_DIR "${DATACRUMBS_INSTALL_ETC_MODULESDIR}") +set(DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR "${DATACRUMBS_INSTALL_LIBEXEC}/objects") + +set(DATACRUMBS_SYSTEM_CONFIGURATION_DEFINES "") +foreach(_dc_key IN LISTS DATACRUMBS_SYSTEM_CONFIGURATION_DEFINE_KEYS) + if(NOT DEFINED ${_dc_key}) + continue() + endif() + set(_dc_value "${${_dc_key}}") + if("${_dc_value}" STREQUAL "") + continue() + endif() + if(_dc_value MATCHES "^[+-]?[0-9]+$") + string(APPEND DATACRUMBS_SYSTEM_CONFIGURATION_DEFINES "#define ${_dc_key} ${_dc_value}\n") + else() + string(REPLACE "\\" "\\\\" _dc_escaped "${_dc_value}") + string(REPLACE "\"" "\\\"" _dc_escaped "${_dc_escaped}") + string(APPEND DATACRUMBS_SYSTEM_CONFIGURATION_DEFINES "#define ${_dc_key} \"${_dc_escaped}\"\n") + endif() +endforeach() # ------------------------------------------------------------------------------ # Generate Header file for all sources with compile definitions @@ -125,6 +236,7 @@ message(STATUS " - DATACRUMBS_BPFTIME_COMPATIBLE: ${DATACRUMBS_BPFTI message(STATUS " - DATACRUMBS_MODE: ${DATACRUMBS_MODE}") message(STATUS " - DATACRUMBS_ENABLE: ${DATACRUMBS_ENABLE}") message(STATUS " - DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS: ${DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS}") +message(STATUS " - DATACRUMBS_MAX_RUNTIME_FUNCTIONS: ${DATACRUMBS_MAX_RUNTIME_FUNCTIONS}") message(STATUS " - DATACRUMBS_TRACE_ALL_PROCESSES: ${DATACRUMBS_TRACE_ALL_PROCESSES}") message(STATUS " - DATACRUMBS_TIME_INTERVAL_NS: ${DATACRUMBS_TIME_INTERVAL_NS}") message(STATUS " - DATACRUMBS_BPF_PRINT_ENABLE_FLAG: ${DATACRUMBS_BPF_PRINT_ENABLE_FLAG}") @@ -134,7 +246,6 @@ message(STATUS " - DATACRUMBS_TRACE_RINGBUF_SIZE_MB: ${DATACRUMBS_TR message(STATUS " - DATACRUMBS_SRC_GEN_PATH: ${DATACRUMBS_SRC_GEN_PATH}") message(STATUS " - DATACRUMBS_LIBC_SO: ${DATACRUMBS_LIBC_SO}") -message(STATUS " - DATACRUMBS_BUILD_CLIENT_SO: ${DATACRUMBS_BUILD_CLIENT_SO}") message(STATUS " - DATACRUMBS_CONFIG_PATH: ${DATACRUMBS_CONFIG_PATH}") message(STATUS " - DATACRUMBS_LOG_DIR: ${DATACRUMBS_LOG_DIR}") @@ -144,7 +255,6 @@ message(STATUS " - Kernel Version: ${KERNEL_VERSION_MAJOR}.${KERNEL_ message(STATUS " - DATACRUMBS_BUILD_ONLY: ${DATACRUMBS_BUILD_ONLY}") message(STATUS " - DATACRUMBS_INSTALL_USER: ${DATACRUMBS_INSTALL_USER}") message(STATUS " - DATACRUMBS_USER: ${DATACRUMBS_USER}") -message(STATUS " - DATACRUMBS_KERNEL_VERSION: ${DATACRUMBS_KERNEL_VERSION}") message(STATUS " - Found kernel headers at: ${DATACRUMBS_KERNEL_HEADERS_PATH}") message(STATUS " - DATACRUMBS_KERNEL_UNAME_R: ${DATACRUMBS_KERNEL_UNAME_R}") message(STATUS " - DATACRUMBS_CONFIGURED_TRACE_DIR: ${DATACRUMBS_CONFIGURED_TRACE_DIR}") @@ -154,39 +264,18 @@ message(STATUS " - DATACRUMBS_SCHEDULER_JOBID_ENV_VAR: ${DATACRUMBS_ 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() +message(STATUS " - DATACRUMBS_SYSTEM_PROBE_FILE: ${DATACRUMBS_SYSTEM_PROBE_FILE}") +message(STATUS " - DATACRUMBS_PROBE_SECRET_FILE: ${DATACRUMBS_PROBE_SECRET_FILE}") # ------------------------------------------------------------------------------ # Configure output files for build # ------------------------------------------------------------------------------ configure_file("${CMAKE_SOURCE_DIR}/cmake/configure_files/datacrumbs_config.h.in" "${CMAKE_INCLUDE_OUTPUT_DIRECTORY}/datacrumbs/datacrumbs_config.h" @ONLY) -configure_file("${CMAKE_SOURCE_DIR}/cmake/configure_files/datacrumbs_config.h.in" - "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/composable/include/datacrumbs/datacrumbs_config.h" @ONLY) -install(FILES "${CMAKE_INCLUDE_OUTPUT_DIRECTORY}/datacrumbs/datacrumbs_config.h" - DESTINATION "${DATACRUMBS_INSTALL_LIBEXEC}/composable/include/datacrumbs/") - -configure_file("${CMAKE_SOURCE_DIR}/etc/datacrumbs/configs/${DATACRUMBS_HOST}.yaml" - "${CMAKE_CONFIG_OUTPUT_DIRECTORY}/${DATACRUMBS_HOST}.yaml" @ONLY) - -file(GLOB _DATACRUMBS_DATA_FILES_COPY - "${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/data/*${DATACRUMBS_USER}-${DATACRUMBS_HOST}*.json" -) - -if(_DATACRUMBS_DATA_FILES_COPY) - file(COPY ${_DATACRUMBS_DATA_FILES_COPY} - DESTINATION "${CMAKE_DATA_OUTPUT_DIRECTORY}" - ) -else() - message(WARNING "[${UPPER_PROJECT_NAME}] No data files to copy for user '${DATACRUMBS_USER}' and host '${DATACRUMBS_HOST}'") -endif() +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/plugins/custom_probes/custom_probes.h.in" + "${CMAKE_INCLUDE_OUTPUT_DIRECTORY}/custom_probes.h" @ONLY) +configure_file("${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/plugins/custom_probes/custom_probes_process.h.in" + "${CMAKE_INCLUDE_OUTPUT_DIRECTORY}/custom_probes_process.h" @ONLY) # ------------------------------------------------------------------------------ # Make output directories @@ -194,8 +283,6 @@ endif() file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/server/process/) file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/server/bpf/objects/) file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/server/bpf/src/) -file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/validator/bpf/objects/) -file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/validator/bpf/src/) file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/objects/) # ------------------------------------------------------------------------------ @@ -205,6 +292,65 @@ file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/objects/) # ------------------------------------------------------------------------------ include_dependencies() +ExternalProject_Add( + datacrumbs_utils_external + PREFIX "${CMAKE_BINARY_DIR}/_deps/datacrumbs-utils" + GIT_REPOSITORY "${DATACRUMBS_UTILS_GIT_REPOSITORY}" + GIT_TAG "${DATACRUMBS_UTILS_GIT_REF}" + GIT_SHALLOW FALSE + GIT_REMOTE_UPDATE_STRATEGY CHECKOUT + GIT_SUBMODULES "" + GIT_SUBMODULES_RECURSE FALSE + UPDATE_DISCONNECTED FALSE + SOURCE_DIR "${DATACRUMBS_UTILS_SOURCE_DIR}" + BINARY_DIR "${DATACRUMBS_UTILS_BUILD_DIR}" + INSTALL_DIR "${DATACRUMBS_UTILS_INSTALL_PREFIX}" + CMAKE_ARGS + "-DCMAKE_INSTALL_PREFIX=${DATACRUMBS_UTILS_INSTALL_PREFIX}" + "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/bin" + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/${DATACRUMBS_LIBDIR}" + "-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/${DATACRUMBS_LIBDIR}" + "-DCMAKE_INCLUDE_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/include" + "-DCMAKE_CONFIG_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/configs" + "-DCMAKE_DATA_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/data" + "-DCMAKE_LIBEXEC_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/libexec/${PROJECT_NAME}" + "-DCMAKE_ETC_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}" + "-DCMAKE_MODULES_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/modulefiles" + "-DCMAKE_FLUX_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/flux" + "-DCMAKE_SYSTEMD_OUTPUT_DIRECTORY=${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/systemd" + "-DDATACRUMBS_PROJECT_PATH=${CMAKE_CURRENT_SOURCE_DIR}" + "-DDATACRUMBS_UTILS_PROJECT_PATH=" + "-DDATACRUMBS_HOST=${DATACRUMBS_HOST}" + "-DDATACRUMBS_USER=${DATACRUMBS_USER}" + "-DDATACRUMBS_INSTALL_USER=${DATACRUMBS_INSTALL_USER}" + "-DDATACRUMBS_INCLUSION_PATH=${DATACRUMBS_INCLUSION_PATH}" + "-DDATACRUMBS_CONFIGURED_TRACE_DIR=${DATACRUMBS_CONFIGURED_TRACE_DIR}" + "-DDATACRUMBS_CONFIGURED_LOG_DIR=${DATACRUMBS_CONFIGURED_LOG_DIR}" + "-DDATACRUMBS_CONFIGURED_RUN_DIR=${DATACRUMBS_CONFIGURED_RUN_DIR}" + "-DDATACRUMBS_SCHEDULER_TYPE=${DATACRUMBS_SCHEDULER_TYPE}" + "-DDATACRUMBS_SCHEDULER_JOBID_ENV_VAR=${DATACRUMBS_SCHEDULER_JOBID_ENV_VAR}" + "-DDATACRUMBS_SCHEDULER_NODES_CMD_OPT=${DATACRUMBS_SCHEDULER_NODES_CMD_OPT}" + "-DDATACRUMBS_SCHEDULER_PPN_CMD_OPT=${DATACRUMBS_SCHEDULER_PPN_CMD_OPT}" + "-DDATACRUMBS_SCHEDULER_RUN_CMD=${DATACRUMBS_SCHEDULER_RUN_CMD}" + "-DDATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS=${DATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS}" + "-DDATACRUMBS_LOG_LEVEL_STR=${DATACRUMBS_LOG_LEVEL_STR}" + "-DDATACRUMBS_MODE_STR=${DATACRUMBS_MODE_STR}" + "-DDATACRUMBS_ENABLE_OPT=${DATACRUMBS_ENABLE_OPT}" + "-DDATACRUMBS_TRACE_ALL_PROCESSES_OPT=${DATACRUMBS_TRACE_ALL_PROCESSES_OPT}" + "-DDATACRUMBS_BPF_PRINT_ENABLE=${DATACRUMBS_BPF_PRINT_ENABLE}" + "-DDATACRUMBS_KERNEL_HEADERS_PATH=${DATACRUMBS_KERNEL_HEADERS_PATH}" + "-DDATACRUMBS_KERNEL_VERSION=${DATACRUMBS_KERNEL_VERSION}" + BUILD_COMMAND + "${CMAKE_COMMAND}" --build "" --clean-first + INSTALL_COMMAND + "${CMAKE_COMMAND}" --build "" --target install + USES_TERMINAL_DOWNLOAD TRUE + USES_TERMINAL_UPDATE TRUE + USES_TERMINAL_BUILD TRUE +) + +add_custom_target(datacrumbs_utils_install DEPENDS datacrumbs_utils_external) + # print_all_variables() # ------------------------------------------------------------------------------ @@ -212,79 +358,45 @@ include_dependencies() # Sources for Datacrumbs Components # ------------------------------------------------------------------------------ set(DATACRUMBS_COMMON_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/configuration_manager.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/configuration_manager.h ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/data_structures.h ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/enumerations.h ) -# Datacrumbs client -set(DATACRUMBS_CLIENT_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/client/library.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/client/library.h) -add_library(${PROJECT_NAME}_client SHARED ${DATACRUMBS_CLIENT_SRC}) -message(STATUS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) -set_target_properties(${PROJECT_NAME}_client PROPERTIES - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} +set(DATACRUMBS_SYSTEM_CONFIGURATOR_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/system_configurator/system_configurator_main.cpp ) -install(TARGETS ${PROJECT_NAME}_client - LIBRARY DESTINATION ${DATACRUMBS_INSTALL_LIB_DIR} +set(DATACRUMBS_SIGN_PROBES_SERVICE_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/signer/sign_probes_service_main.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/probe_signing_service.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/probe_signing_service.h ) -# Datacrumbs explorer -set(DATACRUMBS_EXPLORER_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/probe_explorer.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/probe_explorer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/mechanism/elf_capture.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/mechanism/elf_capture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/mechanism/header_capture.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/mechanism/header_capture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/mechanism/ksym_capture.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/mechanism/ksym_capture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/explorer/mechanism/usdt_functions.h -) -add_executable(${PROJECT_NAME}_explorer ${DATACRUMBS_EXPLORER_SRC} ${DATACRUMBS_COMMON_SRC}) -target_link_libraries(${PROJECT_NAME}_explorer ${DEPENDENCY_LIB}) -add_dependencies(${PROJECT_NAME}_explorer ${PROJECT_NAME}_client clean_all) - -if(NOT DEFINED DATACRUMBS_SKIP_PROBE_EXPLORING OR NOT DATACRUMBS_SKIP_PROBE_EXPLORING) - add_custom_target(run_explorer - COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}_explorer ${DATACRUMBS_HOST} ${DATACRUMBS_VARS} - DEPENDS ${PROJECT_NAME}_explorer - COMMENT "Running ${PROJECT_NAME}_explorer with argument '${DATACRUMBS_HOST}'" - ) -else() - add_custom_target(run_explorer - COMMAND ${CMAKE_COMMAND} -E echo "Dummy run_explorer target skipped probe exploration" - COMMENT "Dummy run_explorer target: probe exploration is skipped" - ) -endif() - -add_dependencies(run_explorer ${PROJECT_NAME}_client) - -# Datacrumbs generator -set(DATACRUMBS_GENERATOR_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/generator/generator.cpp +add_executable(datacrumbs_system_configurator ${DATACRUMBS_SYSTEM_CONFIGURATOR_SRC} ${DATACRUMBS_COMMON_SRC}) +target_link_libraries(datacrumbs_system_configurator ${DEPENDENCY_LIB}) +add_dependencies(datacrumbs_system_configurator datacrumbs_utils_install) +install(TARGETS datacrumbs_system_configurator + RUNTIME DESTINATION "${DATACRUMBS_INSTALL_BINARYDIR}" ) -add_executable(${PROJECT_NAME}_generator ${DATACRUMBS_GENERATOR_SRC} ${DATACRUMBS_COMMON_SRC}) -target_link_libraries(${PROJECT_NAME}_generator ${DEPENDENCY_LIB}) -add_dependencies(${PROJECT_NAME}_generator ${PROJECT_NAME}_explorer) -if(NOT DEFINED DATACRUMBS_SKIP_PROBE_GENERATION OR NOT DATACRUMBS_SKIP_PROBE_GENERATION) - add_custom_target(run_generator - COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${PROJECT_NAME}_generator ${DATACRUMBS_HOST} ${DATACRUMBS_VARS} - DEPENDS ${PROJECT_NAME}_generator - COMMENT "Running ${PROJECT_NAME}_generator with argument '${DATACRUMBS_HOST}'" - ) - add_dependencies(${PROJECT_NAME}_generator ${PROJECT_NAME}_explorer) - add_dependencies(run_generator run_explorer) -else() - add_custom_target(run_generator - COMMAND ${CMAKE_COMMAND} -E echo "Dummy run_generator target skipped probe generation" - COMMENT "Dummy run_generator target: probe generation is skipped" - ) -endif() +add_executable(datacrumbs_sign_probes ${DATACRUMBS_SIGN_PROBES_SERVICE_SRC} ${DATACRUMBS_COMMON_SRC}) +target_link_libraries(datacrumbs_sign_probes ${DEPENDENCY_LIB}) +add_dependencies(datacrumbs_sign_probes datacrumbs_utils_install run_system_configurator) +install(TARGETS datacrumbs_sign_probes + RUNTIME DESTINATION "${DATACRUMBS_INSTALL_BINARYDIR}" +) -add_dependencies(${PROJECT_NAME}_generator ${PROJECT_NAME}_explorer) -add_dependencies(run_generator run_explorer) +add_custom_target( + run_system_configurator ALL + COMMAND + ${CMAKE_COMMAND} + -DDATACRUMBS_SYSTEM_PROBE_FILE=${DATACRUMBS_SYSTEM_PROBE_FILE} + -DDATACRUMBS_PROBE_SECRET_FILE=${DATACRUMBS_PROBE_SECRET_FILE} + -DDATACRUMBS_SYSTEM_CONFIGURATOR_BIN=$ + -P + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/run_system_configurator_if_missing.cmake + DEPENDS datacrumbs_system_configurator datacrumbs_utils_install + COMMENT "Generating install-time system configuration and probe secret" +) # Generate vmlinux.h from vmlinux BTF set(VMLINUX_HEADER "${CMAKE_INCLUDE_OUTPUT_DIRECTORY}/datacrumbs/server/bpf/vmlinux.h") @@ -314,51 +426,23 @@ set(DATACRUMBS_BPF_INCLUDE_PATHS ${DATACRUMBS_INSTALL_LIBEXEC} ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/plugins/custom_probes ) set(DATACRUMBS_BPF_INCLUDE_FLAGS "") +file( + GLOB_RECURSE DATACRUMBS_CUSTOM_BPF_PLUGIN_FILES + "${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/plugins/custom_probes/*.h" + "${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/plugins/custom_probes/*.c" +) + foreach(path IN LISTS DATACRUMBS_BPF_INCLUDE_PATHS) list(APPEND DATACRUMBS_BPF_INCLUDE_FLAGS -I${path}) endforeach() -# Read the YAML config file and extract the list of probe names under capture_probes -file(READ "${DATACRUMBS_CONFIG_PATH}/${DATACRUMBS_HOST}.yaml" DATACRUMBS_CONFIG_YAML) - -# Extract the capture_probes block and get all names under it -set(DATACRUMBS_CAPTURE_PROBES_LIST "") - -# Find the capture_probes block -string(REGEX MATCH "capture_probes:[^\n]*\n([^\n]*\n)*" _CAPTURE_PROBES_BLOCK "${DATACRUMBS_CONFIG_YAML}") - -# Split the _CAPTURE_PROBES_BLOCK into lines -string(REPLACE "\n" ";" _CAPTURE_PROBES_LINES "${_CAPTURE_PROBES_BLOCK}") - -# If any line in _CAPTURE_PROBES_LINES contains 'name:', add it to _CAPTURE_PROBES_NAME_LINES -set(_CAPTURE_PROBES_NAME_LINES "") - -foreach(_line ${_CAPTURE_PROBES_LINES}) - if(_line MATCHES "^[ ]*-[ ]*name:[ ]*") - list(APPEND _CAPTURE_PROBES_NAME_LINES "${_line}") - endif() -endforeach() - -foreach(_line ${_CAPTURE_PROBES_NAME_LINES}) - string(REGEX REPLACE "^[ ]*-[ ]*name:[ ]*" "" _probe_name "${_line}") - - # message(STATUS "[${UPPER_PROJECT_NAME}] Capture probe name: ${_probe_name}") - list(APPEND DATACRUMBS_CAPTURE_PROBES_LIST "${_probe_name}") -endforeach() - -message(STATUS "[${UPPER_PROJECT_NAME}] Capture probes: ${DATACRUMBS_CAPTURE_PROBES_LIST}") - list(APPEND DATACRUMBS_BPF_EXTRA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/bpf/common.c) list(APPEND DATACRUMBS_BPF_EXTRA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/bpf/init.bpf.c) - -# For each probe in DATACRUMBS_CAPTURE_PROBES_LIST, add probename.bpf.c to DATACRUMBS_BPF_EXTRA_SOURCES -foreach(_probe_name ${DATACRUMBS_CAPTURE_PROBES_LIST}) - set(_probe_bpf_c "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/server/bpf/src/${_probe_name}.bpf.c") - list(APPEND DATACRUMBS_BPF_EXTRA_SOURCES "${_probe_bpf_c}") -endforeach() +list(APPEND DATACRUMBS_BPF_EXTRA_SOURCES ${BPF_SOURCE}) # Find all .c source files in ${CMAKE_BINARY_DIR}/libexec/datacrumbs/server/bpf set(DATACRUMBS_BPF_OBJECTS "") @@ -377,7 +461,7 @@ foreach(BPF_SRC_FILE ${DATACRUMBS_BPF_EXTRA_SOURCES}) ${DATACRUMBS_BPF_INCLUDE_FLAGS} -c ${BPF_SRC_FILE} -o ${BPF_OBJ_FILE} - DEPENDS ${BPF_SRC_FILE} vmlinux_header run_generator + DEPENDS ${BPF_SRC_FILE} ${DATACRUMBS_CUSTOM_BPF_PLUGIN_FILES} vmlinux_header COMMENT "Compiling BPF object: ${BPF_OBJ_FILE} (timed)" VERBATIM ) @@ -389,6 +473,11 @@ endforeach() string(REPLACE ";" " " DATACRUMBS_BPF_OBJECTS_STR "${DATACRUMBS_BPF_OBJECTS}") +add_custom_target(datacrumbs_bpf_force_clean + COMMAND ${CMAKE_COMMAND} -E rm -f ${DATACRUMBS_BPF_OBJECTS} ${BPF_OUTPUT} ${BPF_SKEL_OUTPUT} + COMMENT "Removing stale BPF objects and skeleton before rebuild" +) + # Link all object files into a single object file add_custom_command( OUTPUT ${BPF_OUTPUT} @@ -401,9 +490,8 @@ add_custom_command( add_custom_target(datacrumbs_bpf ALL DEPENDS ${BPF_OUTPUT}) -if(NOT DEFINED DATACRUMBS_SKIP_PROBE_GENERATION OR NOT DATACRUMBS_SKIP_PROBE_GENERATION) - add_dependencies(datacrumbs_bpf vmlinux_header run_generator) -endif() +add_dependencies(datacrumbs_bpf vmlinux_header) +add_dependencies(datacrumbs_bpf datacrumbs_bpf_force_clean) # Generate Skeleton header for Datacrumbs set(BPF_SKEL_OUTPUT ${CMAKE_BINARY_DIR}/include/datacrumbs/server/bpf/datacrumbs.skel.h) @@ -420,6 +508,8 @@ add_dependencies(datacrumbs_bpf_skel datacrumbs_bpf) # Build object file with everything except server.cpp set(DATACRUMBS_PROCESS_EVENTS_OBJ_SRC + ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/runtime_configuration_manager.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/runtime_configuration_manager.h ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/process/writer/chrome_writer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/process/event_processor.cpp ${DATACRUMBS_COMMON_SRC} @@ -435,12 +525,12 @@ target_link_libraries(datacrumbs_obj ${DEPENDENCY_LIB}) install(TARGETS datacrumbs_obj LIBRARY DESTINATION ${DATACRUMBS_INSTALL_LIB_DIR} ) -add_dependencies(datacrumbs_obj datacrumbs_bpf_skel) +add_dependencies(datacrumbs_obj datacrumbs_utils_install datacrumbs_bpf_skel run_system_configurator) # Build the final executable by linking server.cpp and the object library add_executable(${PROJECT_NAME} ${DATACRUMBS_SERVER_SRC}) target_link_libraries(${PROJECT_NAME} datacrumbs_obj ${DEPENDENCY_LIB}) -add_dependencies(${PROJECT_NAME} datacrumbs_bpf_skel datacrumbs_obj) +add_dependencies(${PROJECT_NAME} datacrumbs_utils_install datacrumbs_bpf_skel datacrumbs_obj run_system_configurator) # Install the main processing executable into DATACRUMBS_INSTALL_BINARYDIR install(TARGETS ${PROJECT_NAME} @@ -452,173 +542,15 @@ install(FILES ${BPF_OUTPUT} DESTINATION "${DATACRUMBS_INSTALL_LIBEXEC}/objects" ) -set(DATACRUMBS_VALIDATE_BPF_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/validator/bpf/probe.bpf.c -) -set(DATACRUMBS_VALIDATE_BPF_OBJ_FILE ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/validator/bpf/objects/probe.bpf.o) -add_custom_command( - OUTPUT ${DATACRUMBS_VALIDATE_BPF_OBJ_FILE} - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "Compiling BPF object: ${DATACRUMBS_VALIDATE_BPF_OBJ_FILE} (timed)" - COMMAND /usr/bin/time -f "Elapsed time for ${DATACRUMBS_VALIDATE_BPF_OBJ_FILE}: %E" ${CLANG_EXECUTABLE} - -target bpf - -D__TARGET_ARCH_${DATACRUMBS_ARCH} - -Wall -g -O2 - ${DATACRUMBS_BPF_INCLUDE_FLAGS} - -c ${DATACRUMBS_VALIDATE_BPF_SRC} - -o ${DATACRUMBS_VALIDATE_BPF_OBJ_FILE} - DEPENDS ${DATACRUMBS_VALIDATE_BPF_SRC} vmlinux_header - COMMENT "Compiling BPF object: ${DATACRUMBS_VALIDATE_BPF_OBJ_FILE} (timed)" - VERBATIM -) - -set(DATACRUMBS_VALIDATOR_BPF_OUTPUT ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/objects/validator.o) - -add_custom_command( - OUTPUT ${DATACRUMBS_VALIDATOR_BPF_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan "Linking all BPF objects into ${DATACRUMBS_VALIDATOR_BPF_OUTPUT} (timed)" - COMMAND /usr/bin/time -f "Elapsed time for linking: %E" ${BPFTOOL_EXECUTABLE} gen object ${DATACRUMBS_VALIDATOR_BPF_OUTPUT} ${DATACRUMBS_VALIDATE_BPF_OBJ_FILE} - DEPENDS ${DATACRUMBS_VALIDATE_BPF_OBJ_FILE} - COMMENT "Linking all BPF objects into ${DATACRUMBS_VALIDATOR_BPF_OUTPUT} (timed)" - VERBATIM -) -add_custom_target(datacrumbs_validator_bpf ALL DEPENDS ${DATACRUMBS_VALIDATOR_BPF_OUTPUT}) -add_dependencies(datacrumbs_validator_bpf vmlinux_header) - -# Generate Skeleton header for Datacrumbs -set(DATACRUMBS_VALIDATOR_BPF_SKEL_OUTPUT ${CMAKE_BINARY_DIR}/include/datacrumbs/validator/bpf/datacrumbs_validator.skel.h) -add_custom_command( - OUTPUT ${DATACRUMBS_VALIDATOR_BPF_SKEL_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include/datacrumbs/validator/bpf - COMMAND ${BPFTOOL_EXECUTABLE} gen skeleton ${DATACRUMBS_VALIDATOR_BPF_OUTPUT} > ${DATACRUMBS_VALIDATOR_BPF_SKEL_OUTPUT} - DEPENDS ${DATACRUMBS_VALIDATOR_BPF_OUTPUT} - COMMENT "Generating BPF skeleton: ${DATACRUMBS_VALIDATOR_BPF_SKEL_OUTPUT}" - VERBATIM -) -add_custom_target(datacrumbs_validator_bpf_skel ALL DEPENDS ${DATACRUMBS_VALIDATOR_BPF_SKEL_OUTPUT}) -add_dependencies(datacrumbs_validator_bpf_skel datacrumbs_validator_bpf) - -# Processing Executable -set(DATACRUMBS_VALIDATOR_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/validator/probe_validator.cpp - ${DATACRUMBS_VALIDATOR_BPF_SKEL_OUTPUT} -) -add_executable(${PROJECT_NAME}_validator ${DATACRUMBS_VALIDATOR_SRC} ${DATACRUMBS_COMMON_SRC}) -target_link_libraries(${PROJECT_NAME}_validator ${DEPENDENCY_LIB}) -add_dependencies(${PROJECT_NAME}_validator datacrumbs_validator_bpf_skel) -add_dependencies(${PROJECT_NAME}_validator datacrumbs_bpf_skel) - -# Install the main processing executable into DATACRUMBS_INSTALL_BINARYDIR -install(TARGETS ${PROJECT_NAME}_validator - RUNTIME DESTINATION "${DATACRUMBS_INSTALL_SBINARYDIR}" -) - # ------------------------------------------------------------------------------ # Custom executables for Datacrumbs # ------------------------------------------------------------------------------ -if(NOT DEFINED DATACRUMBS_SKIP_PROBE_GENERATION OR NOT DATACRUMBS_SKIP_PROBE_GENERATION) - add_custom_target(clean_all - COMMAND ${CMAKE_COMMAND} -E rm -rf - ${BPF_OUTPUT} - ${BPF_SKEL_OUTPUT} - ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/datacrumbs - COMMENT "Cleaning BPF build artifacts (ignoring if cannot remove)" - ) -else() - add_custom_target(clean_all - COMMAND ${CMAKE_COMMAND} -E echo "Dummy clean_all target skipped cleaning BPF build artifacts" - COMMENT "Dummy clean_all target: skipping cleaning BPF build artifacts" - ) -endif() - -# ------------------------------------------------------------------------------ -# Install Files -# ------------------------------------------------------------------------------ - -# Compose cmake file -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/composable) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/datacrumbs-utils.cmake" - "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/composable/cmake/modules/datacrumbs-utils.cmake" @ONLY) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/composable/CMakeLists.txt.in" - "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/composable/CMakeLists.txt" @ONLY) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/composable/process/server.cpp" - "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/composable/src/datacrumbs/composable/process/server.cpp" @ONLY) -install(FILES "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/composable/cmake/modules/datacrumbs-utils.cmake" - DESTINATION "${DATACRUMBS_INSTALL_LIBEXEC}/composable/cmake/modules" -) -install(FILES "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/composable/CMakeLists.txt" - DESTINATION "${DATACRUMBS_INSTALL_LIBEXEC}/composable" -) -install(FILES "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/composable/src/datacrumbs/composable/process/server.cpp" - DESTINATION "${DATACRUMBS_INSTALL_LIBEXEC}/composable/src/datacrumbs/composable/process" -) -install(FILES "${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/server/process/generated_process.h" - DESTINATION "${DATACRUMBS_INSTALL_LIBEXEC}/composable/include/datacrumbs/server/process" -) - -# Install src and header files for composable components -set(DATACRUMBS_PUBLIC_HEADER_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/process/event_processor.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/process/writer/chrome_writer.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/process/compress/zlib_compressor.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/configuration_manager.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/data_structures.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/enumerations.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/logging.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/utils.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/constants.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/common/typedefs.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/bpf/shared.h - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/bpf/compat/map.h -) -set(DATACRUMBS_PUBLIC_SRC_FILES - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/server/process/server.impl.cpp -) - -datacrumbs_composable_install_headers("${DATACRUMBS_PUBLIC_HEADER_FILES}") -datacrumbs_composable_install_src("${DATACRUMBS_PUBLIC_SRC_FILES}") - -# Install project configuration file -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/configs/project.env.local.in ${CMAKE_CONFIG_OUTPUT_DIRECTORY}/project.env.local @ONLY) -install( - FILES - ${CMAKE_CONFIG_OUTPUT_DIRECTORY}/project.env.local - DESTINATION - ${DATACRUMBS_INSTALL_ETC_CONFIGSDIR} -) - -# Install host-specific config YAML -set(_DATACRUMBS_HOST_CONFIG "${CMAKE_CONFIG_OUTPUT_DIRECTORY}/${DATACRUMBS_HOST}.yaml") - -if(EXISTS "${_DATACRUMBS_HOST_CONFIG}") - install(FILES "${_DATACRUMBS_HOST_CONFIG}" - DESTINATION "${DATACRUMBS_INSTALL_ETC_CONFIGSDIR}" - ) -else() - message(WARNING "[${UPPER_PROJECT_NAME}] Host config not found: ${_DATACRUMBS_HOST_CONFIG}; skipping install") -endif() - -# Install host/user specific data JSON files -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} - DESTINATION "${DATACRUMBS_INSTALL_DATADIR}" - ) -else() - message(WARNING "[${UPPER_PROJECT_NAME}] No data files matching pattern for user '${DATACRUMBS_USER}' and host '${DATACRUMBS_HOST}' found; skipping install.") -endif() - -# Module file -configure_file("${CMAKE_SOURCE_DIR}/etc/datacrumbs/modulefiles/module.lua.in" - "${CMAKE_MODULES_OUTPUT_DIRECTORY}/${PROJECT_NAME}/${DATACRUMBS_RELEASE_VERSION_STRING}.lua" @ONLY) - -install(FILES "${CMAKE_MODULES_OUTPUT_DIRECTORY}/${PROJECT_NAME}/${DATACRUMBS_RELEASE_VERSION_STRING}.lua" - DESTINATION "${DATACRUMBS_INSTALL_ETC_MODULESDIR}/${PROJECT_NAME}" +add_custom_target(clean_all + COMMAND ${CMAKE_COMMAND} -E rm -rf + ${BPF_OUTPUT} + ${BPF_SKEL_OUTPUT} + ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/datacrumbs + COMMENT "Cleaning BPF build artifacts (ignoring if cannot remove)" ) # flux cli plugin file @@ -629,141 +561,18 @@ install(FILES "${CMAKE_FLUX_OUTPUT_DIRECTORY}/cli/plugins/datacrumbs.py" DESTINATION "${DATACRUMBS_INSTALL_ETC_FLUX}/cli/plugins" ) -# ------------------------------------------------------------------------------ -# Install Datacrumbs scripts -# ------------------------------------------------------------------------------ -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_setup.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_setup @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_setup - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_utility.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_utility @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_utility - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_args.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_args @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_args - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_logging.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_logging @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_logging - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_run.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_run @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_run - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_run_validator.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_run_validator @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_run_validator - DESTINATION - ${DATACRUMBS_INSTALL_SBINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_track.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_track @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_track - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_untrack.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_untrack @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_untrack - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_wrap.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_wrap @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_wrap - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_compose.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_compose @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_compose - DESTINATION - ${DATACRUMBS_INSTALL_SBINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_compose_run.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_compose_run @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_compose_run - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_stop.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_stop @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_stop - DESTINATION - ${DATACRUMBS_INSTALL_SBINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_compose_wrapper.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_compose_wrapper @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_compose_wrapper - DESTINATION - ${DATACRUMBS_INSTALL_SBINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_create_log_dir.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_create_log_dir @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_create_log_dir - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_server_run.sh.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_server_run.sh @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_server_run.sh - DESTINATION - ${DATACRUMBS_INSTALL_SBINARYDIR} -) - -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_server_stop.sh.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_server_stop.sh @ONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/systemd/datacrumbs@.service.in ${CMAKE_SYSTEMD_OUTPUT_DIRECTORY}/datacrumbs@.service @ONLY) install( PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_server_stop.sh + ${CMAKE_SYSTEMD_OUTPUT_DIRECTORY}/datacrumbs@.service DESTINATION - ${DATACRUMBS_INSTALL_SBINARYDIR} + ${DATACRUMBS_INSTALL_ETC_SYSTEMD} ) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/systemd/datacrumbs@.service.in ${CMAKE_SYSTEMD_OUTPUT_DIRECTORY}/datacrumbs@.service @ONLY) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/systemd/datacrumbs_sign_probes.service.in ${CMAKE_SYSTEMD_OUTPUT_DIRECTORY}/datacrumbs_sign_probes.service @ONLY) install( PROGRAMS - ${CMAKE_SYSTEMD_OUTPUT_DIRECTORY}/datacrumbs@.service + ${CMAKE_SYSTEMD_OUTPUT_DIRECTORY}/datacrumbs_sign_probes.service DESTINATION ${DATACRUMBS_INSTALL_ETC_SYSTEMD} ) @@ -792,51 +601,9 @@ install( ${DATACRUMBS_INSTALL_SBINARYDIR} ) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/datacrumbs/datacrumbs_salloc.in ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_salloc @ONLY) -install( - PROGRAMS - ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_salloc - DESTINATION - ${DATACRUMBS_INSTALL_BINARYDIR} -) - - # Create an empty directory at install time install(CODE "file(MAKE_DIRECTORY \"\${DATACRUMBS_INSTALL_LIBEXEC}/sbin\")") -# ------------------------------------------------------------------------------ -# Run configurations for DataCrumbs executables. -# ------------------------------------------------------------------------------ -enable_testing() - -# set(DATACRUMBS_VARS --user ${DATACRUMBS_USER} --config_path ${CMAKE_CONFIG_OUTPUT_DIRECTORY} --data_dir ${CMAKE_CURRENT_SOURCE_DIR}/etc/datacrumbs/data --trace_log_dir $ENV{HOME}/logs) -add_test(NAME datacrumbs_validator COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/datacrumbs_validator ${DATACRUMBS_HOST} ${DATACRUMBS_VARS}) -set_tests_properties(datacrumbs_validator PROPERTIES DEPENDS ${PROJECT_NAME}_validator) - -add_test(NAME datacrumbs_pretest COMMAND bash -c "ulimit -n 4096") - -set(DATACRUMBS_VARS --user ${DATACRUMBS_USER} --config_path ${DATACRUMBS_INSTALL_SYSCONFDIR}/configs --data_dir ${DATACRUMBS_INSTALL_SYSCONFDIR}/data --trace_log_dir $ENV{HOME}/logs) - -if(NOT DATACRUMBS_INCLUSION_PATH STREQUAL "NONE") - set(DATACRUMBS_VARS ${DATACRUMBS_VARS} --inclusion_path ${DATACRUMBS_INCLUSION_PATH}) -endif() - -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 ${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 ${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}) - -add_subdirectory(tools) -add_subdirectory(tests) - add_test(NAME test_simple_dd COMMAND bash -c "dd if=/dev/zero of=/tmp/img_temp.bat bs=1M count=16" ) -set_tests_properties(test_simple_dd PROPERTIES ENVIRONMENT "LD_PRELOAD=${DATACRUMBS_BUILD_CLIENT_SO}") \ No newline at end of file diff --git a/analysis/analysis.ipynb b/analysis/analysis.ipynb deleted file mode 100755 index c282353f..00000000 --- a/analysis/analysis.ipynb +++ /dev/null @@ -1,5050 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis for DFProfiler\n", - "\n", - "This is a simple analysis notebook for dfprofiler." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Imports" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "import json\n", - "import dask\n", - "import os\n", - "from pathlib import Path\n", - "from glob import glob\n", - "import zindex_py as zindex" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "import dask.dataframe as dd\n", - "from dask.distributed import Client, LocalCluster, progress, wait, get_client\n", - "from dask.distributed import Future, get_client" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Project Variables" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "app_root = str(Path(os.getcwd()).parent)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "logging.basicConfig(\n", - " level=logging.DEBUG,\n", - " handlers=[\n", - " logging.StreamHandler(),\n", - " ],\n", - " format=\"%(asctime)s [%(levelname)s]: %(message)s in %(pathname)s:%(lineno)d\",\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup Dask Local Cluster" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-10-17 11:06:37,945 [DEBUG]: Using selector: EpollSelector in /collab/usr/gapps/python/build/spack-toss4.1/var/spack/environments/python/._view/75prb56irmif5ejtirjthpx6kq3gqo52/lib/python3.9/asyncio/selector_events.py:54\n", - "2024-10-17 11:06:40,897 [INFO]: Initialized Client with 4 workers and link http://127.0.0.1:8787/status in /var/tmp/haridev/ipykernel_2289341/1637310826.py:4\n" - ] - } - ], - "source": [ - "workers=4\n", - "cluster = LocalCluster(n_workers=workers) # Launches a scheduler and workers locally\n", - "client = Client(cluster) # Connect to distributed cluster and override default\n", - "logging.info(f\"Initialized Client with {workers} workers and link {client.dashboard_link}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Start Analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/usr/WS2/haridev/datacrumbs/tests/output/case-write-simple/profile.pfw.gz']" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "file=f\"{app_root}/tests/output/case-write-simple/profile.pfw.gz\"\n", - "file_pattern = glob(file)\n", - "file_pattern" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Function to load trace data" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def create_index(filename):\n", - " index_file = f\"{filename}.zindex\"\n", - " if not os.path.exists(index_file):\n", - " status = zindex.create_index(filename, index_file=f\"file:{index_file}\",\n", - " regex=\"id:\\b([0-9]+)\", numeric=True, unique=True, debug=False, verbose=False)\n", - " logging.debug(f\"Creating Index for {filename} returned {status}\")\n", - " return filename\n", - "\n", - "def get_linenumber(filename):\n", - " index_file = f\"{filename}.zindex\"\n", - " line_number = zindex.get_max_line(filename, index_file=index_file, debug=False, verbose=False)\n", - " logging.debug(f\" The {filename} has {line_number} lines\")\n", - " return (filename, line_number)\n", - "\n", - "def get_size(filename):\n", - " conf = get_dft_configuration()\n", - " if filename.endswith('.pfw'):\n", - " size = os.stat(filename).st_size\n", - " elif filename.endswith('.pfw.gz'):\n", - " index_file = f\"{filename}.zindex\"\n", - " line_number = zindex.get_max_line(filename, index_file=index_file,debug=False, verbose=False)\n", - " size = line_number * 256\n", - " logging.debug(f\" The {filename} has {size/1024**3} GB size\")\n", - " return int(size)\n", - "\n", - "\n", - "def generate_line_batches(filename, max_line):\n", - " batch_size = 16*1024\n", - " for start in range(0, max_line, batch_size):\n", - " end = min((start + batch_size - 1) , (max_line - 1))\n", - " logging.debug(f\"Created a batch for {filename} from [{start}, {end}] lines\")\n", - " yield filename, start, end\n", - "\n", - "def load_indexed_gzip_files(filename, start, end):\n", - " index_file = f\"{filename}.zindex\"\n", - " json_lines = zindex.zquery(filename, index_file=index_file,\n", - " raw=f\"select a.line from LineOffsets a where a.line >= {start} AND a.line <= {end};\", debug=False, verbose=False)\n", - " logging.debug(f\"Read {len(json_lines)} json lines for [{start}, {end}]\")\n", - " return json_lines" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "def load_profile(line):\n", - " d = {}\n", - " if line is not None and line !=\"\" and len(line) > 0 and \"[\" != line[0] and line != \"\\n\" :\n", - " try:\n", - " unicode_line = ''.join([i if ord(i) < 128 else '#' for i in line])\n", - " val = json.loads(unicode_line)\n", - " d[\"pid\"] = val[\"pid\"]\n", - " d[\"tid\"] = val[\"tid\"]\n", - " d[\"ts_us\"] = int(val[\"ts\"])\n", - " d[\"filename\"] = \"NA\"\n", - " if \"args\" in val:\n", - " if \"time\" in val[\"args\"]:\n", - " d[\"dur_sec\"] = float(val[\"args\"][\"time\"])\n", - " if \"freq\" in val[\"args\"]:\n", - " d[\"freq\"] = val[\"args\"][\"freq\"]\n", - " if \"size_sum\" in val[\"args\"]:\n", - " d[\"size_bytes\"] = val[\"args\"][\"size_sum\"]\n", - " if \"fname\" in val[\"args\"] and val[\"args\"][\"fname\"]:\n", - " d[\"filename\"] = val[\"args\"][\"fname\"]\n", - " d[\"func_id\"] = val[\"name\"]\n", - " d[\"cat\"] = val[\"cat\"]\n", - " except Exception as error:\n", - " logging.error(f\"Processing {line} failed with {error}\")\n", - " return d" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create Dask Dataframe" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-10-17 11:10:16,802 [INFO]: Created index for 1 files in /var/tmp/haridev/ipykernel_2289341/405840175.py:3\n", - "2024-10-17 11:10:16,806 [INFO]: Total size of all files are bytes in /var/tmp/haridev/ipykernel_2289341/405840175.py:5\n", - "2024-10-17 11:10:16,845 [INFO]: Max lines per file are [('/usr/WS2/haridev/datacrumbs/tests/output/case-write-simple/profile.pfw.gz', 963)] in /var/tmp/haridev/ipykernel_2289341/405840175.py:7\n", - "2024-10-17 11:10:16,847 [DEBUG]: Created a batch for /usr/WS2/haridev/datacrumbs/tests/output/case-write-simple/profile.pfw.gz from [0, 962] lines in /var/tmp/haridev/ipykernel_2289341/2639451476.py:31\n", - "2024-10-17 11:10:16,848 [INFO]: Loading 1 batches out of 1 files and has 963 lines overall in /var/tmp/haridev/ipykernel_2289341/405840175.py:15\n" - ] - } - ], - "source": [ - "if len(file_pattern) > 0:\n", - " dask.bag.from_sequence(file_pattern).map(create_index).compute()\n", - " logging.info(f\"Created index for {len(file_pattern)} files\")\n", - " total_size = dask.bag.from_sequence(file_pattern).map(get_size).sum()\n", - " logging.info(f\"Total size of all files are {total_size} bytes\")\n", - " max_line_numbers = dask.bag.from_sequence(file_pattern).map(get_linenumber).compute()\n", - " logging.info(f\"Max lines per file are {max_line_numbers}\")\n", - " json_line_delayed = []\n", - " total_lines = 0\n", - " for filename, max_line in max_line_numbers:\n", - " total_lines += max_line\n", - " for _, start, end in generate_line_batches(filename, max_line):\n", - " json_line_delayed.append((filename, start, end))\n", - "\n", - " logging.info(f\"Loading {len(json_line_delayed)} batches out of {len(file_pattern)} files and has {total_lines} lines overall\")\n", - " json_line_bags = []\n", - " for filename, start, end in json_line_delayed:\n", - " num_lines = end - start + 1\n", - " json_line_bags.append(dask.delayed(load_indexed_gzip_files, nout=num_lines)(filename, start, end))\n", - " json_lines = dask.bag.concat(json_line_bags)\n", - " pfw_bag = json_lines.map(load_profile).filter(lambda x: \"ts_us\" in x)\n", - " pfw_bag.take(1)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "columns = {'pid': \"uint64[pyarrow]\", 'tid': \"uint64[pyarrow]\",\n", - " 'ts_us': \"uint64[pyarrow]\", 'dur_sec': \"float32[pyarrow]\", \n", - " 'freq': \"uint64[pyarrow]\", 'size_bytes': \"uint64[pyarrow]\", 'func_id': \"string[pyarrow]\", \n", - " 'filename': \"string[pyarrow]\", \n", - " 'cat': \"string[pyarrow]\"}" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "events = pfw_bag.to_dataframe(meta=columns)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "events = events.repartition(npartitions=1).persist()\n", - "_ = wait(events)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pidtidts_usdur_secfreqsize_bytesfunc_idfilenamecat
07755775500.0000041832read/lib/x86_64-linux-gnu/libcrypto.so.3sys
17755775500.0000083<NA>vfs_readNAvfs
27755775500.0000176<NA>closeNAc
37755775500.00020260<NA>blk_account_io_merge_bio [kernel]NAext4
47755775500.00004333<NA>ext4_inode_journal_mode [kernel]NAext4
..............................
9567755775510000000.04943247<NA>filemap_get_entry [kernel]NAvfs
9577755775510000000.00001523<NA>profile_tick [kernel]NAvfs
9587755775510000000.0000062<NA>remote_function [kernel]NAvfs
9597755775510000000.0000011<NA>apparmor_mmap_file [kernel]NAvfs
9607755775510000000.0000283<NA>freeNAc
\n", - "

961 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " pid tid ts_us dur_sec freq size_bytes \\\n", - "0 7755 7755 0 0.000004 1 832 \n", - "1 7755 7755 0 0.000008 3 \n", - "2 7755 7755 0 0.000017 6 \n", - "3 7755 7755 0 0.000202 60 \n", - "4 7755 7755 0 0.000043 33 \n", - ".. ... ... ... ... ... ... \n", - "956 7755 7755 1000000 0.049432 47 \n", - "957 7755 7755 1000000 0.000015 23 \n", - "958 7755 7755 1000000 0.000006 2 \n", - "959 7755 7755 1000000 0.000001 1 \n", - "960 7755 7755 1000000 0.000028 3 \n", - "\n", - " func_id filename \\\n", - "0 read /lib/x86_64-linux-gnu/libcrypto.so.3 \n", - "1 vfs_read NA \n", - "2 close NA \n", - "3 blk_account_io_merge_bio [kernel] NA \n", - "4 ext4_inode_journal_mode [kernel] NA \n", - ".. ... ... \n", - "956 filemap_get_entry [kernel] NA \n", - "957 profile_tick [kernel] NA \n", - "958 remote_function [kernel] NA \n", - "959 apparmor_mmap_file [kernel] NA \n", - "960 free NA \n", - "\n", - " cat \n", - "0 sys \n", - "1 vfs \n", - "2 c \n", - "3 ext4 \n", - "4 ext4 \n", - ".. ... \n", - "956 vfs \n", - "957 vfs \n", - "958 vfs \n", - "959 vfs \n", - "960 c \n", - "\n", - "[961 rows x 9 columns]" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.compute()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 0\n", - "1 1000000\n", - "Name: ts_us, dtype: uint64[pyarrow]" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events[\"ts_us\"].unique().compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 /lib/x86_64-linux-gnu/libcrypto.so.3\n", - "1 NA\n", - "2 /lib/x86_64-linux-gnu/libgmp.so.10\n", - "3 /usr/lib/x86_64-linux-gnu/openmpi/lib/libpsm_i...\n", - "4 /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3...\n", - " ... \n", - "119 /usr/lib/x86_64-linux-gnu/openmpi/lib/libpsm2....\n", - "120 /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3...\n", - "121 /home/cc/.openmpi/components\n", - "122 /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3...\n", - "123 /home/cc/datacrumbs/build/data/file_0_0.dat\n", - "Name: filename, Length: 124, dtype: string" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.filename.unique().compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pidtidts_usdur_secfreqsize_bytesfunc_idfilenamecat
8937755775510000000.0000081<NA>openat/home/cc/datacrumbs/build/data/file_0_0.datsys
9017755775510000000.0000021<NA>close/home/cc/datacrumbs/build/data/file_0_0.datsys
9407755775510000000.0000071<NA>write/home/cc/datacrumbs/build/data/file_0_0.datsys
\n", - "
" - ], - "text/plain": [ - " pid tid ts_us dur_sec freq size_bytes func_id \\\n", - "893 7755 7755 1000000 0.000008 1 openat \n", - "901 7755 7755 1000000 0.000002 1 close \n", - "940 7755 7755 1000000 0.000007 1 write \n", - "\n", - " filename cat \n", - "893 /home/cc/datacrumbs/build/data/file_0_0.dat sys \n", - "901 /home/cc/datacrumbs/build/data/file_0_0.dat sys \n", - "940 /home/cc/datacrumbs/build/data/file_0_0.dat sys " - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.query(\"filename.str.contains('\\.dat')\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "events[\"name\"] = events[\"cat\"] + \" \" + events[\"func_id\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ts_usnamefilenamedur_sec
430c writeNA0.00019
470ext4 __ext4_journal_get_write_access [kernel]NA0.000046
5570sys writeNA0.0001
5620vfs __mnt_drop_write_file [kernel]NA0.000002
5630vfs __mnt_want_write_file [kernel]NA0.000001
6340vfs vfs_writeNA0.000089
6621000000c writeNA0.000331
6671000000ext4 __ext4_journal_get_write_access [kernel]NA0.000015
7021000000ext4 generic_write_checks [kernel]NA0.000012
7341000000os_cache generic_write_checks [kernel]NA0.000004
7751000000sys write/home/cc/datacrumbs/build/data/file_0_0.dat0.00001
7761000000sys writeNA0.000157
8051000000vfs generic_write_checks [kernel]NA0.000018
8261000000vfs vfs_writeNA0.000149
\n", - "
" - ], - "text/plain": [ - " ts_us name \\\n", - "43 0 c write \n", - "47 0 ext4 __ext4_journal_get_write_access [kernel] \n", - "557 0 sys write \n", - "562 0 vfs __mnt_drop_write_file [kernel] \n", - "563 0 vfs __mnt_want_write_file [kernel] \n", - "634 0 vfs vfs_write \n", - "662 1000000 c write \n", - "667 1000000 ext4 __ext4_journal_get_write_access [kernel] \n", - "702 1000000 ext4 generic_write_checks [kernel] \n", - "734 1000000 os_cache generic_write_checks [kernel] \n", - "775 1000000 sys write \n", - "776 1000000 sys write \n", - "805 1000000 vfs generic_write_checks [kernel] \n", - "826 1000000 vfs vfs_write \n", - "\n", - " filename dur_sec \n", - "43 NA 0.00019 \n", - "47 NA 0.000046 \n", - "557 NA 0.0001 \n", - "562 NA 0.000002 \n", - "563 NA 0.000001 \n", - "634 NA 0.000089 \n", - "662 NA 0.000331 \n", - "667 NA 0.000015 \n", - "702 NA 0.000012 \n", - "734 NA 0.000004 \n", - "775 /home/cc/datacrumbs/build/data/file_0_0.dat 0.00001 \n", - "776 NA 0.000157 \n", - "805 NA 0.000018 \n", - "826 NA 0.000149 " - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "value = events.groupby([\"ts_us\",\"name\",\"filename\"])[[\"dur_sec\"]].sum()\n", - "per = value / value.sum()\n", - "per.reset_index().query(\"name.str.contains('write') and dur_sec > 0.0\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['Memory virtual_memory',\n", - " 'Disk io_stat',\n", - " 'Network snetio',\n", - " 'CPU utilization',\n", - " 'os_cache truncate_inode_pages_range',\n", - " 'sys openat',\n", - " 'map page_add_file_rmap',\n", - " 'map uprobe_munmap',\n", - " 'vfs ext4_getattr',\n", - " 'os_cache page_counter_cancel',\n", - " 'sys lseek',\n", - " 'sys close',\n", - " 'vfs vfs_getattr_nosec',\n", - " 'map __libc_realloc',\n", - " 'os_cache obj_cgroup_uncharge_pages',\n", - " 'map dma_direct_map_sg',\n", - " 'c malloc',\n", - " 'vfs ext4_inode_attach_jinode',\n", - " 'os_cache free_unref_page_prepare',\n", - " 'c shm_open',\n", - " 'sys read',\n", - " 'map fileno',\n", - " 'c fileno',\n", - " 'os_cache filemap_get_read_batch',\n", - " 'map ext4_sb_block_valid',\n", - " 'c close',\n", - " 'map vm_unmapped_area',\n", - " 'map llseek',\n", - " 'map next_uptodate_page',\n", - " 'map fcntl',\n", - " 'os_cache page_rmapping',\n", - " 'map tlb_batch_pages_flush',\n", - " 'ext4 ext4_sample_last_mounted',\n", - " 'map shm_open',\n", - " 'map htab_map_update_elem',\n", - " 'map page_rmapping',\n", - " 'map _start',\n", - " 'c mmap64',\n", - " 'os_cache free_unref_page_commit',\n", - " 'os_cache balance_dirty_pages_ratelimited_flags',\n", - " 'os_cache mark_page_accessed',\n", - " 'map cap_mmap_file',\n", - " 'os_cache should_fail_alloc_page',\n", - " 'map map_id_up',\n", - " 'map cfree',\n", - " 'map __htab_map_lookup_elem',\n", - " 'c realloc',\n", - " 'c mmap',\n", - " 'vfs rw_verify_area',\n", - " 'os_cache block_dirty_folio',\n", - " 'map filemap_free_folio',\n", - " 'map ext4_file_mmap',\n", - " 'c open',\n", - " 'map vmap_pages_pud_range',\n", - " 'map __libc_calloc',\n", - " 'ext4 ext4_dx_readdir',\n", - " 'ext4 filemap_get_entry',\n", - " 'map __pte_offset_map',\n", - " 'map do_vmi_munmap',\n", - " 'os_cache vma_set_page_prot',\n", - " 'map filemap_map_pmd',\n", - " 'ext4 ext4_get_group_desc',\n", - " 'os_cache tlb_batch_pages_flush',\n", - " 'ext4 ext4_release_file',\n", - " 'map close',\n", - " 'c shm_unlink',\n", - " 'sys mmap',\n", - " 'ext4 ext4_file_mmap',\n", - " 'os_cache __pte_offset_map',\n", - " 'map __libc_malloc',\n", - " 'vfs free_unref_page_list',\n", - " 'map free_unref_page_commit',\n", - " 'os_cache next_uptodate_page',\n", - " 'c read',\n", - " 'map get_mmap_base',\n", - " 'vfs vfs_open',\n", - " 'os_cache prep_compound_page',\n", - " 'os_cache is_file_shm_hugepages',\n", - " 'c free',\n", - " 'ext4 free_unref_page_list',\n", - " 'map read',\n", - " 'map userfaultfd_unmap_prep',\n", - " 'os_cache unmap_page_range',\n", - " 'map filemap_read',\n", - " 'map cap_mmap_addr',\n", - " 'map userfaultfd_unmap_complete',\n", - " 'ext4 ext4_sb_block_valid',\n", - " 'c fileno_unlocked',\n", - " 'ext4 filemap_get_read_batch',\n", - " 'os_cache page_add_file_rmap',\n", - " 'ext4 ext4_es_lookup_extent',\n", - " 'map page_remove_rmap',\n", - " 'ext4 ext4_convert_inline_data',\n", - " 'os_cache find_timens_vvar_page',\n", - " 'os_cache free_unref_page_list',\n", - " 'c open64',\n", - " 'os_cache __mod_zone_page_state',\n", - " 'map filemap_get_entry',\n", - " 'map vma_set_page_prot',\n", - " 'os_cache mod_node_page_state',\n", - " 'map open64',\n", - " 'c lseek',\n", - " 'map arch_get_unmapped_area_topdown',\n", - " 'map free_unref_page_list',\n", - " 'os_cache vm_normal_page',\n", - " 'ext4 ext4_getattr',\n", - " 'os_cache unlock_page',\n", - " 'c calloc',\n", - " 'os_cache hugepage_vma_check',\n", - " 'os_cache __tlb_remove_page_size',\n", - " 'ext4 __mod_node_page_state',\n", - " 'map folio_mapping',\n", - " 'map __tlb_remove_page_size',\n", - " 'ext4 ext4_htree_store_dirent',\n", - " 'ext4 ext4_inode_journal_mode',\n", - " 'vfs vfs_unlink',\n", - " 'ext4 ext4_release_dir',\n", - " 'ext4 ext4_inode_csum',\n", - " 'vfs filemap_get_read_batch',\n", - " 'vfs filemap_read',\n", - " 'map apparmor_mmap_file',\n", - " 'app _init',\n", - " 'map [unknown]',\n", - " 'os_cache page_remove_rmap',\n", - " 'map uprobe_mmap',\n", - " 'ext4 ext4_fc_track_inode',\n", - " 'map mmap64',\n", - " 'os_cache page_counter_try_charge',\n", - " 'os_cache vmap_pages_pud_range',\n", - " 'vfs ext4_sample_last_mounted',\n", - " 'map ima_file_mmap',\n", - " 'os_cache mark_buffer_dirty',\n", - " 'block folio_mapping',\n", - " 'vfs vfs_statx',\n", - " 'map filemap_get_read_batch',\n", - " 'map shmem_mmap',\n", - " 'map get_page_from_freelist',\n", - " 'os_cache pagerange_is_ram_callback',\n", - " 'map free_vmap_area_rb_augment_cb_rotate',\n", - " 'c fcntl',\n", - " 'vfs page_counter_try_charge',\n", - " 'c lseek64',\n", - " 'ext4 ext4_inode_attach_jinode',\n", - " 'ext4 filemap_read',\n", - " 'os_cache get_page_from_freelist',\n", - " 'map main',\n", - " 'ext4 ext4_ioctl',\n", - " 'os_cache copy_to_page',\n", - " 'map unmap_page_range',\n", - " 'sys write',\n", - " 'os_cache page_frag_free',\n", - " 'block block_dirty_folio',\n", - " 'map shm_unlink',\n", - " 'map __mod_node_page_state',\n", - " 'os_cache folio_mapping',\n", - " 'os_cache __memcg_kmem_charge_page',\n", - " 'map ext4_inode_csum',\n", - " 'ext4 folio_mapping',\n", - " 'ext4 ext4_journal_check_start',\n", - " 'vfs __mod_node_page_state',\n", - " 'map __blk_bios_map_sg',\n", - " 'ext4 ext4_nonda_switch',\n", - " 'map nft_bitmap_lookup',\n", - " 'map read_pages',\n", - " 'os_cache __mod_node_page_state',\n", - " 'ext4 block_dirty_folio',\n", - " 'map insert_vmap_area.constprop.0',\n", - " 'ext4 ext4_inode_table',\n", - " 'os_cache __bio_add_page',\n", - " 'os_cache bvec_try_merge_page',\n", - " 'os_cache page_cpupid_xchg_last',\n", - " 'map map_id_range_down',\n", - " 'map native_set_fixmap',\n", - " 'os_cache read_pages',\n", - " 'map __write',\n", - " 'map obj_cgroup_uncharge_pages',\n", - " 'os_cache dma_direct_map_sg',\n", - " 'c write',\n", - " 'vfs obj_cgroup_uncharge_pages',\n", - " 'sys fcntl',\n", - " 'ext4 __bio_add_page',\n", - " 'ext4 ext4_initialize_dirent_tail',\n", - " 'ext4 ext4_has_free_clusters',\n", - " 'sys statfs',\n", - " 'map ext4_wait_block_bitmap',\n", - " 'ext4 ext4_handle_dirty_dirblock',\n", - " 'ext4 ext4_group_desc_csum',\n", - " 'ext4 ext4_ext_try_to_merge_right',\n", - " 'ext4 ext4_free_group_clusters_set',\n", - " 'ext4 ext4_inode_to_goal_block',\n", - " 'ext4 ext4_block_bitmap',\n", - " 'ext4 bvec_try_merge_page',\n", - " 'ext4 ext4_ext_get_access',\n", - " 'ext4 ext4_fc_track_range',\n", - " 'ext4 ext4_inode_bitmap',\n", - " 'ext4 ext4_init_dot_dotdot',\n", - " 'ext4 ext4_free_inodes_set',\n", - " 'map dma_direct_unmap_sg',\n", - " 'map ext4_es_delayed_clu',\n", - " 'map ext4_block_bitmap_csum_set',\n", - " 'map ext4_fc_track_range',\n", - " 'map ext4_inode_bitmap_csum_set',\n", - " 'ext4 ext4_ext_search_left',\n", - " 'ext4 ext4_itable_unused_count',\n", - " 'ext4 ext4_get_group_no_and_offset',\n", - " 'ext4 ext4_mb_check_limits',\n", - " 'ext4 ext4_wait_block_bitmap',\n", - " 'ext4 ext4_init_acl',\n", - " 'ext4 ext4_es_can_be_merged.isra.0',\n", - " 'map ext4_block_bitmap',\n", - " 'ext4 ext4_es_delayed_clu',\n", - " 'vfs node_page_state',\n", - " 'ext4 ext4_fname_setup_ci_filename',\n", - " 'ext4 ext4_fname_free_filename',\n", - " 'map ext4_inode_bitmap',\n", - " 'vfs ext4_fc_track_create',\n", - " 'ext4 ext4_free_inodes_count',\n", - " 'ext4 ext4_es_insert_extent',\n", - " 'ext4 ext4_free_group_clusters',\n", - " 'vfs ext4_fname_free_filename',\n", - " 'ext4 ext4_fc_init_inode',\n", - " 'ext4 ext4_match',\n", - " 'ext4 ext4_used_dirs_count',\n", - " 'ext4 ext4_set_inode_flags',\n", - " 'ext4 ext4_inode_bitmap_csum_set',\n", - " 'ext4 ext4_used_dirs_set',\n", - " 'ext4 ext4_mb_normalize_request.constprop.0',\n", - " 'os_cache filemap_get_entry',\n", - " 'ext4 ext4_get_dummy_policy',\n", - " 'ext4 ext4_fc_track_create',\n", - " 'ext4 ext4_xattr_block_get',\n", - " 'os_cache free_tail_page_prepare',\n", - " 'ext4 ext4_mb_use_preallocated.constprop.0',\n", - " 'map filemap_update_page',\n", - " 'map ext4_es_insert_extent',\n", - " 'ext4 ext4_cache_extents',\n", - " 'ext4 ext4_mb_pa_put_free',\n", - " 'ext4 ext4_xattr_ibody_get',\n", - " 'ext4 ext4_mb_use_best_found',\n", - " 'vfs ext4_get_dummy_policy',\n", - " 'ext4 ext4_insert_dentry',\n", - " 'vfs vfs_statfs.part.0.isra.0',\n", - " 'ext4 ext4_mb_unload_buddy',\n", - " 'os_cache node_page_state',\n", - " 'ext4 ext4_ext_correct_indexes',\n", - " 'ext4 ext4_block_bitmap_csum_set',\n", - " 'ext4 ext4_es_find_extent_range',\n", - " 'ext4 ext4_itable_unused_set',\n", - " 'ext4 ext4_mb_collect_stats',\n", - " 'ext4 ext4_ext_search_right',\n", - " 'os_cache mpage_end_io',\n", - " 'ext4 ext4_init_pending_tree',\n", - " 'os_cache balance_dirty_pages',\n", - " 'vfs map_id_up',\n", - " 'ext4 ext4_get_group_info',\n", - " 'sys ftruncate',\n", - " 'ext4 ext4_es_init_tree',\n", - " 'ext4 ext4_init_security',\n", - " 'map map_cmd_status.constprop.0',\n", - " 'ext4 ext4_fname_from_fscrypt_name',\n", - " 'ext4 ext4_ext_try_to_merge_up',\n", - " 'map ext4_get_group_info',\n", - " 'ext4 ext4_inc_count',\n", - " 'os_cache page_cache_ra_order',\n", - " 'map page_counter_cancel',\n", - " 'ext4 ext4_es_cache_extent',\n", - " 'os_cache wake_page_function',\n", - " 'os_cache node_page_state_pages',\n", - " 'os_cache __page_cache_release',\n", - " 'os_cache filemap_update_page',\n", - " 'map page_cache_ra_order',\n", - " 'os_cache sum_zone_node_page_state',\n", - " 'ext4 ext4_es_free_extent',\n", - " 'map wake_page_function',\n", - " 'map __mod_zone_page_state',\n", - " 'os_cache page_cache_next_miss',\n", - " 'map ext4_es_cache_extent',\n", - " 'map mpage_end_io',\n", - " 'c posix_memalign',\n", - " 'map ext4_es_can_be_merged.isra.0',\n", - " 'app _Z10gen_randomB5cxx11i',\n", - " 'map gen_random[abi:cxx11](int)',\n", - " 'map posix_memalign',\n", - " 'os_cache vmalloc_to_page',\n", - " 'ext4 mod_node_page_state',\n", - " 'map __bio_add_page',\n", - " 'ext4 ext4_dirblock_csum_verify',\n", - " 'map page_frag_free',\n", - " 'map bvec_try_merge_page',\n", - " 'map dma_unmap_page_attrs',\n", - " 'os_cache dma_unmap_page_attrs',\n", - " 'ext4 page_frag_free',\n", - " 'os_cache native_set_fixmap',\n", - " 'ext4 mpage_end_io',\n", - " 'map vmalloc_to_page',\n", - " 'map dma_map_page_attrs',\n", - " 'os_cache dma_map_page_attrs',\n", - " 'ext4 vmalloc_to_page',\n", - " 'ext4 page_counter_cancel',\n", - " 'ext4 ext4_mb_pa_callback',\n", - " 'ext4 obj_cgroup_uncharge_pages',\n", - " 'ext4 dma_unmap_page_attrs',\n", - " 'ext4 page_counter_try_charge',\n", - " 'c munmap',\n", - " 'map __munmap',\n", - " 'app _fini',\n", - " 'app main']" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "all_events = list(events[\"name\"].unique().compute())\n", - "all_events" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [], - "source": [ - "events[\"cat\"].unique().compute()\n", - "ignore_category = [\"Memory\", \"Network\", \"Disk\", \"CPU\", \"app\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['vfs ext4_getattr',\n", - " 'vfs ext4_inode_attach_jinode',\n", - " 'map ext4_sb_block_valid',\n", - " 'ext4 ext4_sample_last_mounted',\n", - " 'map ext4_file_mmap',\n", - " 'ext4 ext4_dx_readdir',\n", - " 'ext4 filemap_get_entry',\n", - " 'ext4 ext4_get_group_desc',\n", - " 'ext4 ext4_release_file',\n", - " 'ext4 ext4_file_mmap',\n", - " 'ext4 free_unref_page_list',\n", - " 'ext4 ext4_sb_block_valid',\n", - " 'ext4 filemap_get_read_batch',\n", - " 'ext4 ext4_es_lookup_extent',\n", - " 'ext4 ext4_convert_inline_data',\n", - " 'ext4 ext4_getattr',\n", - " 'ext4 __mod_node_page_state',\n", - " 'ext4 ext4_htree_store_dirent',\n", - " 'ext4 ext4_inode_journal_mode',\n", - " 'ext4 ext4_release_dir',\n", - " 'ext4 ext4_inode_csum',\n", - " 'ext4 ext4_fc_track_inode',\n", - " 'vfs ext4_sample_last_mounted',\n", - " 'ext4 ext4_inode_attach_jinode',\n", - " 'ext4 filemap_read',\n", - " 'ext4 ext4_ioctl',\n", - " 'map ext4_inode_csum',\n", - " 'ext4 folio_mapping',\n", - " 'ext4 ext4_journal_check_start',\n", - " 'ext4 ext4_nonda_switch',\n", - " 'ext4 block_dirty_folio',\n", - " 'ext4 ext4_inode_table',\n", - " 'ext4 __bio_add_page',\n", - " 'ext4 ext4_initialize_dirent_tail',\n", - " 'ext4 ext4_has_free_clusters',\n", - " 'map ext4_wait_block_bitmap',\n", - " 'ext4 ext4_handle_dirty_dirblock',\n", - " 'ext4 ext4_group_desc_csum',\n", - " 'ext4 ext4_ext_try_to_merge_right',\n", - " 'ext4 ext4_free_group_clusters_set',\n", - " 'ext4 ext4_inode_to_goal_block',\n", - " 'ext4 ext4_block_bitmap',\n", - " 'ext4 bvec_try_merge_page',\n", - " 'ext4 ext4_ext_get_access',\n", - " 'ext4 ext4_fc_track_range',\n", - " 'ext4 ext4_inode_bitmap',\n", - " 'ext4 ext4_init_dot_dotdot',\n", - " 'ext4 ext4_free_inodes_set',\n", - " 'map ext4_es_delayed_clu',\n", - " 'map ext4_block_bitmap_csum_set',\n", - " 'map ext4_fc_track_range',\n", - " 'map ext4_inode_bitmap_csum_set',\n", - " 'ext4 ext4_ext_search_left',\n", - " 'ext4 ext4_itable_unused_count',\n", - " 'ext4 ext4_get_group_no_and_offset',\n", - " 'ext4 ext4_mb_check_limits',\n", - " 'ext4 ext4_wait_block_bitmap',\n", - " 'ext4 ext4_init_acl',\n", - " 'ext4 ext4_es_can_be_merged.isra.0',\n", - " 'map ext4_block_bitmap',\n", - " 'ext4 ext4_es_delayed_clu',\n", - " 'ext4 ext4_fname_setup_ci_filename',\n", - " 'ext4 ext4_fname_free_filename',\n", - " 'map ext4_inode_bitmap',\n", - " 'vfs ext4_fc_track_create',\n", - " 'ext4 ext4_free_inodes_count',\n", - " 'ext4 ext4_es_insert_extent',\n", - " 'ext4 ext4_free_group_clusters',\n", - " 'vfs ext4_fname_free_filename',\n", - " 'ext4 ext4_fc_init_inode',\n", - " 'ext4 ext4_match',\n", - " 'ext4 ext4_used_dirs_count',\n", - " 'ext4 ext4_set_inode_flags',\n", - " 'ext4 ext4_inode_bitmap_csum_set',\n", - " 'ext4 ext4_used_dirs_set',\n", - " 'ext4 ext4_mb_normalize_request.constprop.0',\n", - " 'ext4 ext4_get_dummy_policy',\n", - " 'ext4 ext4_fc_track_create',\n", - " 'ext4 ext4_xattr_block_get',\n", - " 'ext4 ext4_mb_use_preallocated.constprop.0',\n", - " 'map ext4_es_insert_extent',\n", - " 'ext4 ext4_cache_extents',\n", - " 'ext4 ext4_mb_pa_put_free',\n", - " 'ext4 ext4_xattr_ibody_get',\n", - " 'ext4 ext4_mb_use_best_found',\n", - " 'vfs ext4_get_dummy_policy',\n", - " 'ext4 ext4_insert_dentry',\n", - " 'ext4 ext4_mb_unload_buddy',\n", - " 'ext4 ext4_ext_correct_indexes',\n", - " 'ext4 ext4_block_bitmap_csum_set',\n", - " 'ext4 ext4_es_find_extent_range',\n", - " 'ext4 ext4_itable_unused_set',\n", - " 'ext4 ext4_mb_collect_stats',\n", - " 'ext4 ext4_ext_search_right',\n", - " 'ext4 ext4_init_pending_tree',\n", - " 'ext4 ext4_get_group_info',\n", - " 'ext4 ext4_es_init_tree',\n", - " 'ext4 ext4_init_security',\n", - " 'ext4 ext4_fname_from_fscrypt_name',\n", - " 'ext4 ext4_ext_try_to_merge_up',\n", - " 'map ext4_get_group_info',\n", - " 'ext4 ext4_inc_count',\n", - " 'ext4 ext4_es_cache_extent',\n", - " 'ext4 ext4_es_free_extent',\n", - " 'map ext4_es_cache_extent',\n", - " 'map ext4_es_can_be_merged.isra.0',\n", - " 'ext4 mod_node_page_state',\n", - " 'ext4 ext4_dirblock_csum_verify',\n", - " 'ext4 page_frag_free',\n", - " 'ext4 mpage_end_io',\n", - " 'ext4 vmalloc_to_page',\n", - " 'ext4 page_counter_cancel',\n", - " 'ext4 ext4_mb_pa_callback',\n", - " 'ext4 obj_cgroup_uncharge_pages',\n", - " 'ext4 dma_unmap_page_attrs',\n", - " 'ext4 page_counter_try_charge',\n", - " 'c malloc',\n", - " 'c shm_open',\n", - " 'c fileno',\n", - " 'c close',\n", - " 'c mmap64',\n", - " 'c realloc',\n", - " 'c mmap',\n", - " 'c open',\n", - " 'c shm_unlink',\n", - " 'c read',\n", - " 'c free',\n", - " 'c fileno_unlocked',\n", - " 'c open64',\n", - " 'c lseek',\n", - " 'c calloc',\n", - " 'c fcntl',\n", - " 'c lseek64',\n", - " 'c write',\n", - " 'c posix_memalign',\n", - " 'c munmap',\n", - " 'vfs ext4_getattr',\n", - " 'vfs vfs_getattr_nosec',\n", - " 'vfs ext4_inode_attach_jinode',\n", - " 'vfs rw_verify_area',\n", - " 'vfs free_unref_page_list',\n", - " 'vfs vfs_open',\n", - " 'vfs vfs_unlink',\n", - " 'vfs filemap_get_read_batch',\n", - " 'vfs filemap_read',\n", - " 'vfs ext4_sample_last_mounted',\n", - " 'vfs vfs_statx',\n", - " 'vfs page_counter_try_charge',\n", - " 'vfs __mod_node_page_state',\n", - " 'vfs obj_cgroup_uncharge_pages',\n", - " 'vfs node_page_state',\n", - " 'vfs ext4_fc_track_create',\n", - " 'vfs ext4_fname_free_filename',\n", - " 'vfs ext4_get_dummy_policy',\n", - " 'vfs vfs_statfs.part.0.isra.0',\n", - " 'vfs map_id_up',\n", - " 'sys openat',\n", - " 'sys lseek',\n", - " 'sys close',\n", - " 'sys read',\n", - " 'sys mmap',\n", - " 'sys write',\n", - " 'sys fcntl',\n", - " 'sys statfs',\n", - " 'sys ftruncate',\n", - " 'block folio_mapping',\n", - " 'block block_dirty_folio',\n", - " 'os_cache truncate_inode_pages_range',\n", - " 'os_cache page_counter_cancel',\n", - " 'os_cache obj_cgroup_uncharge_pages',\n", - " 'os_cache free_unref_page_prepare',\n", - " 'os_cache filemap_get_read_batch',\n", - " 'os_cache page_rmapping',\n", - " 'os_cache free_unref_page_commit',\n", - " 'os_cache balance_dirty_pages_ratelimited_flags',\n", - " 'os_cache mark_page_accessed',\n", - " 'os_cache should_fail_alloc_page',\n", - " 'os_cache block_dirty_folio',\n", - " 'os_cache vma_set_page_prot',\n", - " 'os_cache tlb_batch_pages_flush',\n", - " 'os_cache __pte_offset_map',\n", - " 'os_cache next_uptodate_page',\n", - " 'os_cache prep_compound_page',\n", - " 'os_cache is_file_shm_hugepages',\n", - " 'os_cache unmap_page_range',\n", - " 'os_cache page_add_file_rmap',\n", - " 'os_cache find_timens_vvar_page',\n", - " 'os_cache free_unref_page_list',\n", - " 'os_cache __mod_zone_page_state',\n", - " 'os_cache mod_node_page_state',\n", - " 'os_cache vm_normal_page',\n", - " 'os_cache unlock_page',\n", - " 'os_cache hugepage_vma_check',\n", - " 'os_cache __tlb_remove_page_size',\n", - " 'os_cache page_remove_rmap',\n", - " 'os_cache page_counter_try_charge',\n", - " 'os_cache vmap_pages_pud_range',\n", - " 'os_cache mark_buffer_dirty',\n", - " 'os_cache pagerange_is_ram_callback',\n", - " 'os_cache get_page_from_freelist',\n", - " 'os_cache copy_to_page',\n", - " 'os_cache page_frag_free',\n", - " 'os_cache folio_mapping',\n", - " 'os_cache __memcg_kmem_charge_page',\n", - " 'os_cache __mod_node_page_state',\n", - " 'os_cache __bio_add_page',\n", - " 'os_cache bvec_try_merge_page',\n", - " 'os_cache page_cpupid_xchg_last',\n", - " 'os_cache read_pages',\n", - " 'os_cache dma_direct_map_sg',\n", - " 'os_cache filemap_get_entry',\n", - " 'os_cache free_tail_page_prepare',\n", - " 'os_cache node_page_state',\n", - " 'os_cache mpage_end_io',\n", - " 'os_cache balance_dirty_pages',\n", - " 'os_cache page_cache_ra_order',\n", - " 'os_cache wake_page_function',\n", - " 'os_cache node_page_state_pages',\n", - " 'os_cache __page_cache_release',\n", - " 'os_cache filemap_update_page',\n", - " 'os_cache sum_zone_node_page_state',\n", - " 'os_cache page_cache_next_miss',\n", - " 'os_cache vmalloc_to_page',\n", - " 'os_cache dma_unmap_page_attrs',\n", - " 'os_cache native_set_fixmap',\n", - " 'os_cache dma_map_page_attrs']" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ext4_events = [s for s in all_events if \"ext4\" in s]\n", - "libc_events = [s for s in all_events if \"c \" in s]\n", - "vfs_events = [s for s in all_events if \"vfs \" in s]\n", - "sys_events = [s for s in all_events if \"sys \" in s]\n", - "block_events = [s for s in all_events if \"block \" in s]\n", - "os_cache_events = [s for s in all_events if \"os_cache \" in s]\n", - "final_events = []\n", - "final_events.extend(ext4_events)\n", - "final_events.extend(libc_events)\n", - "final_events.extend(vfs_events)\n", - "final_events.extend(sys_events)\n", - "final_events.extend(block_events)\n", - "final_events.extend(os_cache_events)\n", - "final_events" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pidtidts_usdur_secfreqsize_bytesfunc_idfilenamecatnamets
117357153571500.0000264<NA>truncate_inode_pages_range<NA>os_cacheos_cache truncate_inode_pages_range0.0
118357213572100.0000231<NA>openat/usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3...syssys openat0.0
119357193571900.0000161<NA>openat/lib/x86_64-linux-gnu/libnl-3.so.200syssys openat0.0
120357093570900.0145191855<NA>page_add_file_rmap<NA>mapmap page_add_file_rmap0.0
121357213572100.002097414<NA>uprobe_munmap<NA>mapmap uprobe_munmap0.0
....................................
1096035709357092670000000.00066271<NA>page_remove_rmap<NA>mapmap page_remove_rmap267.0
1096135700357002670000000.001197132<NA>userfaultfd_unmap_complete<NA>mapmap userfaultfd_unmap_complete267.0
1096235699356992670000000.00685407<NA>__tlb_remove_page_size<NA>mapmap __tlb_remove_page_size267.0
1096335704357042670000000.0000071<NA>rw_verify_area<NA>vfsvfs rw_verify_area267.0
1096435700357002670000000.000011<NA>close/usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3...syssys close267.0
\n", - "

136683 rows × 11 columns

\n", - "
" - ], - "text/plain": [ - " pid tid ts_us dur_sec freq size_bytes \\\n", - "117 35715 35715 0 0.000026 4 \n", - "118 35721 35721 0 0.000023 1 \n", - "119 35719 35719 0 0.000016 1 \n", - "120 35709 35709 0 0.014519 1855 \n", - "121 35721 35721 0 0.002097 414 \n", - "... ... ... ... ... ... ... \n", - "10960 35709 35709 267000000 0.000662 71 \n", - "10961 35700 35700 267000000 0.001197 132 \n", - "10962 35699 35699 267000000 0.00685 407 \n", - "10963 35704 35704 267000000 0.000007 1 \n", - "10964 35700 35700 267000000 0.00001 1 \n", - "\n", - " func_id \\\n", - "117 truncate_inode_pages_range \n", - "118 openat \n", - "119 openat \n", - "120 page_add_file_rmap \n", - "121 uprobe_munmap \n", - "... ... \n", - "10960 page_remove_rmap \n", - "10961 userfaultfd_unmap_complete \n", - "10962 __tlb_remove_page_size \n", - "10963 rw_verify_area \n", - "10964 close \n", - "\n", - " filename cat \\\n", - "117 os_cache \n", - "118 /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3... sys \n", - "119 /lib/x86_64-linux-gnu/libnl-3.so.200 sys \n", - "120 map \n", - "121 map \n", - "... ... ... \n", - "10960 map \n", - "10961 map \n", - "10962 map \n", - "10963 vfs \n", - "10964 /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi3... sys \n", - "\n", - " name ts \n", - "117 os_cache truncate_inode_pages_range 0.0 \n", - "118 sys openat 0.0 \n", - "119 sys openat 0.0 \n", - "120 map page_add_file_rmap 0.0 \n", - "121 map uprobe_munmap 0.0 \n", - "... ... ... \n", - "10960 map page_remove_rmap 267.0 \n", - "10961 map userfaultfd_unmap_complete 267.0 \n", - "10962 map __tlb_remove_page_size 267.0 \n", - "10963 vfs rw_verify_area 267.0 \n", - "10964 sys close 267.0 \n", - "\n", - "[136683 rows x 11 columns]" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "selected_events = events[~events[\"cat\"].isin(ignore_category)].compute()\n", - "selected_events[\"ts\"] = selected_events[\"ts_us\"] / 1e6\n", - "selected_events" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "dur_sec float[pyarrow]\n", - "dtype: object\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
dur_sec
name
c free0.34961
c malloc0.234928
ext4 bvec_try_merge_page1.305948
ext4 ext4_es_lookup_extent0.147238
ext4 ext4_sb_block_valid0.932424
map __blk_bios_map_sg0.435246
map __htab_map_lookup_elem1.062591
map __libc_malloc0.106732
map __mod_node_page_state59.376499
map __mod_zone_page_state0.712339
map __pte_offset_map0.123062
map cfree0.158957
map dma_direct_map_sg2.600709
map dma_direct_unmap_sg0.410997
map ext4_sb_block_valid0.395382
map filemap_get_read_batch2.537251
map filemap_update_page23.466135
map folio_mapping9.006821
map free_unref_page_list1.780231
map get_page_from_freelist35.535213
map mpage_end_io0.105389
os_cache __bio_add_page1.540607
os_cache __mod_node_page_state36.519188
os_cache __mod_zone_page_state10.450335
os_cache bvec_try_merge_page26.216103
os_cache copy_to_page0.238805
os_cache dma_direct_map_sg4.68793
os_cache filemap_get_read_batch1.174538
os_cache filemap_update_page23.468897
os_cache free_unref_page_list1.826042
os_cache get_page_from_freelist56.969387
os_cache mpage_end_io0.10971
os_cache page_counter_try_charge0.153043
os_cache should_fail_alloc_page9.169541
\n", - "
" - ], - "text/plain": [ - " dur_sec\n", - "name \n", - "c free 0.34961\n", - "c malloc 0.234928\n", - "ext4 bvec_try_merge_page 1.305948\n", - "ext4 ext4_es_lookup_extent 0.147238\n", - "ext4 ext4_sb_block_valid 0.932424\n", - "map __blk_bios_map_sg 0.435246\n", - "map __htab_map_lookup_elem 1.062591\n", - "map __libc_malloc 0.106732\n", - "map __mod_node_page_state 59.376499\n", - "map __mod_zone_page_state 0.712339\n", - "map __pte_offset_map 0.123062\n", - "map cfree 0.158957\n", - "map dma_direct_map_sg 2.600709\n", - "map dma_direct_unmap_sg 0.410997\n", - "map ext4_sb_block_valid 0.395382\n", - "map filemap_get_read_batch 2.537251\n", - "map filemap_update_page 23.466135\n", - "map folio_mapping 9.006821\n", - "map free_unref_page_list 1.780231\n", - "map get_page_from_freelist 35.535213\n", - "map mpage_end_io 0.105389\n", - "os_cache __bio_add_page 1.540607\n", - "os_cache __mod_node_page_state 36.519188\n", - "os_cache __mod_zone_page_state 10.450335\n", - "os_cache bvec_try_merge_page 26.216103\n", - "os_cache copy_to_page 0.238805\n", - "os_cache dma_direct_map_sg 4.68793\n", - "os_cache filemap_get_read_batch 1.174538\n", - "os_cache filemap_update_page 23.468897\n", - "os_cache free_unref_page_list 1.826042\n", - "os_cache get_page_from_freelist 56.969387\n", - "os_cache mpage_end_io 0.10971\n", - "os_cache page_counter_try_charge 0.153043\n", - "os_cache should_fail_alloc_page 9.169541" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "value = selected_events.groupby([\"name\",\"pid\"])[[\"dur_sec\"]].sum().groupby(\"name\").max()\n", - "per = value\n", - "print(per.dtypes)\n", - "per = per.query(\"dur_sec > 0.1\")\n", - "per" - ] - }, - { - "cell_type": "code", - "execution_count": 194, - "metadata": {}, - "outputs": [], - "source": [ - "grouped_events = selected_events.groupby([\"ts\",\"name\"])[\"dur_sec\"].sum()\n", - "grouped_events = grouped_events.reset_index()" - ] - }, - { - "cell_type": "code", - "execution_count": 195, - "metadata": {}, - "outputs": [], - "source": [ - "selected_functions = list(grouped_events[\"name\"].unique())" - ] - }, - { - "cell_type": "code", - "execution_count": 196, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
tsnamedur_secblock block_devnodeblock block_dirty_folioblock block_ueventblock mark_buffer_dirtyc callocc closec fcntl...vfs vfs_unlinkc posix_memalignblock block_invalidate_folioext4 ext4_da_release_spaceext4 ext4_discard_preallocationsext4 ext4_free_blocksext4 ext4_remove_blocksext4 ext4_truncatevfs ext4_da_release_spacevfs vfs_rmdir
00.0block block_devnode0.0000040.0000040.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
10.0block block_dirty_folio0.0000410.00.0000410.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
20.0block block_uevent0.0000030.00.00.0000030.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
30.0block mark_buffer_dirty0.0000060.00.00.00.0000060.00.00.0...0.00.00.00.00.00.00.00.00.00.0
40.0c calloc0.029090.00.00.00.00.029090.00.0...0.00.00.00.00.00.00.00.00.00.0
..................................................................
15116.0vfs vfs_getattr_nosec0.0001320.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
15216.0vfs vfs_open0.000020.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
15316.0vfs vfs_rmdir0.000020.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.00002
15416.0vfs vfs_statx0.000030.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
15516.0vfs vfs_unlink0.0000950.00.00.00.00.00.00.0...0.0000950.00.00.00.00.00.00.00.00.0
\n", - "

156 rows × 65 columns

\n", - "
" - ], - "text/plain": [ - " ts name dur_sec block block_devnode \\\n", - "0 0.0 block block_devnode 0.000004 0.000004 \n", - "1 0.0 block block_dirty_folio 0.000041 0.0 \n", - "2 0.0 block block_uevent 0.000003 0.0 \n", - "3 0.0 block mark_buffer_dirty 0.000006 0.0 \n", - "4 0.0 c calloc 0.02909 0.0 \n", - ".. ... ... ... ... \n", - "151 16.0 vfs vfs_getattr_nosec 0.000132 0.0 \n", - "152 16.0 vfs vfs_open 0.00002 0.0 \n", - "153 16.0 vfs vfs_rmdir 0.00002 0.0 \n", - "154 16.0 vfs vfs_statx 0.00003 0.0 \n", - "155 16.0 vfs vfs_unlink 0.000095 0.0 \n", - "\n", - " block block_dirty_folio block block_uevent block mark_buffer_dirty \\\n", - "0 0.0 0.0 0.0 \n", - "1 0.000041 0.0 0.0 \n", - "2 0.0 0.000003 0.0 \n", - "3 0.0 0.0 0.000006 \n", - "4 0.0 0.0 0.0 \n", - ".. ... ... ... \n", - "151 0.0 0.0 0.0 \n", - "152 0.0 0.0 0.0 \n", - "153 0.0 0.0 0.0 \n", - "154 0.0 0.0 0.0 \n", - "155 0.0 0.0 0.0 \n", - "\n", - " c calloc c close c fcntl ... vfs vfs_unlink c posix_memalign \\\n", - "0 0.0 0.0 0.0 ... 0.0 0.0 \n", - "1 0.0 0.0 0.0 ... 0.0 0.0 \n", - "2 0.0 0.0 0.0 ... 0.0 0.0 \n", - "3 0.0 0.0 0.0 ... 0.0 0.0 \n", - "4 0.02909 0.0 0.0 ... 0.0 0.0 \n", - ".. ... ... ... ... ... ... \n", - "151 0.0 0.0 0.0 ... 0.0 0.0 \n", - "152 0.0 0.0 0.0 ... 0.0 0.0 \n", - "153 0.0 0.0 0.0 ... 0.0 0.0 \n", - "154 0.0 0.0 0.0 ... 0.0 0.0 \n", - "155 0.0 0.0 0.0 ... 0.000095 0.0 \n", - "\n", - " block block_invalidate_folio ext4 ext4_da_release_space \\\n", - "0 0.0 0.0 \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 \n", - ".. ... ... \n", - "151 0.0 0.0 \n", - "152 0.0 0.0 \n", - "153 0.0 0.0 \n", - "154 0.0 0.0 \n", - "155 0.0 0.0 \n", - "\n", - " ext4 ext4_discard_preallocations ext4 ext4_free_blocks \\\n", - "0 0.0 0.0 \n", - "1 0.0 0.0 \n", - "2 0.0 0.0 \n", - "3 0.0 0.0 \n", - "4 0.0 0.0 \n", - ".. ... ... \n", - "151 0.0 0.0 \n", - "152 0.0 0.0 \n", - "153 0.0 0.0 \n", - "154 0.0 0.0 \n", - "155 0.0 0.0 \n", - "\n", - " ext4 ext4_remove_blocks ext4 ext4_truncate vfs ext4_da_release_space \\\n", - "0 0.0 0.0 0.0 \n", - "1 0.0 0.0 0.0 \n", - "2 0.0 0.0 0.0 \n", - "3 0.0 0.0 0.0 \n", - "4 0.0 0.0 0.0 \n", - ".. ... ... ... \n", - "151 0.0 0.0 0.0 \n", - "152 0.0 0.0 0.0 \n", - "153 0.0 0.0 0.0 \n", - "154 0.0 0.0 0.0 \n", - "155 0.0 0.0 0.0 \n", - "\n", - " vfs vfs_rmdir \n", - "0 0.0 \n", - "1 0.0 \n", - "2 0.0 \n", - "3 0.0 \n", - "4 0.0 \n", - ".. ... \n", - "151 0.0 \n", - "152 0.0 \n", - "153 0.00002 \n", - "154 0.0 \n", - "155 0.0 \n", - "\n", - "[156 rows x 65 columns]" - ] - }, - "execution_count": 196, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "for fn in selected_functions:\n", - " grouped_events[fn] = 0\n", - " grouped_events[fn] = grouped_events[fn].mask(fn == grouped_events[\"name\"], grouped_events[\"dur_sec\"])\n", - "grouped_events" - ] - }, - { - "cell_type": "code", - "execution_count": 197, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "block block_devnode 0.0\n", - "block block_dirty_folio 0.000001\n", - "block block_uevent 0.0\n", - "block mark_buffer_dirty 0.0\n", - "c calloc 0.000783\n", - " ... \n", - "ext4 ext4_free_blocks 0.000002\n", - "ext4 ext4_remove_blocks 0.000002\n", - "ext4 ext4_truncate 0.000003\n", - "vfs ext4_da_release_space 0.0\n", - "vfs vfs_rmdir 0.0\n", - "Length: 62, dtype: double[pyarrow]" - ] - }, - "execution_count": 197, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "final_df = grouped_events.groupby(\"ts\")[selected_functions].sum()\n", - "value = final_df.sum()\n", - "per = value / value.sum()\n", - "per.T" - ] - }, - { - "cell_type": "code", - "execution_count": 198, - "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'bool' object has no attribute 'any'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[198], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mper\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mT\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkind\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mpie\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfigsize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m5\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/datacrumbs/venv/lib/python3.10/site-packages/pandas/plotting/_core.py:1030\u001b[0m, in \u001b[0;36mPlotAccessor.__call__\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1027\u001b[0m label_name \u001b[38;5;241m=\u001b[39m label_kw \u001b[38;5;129;01mor\u001b[39;00m data\u001b[38;5;241m.\u001b[39mcolumns\n\u001b[1;32m 1028\u001b[0m data\u001b[38;5;241m.\u001b[39mcolumns \u001b[38;5;241m=\u001b[39m label_name\n\u001b[0;32m-> 1030\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mplot_backend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkind\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkind\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/datacrumbs/venv/lib/python3.10/site-packages/pandas/plotting/_matplotlib/__init__.py:70\u001b[0m, in \u001b[0;36mplot\u001b[0;34m(data, kind, **kwargs)\u001b[0m\n\u001b[1;32m 68\u001b[0m ax \u001b[38;5;241m=\u001b[39m plt\u001b[38;5;241m.\u001b[39mgca()\n\u001b[1;32m 69\u001b[0m kwargs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124max\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mgetattr\u001b[39m(ax, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mleft_ax\u001b[39m\u001b[38;5;124m\"\u001b[39m, ax)\n\u001b[0;32m---> 70\u001b[0m plot_obj \u001b[38;5;241m=\u001b[39m \u001b[43mPLOT_CLASSES\u001b[49m\u001b[43m[\u001b[49m\u001b[43mkind\u001b[49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 71\u001b[0m plot_obj\u001b[38;5;241m.\u001b[39mgenerate()\n\u001b[1;32m 72\u001b[0m plot_obj\u001b[38;5;241m.\u001b[39mdraw()\n", - "File \u001b[0;32m~/datacrumbs/venv/lib/python3.10/site-packages/pandas/plotting/_matplotlib/core.py:2051\u001b[0m, in \u001b[0;36mPiePlot.__init__\u001b[0;34m(self, data, kind, **kwargs)\u001b[0m\n\u001b[1;32m 2049\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, data, kind\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 2050\u001b[0m data \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mfillna(value\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0\u001b[39m)\n\u001b[0;32m-> 2051\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m<\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43many\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43many\u001b[49m():\n\u001b[1;32m 2052\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_kind\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m plot doesn\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mt allow negative values\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 2053\u001b[0m MPLPlot\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, data, kind\u001b[38;5;241m=\u001b[39mkind, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n", - "\u001b[0;31mAttributeError\u001b[0m: 'bool' object has no attribute 'any'" - ] - } - ], - "source": [ - "\n", - "per.T.plot(kind='pie', figsize=(5, 5))" - ] - }, - { - "cell_type": "code", - "execution_count": 199, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Time (sec)')" - ] - }, - "execution_count": 199, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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6hyPRmBgIBwcHLSPBwwYAA8PD/zyyy/51hkbGwsLCwvY29vrtDs7OyMlJQUHDx7Mc9tdu3bB398fFSpU0DmXXbp0gUqlwokTJwAA3333HSRJwty5c/We49ke7goVKgAAYmJi8q2biMwLwy4R0TOqVaum89jJyQkA4OXlpdeecyzurVu3kJiYiEqVKsHNzU3n68mTJ4iOjgYABAQEoH///pg/fz5cXV3xyiuvICQkBEqlslD1xcXF4Z133kHlypVhY2MDNzc3eHt7AwASExMLdTzW1tbaYR15HY9G7dq1dR5LkoRatWppxz4X1dtvv406deqgZ8+eqFq1KkaOHIlff/1VZ51bt27h119/1TuPmvG/mnN5+/ZteHp6wsXFpcD9iqfjq58NwURk3jhml4joGXK5vNDtIscFamq1GpUqVcL27dtz3V4zVliSJISGhuLs2bP46aefsH//fowcORKffvopzp49q9cT+qxBgwbh9OnTmDZtGho3bgx7e3uo1Wr06NEj1xs35FZ3XsconrngriQqVqyIrKwsJCcn6/QMV6pUCVeuXMH+/fuxb98+7Nu3DyEhIQgMDMTmzZsBZJ/Lrl27Yvr06bk+d506dYpcjybIPxvyici8MewSkVkry148Hx8fHDp0CG3bts33wi2NVq1aoVWrVli8eDG+/vprvPHGG9ixYwdGjx6dZ93x8fE4fPgw5s+fjzlz5mjbb9269dyO41nPPrcQAv/884/2grm81KtXD0D2rAzPrqtQKNC7d2/07t0barUab7/9Nr744gvMnj0btWrVgo+PD548eZLrTA45+fj4YP/+/YiLiyuwdzc8PBwAUL9+/XzXIyLzwmEMRGTW7OzsAKBM7qA2aNAgqFQqLFy4UG9ZVlaWtob4+Hi9HtTGjRsDgHYog62tLQD9ujU9ss9un3N2gudty5YtSE5O1j4ODQ1FVFQUevbsme92rVu3BgC9KcCenSJNJpNpw7Dm+AcNGoQzZ85g//79es+bkJCArKwsAED//v0hhMD8+fP11nv2HP3222+QJElbFxGVD+zZJSKz1qxZMwDAhx9+iCFDhsDS0hK9e/fWhuDnKSAgAGPHjsVHH32EK1euoFu3brC0tMStW7ewa9curF69GgMGDMDmzZsRHByMV199FT4+PkhOTsaXX34JR0dH9OrVC0D2RWgvvPACdu7ciTp16sDFxQW+vr7w9fVF+/btsWzZMmRmZqJKlSo4cOCAtteyNLi4uKBdu3YYMWIEHj16hFWrVqFWrVp466238t2uZs2a8PX1xaFDh7RzCAPZF8zFxcWhU6dOqFq1Ku7evYu1a9eicePG2l7XadOm4ccff8TLL7+M4cOHo1mzZkhJScG1a9cQGhqKiIgIuLq6omPHjnjzzTexZs0a3Lp1SzuUIywsDB07dsTEiRO1+z148CDatm2LihUrls6JIiKjxLBLRGatRYsWWLhwIdavX49ff/0VarUa4eHhpRJ2AWD9+vVo1qwZvvjiC3zwwQewsLBAjRo1MHToULRt2xZAdig+f/48duzYgUePHsHJyQktW7bE9u3btReaAcBXX32FoKAgTJ48GRkZGZg7dy58fX3x9ddfIygoCJ9//jmEEOjWrRv27dsHT0/PUjmmDz74AL///js++ugjJCcno3PnzggODtb2Pudn5MiRmDNnDtLS0rRDO4YOHYoNGzYgODgYCQkJcHd3x+DBgzFv3jzIZNkfONra2uL48eNYsmQJdu3ahS1btsDR0RF16tTB/PnztRcNAtl3aWvUqBE2btyIadOmwcnJCc2bN0ebNm206yQmJuLAgQMIDg5+zmeHiIydJJ7n1QhERGQ2jh07ho4dO2LXrl0YMGBAsZ4jMTERNWvWxLJly3SmOitrq1atwrJly3D79u1CjacmIvPBMbtERFRqnJycMH36dCxfvjzXmSLKQmZmJlasWIFZs2Yx6BKVQxzGQEREpWrGjBmYMWOGwfZvaWmJe/fuGWz/RGRY7NklIiIiIrPFMbtEREREZLbYs0tEREREZothl4iIiIjMFsMuEREREZkthl0iIiIiMlsMu0RERERkthh2iYiIiMhsMewSERERkdli2CUiIiIis8WwS0RERERm6/8OyywUo7ienQAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.figure()\n", - "plt.rcParams.update({'font.size': 12})\n", - "ax = final_df.query(\"ts > 1\")[[\"c write\", \"sys write\", \"ext4 ext4_file_write_iter\",\"vfs rw_verify_area\"]].plot(figsize=(8,4),marker='x');\n", - "ax.set_xlabel(\"timestamp (sec)\")\n", - "ax.set_ylabel(\"Time (sec)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 200, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0, 0.5, 'Time (sec)')" - ] - }, - "execution_count": 200, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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desc5tUtV64ccXF33jxuhZY960KHt/6dfiz75++THa8Xg9DQUEaMGMGIESOIjY2ladOmTJ482eFMdEOHDqVv377s3r2bxYsX06RJE+rVq5djX3fffTd33303kydP5uuvv+bhhx9myZIlPPXUUwXOVb16dVJSUujcufMN1/v222/x8PDg119/dehFXrBggcN6VapUwWq1cuLECYfe3KNHjxY4mxBCCOHqPOs2wsI69ImZzo5SrArVs1u/fn2++uor4uPjWbBgAZcvX3b4Bvvp06cJCgq6ZSFLPavFsdDNFvG6rd1qKZYYFouFxMREh7aQkBDCwsIchgIA9OjRg6CgIN599102btyYY1aO+Pj4HL2ojRs3Bsixr/waNGgQ27dv59dff82xLCEhAbPZDNhOV61pGhbLv8ctKiqKFStW5LgPAB999JFD+7WzOgghhBClRcjdtu/VqHSNhIsxTk5TfArVs/v222/Tu3dve0F77733Onxh7aeffqJFixa3JuGd4EYnjCjGHt3k5GQqVqzIgAEDaNSoET4+Pvz222/s3r2b//3vfw7rGgwGHnzwQT7++GP0ej0PPfSQw/IvvviC2bNn079/f6pXr05ycjKffvopfn5+9OzZs1D5XnvtNVauXMl9993HsGHDaNasGampqfz5559ERkYSFRVFUFAQvXr14v3336d79+4MGTKE2NhYZs2aRY0aNTh48KB9f40bN+ahhx5i9uzZJCYm0rp1a9atW8c///xTqHxCCCGEKwuoWosL7gqVqXFhx0YC+j7o7EjFolDFbvZJBtauXUtAQACDBw+2L4uPj6ddu3YOX2ATJYOXlxcjRoxgzZo1fPfdd1itVmrUqMHs2bN57rnncqw/dOhQPv74Yzp16kRoaKjDsoiICHbt2sWSJUu4ePEi/v7+tGzZksWLF+f65bP85tu4cSNTpkxh+fLlfPnll/j5+VGrVi0mTJiAv78/AB07dmT+/Pn83//9Hy+99BLh4eG8++67REVFORS7AJ9//jnBwcEsXryYFStW0LFjR3766Sf7FGZCCCFEaaL83eCShbQ//4A7pNi9ZfPsliaFnmf3DpM9T+2XX37Jo48+6uw4QohiIH//hCjZ/uzTGrdj8aS1qUOzz753dpwiuaXz7KYV4bRyRdlWuLZPP/0UHx8f7r//fmdHEUIIIUQ+WK5+Emu4g8bs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X69u3bq0b9+eZs2aERgYyJ49e4iMjOSFF17I920NHTqUL7/8kldeeYVdu3bRtm1bUlNT+e233xgxYgR9+/alV69evP/++3Tv3p0hQ4YQGxvLrFmzqFGjBgcPHrTvq0aNGrz11lu88847tG3blvvvvx+j0cju3bsJCwtj6tSpBToOr732GitXruS+++6zT0uWmprKn3/+SWRkJFFRUQQFBRVon/nl5+dHu3bteO+998jKyqJChQqsWbOGU6dOFXqfnp6erFq1io4dO9KjRw82btx40zGn1zt16hR9+vShe/fubN++na+++oohQ4bQqJFtrsauXbvaeyifeeYZUlJS+PTTTwkJCXEowMqVK8eLL77I//73P/v+Dhw4wOrVqwkKCnIYHnGrHoc6depQvXp1Ro8eTXR0NH5+fnz77bc5epIBPvroI9q0aUPTpk0ZPnw44eHhREVF8dNPP7F//34ApkyZwpo1a4iIiGD48OHcddddxMTEsHz5crZs2UJAQEC+sz/11FNcuXKFjh07UrFiRU6fPs3MmTNp3Lgxd911F5C/19usWbNo06YNDRo04Omnn6ZatWpcvHiR7du3c+7cOQ4cOADYTgq0aNEiunfvzosvvmifeqxKlSoOrykhROlX/p72RAEqU8elf45SrvbNv/dSIhVmqoe+ffsqnU6nhgwZombMmKEWLlyY66WkKuzUY6XF3r17Vbdu3ZSPj4/y8vJSHTp0cJhCSymlJk2apFq2bKkCAgKUp6enqlOnjpo8ebLKzMws0G2lpaWpt956S4WHhyuDwaDKly+vBgwY4DD12fz581XNmjWV0WhUderUUQsWLLBPh3W9zz//XDVp0kQZjUZVpkwZFRERodauXWtfXqVKlVyncIqIiFAREREObcnJyWrMmDGqRo0ayt3dXQUFBanWrVur6dOn3/R+5nU7gHr++ecd2k6dOqUANW3aNHvbuXPnVP/+/VVAQIDy9/dXAwcOVOfPn1eAGjdunH297ONw6dKlHLd17dRj2eLi4lTdunVV+fLl1fHjx294H66/jcOHD6sBAwYoX19fVaZMGfXCCy/keA2sXLlSNWzYUHl4eKiqVauqd9991z7F3LVTWpnNZjV27FhVvnx55enpqTp27Kj+/vtvVbZsWfXss8867LMoj8O1Dh8+rDp37qx8fHxUUFCQevrpp9WBAwcUoBYsWOCw7l9//WU//h4eHqp27dpq7NixDuucPn1aDR06VAUHByuj0aiqVaumnn/+eWUymQqUPTIyUnXt2lWFhIQod3d3VblyZfXMM8+omJgY+37y+3o7ceKEGjp0qCpfvrwyGAyqQoUK6r777lORkZEO6x08eFBFREQoDw8PVaFCBfXOO++o+fPny9RjQtyBjjSxTT/215dznB2lwPI79ZimVME/4/Xy8uKZZ57hgw8+uGVFtytJSkrC39+fxMRE+8f218rIyODUqVOEh4fj4eHhhIRCFJ/x48czYcIELl26dNt6s8H2iVGZMmWYNGlSjrOVCdchf/+EKF0Od2iEFpNJ2v3taTYl5xkvXdnN6rVshRqzW7ZsWflmrxCi0HI7RW/2mOTCfoFOCCFEwWUF2aZ81M5GOTfIbVSoMbvDhw9nyZIlPPfcczkm8BciMzOTK1eu3HAdf39/OT2pk6WkpJCSknLDdfKaI7aoli5dysKFC+nZsyc+Pj5s2bKFb775hq5du3LvvfcWaF9XrlzJ9bsD2fR6/W27H0IIUdJZK1SCPy9iiL1085VLqEIVu2PHjsVkMtG8eXMeffRRKlasmOvcoffff3+RA4qSZ9u2bXTo0OGG6yxYsIBhw4YVTyCRq+nTpzNhwoQbrlOUL8XdSMOGDXFzc+O9994jKSnJ/qW1SZMmFXhf999/Pxs3bsxzeZUqVRxmFxFCCPEv9xp3AXswJKQ6O8ptU6gxu9HR0QwcOJAdO3bkveNCzsZgMpl4++23WbRoEfHx8TRs2JBJkybRpUuXAu2nS5cu/Pbbbzz//PMFPnWxjNktmvj4eP74448brlOvXj1CQ0OLKZHIzcmTJx1OkZybNm3auPxz/I8//sh1VoVsnp6eBe4tFnmTv39ClC7ROzaQNOw5NJ2i+t79GErQ6zq/Y3YL1bP7xBNPsHfvXsaMGUOrVq3spzu9FYYNG0ZkZCQvvfQSNWvWtH/U+fvvv9OmTZt87eO7775j+/bttyyTKJgyZco45WQMomCqVatmPxlBSdasWTNnRxBCiBKrfJN7SNIplFUjZt8uKt/TztmRbrlCFbtbtmzhjTfeuOlHoAW1a9culixZwrRp0xg9ejRgm4u1fv36vP7662zbtu2m+8jIyODVV1/ljTfecDj7lBBCCCGEcKQ3GtF8NFQSJOzdViqL3UJ9u6x8+fIEBgbe6ixERkai1+sZPny4vc3Dw4Mnn3yS7du3c/bs2Zvu47333sNqtdqLZSGEEEIIkTdzGS8Aso4fcnKS26NQxe6rr77KZ599dtNvchfUvn37qFWrVo5xFy1btgSwn70oL2fOnOH//u//ePfdd+Wb/kIIIYQQ+WC+OmONPvqck5PcHoUaxpCRkYHBYKBGjRoMGjSISpUq5ZiNQdM0Xn755QLtNyYmJtcvLWW3nT9//obbv/rqqzRp0oQHH3ywQLdrMpns55gH24BnIYQQQog7QuWqsOc0hss3nja0pCpUsXvtEIG8ZjooTLGbnp6O0WjM0Z79jd/cJqLP9vvvv/Ptt9+yc+fOAt0mwNSpU2/5+GMhhBBCiJLA465GKDaiTzDdfOUSqFDF7u2ae9PT09OhhzVbRkaGfXluzGYzo0aN4tFHH6VFixYFvt0xY8bwyiuv2K8nJSVRqVKlAu9HCCGEEKKkCWnVlot8hEqD5LhL+AaVrhPxFKrYrVKlyq3OAdiGK0RHR+doj4mJASAsLCzX7b788kuOHj3K3Llzc0wen5ycTFRUFCEhIXh5eeW6vdFozLVHWQghhBCitCtToy6xBoXK0riwazO+PUvXScFc6ly/jRs35tixYznGzGYPTWjcuHGu2505c4asrCzuvfdewsPD7RewFcLh4eGsWbPmtma/E/3yyy80btwYDw8PNE0jISHB2ZFcVvv27Wnfvr1D28WLFxkwYABly5ZF0zQ+/PBDp2QTQghxZ9N0OpSf7btXKQd3OznNrZevnt3w8HB0Oh1HjhzBYDAQHh6Opmk33EbTNE6cOFGgMAMGDGD69OnMmzfPPi7YZDKxYMECWrVqZR9acObMGdLS0qhTpw4ADz74YK6FcP/+/enZsydPP/00rVq1KlAWcWOXL19m0KBB1KtXj1mzZmE0GvH29nZ2rBLl5Zdf5tdff2XcuHGUL1+e5s2bOzuSEEKIO5Q50Be3y4moU8ecHeWWy1exGxERgaZp6HQ6h+u3WqtWrRg4cCBjxowhNjaWGjVq8MUXXxAVFcX8+fPt6w0dOpSNGzeSfabjOnXq2Avf64WHh9OvX79bnvVOt3v3bpKTk3nnnXfkbGn5kNsnC+vXr6dv374yJ7QQQginM5cvj9vxRPRXh46WJvkqdhcuXMimTZu4cuUKwcHBLFy48LYF+vLLLxk7diyLFi0iPj6ehg0bsmrVKtq1K31n9Mh2aebHoNcRPGJEzmWzZ4PFSvDIF5yQLG+xsbEABAQE3LbbSEtLy3OcdUmRfR/c3d1zLIuNjb2tx6+wMjIycHd3t7+5FUIIUfrpwmvB5qO4Xyl906/m+79Zhw4dWLt27e3MAtimGZs2bRoxMTFkZGSwa9cuunXr5rDOhg0b7L26N6KUynNqNJei1xH30UxbYXuNS7NnE/fRTNAXT9ERGRmJpmls3Lgxx7K5c+eiaRp//fUX7du357HHHgOgRYsWaJrGsGHDADh+/DgPPPAA5cuXx8PDg4oVK/Lggw+SmJh4w9tu37499evX548//qBdu3Z4eXnxn//8h1deeYWyZcs6PN4jR45E0zQ++ugje9vFixfRNI1PPvkkX/f1vvvuo1q1arkuu+eee3IMKfjqq69o1qwZnp6eBAYG8uCDD+Y4o19e9yF7WfaY3YULF6JpGkopZs2ahaZpaJrGggUL0DSNffv25cg0ZcoU9Hp9rl/gzM2VK1cYPXo0DRo0wMfHBz8/P3r06MGBAwcc1tuwYQOaprFkyRL++9//UqFCBby8vOzj5nfu3En37t3x9/fHy8uLiIgItm7d6rCP06dPM2LECGrXro2npydly5Zl4MCBOb4sKoQQwnX5NrD939OSsvJVY5Uk+Z6NobTd8dtBKYW6wVzAeSk7bBgqK4u4j2aisrIIevpp4j79lMufzKHsc89SdtgwrGlpBd6v5ulZoOEmvXr1wsfHh2XLlhEREeGwbOnSpdSrV4/69evz1ltvUbt2bebNm8fEiRMJDw+nevXqZGZm0q1bN0wmEyNHjqR8+fJER0ezatUqEhIS8Pf3v+HtX758mR49evDggw/yyCOPUK5cOaxWKx988AGHDh2ifv36AGzevBmdTsfmzZsZNWqUvQ3I9ycAgwcPZujQoezevdthurrTp0+zY8cOpk2bZm+bPHkyY8eOZdCgQTz11FNcunSJmTNn0q5dO/bt2+fQO5vbfbheu3btWLRoEY8++ihdunRh6NChAPTt25fnn3+exYsX06RJE4dtFi9eTPv27alQoUK+7t/JkydZsWIFAwcOJDw8nIsXLzJ37lwiIiI4fPhwjplN3nnnHdzd3Rk9ejQmkwl3d3fWr19Pjx49aNasGePGjUOn07FgwQI6duzI5s2b7Wc23L17N9u2bePBBx+kYsWKREVF8cknn9C+fXsOHz5c4nvnhRDiTlD+nghOAypTR9yJowTXyH14aImk8knTNLV48eL8rl6iJSYmKkAlJibmujw9PV0dPnxYpaenO7RbUlPV4dp1XOZiSU0t8H1/6KGHVEhIiDKbzfa2mJgYpdPp1MSJE+1tCxYsUIDavXu3vW3fvn0KUMuXLy/w7UZERChAzZkzx6E9NjZWAWr27NlKKaUSEhKUTqdTAwcOVOXKlbOvN2rUKBUYGKisVmu+bi8xMVEZjUb16quvOrS/9957StM0dfr0aaWUUlFRUUqv16vJkyc7rPfnn38qNzc3h/a87kP2soiICIc2QD3//PMObQ899JAKCwtTFovF3rZ3714FqAULFuTrvimlVEZGhsM+lFLq1KlTymg0OjyOv//+uwJUtWrVVFpamr3darWqmjVrqm7dujkc07S0NBUeHq66dOni0Ha97du3K0B9+eWX+c4sSoa8/v4JIUq+I41rq8O166hDX81zdpR8uVm9lq1An4/fji+lCdcyePBgYmNj2bBhg70tMjISq9XK4MGDb7htds/tr7/+SloheqKNRiOPP/64Q1twcDB16tRh06ZNAGzduhW9Xs9rr73GxYsXOX78OGDr2W3Tpk2+n6PZH+svW7bM4VOLpUuXcvfdd1O5cmUAvvvuO6xWK4MGDSIuLs5+KV++PDVr1uT333+/6X0oiKFDh3L+/HmH/S5evBhPT08eeOCBfO/HaDTax9xaLBYuX76Mj48PtWvXZu/evTnWf+yxxxxO2rJ//36OHz/OkCFDuHz5sv1+p6am0qlTJzZt2oTVagUcT/aSlZXF5cuXqVGjBgEBAbnelhBCCNdk8bd9vyTj7wM3WbNkKdBJJR555BEeeeSRfK2raRpms7lQoUoqzdOT2nv/KPT22UMXNIMBlZVF2eeeJejpp4uUp6Cyx2cuXbqUTp06AbYCsHHjxtSqVeuG24aHh/PKK6/w/vvvs3jxYtq2bUufPn145JFHbjqEAaBChQq5fpGrbdu2/Pzzz4CtqG3evDnNmzcnMDCQzZs3U65cOQ4cOMCQIUMKdF8HDx7MihUr2L59O61bt+bEiRP88ccfDvPdHj9+HKUUNWvWzHUfBoMhX/chv7p06UJoaCiLFy+mU6dOWK1WvvnmG/r27Yuvr2++92O1WpkxYwazZ8/m1KlTWCwW+7KyZcvmWD97Xups2W8issdm5yYxMZEyZcqQnp7O1KlTWbBgAdHR0Q5vHm42VlsIIYTrMAeVwXAhFs6cdHaUW6pAxW7nzp1vWvDcyTRNQyvk+MRLs2dz+ZM5BI0aSfCIEfYvp2kGQ66zNNwuRqORfv368f333zN79mwuXrzI1q1bmTJlSr62/9///sewYcP44YcfWLNmDaNGjWLq1Kns2LGDihUr3nDbvE4H3aZNGz799FNOnjzJ5s2badu2LZqm0aZNGzZv3kxYWBhWq5W2bdsW6L727t0bLy8vli1bRuvWrVm2bBk6nY6BAwfa17FarWiaxurVq9Hr9Tn24ePjk6/7kF96vZ4hQ4bw6aefMnv2bLZu3cr58+fz/SYz25QpUxg7dixPPPEE77zzDoGBgeh0Ol566SV7j+yNcmevM23atDxP5pJ930eOHMmCBQt46aWXuOeee/D390fTNB588MFcb0sIIYRrsoRVxPBXLIarMy6VFgUqdh977LEC956Jm8subLMLXcD+M+6jmQ7Xi8PgwYP54osvWLduHX///TdKqZsOYbhWgwYNaNCgAf/973/Ztm0b9957L3PmzGHSpEmFypNdxK5du5bdu3fz5ptvArYven3yySeEhYXh7e1Ns2bNCrRfb29v7rvvPpYvX87777/P0qVLadu2rcOXt6pXr45SivDw8GJ7ozd06FD+97//8eOPP7J69WqCg4NzzEhyM5GRkXTo0MFhfmqAhIQEgoKCbrp99erVAdtwj5vNoxwZGcljjz3G//73P3tbRkaGnFFPCCFKGEPNurBmL4aEVGdHuaVkIk1XYLE6FLrZgkeMIGjUSLAUb+9Y586dCQwMZOnSpSxdupSWLVvm+Jg7N0lJSTmGrjRo0ACdTofJZCp0nvDwcCpUqMAHH3xgPy002IrgEydOEBkZyd13342bW4HeuwG2wv78+fN89tlnHDhwIEdRf//996PX65kwYUKOGUmUUly+fLnQ9ysvDRs2pGHDhnz22Wd8++23PPjggwW+b3q9Pkfe5cuX53vqsmbNmlG9enWmT59OSkpKjuWXLl264W3NnDnTYeiEEEII1xfQ5OrZZpMV5qws54a5hQpeHYhb7kYnjCjOHt1sBoOB+++/nyVLlpCamsr06dPztd369et54YUXGDhwILVq1cJsNrNo0SL0en2BvlyVm7Zt27JkyRIaNGhAmTJlAGjatCne3t4cO3as0J849OzZE19fX0aPHp1rzurVqzNp0iTGjBlDVFQU/fr1w9fXl1OnTvH9998zfPjw23IGtKFDh9r3W9AhDGCbR3jixIk8/vjjtG7dmj///JPFixfnObfw9XQ6HZ999hk9evSgXr16PP7441SoUIHo6Gh+//13/Pz8+PHHH+23tWjRIvz9/albty7bt2/nt99+y3VssBBCCNdVvvm9JOsUyqIR88cOKt1dsOGBrkp6dkWuBg8ebO/RGzRoUL62adSoEd26dePHH3/klVdeYfz48fj4+LB69WruvvvuIuXJHsrQpk0be5ubmxv33HOPw/KC8vDwoE+fPiQnJ9OhQwdCQkJyrPPmm2/y7bffotPpmDBhAqNHj2blypV07dqVPn36FOp2b+bhhx9Gr9dTq1Yt+3y2BfGf//yHV199lV9//ZUXX3yRvXv38tNPP1GpUqV876N9+/Zs376d5s2b8/HHHzNy5EgWLlxI+fLlefnll+3rzZgxg6FDh7J48WJeffVVYmJi+O2333KMZxZCCOHa3Dw80XxssxrF793u5DS3jqau//xRkJSUhL+/P4mJifj5+eVYnpGRwalTpwgPD8fDw8MJCUVpFxcXR2hoKG+//TZjx451dhwh7OTvnxCl219dm6I/k05az5Y0e/8LZ8e5oZvVa9mkZ1cIF7Rw4UIsFguPPvqos6MIIYS4g5iDgwHQnzvj5CS3jozZFaXOpUuXbvjlKHd3dwIDA4sxUf6tX7+ew4cPM3nyZPr160fVqlUdlqenp9907trAwMAizfUrhBDizqUqV4U/zmCIi3d2lFtGil1R6rRo0YLTp0/nuTwiIsLhDHGuZOLEifbp2mbOnJlj+dKlS296hrbff/+d9u3b36aEQgghSjOPOg2ATegTM5wd5ZaRYleUOosXLyY9PT3P5dmzObiimxXh3bp1Y+3atTdcp1GjRrcwkRBCiDtJcKsILjELlQqp8VfwLuOan4QWhBS7otTJnoe3NAoNDSU0NNTZMYQQQpRSgTXrEmdQqCyN8zs2UrNHf2dHKjL5gpoQQgghhABAp9ejfPUApP65x8lpbg0pdotAZm0TQtxp5O+eEKWfOdAXAMuJo05OcmtIsVsIBoMBgLS0NCcnEUKI4pWamoqmafa/g0KI0sdcvjwAbhfOOznJrSFjdgtBr9cTEBBAbGwsAF5eXmia5uRUQghxeyilMJvNJCUlkZSUREBAAHq93tmxhBC3ia5qDdhyFPcrSc6OcktIsVtI5a++68kueIUQorTT6/WEhobi7+/v7ChCiNvIu35TsvgJLSnL2VFuCSl2C0nTNEJDQwkJCSErq3Q8GYQQIi9ubm7o9Xr5FEuIO0Bo6w6c4R2UScflk8cpW62msyMViRS7RaTX6+XjPCGEEEKUGt4hoeg8FdZ0jdhdm0p8sStfUBNCCCGEEA4s/rbTzqcf2u/cILeAFLtCCCGEEMJBVtkA2y9nTjo1x60gxa4QQgghhHBgDasIgKEUfBFfil0hhBBCCOHArUYdAAzxqU5OUnRS7AohhBBCCAf+Te62/ZJsxVLCZ52SYlcIIYQQQjgIa34vaApl0YjZv9vZcYpEil0hhBBCCOHAzcsbzcc2r3b8H9ucnKZopNgVQgghhBA5mAM8Acg6dsjJSYpGil0hhBBCCJGDObgsALro005OUjRS7AohhBBCiBxUpaoAGOKuODdIEUmxK4QQQgghcvCo0xAAfWKGk5MUjRS7QgghhBAih7It2gCgUiE9McG5YYpAil0hhBBCCJFD0F0N0dwUKI3zOzc5O06hSbErhBBCCCFy0On14KcHIPnALienKTwpdoUQQgghRK6yyvgAYDl5zMlJCk+KXSGEEEIIkStLuXIAuMVEOzlJ4UmxK4QQQgghchdeEwDDlSQnByk8KXaFEEIIIUSuvOs1AUCXmOXkJIUnxa4QQgghhMhV+bsjAFAmjfjTJ52cpnCk2BVCCCGEELnyDauEzkMBcGHnRienKRyXK3ZNJhNvvPEGYWFheHp60qpVK9auXXvT7b777jsGDx5MtWrV8PLyonbt2rz66qskJCTc/tBCCCGEEKWUxd8AQPqh/c4NUkguV+wOGzaM999/n4cffpgZM2ag1+vp2bMnW7ZsueF2w4cP5++//+aRRx7ho48+onv37nz88cfcc889pKenF1N6IYQQQojSJatsAADa6RPODVJIbs4OcK1du3axZMkSpk2bxujRowEYOnQo9evX5/XXX2fbtm15bhsZGUn79u0d2po1a8Zjjz3G4sWLeeqpp25ndCGEEEKIUskaVgEOx+F28aKzoxSKS/XsRkZGotfrGT58uL3Nw8ODJ598ku3bt3P27Nk8t72+0AXo378/AH///fctzyqEEEIIcSfQ16gDgFtCqpOTFI5LFbv79u2jVq1a+Pn5ObS3bNkSgP379xdofxcuXAAgKCjoluQTQgghhLjTBDRqBYCWZMVitjg5TcG5VLEbExNDaGhojvbstvPnzxdof++++y56vZ4BAwbccD2TyURSUpLDRQghhBBCQPmWbUBTKIvGxYN7nB2nwFyq2E1PT8doNOZo9/DwsC/Pr6+//pr58+fz6quvUrNmzRuuO3XqVPz9/e2XSpUqFSy4EEIIIUQp5e7ti+ajAXBlz1Ynpyk4lyp2PT09MZlMOdozMjLsy/Nj8+bNPPnkk3Tr1o3JkyffdP0xY8aQmJhov9xobLAQQgghxJ3G4m/reMw8/peTkxScS83GEBoaSnR0dI72mJgYAMLCwm66jwMHDtCnTx/q169PZGQkbm43v4tGozHXHmUhhBBCCAFZwWUxnotGd/a0s6MUmEv17DZu3Jhjx47lGDO7c+dO+/IbOXHiBN27dyckJISff/4ZHx+f2xVVCCGEEOKOoSpVBcAt7opzgxSCSxW7AwYMwGKxMG/ePHubyWRiwYIFtGrVyj6W9syZMxw5csRh2wsXLtC1a1d0Oh2//vorwcHBxZpdCCGEEKK0MtauD4BbQsk7UZdLDWNo1aoVAwcOZMyYMcTGxlKjRg2++OILoqKimD9/vn29oUOHsnHjRpRS9rbu3btz8uRJXn/9dbZs2eJwxrVy5crRpUuXYr0vQgghhBClRdnmbbjCXFQqZKQk4eHjd/ONXIRLFbsAX375JWPHjmXRokXEx8fTsGFDVq1aRbt27W643YEDBwB47733ciyLiIiQYlcIIYQQopCC6zch3k2hzBoxOzcR3uk+Z0fKN01d2z0qAEhKSsLf35/ExMQcJ7gQQgghhLgTHbmnLipeYRo+iMavTHB2nHzXay41ZlcIIYQQQrimrEDbF/+t/xy5yZquRYpdIYQQQghxU+aQcgDoY3JOE+vKpNgVQgghhBA3pVWtDoDhcqKTkxSMFLtCCCGEEOKmvOo1BUCXlOXkJAUjxa4QQgghhLipcndHAKAyNOLPnXFymvyTYlcIIYQQQtyUf8Uq6Dxsk3jF7tjg3DAFIMWuEEIIIYTIF6u/AYC0Q3udnCT/pNgVQgghhBD5khnob/sl6oRzgxSAFLtCCCGEECJfLKEVAHCLvejkJPknxa4QQgghhMgXt+q1bT+vpDg5Sf5JsSuEEEIIIfLFr0krALRkK1aLxclp8keKXSGEEEIIkS+hLduBplBmjdi/9js7Tr5IsSuEEEIIIfLF6OOL5m37PW73ZueGyScpdoUQQgghRL5ZAjwByDz6l5OT5I8Uu0IIIYQQIt+yggIB0M6ddnKS/JFiVwghhBBC5Ju1YhUADJfinJwkf6TYFUIIIYQQ+WasXQ8At8QMJyfJHyl2hRBCCCFEvgU2bwuASlGYUlx/vl0pdoUQQgghRL6Va9AETa9AacSUgBkZpNgVQgghhBD5pnMzgJ+thEzcv9PJaW5Oil0hhBBCCFEgWQG2yXYtJ444OcnNSbErhBBCCCEKxFyuHAD689FOTnJzUuwKIYQQQoiCqVoNAMPlBOfmyAcpdoUQQgghRIF41W0KgD4xy8lJbk6KXSGEEEIIUSAhd7cDwJqhkRh91slpbkyKXSGEEEIIUSBlKldDZ7QCcHHnRienuTEpdoUQQgghRIFZ/d0BSD2018lJbkyKXSGEEEIIUWBZgX62X07949wgNyHFrhBCCCGEKDBzaAUA3C5edHKSG5NiVwghhBBCFJi+em0A3OJTnJzkxqTYFUIIIYQQBebXqAUAWpIFq8Xi5DR5k2JXCCGEEEIUWGirdqAplFnj0t8HnR0nT1LsCiGEEEKIAvPwC0Dztv0et3uLc8PcgBS7QgghhBCiUCz+HgCYjvzp5CR5k2JXCCGEEEIUSlZwIADa2VNOTpI3KXaFEEIIIUShWCtUAcBw6bKTk+RNil0hhBBCCFEo7jXrAeCWmO7kJHmTYlcIIYQQQhRKYPPWAKhkRWZaqpPT5E6KXSGEEEIIUSjlGrVA0ytQGjG7tzo7Tq6k2BVCCCGEEIWiNxjA11ZOJu7f4eQ0uZNiVwghhBBCFFpWGdtku+Z/jjg5Se6k2BVCCCGEEIVmDgkBQH/+nJOT5M7lil2TycQbb7xBWFgYnp6etGrVirVr1+Zr2+joaAYNGkRAQAB+fn707duXkydP3ubEQgghhBB3sMrVADBcTnBujjy4XLE7bNgw3n//fR5++GFmzJiBXq+nZ8+ebNly49PQpaSk0KFDBzZu3Mh//vMfJkyYwL59+4iIiODyZded+00IIYQQoiSavX82cw7MwaNeYwB0iZn2ZXMOzGH2/tlOSubIzdkBrrVr1y6WLFnCtGnTGD16NABDhw6lfv36vP7662zbti3PbWfPns3x48fZtWsXLVq0AKBHjx7Ur1+f//3vf0yZMqVY7kN+zd4/G52m49lGz+ZYNufAHKzKyojGI5yQzEbyFZ2rZ5R8RePq+cD1M0q+onH1fOD6GSVf0ZT96Gv+1sezftAQOgIqXSP54nkWX1jJhY9ncpelDHzu3OcguFjPbmRkJHq9nuHDh9vbPDw8ePLJJ9m+fTtnz5694bYtWrSwF7oAderUoVOnTixbtuy25i4MnaZj1v5ZzDkwx6F9zoE5zNo/C53m3IdG8hWdq2eUfEXj6vnA9TNKvqJx9Xzg+hklX+FZlZXqurIM3mzl0rKvMXkoAOavnMCFj2cyeLOVmrogp+W7lqaUUs4Oka1Lly5ER0dz+PBhh/Z169bRuXNnVq5cSe/evXNsZ7Va8fLy4oknnmD2bMcu87FjxzJp0iSSkpLw9fXNV46kpCT8/f1JTEzEz8+v8HfoJrKfrD2q9qBr1a6siVrD6qjV9uvOdn0eyVdwrp5R8pXufOD6GSVf6c4Hrp8xO0/3qt3t+X6J+sV+PTf5LZ0URV9v7em1rIlaQ9eqXelcuTNrotbw25nfiKgYQeuw1pitZizKgtlqxmw1k2XNwqzM9usWq8V+Pcua9W/7Ndtcu21u7WZ1dZnVYr9uVVYAHthitRW8fhCcBNvqaLQ+okhvU5umn63I1/0vrPzWay5V7NavX59y5cqxbt06h/bDhw9Tr1495syZwzPPPJNju7i4OIKDg5k4cSJjx451WDZ79myef/55jhw5Qu3atXO9XZPJhMlksl9PSkqiUqVKt73YBZi4fSLLjy2/rbchhBBCCHG7ZBe82Yqj0IX8F7suNWY3PT0do9GYo93Dw8O+PK/tgEJtCzB16lQmTJhQ4Ly3wiN3PULksUgUCg2NxiGNnZLjRvbH7pd8ReTqGSVf0bh6PnD9jJKvaFw9H7h+xmvzNQlpUuj9aJp24+XcZHke2++5sMeer23Ftrhpbrjprrvkty239qvX9To9Bp3hhutcf1nQcAGWLTPRK7BosGtkd5oW+gjeei5V7Hp6ejr0sGbLyMiwL89rO6BQ2wKMGTOGV155xX49u2e3OKw5vQaFwqAzkGXNonVY61wHojvLnANz2Be7T/IVgatnlHxF4+r5wPUzSr6icfV84PoZr893T9g9Lpdv94Xd9nwNghq4TL45B+YQO3sWegXoFHqrxoWPZzLnBVwmI8qFdO7cWd1111052n/77TcFqJUrV+a6ncViUUajUT333HM5lv33v/9VgEpKSsp3jsTERAWoxMTE/IcvhE/2f6LqL6yvPtn/Sa7XnU3yFZ2rZ5R8RePq+ZRy/YySr2hcPZ9Srp9R8hXeJ/s/UeOeqqsO166j/niyr1JKqT+e7KsO166jxj1V97ZnzG+95lLF7ujRo5Ver88RevLkyQpQZ86cyXPb5s2bqxYtWuRo79Kli6pWrVqBchRHsZvXk9VVnsSSr+hcPaPkKxpXz3ejLK6SUfIVjavnu1EWV8ko+Ypm8VNtHArdbNkF7+Kn2tzW289vveZSwxgGDBjA9OnTmTdvnn2eXZPJxIIFC2jVqpV9aMGZM2dIS0ujTp06Dtu++eab7Nmzh+bNmwNw9OhR1q9fb9+XK7EqK883fj5HF3/29exvOTqL5Cs6V88o+YrG1fNlZ3DljJKvaFw9X3YGV84o+YrmLksZ0tuUzfFltKafrWDvU/24y+L85yC42GwMAIMGDeL777/n5ZdfpkaNGnzxxRfs2rWLdevW0a5dOwDat2/Pxo0bHab+SE5OpkmTJiQnJzN69GgMBgPvv/8+FouF/fv3ExwcnO8MxTX1mBBCCCGEKJwSORsDwJdffsnYsWNZtGgR8fHxNGzYkFWrVtkL3bz4+vqyYcMGXn75ZSZNmoTVaqV9+/Z88MEHBSp0hRBCCCFE6eFyPbuuQHp2hRBCCCFcW37rNeefS1AIIYQQQojbRIpdIYQQQghRakmxK4QQQgghSi0pdoUQQgghRKklxa4QQgghhCi1XG7qMVeQPUFFUlKSk5MIIYQQQojcZNdpN5tYTIrdXCQnJwPYz9gmhBBCCCFcU3JyMv7+/nkul3l2c2G1Wjl//jy+vr5omnbbby8pKYlKlSpx9uxZmde3EOT4FZ0cw6KR41d0cgyLRo5f0ckxLBpnHD+lFMnJyYSFhaHT5T0yV3p2c6HT6ahYsWKx366fn5+8wIpAjl/RyTEsGjl+RSfHsGjk+BWdHMOiKe7jd6Me3WzyBTUhhBBCCFFqSbErhBBCCCFKLSl2XYDRaGTcuHEYjUZnRymR5PgVnRzDopHjV3RyDItGjl/RyTEsGlc+fvIFNSGEEEIIUWpJz64QQgghhCi1pNgVQgghhBCllhS7QgghhBCi1JJiVwghhBBClFpS7DrJ7t27eeGFF6hXrx7e3t5UrlyZQYMGcezYMWdHK7EmT56MpmnUr1/f2VFKlL1799KnTx8CAwPx8vKifv36fPTRR86OVSIcP36cBx98kIoVK+Ll5UWdOnWYOHEiaWlpzo7mclJSUhg3bhzdu3cnMDAQTdNYuHBhruv+/fffdO/eHR8fHwIDA3n00Ue5dOlS8QZ2Qfk5hlarlYULF9KnTx8qVaqEt7c39evXZ9KkSWRkZDgnuIsoyHMwW1ZWFnXr1kXTNKZPn148QV1YQY6h1Wrlk08+oXHjxnh6elK2bFk6duzIgQMHijc0cgY1p3n33XfZunUrAwcOpGHDhly4cIGPP/6Ypk2bsmPHDinYCujcuXNMmTIFb29vZ0cpUdasWUPv3r1p0qQJY8eOxcfHhxMnTnDu3DlnR3N5Z8+epWXLlvj7+/PCCy8QGBjI9u3bGTduHH/88Qc//PCDsyO6lLi4OCZOnEjlypVp1KgRGzZsyHW9c+fO0a5dO/z9/ZkyZQopKSlMnz6dP//8k127duHu7l68wV1Ifo5hWloajz/+OHfffTfPPvssISEh9uflunXrWL9+PZqmFX94F5Df5+C1Zs6cyZkzZ25/uBKiIMfwiSeeYPHixQwdOpQXXniB1NRU9u3bR2xsbPEFzqaEU2zdulWZTCaHtmPHjimj0agefvhhJ6UquQYPHqw6duyoIiIiVL169Zwdp0RITExU5cqVU/3791cWi8XZcUqcyZMnK0D99ddfDu1Dhw5VgLpy5YqTkrmmjIwMFRMTo5RSavfu3QpQCxYsyLHec889pzw9PdXp06ftbWvXrlWAmjt3bnHFdUn5OYYmk0lt3bo1x7YTJkxQgFq7dm1xRHVJ+X0OZrt48aLy9/dXEydOVICaNm1aMSV1Xfk9hkuXLlWA+u6774o5Ye5kGIOTtG7dOkcPRc2aNalXrx5///23k1KVTJs2bSIyMpIPP/zQ2VFKlK+//pqLFy8yefJkdDodqampWK1WZ8cqMZKSkgAoV66cQ3toaCg6ne6O7oHMjdFopHz58jdd79tvv+W+++6jcuXK9rbOnTtTq1Ytli1bdjsjurz8HEN3d3dat26do71///4Ad/T/l/w+B7O9+eab1K5dm0ceeeQ2pipZ8nsM33//fVq2bEn//v2xWq2kpqYWQ7q8SbHrQpRSXLx4kaCgIGdHKTEsFgsjR47kqaeeokGDBs6OU6L89ttv+Pn5ER0dTe3atfHx8cHPz4/nnnvujh/blx/t27cH4Mknn2T//v2cPXuWpUuX8sknnzBq1CgZUlMI0dHRxMbG0rx58xzLWrZsyb59+5yQqnS4cOECgPx/yaddu3bxxRdf8OGHH96xwz4KKykpiV27dtGiRQv+85//4O/vj4+PD9WqVXPaG1YZs+tCFi9eTHR0NBMnTnR2lBJjzpw5nD59mt9++83ZUUqc48ePYzab6du3L08++SRTp05lw4YNzJw5k4SEBL755htnR3Rp3bt355133mHKlCmsXLnS3v7WW28xadIkJyYruWJiYgBb7/j1QkNDuXLlCiaTySVPR+rq3nvvPfz8/OjRo4ezo7g8pRQjR45k8ODB3HPPPURFRTk7Uoly4sQJlFIsWbIENzc33nvvPfz9/ZkxYwYPPvggfn5+dO/evVgzSbHrIo4cOcLzzz/PPffcw2OPPebsOCXC5cuXefvttxk7dizBwcHOjlPipKSkkJaWxrPPPmuffeH+++8nMzOTuXPnMnHiRGrWrOnklK6tatWqtGvXjgceeICyZcvy008/MWXKFMqXL88LL7zg7HglTnp6OkCuxayHh4d9HSl2C2bKlCn89ttvzJ49m4CAAGfHcXkLFy7kzz//JDIy0tlRSqSUlBTA9j96x44dtGrVCoA+ffoQHh7OpEmTpNi9E124cIFevXrh7+9PZGQker3e2ZFKhP/+978EBgYycuRIZ0cpkTw9PQF46KGHHNqHDBnC3Llz2b59uxS7N7BkyRKGDx/OsWPHqFixImB7s2C1WnnjjTd46KGHKFu2rJNTlizZz0mTyZRjWfbQmux1RP4sXbqU//73vzz55JM899xzzo7j8pKSkhgzZgyvvfYalSpVcnacEin7NRoeHm4vdAF8fHzo3bs3X331FWazGTe34itBZcyukyUmJtKjRw8SEhL45ZdfCAsLc3akEuH48ePMmzePUaNGcf78eaKiooiKiiIjI4OsrCyioqK4cuWKs2O6tOzn2vVfsAoJCQEgPj6+2DOVJLNnz6ZJkyb2Qjdbnz59SEtLk/GlhZA9fCF7OMO1YmJiCAwMlF7dAli7di1Dhw6lV69ezJkzx9lxSoTp06eTmZnJ4MGD7f9XsqdijI+PJyoqiszMTCendG15/W8B2/+XrKysYv/CmhS7TpSRkUHv3r05duwYq1atom7dus6OVGJER0djtVoZNWoU4eHh9svOnTs5duwY4eHhMvb5Jpo1awbYjuW1zp8/DyBDQ27i4sWLWCyWHO1ZWVkAmM3m4o5U4lWoUIHg4GD27NmTY9muXbto3Lhx8YcqoXbu3En//v1p3rw5y5YtK9ZetJLszJkzxMfHU69ePfv/lbZt2wK24SDh4eEcPnzYySldW1hYGOXLl8/xvwVs/188PDzw9fUt1kzy7HcSi8XC4MGD2b59Oz/88AP33HOPsyOVKPXr1+f777/P0f7f//6X5ORkZsyYQfXq1Z2QrOQYNGgQ//d//8f8+fPp2LGjvf2zzz7Dzc3NPtuAyF2tWrVYs2YNx44do1atWvb2b775Bp1OR8OGDZ2YruR64IEH+OKLLzh79qz9Y+R169Zx7NgxXn75ZSenKxn+/vtvevXqRdWqVVm1apUM/SiAUaNG0a9fP4e22NhYnnnmGYYNG0bfvn0JDw93TrgSZPDgwcyYMYO1a9fSpUsXwHZCih9++IGOHTui0xVvX6sUu07y6quvsnLlSnr37s2VK1f46quvHJbLvH43FhQUlOMPEmCfaze3ZcJRkyZNeOKJJ/j8888xm81ERESwYcMGli9fzpgxY2RIzU289tprrF69mrZt2/LCCy9QtmxZVq1axerVq3nqqafk+OXi448/JiEhwf7pwY8//mj/iHjkyJH4+/vzn//8h+XLl9OhQwdefPFFUlJSmDZtGg0aNODxxx93ZnyXcLNjqNPp6NatG/Hx8bz22mv89NNPDttXr179ju5cudnxa9q0KU2bNnXYJns2hnr16sn/FvL3Oh4zZgzLli3jgQce4JVXXsHf3585c+aQlZXFlClTij+0k09qcceKiIhQQJ4XUThyBrWCyczMVOPHj1dVqlRRBoNB1ahRQ33wwQfOjlVi7Ny5U/Xo0UOVL19eGQwGVatWLTV58mSVlZXl7GguqUqVKnn+zTt16pR9vb/++kt17dpVeXl5qYCAAPXwww+rCxcuOC+4C7nZMTx16tQN/7c89thjzr4LTpXf5+C1so+pnEHNJr/H8MSJE6p///7Kz89PeXp6qo4dO6pdu3Y5JbOmlFK3sZYWQgghhBDCaeQLakIIIYQQotSSYlcIIYQQQpRaUuwKIYQQQohSS4pdIYQQQghRakmxK4QQQgghSi0pdoUQQgghRKklxa4QQgghhCi1pNgVQgghhBCllhS7Qog72rBhw6hataqzY5R6u3btwt3dndOnTzstw4MPPsigQYOcdvtCCOeQYlcIUepompavy4YNG5wd9aZmz57NwoULnR2jyN566y0eeughqlSp4rQMb7zxBt9++y0HDhxwWgYhRPGT0wULIUqdr776yuH6l19+ydq1a1m0aJFDe5cuXQgMDMRqtWI0GoszYr7Vr1+foKCgElGY52X//v00adKEbdu2cc899zg1S6tWrahduzZffvmlU3MIIYqPm7MDCCHErfbII484XN+xYwdr167N0S6Kx4IFC6hcuTJ33323s6MwaNAgxo0bx+zZs/Hx8XF2HCFEMZBhDEKIO9r1Y3ajoqLQNI3p06cza9YsqlWrhpeXF127duXs2bMopXjnnXeoWLEinp6e9O3blytXruTY7+rVq2nbti3e3t74+vrSq1cvDh065LDOhQsXePzxx6lYsSJGo5HQ0FD69u1LVFQUAFWrVuXQoUNs3LjRPvSiffv2AFy5coXRo0fToEEDfHx88PPzo0ePHjk+ot+wYQOaprFs2TImTJhAhQoV8PX1ZcCAASQmJmIymXjppZcICQnBx8eHxx9/HJPJ5LAPTdN44YUXWLx4MbVr18bDw4NmzZqxadOmfB3jFStW0LFjRzRNc2jfs2cP3bp1IygoCE9PT8LDw3niiScc1rFarXz44YfUq1cPDw8PypUrxzPPPEN8fHyuxzwiIgJfX1/8/Pxo0aIFX3/9tcM6Xbp0ITU1lbVr1+YruxCi5JOeXSGEyMXixYvJzMxk5MiRXLlyhffee49BgwbRsWNHNmzYwBtvvME///zDzJkzGT16NJ9//rl920WLFvHYY4/RrVs33n33XdLS0vjkk09o06YN+/btsxfXDzzwAIcOHWLkyJFUrVqV2NhY1q5dy5kzZ6hatSoffvghI0eOxMfHh7feeguAcuXKAXDy5ElWrFjBwIEDCQ8P5+LFi8ydO5eIiAgOHz5MWFiYw/2ZOnUqnp6evPnmm/bcBoMBnU5HfHw848ePZ8eOHSxcuJDw8HDefvtth+03btzI0qVLGTVqFEajkdmzZ9O9e3d27dpF/fr18zyO0dHRnDlzhqZNmzq0x8bG0rVrV4KDg3nzzTcJCAggKiqK7777zmG9Z555hoULF/L4448zatQoTp06xccff8y+ffvYunUrBoMBgIULF/LEE09Qr149xowZQ0BAAPv27eOXX35hyJAh9v3VrVsXT09Ptm7dSv/+/fPzVBBClHRKCCFKueeff17l9efuscceU1WqVLFfP3XqlAJUcHCwSkhIsLePGTNGAapRo0YqKyvL3v7QQw8pd3d3lZGRoZRSKjk5WQUEBKinn37a4XYuXLig/P397e3x8fEKUNOmTbth9nr16qmIiIgc7RkZGcpisTi0nTp1ShmNRjVx4kR72++//64AVb9+fZWZmemQW9M01aNHD4d93HPPPQ7HQymlAAWoPXv22NtOnz6tPDw8VP/+/W+Y/7ffflOA+vHHHx3av//+ewWo3bt357nt5s2bFaAWL17s0P7LL784tCckJChfX1/VqlUrlZ6e7rCu1WrNsd9atWrluN9CiNJLhjEIIUQuBg4ciL+/v/16q1atANt4YDc3N4f2zMxMoqOjAVi7di0JCQk89NBDxMXF2S96vZ5WrVrx+++/A+Dp6Ym7uzsbNmzI9SP5mzEajeh0tj/hFouFy5cv4+PjQ+3atdm7d2+O9YcOHWrvBc3OrZTKMWygVatWnD17FrPZ7NB+zz330KxZM/v1ypUr07dvX3799VcsFkueOS9fvgxAmTJlHNoDAgIAWLVqFVlZWbluu3z5cvz9/enSpYvDsWzWrBk+Pj72Y7l27VqSk5N588038fDwcNjH9UMnsrPExcXlmVkIUbpIsSuEELmoXLmyw/XswrdSpUq5tmcXrMePHwegY8eOBAcHO1zWrFlDbGwsYCtW3333XVavXk25cuVo164d7733HhcuXMhXPqvVygcffEDNmjUxGo0EBQURHBzMwYMHSUxMLNL9sVqtOfZRs2bNHPusVasWaWlpXLp06aZ51XUT/0RERPDAAw8wYcIEgoKC/r+9+wmJ4g/jOP7eXA9Zu9Efh1CCaj0sEmErhbmFpLVCVFKJmNXBTejQxfASgoFt7S6FRLBkEVEiK2srWIQH6c8tkogwig4uEerJk4YlBma/Qzi0rW2/asV+8/u8jjPf+c7z/Z4ennlmhqqqKm7dupXUL5xIJHj//j2GYaTs5YcPH8y9fPv2LUDadorvY5kvCRYRa1LProjIPLKysn7p+FwyNzs7C3zt2127dm3KuG+rwo2Njezfv5+7d+/S399PS0sLoVCIx48fs2XLlrTxBYNBWlpa8Pv9BAIBVq1axZIlS2hsbDRjyMR6/tTq1asBUqrXNpuNnp4eBgYGuH//Pv39/fj9ftra2hgYGGD58uXMzs5iGAbRaHTeuXNzc38rpvHx8XmTdxGxJiW7IiIZ5HK5ADAMg927d/+r8U1NTTQ1NZFIJCgqKqKtrc38VvCPKpA9PT3s2rWLmzdvJh2fmJhgzZo1f7iKVHMV628NDQ2Rk5OTNul0u90AvHv3bt7zJSUllJSUcOHCBbq6ujh69CixWIyGhgZcLhcPHz7E6/WydOnSH95jbs9fv35NQUFB2nXMzMwwOjrKgQMH0o4TEetQG4OISAZVVlbidDoJBoPz9qLOPfKfmppieno66ZzL5cLhcCQ9yl+2bBkTExMp82RlZaVUX+PxuNk7nGlPnz5N6gUeHR3l3r17+Hy+H1aHAfLz81m3bh3Pnz9POj4+Pp4Sf1FREYC5/pqaGj5//kwgEEiZd2ZmxtwXn8+Hw+EgFAql7On393jz5g3T09OUlpamX7CIWIYquyIiGeR0Omlvb+f48eN4PB5qa2vJzc1lZGSEvr4+vF4vkUiEoaEhKioqqKmpobCwELvdTm9vL2NjY9TW1przFRcX097ezvnz5ykoKMAwDMrLy9m3bx/nzp2jvr6e0tJSXr16RTQaZePGjQuyrk2bNlFZWZn06TGA1tbWn15bVVVFb29vUq9sR0cHV69e5eDBg7hcLiYnJ7lx4wZOp5O9e/cCX/t6T548SSgUYnBwEJ/PR3Z2NolEgng8zpUrV6iursbpdHL58mUaGhrYunUrdXV1rFy5kpcvXzI1NUVHR4cZy4MHD8jJyWHPnj0LsEsi8jdSsisikmF1dXXk5eURDoe5dOkSnz59Ij8/n507d1JfXw98fTHsyJEjPHr0iM7OTux2O263mzt37nD48GFzrrNnzzI8PMzFixeZnJykrKyM8vJympub+fjxI11dXXR3d+PxeOjr6+PMmTMLsqaysjK2b99Oa2srIyMjFBYWcvv2bTZv3vzTa/1+P5FIhCdPnrBjxw5zvmfPnhGLxRgbG2PFihVs27aNaDTKhg0bzGuvXbtGcXEx169fp7m5Gbvdzvr16zl27Bher9ccd+LECQzDIBwOEwgEyM7Oxu12c/r06aRY4vE4hw4dwuFwZGhnRORvZ/uSqbcQRETEkmw2G6dOnSISifz2HBUVFeTl5dHZ2ZnByH7N4OAgHo+HFy9emC0TImJ96tkVEZEFFwwG6e7uZnh4eNFiCIfDVFdXK9EV+Z9RG4OIiCy4uZ9vLKZYLLao9xeRxaHKroiIiIhYliq7IiKSll7tEJH/MlV2RURERMSylOyKiIiIiGUp2RURERERy1KyKyIiIiKWpWRXRERERCxLya6IiIiIWJaSXRERERGxLCW7IiIiImJZSnZFRERExLL+AWDQQZMua2MDAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.figure()\n", - "plt.rcParams.update({'font.size': 12})\n", - "ax = final_df.query(\"ts > 1\")[[\"c read\", \"sys read\", \"os_cache mark_page_accessed\", \"vfs rw_verify_area\"]].plot(figsize=(8,4),marker='x');\n", - "ax.set_xlabel(\"Timestamp (sec)\")\n", - "ax.set_ylabel(\"Time (sec)\")" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "c read 14.954187\n", - "sys read 14.917816\n", - "os_cache mark_page_accessed 0.003194\n", - "vfs rw_verify_area 14.911553\n", - "dtype: double[pyarrow]" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "final_df[[\"c read\", \"sys read\", \"os_cache mark_page_accessed\",\"vfs rw_verify_area\"]].sum()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pidtidts_usdur_secfreqsize_bytesfunc_idfilenamecat
859378183781800.082555112015<NA>ext4_da_write_begin<NA>ext4
936378183781800.00009930<NA>write<NA>c
1425378183781800.00006530240write<NA>sys
2491378183781800.002582437<NA>write<NA>c
2607378183781800.001801437458227712write/home/cc/dfprofiler/build/data/file_0_0.datsys
..............................
55853781837818270000000.1454480467<NA>ext4_da_write_end<NA>ext4
55883781837818270000000.000016371write<NA>sys
55903781837818270000000.00197315<NA>write<NA>c
56023781837818270000000.0678980467<NA>ext4_da_write_begin<NA>ext4
56103781837818270000000.000023<NA>write<NA>c
\n", - "

164 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " pid tid ts_us dur_sec freq size_bytes \\\n", - "859 37818 37818 0 0.082555 112015 \n", - "936 37818 37818 0 0.000099 30 \n", - "1425 37818 37818 0 0.000065 30 240 \n", - "2491 37818 37818 0 0.002582 437 \n", - "2607 37818 37818 0 0.001801 437 458227712 \n", - "... ... ... ... ... ... ... \n", - "5585 37818 37818 27000000 0.14544 80467 \n", - "5588 37818 37818 27000000 0.000016 3 71 \n", - "5590 37818 37818 27000000 0.00197 315 \n", - "5602 37818 37818 27000000 0.06789 80467 \n", - "5610 37818 37818 27000000 0.00002 3 \n", - "\n", - " func_id filename cat \n", - "859 ext4_da_write_begin ext4 \n", - "936 write c \n", - "1425 write sys \n", - "2491 write c \n", - "2607 write /home/cc/dfprofiler/build/data/file_0_0.dat sys \n", - "... ... ... ... \n", - "5585 ext4_da_write_end ext4 \n", - "5588 write sys \n", - "5590 write c \n", - "5602 ext4_da_write_begin ext4 \n", - "5610 write c \n", - "\n", - "[164 rows x 9 columns]" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.query(\"func_id.str.contains('write')\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "np.float64(31.676917175762355)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "total_io = events[\"size_bytes\"].sum().compute() / (1024**3)\n", - "total_io" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-07-22 01:24:23,458 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 9400d42321dba2557730a45dee920254 initialized by task ('shuffle-transfer-9400d42321dba2557730a45dee920254', 0) executed on worker tcp://127.0.0.1:40747\n", - "2024-07-22 01:24:23,932 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 9400d42321dba2557730a45dee920254 deactivated due to stimulus 'task-finished-1721611463.9289641'\n", - "2024-07-22 01:24:24,677 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle a7bbad67b47d71bd4cb36976c19a97a4 initialized by task ('shuffle-transfer-a7bbad67b47d71bd4cb36976c19a97a4', 0) executed on worker tcp://127.0.0.1:40747\n", - "2024-07-22 01:24:25,071 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle a7bbad67b47d71bd4cb36976c19a97a4 deactivated due to stimulus 'task-finished-1721611465.0678325'\n", - "2024-07-22 01:24:25,193 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 1a5a179e368417d8ea2ef928c4c79562 initialized by task ('shuffle-transfer-1a5a179e368417d8ea2ef928c4c79562', 0) executed on worker tcp://127.0.0.1:40747\n", - "2024-07-22 01:24:25,246 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 1a5a179e368417d8ea2ef928c4c79562 deactivated due to stimulus 'task-finished-1721611465.244113'\n", - "2024-07-22 01:24:25,366 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 6683756322d2e2bf9a7ae4dfb831bbe8 initialized by task ('shuffle-transfer-6683756322d2e2bf9a7ae4dfb831bbe8', 0) executed on worker tcp://127.0.0.1:40747\n", - "2024-07-22 01:24:25,761 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 6683756322d2e2bf9a7ae4dfb831bbe8 deactivated due to stimulus 'task-finished-1721611465.7567058'\n" - ] - }, - { - "data": { - "text/plain": [ - "0 /sys/devices/system/cpu/cpu15/cpufreq/cpuinfo_...\n", - "1 /sys/bus/pci/devices/0000:85:0f.7/config\n", - "2 /sys/devices/system/cpu/cpu12/cache/index0/size\n", - "3 /sys/devices/system/cpu/cpu17/topology/die_cpus\n", - "4 /sys/bus/pci/devices/0000:85:11.2/config\n", - " ... \n", - "1922 /sys/bus/pci/devices/0000:00:11.5/current_link...\n", - "1923 /sys/devices/system/cpu/cpu18/cache/index5/sha...\n", - "1924 /home/cc/spack/opt/spack/linux-ubuntu22.04-sky...\n", - "1925 /sys/devices/system/cpu/cpu32/cache/index4/sha...\n", - "1926 /tmp/ompi.ebpf.1000/jf.0/2967207936\n", - "Name: filename, Length: 1927, dtype: string" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "filenames = events[\"filename\"].unique().compute()\n", - "filenames" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(1.675211951136589, 35457.0)" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "read_write_time = events.query(\"size_bytes > 0\").groupby([\"pid\",\"tid\", \"ts_us\"])[[\"freq\",\"dur_sec\"]].sum().groupby([\"ts_us\"]).agg({\"freq\":sum,\"dur_sec\":max}).sum().compute()\n", - "read_write_time[\"dur_sec\"], read_write_time[\"freq\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Bandwidth is 18.909199611589667 GB/s\n" - ] - } - ], - "source": [ - "print(\"Bandwidth is {} GB/s\".format(total_io / read_write_time['dur_sec']))" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pidtidts_usdur_secfreqsize_bytesfunc_idfilenamecat
55473781837818260000000.001643379397410304write/home/cc/dfprofiler/build/data/file_0_0.datsys
55483781837818260000000.000698379<NA>lseek64<NA>c
55493781837818260000000.08135396986<NA>ext4_da_write_begin<NA>ext4
55503781837818260000000.04046797000<NA>ext4_da_reserve_space<NA>ext4
55513781837818260000000.037071379397410304read/home/cc/dfprofiler/build/data/file_0_0.datsys
55523781837818260000000.05310997006<NA>mark_buffer_dirty<NA>os_cache
55533781837818260000000.0787997014<NA>mark_buffer_dirty<NA>block
55543781837818260000000.000483758<NA>rw_verify_area<NA>vfs
55553781837818260000000.17326397020<NA>ext4_da_write_end<NA>ext4
55563781837818260000000.001427379<NA>mark_buffer_dirty<NA>vfs
55573781837818260000000.037668379<NA>read<NA>c
55583781837818260000000.000238379<NA>lseek<NA>sys
55593781837818260000000.000795379<NA>lseek<NA>c
55603781837818260000000.002336379<NA>write<NA>c
55613781837818260000000.000904379<NA>ext4_file_write_iter<NA>ext4
55623781837818260000000.036838379<NA>rw_verify_area<NA>vfs
55633781837818260000000.000845189198180864write/home/cc/dfprofiler/build/data/file_0_0.datsys
55643781837818260000000.000339188<NA>lseek64<NA>c
55653781837818260000000.04051248231<NA>ext4_da_write_begin<NA>ext4
55663781837818260000000.02011448181<NA>ext4_da_reserve_space<NA>ext4
55673781837818260000000.018482188197132288read/home/cc/dfprofiler/build/data/file_0_0.datsys
55683781837818260000000.02626248083<NA>mark_buffer_dirty<NA>os_cache
55693781837818260000000.03906148045<NA>mark_buffer_dirty<NA>block
55703781837818260000000.000233374<NA>rw_verify_area<NA>vfs
55713781837818260000000.08619847948<NA>ext4_da_write_end<NA>ext4
55723781837818260000000.000724187<NA>mark_buffer_dirty<NA>vfs
55733781837818260000000.018684187<NA>read<NA>c
55743781837818260000000.000116187<NA>lseek<NA>sys
55753781837818260000000.000382186<NA>lseek<NA>c
55763781837818260000000.001176186<NA>write<NA>c
55773781837818260000000.000443186<NA>ext4_file_write_iter<NA>ext4
55783781837818260000000.018155186<NA>rw_verify_area<NA>vfs
\n", - "
" - ], - "text/plain": [ - " pid tid ts_us dur_sec freq size_bytes \\\n", - "5547 37818 37818 26000000 0.001643 379 397410304 \n", - "5548 37818 37818 26000000 0.000698 379 \n", - "5549 37818 37818 26000000 0.081353 96986 \n", - "5550 37818 37818 26000000 0.040467 97000 \n", - "5551 37818 37818 26000000 0.037071 379 397410304 \n", - "5552 37818 37818 26000000 0.053109 97006 \n", - "5553 37818 37818 26000000 0.07879 97014 \n", - "5554 37818 37818 26000000 0.000483 758 \n", - "5555 37818 37818 26000000 0.173263 97020 \n", - "5556 37818 37818 26000000 0.001427 379 \n", - "5557 37818 37818 26000000 0.037668 379 \n", - "5558 37818 37818 26000000 0.000238 379 \n", - "5559 37818 37818 26000000 0.000795 379 \n", - "5560 37818 37818 26000000 0.002336 379 \n", - "5561 37818 37818 26000000 0.000904 379 \n", - "5562 37818 37818 26000000 0.036838 379 \n", - "5563 37818 37818 26000000 0.000845 189 198180864 \n", - "5564 37818 37818 26000000 0.000339 188 \n", - "5565 37818 37818 26000000 0.040512 48231 \n", - "5566 37818 37818 26000000 0.020114 48181 \n", - "5567 37818 37818 26000000 0.018482 188 197132288 \n", - "5568 37818 37818 26000000 0.026262 48083 \n", - "5569 37818 37818 26000000 0.039061 48045 \n", - "5570 37818 37818 26000000 0.000233 374 \n", - "5571 37818 37818 26000000 0.086198 47948 \n", - "5572 37818 37818 26000000 0.000724 187 \n", - "5573 37818 37818 26000000 0.018684 187 \n", - "5574 37818 37818 26000000 0.000116 187 \n", - "5575 37818 37818 26000000 0.000382 186 \n", - "5576 37818 37818 26000000 0.001176 186 \n", - "5577 37818 37818 26000000 0.000443 186 \n", - "5578 37818 37818 26000000 0.018155 186 \n", - "\n", - " func_id filename \\\n", - "5547 write /home/cc/dfprofiler/build/data/file_0_0.dat \n", - "5548 lseek64 \n", - "5549 ext4_da_write_begin \n", - "5550 ext4_da_reserve_space \n", - "5551 read /home/cc/dfprofiler/build/data/file_0_0.dat \n", - "5552 mark_buffer_dirty \n", - "5553 mark_buffer_dirty \n", - "5554 rw_verify_area \n", - "5555 ext4_da_write_end \n", - "5556 mark_buffer_dirty \n", - "5557 read \n", - "5558 lseek \n", - "5559 lseek \n", - "5560 write \n", - "5561 ext4_file_write_iter \n", - "5562 rw_verify_area \n", - "5563 write /home/cc/dfprofiler/build/data/file_0_0.dat \n", - "5564 lseek64 \n", - "5565 ext4_da_write_begin \n", - "5566 ext4_da_reserve_space \n", - "5567 read /home/cc/dfprofiler/build/data/file_0_0.dat \n", - "5568 mark_buffer_dirty \n", - "5569 mark_buffer_dirty \n", - "5570 rw_verify_area \n", - "5571 ext4_da_write_end \n", - "5572 mark_buffer_dirty \n", - "5573 read \n", - "5574 lseek \n", - "5575 lseek \n", - "5576 write \n", - "5577 ext4_file_write_iter \n", - "5578 rw_verify_area \n", - "\n", - " cat \n", - "5547 sys \n", - "5548 c \n", - "5549 ext4 \n", - "5550 ext4 \n", - "5551 sys \n", - "5552 os_cache \n", - "5553 block \n", - "5554 vfs \n", - "5555 ext4 \n", - "5556 vfs \n", - "5557 c \n", - "5558 sys \n", - "5559 c \n", - "5560 c \n", - "5561 ext4 \n", - "5562 vfs \n", - "5563 sys \n", - "5564 c \n", - "5565 ext4 \n", - "5566 ext4 \n", - "5567 sys \n", - "5568 os_cache \n", - "5569 block \n", - "5570 vfs \n", - "5571 ext4 \n", - "5572 vfs \n", - "5573 c \n", - "5574 sys \n", - "5575 c \n", - "5576 c \n", - "5577 ext4 \n", - "5578 vfs " - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.query(\"ts_us == 26000000\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pidtidts_usdur_secfreqsize_bytesfunc_idfilenamecat
1378183781800.000013164read/sys/bus/pci/devices/0000:85:0f.7/configsys
3378183781800.00000218read/sys/devices/system/cpu/cpu15/cpufreq/cpuinfo_...sys
5378183781800.000013164read/sys/bus/pci/devices/0000:85:11.2/configsys
13378183781800.00000219read/sys/bus/pci/devices/0000:01:00.1/classsys
16378183781800.000009164read/sys/bus/pci/devices/0000:00:05.2/configsys
..............................
55573781837818260000000.037668379<NA>read<NA>c
55673781837818260000000.018482188197132288read/home/cc/dfprofiler/build/data/file_0_0.datsys
55733781837818260000000.018684187<NA>read<NA>c
55793781837818270000000.031017315330301440read/home/cc/dfprofiler/build/data/file_0_0.datsys
56013781837818270000000.031514315<NA>read<NA>c
\n", - "

1610 rows × 9 columns

\n", - "
" - ], - "text/plain": [ - " pid tid ts_us dur_sec freq size_bytes func_id \\\n", - "1 37818 37818 0 0.000013 1 64 read \n", - "3 37818 37818 0 0.000002 1 8 read \n", - "5 37818 37818 0 0.000013 1 64 read \n", - "13 37818 37818 0 0.000002 1 9 read \n", - "16 37818 37818 0 0.000009 1 64 read \n", - "... ... ... ... ... ... ... ... \n", - "5557 37818 37818 26000000 0.037668 379 read \n", - "5567 37818 37818 26000000 0.018482 188 197132288 read \n", - "5573 37818 37818 26000000 0.018684 187 read \n", - "5579 37818 37818 27000000 0.031017 315 330301440 read \n", - "5601 37818 37818 27000000 0.031514 315 read \n", - "\n", - " filename cat \n", - "1 /sys/bus/pci/devices/0000:85:0f.7/config sys \n", - "3 /sys/devices/system/cpu/cpu15/cpufreq/cpuinfo_... sys \n", - "5 /sys/bus/pci/devices/0000:85:11.2/config sys \n", - "13 /sys/bus/pci/devices/0000:01:00.1/class sys \n", - "16 /sys/bus/pci/devices/0000:00:05.2/config sys \n", - "... ... ... \n", - "5557 c \n", - "5567 /home/cc/dfprofiler/build/data/file_0_0.dat sys \n", - "5573 c \n", - "5579 /home/cc/dfprofiler/build/data/file_0_0.dat sys \n", - "5601 c \n", - "\n", - "[1610 rows x 9 columns]" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.query(\"func_id.str.contains('read')\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pidtidts_usdur_secfreqsize_bytesfunc_idfilenamecat
55153781837818240000000.081968147784<NA>mark_buffer_dirty<NA>os_cache
55163781837818240000000.058051577<NA>read<NA>c
55173781837818240000000.001194577<NA>lseek<NA>c
55183781837818240000000.003649578<NA>write<NA>c
55193781837818240000000.000367577<NA>lseek<NA>sys
55203781837818240000000.001403578<NA>ext4_file_write_iter<NA>ext4
55213781837818240000000.125021147783<NA>ext4_da_write_begin<NA>ext4
55223781837818240000000.062439147783<NA>ext4_da_reserve_space<NA>ext4
55233781837818240000000.001049577<NA>lseek64<NA>c
55243781837818240000000.002207578<NA>mark_buffer_dirty<NA>vfs
55253781837818240000000.056767577<NA>rw_verify_area<NA>vfs
55263781837818240000000.12207147784<NA>mark_buffer_dirty<NA>block
55273781837818240000000.057129577605028352read/home/cc/dfprofiler/build/data/file_0_0.datsys
55283781837818240000000.0007541154<NA>rw_verify_area<NA>vfs
55293781837818240000000.002554578606076928write/home/cc/dfprofiler/build/data/file_0_0.datsys
55303781837818240000000.268658147784<NA>ext4_da_write_end<NA>ext4
\n", - "
" - ], - "text/plain": [ - " pid tid ts_us dur_sec freq size_bytes \\\n", - "5515 37818 37818 24000000 0.081968 147784 \n", - "5516 37818 37818 24000000 0.058051 577 \n", - "5517 37818 37818 24000000 0.001194 577 \n", - "5518 37818 37818 24000000 0.003649 578 \n", - "5519 37818 37818 24000000 0.000367 577 \n", - "5520 37818 37818 24000000 0.001403 578 \n", - "5521 37818 37818 24000000 0.125021 147783 \n", - "5522 37818 37818 24000000 0.062439 147783 \n", - "5523 37818 37818 24000000 0.001049 577 \n", - "5524 37818 37818 24000000 0.002207 578 \n", - "5525 37818 37818 24000000 0.056767 577 \n", - "5526 37818 37818 24000000 0.12207 147784 \n", - "5527 37818 37818 24000000 0.057129 577 605028352 \n", - "5528 37818 37818 24000000 0.000754 1154 \n", - "5529 37818 37818 24000000 0.002554 578 606076928 \n", - "5530 37818 37818 24000000 0.268658 147784 \n", - "\n", - " func_id filename \\\n", - "5515 mark_buffer_dirty \n", - "5516 read \n", - "5517 lseek \n", - "5518 write \n", - "5519 lseek \n", - "5520 ext4_file_write_iter \n", - "5521 ext4_da_write_begin \n", - "5522 ext4_da_reserve_space \n", - "5523 lseek64 \n", - "5524 mark_buffer_dirty \n", - "5525 rw_verify_area \n", - "5526 mark_buffer_dirty \n", - "5527 read /home/cc/dfprofiler/build/data/file_0_0.dat \n", - "5528 rw_verify_area \n", - "5529 write /home/cc/dfprofiler/build/data/file_0_0.dat \n", - "5530 ext4_da_write_end \n", - "\n", - " cat \n", - "5515 os_cache \n", - "5516 c \n", - "5517 c \n", - "5518 c \n", - "5519 sys \n", - "5520 ext4 \n", - "5521 ext4 \n", - "5522 ext4 \n", - "5523 c \n", - "5524 vfs \n", - "5525 vfs \n", - "5526 block \n", - "5527 sys \n", - "5528 vfs \n", - "5529 sys \n", - "5530 ext4 " - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.query(\"ts_us == 24000000\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 close\n", - "1 read\n", - "2 openat\n", - "3 vfs_open\n", - "4 vfs_statfs.part.0.isra.0\n", - "5 open64\n", - "6 statfs\n", - "7 mark_buffer_dirty\n", - "8 ext4_file_open\n", - "9 open\n", - "10 vfs_unlink\n", - "11 ext4_da_write_begin\n", - "12 write\n", - "13 malloc\n", - "14 ext4_da_reserve_space\n", - "15 shm_open\n", - "16 fcntl\n", - "17 realloc\n", - "18 vfs_statx\n", - "19 fileno\n", - "20 mmap64\n", - "21 vfs_getattr_nosec\n", - "22 lseek\n", - "23 calloc\n", - "24 PMPI_Comm_size\n", - "25 rw_verify_area\n", - "26 PMPI_Init\n", - "27 _Z10gen_randomB5cxx11i\n", - "28 fdopen\n", - "29 posix_memalign\n", - "30 vfs_readlink\n", - "31 ext4_file_write_iter\n", - "32 free\n", - "33 munmap\n", - "34 _init\n", - "35 mark_page_accessed\n", - "36 readlinkat\n", - "37 fileno_unlocked\n", - "38 mmap\n", - "39 ext4_da_write_end\n", - "40 lseek64\n", - "41 shm_unlink\n", - "42 PMPI_Comm_rank\n", - "43 ftruncate\n", - "44 main\n", - "45 _fini\n", - "46 PMPI_Finalize\n", - "47 PMPI_Reduce\n", - "Name: func_id, dtype: string" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events[\"func_id\"].unique().compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 _Z10gen_randomB5cxx11i\n", - "1 _init\n", - "2 main\n", - "3 _fini\n", - "Name: func_id, dtype: string" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.query(\"cat == 'app'\")[\"func_id\"].unique().compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 PMPI_Comm_size\n", - "1 PMPI_Init\n", - "2 PMPI_Comm_rank\n", - "3 PMPI_Finalize\n", - "4 PMPI_Reduce\n", - "Name: func_id, dtype: string" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "events.query(\"cat == 'mpi'\")[\"func_id\"].unique().compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
catfunc_idfreqdur_sec
0app_Z10gen_randomB5cxx11i10.018685
1app_fini10.000003
2app_init10.000006
3appmain10.000006
4blockmark_buffer_dirty41526773.251503
5ccalloc34480.009626
6cclose15410.004579
7cfcntl40.000009
8cfdopen20.000009
9cfileno70.000028
10cfileno_unlocked70.000025
11cfree203110.055431
12clseek162130.033272
13clseek64162340.029236
14cmalloc268490.078281
15cmmap40.000029
16cmmap6440.000027
17cmunmap20.000032
18copen150.000091
19copen64150.000085
20cposix_memalign10.000006
21cread191981.634286
22crealloc126970.034448
23cshm_open10.000004
24cshm_unlink10.000004
25cwrite162530.100557
26ext4ext4_da_reserve_space41527701.679127
27ext4ext4_da_write_begin41504763.321167
28ext4ext4_da_write_end41521687.193426
29ext4ext4_file_open80.000007
30ext4ext4_file_write_iter162310.037478
31mpiPMPI_Comm_rank10.000003
32mpiPMPI_Comm_size10.000003
33mpiPMPI_Finalize10.000006
34mpiPMPI_Init10.000006
35mpiPMPI_Reduce40.000053
36os_cachemark_buffer_dirty41546562.143389
37os_cachemark_page_accessed10.000001
38sysclose15670.001399
39sysfcntl260.000013
40sysftruncate10.000005
41syslseek162260.010057
42sysmmap40.00002
43sysopenat19360.004989
44sysread192071.605098
45sysreadlinkat140.000019
46sysstatfs50.00001
47syswrite162500.070114
48vfsext4_file_open80.000012
49vfsmark_buffer_dirty158960.0593
50vfsrw_verify_area546881.614767
51vfsvfs_getattr_nosec1260.000113
52vfsvfs_open15520.001705
53vfsvfs_readlink140.000014
54vfsvfs_statfs.part.0.isra.030.000002
55vfsvfs_statx320.000141
56vfsvfs_unlink10.000002
\n", - "
" - ], - "text/plain": [ - " cat func_id freq dur_sec\n", - "0 app _Z10gen_randomB5cxx11i 1 0.018685\n", - "1 app _fini 1 0.000003\n", - "2 app _init 1 0.000006\n", - "3 app main 1 0.000006\n", - "4 block mark_buffer_dirty 4152677 3.251503\n", - "5 c calloc 3448 0.009626\n", - "6 c close 1541 0.004579\n", - "7 c fcntl 4 0.000009\n", - "8 c fdopen 2 0.000009\n", - "9 c fileno 7 0.000028\n", - "10 c fileno_unlocked 7 0.000025\n", - "11 c free 20311 0.055431\n", - "12 c lseek 16213 0.033272\n", - "13 c lseek64 16234 0.029236\n", - "14 c malloc 26849 0.078281\n", - "15 c mmap 4 0.000029\n", - "16 c mmap64 4 0.000027\n", - "17 c munmap 2 0.000032\n", - "18 c open 15 0.000091\n", - "19 c open64 15 0.000085\n", - "20 c posix_memalign 1 0.000006\n", - "21 c read 19198 1.634286\n", - "22 c realloc 12697 0.034448\n", - "23 c shm_open 1 0.000004\n", - "24 c shm_unlink 1 0.000004\n", - "25 c write 16253 0.100557\n", - "26 ext4 ext4_da_reserve_space 4152770 1.679127\n", - "27 ext4 ext4_da_write_begin 4150476 3.321167\n", - "28 ext4 ext4_da_write_end 4152168 7.193426\n", - "29 ext4 ext4_file_open 8 0.000007\n", - "30 ext4 ext4_file_write_iter 16231 0.037478\n", - "31 mpi PMPI_Comm_rank 1 0.000003\n", - "32 mpi PMPI_Comm_size 1 0.000003\n", - "33 mpi PMPI_Finalize 1 0.000006\n", - "34 mpi PMPI_Init 1 0.000006\n", - "35 mpi PMPI_Reduce 4 0.000053\n", - "36 os_cache mark_buffer_dirty 4154656 2.143389\n", - "37 os_cache mark_page_accessed 1 0.000001\n", - "38 sys close 1567 0.001399\n", - "39 sys fcntl 26 0.000013\n", - "40 sys ftruncate 1 0.000005\n", - "41 sys lseek 16226 0.010057\n", - "42 sys mmap 4 0.00002\n", - "43 sys openat 1936 0.004989\n", - "44 sys read 19207 1.605098\n", - "45 sys readlinkat 14 0.000019\n", - "46 sys statfs 5 0.00001\n", - "47 sys write 16250 0.070114\n", - "48 vfs ext4_file_open 8 0.000012\n", - "49 vfs mark_buffer_dirty 15896 0.0593\n", - "50 vfs rw_verify_area 54688 1.614767\n", - "51 vfs vfs_getattr_nosec 126 0.000113\n", - "52 vfs vfs_open 1552 0.001705\n", - "53 vfs vfs_readlink 14 0.000014\n", - "54 vfs vfs_statfs.part.0.isra.0 3 0.000002\n", - "55 vfs vfs_statx 32 0.000141\n", - "56 vfs vfs_unlink 1 0.000002" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "functions = events.groupby([\"func_id\", \"cat\", \"pid\",\"tid\", \"ts_us\"])[[\"freq\",\"dur_sec\"]].sum().groupby([\"func_id\", \"cat\", \"ts_us\"]).agg({\"freq\":sum,\"dur_sec\":max}).groupby([ \"cat\",\"func_id\"]).sum()\n", - "functions = functions.reset_index()\n", - "functions.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
catfunc_idfreqdur_sec
25cwrite162530.100557
\n", - "
" - ], - "text/plain": [ - " cat func_id freq dur_sec\n", - "25 c write 16253 0.100557" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num_writes = functions.query(\"func_id == 'write' and cat == 'c'\")\n", - "num_writes.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
catfunc_idfreqdur_sec
30ext4ext4_file_write_iter162310.037478
\n", - "
" - ], - "text/plain": [ - " cat func_id freq dur_sec\n", - "30 ext4 ext4_file_write_iter 16231 0.037478" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num_writes_ext4 = functions.query(\"func_id.str.contains('ext4_file_write_iter') and cat == 'ext4'\")\n", - "num_writes_ext4.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
catfunc_idfreqdur_sec
36os_cachemark_buffer_dirty41546562.143389
\n", - "
" - ], - "text/plain": [ - " cat func_id freq dur_sec\n", - "36 os_cache mark_buffer_dirty 4154656 2.143389" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num_writes_os_cache = functions.query(\"func_id.str.contains('mark_buffer_dirty') and cat == 'os_cache'\")\n", - "num_writes_os_cache.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
catfunc_idfreqdur_sec
21cread191981.634286
\n", - "
" - ], - "text/plain": [ - " cat func_id freq dur_sec\n", - "21 c read 19198 1.634286" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num_reads = functions.query(\"func_id == 'read' and cat == 'c'\")\n", - "num_reads.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
catfunc_idfreqdur_sec
\n", - "
" - ], - "text/plain": [ - "Empty DataFrame\n", - "Columns: [cat, func_id, freq, dur_sec]\n", - "Index: []" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num_reads_ext4 = functions.query(\"func_id.str.contains('read') and cat == 'ext4'\")\n", - "num_reads_ext4.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
catfunc_idfreqdur_sec
37os_cachemark_page_accessed10.000001
\n", - "
" - ], - "text/plain": [ - " cat func_id freq dur_sec\n", - "37 os_cache mark_page_accessed 1 0.000001" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "num_writes_os_cache = functions.query(\"func_id.str.contains('mark_page_accessed') and cat == 'os_cache'\")\n", - "num_writes_os_cache.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "min_ts, max_ts = dask.compute(events[\"ts_us\"].min(), events[\"ts_us\"].max())" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Application Time 27.0 seconds\n" - ] - } - ], - "source": [ - "print(f\"Application Time {(max_ts - min_ts) / 1e6} seconds\")" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "np.int64(21039362)" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "total_calls = events.freq.sum().compute()\n", - "total_calls" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "np.int64(55236)" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "system_calls = events.query(\"cat == 'sys'\")[\"freq\"].sum().compute()\n", - "system_calls" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Events captured per system call 380.89944963429645\n" - ] - }, - { - "ename": "", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31mThe Kernel crashed while executing code in the current cell or a previous cell. \n", - "\u001b[1;31mPlease review the code in the cell(s) to identify a possible cause of the failure. \n", - "\u001b[1;31mClick here for more info. \n", - "\u001b[1;31mView Jupyter log for further details." - ] - } - ], - "source": [ - "print(f\"Events captured per system call {total_calls/system_calls}\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/analysis/analysis_dfanalyzer.ipynb b/analysis/analysis_dfanalyzer.ipynb deleted file mode 100644 index 76752e8b..00000000 --- a/analysis/analysis_dfanalyzer.ipynb +++ /dev/null @@ -1,1756 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e44656f6", - "metadata": {}, - "source": [ - "# DataCrumbs Analysis " - ] - }, - { - "cell_type": "markdown", - "id": "72c2c690", - "metadata": {}, - "source": [ - "### Run Analysis" - ] - }, - { - "cell_type": "markdown", - "id": "4bad5fec", - "metadata": {}, - "source": [ - "Finaly, we initialize the DFAnalyzer with the specified configuration and run the trace analysis to generate summarized I/O statistics and views for further exploration." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "a2a121a6", - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2025-07-10 09:35:53,229 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dfanalyzer-haridev/0/dask-worker-space/worker-_pifuahu', purging\n", - "2025-07-10 09:35:53,229 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dfanalyzer-haridev/0/dask-worker-space/worker-qbpq_gad', purging\n", - "2025-07-10 09:35:53,229 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dfanalyzer-haridev/0/dask-worker-space/worker-goxraqnd', purging\n", - "2025-07-10 09:35:53,229 - distributed.diskutils - INFO - Found stale lock file and directory '/tmp/dfanalyzer-haridev/0/dask-worker-space/worker-girbwgyd', purging\n" - ] - } - ], - "source": [ - "from dfanalyzer import init_with_hydra\n", - "\n", - "percentile = 0.9\n", - "time_granularity = 5e6 # 5 seconds\n", - "trace_path = f\"/home/haridev/data/lead2-trace-buff-ts.pfw.gz\"\n", - "view_types = [\"time_range\", \"proc_name\"]\n", - "\n", - "dfa = init_with_hydra(\n", - " hydra_overrides=[\n", - " 'analyzer=dftracer',\n", - " 'analyzer.checkpoint=False',\n", - " f\"analyzer.time_granularity={time_granularity}\",\n", - " f\"percentile={percentile}\",\n", - " f\"trace_path={trace_path}\",\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "cd41ae66", - "metadata": {}, - "source": [ - "We access the underlying Dask client via our Python API." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "446d8a9e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
\n", - "
\n", - "

Client

\n", - "

Client-f26f66a2-5dab-11f0-878e-001e67e6cbcd

\n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - "
Connection method: Cluster objectCluster type: distributed.LocalCluster
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - "
\n", - "\n", - " \n", - "\n", - " \n", - "
\n", - "

Cluster Info

\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

LocalCluster

\n", - "

a64b2568

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - "\n", - " \n", - "
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - " \n", - " Workers: 4\n", - "
\n", - " Total threads: 16\n", - " \n", - " Total memory: 0 B\n", - "
Status: runningUsing processes: True
\n", - "\n", - "
\n", - " \n", - "

Scheduler Info

\n", - "
\n", - "\n", - "
\n", - "
\n", - "
\n", - "
\n", - "

Scheduler

\n", - "

Scheduler-60e41a3d-5eef-44b0-adaa-63c4a92b3e30

\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " Comm: tcp://127.0.0.1:45585\n", - " \n", - " Workers: 4\n", - "
\n", - " Dashboard: http://127.0.0.1:8787/status\n", - " \n", - " Total threads: 16\n", - "
\n", - " Started: Just now\n", - " \n", - " Total memory: 0 B\n", - "
\n", - "
\n", - "
\n", - "\n", - "
\n", - " \n", - "

Workers

\n", - "
\n", - "\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 0

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - "\n", - " \n", - "\n", - "
\n", - " Comm: tcp://127.0.0.1:39895\n", - " \n", - " Total threads: 4\n", - "
\n", - " Dashboard: http://127.0.0.1:40011/status\n", - " \n", - " Memory: 0 B\n", - "
\n", - " Nanny: tcp://127.0.0.1:37123\n", - "
\n", - " Local directory: /tmp/dfanalyzer-haridev/0/dask-worker-space/worker-j864x91a\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 1

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - "\n", - " \n", - "\n", - "
\n", - " Comm: tcp://127.0.0.1:45839\n", - " \n", - " Total threads: 4\n", - "
\n", - " Dashboard: http://127.0.0.1:42765/status\n", - " \n", - " Memory: 0 B\n", - "
\n", - " Nanny: tcp://127.0.0.1:36275\n", - "
\n", - " Local directory: /tmp/dfanalyzer-haridev/0/dask-worker-space/worker-_922mrv0\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 2

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - "\n", - " \n", - "\n", - "
\n", - " Comm: tcp://127.0.0.1:43165\n", - " \n", - " Total threads: 4\n", - "
\n", - " Dashboard: http://127.0.0.1:36445/status\n", - " \n", - " Memory: 0 B\n", - "
\n", - " Nanny: tcp://127.0.0.1:36133\n", - "
\n", - " Local directory: /tmp/dfanalyzer-haridev/0/dask-worker-space/worker-mlqztygw\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "

Worker: 3

\n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - "\n", - " \n", - "\n", - "
\n", - " Comm: tcp://127.0.0.1:41863\n", - " \n", - " Total threads: 4\n", - "
\n", - " Dashboard: http://127.0.0.1:34087/status\n", - " \n", - " Memory: 0 B\n", - "
\n", - " Nanny: tcp://127.0.0.1:39921\n", - "
\n", - " Local directory: /tmp/dfanalyzer-haridev/0/dask-worker-space/worker-88w57vr0\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "
\n", - "\n", - "
\n", - "
\n", - "
\n", - "
\n", - " \n", - "\n", - "
\n", - "
" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dfa.client" - ] - }, - { - "cell_type": "markdown", - "id": "654800f6", - "metadata": {}, - "source": [ - "We run the analysis via the `analyze_trace` function as follows." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "9eaff180", - "metadata": {}, - "outputs": [], - "source": [ - "result = dfa.analyzer.read_trace(trace_path=trace_path)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "cad23554", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 mm\n", - "1 os_page_cache\n", - "2 test_posix\n", - "3 swap\n", - "4 vfs\n", - "5 sys\n", - "6 shm\n", - "7 xfs\n", - "8 iomap\n", - "Name: cat, dtype: string" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result[\"cat\"].unique().compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "c52cebc9", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
func_namecattypepidtidtime_starttime_endtimetintervaltime_range...io_catphasesizecompute_timecheckpoint_timeread_timehashvaluefile_namehost_name
10067openatsys0663496634997418183979251940.507011<NA>19...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
10134writesys0663496634997964119981556630.191544<NA>19...604096<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
10201closesys0663496634998165689982618900.096201<NA>19...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
3972openatsys06639566395524092895052409564620.027512<NA>1048...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
4031readsys06639566395524099635452411427750.146421<NA>1048...604096<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
4045closesys06639566395524115179852411797310.027933<NA>1048...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
14524openatsys06640266402538849573853889888870.493149<NA>1077...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
14638writesys06640266402538902769153892754340.247743<NA>1077...6016384<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
14706closesys06640266402538928434053893968850.112545<NA>1077...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
8491openatsys0664326643210530408462105304361420.02768<NA>2106...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
8587readsys0664326643210530475700105306392370.163537<NA>2106...6016384<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
8601closesys0664326643210530648226105306755520.027326<NA>2106...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
2760openatsys0664396643910675716170106761897210.473551<NA>2135...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
2994writesys0664396643910676229391106765994220.370031<NA>2135...6065536<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
3061closesys0664396643910676608004106767050970.097093<NA>2135...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
13309openatsys0664686646815820058089158200840950.026006<NA>3164...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
13489readsys0664686646815820122889158203763930.253504<NA>3164...6065536<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
13503closesys0664686646815820385756158204136080.027852<NA>3164...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
7956openatsys0664756647515966307370159667946610.487291<NA>3193...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
8734writesys0664756647515966822884159676371740.81429<NA>3193...60262144<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
8801closesys0664756647515967646025159677444460.098421<NA>3193...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
2946openatsys0665046650421116369222211163975360.028314<NA>4223...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
3526readsys0665046650421116427173211170733550.646182<NA>4223...60262144<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
3540closesys0665046650421117083017211171188210.035804<NA>4223...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
15538openatsys0665206652021266245024212667246400.479616<NA>4253...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
2048writesys0665206652021266752945212693745042.621559<NA>4253...601048576<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
2115closesys0665206652021269383975212694853080.101333<NA>4253...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
13814openatsys0665506655026414028598264140568220.028224<NA>5282...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
15918readsys0665506655026414084675264161549462.070271<NA>5282...601048576<NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
15932closesys0665506655026416164308264161917510.027443<NA>5283...60<NA><NA><NA><NA><NA><NA>/scratch/haridev/data/file_0_0.datlead2
\n", - "

30 rows × 22 columns

\n", - "
" - ], - "text/plain": [ - " func_name cat type pid tid time_start time_end time \\\n", - "10067 openat sys 0 66349 66349 97418183 97925194 0.507011 \n", - "10134 write sys 0 66349 66349 97964119 98155663 0.191544 \n", - "10201 close sys 0 66349 66349 98165689 98261890 0.096201 \n", - "3972 openat sys 0 66395 66395 5240928950 5240956462 0.027512 \n", - "4031 read sys 0 66395 66395 5240996354 5241142775 0.146421 \n", - "4045 close sys 0 66395 66395 5241151798 5241179731 0.027933 \n", - "14524 openat sys 0 66402 66402 5388495738 5388988887 0.493149 \n", - "14638 write sys 0 66402 66402 5389027691 5389275434 0.247743 \n", - "14706 close sys 0 66402 66402 5389284340 5389396885 0.112545 \n", - "8491 openat sys 0 66432 66432 10530408462 10530436142 0.02768 \n", - "8587 read sys 0 66432 66432 10530475700 10530639237 0.163537 \n", - "8601 close sys 0 66432 66432 10530648226 10530675552 0.027326 \n", - "2760 openat sys 0 66439 66439 10675716170 10676189721 0.473551 \n", - "2994 write sys 0 66439 66439 10676229391 10676599422 0.370031 \n", - "3061 close sys 0 66439 66439 10676608004 10676705097 0.097093 \n", - "13309 openat sys 0 66468 66468 15820058089 15820084095 0.026006 \n", - "13489 read sys 0 66468 66468 15820122889 15820376393 0.253504 \n", - "13503 close sys 0 66468 66468 15820385756 15820413608 0.027852 \n", - "7956 openat sys 0 66475 66475 15966307370 15966794661 0.487291 \n", - "8734 write sys 0 66475 66475 15966822884 15967637174 0.81429 \n", - "8801 close sys 0 66475 66475 15967646025 15967744446 0.098421 \n", - "2946 openat sys 0 66504 66504 21116369222 21116397536 0.028314 \n", - "3526 read sys 0 66504 66504 21116427173 21117073355 0.646182 \n", - "3540 close sys 0 66504 66504 21117083017 21117118821 0.035804 \n", - "15538 openat sys 0 66520 66520 21266245024 21266724640 0.479616 \n", - "2048 write sys 0 66520 66520 21266752945 21269374504 2.621559 \n", - "2115 close sys 0 66520 66520 21269383975 21269485308 0.101333 \n", - "13814 openat sys 0 66550 66550 26414028598 26414056822 0.028224 \n", - "15918 read sys 0 66550 66550 26414084675 26416154946 2.070271 \n", - "15932 close sys 0 66550 66550 26416164308 26416191751 0.027443 \n", - "\n", - " tinterval time_range ... io_cat phase size compute_time \\\n", - "10067 19 ... 6 0 \n", - "10134 19 ... 6 0 4096 \n", - "10201 19 ... 6 0 \n", - "3972 1048 ... 6 0 \n", - "4031 1048 ... 6 0 4096 \n", - "4045 1048 ... 6 0 \n", - "14524 1077 ... 6 0 \n", - "14638 1077 ... 6 0 16384 \n", - "14706 1077 ... 6 0 \n", - "8491 2106 ... 6 0 \n", - "8587 2106 ... 6 0 16384 \n", - "8601 2106 ... 6 0 \n", - "2760 2135 ... 6 0 \n", - "2994 2135 ... 6 0 65536 \n", - "3061 2135 ... 6 0 \n", - "13309 3164 ... 6 0 \n", - "13489 3164 ... 6 0 65536 \n", - "13503 3164 ... 6 0 \n", - "7956 3193 ... 6 0 \n", - "8734 3193 ... 6 0 262144 \n", - "8801 3193 ... 6 0 \n", - "2946 4223 ... 6 0 \n", - "3526 4223 ... 6 0 262144 \n", - "3540 4223 ... 6 0 \n", - "15538 4253 ... 6 0 \n", - "2048 4253 ... 6 0 1048576 \n", - "2115 4253 ... 6 0 \n", - "13814 5282 ... 6 0 \n", - "15918 5282 ... 6 0 1048576 \n", - "15932 5283 ... 6 0 \n", - "\n", - " checkpoint_time read_time hash value \\\n", - "10067 \n", - "10134 \n", - "10201 \n", - "3972 \n", - "4031 \n", - "4045 \n", - "14524 \n", - "14638 \n", - "14706 \n", - "8491 \n", - "8587 \n", - "8601 \n", - "2760 \n", - "2994 \n", - "3061 \n", - "13309 \n", - "13489 \n", - "13503 \n", - "7956 \n", - "8734 \n", - "8801 \n", - "2946 \n", - "3526 \n", - "3540 \n", - "15538 \n", - "2048 \n", - "2115 \n", - "13814 \n", - "15918 \n", - "15932 \n", - "\n", - " file_name host_name \n", - "10067 /scratch/haridev/data/file_0_0.dat lead2 \n", - "10134 /scratch/haridev/data/file_0_0.dat lead2 \n", - "10201 /scratch/haridev/data/file_0_0.dat lead2 \n", - "3972 /scratch/haridev/data/file_0_0.dat lead2 \n", - "4031 /scratch/haridev/data/file_0_0.dat lead2 \n", - "4045 /scratch/haridev/data/file_0_0.dat lead2 \n", - "14524 /scratch/haridev/data/file_0_0.dat lead2 \n", - "14638 /scratch/haridev/data/file_0_0.dat lead2 \n", - "14706 /scratch/haridev/data/file_0_0.dat lead2 \n", - "8491 /scratch/haridev/data/file_0_0.dat lead2 \n", - "8587 /scratch/haridev/data/file_0_0.dat lead2 \n", - "8601 /scratch/haridev/data/file_0_0.dat lead2 \n", - "2760 /scratch/haridev/data/file_0_0.dat lead2 \n", - "2994 /scratch/haridev/data/file_0_0.dat lead2 \n", - "3061 /scratch/haridev/data/file_0_0.dat lead2 \n", - "13309 /scratch/haridev/data/file_0_0.dat lead2 \n", - "13489 /scratch/haridev/data/file_0_0.dat lead2 \n", - "13503 /scratch/haridev/data/file_0_0.dat lead2 \n", - "7956 /scratch/haridev/data/file_0_0.dat lead2 \n", - "8734 /scratch/haridev/data/file_0_0.dat lead2 \n", - "8801 /scratch/haridev/data/file_0_0.dat lead2 \n", - "2946 /scratch/haridev/data/file_0_0.dat lead2 \n", - "3526 /scratch/haridev/data/file_0_0.dat lead2 \n", - "3540 /scratch/haridev/data/file_0_0.dat lead2 \n", - "15538 /scratch/haridev/data/file_0_0.dat lead2 \n", - "2048 /scratch/haridev/data/file_0_0.dat lead2 \n", - "2115 /scratch/haridev/data/file_0_0.dat lead2 \n", - "13814 /scratch/haridev/data/file_0_0.dat lead2 \n", - "15918 /scratch/haridev/data/file_0_0.dat lead2 \n", - "15932 /scratch/haridev/data/file_0_0.dat lead2 \n", - "\n", - "[30 rows x 22 columns]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result.query(\"cat == 'sys' and file_name.str.contains('file_0')\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "7e96ff9e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
cattime
func_name
rw_verify_area10.000319
xfs_da_hashname10.000382
folio_unlock10.000383
current_time10.000394
setattr_should_drop_suidgid10.000394
folio_add_lru10.000452
filemap_get_entry10.000461
generic_write_check_limits10.000566
xfs_mod_freecounter20.000676
xfs_iext_state_to_fork10.000845
iomap_file_buffered_write_punch_delalloc10.000855
xfs_mod_delalloc10.000867
xfs_qm_need_dqattach10.000876
xfs_iomap_valid10.000887
xfs_trans_reserve_quota_nblks10.000889
xfs_iext_last10.00089
xfs_get_extsz_hint10.000916
xfs_bmbt_to_iomap10.000929
xfs_iext_lookup_extent10.000976
xfs_ilock30.000981
xfs_attr_get_ilocked10.000991
xfs_break_leased_layouts10.001006
fault_in_readable10.001007
xfs_ifork_zapped10.00107
xfs_iext_insert_raw10.001099
xfs_iunlock30.001114
xfs_iread_extents10.001121
xfs_iext_get_extent20.001426
filemap_alloc_folio10.001633
xfs_ilock_attr_map_shared10.001662
xfs_ilock_for_iomap10.001845
xfs_iext_prev10.002931
generic_write_checks10.002947
xfs_buffered_write_iomap_end10.003027
xfs_qm_dqattach10.003101
filemap_add_folio10.003518
iomap_write_end10.004942
xfs_iext_insert10.005131
xfs_attr_get10.008774
xfs_xattr_get10.01346
iomap_write_begin10.01487
kiocb_modified10.019694
xfs_bmapi_reserve_delalloc10.02068
xfs_file_write_checks10.029521
xfs_buffered_write_iomap_begin10.040716
iomap_iter20.048068
iomap_write_iter10.091954
iomap_file_buffered_write10.144
xfs_file_buffered_write10.179982
xfs_file_write_iter10.18275
vfs_write10.185793
write10.191544
\n", - "
" - ], - "text/plain": [ - " cat time\n", - "func_name \n", - "rw_verify_area 1 0.000319\n", - "xfs_da_hashname 1 0.000382\n", - "folio_unlock 1 0.000383\n", - "current_time 1 0.000394\n", - "setattr_should_drop_suidgid 1 0.000394\n", - "folio_add_lru 1 0.000452\n", - "filemap_get_entry 1 0.000461\n", - "generic_write_check_limits 1 0.000566\n", - "xfs_mod_freecounter 2 0.000676\n", - "xfs_iext_state_to_fork 1 0.000845\n", - "iomap_file_buffered_write_punch_delalloc 1 0.000855\n", - "xfs_mod_delalloc 1 0.000867\n", - "xfs_qm_need_dqattach 1 0.000876\n", - "xfs_iomap_valid 1 0.000887\n", - "xfs_trans_reserve_quota_nblks 1 0.000889\n", - "xfs_iext_last 1 0.00089\n", - "xfs_get_extsz_hint 1 0.000916\n", - "xfs_bmbt_to_iomap 1 0.000929\n", - "xfs_iext_lookup_extent 1 0.000976\n", - "xfs_ilock 3 0.000981\n", - "xfs_attr_get_ilocked 1 0.000991\n", - "xfs_break_leased_layouts 1 0.001006\n", - "fault_in_readable 1 0.001007\n", - "xfs_ifork_zapped 1 0.00107\n", - "xfs_iext_insert_raw 1 0.001099\n", - "xfs_iunlock 3 0.001114\n", - "xfs_iread_extents 1 0.001121\n", - "xfs_iext_get_extent 2 0.001426\n", - "filemap_alloc_folio 1 0.001633\n", - "xfs_ilock_attr_map_shared 1 0.001662\n", - "xfs_ilock_for_iomap 1 0.001845\n", - "xfs_iext_prev 1 0.002931\n", - "generic_write_checks 1 0.002947\n", - "xfs_buffered_write_iomap_end 1 0.003027\n", - "xfs_qm_dqattach 1 0.003101\n", - "filemap_add_folio 1 0.003518\n", - "iomap_write_end 1 0.004942\n", - "xfs_iext_insert 1 0.005131\n", - "xfs_attr_get 1 0.008774\n", - "xfs_xattr_get 1 0.01346\n", - "iomap_write_begin 1 0.01487\n", - "kiocb_modified 1 0.019694\n", - "xfs_bmapi_reserve_delalloc 1 0.02068\n", - "xfs_file_write_checks 1 0.029521\n", - "xfs_buffered_write_iomap_begin 1 0.040716\n", - "iomap_iter 2 0.048068\n", - "iomap_write_iter 1 0.091954\n", - "iomap_file_buffered_write 1 0.144\n", - "xfs_file_buffered_write 1 0.179982\n", - "xfs_file_write_iter 1 0.18275\n", - "vfs_write 1 0.185793\n", - "write 1 0.191544" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result.query(\"time_start >= 97964119 and time_end <=98155663\").groupby([\"func_name\"]).agg({'cat': 'count', 'time': 'sum'}).sort_values('time').compute()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e7eb7447", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.21" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/analysis/dfanalyzer.README.md b/analysis/dfanalyzer.README.md deleted file mode 100644 index 68d3fe06..00000000 --- a/analysis/dfanalyzer.README.md +++ /dev/null @@ -1,13 +0,0 @@ - - -```bash -export DFANALYZER_DIR=/home/haridev/dfanalyzer -git clone https://github.com/LLNL/dfanalyzer ${DFANALYZER_DIR} - -python -m venv ./dfanalyzer-env -source ./dfanalyzer-env/bin/activate - -cd ${DFANALYZER_DIR} -pip install -r . notebooks/requirements.txt -cd - -``` \ No newline at end of file diff --git a/analysis/relevant_functions.ipynb b/analysis/relevant_functions.ipynb deleted file mode 100755 index 783007b9..00000000 --- a/analysis/relevant_functions.ipynb +++ /dev/null @@ -1,1379 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis for DataCrumbs\n", - "\n", - "This is a simple analysis notebook for Datacrumbs." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Imports" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "import json\n", - "import dask\n", - "import os\n", - "from pathlib import Path\n", - "from glob import glob\n", - "import math\n", - "import zindex_py as zindex\n", - "import numpy as np\n", - "import intervals as I\n", - "import pandas as pd\n", - "from tqdm.notebook import trange, tqdm\n", - "from sklearn.decomposition import PCA\n", - "from sklearn.preprocessing import StandardScaler" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import dask.dataframe as dd\n", - "from dask.distributed import Client, LocalCluster, progress, wait, get_client\n", - "from dask.distributed import Future, get_client" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Project Variables" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "app_root = str(Path(os.getcwd()).parent)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "logging.basicConfig(\n", - " level=logging.INFO,\n", - " handlers=[\n", - " logging.StreamHandler(),\n", - " ],\n", - " format=\"%(asctime)s [%(levelname)s]: %(message)s in %(pathname)s:%(lineno)d\",\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup Dask Local Cluster" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-11-10 12:37:37,089 [INFO]: Initialized Client with 16 workers and link http://127.0.0.1:8787/status in /var/tmp/haridev/ipykernel_359281/3142773904.py:4\n" - ] - } - ], - "source": [ - "workers=16\n", - "cluster = LocalCluster(n_workers=workers) # Launches a scheduler and workers locally\n", - "client = Client(cluster) # Connect to distributed cluster and override default\n", - "logging.info(f\"Initialized Client with {workers} workers and link {client.dashboard_link}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Start Analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "['/usr/workspace/haridev/xio//logs/ior/ior_4k.pfw.gz',\n", - " '/usr/workspace/haridev/xio//logs/ior/ior_16k-64k.pfw.gz',\n", - " '/usr/workspace/haridev/xio//logs/ior/ior-1mb-4mb.pfw.gz',\n", - " '/usr/workspace/haridev/xio//logs/ior/ior-256k.pfw.gz',\n", - " '/usr/workspace/haridev/xio//logs/ior/ior-256k-multiple-interfaces.pfw.gz',\n", - " '/usr/workspace/haridev/xio//logs/ior/ior-hdf5-256k.pfw.gz']" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "import os \n", - "is_trace = True\n", - "folder=\"/usr/workspace/haridev/xio/\"\n", - "file=f\"{folder}/logs/ior/*.pfw.gz\"\n", - "file_pattern = glob(file)\n", - "file_pattern" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Function to load trace data" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "def create_index(filename):\n", - " index_file = f\"{filename}.zindex\"\n", - " if not os.path.exists(index_file):\n", - " status = zindex.create_index(filename, index_file=f\"file:{index_file}\",\n", - " regex=\"id:\\b([0-9]+)\", numeric=True, unique=True, debug=False, verbose=False)\n", - " logging.debug(f\"Creating Index for {filename} returned {status}\")\n", - " return filename\n", - "\n", - "def get_linenumber(filename):\n", - " index_file = f\"{filename}.zindex\"\n", - " line_number = zindex.get_max_line(filename, index_file=index_file, debug=False, verbose=False)\n", - " logging.debug(f\" The {filename} has {line_number} lines\")\n", - " return (filename, line_number)\n", - "\n", - "def get_size(filename):\n", - " if filename.endswith('.pfw'):\n", - " size = os.stat(filename).st_size\n", - " elif filename.endswith('.pfw.gz'):\n", - " index_file = f\"{filename}.zindex\"\n", - " line_number = zindex.get_max_line(filename, index_file=index_file,debug=False, verbose=False)\n", - " size = line_number * 256\n", - " logging.debug(f\" The {filename} has {size/1024**3} GB size\")\n", - " return int(size)\n", - "\n", - "\n", - "def generate_line_batches(filename, max_line):\n", - " batch_size = 16*1024\n", - " for start in range(0, max_line, batch_size):\n", - " end = min((start + batch_size - 1) , (max_line - 1))\n", - " logging.debug(f\"Created a batch for {filename} from [{start}, {end}] lines\")\n", - " yield filename, start, end\n", - "\n", - "def load_indexed_gzip_files(filename, start, end):\n", - " index_file = f\"{filename}.zindex\"\n", - " json_lines = zindex.zquery(filename, index_file=index_file,\n", - " raw=f\"select a.line from LineOffsets a where a.line >= {start} AND a.line <= {end};\", debug=False, verbose=False)\n", - " logging.debug(f\"Read {len(json_lines)} json lines for [{start}, {end}]\")\n", - " return json_lines" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "def load_profile(line):\n", - " d = {}\n", - " if line is not None and line !=\"\" and len(line) > 0 and \"[\" != line[0] and line != \"\\n\" :\n", - " try:\n", - " unicode_line = ''.join([i if ord(i) < 128 else '#' for i in line])\n", - " val = json.loads(unicode_line)\n", - " if \"pid\" in d:\n", - " d[\"pid\"] = val[\"pid\"]\n", - " if \"tid\" in d:\n", - " d[\"tid\"] = val[\"tid\"]\n", - " if \"ts\" in d:\n", - " d[\"ts_us\"] = int(val[\"ts\"])\n", - " d[\"filename\"] = \"NA\"\n", - " if \"args\" in val:\n", - " if \"time\" in val[\"args\"]:\n", - " d[\"dur_sec\"] = float(val[\"args\"][\"time\"])\n", - " if \"freq\" in val[\"args\"]:\n", - " d[\"freq\"] = val[\"args\"][\"freq\"]\n", - " if \"size_sum\" in val[\"args\"]:\n", - " d[\"size_bytes\"] = val[\"args\"][\"size_sum\"]\n", - " if \"fname\" in val[\"args\"] and val[\"args\"][\"fname\"]:\n", - " d[\"filename\"] = val[\"args\"][\"fname\"]\n", - " d[\"func_id\"] = val[\"name\"]\n", - " d[\"cat\"] = val[\"cat\"]\n", - " except Exception as error:\n", - " logging.error(f\"Processing {line} failed with {error}\")\n", - " return d\n", - "\n", - "\n", - "def load_trace(line):\n", - " d = {}\n", - " if line is not None and line !=\"\" and len(line) > 0 and \"[\" != line[0] and line != \"\\n\" :\n", - " try:\n", - " unicode_line = ''.join([i if ord(i) < 128 else '#' for i in line])\n", - " val = json.loads(unicode_line)\n", - " d[\"name\"] = val[\"name\"]\n", - " d[\"cat\"] = val[\"cat\"]\n", - " if \"pid\" in val:\n", - " d[\"pid\"] = val[\"pid\"]\n", - " if \"tid\" in val:\n", - " d[\"tid\"] = val[\"tid\"]\n", - " d[\"ts\"] = 0\n", - " d[\"dur\"] = 0\n", - " if \"ts\" in val:\n", - " d[\"ts\"] = int(val[\"ts\"])\n", - " d[\"te\"] = int(val[\"ts\"])\n", - " d[\"dur\"] = 1\n", - " if \"dur\" in val:\n", - " d[\"dur\"] = int(val[\"dur\"])\n", - " if \"args\" in val and \"hhash\" in val[\"args\"]: \n", - " d[\"hhash\"] = val[\"args\"][\"hhash\"]\n", - " if \"ts\" in val:\n", - " interval = I.closedopen(d[\"ts\"], d[\"ts\"] + 1)\n", - " if d[\"dur\"] > 0:\n", - " d[\"te\"] = int(val[\"ts\"]) + d[\"dur\"]\n", - " interval = I.closedopen(d[\"ts\"], d[\"ts\"] + d[\"dur\"])\n", - " d[\"interval\"] = I.to_string(interval)\n", - " if val[\"ph\"] != \"M\":\n", - " d[\"type\"] = 0 \n", - " if \"args\" in val: \n", - " if \"hhash\" in val[\"args\"]:\n", - " d[\"hhash\"] = val[\"args\"][\"hhash\"]\n", - " if \"size_sum\" in val[\"args\"]:\n", - " d[\"size\"] = val[\"args\"][\"size_sum\"]\n", - " if \"fhash\" in val[\"args\"]:\n", - " d[\"fhash\"] = val[\"args\"][\"fhash\"]\n", - " else:\n", - " if val[\"name\"] == \"FH\":\n", - " d[\"type\"] = 1\n", - " if \"args\" in val:\n", - " if \"name\" in val[\"args\"]:\n", - " d[\"name\"] = val[\"args\"][\"name\"]\n", - " if \"value\" in val[\"args\"]:\n", - " d[\"hash\"] = val[\"args\"][\"value\"]\n", - " elif val[\"name\"] == \"HH\":\n", - " d[\"type\"] = 2\n", - " if \"args\" in val:\n", - " if \"name\" in val[\"args\"]:\n", - " d[\"name\"] = val[\"args\"][\"name\"]\n", - " if \"value\" in val[\"args\"]:\n", - " d[\"hash\"] = val[\"args\"][\"value\"]\n", - " \n", - " except Exception as error:\n", - " logging.error(f\"Processing {line} failed with {error}\")\n", - " return d" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create Dask Dataframe" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-11-10 12:37:37,416 [INFO]: Created index for 6 files in /var/tmp/haridev/ipykernel_359281/864066620.py:3\n", - "2024-11-10 12:37:37,533 [INFO]: Total size of all files are bytes in /var/tmp/haridev/ipykernel_359281/864066620.py:6\n", - "2024-11-10 12:37:37,588 [INFO]: Max lines per file are [('/usr/workspace/haridev/xio//logs/ior/ior_4k.pfw.gz', 7565244), ('/usr/workspace/haridev/xio//logs/ior/ior_16k-64k.pfw.gz', 9788674), ('/usr/workspace/haridev/xio//logs/ior/ior-1mb-4mb.pfw.gz', 34785028), ('/usr/workspace/haridev/xio//logs/ior/ior-256k.pfw.gz', 9397525), ('/usr/workspace/haridev/xio//logs/ior/ior-256k-multiple-interfaces.pfw.gz', 60400779), ('/usr/workspace/haridev/xio//logs/ior/ior-hdf5-256k.pfw.gz', 25153457)] in /var/tmp/haridev/ipykernel_359281/864066620.py:8\n", - "2024-11-10 12:37:37,615 [INFO]: Loading 8981 batches out of 6 files and has 147090707 lines overall in /var/tmp/haridev/ipykernel_359281/864066620.py:16\n" - ] - } - ], - "source": [ - "if len(file_pattern) > 0:\n", - " dask.bag.from_sequence(file_pattern).map(create_index).compute()\n", - " logging.info(f\"Created index for {len(file_pattern)} files\")\n", - " total_size = dask.bag.from_sequence(file_pattern).map(get_size).sum()\n", - " n_partition = math.ceil(total_size.compute() / (128 * 1024 ** 2))\n", - " logging.info(f\"Total size of all files are {total_size} bytes\")\n", - " max_line_numbers = dask.bag.from_sequence(file_pattern).map(get_linenumber).compute()\n", - " logging.info(f\"Max lines per file are {max_line_numbers}\")\n", - " json_line_delayed = []\n", - " total_lines = 0\n", - " for filename, max_line in max_line_numbers:\n", - " total_lines += max_line\n", - " for _, start, end in generate_line_batches(filename, max_line):\n", - " json_line_delayed.append((filename, start, end))\n", - "\n", - " logging.info(f\"Loading {len(json_line_delayed)} batches out of {len(file_pattern)} files and has {total_lines} lines overall\")\n", - " json_line_bags = []\n", - " for filename, start, end in json_line_delayed:\n", - " num_lines = end - start + 1\n", - " json_line_bags.append(dask.delayed(load_indexed_gzip_files, nout=num_lines)(filename, start, end))\n", - " json_lines = dask.bag.concat(json_line_bags)\n", - " if is_trace:\n", - " pfw_bag = json_lines.map(load_trace).filter(lambda x: \"name\" in x)\n", - " else:\n", - " pfw_bag = json_lines.map(load_profile).filter(lambda x: \"func_id\" in x)\n", - " pfw_bag.take(1)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "if is_trace:\n", - " columns = {'hhash': \"string[pyarrow]\", 'pid': \"uint64[pyarrow]\", 'tid': \"uint64[pyarrow]\",\n", - " 'cat': \"string[pyarrow]\", 'name': \"string[pyarrow]\", 'type': \"uint8[pyarrow]\",\n", - " 'ts': \"uint64[pyarrow]\", 'te': \"uint64[pyarrow]\", 'dur': \"uint64[pyarrow]\", 'interval': \"string[pyarrow]\", \n", - " 'size': \"uint64[pyarrow]\", 'fhash': \"string[pyarrow]\", 'hash': \"string[pyarrow]\", \n", - " }\n", - "else:\n", - " columns = {'pid': \"uint64[pyarrow]\", 'tid': \"uint64[pyarrow]\",\n", - " 'ts_us': \"uint64[pyarrow]\", 'dur_sec': \"float32[pyarrow]\", \n", - " 'freq': \"uint64[pyarrow]\", 'size_bytes': \"uint64[pyarrow]\", 'name': \"string[pyarrow]\", \n", - " 'filename': \"string[pyarrow]\", \n", - " 'cat': \"string[pyarrow]\"}" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "events = pfw_bag.to_dataframe(meta=columns)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "events = events.repartition(npartitions=n_partition).persist()\n", - "_ = wait(events)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "fhash = events.query(\"type == 1\")[[\"name\",\"hash\"]]\n", - "hhash = events.query(\"type == 2\")[[\"name\",\"hash\"]]\n", - "event = events.query(\"type == 0\")\n", - "fhashes = fhash.query(\"name.str.contains('test.bat')\").compute()[\"hash\"]\n", - "fhashes = fhashes.to_list()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hhashpidtidcatnametypetstedurintervalsizefhashhash
3368ecd9cccc050c9e893ab33b1a228fe76d1588215882sysopenat054485598965448937723377827[5448559896,5448937723)<NA>3c30b6298abfeb121cd313effdb92256<NA>
3374ecd9cccc050c9e893ab33b1a228fe76d1588215882syslseek0544895605954489655549495[5448956059,5448965554)<NA>3c30b6298abfeb121cd313effdb92256<NA>
3609ecd9cccc050c9e893ab33b1a228fe76d1588215882syswrite054489706865449450628479942[5448970686,5449450628)163843c30b6298abfeb121cd313effdb92256<NA>
3613ecd9cccc050c9e893ab33b1a228fe76d1588215882syslseek0544946910854494733144206[5449469108,5449473314)<NA>3c30b6298abfeb121cd313effdb92256<NA>
3858ecd9cccc050c9e893ab33b1a228fe76d1588215882syswrite054494777195449874977397258[5449477719,5449874977)163843c30b6298abfeb121cd313effdb92256<NA>
..........................................
60ecd9cccc050c9e893ab33b1a228fe76d252574252574syspread640771545283031677154539913411161025[7715452830316,7715453991341)2621441.438620452325829e+19<NA>
2302ecd9cccc050c9e893ab33b1a228fe76d252574252574syspread640771572983278377157364397616606978[7715729832783,7715736439761)2621441.438620452325829e+19<NA>
4070ecd9cccc050c9e893ab33b1a228fe76d252574252574syspread640771595225333777159558732213619884[7715952253337,7715955873221)2621441.438620452325829e+19<NA>
4437ecd9cccc050c9e893ab33b1a228fe76d252574252574syspread640771599810826577160017262453617980[7715998108265,7716001726245)2621441.438620452325829e+19<NA>
6850ecd9cccc050c9e893ab33b1a228fe76d252574252574syspread640771630310597877163042591711153193[7716303105978,7716304259171)2621441.438620452325829e+19<NA>
\n", - "

853152 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " hhash pid tid cat name type \\\n", - "3368 ecd9cccc050c9e893ab33b1a228fe76d 15882 15882 sys openat 0 \n", - "3374 ecd9cccc050c9e893ab33b1a228fe76d 15882 15882 sys lseek 0 \n", - "3609 ecd9cccc050c9e893ab33b1a228fe76d 15882 15882 sys write 0 \n", - "3613 ecd9cccc050c9e893ab33b1a228fe76d 15882 15882 sys lseek 0 \n", - "3858 ecd9cccc050c9e893ab33b1a228fe76d 15882 15882 sys write 0 \n", - "... ... ... ... ... ... ... \n", - "60 ecd9cccc050c9e893ab33b1a228fe76d 252574 252574 sys pread64 0 \n", - "2302 ecd9cccc050c9e893ab33b1a228fe76d 252574 252574 sys pread64 0 \n", - "4070 ecd9cccc050c9e893ab33b1a228fe76d 252574 252574 sys pread64 0 \n", - "4437 ecd9cccc050c9e893ab33b1a228fe76d 252574 252574 sys pread64 0 \n", - "6850 ecd9cccc050c9e893ab33b1a228fe76d 252574 252574 sys pread64 0 \n", - "\n", - " ts te dur interval \\\n", - "3368 5448559896 5448937723 377827 [5448559896,5448937723) \n", - "3374 5448956059 5448965554 9495 [5448956059,5448965554) \n", - "3609 5448970686 5449450628 479942 [5448970686,5449450628) \n", - "3613 5449469108 5449473314 4206 [5449469108,5449473314) \n", - "3858 5449477719 5449874977 397258 [5449477719,5449874977) \n", - "... ... ... ... ... \n", - "60 7715452830316 7715453991341 1161025 [7715452830316,7715453991341) \n", - "2302 7715729832783 7715736439761 6606978 [7715729832783,7715736439761) \n", - "4070 7715952253337 7715955873221 3619884 [7715952253337,7715955873221) \n", - "4437 7715998108265 7716001726245 3617980 [7715998108265,7716001726245) \n", - "6850 7716303105978 7716304259171 1153193 [7716303105978,7716304259171) \n", - "\n", - " size fhash hash \n", - "3368 3c30b6298abfeb121cd313effdb92256 \n", - "3374 3c30b6298abfeb121cd313effdb92256 \n", - "3609 16384 3c30b6298abfeb121cd313effdb92256 \n", - "3613 3c30b6298abfeb121cd313effdb92256 \n", - "3858 16384 3c30b6298abfeb121cd313effdb92256 \n", - "... ... ... ... \n", - "60 262144 1.438620452325829e+19 \n", - "2302 262144 1.438620452325829e+19 \n", - "4070 262144 1.438620452325829e+19 \n", - "4437 262144 1.438620452325829e+19 \n", - "6850 262144 1.438620452325829e+19 \n", - "\n", - "[853152 rows x 13 columns]" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "interesting_events = event.query(\"fhash.isin(@value)\", local_dict={\"value\": fhashes}).sort_values(\"ts\")\n", - "interesting_events.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/dask_expr/_shuffle.py:1394: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " mins = mins.bfill()\n", - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/dask_expr/_shuffle.py:1395: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " maxes = maxes.bfill()\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-11-10 12:48:52,787 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 37391b081af65c2e45cbae88ab710187 initialized by task ('shuffle-transfer-37391b081af65c2e45cbae88ab710187', 131) executed on worker tcp://127.0.0.1:37081\n", - "2024-11-10 12:48:56,682 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 37391b081af65c2e45cbae88ab710187 deactivated due to stimulus 'task-finished-1731271736.6801343'\n", - "2024-11-10 12:49:01,471 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle dc3f970979eefcc3a5816445870e8dec initialized by task ('shuffle-transfer-dc3f970979eefcc3a5816445870e8dec', 115) executed on worker tcp://127.0.0.1:37481\n", - "2024-11-10 12:49:04,341 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle dc3f970979eefcc3a5816445870e8dec deactivated due to stimulus 'task-finished-1731271744.3392837'\n", - "2024-11-10 12:49:09,948 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle dbe2eb22ff8fe1d84f492ee06d99a2f2 initialized by task ('shuffle-transfer-dbe2eb22ff8fe1d84f492ee06d99a2f2', 107) executed on worker tcp://127.0.0.1:40355\n", - "2024-11-10 12:50:23,323 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle dbe2eb22ff8fe1d84f492ee06d99a2f2 deactivated due to stimulus 'task-finished-1731271820.2580884'\n", - "2024-11-10 13:10:44,574 - distributed.nanny.memory - WARNING - Worker tcp://127.0.0.1:42569 (pid=359475) exceeded 95% memory budget. Restarting...\n", - "2024-11-10 13:10:46,564 - distributed.scheduler - ERROR - Couldn't gather keys: {('repartitiontofewer-485467e32aa272cee3e20d60ed366f46', 0): 'forgotten'}\n", - "2024-11-10 13:10:51,640 - distributed.scheduler - WARNING - Removing worker 'tcp://127.0.0.1:42569' caused the cluster to lose already computed task(s), which will be recomputed elsewhere: {('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 99), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 224), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 102), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 233), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 65), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 248), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 187), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 141), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 31), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 165), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 110), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 119), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 238), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 58), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 195), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 253), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 155), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 274), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 100), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 127), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 5), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 255), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 209), ('repartitiontofewer-ae258baaee3a3964352a8af406c1ba0f', 148)} (stimulus_id='handle-worker-cleanup-1731273051.6402755')\n", - "2024-11-10 13:10:51,872 - distributed.nanny - WARNING - Restarting worker\n", - "2024-11-10 13:11:08,221 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 992cdf4445c9ef9ded9e534b91389564 initialized by task ('shuffle-transfer-992cdf4445c9ef9ded9e534b91389564', 38) executed on worker tcp://127.0.0.1:44841\n", - "2024-11-10 13:11:55,561 - distributed.shuffle._scheduler_plugin - WARNING - Shuffle 992cdf4445c9ef9ded9e534b91389564 deactivated due to stimulus 'task-finished-1731273115.5558321'\n" - ] - }, - { - "data": { - "text/plain": [ - "0 1\n", - "1 1\n", - "2 16384\n", - "3 1\n", - "4 16384\n", - " ... \n", - "853147 262144\n", - "853148 262144\n", - "853149 262144\n", - "853150 262144\n", - "853151 262144\n", - "Name: size, Length: 853152, dtype: uint64[pyarrow]" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "interesting_events[\"combined_name\"] = interesting_events[\"name\"] + \"-\" + interesting_events[\"cat\"]\n", - "ts_events = interesting_events[[\"size\"]].compute().reset_index().drop(\"index\", axis=1)\n", - "ts_events[\"size\"].fillna(value=1.0)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/dask_expr/_shuffle.py:1394: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " mins = mins.bfill()\n", - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/dask_expr/_shuffle.py:1395: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " maxes = maxes.bfill()\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
intervalname
3368[5448559896,5448937723)openat
3374[5448956059,5448965554)lseek
3609[5448970686,5449450628)write
3613[5449469108,5449473314)lseek
3858[5449477719,5449874977)write
.........
60[7715452830316,7715453991341)pread64
2302[7715729832783,7715736439761)pread64
4070[7715952253337,7715955873221)pread64
4437[7715998108265,7716001726245)pread64
6850[7716303105978,7716304259171)pread64
\n", - "

853152 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " interval name\n", - "3368 [5448559896,5448937723) openat\n", - "3374 [5448956059,5448965554) lseek\n", - "3609 [5448970686,5449450628) write\n", - "3613 [5449469108,5449473314) lseek\n", - "3858 [5449477719,5449874977) write\n", - "... ... ...\n", - "60 [7715452830316,7715453991341) pread64\n", - "2302 [7715729832783,7715736439761) pread64\n", - "4070 [7715952253337,7715955873221) pread64\n", - "4437 [7715998108265,7716001726245) pread64\n", - "6850 [7716303105978,7716304259171) pread64\n", - "\n", - "[853152 rows x 2 columns]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "interesting_intervals = interesting_events[[\"interval\",\"name\"]].compute()\n", - "interesting_intervals" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "# interesting_events[\"interval\"] = interesting_events.apply(lambda x: I.to_string(I.closed(x[\"ts\"], x[\"ts\"]+x[\"dur\"])), axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/dask_expr/_shuffle.py:1394: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " mins = mins.bfill()\n", - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/dask_expr/_shuffle.py:1395: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n", - " maxes = maxes.bfill()\n" - ] - }, - { - "data": { - "text/plain": [ - "([[5448559896,5448937723),\n", - " [5448956059,5448965554),\n", - " [5448970686,5449450628),\n", - " [5449469108,5449473314),\n", - " [5449477719,5449874977),\n", - " [5449884999,5449888787),\n", - " [5449892961,5450252184),\n", - " [5450261489,5450264918),\n", - " [5450268966,5450631486),\n", - " [5450640553,5450644029)],\n", - " 422948)" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "def group_func(df):\n", - " val = I.empty()\n", - " for index, value in df.items():\n", - " if str(value) != 'NA':\n", - " pad_interval = I.from_string(str(value), int)\n", - " val = val.union(pad_interval)\n", - " logging.debug(f\"Grouped Range into {val}\")\n", - " return I.to_string(val)\n", - "def union_portions():\n", - " return dd.Aggregation(\n", - " 'union_portions',\n", - " chunk=lambda s: s.apply(group_func),\n", - " agg=lambda s: s.apply(group_func)\n", - " )\n", - "relevant_intervals = interesting_events[[\"interval\"]].reduction(chunk=lambda s: s.apply(group_func), aggregate=lambda s1: s1.apply(group_func))[\"interval\"].compute()\n", - "relevant_intervals = I.from_string(relevant_intervals, int)\n", - "relevant_intervals_list = list(relevant_intervals)\n", - "relevant_intervals_list[:10], len(relevant_intervals_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(5448559896, 7716304259171)" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "min_ts = relevant_intervals_list[0].lower\n", - "max_te = relevant_intervals_list[-1].upper\n", - "min_ts, max_te" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "filtered_events = event.query(f\"ts >= {min_ts - 1e5} and te <= {max_te + 1e5} and dur > 0\")\n", - "# filtered_events = event" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "# filtered_events[\"combined_name\"] = filtered_events[\"name\"] + \"-\" + filtered_events[\"cat\"]\n", - "# event_batch_per_sys_call = set()\n", - "# rows = list(interesting_intervals.iterrows())\n", - "# count = 0\n", - "# ops_map = {}\n", - "# ops_counter = 0\n", - "# for index, row in tqdm(rows):\n", - "# interval = I.from_string(row[\"interval\"], int)\n", - "# ops = row[\"name\"]\n", - "# a_overlaps_b = f\"(ts >= {interval.lower} and ts <= {interval.upper}) or (te >= {interval.lower} and te <= {interval.upper})\"\n", - "# b_overlaps_a = f\"({interval.lower} >= ts and {interval.lower} <= te) or ({interval.upper} >= ts and {interval.upper} <= te)\"\n", - "# batch = filtered_events.query(f\"{a_overlaps_b} or {b_overlaps_a}\")[\"combined_name\"].unique().compute()\n", - "# event_batch_per_sys_call.update(batch)\n", - "# count += 1\n" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-11-10 13:11:43,068 - distributed.worker.state_machine - WARNING - Async instruction for > ended with CancelledError\n", - "2024-11-10 13:11:43,098 - distributed.worker.state_machine - WARNING - Async instruction for > ended with CancelledError\n", - "2024-11-10 13:11:43,098 - distributed.worker.state_machine - WARNING - Async instruction for > ended with CancelledError\n", - "2024-11-10 13:11:43,769 - distributed.worker - ERROR - Failed to communicate with scheduler during heartbeat.\n", - "Traceback (most recent call last):\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/core.py\", line 1423, in _connect\n", - " comm = await connect(\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/comm/core.py\", line 342, in connect\n", - " comm = await wait_for(\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/utils.py\", line 1957, in wait_for\n", - " return await asyncio.wait_for(fut, timeout)\n", - " File \"/collab/usr/gapps/python/build/spack-toss4.1/var/spack/environments/python/._view/75prb56irmif5ejtirjthpx6kq3gqo52/lib/python3.9/asyncio/tasks.py\", line 466, in wait_for\n", - " await waiter\n", - "asyncio.exceptions.CancelledError\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/core.py\", line 1533, in connect\n", - " return connect_attempt.result()\n", - "asyncio.exceptions.CancelledError\n", - "\n", - "During handling of the above exception, another exception occurred:\n", - "\n", - "Traceback (most recent call last):\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/worker.py\", line 1250, in heartbeat\n", - " response = await retry_operation(\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/utils_comm.py\", line 459, in retry_operation\n", - " return await retry(\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/utils_comm.py\", line 438, in retry\n", - " return await coro()\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/core.py\", line 1251, in send_recv_from_rpc\n", - " comm = await self.pool.connect(self.addr)\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/core.py\", line 1535, in connect\n", - " raise CommClosedError(reason)\n", - "distributed.comm.core.CommClosedError: ConnectionPool closing.\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
dur
catname
kernelext4_get_inode_loc1252881
ext4_set_aops647
ext4_create533
ext4_da_get_block_prep1239086
__mnt_want_write_file102686
.........
hdf5H5C_flush_cache1
H5C_apply_candidate_list1
H5ES_term_package1
H5FD_locate_signature15
H5S_mpio_space_type2108
\n", - "

1356 rows × 1 columns

\n", - "
" - ], - "text/plain": [ - " dur\n", - "cat name \n", - "kernel ext4_get_inode_loc 1252881\n", - " ext4_set_aops 647\n", - " ext4_create 533\n", - " ext4_da_get_block_prep 1239086\n", - " __mnt_want_write_file 102686\n", - "... ...\n", - "hdf5 H5C_flush_cache 1\n", - " H5C_apply_candidate_list 1\n", - " H5ES_term_package 1\n", - " H5FD_locate_signature 15\n", - " H5S_mpio_space_type 2108\n", - "\n", - "[1356 rows x 1 columns]" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "unique_functions = filtered_events.groupby([\"cat\",\"name\"]).agg({\"dur\":\"count\"}).compute()\n", - "unique_functions" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "dict_keys(['kernel', 'sys', 'os_cache', 'vfs'])" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "function_cat = {}\n", - "ignore_user_categories = ['hdf5', 'c', 'mpi', \"sys\"]\n", - "for cat, value in unique_functions.index:\n", - " if cat not in ignore_user_categories:\n", - " if cat not in function_cat:\n", - " function_cat[cat]=set()\n", - " function_cat[cat].add(value)\n", - "function_cat.keys()" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "import json\n", - "def set_default(obj):\n", - " if isinstance(obj, set):\n", - " return list(obj)\n", - " raise TypeError\n", - "function_file = f\"{app_root}/datacrumbs/configs/function.json\"\n", - "with open(function_file, 'w') as convert_file: \n", - " convert_file.write(json.dumps(function_cat, default=set_default))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-11-10 11:59:09,448 [ERROR]: Task exception was never retrieved\n", - "future: .wait() done, defined at /usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/client.py:2391> exception=AllExit()> in /collab/usr/gapps/python/build/spack-toss4.1/var/spack/environments/python/._view/75prb56irmif5ejtirjthpx6kq3gqo52/lib/python3.9/asyncio/base_events.py:1753\n", - "Traceback (most recent call last):\n", - " File \"/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/client.py\", line 2400, in wait\n", - " raise AllExit()\n", - "distributed.client.AllExit\n", - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/client.py:3357: UserWarning: Sending large graph of size 863.67 MiB.\n", - "This may cause some slowdown.\n", - "Consider scattering data ahead of time and using futures.\n", - " warnings.warn(\n" - ] - } - ], - "source": [ - "batch_columns_list = dask.compute(event_batch_per_sys_call)\n", - "batch_columns_list" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "merged_df = None\n", - "count = 0\n", - "for batch in tqdm(event_batch_per_sys_call):\n", - " if merged_df is not None:\n", - " merged_df = merged_df.merge(batch, how='outer', on=\"combined_name\",suffixes=('', f\"_{count}\"))\n", - " else:\n", - " merged_df = batch\n", - " count += 1" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "merged_df.columns" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dataset = merged_df.transpose()\n", - "df = dataset.reset_index().drop(\"index\", axis=1)\n", - "df[\"op_name\"] = \"UNKNOWN\"\n", - "for key, value in ops_map.items():\n", - " df[\"op_name\"] = df[\"op_name\"].mask(df[\"op\"].eq(value), key)\n", - "df[\"op_name\"].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "final_dataset = df.merge(ts_events, how='outer', left_index=True, right_index=True)\n", - "final_dataset[\"BW\"] = final_dataset[f\"size\"] / (1024**2) / (final_dataset[f\"{ops}-sys\"] / 1e9)\n", - "final_dataset.drop([f\"{ops}-sys\", \"size\"], inplace=True, axis=1)\n", - "final_dataset.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "output_file\n", - "final_dataset[\"op\"] = ops" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], - "source": [ - "final_dataset.to_json(path_or_buf=f\"{output_file}\",orient='records', lines=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "output_file=\"/usr/workspace/haridev/xio/output/jslines/write_ops-64_ts-64m-RAW-DIRECT.pfw.gz.jsonl\"\n", - "ops=\"write\"" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "from glob import glob\n", - "files = glob(f\"{output_file}\")\n", - "final_dataset_l = []\n", - "for file in files:\n", - " final_dataset_l.append(dd.read_json(file))\n", - "final_dataset = dd.concat(final_dataset_l).compute().reset_index().drop(\"index\", axis=1)\n", - "final_dataset[\"BW\"] = final_dataset[f\"transfer_size\"] / (1024**2) / (final_dataset[f\"{ops}-sys\"]/1e9)\n", - "final_dataset[\"op\"] = ops\n", - "final_dataset.to_json(path_or_buf=f\"{output_file}\",orient='records', lines=True)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## make the number of relevance features dynamic.\n", - "\n", - "1. Add up the importance score to reach 95%.\n", - "2. Add Transfer size\n", - "3. Split features into layers and do this analysis per layer.\n", - "4. Correlation\n", - " 1. correlation matrix.\n", - " 2. PCA\n", - " 3. Lasso Regression (L1)\n", - " 4. Auto regression\n", - "5. SHAPLEY value (feature importance)\n", - " 1. Tree SHAP\n", - "6. How portable are the interfaces (do not overfit)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Tanzima for better models\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## models\n", - "- sequential training: gradient boost\n", - "- " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/analysis/requirements.txt b/analysis/requirements.txt deleted file mode 100755 index 4bb21256..00000000 --- a/analysis/requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -dask[dataframe]>=2023.5.0 -distributed -matplotlib>=3.7.3 -numpy>=1.24.3 -pyarrow>=12.0.1 -rich>=13.6.0 -jupyterlab -jupyter-server-proxy -ipywidgets -pandas>=2.0.3 -zindex_py==0.0.2 -tqdm -scikit-learn -seaborn -jsonlines -python-intervals \ No newline at end of file diff --git a/analysis/trace_analysis.ipynb b/analysis/trace_analysis.ipynb deleted file mode 100755 index a94eaf4d..00000000 --- a/analysis/trace_analysis.ipynb +++ /dev/null @@ -1,1825 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis for DataCrumbs\n", - "\n", - "This is a simple analysis notebook for Datacrumbs." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Imports" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "import json\n", - "import dask\n", - "import os\n", - "from pathlib import Path\n", - "from glob import glob\n", - "import math\n", - "import zindex_py as zindex\n", - "import numpy as np\n", - "import intervals as I\n", - "import pandas as pd\n", - "from tqdm.notebook import trange, tqdm\n", - "from sklearn.decomposition import PCA\n", - "from sklearn.preprocessing import StandardScaler" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import dask.dataframe as dd\n", - "from dask.distributed import Client, LocalCluster, progress, wait, get_client\n", - "from dask.distributed import Future, get_client" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Project Variables" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "app_root = str(Path(os.getcwd()).parent)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "logging.basicConfig(\n", - " level=logging.INFO,\n", - " handlers=[\n", - " logging.StreamHandler(),\n", - " ],\n", - " format=\"%(asctime)s [%(levelname)s]: %(message)s in %(pathname)s:%(lineno)d\",\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup Dask Local Cluster" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/workspace/haridev/datacrumbs/venv/lib/python3.9/site-packages/distributed/node.py:182: UserWarning: Port 8787 is already in use.\n", - "Perhaps you already have a cluster running?\n", - "Hosting the HTTP server on port 39457 instead\n", - " warnings.warn(\n", - "2024-11-08 10:50:12,354 [INFO]: Initialized Client with 16 workers and link http://127.0.0.1:39457/status in /var/tmp/haridev/ipykernel_3664668/3142773904.py:4\n" - ] - } - ], - "source": [ - "workers=16\n", - "cluster = LocalCluster(n_workers=workers) # Launches a scheduler and workers locally\n", - "client = Client(cluster) # Connect to distributed cluster and override default\n", - "logging.info(f\"Initialized Client with {workers} workers and link {client.dashboard_link}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Start Analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(['/usr/workspace/haridev/xio//ops-32_files-8/RAW-BUF.pfw.gz'],\n", - " '/usr/workspace/haridev/xio//output/jslines/all_ops-32_files-8-RAW-BUF.pfw.gz.jsonl')" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "import os \n", - "is_trace = True\n", - "ops=\"openat\"\n", - "folder=\"/usr/workspace/haridev/xio/\"\n", - "output=f\"{folder}/output/jslines\"\n", - "file=f\"{folder}/ops-32_files-8/RAW-BUF.pfw.gz\"\n", - "# file=f\"{app_root}/tests/output/ops-64_ts-64m/RAW-BUFFERED.pfw.gz\"\n", - "output_file=f\"{output}/all_\"+os.path.basename(os.path.dirname(file))+\"-\"+ os.path.basename(file) + \".jsonl\"\n", - "file_pattern = glob(file)\n", - "file_pattern, output_file" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Function to load trace data" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "def create_index(filename):\n", - " index_file = f\"{filename}.zindex\"\n", - " if not os.path.exists(index_file):\n", - " status = zindex.create_index(filename, index_file=f\"file:{index_file}\",\n", - " regex=\"id:\\b([0-9]+)\", numeric=True, unique=True, debug=False, verbose=False)\n", - " logging.debug(f\"Creating Index for {filename} returned {status}\")\n", - " return filename\n", - "\n", - "def get_linenumber(filename):\n", - " index_file = f\"{filename}.zindex\"\n", - " line_number = zindex.get_max_line(filename, index_file=index_file, debug=False, verbose=False)\n", - " logging.debug(f\" The {filename} has {line_number} lines\")\n", - " return (filename, line_number)\n", - "\n", - "def get_size(filename):\n", - " if filename.endswith('.pfw'):\n", - " size = os.stat(filename).st_size\n", - " elif filename.endswith('.pfw.gz'):\n", - " index_file = f\"{filename}.zindex\"\n", - " line_number = zindex.get_max_line(filename, index_file=index_file,debug=False, verbose=False)\n", - " size = line_number * 256\n", - " logging.debug(f\" The {filename} has {size/1024**3} GB size\")\n", - " return int(size)\n", - "\n", - "\n", - "def generate_line_batches(filename, max_line):\n", - " batch_size = 16*1024\n", - " for start in range(0, max_line, batch_size):\n", - " end = min((start + batch_size - 1) , (max_line - 1))\n", - " logging.debug(f\"Created a batch for {filename} from [{start}, {end}] lines\")\n", - " yield filename, start, end\n", - "\n", - "def load_indexed_gzip_files(filename, start, end):\n", - " index_file = f\"{filename}.zindex\"\n", - " json_lines = zindex.zquery(filename, index_file=index_file,\n", - " raw=f\"select a.line from LineOffsets a where a.line >= {start} AND a.line <= {end};\", debug=False, verbose=False)\n", - " logging.debug(f\"Read {len(json_lines)} json lines for [{start}, {end}]\")\n", - " return json_lines" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "def load_profile(line):\n", - " d = {}\n", - " if line is not None and line !=\"\" and len(line) > 0 and \"[\" != line[0] and line != \"\\n\" :\n", - " try:\n", - " unicode_line = ''.join([i if ord(i) < 128 else '#' for i in line])\n", - " val = json.loads(unicode_line)\n", - " if \"pid\" in d:\n", - " d[\"pid\"] = val[\"pid\"]\n", - " if \"tid\" in d:\n", - " d[\"tid\"] = val[\"tid\"]\n", - " if \"ts\" in d:\n", - " d[\"ts_us\"] = int(val[\"ts\"])\n", - " d[\"filename\"] = \"NA\"\n", - " if \"args\" in val:\n", - " if \"time\" in val[\"args\"]:\n", - " d[\"dur_sec\"] = float(val[\"args\"][\"time\"])\n", - " if \"freq\" in val[\"args\"]:\n", - " d[\"freq\"] = val[\"args\"][\"freq\"]\n", - " if \"size_sum\" in val[\"args\"]:\n", - " d[\"size_bytes\"] = val[\"args\"][\"size_sum\"]\n", - " if \"fname\" in val[\"args\"] and val[\"args\"][\"fname\"]:\n", - " d[\"filename\"] = val[\"args\"][\"fname\"]\n", - " d[\"func_id\"] = val[\"name\"]\n", - " d[\"cat\"] = val[\"cat\"]\n", - " except Exception as error:\n", - " logging.error(f\"Processing {line} failed with {error}\")\n", - " return d\n", - "\n", - "\n", - "def load_trace(line):\n", - " d = {}\n", - " if line is not None and line !=\"\" and len(line) > 0 and \"[\" != line[0] and line != \"\\n\" :\n", - " try:\n", - " unicode_line = ''.join([i if ord(i) < 128 else '#' for i in line])\n", - " val = json.loads(unicode_line)\n", - " d[\"name\"] = val[\"name\"]\n", - " d[\"cat\"] = val[\"cat\"]\n", - " if \"pid\" in val:\n", - " d[\"pid\"] = val[\"pid\"]\n", - " if \"tid\" in val:\n", - " d[\"tid\"] = val[\"tid\"]\n", - " d[\"ts\"] = 0\n", - " d[\"dur\"] = 0\n", - " if \"ts\" in val:\n", - " d[\"ts\"] = int(val[\"ts\"])\n", - " d[\"te\"] = int(val[\"ts\"])\n", - " d[\"dur\"] = 1\n", - " if \"dur\" in val:\n", - " d[\"dur\"] = int(val[\"dur\"])\n", - " if \"args\" in val and \"hhash\" in val[\"args\"]: \n", - " d[\"hhash\"] = val[\"args\"][\"hhash\"]\n", - " if \"ts\" in val:\n", - " interval = I.closedopen(d[\"ts\"], d[\"ts\"] + 1)\n", - " if d[\"dur\"] > 0:\n", - " d[\"te\"] = int(val[\"ts\"]) + d[\"dur\"]\n", - " interval = I.closedopen(d[\"ts\"], d[\"ts\"] + d[\"dur\"])\n", - " d[\"interval\"] = I.to_string(interval)\n", - " if val[\"ph\"] != \"M\":\n", - " d[\"type\"] = 0 \n", - " if \"args\" in val: \n", - " if \"hhash\" in val[\"args\"]:\n", - " d[\"hhash\"] = val[\"args\"][\"hhash\"]\n", - " if \"size_sum\" in val[\"args\"]:\n", - " d[\"size\"] = val[\"args\"][\"size_sum\"]\n", - " if \"fhash\" in val[\"args\"]:\n", - " d[\"fhash\"] = val[\"args\"][\"fhash\"]\n", - " else:\n", - " if val[\"name\"] == \"FH\":\n", - " d[\"type\"] = 1\n", - " if \"args\" in val:\n", - " if \"name\" in val[\"args\"]:\n", - " d[\"name\"] = val[\"args\"][\"name\"]\n", - " if \"value\" in val[\"args\"]:\n", - " d[\"hash\"] = val[\"args\"][\"value\"]\n", - " elif val[\"name\"] == \"HH\":\n", - " d[\"type\"] = 2\n", - " if \"args\" in val:\n", - " if \"name\" in val[\"args\"]:\n", - " d[\"name\"] = val[\"args\"][\"name\"]\n", - " if \"value\" in val[\"args\"]:\n", - " d[\"hash\"] = val[\"args\"][\"value\"]\n", - " \n", - " except Exception as error:\n", - " logging.error(f\"Processing {line} failed with {error}\")\n", - " return d" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create Dask Dataframe" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-11-08 10:50:17,308 [INFO]: Created index for 1 files in /var/tmp/haridev/ipykernel_3664668/864066620.py:3\n", - "2024-11-08 10:50:17,487 [INFO]: Total size of all files are bytes in /var/tmp/haridev/ipykernel_3664668/864066620.py:6\n", - "2024-11-08 10:50:17,569 [INFO]: Max lines per file are [('/usr/workspace/haridev/xio//ops-32_files-8/RAW-BUF.pfw.gz', 4906748)] in /var/tmp/haridev/ipykernel_3664668/864066620.py:8\n", - "2024-11-08 10:50:17,571 [INFO]: Loading 300 batches out of 1 files and has 4906748 lines overall in /var/tmp/haridev/ipykernel_3664668/864066620.py:16\n" - ] - } - ], - "source": [ - "if len(file_pattern) > 0:\n", - " dask.bag.from_sequence(file_pattern).map(create_index).compute()\n", - " logging.info(f\"Created index for {len(file_pattern)} files\")\n", - " total_size = dask.bag.from_sequence(file_pattern).map(get_size).sum()\n", - " n_partition = math.ceil(total_size.compute() / (128 * 1024 ** 2))\n", - " logging.info(f\"Total size of all files are {total_size} bytes\")\n", - " max_line_numbers = dask.bag.from_sequence(file_pattern).map(get_linenumber).compute()\n", - " logging.info(f\"Max lines per file are {max_line_numbers}\")\n", - " json_line_delayed = []\n", - " total_lines = 0\n", - " for filename, max_line in max_line_numbers:\n", - " total_lines += max_line\n", - " for _, start, end in generate_line_batches(filename, max_line):\n", - " json_line_delayed.append((filename, start, end))\n", - "\n", - " logging.info(f\"Loading {len(json_line_delayed)} batches out of {len(file_pattern)} files and has {total_lines} lines overall\")\n", - " json_line_bags = []\n", - " for filename, start, end in json_line_delayed:\n", - " num_lines = end - start + 1\n", - " json_line_bags.append(dask.delayed(load_indexed_gzip_files, nout=num_lines)(filename, start, end))\n", - " json_lines = dask.bag.concat(json_line_bags)\n", - " if is_trace:\n", - " pfw_bag = json_lines.map(load_trace).filter(lambda x: \"name\" in x)\n", - " else:\n", - " pfw_bag = json_lines.map(load_profile).filter(lambda x: \"func_id\" in x)\n", - " pfw_bag.take(1)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "if is_trace:\n", - " columns = {'hhash': \"string[pyarrow]\", 'pid': \"uint64[pyarrow]\", 'tid': \"uint64[pyarrow]\",\n", - " 'cat': \"string[pyarrow]\", 'name': \"string[pyarrow]\", 'type': \"uint8[pyarrow]\",\n", - " 'ts': \"uint64[pyarrow]\", 'te': \"uint64[pyarrow]\", 'dur': \"uint64[pyarrow]\", 'interval': \"string[pyarrow]\", \n", - " 'size': \"uint64[pyarrow]\", 'fhash': \"string[pyarrow]\", 'hash': \"string[pyarrow]\", \n", - " }\n", - "else:\n", - " columns = {'pid': \"uint64[pyarrow]\", 'tid': \"uint64[pyarrow]\",\n", - " 'ts_us': \"uint64[pyarrow]\", 'dur_sec': \"float32[pyarrow]\", \n", - " 'freq': \"uint64[pyarrow]\", 'size_bytes': \"uint64[pyarrow]\", 'name': \"string[pyarrow]\", \n", - " 'filename': \"string[pyarrow]\", \n", - " 'cat': \"string[pyarrow]\"}" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "events = pfw_bag.to_dataframe(meta=columns)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "events = events.repartition(npartitions=n_partition).persist()\n", - "_ = wait(events)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "fhash = events.query(\"type == 1\")[[\"name\",\"hash\"]]\n", - "hhash = events.query(\"type == 2\")[[\"name\",\"hash\"]]\n", - "event = events.query(\"type == 0\")\n", - "fhashes = fhash.query(\"name.str.contains('file_0')\").compute()[\"hash\"]\n", - "fhashes = fhashes.to_list()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namehash
1780/home/cc/datacrumbs/build/data/file_0_0.dat2337428835aa42fa0d2764000f669460
4468/home/cc/datacrumbs/build/data/file_0_1.dat288f886adbe25d76fe445beb9911af78
7179/home/cc/datacrumbs/build/data/file_0_2.datec6c04037b2c4f483dc3c933ec088cc8
9858/home/cc/datacrumbs/build/data/file_0_3.dat176264bd47969d9f55d0a6d5b8021e21
12604/home/cc/datacrumbs/build/data/file_0_4.datedea10a5c821e90758563992efb303dc
15252/home/cc/datacrumbs/build/data/file_0_5.datc072c6a531057c46d034ace752f465e5
1555/home/cc/datacrumbs/build/data/file_0_6.datdf67ba39da3433bf9d33ddd244ea8a7a
4278/home/cc/datacrumbs/build/data/file_0_7.dat4399451135d75f5c5be27cd4057b34c8
\n", - "
" - ], - "text/plain": [ - " name \\\n", - "1780 /home/cc/datacrumbs/build/data/file_0_0.dat \n", - "4468 /home/cc/datacrumbs/build/data/file_0_1.dat \n", - "7179 /home/cc/datacrumbs/build/data/file_0_2.dat \n", - "9858 /home/cc/datacrumbs/build/data/file_0_3.dat \n", - "12604 /home/cc/datacrumbs/build/data/file_0_4.dat \n", - "15252 /home/cc/datacrumbs/build/data/file_0_5.dat \n", - "1555 /home/cc/datacrumbs/build/data/file_0_6.dat \n", - "4278 /home/cc/datacrumbs/build/data/file_0_7.dat \n", - "\n", - " hash \n", - "1780 2337428835aa42fa0d2764000f669460 \n", - "4468 288f886adbe25d76fe445beb9911af78 \n", - "7179 ec6c04037b2c4f483dc3c933ec088cc8 \n", - "9858 176264bd47969d9f55d0a6d5b8021e21 \n", - "12604 edea10a5c821e90758563992efb303dc \n", - "15252 c072c6a531057c46d034ace752f465e5 \n", - "1555 df67ba39da3433bf9d33ddd244ea8a7a \n", - "4278 4399451135d75f5c5be27cd4057b34c8 " - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "fhash.query(\"name.str.contains('file_0')\").compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hhashpidtidcatnametypetstedurintervalsizefhashhash
1781ecd9cccc050c9e893ab33b1a228fe76d102273102273sysopenat0460296305460586748290443[460296305,460586748)<NA>2337428835aa42fa0d2764000f669460<NA>
1861ecd9cccc050c9e893ab33b1a228fe76d102273102273syswrite0461657534461898426240892[461657534,461898426)10242337428835aa42fa0d2764000f669460<NA>
1897ecd9cccc050c9e893ab33b1a228fe76d102273102273sysread046192906046198969160631[461929060,461989691)10242337428835aa42fa0d2764000f669460<NA>
1958ecd9cccc050c9e893ab33b1a228fe76d102273102273syswrite0463052970463166181113211[463052970,463166181)10242337428835aa42fa0d2764000f669460<NA>
1976ecd9cccc050c9e893ab33b1a228fe76d102273102273sysread046318594946320934423395[463185949,463209344)10242337428835aa42fa0d2764000f669460<NA>
..........................................
9825ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015732545505615732548348428428[157325455056,157325483484)163844399451135d75f5c5be27cd4057b34c8<NA>
9921ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015732741854715732749929380746[157327418547,157327499293)163844399451135d75f5c5be27cd4057b34c8<NA>
9983ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015732929872215732932571426992[157329298722,157329325714)163844399451135d75f5c5be27cd4057b34c8<NA>
10047ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015733118867115733128655497883[157331188671,157331286554)163844399451135d75f5c5be27cd4057b34c8<NA>
10049ecd9cccc050c9e893ab33b1a228fe76d103600103600sysclose01573312909941573312952614267[157331290994,157331295261)<NA>4399451135d75f5c5be27cd4057b34c8<NA>
\n", - "

12416 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " hhash pid tid cat name type \\\n", - "1781 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys openat 0 \n", - "1861 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys write 0 \n", - "1897 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys read 0 \n", - "1958 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys write 0 \n", - "1976 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys read 0 \n", - "... ... ... ... ... ... ... \n", - "9825 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "9921 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "9983 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "10047 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "10049 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys close 0 \n", - "\n", - " ts te dur interval size \\\n", - "1781 460296305 460586748 290443 [460296305,460586748) \n", - "1861 461657534 461898426 240892 [461657534,461898426) 1024 \n", - "1897 461929060 461989691 60631 [461929060,461989691) 1024 \n", - "1958 463052970 463166181 113211 [463052970,463166181) 1024 \n", - "1976 463185949 463209344 23395 [463185949,463209344) 1024 \n", - "... ... ... ... ... ... \n", - "9825 157325455056 157325483484 28428 [157325455056,157325483484) 16384 \n", - "9921 157327418547 157327499293 80746 [157327418547,157327499293) 16384 \n", - "9983 157329298722 157329325714 26992 [157329298722,157329325714) 16384 \n", - "10047 157331188671 157331286554 97883 [157331188671,157331286554) 16384 \n", - "10049 157331290994 157331295261 4267 [157331290994,157331295261) \n", - "\n", - " fhash hash \n", - "1781 2337428835aa42fa0d2764000f669460 \n", - "1861 2337428835aa42fa0d2764000f669460 \n", - "1897 2337428835aa42fa0d2764000f669460 \n", - "1958 2337428835aa42fa0d2764000f669460 \n", - "1976 2337428835aa42fa0d2764000f669460 \n", - "... ... ... \n", - "9825 4399451135d75f5c5be27cd4057b34c8 \n", - "9921 4399451135d75f5c5be27cd4057b34c8 \n", - "9983 4399451135d75f5c5be27cd4057b34c8 \n", - "10047 4399451135d75f5c5be27cd4057b34c8 \n", - "10049 4399451135d75f5c5be27cd4057b34c8 \n", - "\n", - "[12416 rows x 13 columns]" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "event.query(\"fhash.isin(@value)\", local_dict={\"value\": fhashes}).compute()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Analysis" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hhashpidtidcatnametypetstedurintervalsizefhashhash
1781ecd9cccc050c9e893ab33b1a228fe76d102273102273sysopenat0460296305460586748290443[460296305,460586748)<NA>2337428835aa42fa0d2764000f669460<NA>
1861ecd9cccc050c9e893ab33b1a228fe76d102273102273syswrite0461657534461898426240892[461657534,461898426)10242337428835aa42fa0d2764000f669460<NA>
1897ecd9cccc050c9e893ab33b1a228fe76d102273102273sysread046192906046198969160631[461929060,461989691)10242337428835aa42fa0d2764000f669460<NA>
1958ecd9cccc050c9e893ab33b1a228fe76d102273102273syswrite0463052970463166181113211[463052970,463166181)10242337428835aa42fa0d2764000f669460<NA>
1976ecd9cccc050c9e893ab33b1a228fe76d102273102273sysread046318594946320934423395[463185949,463209344)10242337428835aa42fa0d2764000f669460<NA>
..........................................
9825ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015732545505615732548348428428[157325455056,157325483484)163844399451135d75f5c5be27cd4057b34c8<NA>
9921ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015732741854715732749929380746[157327418547,157327499293)163844399451135d75f5c5be27cd4057b34c8<NA>
9983ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015732929872215732932571426992[157329298722,157329325714)163844399451135d75f5c5be27cd4057b34c8<NA>
10047ecd9cccc050c9e893ab33b1a228fe76d103600103600sysread015733118867115733128655497883[157331188671,157331286554)163844399451135d75f5c5be27cd4057b34c8<NA>
10049ecd9cccc050c9e893ab33b1a228fe76d103600103600sysclose01573312909941573312952614267[157331290994,157331295261)<NA>4399451135d75f5c5be27cd4057b34c8<NA>
\n", - "

12416 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " hhash pid tid cat name type \\\n", - "1781 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys openat 0 \n", - "1861 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys write 0 \n", - "1897 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys read 0 \n", - "1958 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys write 0 \n", - "1976 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 sys read 0 \n", - "... ... ... ... ... ... ... \n", - "9825 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "9921 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "9983 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "10047 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys read 0 \n", - "10049 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 sys close 0 \n", - "\n", - " ts te dur interval size \\\n", - "1781 460296305 460586748 290443 [460296305,460586748) \n", - "1861 461657534 461898426 240892 [461657534,461898426) 1024 \n", - "1897 461929060 461989691 60631 [461929060,461989691) 1024 \n", - "1958 463052970 463166181 113211 [463052970,463166181) 1024 \n", - "1976 463185949 463209344 23395 [463185949,463209344) 1024 \n", - "... ... ... ... ... ... \n", - "9825 157325455056 157325483484 28428 [157325455056,157325483484) 16384 \n", - "9921 157327418547 157327499293 80746 [157327418547,157327499293) 16384 \n", - "9983 157329298722 157329325714 26992 [157329298722,157329325714) 16384 \n", - "10047 157331188671 157331286554 97883 [157331188671,157331286554) 16384 \n", - "10049 157331290994 157331295261 4267 [157331290994,157331295261) \n", - "\n", - " fhash hash \n", - "1781 2337428835aa42fa0d2764000f669460 \n", - "1861 2337428835aa42fa0d2764000f669460 \n", - "1897 2337428835aa42fa0d2764000f669460 \n", - "1958 2337428835aa42fa0d2764000f669460 \n", - "1976 2337428835aa42fa0d2764000f669460 \n", - "... ... ... \n", - "9825 4399451135d75f5c5be27cd4057b34c8 \n", - "9921 4399451135d75f5c5be27cd4057b34c8 \n", - "9983 4399451135d75f5c5be27cd4057b34c8 \n", - "10047 4399451135d75f5c5be27cd4057b34c8 \n", - "10049 4399451135d75f5c5be27cd4057b34c8 \n", - "\n", - "[12416 rows x 13 columns]" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\n", - "interesting_events = event.query(\"fhash.isin(@value)\", local_dict={\"value\": fhashes}).sort_values(\"ts\")\n", - "interesting_events.compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 1\n", - "1 1024\n", - "2 1024\n", - "3 1024\n", - "4 1024\n", - " ... \n", - "12411 16384\n", - "12412 16384\n", - "12413 16384\n", - "12414 16384\n", - "12415 1\n", - "Name: size, Length: 12416, dtype: uint64[pyarrow]" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "interesting_events[\"combined_name\"] = interesting_events[\"name\"] + \"-\" + interesting_events[\"cat\"]\n", - "ts_events = interesting_events[[\"size\"]].compute().reset_index().drop(\"index\", axis=1)\n", - "ts_events[\"size\"].fillna(value=1.0)" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
intervalname
1781[460296305,460586748)openat
1861[461657534,461898426)write
1897[461929060,461989691)read
1958[463052970,463166181)write
1976[463185949,463209344)read
.........
9825[157325455056,157325483484)read
9921[157327418547,157327499293)read
9983[157329298722,157329325714)read
10047[157331188671,157331286554)read
10049[157331290994,157331295261)close
\n", - "

12416 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " interval name\n", - "1781 [460296305,460586748) openat\n", - "1861 [461657534,461898426) write\n", - "1897 [461929060,461989691) read\n", - "1958 [463052970,463166181) write\n", - "1976 [463185949,463209344) read\n", - "... ... ...\n", - "9825 [157325455056,157325483484) read\n", - "9921 [157327418547,157327499293) read\n", - "9983 [157329298722,157329325714) read\n", - "10047 [157331188671,157331286554) read\n", - "10049 [157331290994,157331295261) close\n", - "\n", - "[12416 rows x 2 columns]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "interesting_intervals = interesting_events[[\"interval\",\"name\"]].compute()\n", - "interesting_intervals" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "# interesting_events[\"interval\"] = interesting_events.apply(lambda x: I.to_string(I.closed(x[\"ts\"], x[\"ts\"]+x[\"dur\"])), axis=1)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "([[460296305,460586748),\n", - " [461657534,461898426),\n", - " [461929060,461989691),\n", - " [463052970,463166181),\n", - " [463185949,463209344),\n", - " [464270483,464347630),\n", - " [464367094,464391244),\n", - " [465452044,465529545),\n", - " [465542671,465557657),\n", - " [466617931,466787067)],\n", - " 12416)" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "def group_func(df):\n", - " val = I.empty()\n", - " for index, value in df.items():\n", - " if str(value) != 'NA':\n", - " pad_interval = I.from_string(str(value), int)\n", - " val = val.union(pad_interval)\n", - " logging.debug(f\"Grouped Range into {val}\")\n", - " return I.to_string(val)\n", - "def union_portions():\n", - " return dd.Aggregation(\n", - " 'union_portions',\n", - " chunk=lambda s: s.apply(group_func),\n", - " agg=lambda s: s.apply(group_func)\n", - " )\n", - "relevant_intervals = interesting_events[[\"interval\"]].reduction(chunk=lambda s: s.apply(group_func), aggregate=lambda s1: s1.apply(group_func))[\"interval\"].compute()\n", - "relevant_intervals = I.from_string(relevant_intervals, int)\n", - "relevant_intervals_list = list(relevant_intervals)\n", - "relevant_intervals_list[:10], len(relevant_intervals_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(460296305, 157331295261)" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "min_ts = relevant_intervals_list[0].lower\n", - "max_te = relevant_intervals_list[-1].upper\n", - "min_ts, max_te" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hhashpidtidcatnametypetstedurintervalsizefhashhash
1587ecd9cccc050c9e893ab33b1a228fe76d102273102273kernel__mod_node_page_state0460196345460196775430[460196345,460196775)<NA><NA><NA>
1590ecd9cccc050c9e893ab33b1a228fe76d102273102273kernelnext_uptodate_page0460198409460198925516[460198409,460198925)<NA><NA><NA>
1591ecd9cccc050c9e893ab33b1a228fe76d102273102273kernel__mod_node_page_state0460201504460201812308[460201504,460201812)<NA><NA><NA>
1592ecd9cccc050c9e893ab33b1a228fe76d102273102273kernel__mod_lruvec_page_state04602006874602021611474[460200687,460202161)<NA><NA><NA>
1593ecd9cccc050c9e893ab33b1a228fe76d102273102273kernelpage_add_file_rmap04601997944602024672673[460199794,460202467)<NA><NA><NA>
..........................................
10056ecd9cccc050c9e893ab33b1a228fe76d103600103600kernel__mod_node_page_state0157331383211157331383943732[157331383211,157331383943)<NA><NA><NA>
10057ecd9cccc050c9e893ab33b1a228fe76d103600103600kernel__mod_zone_page_state0157331385911157331386579668[157331385911,157331386579)<NA><NA><NA>
10058ecd9cccc050c9e893ab33b1a228fe76d103600103600kernel__mod_node_page_state0157331388446157331389308862[157331388446,157331389308)<NA><NA><NA>
10059ecd9cccc050c9e893ab33b1a228fe76d103600103600kernel__mod_zone_page_state0157331391133157331391930797[157331391133,157331391930)<NA><NA><NA>
10060ecd9cccc050c9e893ab33b1a228fe76d103600103600kernel__mod_node_page_state0157331393759157331394674915[157331393759,157331394674)<NA><NA><NA>
\n", - "

4759821 rows × 13 columns

\n", - "
" - ], - "text/plain": [ - " hhash pid tid cat \\\n", - "1587 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 kernel \n", - "1590 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 kernel \n", - "1591 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 kernel \n", - "1592 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 kernel \n", - "1593 ecd9cccc050c9e893ab33b1a228fe76d 102273 102273 kernel \n", - "... ... ... ... ... \n", - "10056 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 kernel \n", - "10057 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 kernel \n", - "10058 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 kernel \n", - "10059 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 kernel \n", - "10060 ecd9cccc050c9e893ab33b1a228fe76d 103600 103600 kernel \n", - "\n", - " name type ts te dur \\\n", - "1587 __mod_node_page_state 0 460196345 460196775 430 \n", - "1590 next_uptodate_page 0 460198409 460198925 516 \n", - "1591 __mod_node_page_state 0 460201504 460201812 308 \n", - "1592 __mod_lruvec_page_state 0 460200687 460202161 1474 \n", - "1593 page_add_file_rmap 0 460199794 460202467 2673 \n", - "... ... ... ... ... ... \n", - "10056 __mod_node_page_state 0 157331383211 157331383943 732 \n", - "10057 __mod_zone_page_state 0 157331385911 157331386579 668 \n", - "10058 __mod_node_page_state 0 157331388446 157331389308 862 \n", - "10059 __mod_zone_page_state 0 157331391133 157331391930 797 \n", - "10060 __mod_node_page_state 0 157331393759 157331394674 915 \n", - "\n", - " interval size fhash hash \n", - "1587 [460196345,460196775) \n", - "1590 [460198409,460198925) \n", - "1591 [460201504,460201812) \n", - "1592 [460200687,460202161) \n", - "1593 [460199794,460202467) \n", - "... ... ... ... ... \n", - "10056 [157331383211,157331383943) \n", - "10057 [157331385911,157331386579) \n", - "10058 [157331388446,157331389308) \n", - "10059 [157331391133,157331391930) \n", - "10060 [157331393759,157331394674) \n", - "\n", - "[4759821 rows x 13 columns]" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "filtered_events = event.query(f\"ts >= {min_ts - 1e5} and te <= {max_te + 1e5} and dur > 0\")\n", - "filtered_events.compute()\n", - "# filtered_events = event" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "33dc0a4b74ff49a4ac4d24b14950b16f", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/12416 [00:00= {interval.lower} and ts <= {interval.upper}) or (te >= {interval.lower} and te <= {interval.upper})\"\n", - " b_overlaps_a = f\"({interval.lower} >= ts and {interval.lower} <= te) or ({interval.upper} >= ts and {interval.upper} <= te)\"\n", - " batch = filtered_events.query(f\"{a_overlaps_b} or {b_overlaps_a}\")[[\"combined_name\", \"dur\"]].groupby(\"combined_name\").sum().compute()\n", - " if ops in ops_map:\n", - " op_value = ops_map[ops]\n", - " else:\n", - " ops_counter += 1\n", - " op_value = ops_counter\n", - " ops_map[ops] = op_value\n", - " batch.loc['op'] = [op_value]\n", - " event_batch_per_sys_call.append(batch)\n", - " count += 1\n" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "869f3992b63f4e7793f67139003e4146", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/11 [00:00 1 and values[0] not in all_mapped_functions:\n", - " # print(values[0])\n", - " missed_mapping.add(values[0])\n", - " return missed_mapping\n", - "\n", - "def print_mapping(missed_mapping):\n", - " for index, col in enumerate(missed_mapping):\n", - " if index % 10 == 9:\n", - " print(f\"\\\"{col}\\\",\")\n", - " else:\n", - " print(f\"\\\"{col}\\\", \", end=\"\")\n", - " \n", - "def find_most_related_functions(category, ddf, columns, variance_target):\n", - " ignore_columns = [\"write-sys\",\"main\", \"read-sys\",\"write\",\"open64\",\"open\", ]\n", - " y_columns = [\"BW\"]\n", - " x_columns = []\n", - " for column in columns:\n", - " if column not in ignore_columns:\n", - " col = ddf.columns[ddf.columns.str.contains(column)]\n", - " if len(col) > 0:\n", - " x_columns.append(col[0])\n", - " # print(x_columns)\n", - " if len(x_columns) < 1:\n", - " return 0, 0, [], (0, 0, 0)\n", - " x = ddf.loc[:, x_columns].values\n", - " y = ddf.loc[:, y_columns].values\n", - " regressor = RandomForestRegressor(n_estimators=100, random_state=0, oob_score=True)\n", - " _ = regressor.fit(x, y.ravel())\n", - " oob_score = regressor.oob_score_\n", - " # print(f'Out-of-Bag Score: {oob_score}')\n", - "\n", - " # Making predictions on the same data or new data\n", - " predictions = regressor.predict(x)\n", - "\n", - " # Evaluating the model\n", - " mse = mean_absolute_percentage_error(y, predictions)\n", - " # print(f'Mean Squared Error: {mse}')\n", - "\n", - " r2 = r2_score(y, predictions)\n", - " # print(f'R-squared: {r2}')\n", - " \n", - " f_i = list(zip(x_columns,regressor.feature_importances_))\n", - " f_i.sort(reverse=True, key = lambda x : x[1])\n", - " variances = [x[1] for x in f_i]\n", - " required_values = (np.cumsum(variances)<=variance_target).argmin() + 1\n", - " most_f_i = f_i[:required_values]\n", - " most_important_features = [x[0] for x in most_f_i]\n", - " \n", - " # print(category, np.sum(variances[:required_values]), required_values, most_important_features)\n", - " return np.sum(variances[:required_values]), required_values, most_important_features, (oob_score, mse, r2)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Check for missed Mapping" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "Checking missed mapping for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-64_ts-64m-RAW-DIRECT.pfw.gz.jsonl\n", - "\"write\", \n", - "\n", - "Checking missed mapping for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-32_files-8-RAW-BUF.pfw.gz.jsonl\n", - "\n", - "\n", - "Checking missed mapping for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-32_files-8-RAW-DIRECT.pfw.gz.jsonl\n", - "\n", - "\n", - "Checking missed mapping for dataset /usr/workspace/haridev/xio//output/jslines/read_ops-32_files-8-RAW-DIRECT.pfw.gz.jsonl\n", - "\"main\", \n", - "\n", - "Checking missed mapping for dataset /usr/workspace/haridev/xio//output/jslines/read_ops-32_files-8-RAW-BUF.pfw.gz.jsonl\n", - "\"main\", \n", - "\n", - "Checking missed mapping for dataset /usr/workspace/haridev/xio//output/jslines/openat_ops-32_files-8-RAW-BUF.pfw.gz.jsonl\n", - "\"open64\", \"main\", \"open\", \n", - "\n", - "Checking missed mapping for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-64_ts-64m-RAW-BUFFERED.pfw.gz.jsonl\n", - "\"write\", " - ] - } - ], - "source": [ - "all_mapped_functions = flatten_mapped_function(function_mapping)\n", - "\n", - "for trace in analysis_files:\n", - " print(f\"\\n\\nChecking missed mapping for dataset {trace}\")\n", - " ddf = load_trace(trace)\n", - " missed_mapping = get_missed_mapping(ddf, all_mapped_functions)\n", - " print_mapping(missed_mapping)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Build a ML model" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "Creating model for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-64_ts-64m-RAW-DIRECT.pfw.gz.jsonl\n", - "1 /9 important features in vfs gives variance:99.76 % r2:0.96 mape:0.00 \n", - "11 /195 important features in ext4 gives variance:99.00 % r2:0.95 mape:0.00 \n", - "20 /63 important features in page_cache gives variance:99.14 % r2:0.86 mape:0.02 \n", - "2 /3 important features in vm gives variance:100.00% r2:0.15 mape:0.03 \n", - "1 /1 important features in profile gives variance:100.00% r2:0.81 mape:0.02 \n", - "0 /6 important features in file_cache gives variance:0.00 % r2:0.00 mape:0.00 \n", - "1 /2 important features in sched gives variance:100.00% r2:0.77 mape:0.02 \n", - "2 /4 important features in mount gives variance:100.00% r2:0.82 mape:0.02 \n", - "1 /1 important features in dentry gives variance:100.00% r2:0.78 mape:0.02 \n", - "0 /1 important features in ima gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /4 important features in security gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in apparmor gives variance:100.00% r2:0.78 mape:0.02 \n", - "2 /6 important features in crypto gives variance:99.53 % r2:0.80 mape:0.02 \n", - "2 /9 important features in memory gives variance:99.32 % r2:0.81 mape:0.02 \n", - "36 /43 important features in bio gives variance:99.29 % r2:0.86 mape:0.01 \n", - "0 /1 important features in quota gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in block gives variance:100.00% r2:0.84 mape:0.02 \n", - "3 /3 important features in direct-io gives variance:100.00% r2:0.84 mape:0.02 \n", - "\n", - "\n", - "Creating model for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-32_files-8-RAW-BUF.pfw.gz.jsonl\n", - "4 /9 important features in vfs gives variance:99.97 % r2:0.99 mape:0.05 \n", - "25 /195 important features in ext4 gives variance:99.10 % r2:0.99 mape:0.03 \n", - "19 /63 important features in page_cache gives variance:99.91 % r2:0.99 mape:0.05 \n", - "2 /3 important features in vm gives variance:100.00% r2:0.78 mape:0.30 \n", - "1 /1 important features in profile gives variance:100.00% r2:0.02 mape:0.68 \n", - "1 /6 important features in file_cache gives variance:100.00% r2:0.00 mape:0.69 \n", - "1 /2 important features in sched gives variance:100.00% r2:0.02 mape:0.68 \n", - "2 /4 important features in mount gives variance:100.00% r2:0.27 mape:0.50 \n", - "1 /1 important features in dentry gives variance:100.00% r2:0.50 mape:0.48 \n", - "0 /1 important features in ima gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /4 important features in security gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in apparmor gives variance:100.00% r2:0.90 mape:0.22 \n", - "1 /6 important features in crypto gives variance:100.00% r2:0.00 mape:0.69 \n", - "3 /9 important features in memory gives variance:100.00% r2:0.13 mape:0.64 \n", - "0 /43 important features in bio gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in quota gives variance:0.00 % r2:0.00 mape:0.00 \n", - "1 /6 important features in block gives variance:100.00% r2:0.02 mape:0.68 \n", - "0 /3 important features in direct-io gives variance:0.00 % r2:0.00 mape:0.00 \n", - "\n", - "\n", - "Creating model for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-32_files-8-RAW-DIRECT.pfw.gz.jsonl\n", - "4 /9 important features in vfs gives variance:99.99 % r2:0.99 mape:0.10 \n", - "49 /195 important features in ext4 gives variance:99.03 % r2:1.00 mape:0.05 \n", - "4 /63 important features in page_cache gives variance:99.25 % r2:1.00 mape:0.01 \n", - "2 /3 important features in vm gives variance:100.00% r2:0.99 mape:0.13 \n", - "1 /1 important features in profile gives variance:100.00% r2:0.01 mape:2.10 \n", - "1 /6 important features in file_cache gives variance:100.00% r2:0.00 mape:2.13 \n", - "1 /2 important features in sched gives variance:100.00% r2:0.01 mape:2.10 \n", - "2 /4 important features in mount gives variance:100.00% r2:0.33 mape:1.54 \n", - "1 /1 important features in dentry gives variance:100.00% r2:0.55 mape:1.36 \n", - "0 /1 important features in ima gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /4 important features in security gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in apparmor gives variance:100.00% r2:0.86 mape:0.68 \n", - "2 /6 important features in crypto gives variance:100.00% r2:0.84 mape:0.44 \n", - "1 /9 important features in memory gives variance:100.00% r2:0.94 mape:0.44 \n", - "22 /43 important features in bio gives variance:99.38 % r2:1.00 mape:0.02 \n", - "0 /1 important features in quota gives variance:0.00 % r2:0.00 mape:0.00 \n", - "2 /6 important features in block gives variance:100.00% r2:0.03 mape:2.06 \n", - "2 /3 important features in direct-io gives variance:100.00% r2:0.99 mape:0.08 \n", - "\n", - "\n", - "Creating model for dataset /usr/workspace/haridev/xio//output/jslines/read_ops-32_files-8-RAW-DIRECT.pfw.gz.jsonl\n", - "2 /9 important features in vfs gives variance:100.00% r2:1.00 mape:0.09 \n", - "8 /195 important features in ext4 gives variance:99.03 % r2:1.00 mape:0.02 \n", - "6 /63 important features in page_cache gives variance:99.90 % r2:0.99 mape:0.06 \n", - "3 /3 important features in vm gives variance:100.00% r2:0.00 mape:1.94 \n", - "1 /1 important features in profile gives variance:100.00% r2:0.01 mape:1.94 \n", - "1 /6 important features in file_cache gives variance:100.00% r2:0.00 mape:1.94 \n", - "1 /2 important features in sched gives variance:100.00% r2:0.01 mape:1.94 \n", - "0 /4 important features in mount gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in dentry gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in ima gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /4 important features in security gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in apparmor gives variance:100.00% r2:0.86 mape:0.60 \n", - "2 /6 important features in crypto gives variance:100.00% r2:0.57 mape:1.02 \n", - "1 /9 important features in memory gives variance:99.91 % r2:0.87 mape:0.41 \n", - "24 /43 important features in bio gives variance:99.37 % r2:0.95 mape:0.08 \n", - "0 /1 important features in quota gives variance:0.00 % r2:0.00 mape:0.00 \n", - "1 /6 important features in block gives variance:100.00% r2:0.00 mape:1.94 \n", - "1 /3 important features in direct-io gives variance:100.00% r2:0.91 mape:0.27 \n", - "\n", - "\n", - "Creating model for dataset /usr/workspace/haridev/xio//output/jslines/read_ops-32_files-8-RAW-BUF.pfw.gz.jsonl\n", - "2 /9 important features in vfs gives variance:100.00% r2:0.95 mape:0.40 \n", - "14 /195 important features in ext4 gives variance:99.11 % r2:0.85 mape:0.47 \n", - "3 /63 important features in page_cache gives variance:99.96 % r2:0.88 mape:0.52 \n", - "2 /3 important features in vm gives variance:100.00% r2:0.00 mape:2.54 \n", - "1 /1 important features in profile gives variance:100.00% r2:0.00 mape:2.53 \n", - "4 /6 important features in file_cache gives variance:100.00% r2:0.98 mape:0.22 \n", - "1 /2 important features in sched gives variance:100.00% r2:0.00 mape:2.53 \n", - "0 /4 important features in mount gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in dentry gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in ima gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /4 important features in security gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in apparmor gives variance:100.00% r2:0.87 mape:0.82 \n", - "0 /6 important features in crypto gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /9 important features in memory gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /43 important features in bio gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in quota gives variance:0.00 % r2:0.00 mape:0.00 \n", - "1 /6 important features in block gives variance:100.00% r2:0.00 mape:2.53 \n", - "0 /3 important features in direct-io gives variance:0.00 % r2:0.00 mape:0.00 \n", - "\n", - "\n", - "Creating model for dataset /usr/workspace/haridev/xio//output/jslines/openat_ops-32_files-8-RAW-BUF.pfw.gz.jsonl\n", - "1 /9 important features in vfs gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /195 important features in ext4 gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /63 important features in page_cache gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /3 important features in vm gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /1 important features in profile gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /6 important features in file_cache gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /2 important features in sched gives variance:0.00 % r2:1.00 mape:0.00 \n", - "0 /4 important features in mount gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in dentry gives variance:0.00 % r2:0.00 mape:0.00 \n", - "1 /1 important features in ima gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /4 important features in security gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /6 important features in apparmor gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /6 important features in crypto gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /9 important features in memory gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /43 important features in bio gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /1 important features in quota gives variance:0.00 % r2:1.00 mape:0.00 \n", - "1 /6 important features in block gives variance:0.00 % r2:1.00 mape:0.00 \n", - "0 /3 important features in direct-io gives variance:0.00 % r2:0.00 mape:0.00 \n", - "\n", - "\n", - "Creating model for dataset /usr/workspace/haridev/xio//output/jslines/write_ops-64_ts-64m-RAW-BUFFERED.pfw.gz.jsonl\n", - "4 /9 important features in vfs gives variance:100.00% r2:0.85 mape:0.01 \n", - "35 /195 important features in ext4 gives variance:99.42 % r2:0.85 mape:0.01 \n", - "24 /63 important features in page_cache gives variance:99.97 % r2:0.85 mape:0.02 \n", - "2 /3 important features in vm gives variance:100.00% r2:0.85 mape:0.01 \n", - "1 /1 important features in profile gives variance:100.00% r2:0.85 mape:0.01 \n", - "0 /6 important features in file_cache gives variance:0.00 % r2:0.00 mape:0.00 \n", - "2 /2 important features in sched gives variance:100.00% r2:0.76 mape:0.04 \n", - "2 /4 important features in mount gives variance:100.00% r2:0.83 mape:0.02 \n", - "1 /1 important features in dentry gives variance:100.00% r2:0.85 mape:0.01 \n", - "0 /1 important features in ima gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /4 important features in security gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in apparmor gives variance:100.00% r2:0.79 mape:0.04 \n", - "1 /6 important features in crypto gives variance:100.00% r2:0.85 mape:0.01 \n", - "2 /9 important features in memory gives variance:100.00% r2:0.85 mape:0.01 \n", - "0 /43 important features in bio gives variance:0.00 % r2:0.00 mape:0.00 \n", - "0 /1 important features in quota gives variance:0.00 % r2:0.00 mape:0.00 \n", - "3 /6 important features in block gives variance:99.50 % r2:0.85 mape:0.02 \n", - "0 /3 important features in direct-io gives variance:0.00 % r2:0.00 mape:0.00 \n", - "Total relevant features are 191\n" - ] - } - ], - "source": [ - "\n", - "variance_target = 0.99\n", - "min_variance_target = 0\n", - "final_relevant_columns = set()\n", - "for trace in analysis_files:\n", - " \n", - " print(f\"\\n\\nCreating model for dataset {trace}\")\n", - " ddf = load_trace(trace)\n", - " ddf = clean_data(ddf).compute()\n", - " # print(ddf)\n", - " for category, columns in function_mapping.items():\n", - " explained_variance, number_of_features, features, model_parameters = find_most_related_functions(category, ddf, columns, variance_target)\n", - " #if number_of_features > 0 and min_variance_target <= explained_variance:\n", - " print(f\"{number_of_features: >3} / {len(columns): >3} important features in {category: >10} gives variance:{explained_variance*100.0:>6,.2f}% r2:{model_parameters[2]:>3,.2f} mape:{model_parameters[1]:>10,.2f} \")# group with {features}\")\n", - " # break\n", - " final_relevant_columns.update(set(features))\n", - "\n", - "print(f\"Total relevant features are {len(final_relevant_columns)}\")\n" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Creating model for all datasets\n", - " 4 / 9 important features in vfs gives variance: 99.62% r2:0.97 mape: 0.17 \n", - " 24 / 195 important features in ext4 gives variance: 99.06% r2:0.90 mape:1,086,605,791,059.25 \n", - " 8 / 63 important features in page_cache gives variance: 99.01% r2:0.92 mape: 0.16 \n", - " 2 / 3 important features in vm gives variance: 99.83% r2:0.03 mape:269,134,177,061,929.91 \n", - " 1 / 1 important features in profile gives variance:100.00% r2:0.00 mape:2,135,581,151,074,132.50 \n", - " 4 / 6 important features in file_cache gives variance: 99.95% r2:0.95 mape: 1.22 \n", - " 1 / 2 important features in sched gives variance: 99.85% r2:0.00 mape:2,448,190,913,318,968.50 \n", - " 2 / 4 important features in mount gives variance: 99.80% r2:0.03 mape:2,907,466,409,796,931.50 \n", - " 1 / 1 important features in dentry gives variance:100.00% r2:0.12 mape:4,102,043,887,920,672.50 \n", - " 1 / 1 important features in ima gives variance:100.00% r2:0.00 mape: 3.39 \n", - " 3 / 4 important features in security gives variance:100.00% r2:0.00 mape: 3.39 \n", - " 3 / 6 important features in apparmor gives variance: 99.99% r2:0.88 mape: 0.92 \n", - " 3 / 6 important features in crypto gives variance: 99.82% r2:0.11 mape: 2.20 \n", - " 4 / 9 important features in memory gives variance:100.00% r2:0.12 mape: 2.03 \n", - " 14 / 43 important features in bio gives variance: 99.19% r2:0.12 mape:2,528,907,973,526,278.50 \n", - " 1 / 1 important features in quota gives variance:100.00% r2:0.00 mape: 3.39 \n", - " 2 / 6 important features in block gives variance: 99.89% r2:0.00 mape:2,454,417,987,904,099.50 \n", - " 2 / 3 important features in direct-io gives variance: 99.91% r2:0.11 mape:3,957,355,232,226,829.00 \n" - ] - } - ], - "source": [ - "\n", - "print(f\"Creating model for all datasets\")\n", - "ddf = load_traces(output_file)\n", - "ddf = clean_data(ddf)\n", - "# print(ddf)\n", - "for category, columns in function_mapping.items():\n", - " explained_variance, number_of_features, features, model_parameters = find_most_related_functions(category, ddf, columns, variance_target)\n", - " #if number_of_features > 0 and min_variance_target <= explained_variance:\n", - " print(f\"{number_of_features: >3} / {len(columns): >3} important features in {category: >10} gives variance:{explained_variance*100.0:>6,.2f}% r2:{model_parameters[2]:>3,.2f} mape:{model_parameters[1]:>10,.2f} \")# group with {features}\")\n", - " # break\n", - " final_relevant_columns.update(set(features))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## make the number of relevance features dynamic.\n", - "1. Correlation\n", - " 1. correlation matrix.\n", - " 2. PCA\n", - " 3. Lasso Regression (L1)\n", - " 4. Auto regression\n", - "2. SHAPLEY value (feature importance)\n", - " 1. Tree SHAP\n", - "3. How portable are the interfaces (do not overfit)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. Tanzima for better models\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## models\n", - "- sequential training: gradient boost\n", - "- " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/cmake/configure_files/datacrumbs_config.h.in b/cmake/configure_files/datacrumbs_config.h.in index 24e361e0..8c2cdb61 100644 --- a/cmake/configure_files/datacrumbs_config.h.in +++ b/cmake/configure_files/datacrumbs_config.h.in @@ -18,9 +18,13 @@ #cmakedefine DATACRUMBS_ENABLE @DATACRUMBS_ENABLE@ #cmakedefine DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS @DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS@ #cmakedefine DATACRUMBS_TRACE_RINGBUF_SIZE_MB @DATACRUMBS_TRACE_RINGBUF_SIZE_MB@ +#cmakedefine DATACRUMBS_MAX_RUNTIME_FUNCTIONS @DATACRUMBS_MAX_RUNTIME_FUNCTIONS@ #ifndef DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS #define DATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS 0 #endif +#ifndef DATACRUMBS_MAX_RUNTIME_FUNCTIONS +#define DATACRUMBS_MAX_RUNTIME_FUNCTIONS 16384 +#endif #cmakedefine DATACRUMBS_TRACE_ALL_PROCESSES @DATACRUMBS_TRACE_ALL_PROCESSES@ #ifndef DATACRUMBS_TRACE_ALL_PROCESSES #define DATACRUMBS_TRACE_ALL_PROCESSES 0 @@ -37,12 +41,20 @@ #cmakedefine DATACRUMBS_TIME_INTERVAL_NS @DATACRUMBS_TIME_INTERVAL_NS@ #cmakedefine DATACRUMBS_SRC_GEN_PATH "@DATACRUMBS_SRC_GEN_PATH@" #cmakedefine DATACRUMBS_LIBC_SO "@DATACRUMBS_LIBC_SO@" -#cmakedefine DATACRUMBS_BUILD_CLIENT_SO "@DATACRUMBS_BUILD_CLIENT_SO@" #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@" +#define DATACRUMBS_INSTALL_PREFIX_PATH "@DATACRUMBS_INSTALL_PREFIX_PATH@" +#define DATACRUMBS_INSTALL_CONFIGS_DIR "@DATACRUMBS_INSTALL_CONFIGS_DIR@" +#define DATACRUMBS_INSTALL_SHARED_DATA_DIR "@DATACRUMBS_INSTALL_SHARED_DATA_DIR@" +#define DATACRUMBS_SYSTEM_PROBE_FILE "@DATACRUMBS_SYSTEM_PROBE_FILE@" +#define DATACRUMBS_PROBE_SECRET_FILE "@DATACRUMBS_PROBE_SECRET_FILE@" +#define DATACRUMBS_SIGN_PROBES_SOCKET_PATH "@DATACRUMBS_SIGN_PROBES_SOCKET_PATH@" +#define DATACRUMBS_TRACE_DIR_PATTERN "@DATACRUMBS_TRACE_DIR_PATTERN@" +#define DATACRUMBS_SERVER_RUN_DIR "@DATACRUMBS_SERVER_RUN_DIR@" +#define DATACRUMBS_SERVER_RUN_ID_FILE "@DATACRUMBS_SERVER_RUN_ID_FILE@" +#cmakedefine DATACRUMBS_INSTALL_RUNSTATEDIR "@DATACRUMBS_INSTALL_RUNSTATEDIR@" #cmakedefine DATACRUMBS_ENABLE_INCLUSION_PATH @DATACRUMBS_ENABLE_INCLUSION_PATH@ #ifndef DATACRUMBS_ENABLE_INCLUSION_PATH @@ -56,6 +68,9 @@ #define DATACRUMBS_KERNEL_VERSION_MINOR ((DATACRUMBS_KERNEL_VERSION / 100) % 1000) #define DATACRUMBS_KERNEL_VERSION_PATCH (DATACRUMBS_KERNEL_VERSION % 100) +/* Install-time system configuration */ +@DATACRUMBS_SYSTEM_CONFIGURATION_DEFINES@ + /* clang-format on */ -#endif // DATACRUMBS_CONFIG_HPP \ No newline at end of file +#endif // DATACRUMBS_CONFIG_HPP diff --git a/cmake/configure_files/project.env.local.in b/cmake/configure_files/project.env.local.in new file mode 100644 index 00000000..980ed76a --- /dev/null +++ b/cmake/configure_files/project.env.local.in @@ -0,0 +1,43 @@ +# Generated by datacrumbs CMake configure step + +# Version +export DATACRUMBS_VERSION=@DATACRUMBS_VERSION_MAJOR@.@DATACRUMBS_VERSION_MINOR@.@DATACRUMBS_VERSION_PATCH@ +readonly DATACRUMBS_VERSION +export DATACRUMBS_LIB_VERSION=@DATACRUMBS_PACKAGE_VERSION@ +readonly DATACRUMBS_LIB_VERSION + +# Build and install paths +export DATACRUMBS_INSTALL_PREFIX=@CMAKE_INSTALL_PREFIX@ +readonly DATACRUMBS_INSTALL_PREFIX +export DATACRUMBS_INSTALL_BIN_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ +readonly DATACRUMBS_INSTALL_BIN_DIR +export DATACRUMBS_INSTALL_SBIN_DIR=@DATACRUMBS_INSTALL_SBINARYDIR@ +readonly DATACRUMBS_INSTALL_SBIN_DIR +export DATACRUMBS_INSTALL_LIB_DIR=@DATACRUMBS_INSTALL_LIB_DIR@ +readonly DATACRUMBS_INSTALL_LIB_DIR +export DATACRUMBS_INSTALL_LIBEXEC_DIR=@DATACRUMBS_INSTALL_LIBEXEC@ +readonly DATACRUMBS_INSTALL_LIBEXEC_DIR +export DATACRUMBS_INSTALL_ETC_DIR=@DATACRUMBS_INSTALL_SYSCONFDIR@ +readonly DATACRUMBS_INSTALL_ETC_DIR +export DATACRUMBS_INSTALL_CONFIGS_DIR=@DATACRUMBS_INSTALL_ETC_CONFIGSDIR@ +readonly DATACRUMBS_INSTALL_CONFIGS_DIR +export DATACRUMBS_INSTALL_DATA_DIR=@DATACRUMBS_INSTALL_ETC_DATADIR@ +readonly DATACRUMBS_INSTALL_DATA_DIR +export DATACRUMBS_INSTALL_RUNSTATEDIR=@DATACRUMBS_INSTALL_RUNSTATEDIR@ +readonly DATACRUMBS_INSTALL_RUNSTATEDIR + +# Runtime paths +export DATACRUMBS_CONFIG_PATH=@DATACRUMBS_CONFIG_PATH@ +readonly DATACRUMBS_CONFIG_PATH +export DATACRUMBS_DATA_DIR=@DATACRUMBS_DATA_DIR@ +readonly DATACRUMBS_DATA_DIR +export DATACRUMBS_LOG_DIR=@DATACRUMBS_LOG_DIR@ +readonly DATACRUMBS_LOG_DIR +export DATACRUMBS_SRC_GEN_PATH=@DATACRUMBS_SRC_GEN_PATH@ +readonly DATACRUMBS_SRC_GEN_PATH +export DATACRUMBS_LIBC_SO=@DATACRUMBS_LIBC_SO@ +readonly DATACRUMBS_LIBC_SO +export DATACRUMBS_KERNEL_UNAME_R=@DATACRUMBS_KERNEL_UNAME_R@ +readonly DATACRUMBS_KERNEL_UNAME_R +export DATACRUMBS_KERNEL_HEADERS_PATH=@DATACRUMBS_KERNEL_HEADERS_PATH@ +readonly DATACRUMBS_KERNEL_HEADERS_PATH diff --git a/cmake/modules/datacrumbs-utils.cmake b/cmake/modules/datacrumbs-utils.cmake index 2091fdc4..d2a85b60 100644 --- a/cmake/modules/datacrumbs-utils.cmake +++ b/cmake/modules/datacrumbs-utils.cmake @@ -18,17 +18,27 @@ macro(include_dependencies) message(STATUS "[${UPPER_PROJECT_NAME}] Detecting dependencies") # find packages - find_package(PkgConfig REQUIRED) - pkg_check_modules(LIBBPF libbpf) - find_package(yaml-cpp REQUIRED) + find_package(PkgConfig QUIET) + if(PkgConfig_FOUND) + execute_process( + COMMAND ${PKG_CONFIG_EXECUTABLE} --version + RESULT_VARIABLE _DATACRUMBS_PKGCONFIG_RESULT + OUTPUT_QUIET ERROR_QUIET + ) + if(_DATACRUMBS_PKGCONFIG_RESULT EQUAL 0) + pkg_check_modules(LIBBPF QUIET libbpf) + else() + message( + WARNING + "[${UPPER_PROJECT_NAME}] pkg-config is present but not executable; falling back to direct libbpf lookup" + ) + set(PkgConfig_FOUND FALSE) + endif() + endif() find_package(LLVM REQUIRED CONFIG COMPONENTS Clang) find_package(json-c REQUIRED) + find_package(OpenSSL REQUIRED) find_package(ZLIB REQUIRED) - find_package( - MPI REQUIRED - COMPONENTS CXX - QUIET - ) # all validator if(LIBBPF_VERSION VERSION_LESS "1.0.0") @@ -64,22 +74,28 @@ macro(include_dependencies) -lelf ) else() - message(FATAL_ERROR "[${UPPER_PROJECT_NAME}] libbpf not found!") - endif() - - if(${yaml-cpp_FOUND}) - get_filename_component(YAML_CPP_INCLUDE_DIR "${YAML_CPP_INCLUDE_DIR}" ABSOLUTE) - include_directories(${YAML_CPP_INCLUDE_DIR}) - - if(NOT DEFINED YAML_CPP_LIBRARY_DIR) - get_filename_component(YAML_CPP_LIBRARY_DIR "${YAML_CPP_CMAKE_DIR}/../../" ABSOLUTE) - get_filename_component(YAML_CPP_LIBRARY_DIR "${YAML_CPP_LIBRARY_DIR}" ABSOLUTE) + find_path(LIBBPF_INCLUDEDIR bpf/libbpf.h) + find_library(LIBBPF_LIBRARY bpf) + find_library(LIBELF_LIBRARY elf) + if(LIBBPF_INCLUDEDIR + AND LIBBPF_LIBRARY + AND LIBELF_LIBRARY + ) + get_filename_component(LIBBPF_LIBRARY_DIRS "${LIBBPF_LIBRARY}" DIRECTORY) + include_directories(${LIBBPF_INCLUDEDIR}) + link_directories(${LIBBPF_LIBRARY_DIRS}) + list(APPEND DEPENDENCY_LIBRARY_DIRS ${LIBBPF_LIBRARY_DIRS}) + set(DEPENDENCY_LIB + ${DEPENDENCY_LIB} + -L${LIBBPF_LIBRARY_DIRS} + -lbpf + -lelf + ) + set(LIBBPF_FOUND TRUE) + set(LIBBPF_VERSION "unknown") + else() + message(FATAL_ERROR "[${UPPER_PROJECT_NAME}] libbpf not found!") endif() - - list(APPEND DEPENDENCY_LIBRARY_DIRS ${YAML_CPP_LIBRARY_DIR}) - set(DEPENDENCY_LIB ${DEPENDENCY_LIB} -L${YAML_CPP_LIBRARY_DIR} -lyaml-cpp) - else() - message(FATAL_ERROR "-- [${UPPER_PROJECT_NAME}] yaml-cpp is needed for ${PROJECT_NAME} build") endif() if(LLVM_FOUND) @@ -120,6 +136,13 @@ macro(include_dependencies) message(FATAL_ERROR "-- [${UPPER_PROJECT_NAME}] json-c is needed for ${PROJECT_NAME} build") endif() + if(OpenSSL_FOUND) + include_directories(${OPENSSL_INCLUDE_DIR}) + set(DEPENDENCY_LIB ${DEPENDENCY_LIB} OpenSSL::Crypto) + else() + message(FATAL_ERROR "-- [${UPPER_PROJECT_NAME}] OpenSSL is needed for ${PROJECT_NAME} build") + endif() + if(ZLIB_FOUND) include_directories(${ZLIB_INCLUDE_DIRS}) get_filename_component(ZLIB_LIBRARY_DIRS "${ZLIB_LIBRARIES}/../" ABSOLUTE) @@ -129,35 +152,6 @@ macro(include_dependencies) message(FATAL_ERROR "-- [${UPPER_PROJECT_NAME}] zlib is needed for ${PROJECT_NAME} build") endif() - if(${MPI_CXX_FOUND}) - # MPI_CXX_FOUND MPI_CXX_VERSION MPI_CXX_INCLUDE_DIRS MPI_CXX_LIBRARIES - get_filename_component(MPI_CXX_INCLUDE_DIRS "${MPI_CXX_INCLUDE_DIRS}" ABSOLUTE) - include_directories(${MPI_CXX_INCLUDE_DIRS}) - - if(NOT DEFINED MPI_CXX_LIBRARY_DIR) - 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) - set(MPI_CXX_LIBRARY_DIR "${MPI_CXX_LIBRARY_DIR}") - endif() - endif() - - list(APPEND DEPENDENCY_LIBRARY_DIRS ${MPI_CXX_LIBRARY_DIR}) - set(DEPENDENCY_LIB ${DEPENDENCY_LIB} -L${MPI_CXX_LIBRARY_DIR} ${MPI_CXX_LIBRARIES}) - else() - message(FATAL_ERROR "-- [${UPPER_PROJECT_NAME}] mpi is needed for ${PROJECT_NAME} build") - endif() - list(APPEND DEPENDENCY_LIBRARY_DIRS ${DATACRUMBS_INSTALL_LIB_DIR}) list(REMOVE_DUPLICATES DEPENDENCY_LIBRARY_DIRS) @@ -166,10 +160,6 @@ macro(include_dependencies) 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}" @@ -182,10 +172,6 @@ macro(include_dependencies) 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}") string( @@ -281,8 +267,6 @@ macro(derive_configurations) set(DATACRUMBS_VARS ${DATACRUMBS_VARS} --inclusion_path ${DATACRUMBS_INCLUSION_PATH}) endif() - set(DATACRUMBS_BUILD_CLIENT_SO ${DATACRUMBS_INSTALL_LIB_DIR}/libdatacrumbs_client.so) - set(DATACRUMBS_CONFIG_PATH ${CMAKE_CONFIG_OUTPUT_DIRECTORY}) set(DATACRUMBS_DATA_DIR ${CMAKE_DATA_OUTPUT_DIRECTORY}) set(DATACRUMBS_LOG_DIR ${CMAKE_BINARY_DIR}/logs) @@ -294,7 +278,9 @@ macro(derive_configurations) set(DATACRUMBS_ENABLE 0) endif() - set(DATACRUMBS_PROJECT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + if(NOT DEFINED DATACRUMBS_PROJECT_PATH OR DATACRUMBS_PROJECT_PATH STREQUAL "") + set(DATACRUMBS_PROJECT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + endif() # Detect system kernel version: major, minor, patch execute_process( @@ -343,7 +329,6 @@ macro(derive_configurations) "(${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" @@ -585,36 +570,58 @@ function(datacrumbs_composable_install_src public_src) endfunction() macro(load_build_variables) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/bin - CACHE PATH "Single Directory for all Executables." - ) - set(CMAKE_INCLUDE_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/include - CACHE PATH "Store the headers." - ) - set(CMAKE_CONFIG_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/configs - CACHE PATH "Store the configuration generated." - ) - set(CMAKE_DATA_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/data - CACHE PATH "Store the data generated." - ) + if(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY + ${CMAKE_BINARY_DIR}/bin + CACHE PATH "Single Directory for all Executables." + ) + endif() + if(NOT CMAKE_INCLUDE_OUTPUT_DIRECTORY) + set(CMAKE_INCLUDE_OUTPUT_DIRECTORY + ${CMAKE_BINARY_DIR}/include + CACHE PATH "Store the headers." + ) + endif() + if(NOT CMAKE_CONFIG_OUTPUT_DIRECTORY) + set(CMAKE_CONFIG_OUTPUT_DIRECTORY + ${CMAKE_BINARY_DIR}/configs + CACHE PATH "Store the configuration generated." + ) + endif() + if(NOT CMAKE_DATA_OUTPUT_DIRECTORY) + set(CMAKE_DATA_OUTPUT_DIRECTORY + ${CMAKE_BINARY_DIR}/data + CACHE PATH "Store the data generated." + ) + endif() set(EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/${DATACRUMBS_LIBDIR} - CACHE PATH "Single Directory for all Libraries" - ) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY - ${CMAKE_BINARY_DIR}/${DATACRUMBS_LIBDIR} - CACHE PATH "Single Directory for all static libraries." - ) - set(CMAKE_LIBEXEC_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/libexec/${PROJECT_NAME}) - set(CMAKE_ETC_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}) - set(CMAKE_MODULES_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/modulefiles) - set(CMAKE_FLUX_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/flux) - set(CMAKE_SYSTEMD_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/systemd) + if(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY + ${CMAKE_BINARY_DIR}/${DATACRUMBS_LIBDIR} + CACHE PATH "Single Directory for all Libraries" + ) + endif() + if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY + ${CMAKE_BINARY_DIR}/${DATACRUMBS_LIBDIR} + CACHE PATH "Single Directory for all static libraries." + ) + endif() + if(NOT CMAKE_LIBEXEC_OUTPUT_DIRECTORY) + set(CMAKE_LIBEXEC_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/libexec/${PROJECT_NAME}) + endif() + if(NOT CMAKE_ETC_OUTPUT_DIRECTORY) + set(CMAKE_ETC_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}) + endif() + if(NOT CMAKE_MODULES_OUTPUT_DIRECTORY) + set(CMAKE_MODULES_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/modulefiles) + endif() + if(NOT CMAKE_FLUX_OUTPUT_DIRECTORY) + set(CMAKE_FLUX_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/flux) + endif() + if(NOT CMAKE_SYSTEMD_OUTPUT_DIRECTORY) + set(CMAKE_SYSTEMD_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/etc/${PROJECT_NAME}/systemd) + endif() if(NOT DATACRUMBS_BUILD_ONLY) # Get installation directories -- these get used in various places; best to just make them diff --git a/cmake/run_system_configurator_if_missing.cmake b/cmake/run_system_configurator_if_missing.cmake new file mode 100644 index 00000000..8f2f2717 --- /dev/null +++ b/cmake/run_system_configurator_if_missing.cmake @@ -0,0 +1,33 @@ +if(NOT DEFINED DATACRUMBS_SYSTEM_PROBE_FILE) + message(FATAL_ERROR "DATACRUMBS_SYSTEM_PROBE_FILE is required") +endif() + +if(NOT DEFINED DATACRUMBS_PROBE_SECRET_FILE) + message(FATAL_ERROR "DATACRUMBS_PROBE_SECRET_FILE is required") +endif() + +if(NOT DEFINED DATACRUMBS_SYSTEM_CONFIGURATOR_BIN) + message(FATAL_ERROR "DATACRUMBS_SYSTEM_CONFIGURATOR_BIN is required") +endif() + +if(EXISTS "${DATACRUMBS_SYSTEM_PROBE_FILE}" AND EXISTS "${DATACRUMBS_PROBE_SECRET_FILE}") + message( + STATUS "Install-time system configuration and secret already exist; skipping configurator" + ) + return() +endif() + +if(EXISTS "${DATACRUMBS_SYSTEM_PROBE_FILE}") + message(STATUS "Install-time system configuration already exists; skipping configurator") + return() +endif() + +execute_process(COMMAND "${DATACRUMBS_SYSTEM_CONFIGURATOR_BIN}" RESULT_VARIABLE _dc_config_result) + +if(NOT + _dc_config_result + EQUAL + 0 +) + message(FATAL_ERROR "datacrumbs_system_configurator failed with exit code ${_dc_config_result}") +endif() diff --git a/docs/build.rst b/docs/build.rst old mode 100755 new mode 100644 index db951567..4f514e37 --- a/docs/build.rst +++ b/docs/build.rst @@ -1,920 +1,131 @@ -================= +=================== Building DataCrumbs -================= +=================== -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. +This page describes the supported build flow after the `datacrumbs` and +`datacrumbs-utils` split. -Prerequisites -============= +What Gets Built Where +===================== -Before building, ensure all dependencies are installed as described in the :doc:`dependencies` section. +`datacrumbs` now owns: -Quick verification: +- the runtime executable +- the BPF object and skeleton +- install-time system configuration generation +- the trusted probe-signing service and its systemd unit +- the systemd unit and scheduler service scripts -.. 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 +`datacrumbs-utils` now owns: - # Verify bpftool - bpftool version +- `datacrumbs_probe_configurator` +- `libdatacrumbs_client.so` +- preload and patching wrappers +- test and tooling subdirectories -Core Requirements ------------------ +When you build `datacrumbs`, it bootstraps `datacrumbs-utils` with +`ExternalProject_Add` into the same install prefix. -**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: +Quick Start +=========== .. code-block:: bash git clone https://github.com/LLNL/datacrumbs.git cd datacrumbs - export DATACRUMBS_DIR=$(realpath .) - -Standard Build Process -====================== -Basic Build ------------ + cmake -S . -B build -DCMAKE_INSTALL_PREFIX=/path/to/install + cmake --build build -j$(nproc) + cmake --install build -The simplest build uses default configuration: +The `datacrumbs-utils` source checkout and build tree are placed under: -.. code-block:: bash - - # Create build directory - mkdir build - cd build - - # Configure with CMake - cmake -DCMAKE_INSTALL_PREFIX=/path/to/install .. - - # Build - make -j$(nproc) +- `build/_deps/datacrumbs-utils-src` +- `build/_deps/datacrumbs-utils-build` - # Install - make install +Its runtime, library, include, and config outputs are redirected into the main +`datacrumbs/build` tree so both projects share one build artifact layout. -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 +Important Configure Options =========================== -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 - -Build and Install Dependencies -------------------------------- - -The following dependencies are required for building DataCrumbs: - -**Runtime Dependencies:** - -* 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 - - git clone https://github.com/libbpf/bpftool.git - pushd bpftool - git checkout tags/v7.5.0 -b v7.5.0 - git submodule update --init --recursive - - # 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 - 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 - 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 - - echo "libbpf.so:" - find $PREFIX -name libbpf.so - - echo "libbpf.pc:" - find $PREFIX -name libbpf.pc - - echo "bpftool:" - find $PREFIX -name bpftool - -Expected output (with PREFIX=/home/user/install): - -.. code-block:: text - - bpf.h: - /home/user/install/include/bpf/bpf.h - - libbpf.so: - /home/user/install/lib/libbpf.so - - 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. - -**4. Install Remaining Dependencies: json-c, yaml-cpp, llvm** - -**Recommended: Use Spack** - -.. code-block:: bash - - git clone https://github.com/spack/spack.git - . spack/share/spack/setup-env.sh - spack install json-c cppyaml llvm - -**If Spack is not available:** - -* **LLVM:** Install via your package manager - - - Fedora/RHEL: - .. code-block:: bash - - sudo dnf install llvm-devel - - - Ubuntu/Debian: - .. code-block:: bash +Common options include: - sudo apt-get install llvm-dev +- `DATACRUMBS_HOST` +- `DATACRUMBS_USER` +- `DATACRUMBS_INSTALL_USER` +- `DATACRUMBS_KERNEL_HEADERS_PATH` +- `DATACRUMBS_TRACE_ALL_PROCESSES_OPT` +- `DATACRUMBS_MAX_RUNTIME_FUNCTIONS` +- `DATACRUMBS_UTILS_GIT_REPOSITORY` +- `DATACRUMBS_UTILS_GIT_REF` -* **json-c:** Build from source - - .. code-block:: bash - - git clone https://github.com/json-c/json-c.git - pushd json-c - git checkout tags/json-c-0.18-20240915 -b json-c-0.18-20240915 - mkdir build && cd build - cmake -DCMAKE_INSTALL_PREFIX=$PREFIX .. - make -j - make install -j - popd - -* **yaml-cpp:** Build from source - - .. code-block:: bash - - git clone https://github.com/jbeder/yaml-cpp.git - pushd yaml-cpp - git checkout tags/yaml-cpp-0.7.0 -b yaml-cpp-0.7.0 - mkdir build && cd build - cmake -DCMAKE_INSTALL_PREFIX=$PREFIX .. - make -j - make install -j - popd - -**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 ------------------------------------- - -With all dependencies installed under your custom prefix directory, you can now build and install DataCrumbs: - -**1. Create Host Configuration** - -.. code-block:: bash - - cp $DATACRUMBS_DIR/docs/example/example.yaml $DATACRUMBS_DIR/etc/datacrumbs/configs/$(hostname).yaml - # Edit the configuration file as needed for your system - -**2. Set CMake Arguments** - -.. code-block:: bash - - cmake_args=( - -DCMAKE_PREFIX_PATH=$PREFIX - -DCMAKE_INSTALL_PREFIX=$PREFIX - -DBPFTOOL_EXECUTABLE=$PREFIX/sbin/bpftool - -DDATACRUMBS_HOST=$(hostname) - -DDATACRUMBS_USER=${USER} - ) - -If you want to use a custom host name or user, set them explicitly: - -.. code-block:: bash - - # cmake_args+=(-DDATACRUMBS_HOST=) - # cmake_args+=(-DDATACRUMBS_USER=) - -**3. Build and Install** - -.. code-block:: bash - - 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:** +Example: .. 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:** + cmake -S . -B build \ + -DCMAKE_INSTALL_PREFIX=/opt/datacrumbs-install \ + -DDATACRUMBS_HOST=lead2 \ + -DDATACRUMBS_USER=root \ + -DDATACRUMBS_INSTALL_USER=haridev -.. code-block:: bash +Install-Time System Configuration +================================= - cmake -DDATACRUMBS_LOG_LEVEL_STR=DEBUG \ - -DDATACRUMBS_BPF_PRINT_ENABLE=ON \ - .. +The system configurator moved from `datacrumbs-utils` into `datacrumbs`. -**Profiling mode with reduced overhead:** +During the `datacrumbs` build/install flow: -.. code-block:: bash +- `datacrumbs_system_configurator` is built from the `datacrumbs` tree +- it writes the install-time system configuration and probe secret if they are + missing +- it does not recreate them on every build - cmake -DDATACRUMBS_MODE_STR=PROFILE \ - -DDATACRUMBS_TIME_INTERVAL_NS=10000000 \ - -DDATACRUMBS_SKIP_SMALL_EVENTS_THRESHOLD_NS=10000 \ - .. +Generated files: -Important Notes ---------------- +- `/share/datacrumbs/data/system-probe--.json.gz` +- `/share/datacrumbs/data/.datacrumbs-probe-secret` -.. important:: - **DATACRUMBS_HOST Configuration File** +The secret is stored in `share/datacrumbs/data`, not under `etc`. +It is intended to be readable only by `root`. - A configuration file named ``.yaml`` **must exist** in ``etc/datacrumbs/configs/`` for the specified hostname. - This is the most common build error. You can: +Login-node signing service +========================== - - 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 +Probe generation now relies on a trusted signer service on the login node: -.. warning:: - **Performance Impact** +- executable: `/bin/datacrumbs_sign_probes` +- unit: `/etc/datacrumbs/systemd/datacrumbs_sign_probes.service` - - ``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 +That service runs as `root`, owns the secret, and signs probe +documents on behalf of `datacrumbs_probe_configurator`. +It only accepts requests from the installed `datacrumbs_probe_configurator_exec` +binary, and the HMAC covers the signed probe document metadata plus the +categories payload so post-sign tampering is detected. The configurator sends +only the canonical signing payload to the signer service and writes the final +probe document locally. -Docker Build +Dependencies ============ -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) -============================== +The `datacrumbs` runtime no longer depends on `yaml-cpp`. -Lima provides a Linux VM environment on macOS for eBPF development. +The major runtime dependencies are: -Initial Setup -------------- +- libbpf +- libelf +- zlib +- OpenSSL +- json-c -.. 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 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 +`datacrumbs-utils` still uses `yaml-cpp` for host YAML configuration handling. - # Clean BPF artifacts - make clean_all +Notes +===== - # Clean everything - make clean +- `composable` runtime components are no longer part of the active build. +- `datacrumbs_explorer`, `datacrumbs_generator`, and `datacrumbs_client` are no + longer built by `datacrumbs`. +- BPF changes are force-cleaned during the `datacrumbs` build to avoid stale + skeleton issues. diff --git a/docs/composability.rst b/docs/composability.rst old mode 100755 new mode 100644 index ff99c707..93916bfc --- a/docs/composability.rst +++ b/docs/composability.rst @@ -1,597 +1,225 @@ -=================== -Composability Guide -=================== +===================== +Composable Probe Sets +===================== -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. +DataCrumbs still supports composability, but the mechanism is different now. -Overview -======== +Users no longer build composable runtime binaries. Instead, they compose probe +sets in YAML, run `datacrumbs_probe_configurator`, and produce a signed +`probes.json.gz` file that `datacrumbs` loads at runtime. -During the build and installation process, DataCrumbs: +Composable flow +=============== -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 +The supported composition flow is: -This modular approach allows users to: +1. write or copy a probe YAML +2. define the probe categories you want in `capture_probes` +3. run `datacrumbs_probe_configurator` +4. run `datacrumbs` with the generated signed probes file -- 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 ----------------- +Example: .. code-block:: bash - # Start server with custom configuration - sudo datacrumbs_server_run.sh --composite-name hdf5_only + datacrumbs_probe_configurator \ + /etc/datacrumbs/configs/lead.yaml \ + /tmp/lead-probes.json.gz - # Run application (uses custom config) - datacrumbs_track --executable ./hdf5_app - ./hdf5_app + datacrumbs /tmp/lead-probes.json.gz 1 - # Stop server - sudo datacrumbs_server_stop.sh --composite-name hdf5_only +What the YAML does +================== -With Service Mode ------------------ +The YAML is now the composition surface. It tells the probe configurator which +probe groups to discover and include in the signed runtime file. -.. code-block:: bash +The main top-level field is: - # Set environment variable for service - export DATACRUMBS_COMPOSABLE_NAME=mpiio_only +- `capture_probes` - # Start service - sudo datacrumbs_service_run.sh +Each entry defines one logical probe group, for example: - # Applications will use the mpiio_only configuration +- a syscall set +- a kernel symbol set +- a userspace library symbol set +- a USDT provider +- a custom probe bundle -With Flux Integration ---------------------- +Minimal example +=============== -.. code-block:: bash +This is a small uprobe-based composition: - # Submit job with custom configuration - flux run --datacrumbs-enable --datacrumbs-composite=posix_hdf5 \ - -N 4 -n 32 ./parallel_app +.. code-block:: yaml - # Or with default configuration - flux run --datacrumbs-enable -N 4 -n 32 ./parallel_app + name: example + capture_probes: + - name: libc + probe: uprobe + type: binary + file: /usr/lib64/libc.so.6 + regex: (?!.*_)(?!.*cold).* -Command Reference: datacrumbs_compose -====================================== +That tells the probe configurator to: -**Synopsis:** +- inspect `libc.so.6` +- keep symbols matching the regex +- add them to the signed probes file under category `libc` -.. code-block:: bash +Common probe entry patterns +=========================== - datacrumbs_compose --action ACTION [OPTIONS] +Userspace binary uprobes +------------------------ -**Required Arguments:** +.. code-block:: yaml -``--action ACTION`` - Action to perform: + capture_probes: + - name: libc + probe: uprobe + type: binary + file: /usr/lib64/libc.so.6 + regex: "open.*|read.*|write.*" - - ``discover``: List all available probes - - ``compose``: Create a new composable configuration +Kernel probes +------------- -**Optional Arguments:** +Header-backed kernel probes: -``--name NAME`` - Name for the composable configuration (required for ``compose`` action) +.. code-block:: yaml - - Must contain only alphanumeric characters and underscores - - Will create binary: ``datacrumbs_`` + capture_probes: + - name: os_page_cache + probe: kprobe + type: header + file: /path/to/kernel/headers/include/linux/pagemap.h + enable_explorer: false -``--probes PROBES`` - Comma-separated list of probe names (required for ``compose`` action) +Syscalls +-------- - - No spaces between probe names - - Probe names must exist (use ``discover`` to list) +System call probe groups are defined as normal capture entries in the host YAML. +The configurator resolves syscall names and signatures into the runtime probes +file. -``--verbose`` - Enable verbose output +USDT probes +----------- -``--quiet`` - Suppress informational messages +.. code-block:: yaml -``--dry-run`` - Show what would be done without executing + capture_probes: + - name: python + probe: usdt + type: usdt + binary_path: /lib64/libpython3.6m.so.1.0 + provider: python -**Examples:** +Custom probes +------------- -.. code-block:: bash +Custom probe bundles can still be described in YAML for probe generation: - # Discover available probes - sudo datacrumbs_compose --action discover +.. code-block:: yaml - # Create simple configuration - sudo datacrumbs_compose --action compose \ - --name basic_io \ - --probes custom1,sys,os_page_cache + capture_probes: + - name: custom1 + probe: custom + type: custom + file: /path/to/custom.bpf.c + probes: /path/to/probes.json + process_header: /path/to/custom_process.h + event_type: 2 - # Create with verbose output - sudo datacrumbs_compose --action compose \ - --name debug_config \ - --probes custom1,sys,os_page_cache \ - --verbose +Custom probe plugin headers are currently scaffolded statically in the source +tree. The active default custom sys-io include remains commented out in the BPF +aggregator, so custom entries are part of probe generation, but not the default +runtime build path unless the site wires them in. - # Dry run to see what would happen - sudo datacrumbs_compose --action compose \ - --name test_config \ - --probes custom1 \ - --dry-run +How to create your own composition +================================== -Composable Binary Locations -============================ +The practical way to create a custom composition is: -Composable binaries are installed per-user: +1. start from an installed host YAML such as: -.. code-block:: text + - `/etc/datacrumbs/configs/docker.yaml` + - `/etc/datacrumbs/configs/lead.yaml` - /libexec/datacrumbs/sbin//datacrumbs_ +2. copy it to a site- or workload-specific file +3. remove probe groups you do not want +4. tighten regex filters for the ones you do want +5. run the probe configurator 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 + cp /etc/datacrumbs/configs/docker.yaml ./my-io.yaml -Managing Composables -==================== - -Listing Composables -------------------- - -List all composable configurations for the current user: +Edit `my-io.yaml`, then generate probes: .. code-block:: bash - ls $PREFIX/libexec/datacrumbs/sbin/$USER/ - -Removing Composables --------------------- + systemctl status datacrumbs_sign_probes.service + datacrumbs_probe_configurator ./my-io.yaml /tmp/my-io-probes.json.gz -Remove a composable configuration: +Then run: .. 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 -============================= + datacrumbs /tmp/my-io-probes.json.gz myrun -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 +Argument metadata +================= -Common Configuration Patterns -============================== +The probe configurator now also derives `function_arguments` metadata where +possible: -System Call Level ------------------ +- syscalls from headers +- uprobes from DWARF plus source parsing +- kprobes from BTF where available -Trace only low-level system calls: +That metadata is carried into the signed probes file and used by the generic +runtime capture path to populate `args:{...}` in output events. -.. 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 +Runtime limits +============== - Error: Probe object 'invalid_probe.o' not found. +Probe generation validates the total number of attachable runtime functions +against `DATACRUMBS_MAX_RUNTIME_FUNCTIONS`. -**Solution**: Run ``discover`` to see available probes: +If the selection is too large: -.. code-block:: bash +- the probe configurator warns near the limit +- the probe configurator fails when over the limit +- runtime also rejects oversized probe files before attach - sudo datacrumbs_compose --action discover +Invalid probe carry-forward +=========================== -Invalid Configuration Name --------------------------- +Runtime-discovered attach failures are stored in: .. 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 --------------- + /share/datacrumbs/data/probes-invalid--.json.gz -If composable build fails: +That invalid-probe database is reused so later runs do not keep retrying known +bad targets. -.. 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 +Migration note ============== -Programmatic Composition ------------------------- - -Create multiple configurations programmatically: - -.. code-block:: bash - - #!/bin/bash +If you still have scripts or notes referring to: - # 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 +- `datacrumbs_compose` +- `datacrumbs_compose_run` +- generated composable binaries - # 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 +replace them with: - # Submit Flux job with custom configuration - flux run --datacrumbs-enable \ - --datacrumbs-composite=workflow_trace \ - -N 8 -n 64 \ - ./parallel_workflow +- a YAML file +- `datacrumbs_probe_configurator` +- `datacrumbs_sign_probes.service` on the login node +- a signed `probes.json.gz` +- `datacrumbs [run-id]` diff --git a/docs/deployment.rst b/docs/deployment.rst old mode 100755 new mode 100644 index b9abca9b..c1b9a764 --- a/docs/deployment.rst +++ b/docs/deployment.rst @@ -1,595 +1,122 @@ -=================== +================== 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. +This page describes the supported deployment model after the runtime and utility +split. -Deployment Overview -=================== +Recommended deployment model +============================ -There are two primary deployment approaches: +The supported production path is scheduler-managed systemd service startup. -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 +At a high level: -.. list-table:: Deployment Method Comparison - :header-rows: 1 - :widths: 25 35 40 +1. install `datacrumbs` +2. let `datacrumbs` bootstrap and install `datacrumbs-utils` into the same + prefix +3. register `datacrumbs@.service` on compute nodes +4. register `datacrumbs_sign_probes.service` on login nodes +5. install Flux or SLURM prolog and epilog hooks +6. generate signed probe files with `datacrumbs_probe_configurator` +7. submit jobs with DataCrumbs metadata containing `probe_file` - * - 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 +Installed runtime assets ======================== -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 +Key files provided by the install: -Test Scheduler Integration ---------------------------- +- `/sbin/datacrumbs` +- `/etc/datacrumbs/systemd/datacrumbs@.service` +- `/etc/datacrumbs/systemd/datacrumbs_sign_probes.service` +- `/sbin/datacrumbs_service_run.sh` +- `/sbin/datacrumbs_service_stop.sh` +- `/share/datacrumbs/data/system-probe--.json.gz` +- `/share/datacrumbs/data/.datacrumbs-probe-secret` -.. 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: +Key utility assets installed into the same prefix: -.. code-block:: bash - - # View service status - sudo systemctl status datacrumbs@${USER} +- `/bin/datacrumbs_probe_configurator` +- `/bin/datacrumbs_wrap` +- `/bin/datacrumbs_track` +- `/bin/datacrumbs_untrack` +- `/bin/datacrumbs_salloc` +- `/bin/datacrumbs_sbatch` +- `/bin/datacrumbs_service_wrapper` - # View service logs - sudo journalctl -u datacrumbs@${USER} -f +Systemd deployment +================== -Check prolog/epilog execution: +Register the unit on each target node: .. 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** + sudo ln -sf /etc/datacrumbs/systemd/datacrumbs@.service \ + /etc/systemd/system/datacrumbs@.service + sudo systemctl daemon-reload -.. code-block:: bash +The unit: - # Check sudoers configuration - sudo visudo -c -f /etc/sudoers.d/datacrumbs +- runs `datacrumbs` in the foreground with `Type=simple` +- waits for readiness through a ready file +- logs to `${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${DATACRUMBS_SERVICE_RUN_ID}_$(hostname).log` +- stops with `SIGINT` +- does not auto-restart on failure - # Verify user is in allowed group - groups $USER +Login-node signing deployment +============================= -**Prolog/epilog scripts not executing** +Register the signer service on login nodes: .. code-block:: bash - # Flux: Check plugin configuration - flux config get job-manager.plugins + sudo ln -sf /etc/datacrumbs/systemd/datacrumbs_sign_probes.service \ + /etc/systemd/system/datacrumbs_sign_probes.service + sudo systemctl daemon-reload + sudo systemctl enable --now datacrumbs_sign_probes.service - # Slurm: Check slurm.conf - grep -i prolog /etc/slurm/slurm.conf +This service must be running before users call `datacrumbs_probe_configurator`. - # Verify script permissions - ls -la /etc/flux/system/prolog-job-manager.d/ - ls -la /etc/slurm/prolog.d/ +Flux and SLURM deployment +========================= -**Systemd service fails to start** +Use the scheduler-specific pages for the full configuration: -.. code-block:: bash +- :doc:`flux_integration` +- :doc:`slurm_integration` - # Check service status - sudo systemctl status datacrumbs@${USER} +Both schedulers now use the same core model: - # View detailed logs - sudo journalctl -xe -u datacrumbs@${USER} +- job metadata contains `probe_file` +- prolog starts `datacrumbs@.service` +- epilog stops `datacrumbs@.service` - # Verify service file - sudo systemctl cat datacrumbs@.service +Interactive and test deployment +=============================== -**Traces not being generated** +For testing outside a real scheduler: .. 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 + datacrumbs_service_wrapper start 1 /path/to/probes.json.gz + datacrumbs_service_wrapper stop 1 /path/to/probes.json.gz -Cleanup and Uninstallation -=========================== - -Remove sudoers configuration: +For direct single-node runs without systemd: .. code-block:: bash - sudo rm /etc/sudoers.d/datacrumbs - -Remove Flux integration: - -.. code-block:: bash + datacrumbs /path/to/probes.json.gz 1 + datacrumbs_wrap ./myapp - # 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 +What is no longer the deployment model +====================================== -Remove Slurm integration: +The following older approaches are no longer the supported deployment story: -.. code-block:: bash +- `sudo datacrumbs_server_run.sh` +- `sudo datacrumbs_server_stop.sh` +- composable runtime binaries +- explorer/generator-driven runtime composition - 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 +If a site still has wrappers around those paths, they should be migrated to the +systemd service plus signed probe file workflow. diff --git a/docs/flux_integration.rst b/docs/flux_integration.rst old mode 100755 new mode 100644 index d77a1b80..8d0fb5e2 --- a/docs/flux_integration.rst +++ b/docs/flux_integration.rst @@ -1,670 +1,84 @@ -============================ -Flux Scheduler Integration -============================ +======================== +Flux 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. +Flux integration is now based on job metadata carrying a signed probes file and +the `datacrumbs@.service` systemd unit. -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 +Current Flow ============ -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. +1. User generates a signed probes file. +2. User submits with: -Step 1: Enable Flux Prolog/Epilog ----------------------------------- + .. code-block:: bash -Edit the Flux job manager configuration file on the broker node: + flux run --datacrumbs-enable --datacrumbs-probe-file /path/to/probes.json.gz ... -.. code-block:: bash - - # On Flux broker-0 node - sudo vi /etc/flux/system/conf.d/job-manager.toml +3. The Flux plugin writes job metadata containing: -Add or ensure the following configuration: + .. code-block:: json -.. code-block:: toml + {"datacrumbs":{"enable":"yes","probe_file":"/path/to/probes.json.gz"}} - [job-manager] +4. Flux prolog runs `datacrumbs_service_run.sh`. +5. The script resolves the job id, user, and probe file, writes + `datacrumbs-.env`, and starts `datacrumbs@.service`. +6. The systemd unit waits until the ready file exists. +7. Flux epilog runs `datacrumbs_service_stop.sh`, which stops the service and + waits for it to exit. - # Enable prolog execution - prolog.command = [ - "/etc/flux/system/prolog-job-manager.d/*", - ] +Installed components +==================== - # Enable epilog execution - epilog.command = [ - "/etc/flux/system/epilog.d/*", - ] +- login node: + - `/etc/datacrumbs/systemd/datacrumbs_sign_probes.service` +- `/etc/datacrumbs/systemd/datacrumbs@.service` +- `/sbin/datacrumbs_service_run.sh` +- `/sbin/datacrumbs_service_stop.sh` +- `/etc/datacrumbs/flux/cli/plugins/datacrumbs.py` -Step 2: Install Systemd Service --------------------------------- +Login-node prerequisite +======================= -Install the DataCrumbs systemd service file on all compute nodes: - -**Service file location:** ``/etc/datacrumbs/systemd/datacrumbs@.service`` +Before users generate probe files for Flux jobs, the trusted signing service +must be running on the login node: .. 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 ln -sf /etc/datacrumbs/systemd/datacrumbs_sign_probes.service \ + /etc/systemd/system/datacrumbs_sign_probes.service sudo systemctl daemon-reload + sudo systemctl enable --now datacrumbs_sign_probes.service - # 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: +Deploying the unit +================== .. 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 ln -sf /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 +Plugin behavior =============== -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 +The Flux plugin now uses `probe_file`, not `composite`, as the runtime selector. -Service Won't Stop ------------------- +Expected CLI options: -**Symptom**: Epilog fails, service remains running +- `--datacrumbs-enable` +- `--datacrumbs-probe-file PATH` -**Cause**: Server process not responding +Testing without a real Flux prolog +================================== -**Solution**: +Use the installed service wrapper: .. 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 + datacrumbs_service_wrapper start 1 /path/to/probes.json.gz + datacrumbs_service_wrapper stop 1 /path/to/probes.json.gz - # In datacrumbs_service_run.sh - # Only trace for specific users - if [[ ! \" user1 user2 user3 \" =~ \" $FLUX_JOB_USER \" ]]; then - exit 0 # Skip tracing - fi +This fabricates the expected Flux metadata so the service-common path can be +tested without modifying the real prolog scripts. diff --git a/docs/index.rst b/docs/index.rst old mode 100755 new mode 100644 index a0e705e4..cb03c78e --- a/docs/index.rst +++ b/docs/index.rst @@ -1,15 +1,17 @@ -.. 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. - =============================================================================== 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. +DataCrumbs is the runtime side of the DataCrumbs stack. It loads signed probe +descriptions, attaches generic BPF programs to runtime-selected functions, and +writes DFTracer output. + +The current split is: + +- `datacrumbs`: runtime daemon, BPF programs, system configuration generation, + and scheduler service integration +- `datacrumbs-utils`: probe builder, client library, wrappers, tests, and + developer tooling .. toctree:: :maxdepth: 2 @@ -21,28 +23,24 @@ analysis of application I/O behavior at scale. .. toctree:: :maxdepth: 2 - :caption: Building and Setup + :caption: Build and Operation build setup - -.. toctree:: - :maxdepth: 2 - :caption: User Guide - usage integration - composability + run .. toctree:: :maxdepth: 2 - :caption: Advanced Topics + :caption: Scheduler Integration flux_integration + slurm_integration .. toctree:: :maxdepth: 2 - :caption: Legacy Documentation + :caption: Legacy Notes overview @@ -53,4 +51,3 @@ Indices and tables * :ref:`genindex` * :ref:`modindex` * :ref:`search` - diff --git a/docs/integration.rst b/docs/integration.rst old mode 100755 new mode 100644 index f4f6f72d..8cf54f96 --- a/docs/integration.rst +++ b/docs/integration.rst @@ -1,762 +1,79 @@ -========================= +======================= Application Integration -========================= +======================= -DataCrumbs provides multiple methods for integrating tracing into your applications without requiring source code modifications. +DataCrumbs integrates with applications through the client library provided by +`datacrumbs-utils`. -Integration Methods -=================== +Supported Integration Paths +=========================== -DataCrumbs supports three primary integration methods: +1. `datacrumbs_wrap` +2. `datacrumbs_track` +3. scheduler-managed service startup plus wrapped or tracked applications -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 +`datacrumbs_run` is no longer an automatic local wrapper around the daemon. It +is now a multi-node helper that starts `datacrumbs@.service` over SSH +on a node list. -.. 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. +datacrumbs_wrap +=============== -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:** +This is the simplest integration path: .. code-block:: bash - datacrumbs_track --executable PATH [OPTIONS] - -**Arguments:** - -``--executable PATH`` - Path to the executable to instrument (required) - -**Common Options:** + datacrumbs_wrap ./myapp arg1 arg2 -``--verbose`` - Enable detailed output showing each step of the tracking process +It prepends `libdatacrumbs_client.so` to `LD_PRELOAD` and then executes the +command. -``--quiet`` - Suppress informational messages +datacrumbs_track +================ -``--dry-run`` - Show what would be done without modifying the binary - -**Examples:** +For dynamic ELF executables you want to instrument persistently: .. 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 +This adds `libdatacrumbs_client.so` to the binary's dependency list. The +application can still run normally when DataCrumbs is not active. -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:** +Undo the patch with: .. 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 +Scheduler-managed service flow ============================== -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 +On Flux and SLURM systems, the normal production path is: -Rebuild DataCrumbs after configuration changes. +1. generate a signed probes file +2. submit a job with DataCrumbs metadata containing `probe_file` +3. prolog starts `datacrumbs@.service` +4. application runs through the client library +5. epilog stops the service -Pattern 2: Multi-Stage Pipeline Tracing ----------------------------------------- - -Trace complex pipelines with multiple stages: +Testing the service flow without a real prolog is possible through: .. 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 + datacrumbs_service_wrapper start + datacrumbs_service_wrapper stop -Pattern 3: Mixed Integration ------------------------------ +Multi-node service control +========================== -Combine different methods for different components: +Use `datacrumbs_run` and `datacrumbs_stop` when you want to start or stop the +systemd service on a list of nodes directly: .. 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 ----------------------------------- - -.. 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 - -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 + datacrumbs_run --node-list "node[1-4]" --probe-file /tmp/probes.json.gz --run-id myrun + datacrumbs_stop --node-list "node[1-4]" --run-id myrun - # All three stages traced - sudo datacrumbs_server_stop.sh +These commands do not generate probes themselves and do not wrap the workload. +They only coordinate service lifecycle across nodes. diff --git a/docs/run.rst b/docs/run.rst old mode 100755 new mode 100644 index a39d934f..02f1cf03 --- a/docs/run.rst +++ b/docs/run.rst @@ -1,364 +1,94 @@ -=============== +================== Running DataCrumbs -=============== +================== -This guide describes how to run DataCrumbs tests and trace applications, including examples with IOR benchmarking. +This page shows the supported runtime flow after probe generation. -Basic Test Execution -==================== - -Running Tests with CTest ------------------------- - -1. **Navigate to the build directory:** - - .. code-block:: bash - - cd $DATACRUMBS_DIR/build - -2. **List all available tests:** - - .. code-block:: bash - - ctest -N - -3. **View arguments for the DataCrumbs start test (Daemonize script):** - - .. code-block:: bash - - ctest -R datacrumbs_start -VV - - This will show verbose output and the arguments used for the ``datacrumbs_start`` test. - -4. **View arguments for the DataCrumbs run test (sync script):** - - .. code-block:: bash - - ctest -R datacrumbs_run -VV - - This will show verbose output and the arguments used for the ``datacrumbs_run`` 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. - -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 +Single-node direct run +====================== -**Example 2: Read Performance Test** +Start DataCrumbs directly: .. 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 + sudo datacrumbs /path/to/probes.json.gz 1 -**Example 3: Collective I/O Test** +Then run an application through the client library: .. 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. + datacrumbs_wrap dd if=/dev/zero of=/tmp/out.bin bs=1M count=16 status=none -**Example 4: Random I/O Test** +Stop the runtime with `Ctrl-C` or: .. 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 + kill -INT -The ``-z`` flag enables random I/O instead of sequential. +Systemd-managed run +=================== -**Example 5: Shared File Test** +When using the installed `datacrumbs@.service`, first write the per-run +environment file through the scheduler service scripts or the test wrapper, then +start the unit: .. 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 + systemctl start datacrumbs@1.service -Without the ``-F`` flag, all processes use a single shared file. +Logs for the service go to: -Analyzing IOR Traces --------------------- - -After running IOR with DataCrumbs, analyze the generated traces: - -.. code-block:: bash +.. code-block:: text - # 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) + ${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${DATACRUMBS_SERVICE_RUN_ID}_$(hostname).log -**Using DFTracer Utilities**: +Use standard systemd tools for debugging: .. 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/ + systemctl status datacrumbs@1.service + journalctl -u datacrumbs@1.service -**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 +Testing and smoke runs ====================== -Trace and Log Directory Configuration --------------------------------------- - -**Trace Directory** (Administrator Only): +The active utility smoke test in `datacrumbs-utils` runs `dd` through +`datacrumbs_wrap`. -The trace directory is configured by the system administrator during installation and **cannot be changed by users at runtime**. +Example: .. 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% + ctest --test-dir --output-on-failure -R datacrumbs_utils_dd_preload -**Log Directory**: +IOR example +=========== -Log directory may be configurable depending on administrator settings: +Generate a probes file that includes the workload you care about, start the +runtime, and then launch IOR through the client library. .. 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 ------------------------ + sudo datacrumbs /tmp/ior-probes.json.gz ior-test + datacrumbs_wrap ior -a POSIX -b 1m -t 256k -s 16 -F -**Administrator Configuration Only** +Scheduler examples +================== -Path filtering must be configured at build time by the system administrator: +Flux: .. 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 -=============== + flux run --datacrumbs-enable --datacrumbs-probe-file /tmp/probes.json.gz -N 2 -n 4 ./myapp -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: +SLURM interactive allocation: .. 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" + datacrumbs_salloc --datacrumbs-enable --datacrumbs-probe-file /tmp/probes.json.gz -N 2 -Performance Impact ------------------- - -To reduce tracing overhead: +SLURM batch: .. 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 + datacrumbs_sbatch --datacrumbs-enable --datacrumbs-probe-file /tmp/probes.json.gz job.sh diff --git a/docs/setup.rst b/docs/setup.rst old mode 100755 new mode 100644 index 9dad8442..2a7b4b93 --- a/docs/setup.rst +++ b/docs/setup.rst @@ -1,1551 +1,125 @@ -==================== -Environment Setup -==================== +================= +Runtime Setup +================= -After building and installing DataCrumbs, you need to set up your environment to use the tools. +This page covers the runtime layout that `datacrumbs` expects after install. -Setup Script Overview -===================== - -DataCrumbs provides a ``datacrumbs_setup`` script that configures the environment for running tracing sessions. +Environment and Module Setup +============================ -Basic Setup -=========== +The user-facing setup helpers now live in `datacrumbs-utils`, but they are +installed into the shared DataCrumbs prefix. -Source the setup script to configure your environment: +Typical setup: .. code-block:: bash - # If using environment modules - module use /path/to/install/etc/datacrumbs/modulefiles + module use /etc/datacrumbs/lmod/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. +or: .. code-block:: bash - datacrumbs_compose_run --composite-name myconfig + source /bin/datacrumbs_setup -Server Management ------------------ +Important Runtime Inputs +======================== -``datacrumbs_stop`` -^^^^^^^^^^^^^^^^^^^ +At runtime, `datacrumbs` needs: -Stop the DataCrumbs server (requires sudo). +- a signed probes file passed on the command line +- the installed system configuration file +- the installed probe secret -.. code-block:: bash - - datacrumbs_stop +Those installed files are: -``datacrumbs_compose`` -^^^^^^^^^^^^^^^^^^^^^^ +- `/share/datacrumbs/data/system-probe--.json.gz` +- `/share/datacrumbs/data/.datacrumbs-probe-secret` -Manage composable configurations (requires sudo). - -.. code-block:: bash +On login nodes, probe generation also depends on: - sudo datacrumbs_compose --action discover +- `/etc/datacrumbs/systemd/datacrumbs_sign_probes.service` -Utility Commands ----------------- - -``datacrumbs_wrap`` -^^^^^^^^^^^^^^^^^^^ +Direct Runtime Invocation +========================= -Run a command with LD_PRELOAD-based tracing (requires sudo). +The current runtime interface is: .. code-block:: bash - datacrumbs_wrap myapp arg1 arg2 + datacrumbs [run-id] -``datacrumbs_create_log_dir`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +If `run-id` is omitted, DataCrumbs resolves it in this order: -Create date-based log directory structure. +1. explicit CLI argument +2. environment variable named by `DATACRUMBS_JOB_ID_VAR` +3. generated timestamp -.. code-block:: bash - - datacrumbs_create_log_dir - -Configuration Files +Trace and Run 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 --------------- +Runtime configuration derives and manages: -All data files are stored in: ``/etc/datacrumbs/data/`` +- trace directory from `DATACRUMBS_TRACE_DIR_PATTERN` +- run-id file from `DATACRUMBS_SERVER_RUN_ID_FILE` +- ready file from `DATACRUMBS_SERVER_RUN_DIR` -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**: +The ready file is: .. 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 + /datacrumbs-.ready -**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 +It is written once the daemon reaches the ready point and removed on shutdown. Resource Limits =============== -DataCrumbs automatically configures system resource limits for optimal eBPF operation: - -File Descriptors ----------------- +During startup, `datacrumbs` raises these soft limits to their hard limits on a +best-effort basis: -.. 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 +- `RLIMIT_NOFILE` +- `RLIMIT_AS` +- `RLIMIT_MEMLOCK` - # 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 +Service Logs ============ -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 ---------------- +When launched through `datacrumbs@.service`, stdout and stderr are +redirected to: -.. 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:: text -.. code-block:: bash + ${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${DATACRUMBS_SERVICE_RUN_ID}_$(hostname).log - # Verify module path - module use /path/to/install/etc/datacrumbs/modulefiles +Runtime-Detected Invalid Probes +=============================== - # List available modules - module avail datacrumbs +Failed runtime attach targets are recorded to a compressed invalid-probe +database: -Resource Limit Errors ---------------------- +.. code-block:: text -.. code-block:: bash + /share/datacrumbs/data/probes-invalid--.json.gz - # Check current limits - ulimit -a +This file is written with mode `0400` and owned by `root`. - # Increase if needed (as root) - sudo pam_limits.so +Probe signing service +===================== -Configuration File Errors -------------------------- +`datacrumbs_probe_configurator` no longer signs probe files directly with a +shared user-readable secret. Instead, it connects to the trusted login-node +signer service: .. code-block:: bash - # Verify configuration files exist - ls $PREFIX/etc/datacrumbs/configs/ + sudo ln -sf /etc/datacrumbs/systemd/datacrumbs_sign_probes.service \ + /etc/systemd/system/datacrumbs_sign_probes.service + sudo systemctl daemon-reload + sudo systemctl enable --now datacrumbs_sign_probes.service - # Check YAML syntax - python3 -c "import yaml; yaml.safe_load(open('config.yaml'))" +That service runs as `root`. +It only accepts local requests from the installed +`datacrumbs_probe_configurator_exec` binary. +Subsequent runs use it to skip known invalid targets before attach. diff --git a/docs/slurm_integration.rst b/docs/slurm_integration.rst index 19b61497..6f5e8ea3 100644 --- a/docs/slurm_integration.rst +++ b/docs/slurm_integration.rst @@ -1,911 +1,86 @@ -============================ -SLURM Scheduler Integration -============================ +======================== +SLURM Integration +======================== -DataCrumbs provides deep integration with the SLURM workload manager for automated tracing in HPC environments. This integration enables transparent tracing of batch jobs through SLURM prolog/epilog scripts, systemd service management, and a custom ``salloc`` wrapper. +SLURM integration uses the same systemd service model as Flux, with job metadata +stored in the SLURM comment field. -Overview -======== - -The SLURM integration consists of four 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. **salloc Wrapper**: Provides command-line options for users via ``datacrumbs_salloc`` - -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 -* **Native SLURM Integration**: Works seamlessly with existing SLURM workflows - -Architecture +Current Flow ============ -When a SLURM job is submitted with ``datacrumbs_salloc --datacrumbs-enable ``, the following sequence occurs: +1. User generates a signed probes file. +2. User submits through `datacrumbs_salloc` or `datacrumbs_sbatch`: -1. **Job Submission Phase**: + .. code-block:: bash - - User runs ``datacrumbs_salloc`` wrapper instead of ``salloc`` - - Wrapper parses DataCrumbs-specific flags - - Job metadata is encoded as JSON in SLURM comment field - - Allocation is submitted to SLURM with embedded DataCrumbs metadata + datacrumbs_salloc --datacrumbs-enable --datacrumbs-probe-file /path/to/probes.json.gz -N 2 + datacrumbs_sbatch --datacrumbs-enable --datacrumbs-probe-file /path/to/probes.json.gz job.sh -2. **Prolog Phase** (before job starts): +3. The wrapper injects JSON into `--comment`: - - ``datacrumbs_service_run.sh`` is executed on compute node - - Script parses SLURM job comment to check if tracing is enabled - - Systemd service ``datacrumbs@`` is created and started - - DataCrumbs server begins collecting events - - Job waits for server to be ready + .. code-block:: json -3. **Execution Phase**: + {"datacrumbs":{"enable":"yes","probe_file":"/path/to/probes.json.gz"}} - - Application runs normally with tracing active - - eBPF probes capture I/O events - - Events are written to trace files +4. SLURM prolog runs `datacrumbs_service_run.sh`. +5. The script parses the SLURM comment, validates that the probe file is + readable by the submitting user, writes `datacrumbs-.env`, and starts + `datacrumbs@.service`. +6. SLURM epilog runs `datacrumbs_service_stop.sh`, which stops the service and + waits for it to exit. -4. **Epilog Phase** (after job completes): +Installed components +==================== - - ``datacrumbs_service_stop.sh`` is executed - - Systemd service is stopped and disabled - - Server flushes remaining events - - Trace files are finalized +- login node: + - `/etc/datacrumbs/systemd/datacrumbs_sign_probes.service` +- `/etc/datacrumbs/systemd/datacrumbs@.service` +- `/sbin/datacrumbs_service_run.sh` +- `/sbin/datacrumbs_service_stop.sh` +- `/bin/datacrumbs_salloc` +- `/bin/datacrumbs_sbatch` -Installation Steps -================== - -.. note:: - Installation requires root/administrator privileges on all compute nodes. - -Step 1: Enable SLURM Prolog/Epilog ------------------------------------ +Login-node prerequisite +======================= -Edit the SLURM configuration file on the controller node: +Before users generate probe files for SLURM jobs, the trusted signing service +must be running on the login node: .. code-block:: bash - # On SLURM controller node - sudo vi /etc/slurm/slurm.conf - -Add or ensure the following configuration: - -.. code-block:: text - - # Enable prolog execution - Prolog=/etc/slurm/prolog.sh - - # Enable epilog execution - Epilog=/etc/slurm/epilog.sh - -.. note:: - Some SLURM configurations may use ``PrologSlurmctld`` and ``EpilogSlurmctld`` for controller-based execution. Adjust based on your site configuration. The prolog.sh and epilog.sh wrapper scripts will call all scripts in their respective .d directories. - -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 ln -sf /etc/datacrumbs/systemd/datacrumbs_sign_probes.service \ + /etc/systemd/system/datacrumbs_sign_probes.service sudo systemctl daemon-reload + sudo systemctl enable --now datacrumbs_sign_probes.service - # Verify service is recognized - systemctl status datacrumbs@test.service - -**Automated deployment** across multiple nodes: - -.. code-block:: bash - - # Example for compute nodes compute001-compute128 - NODES="compute{001..128}" - - 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: Create Prolog Wrapper Script -------------------------------------- - -Create a wrapper script that SLURM will call, which in turn executes all scripts in the prolog.d directory: - -.. code-block:: bash - - # On each compute node - sudo tee /etc/slurm/prolog.sh > /dev/null << 'EOF' - #!/bin/bash - # SLURM Prolog wrapper - executes all scripts in prolog.d - - PROLOG_DIR="/etc/slurm/prolog.d" - - if [ -d "$PROLOG_DIR" ]; then - for script in "$PROLOG_DIR"/*; do - if [ -x "$script" ]; then - "$script" - fi - done - fi - EOF - - # Make executable - sudo chmod +x /etc/slurm/prolog.sh - -**Automated deployment:** - -.. code-block:: bash - - NODES="compute{001..128}" - - for node in $NODES; do - echo "Creating prolog wrapper on $node" - ssh $node 'sudo tee /etc/slurm/prolog.sh > /dev/null << '"'"'EOF'"'"' - #!/bin/bash - PROLOG_DIR="/etc/slurm/prolog.d" - if [ -d "$PROLOG_DIR" ]; then - for script in "$PROLOG_DIR"/*; do - if [ -x "$script" ]; then - "$script" - fi - done - fi - EOF - sudo chmod +x /etc/slurm/prolog.sh' - done - -Step 4: Install DataCrumbs Prolog Script ------------------------------------------ - -Install the DataCrumbs prolog script that starts tracing: - -**Script location:** ``/sbin/datacrumbs_service_run.sh`` - -.. code-block:: bash - - # On each compute node - DATACRUMBS_INSTALL=/path/to/datacrumbs/install - - # Create prolog.d directory if it doesn't exist - sudo mkdir -p /etc/slurm/prolog.d - - # Symlink DataCrumbs service run script - sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh \\ - /etc/slurm/prolog.d/datacrumbs_service_run.sh - -**Automated deployment:** - -.. code-block:: bash - - NODES="compute{001..128}" - - for node in $NODES; do - echo "Installing DataCrumbs prolog on $node" - ssh $node "sudo mkdir -p /etc/slurm/prolog.d && sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh /etc/slurm/prolog.d/datacrumbs_service_run.sh" - done - -Step 5: Create Epilog Wrapper Script -------------------------------------- - -Create a wrapper script that SLURM will call, which in turn executes all scripts in the epilog.d directory: - -.. code-block:: bash - - # On each compute node - sudo tee /etc/slurm/epilog.sh > /dev/null << 'EOF' - #!/bin/bash - # SLURM Epilog wrapper - executes all scripts in epilog.d - - EPILOG_DIR="/etc/slurm/epilog.d" - - if [ -d "$EPILOG_DIR" ]; then - for script in "$EPILOG_DIR"/*; do - if [ -x "$script" ]; then - "$script" - fi - done - fi - EOF - - # Make executable - sudo chmod +x /etc/slurm/epilog.sh - -**Automated deployment:** - -.. code-block:: bash - - NODES="compute{001..128}" - - for node in $NODES; do - echo "Creating epilog wrapper on $node" - ssh $node 'sudo tee /etc/slurm/epilog.sh > /dev/null << '"'"'EOF'"'"' - #!/bin/bash - EPILOG_DIR="/etc/slurm/epilog.d" - if [ -d "$EPILOG_DIR" ]; then - for script in "$EPILOG_DIR"/*; do - if [ -x "$script" ]; then - "$script" - fi - done - fi - EOF - sudo chmod +x /etc/slurm/epilog.sh' - done - -Step 6: Install DataCrumbs Epilog Script ------------------------------------------ - -Install the DataCrumbs epilog script that stops tracing: - -**Script location:** ``/sbin/datacrumbs_service_stop.sh`` - -.. code-block:: bash - - # On each compute node - DATACRUMBS_INSTALL=/path/to/datacrumbs/install - - # Create epilog.d directory if it doesn't exist - sudo mkdir -p /etc/slurm/epilog.d - - # Symlink DataCrumbs service stop script - sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh \\ - /etc/slurm/epilog.d/datacrumbs_service_stop.sh - -**Automated deployment:** - -.. code-block:: bash - - NODES="compute{001..128}" - - for node in $NODES; do - echo "Installing DataCrumbs epilog on $node" - ssh $node "sudo mkdir -p /etc/slurm/epilog.d && sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh /etc/slurm/epilog.d/datacrumbs_service_stop.sh" - done - -Step 7: Install datacrumbs_salloc Wrapper ------------------------------------------- - -The ``datacrumbs_salloc`` wrapper is installed as part of the standard DataCrumbs installation: - -**Wrapper location:** ``/bin/datacrumbs_salloc`` - -Users should add the DataCrumbs bin directory to their PATH: - -.. code-block:: bash - - # Add to user's ~/.bashrc or ~/.bash_profile - export PATH=/path/to/datacrumbs/install/bin:$PATH - -**Verify wrapper installation:** - -.. code-block:: bash - - # Check if wrapper is accessible - which datacrumbs_salloc - - # View wrapper help - datacrumbs_salloc --help - -Step 8: Restart SLURM (if needed) ----------------------------------- - -After modifying ``slurm.conf``, restart SLURM services: - -.. code-block:: bash - - # On controller node - sudo systemctl restart slurmctld - - # On compute nodes (if using slurmd) - sudo systemctl restart slurmd - -If using ``scontrol``, you can reconfigure without full restart: - -.. code-block:: bash - - sudo scontrol reconfigure - -Complete Installation Script -============================= - -Here's a complete script for deploying across multiple nodes: +Deploying the unit +================== .. code-block:: bash - #!/bin/bash - # deploy_datacrumbs_slurm.sh - - # Configuration - DATACRUMBS_INSTALL=/path/to/datacrumbs/install - NODES="compute{001..128}" - - echo "Deploying DataCrumbs SLURM 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 ln -sf /etc/datacrumbs/systemd/datacrumbs@.service \ + /etc/systemd/system/datacrumbs@.service sudo systemctl daemon-reload - # Create SLURM directories - sudo mkdir -p /etc/slurm/prolog.d - sudo mkdir -p /etc/slurm/epilog.d - - # Create prolog wrapper script - sudo tee /etc/slurm/prolog.sh > /dev/null << 'PROLOG_EOF' -#!/bin/bash -PROLOG_DIR="/etc/slurm/prolog.d" -if [ -d "\$PROLOG_DIR" ]; then - for script in "\$PROLOG_DIR"/*; do - if [ -x "\$script" ]; then - "\$script" - fi - done -fi -PROLOG_EOF - sudo chmod +x /etc/slurm/prolog.sh - - # Create epilog wrapper script - sudo tee /etc/slurm/epilog.sh > /dev/null << 'EPILOG_EOF' -#!/bin/bash -EPILOG_DIR="/etc/slurm/epilog.d" -if [ -d "\$EPILOG_DIR" ]; then - for script in "\$EPILOG_DIR"/*; do - if [ -x "\$script" ]; then - "\$script" - fi - done -fi -EPILOG_EOF - sudo chmod +x /etc/slurm/epilog.sh - - # Symlink DataCrumbs prolog script - sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_run.sh \\ - /etc/slurm/prolog.d/datacrumbs_service_run.sh - - # Symlink DataCrumbs epilog script - sudo ln -sf ${DATACRUMBS_INSTALL}/sbin/datacrumbs_service_stop.sh \\ - /etc/slurm/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 - - echo "" - echo "==========================================" - echo "Deployment complete!" - echo "==========================================" - echo "" - echo "Next steps:" - echo "1. Verify slurm.conf has Prolog=/etc/slurm/prolog.sh and Epilog=/etc/slurm/epilog.sh" - echo "2. Run: sudo scontrol reconfigure (on controller)" - echo "3. Add DataCrumbs bin to user PATH" - echo "4. Test: datacrumbs_salloc --datacrumbs-enable -N 1" - -Usage +Notes ===== -Basic Usage ------------ - -.. important:: - Before tracing, applications must be instrumented using ``datacrumbs_track`` or ``datacrumbs_wrap``. DataCrumbs cannot trace uninstrumented executables. See the main documentation for tracking instructions. - -Use ``datacrumbs_salloc`` wrapper instead of ``salloc`` to enable DataCrumbs: - -.. code-block:: bash - - datacrumbs_salloc --datacrumbs-enable [SLURM_OPTIONS] - -Example: - -.. code-block:: bash - - # Single node allocation - datacrumbs_salloc --datacrumbs-enable -N 1 +- The service scripts now support only `FLUX` and `SLURM`. Any other scheduler + type is treated as an error. +- The job metadata must contain `probe_file`. The legacy `probes` key is no + longer used. +- The service scripts no longer depend on `project.env.local` at runtime. They + use CMake-configured constants directly. - # Multi-node allocation - datacrumbs_salloc --datacrumbs-enable -N 4 -n 32 +Testing without a real SLURM prolog +=================================== - # With time limit and partition - datacrumbs_salloc --datacrumbs-enable -N 2 -t 1:00:00 -p compute - -With Custom Composable Configuration -------------------------------------- - -Specify a custom composable configuration: +Use the installed service wrapper: .. code-block:: bash - datacrumbs_salloc --datacrumbs-enable --datacrumbs-composite=CONFIG_NAME [SLURM_OPTIONS] - -Example: - -.. code-block:: bash - - # Use POSIX I/O configuration - datacrumbs_salloc --datacrumbs-enable --datacrumbs-composite=posix_io -N 4 - - # Use HDF5 configuration - datacrumbs_salloc --datacrumbs-enable --datacrumbs-composite=hdf5_only -N 2 - - # Use MPI-IO configuration - datacrumbs_salloc --datacrumbs-enable --datacrumbs-composite=mpiio_only -N 8 - -Running Jobs in Allocation ---------------------------- - -Once you have an allocation with DataCrumbs enabled, run your applications normally: - -.. code-block:: bash - - # Get allocation with tracing - datacrumbs_salloc --datacrumbs-enable -N 4 - - # Inside allocation, run jobs - srun -N 4 -n 32 ./myapp - - # MPI application - srun -N 4 -n 64 ./parallel_simulation - - # Exit allocation when done - exit - -Using with sbatch ------------------ - -For batch jobs, you need to set the job comment manually in your batch script: - -.. code-block:: bash - - #!/bin/bash - #SBATCH -N 4 - #SBATCH -n 32 - #SBATCH -t 1:00:00 - #SBATCH --comment='{"datacrumbs": {"enable": "yes", "composite": "posix_io"}}' - - # Your application - srun ./myapp - -.. note:: - The ``--comment`` flag must contain valid JSON with the DataCrumbs metadata. The wrapper handles this automatically for interactive allocations. - -Command Reference -================= - -datacrumbs_salloc Options --------------------------- - -``--datacrumbs-enable`` - Enable DataCrumbs tracing for the allocation - - - Default: disabled - - No argument required - - Must be specified to activate tracing - -``--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 configuration - -.. warning:: - The ``--comment`` flag is reserved for internal use by the wrapper and cannot be used directly. - -Examples -======== - -Example 1: Interactive Job with Tracing ----------------------------------------- - -.. code-block:: bash - - # Get allocation with tracing - datacrumbs_salloc --datacrumbs-enable -N 1 - - # Run I/O benchmark - srun dd if=/dev/zero of=/tmp/test bs=1M count=100 - - # Check traces (will be available after epilog) - exit - -Example 2: Multi-Node MPI Application --------------------------------------- - -.. code-block:: bash - - # Get allocation with tracing - datacrumbs_salloc --datacrumbs-enable -N 8 -n 64 - - # Run MPI application - srun -N 8 -n 64 ./parallel_simulation input.dat - - # Exit when done - exit - -Example 3: Custom Configuration for HDF5 ------------------------------------------ - -.. code-block:: bash - - # First, create HDF5-specific configuration (one-time, as root/admin) - sudo datacrumbs_compose --action compose \\ - --name hdf5_workflow \\ - --probes H5Fopen,H5Fclose,H5Dcreate,H5Dopen,H5Dclose,H5Dread,H5Dwrite - - # Get allocation with custom config - datacrumbs_salloc --datacrumbs-enable --datacrumbs-composite=hdf5_workflow -N 4 - - # Run HDF5 application - srun -N 4 -n 32 ./hdf5_analysis dataset.h5 - - # Exit - exit - -Example 4: Batch Job with Tracing ----------------------------------- - -Create a batch script ``job.sbatch``: - -.. code-block:: bash - - #!/bin/bash - #SBATCH -J datacrumbs_test - #SBATCH -N 4 - #SBATCH -n 32 - #SBATCH -t 1:00:00 - #SBATCH -p compute - #SBATCH --comment='{"datacrumbs": {"enable": "yes", "composite": "NONE"}}' - - module load ior - - # Run IOR benchmark - srun -N 4 -n 32 ior -t 1m -b 16m -F -o /scratch/testfile - -Submit the job: - -.. code-block:: bash - - sbatch job.sbatch - -Trace File Location -=================== - -Traces are saved to the configured trace directory in **DFTracer format** (``.pfw.gz``). - -**Trace Directory Pattern**: - -According to the ``trace_dir_pattern`` in the project configuration: - -.. code-block:: bash - - # Default pattern: /path/to/traces/%YY%/%MM%/%DD% - # For job on 2025-12-03: - /path/to/traces/25/12/03/ - -**Trace File Naming**: - -.. code-block:: text - - # Without MPI: - trace----.pfw.gz - - # With MPI: - trace-----.pfw.gz - -**Example**: - -.. code-block:: bash - - # Single node job (SLURM_JOB_ID=12345) - /path/to/traces/25/12/03/trace-haridev-12345-node01-lead.pfw.gz - - # Multi-rank MPI job (4 ranks, SLURM_JOB_ID=67890) - /path/to/traces/25/12/03/trace-haridev-67890-0-4-lead.pfw.gz - /path/to/traces/25/12/03/trace-haridev-67890-1-4-lead.pfw.gz - /path/to/traces/25/12/03/trace-haridev-67890-2-4-lead.pfw.gz - /path/to/traces/25/12/03/trace-haridev-67890-3-4-lead.pfw.gz - -Find traces for a specific job: - -.. code-block:: bash - - # Set job ID - JOBID=12345 - - # 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 SLURM logs - sudo tail -f /var/log/slurm/slurmctld.log - - # Check job info - scontrol show job - - # View job comment (contains DataCrumbs metadata) - scontrol show job | grep Comment - -Check Job Comment ------------------ - -.. code-block:: bash - - # View DataCrumbs metadata in job comment - JOBID= - scontrol show job $JOBID | grep Comment | awk -F'=' '{print $2}' | jq . - -Debug Mode ----------- - -Enable verbose output in prolog/epilog scripts: - -.. code-block:: bash - - # Edit prolog script - sudo vi /etc/slurm/prolog.d/datacrumbs_service_run.sh - - # Add at the beginning: - export DATACRUMBS_VERBOSE=1 - -Troubleshooting -=============== - -Job Hangs at Prolog --------------------- - -**Symptom**: Job hangs during prolog execution - -**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 - - # Check prolog script execution - sudo tail -f /var/log/slurm/slurmctld.log - -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 - - # Verify job comment was set correctly - scontrol show job | grep Comment - - # Should show: Comment={"datacrumbs": {"enable": "yes", ...}} - - # Check if trace files exist - 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 - -Wrapper Not Found ------------------ - -**Symptom**: ``datacrumbs_salloc: command not found`` - -**Cause**: DataCrumbs bin directory not in PATH - -**Solution**: - -.. code-block:: bash - - # Add to PATH temporarily - export PATH=/path/to/datacrumbs/install/bin:$PATH - - # Add to ~/.bashrc for persistence - echo 'export PATH=/path/to/datacrumbs/install/bin:$PATH' >> ~/.bashrc - source ~/.bashrc - -Invalid JSON in Comment ------------------------ - -**Symptom**: Job fails with JSON parsing error - -**Cause**: Malformed JSON in ``--comment`` field (when using sbatch) - -**Solution**: - -.. code-block:: bash - - # Validate JSON format - echo '{"datacrumbs": {"enable": "yes", "composite": "NONE"}}' | jq . - - # Use single quotes around comment in sbatch script - #SBATCH --comment='{"datacrumbs": {"enable": "yes", "composite": "NONE"}}' - -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 to manage disk usage -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_salloc`` -9. **Disk Space**: Ensure adequate space for trace files -10. **Backup Configs**: Keep backups of configuration files and composables -11. **PATH Setup**: Document PATH requirements for users in site documentation -12. **JSON Validation**: Validate JSON when manually setting comments in batch scripts - -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 " =~ " $SLURM_JOB_USER " ]]; then - exit 0 # Skip tracing - fi - -See Also -======== - -* :doc:`composability` - Creating custom composable configurations -* :doc:`deployment` - General deployment guidelines -* :doc:`usage` - DataCrumbs usage and configuration + datacrumbs_service_wrapper start 1 /path/to/probes.json.gz + datacrumbs_service_wrapper stop 1 /path/to/probes.json.gz -For additional support or questions about SLURM integration, consult your system administrator or refer to the DataCrumbs GitHub repository. +This fabricates the expected SLURM metadata and exercises the same +service-common path used by the real prolog and epilog scripts. diff --git a/docs/usage.rst b/docs/usage.rst old mode 100755 new mode 100644 index b9e986dd..51f5e722 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -1,832 +1,115 @@ -================= +=============== 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: +Supported usage now centers on three pieces: -.. code-block:: bash +- generate a signed probes file with `datacrumbs_probe_configurator` +- start `datacrumbs` directly or through `datacrumbs@.service` +- launch workloads through `datacrumbs_wrap` or tracked binaries - # 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 +Quick Start =========== -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:** +1. Generate probes: .. code-block:: bash - datacrumbs_run --app "COMMAND" [OPTIONS] - -**Required Arguments:** - -``--app "COMMAND"`` - Application command with arguments (quoted) - -**Optional Arguments:** + # login-node prerequisite + systemctl status datacrumbs_sign_probes.service -``--enable_mpi`` - Enable MPI support (default: disabled) + datacrumbs_probe_configurator \ + /etc/datacrumbs/configs/.yaml \ + /tmp/probes.json.gz -``--nodes N`` - Number of nodes for MPI execution (default: 1) - -``--ppn N`` - Processes per node for MPI execution (default: 1) - -**Examples:** +2. Start DataCrumbs: .. 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 + sudo datacrumbs /tmp/probes.json.gz myrun -**Log Files**: - -Logs are saved to ``$DATACRUMBS_LOG_DIR``: +3. Run an application through the client library: .. 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. + datacrumbs_wrap dd if=/dev/zero of=/tmp/out.bin bs=1M count=1 status=none -**Prerequisites**: Applications must be instrumented before the server can trace them. +Direct Runtime Mode +=================== -Starting the Server -------------------- +The supported CLI is: .. 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 + datacrumbs [run-id] -Starting with Composable Configuration -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Example: .. code-block:: bash - sudo datacrumbs_server_run.sh --composite-name myconfig + sudo datacrumbs /home/user/lead-probes.json.gz 1 -Instrumenting Applications --------------------------- +The output trace path is derived from the installed system configuration and the +active run id. -**Before** running the server, instrument your applications: +Because the probe-signing secret is root-owned and used again for runtime +verification, direct CLI execution is now a root-only path. Normal multi-user +deployments should prefer `datacrumbs@.service`. -.. 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 +Application Integration Modes +============================= -Running Applications +Tracked ELF binaries -------------------- -With the server running and applications instrumented: +Use `datacrumbs_track` to patch a dynamic executable so +`libdatacrumbs_client.so` is loaded automatically: .. code-block:: bash - # Run tracked binary + datacrumbs_track --executable ./myapp ./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 ------------------------- +Remove the patch with: .. 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 + datacrumbs_untrack --executable ./myapp -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 +LD_PRELOAD wrapping ------------------- -.. 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 -------------- +Use `datacrumbs_wrap` for ad hoc execution: .. 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 + datacrumbs_wrap ./myapp arg1 arg2 -Missing Events --------------- +`datacrumbs_wrap` is also the normal path for simple smoke tests and container +checks. -.. code-block:: bash +Systemd service mode +==================== - # 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 ----------------------------------- +The runtime is designed to work cleanly under: .. 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 + systemctl start datacrumbs@.service + systemctl stop datacrumbs@.service -Example 2: Trace MPI-IO Application ------------------------------------- +The unit waits for readiness through the ready file and stop does not return +until the unit becomes inactive. -.. code-block:: bash +Scheduler metadata +================== - # 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 +Flux and SLURM now pass only one DataCrumbs-specific runtime input in their job +metadata: -Example 3: Long-Running Server -------------------------------- +.. code-block:: json -.. 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 + {"datacrumbs":{"enable":"yes","probe_file":"/path/to/probes.json.gz"}} - # 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 +The legacy `composite` and `probes` metadata fields are no longer part of the +supported flow. diff --git a/etc/datacrumbs/configs/corona.yaml b/etc/datacrumbs/configs/corona.yaml deleted file mode 100755 index c0bfd5b4..00000000 --- a/etc/datacrumbs/configs/corona.yaml +++ /dev/null @@ -1,6 +0,0 @@ -capture_probes: - - name: sys - probe: syscalls - type: header - file: /usr/src/kernels/@DATACRUMBS_KERNEL_UNAME_R@/include/linux/syscalls.h - regex: sys_.* \ No newline at end of file diff --git a/etc/datacrumbs/configs/docker-toss.yaml b/etc/datacrumbs/configs/docker-toss.yaml deleted file mode 100755 index 2cfbf79c..00000000 --- a/etc/datacrumbs/configs/docker-toss.yaml +++ /dev/null @@ -1,31 +0,0 @@ -capture_probes: - - name: custom1 - start_event_id: 100000 - probe: custom - type: custom - file: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c - probes: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/probes.json - process_header: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h - event_type: 2 - - name: libc - probe: uprobe - type: binary - file: @DATACRUMBS_LIBC_SO@ - regex: .*fork.* - - name: python - probe: usdt - type: usdt - binary_path: /lib64/libpython3.6m.so.1.0 - provider: python - - name: os_page_cache - probe: kprobe - type: header - file: /usr/src/kernels/@DATACRUMBS_KERNEL_UNAME_R@/include/linux/pagemap.h - - name: shm - probe: kprobe - type: header - file: /usr/src/kernels/@DATACRUMBS_KERNEL_UNAME_R@/include/linux/shmem_fs.h - - name: iomap - probe: kprobe - type: ksym - regex: ^iomap(?!.*cold).* \ No newline at end of file diff --git a/etc/datacrumbs/configs/docker.yaml b/etc/datacrumbs/configs/docker.yaml deleted file mode 100755 index 3ff6db14..00000000 --- a/etc/datacrumbs/configs/docker.yaml +++ /dev/null @@ -1,24 +0,0 @@ -capture_probes: - - name: custom1 - start_event_id: 100000 - probe: custom - type: custom - file: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c - probes: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/probes.json - process_header: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h - event_type: 2 - - name: libc - probe: uprobe - type: binary - file: @DATACRUMBS_LIBC_SO@ - regex: .*fork.* - - name: python - probe: usdt - type: usdt - binary_path: /lib64/libpython3.6m.so.1.0 - provider: python - - name: os_page_cache - probe: kprobe - type: header - file: @DATACRUMBS_KERNEL_HEADERS_PATH@/include/linux/pagemap.h - enable_explorer: false \ No newline at end of file diff --git a/etc/datacrumbs/configs/ebpf.yaml b/etc/datacrumbs/configs/ebpf.yaml deleted file mode 100755 index 8cdff5ed..00000000 --- a/etc/datacrumbs/configs/ebpf.yaml +++ /dev/null @@ -1,9 +0,0 @@ -capture_probes: - - name: custom1 - start_event_id: 100000 - probe: custom - type: custom - file: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c - probes: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/probes.json - process_header: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h - event_type: 2 \ No newline at end of file diff --git a/etc/datacrumbs/configs/hdf.yaml b/etc/datacrumbs/configs/hdf.yaml deleted file mode 100644 index a19a34c9..00000000 --- a/etc/datacrumbs/configs/hdf.yaml +++ /dev/null @@ -1,61 +0,0 @@ -capture_probes: - - name: vol - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5VL.* - - name: h5ac - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5AC.* - - name: h5a - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5A(?!C).* - - name: h5b - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5B.* - - name: h5d - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5D.* - - name: h5f - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5F.* - # - name: h5general - # probe: uprobe - # type: binary - # file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - # regex: H5_.* - # - name: h5i - # probe: uprobe - # type: binary - # file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - # regex: H5I.* - - name: h5t - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5T.* - - name: h5s - probe: uprobe - type: binary - file: /home/haridev/spack/opt/spack/linux-haswell/hdf5-1.14.5-ul6ejhuh527dwwbgwi3ij6soj2pikw2u/lib/libhdf5.so - regex: H5S.* - # - name: mpi - # probe: uprobe - # type: binary - # file: /usr/lib/x86_64-linux-gnu/libmpi.so.40 - # regex: .* - # - name: h5bench - # probe: uprobe - # type: binary - # file: /home/cc/apps/h5bench/bin/h5bench_write - # regex: ^(?!__).* \ No newline at end of file diff --git a/etc/datacrumbs/configs/lead-us.yaml b/etc/datacrumbs/configs/lead-us.yaml deleted file mode 100755 index cc8db22d..00000000 --- a/etc/datacrumbs/configs/lead-us.yaml +++ /dev/null @@ -1,6 +0,0 @@ -capture_probes: - - name: libc - probe: uprobe - type: binary - file: @DATACRUMBS_LIBC_SO@ - regex: (?!.*_)(?!.*cold)(?!.*time)(?!.*grant)(?!.*poll)(?!.*signal)(?!.*harm)(?!.*hasm).* \ No newline at end of file diff --git a/etc/datacrumbs/configs/lead.yaml b/etc/datacrumbs/configs/lead.yaml deleted file mode 100755 index 16c5f971..00000000 --- a/etc/datacrumbs/configs/lead.yaml +++ /dev/null @@ -1,61 +0,0 @@ -capture_probes: - - name: custom1 - start_event_id: 100000 - probe: custom - type: custom - file: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c - probes: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/probes.json - process_header: @DATACRUMBS_PROJECT_PATH@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h - event_type: 2 - - name: sys - probe: syscalls - type: header - file: /usr/src/kernels/@DATACRUMBS_KERNEL_UNAME_R@/include/linux/syscalls.h - regex: sys_.* - - name: os_page_cache - probe: kprobe - type: header - file: /usr/src/kernels/@DATACRUMBS_KERNEL_UNAME_R@/include/linux/pagemap.h - - name: lustre - probe: kprobe - type: binary - file: /usr/lib/modules/5.14.0-570.55.1.1toss.t5.x86_64/weak-updates/lustre/fs/lustre.ko - 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 - regex: .* - - name: ior - probe: uprobe - type: binary - file: /home/haridev/software/ior/install/bin/ior - 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.env.local.in b/etc/datacrumbs/configs/project.env.local.in deleted file mode 100644 index b68d6a0f..00000000 --- a/etc/datacrumbs/configs/project.env.local.in +++ /dev/null @@ -1,93 +0,0 @@ -# Version -export DATACRUMBS_VERSION=@DATACRUMBS_RELEASE_VERSION_STRING@ -readonly DATACRUMBS_VERSION - -# Library -export DATACRUMBS_LIB_VERSION=@DATACRUMBS_PACKAGE_VERSION@ -readonly DATACRUMBS_LIB_VERSION - -# Install -export DATACRUMBS_INSTALL_HOST=@DATACRUMBS_HOST@ -readonly DATACRUMBS_INSTALL_HOST -export DATACRUMBS_INSTALL_USER=@DATACRUMBS_INSTALL_USER@ -readonly DATACRUMBS_INSTALL_USER -export DATACRUMBS_INSTALL_PREFIX=@CMAKE_INSTALL_PREFIX@ -readonly DATACRUMBS_INSTALL_PREFIX -export DATACRUMBS_INSTALL_BIN_DIR=${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_BINDIR@ -readonly DATACRUMBS_INSTALL_BIN_DIR -export DATACRUMBS_INSTALL_SBIN_DIR=${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_SBINDIR@ -readonly DATACRUMBS_INSTALL_SBIN_DIR -export DATACRUMBS_INSTALL_LIB_DIR=${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_LIBDIR@ -readonly DATACRUMBS_INSTALL_LIB_DIR -export DATACRUMBS_INSTALL_LIBEXEC_DIR=${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_LIBEXECDIR@/@PROJECT_NAME@ -readonly DATACRUMBS_INSTALL_LIBEXEC_DIR -export DATACRUMBS_INSTALL_ETC_DIR=${DATACRUMBS_INSTALL_PREFIX}/@CMAKE_INSTALL_SYSCONFDIR@/@PROJECT_NAME@ -readonly DATACRUMBS_INSTALL_ETC_DIR -export DATACRUMBS_INSTALL_CONFIGS_DIR=${DATACRUMBS_INSTALL_ETC_DIR}/@CMAKE_INSTALL_CONFIGS_DIR@ -readonly DATACRUMBS_INSTALL_CONFIGS_DIR -export DATACRUMBS_INSTALL_DATA_DIR=${DATACRUMBS_INSTALL_ETC_DIR}/@CMAKE_INSTALL_DATA_DIR@ -readonly DATACRUMBS_INSTALL_DATA_DIR -export DATACRUMBS_INSTALL_MODULES_DIR=${DATACRUMBS_INSTALL_ETC_DIR}/@CMAKE_INSTALL_MODULES_DIR@ -readonly DATACRUMBS_INSTALL_MODULES_DIR -export DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR=${DATACRUMBS_INSTALL_LIBEXEC_DIR}/objects -readonly DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR -export DATACRUMBS_INSTALL_COMPOSABLE_DIR=${DATACRUMBS_INSTALL_LIBEXEC_DIR}/composable -readonly DATACRUMBS_INSTALL_COMPOSABLE_DIR -export DATACRUMBS_INSTALL_COMPOSE_BIN=${DATACRUMBS_INSTALL_LIBEXEC_DIR}/@CMAKE_INSTALL_SBINDIR@/${DATACRUMBS_INSTALL_USER} -readonly DATACRUMBS_INSTALL_COMPOSE_BIN -export DATACRUMBS_INSTALL_RUNSTATEDIR=@DATACRUMBS_INSTALL_RUNSTATEDIR@ -readonly DATACRUMBS_INSTALL_RUNSTATEDIR - -# Client -export DATACRUMBS_CLIENT_LIB=${DATACRUMBS_INSTALL_LIB_DIR}/libdatacrumbs_client.so -readonly DATACRUMBS_CLIENT_LIB -export DATACRUMBS_CLIENT_BIN=${DATACRUMBS_INSTALL_LIBEXEC_DIR}/@CMAKE_INSTALL_SBINDIR@/${DATACRUMBS_USER} -readonly DATACRUMBS_CLIENT_BIN - -# Trace -export DATACRUMBS_TRACE_DIR_PATTERN=@DATACRUMBS_CONFIGURED_TRACE_DIR@/%YY%/%MM%/%DD% -readonly DATACRUMBS_TRACE_DIR_PATTERN - -# Job -export DATACRUMBS_JOB_SCHEDULER=@DATACRUMBS_SCHEDULER_TYPE@ -readonly DATACRUMBS_JOB_SCHEDULER -export DATACRUMBS_JOB_RUN=@DATACRUMBS_SCHEDULER_RUN_CMD@ -readonly DATACRUMBS_JOB_RUN -export DATACRUMBS_JOB_NODE_FLAG=@DATACRUMBS_SCHEDULER_NODES_CMD_OPT@ -readonly DATACRUMBS_JOB_NODE_FLAG -export DATACRUMBS_JOB_PPN_FLAG=@DATACRUMBS_SCHEDULER_PPN_CMD_OPT@ -readonly DATACRUMBS_JOB_PPN_FLAG -export DATACRUMBS_JOB_OTHER_FLAGS=@DATACRUMBS_SCHEDULER_RUN_EXTRA_ARGS@ -readonly DATACRUMBS_JOB_OTHER_FLAGS -export DATACRUMBS_JOB_ID_VAR=@DATACRUMBS_SCHEDULER_JOBID_ENV_VAR@ -readonly DATACRUMBS_JOB_ID_VAR - -# Server -export DATACRUMBS_SERVER_LOAD_TIMEOUT=${DATACRUMBS_SERVER_TIMEOUT_USER:-600} -readonly DATACRUMBS_SERVER_LOAD_TIMEOUT -export DATACRUMBS_SERVER_RUN_DIR=@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@ -readonly DATACRUMBS_SERVER_RUN_DIR -export DATACRUMBS_SERVER_RUN_ID_FILE=${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs.runid -readonly DATACRUMBS_SERVER_RUN_ID_FILE -export DATACRUMBS_SERVER_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) -readonly DATACRUMBS_SERVER_RUN_ID -export DATACRUMBS_SERVER_PID_FILE=${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.pid -readonly DATACRUMBS_SERVER_PID_FILE -export DATACRUMBS_SERVER_SYSTEMD_PID_FILE=${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-systemd-${DATACRUMBS_SERVER_RUN_ID}.pid -readonly DATACRUMBS_SERVER_SYSTEMD_PID_FILE -export DATACRUMBS_SERVER_READY_FILE=${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.ready -readonly DATACRUMBS_SERVER_READY_FILE -export DATACRUMBS_SERVER_STATUS_FILE=${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.json -readonly DATACRUMBS_SERVER_STATUS_FILE -export DATACRUMBS_SERVER_ENV_FILE=${DATACRUMBS_SERVER_RUN_DIR}/datacrumbs-${DATACRUMBS_SERVER_RUN_ID}.env -readonly DATACRUMBS_SERVER_ENV_FILE -export DATACRUMBS_SERVER_MODULE=0 -readonly DATACRUMBS_SERVER_MODULE -export DATACRUMBS_SERVER_PREAMBLE= -readonly DATACRUMBS_SERVER_PREAMBLE - -# Log -export DATACRUMBS_LOG_DIR=@DATACRUMBS_CONFIGURED_LOG_DIR@ -readonly DATACRUMBS_LOG_DIR -export DATACRUMBS_LOG_FILE=${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${DATACRUMBS_SERVER_RUN_ID}.log -readonly DATACRUMBS_LOG_FILE \ No newline at end of file diff --git a/etc/datacrumbs/configs/quokka.yaml b/etc/datacrumbs/configs/quokka.yaml deleted file mode 100755 index c0bfd5b4..00000000 --- a/etc/datacrumbs/configs/quokka.yaml +++ /dev/null @@ -1,6 +0,0 @@ -capture_probes: - - name: sys - probe: syscalls - type: header - file: /usr/src/kernels/@DATACRUMBS_KERNEL_UNAME_R@/include/linux/syscalls.h - regex: sys_.* \ No newline at end of file diff --git a/etc/datacrumbs/configs/tuolumne-mpiio.yaml b/etc/datacrumbs/configs/tuolumne-mpiio.yaml deleted file mode 100755 index 58648e02..00000000 --- a/etc/datacrumbs/configs/tuolumne-mpiio.yaml +++ /dev/null @@ -1,16 +0,0 @@ -capture_probes: - - name: mpi-api - probe: uprobe - type: binary - file: /opt/cray/pe/lib64/libmpi_cray.so.12 - regex: PMPI.* - - name: mpii - probe: uprobe - type: binary - file: /opt/cray/pe/lib64/libmpi_cray.so.12 - regex: MPII.* - - name: mpi-rest - probe: uprobe - type: binary - file: /opt/cray/pe/lib64/libmpi_cray.so.12 - regex: .* \ No newline at end of file diff --git a/etc/datacrumbs/configs/tuolumne.yaml b/etc/datacrumbs/configs/tuolumne.yaml deleted file mode 100755 index cc8db22d..00000000 --- a/etc/datacrumbs/configs/tuolumne.yaml +++ /dev/null @@ -1,6 +0,0 @@ -capture_probes: - - name: libc - probe: uprobe - type: binary - file: @DATACRUMBS_LIBC_SO@ - regex: (?!.*_)(?!.*cold)(?!.*time)(?!.*grant)(?!.*poll)(?!.*signal)(?!.*harm)(?!.*hasm).* \ No newline at end of file diff --git a/etc/datacrumbs/data/.gitattributes b/etc/datacrumbs/data/.gitattributes deleted file mode 100644 index 445a0650..00000000 --- a/etc/datacrumbs/data/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -*.json filter=lineignore -*.pfw filter=lineignore -*.pfw.gz filter=lineignore \ No newline at end of file diff --git a/etc/datacrumbs/data/categories-cc-ebpf.json b/etc/datacrumbs/data/categories-cc-ebpf.json deleted file mode 100644 index 55bbaf7a..00000000 --- a/etc/datacrumbs/data/categories-cc-ebpf.json +++ /dev/null @@ -1 +0,0 @@ -{"100020":{"probe_name":"custom1","function_name":"openat2"},"100019":{"probe_name":"custom1","function_name":"open"},"100018":{"probe_name":"custom1","function_name":"writev"},"100017":{"probe_name":"custom1","function_name":"readv"},"100016":{"probe_name":"custom1","function_name":"readahead"},"100015":{"probe_name":"custom1","function_name":"pwritev2"},"100014":{"probe_name":"custom1","function_name":"pwritev"},"100013":{"probe_name":"custom1","function_name":"pwrite64"},"100012":{"probe_name":"custom1","function_name":"preadv2"},"0":{"probe_name":"M","function_name":"SH"},"100009":{"probe_name":"custom1","function_name":"lseek"},"100000":{"probe_name":"custom1","function_name":"openat"},"100001":{"probe_name":"custom1","function_name":"read"},"100002":{"probe_name":"custom1","function_name":"write"},"100003":{"probe_name":"custom1","function_name":"close"},"100004":{"probe_name":"custom1","function_name":"fallocate"},"100005":{"probe_name":"custom1","function_name":"fdatasync"},"100006":{"probe_name":"custom1","function_name":"flock"},"100007":{"probe_name":"custom1","function_name":"fsync"},"100008":{"probe_name":"custom1","function_name":"ftruncate"},"100010":{"probe_name":"custom1","function_name":"pread64"},"100011":{"probe_name":"custom1","function_name":"preadv"}} diff --git a/etc/datacrumbs/data/categories-dhari-quokka.json b/etc/datacrumbs/data/categories-dhari-quokka.json deleted file mode 100644 index f6b497b1..00000000 --- a/etc/datacrumbs/data/categories-dhari-quokka.json +++ /dev/null @@ -1 +0,0 @@ -{"1125":{"probe_name":"sys","function_name":"writev"},"1124":{"probe_name":"sys","function_name":"write"},"1055":{"probe_name":"sys","function_name":"llistxattr"},"1054":{"probe_name":"sys","function_name":"listxattr"},"1053":{"probe_name":"sys","function_name":"linkat"},"1052":{"probe_name":"sys","function_name":"link"},"1051":{"probe_name":"sys","function_name":"lgetxattr"},"1050":{"probe_name":"sys","function_name":"io_uring_setup"},"1049":{"probe_name":"sys","function_name":"io_uring_register"},"1048":{"probe_name":"sys","function_name":"io_uring_enter"},"1047":{"probe_name":"sys","function_name":"io_submit"},"1046":{"probe_name":"sys","function_name":"io_setup"},"1045":{"probe_name":"sys","function_name":"io_destroy"},"1044":{"probe_name":"sys","function_name":"io_cancel"},"1043":{"probe_name":"sys","function_name":"inotify_rm_watch"},"1042":{"probe_name":"sys","function_name":"inotify_init1"},"1041":{"probe_name":"sys","function_name":"inotify_init"},"1040":{"probe_name":"sys","function_name":"inotify_add_watch"},"1039":{"probe_name":"sys","function_name":"getxattr"},"1038":{"probe_name":"sys","function_name":"getdents"},"1037":{"probe_name":"sys","function_name":"getcwd"},"1036":{"probe_name":"sys","function_name":"ftruncate"},"1035":{"probe_name":"sys","function_name":"fsync"},"1034":{"probe_name":"sys","function_name":"fstatfs64"},"1033":{"probe_name":"sys","function_name":"fstatfs"},"1032":{"probe_name":"sys","function_name":"fstat"},"1031":{"probe_name":"sys","function_name":"fsetxattr"},"1027":{"probe_name":"sys","function_name":"fgetxattr"},"1026":{"probe_name":"sys","function_name":"fdatasync"},"1009":{"probe_name":"sys","function_name":"eventfd2"},"1008":{"probe_name":"sys","function_name":"dup3"},"1007":{"probe_name":"sys","function_name":"dup2"},"1006":{"probe_name":"sys","function_name":"dup"},"1000":{"probe_name":"sys","function_name":"access"},"1005":{"probe_name":"sys","function_name":"creat"},"1030":{"probe_name":"sys","function_name":"fremovexattr"},"2":{"probe_name":"DC","function_name":"end"},"1018":{"probe_name":"sys","function_name":"fanotify_mark"},"1017":{"probe_name":"sys","function_name":"fanotify_init"},"1029":{"probe_name":"sys","function_name":"flock"},"1":{"probe_name":"DC","function_name":"start"},"1002":{"probe_name":"sys","function_name":"close"},"1004":{"probe_name":"sys","function_name":"copy_file_range"},"1016":{"probe_name":"sys","function_name":"fallocate"},"1028":{"probe_name":"sys","function_name":"flistxattr"},"0":{"probe_name":"M","function_name":"SH"},"1001":{"probe_name":"sys","function_name":"chdir"},"1003":{"probe_name":"sys","function_name":"close_range"},"1015":{"probe_name":"sys","function_name":"fadvise64_64"},"1010":{"probe_name":"sys","function_name":"exit"},"1011":{"probe_name":"sys","function_name":"exit_group"},"1012":{"probe_name":"sys","function_name":"faccessat"},"1013":{"probe_name":"sys","function_name":"faccessat2"},"1014":{"probe_name":"sys","function_name":"fadvise64"},"1019":{"probe_name":"sys","function_name":"fchdir"},"1020":{"probe_name":"sys","function_name":"fchmod"},"1021":{"probe_name":"sys","function_name":"fchmodat"},"1022":{"probe_name":"sys","function_name":"fchmodat2"},"1023":{"probe_name":"sys","function_name":"fchown"},"1024":{"probe_name":"sys","function_name":"fchownat"},"1025":{"probe_name":"sys","function_name":"fcntl"},"1056":{"probe_name":"sys","function_name":"llseek"},"1057":{"probe_name":"sys","function_name":"lremovexattr"},"1058":{"probe_name":"sys","function_name":"lseek"},"1059":{"probe_name":"sys","function_name":"lsetxattr"},"1060":{"probe_name":"sys","function_name":"lstat"},"1061":{"probe_name":"sys","function_name":"madvise"},"1062":{"probe_name":"sys","function_name":"mbind"},"1063":{"probe_name":"sys","function_name":"migrate_pages"},"1064":{"probe_name":"sys","function_name":"mincore"},"1065":{"probe_name":"sys","function_name":"mkdir"},"1066":{"probe_name":"sys","function_name":"mkdirat"},"1067":{"probe_name":"sys","function_name":"mknod"},"1068":{"probe_name":"sys","function_name":"mknodat"},"1069":{"probe_name":"sys","function_name":"mlock"},"1070":{"probe_name":"sys","function_name":"mlockall"},"1071":{"probe_name":"sys","function_name":"mmap_pgoff"},"1072":{"probe_name":"sys","function_name":"move_pages"},"1073":{"probe_name":"sys","function_name":"mprotect"},"1074":{"probe_name":"sys","function_name":"mremap"},"1075":{"probe_name":"sys","function_name":"msync"},"1076":{"probe_name":"sys","function_name":"munlock"},"1077":{"probe_name":"sys","function_name":"munlockall"},"1078":{"probe_name":"sys","function_name":"munmap"},"1079":{"probe_name":"sys","function_name":"newfstat"},"1080":{"probe_name":"sys","function_name":"newlstat"},"1081":{"probe_name":"sys","function_name":"newstat"},"1082":{"probe_name":"sys","function_name":"open"},"1083":{"probe_name":"sys","function_name":"openat"},"1084":{"probe_name":"sys","function_name":"openat2"},"1085":{"probe_name":"sys","function_name":"pidfd_open"},"1086":{"probe_name":"sys","function_name":"pipe"},"1087":{"probe_name":"sys","function_name":"pread64"},"1088":{"probe_name":"sys","function_name":"preadv"},"1089":{"probe_name":"sys","function_name":"preadv2"},"1090":{"probe_name":"sys","function_name":"process_madvise"},"1091":{"probe_name":"sys","function_name":"process_mrelease"},"1092":{"probe_name":"sys","function_name":"process_vm_readv"},"1093":{"probe_name":"sys","function_name":"process_vm_writev"},"1094":{"probe_name":"sys","function_name":"pwrite64"},"1095":{"probe_name":"sys","function_name":"pwritev"},"1096":{"probe_name":"sys","function_name":"pwritev2"},"1097":{"probe_name":"sys","function_name":"read"},"1098":{"probe_name":"sys","function_name":"readlink"},"1099":{"probe_name":"sys","function_name":"readlinkat"},"1100":{"probe_name":"sys","function_name":"readv"},"1101":{"probe_name":"sys","function_name":"remap_file_pages"},"1102":{"probe_name":"sys","function_name":"removexattr"},"1103":{"probe_name":"sys","function_name":"rename"},"1104":{"probe_name":"sys","function_name":"renameat"},"1105":{"probe_name":"sys","function_name":"rmdir"},"1106":{"probe_name":"sys","function_name":"sendfile64"},"1107":{"probe_name":"sys","function_name":"setxattr"},"1108":{"probe_name":"sys","function_name":"stat"},"1109":{"probe_name":"sys","function_name":"statfs"},"1110":{"probe_name":"sys","function_name":"statfs64"},"1111":{"probe_name":"sys","function_name":"statx"},"1112":{"probe_name":"sys","function_name":"symlink"},"1113":{"probe_name":"sys","function_name":"symlinkat"},"1114":{"probe_name":"sys","function_name":"sync"},"1115":{"probe_name":"sys","function_name":"sync_file_range"},"1116":{"probe_name":"sys","function_name":"sync_file_range2"},"1117":{"probe_name":"sys","function_name":"syncfs"},"1118":{"probe_name":"sys","function_name":"sysfs"},"1119":{"probe_name":"sys","function_name":"truncate"},"1120":{"probe_name":"sys","function_name":"unlink"},"1121":{"probe_name":"sys","function_name":"unlinkat"},"1122":{"probe_name":"sys","function_name":"ustat"},"1123":{"probe_name":"sys","function_name":"vfork"}} diff --git a/etc/datacrumbs/data/categories-haridev-corona.json b/etc/datacrumbs/data/categories-haridev-corona.json deleted file mode 100644 index d511ffba..00000000 --- a/etc/datacrumbs/data/categories-haridev-corona.json +++ /dev/null @@ -1 +0,0 @@ -{"1362":{"probe_name":"sys","function_name":"writev"},"1361":{"probe_name":"sys","function_name":"write"},"1360":{"probe_name":"sys","function_name":"waitpid"},"1359":{"probe_name":"sys","function_name":"waitid"},"1358":{"probe_name":"sys","function_name":"wait4"},"1357":{"probe_name":"sys","function_name":"vmsplice"},"1356":{"probe_name":"sys","function_name":"vhangup"},"1355":{"probe_name":"sys","function_name":"utimes"},"1354":{"probe_name":"sys","function_name":"utimensat"},"1353":{"probe_name":"sys","function_name":"utime"},"1352":{"probe_name":"sys","function_name":"ustat"},"1351":{"probe_name":"sys","function_name":"userfaultfd"},"1350":{"probe_name":"sys","function_name":"uselib"},"1349":{"probe_name":"sys","function_name":"unshare"},"1348":{"probe_name":"sys","function_name":"unlinkat"},"1347":{"probe_name":"sys","function_name":"unlink"},"1346":{"probe_name":"sys","function_name":"uname"},"1345":{"probe_name":"sys","function_name":"umount"},"1344":{"probe_name":"sys","function_name":"umask"},"1343":{"probe_name":"sys","function_name":"truncate"},"1342":{"probe_name":"sys","function_name":"tkill"},"1341":{"probe_name":"sys","function_name":"times"},"1340":{"probe_name":"sys","function_name":"timerfd_settime"},"1339":{"probe_name":"sys","function_name":"timerfd_gettime"},"1338":{"probe_name":"sys","function_name":"timerfd_create"},"1337":{"probe_name":"sys","function_name":"timer_settime"},"1336":{"probe_name":"sys","function_name":"timer_gettime"},"1335":{"probe_name":"sys","function_name":"timer_getoverrun"},"1334":{"probe_name":"sys","function_name":"timer_delete"},"1333":{"probe_name":"sys","function_name":"timer_create"},"1332":{"probe_name":"sys","function_name":"time"},"1331":{"probe_name":"sys","function_name":"tgkill"},"1160":{"probe_name":"sys","function_name":"mq_notify"},"1159":{"probe_name":"sys","function_name":"mq_getsetattr"},"1158":{"probe_name":"sys","function_name":"mprotect"},"1157":{"probe_name":"sys","function_name":"move_pages"},"1156":{"probe_name":"sys","function_name":"move_mount"},"1155":{"probe_name":"sys","function_name":"mount"},"1154":{"probe_name":"sys","function_name":"mmap_pgoff"},"1153":{"probe_name":"sys","function_name":"mlockall"},"1152":{"probe_name":"sys","function_name":"mlock2"},"1151":{"probe_name":"sys","function_name":"mlock"},"1150":{"probe_name":"sys","function_name":"mknodat"},"1149":{"probe_name":"sys","function_name":"mknod"},"1148":{"probe_name":"sys","function_name":"mkdirat"},"1147":{"probe_name":"sys","function_name":"mkdir"},"1146":{"probe_name":"sys","function_name":"mincore"},"1145":{"probe_name":"sys","function_name":"migrate_pages"},"1144":{"probe_name":"sys","function_name":"memfd_create"},"1143":{"probe_name":"sys","function_name":"membarrier"},"1142":{"probe_name":"sys","function_name":"mbind"},"1141":{"probe_name":"sys","function_name":"madvise"},"1140":{"probe_name":"sys","function_name":"lstat"},"1139":{"probe_name":"sys","function_name":"lsetxattr"},"1138":{"probe_name":"sys","function_name":"lseek"},"1137":{"probe_name":"sys","function_name":"lremovexattr"},"1136":{"probe_name":"sys","function_name":"lookup_dcookie"},"1135":{"probe_name":"sys","function_name":"llseek"},"1134":{"probe_name":"sys","function_name":"llistxattr"},"1133":{"probe_name":"sys","function_name":"listxattr"},"1132":{"probe_name":"sys","function_name":"listen"},"1131":{"probe_name":"sys","function_name":"linkat"},"1130":{"probe_name":"sys","function_name":"link"},"1129":{"probe_name":"sys","function_name":"lgetxattr"},"1128":{"probe_name":"sys","function_name":"lchown"},"1127":{"probe_name":"sys","function_name":"kill"},"1126":{"probe_name":"sys","function_name":"keyctl"},"1125":{"probe_name":"sys","function_name":"kexec_load"},"1124":{"probe_name":"sys","function_name":"kexec_file_load"},"1123":{"probe_name":"sys","function_name":"kcmp"},"1122":{"probe_name":"sys","function_name":"ipc"},"1121":{"probe_name":"sys","function_name":"ioprio_set"},"1120":{"probe_name":"sys","function_name":"ioprio_get"},"1119":{"probe_name":"sys","function_name":"ioperm"},"1118":{"probe_name":"sys","function_name":"ioctl"},"1117":{"probe_name":"sys","function_name":"io_uring_setup"},"1116":{"probe_name":"sys","function_name":"io_uring_register"},"1115":{"probe_name":"sys","function_name":"io_uring_enter"},"1114":{"probe_name":"sys","function_name":"io_submit"},"103":{"probe_name":"libc","function_name":"__GI___vfork"},"1113":{"probe_name":"sys","function_name":"io_setup"},"102":{"probe_name":"libc","function_name":"__GI___fork"},"1112":{"probe_name":"sys","function_name":"io_pgetevents"},"101":{"probe_name":"sys","function_name":"vfork"},"1111":{"probe_name":"sys","function_name":"io_getevents"},"100":{"probe_name":"sys","function_name":"fork"},"1110":{"probe_name":"sys","function_name":"io_destroy"},"1109":{"probe_name":"sys","function_name":"io_cancel"},"1108":{"probe_name":"sys","function_name":"inotify_rm_watch"},"1107":{"probe_name":"sys","function_name":"inotify_init1"},"1106":{"probe_name":"sys","function_name":"inotify_init"},"1101":{"probe_name":"sys","function_name":"gettimeofday"},"1100":{"probe_name":"sys","function_name":"gettid"},"1099":{"probe_name":"sys","function_name":"getsockopt"},"1098":{"probe_name":"sys","function_name":"getsockname"},"1097":{"probe_name":"sys","function_name":"getsid"},"1096":{"probe_name":"sys","function_name":"getrusage"},"1095":{"probe_name":"sys","function_name":"getrlimit"},"1094":{"probe_name":"sys","function_name":"getresuid"},"1093":{"probe_name":"sys","function_name":"getresgid"},"1092":{"probe_name":"sys","function_name":"getrandom"},"1091":{"probe_name":"sys","function_name":"getpriority"},"1090":{"probe_name":"sys","function_name":"getppid"},"1089":{"probe_name":"sys","function_name":"getpid"},"1088":{"probe_name":"sys","function_name":"getpgrp"},"1087":{"probe_name":"sys","function_name":"getpgid"},"1086":{"probe_name":"sys","function_name":"getpeername"},"1085":{"probe_name":"sys","function_name":"getitimer"},"1084":{"probe_name":"sys","function_name":"gethostname"},"1083":{"probe_name":"sys","function_name":"getgroups"},"1082":{"probe_name":"sys","function_name":"getgid"},"1081":{"probe_name":"sys","function_name":"geteuid"},"1080":{"probe_name":"sys","function_name":"getegid"},"1079":{"probe_name":"sys","function_name":"getdents64"},"1078":{"probe_name":"sys","function_name":"getdents"},"1077":{"probe_name":"sys","function_name":"getcwd"},"1076":{"probe_name":"sys","function_name":"getcpu"},"1075":{"probe_name":"sys","function_name":"get_robust_list"},"1074":{"probe_name":"sys","function_name":"get_mempolicy"},"1073":{"probe_name":"sys","function_name":"futimesat"},"1030":{"probe_name":"sys","function_name":"dup2"},"1029":{"probe_name":"sys","function_name":"dup"},"1024":{"probe_name":"sys","function_name":"close_range"},"1023":{"probe_name":"sys","function_name":"close"},"1022":{"probe_name":"sys","function_name":"clone"},"1021":{"probe_name":"sys","function_name":"clock_settime"},"1020":{"probe_name":"sys","function_name":"clock_nanosleep"},"1019":{"probe_name":"sys","function_name":"clock_gettime"},"1018":{"probe_name":"sys","function_name":"clock_getres"},"1017":{"probe_name":"sys","function_name":"clock_adjtime"},"1016":{"probe_name":"sys","function_name":"chroot"},"1015":{"probe_name":"sys","function_name":"chown"},"1014":{"probe_name":"sys","function_name":"chmod"},"1013":{"probe_name":"sys","function_name":"chdir"},"1012":{"probe_name":"sys","function_name":"capset"},"1011":{"probe_name":"sys","function_name":"capget"},"0":{"probe_name":"M","function_name":"SH"},"1000":{"probe_name":"sys","function_name":"accept"},"1027":{"probe_name":"sys","function_name":"creat"},"1104":{"probe_name":"sys","function_name":"init_module"},"1050":{"probe_name":"sys","function_name":"fchdir"},"1003":{"probe_name":"sys","function_name":"acct"},"1028":{"probe_name":"sys","function_name":"delete_module"},"1105":{"probe_name":"sys","function_name":"inotify_add_watch"},"1051":{"probe_name":"sys","function_name":"fchmod"},"1004":{"probe_name":"sys","function_name":"add_key"},"1025":{"probe_name":"sys","function_name":"connect"},"1102":{"probe_name":"sys","function_name":"getuid"},"1048":{"probe_name":"sys","function_name":"fanotify_init"},"1001":{"probe_name":"sys","function_name":"accept4"},"1026":{"probe_name":"sys","function_name":"copy_file_range"},"1103":{"probe_name":"sys","function_name":"getxattr"},"1049":{"probe_name":"sys","function_name":"fanotify_mark"},"1002":{"probe_name":"sys","function_name":"access"},"1005":{"probe_name":"sys","function_name":"adjtimex"},"1006":{"probe_name":"sys","function_name":"alarm"},"1007":{"probe_name":"sys","function_name":"bdflush"},"1008":{"probe_name":"sys","function_name":"bind"},"1009":{"probe_name":"sys","function_name":"bpf"},"1010":{"probe_name":"sys","function_name":"brk"},"1031":{"probe_name":"sys","function_name":"dup3"},"1032":{"probe_name":"sys","function_name":"epoll_create"},"1033":{"probe_name":"sys","function_name":"epoll_create1"},"1034":{"probe_name":"sys","function_name":"epoll_ctl"},"1035":{"probe_name":"sys","function_name":"epoll_pwait"},"1036":{"probe_name":"sys","function_name":"epoll_wait"},"1037":{"probe_name":"sys","function_name":"eventfd"},"1038":{"probe_name":"sys","function_name":"eventfd2"},"1039":{"probe_name":"sys","function_name":"execve"},"1040":{"probe_name":"sys","function_name":"execveat"},"1041":{"probe_name":"sys","function_name":"exit"},"1042":{"probe_name":"sys","function_name":"exit_group"},"1043":{"probe_name":"sys","function_name":"faccessat"},"1044":{"probe_name":"sys","function_name":"faccessat2"},"1045":{"probe_name":"sys","function_name":"fadvise64"},"1046":{"probe_name":"sys","function_name":"fadvise64_64"},"1047":{"probe_name":"sys","function_name":"fallocate"},"1052":{"probe_name":"sys","function_name":"fchmodat"},"1053":{"probe_name":"sys","function_name":"fchown"},"1054":{"probe_name":"sys","function_name":"fchownat"},"1055":{"probe_name":"sys","function_name":"fcntl"},"1056":{"probe_name":"sys","function_name":"fdatasync"},"1057":{"probe_name":"sys","function_name":"fgetxattr"},"1058":{"probe_name":"sys","function_name":"finit_module"},"1059":{"probe_name":"sys","function_name":"flistxattr"},"1060":{"probe_name":"sys","function_name":"flock"},"1061":{"probe_name":"sys","function_name":"fremovexattr"},"1062":{"probe_name":"sys","function_name":"fsconfig"},"1063":{"probe_name":"sys","function_name":"fsetxattr"},"1064":{"probe_name":"sys","function_name":"fsmount"},"1065":{"probe_name":"sys","function_name":"fsopen"},"1066":{"probe_name":"sys","function_name":"fspick"},"1067":{"probe_name":"sys","function_name":"fstat"},"1068":{"probe_name":"sys","function_name":"fstatfs"},"1069":{"probe_name":"sys","function_name":"fstatfs64"},"1070":{"probe_name":"sys","function_name":"fsync"},"1071":{"probe_name":"sys","function_name":"ftruncate"},"1072":{"probe_name":"sys","function_name":"futex"},"1161":{"probe_name":"sys","function_name":"mq_open"},"1162":{"probe_name":"sys","function_name":"mq_timedreceive"},"1163":{"probe_name":"sys","function_name":"mq_timedsend"},"1164":{"probe_name":"sys","function_name":"mq_unlink"},"1165":{"probe_name":"sys","function_name":"mremap"},"1166":{"probe_name":"sys","function_name":"msgctl"},"1167":{"probe_name":"sys","function_name":"msgget"},"1168":{"probe_name":"sys","function_name":"msgrcv"},"1169":{"probe_name":"sys","function_name":"msgsnd"},"1170":{"probe_name":"sys","function_name":"msync"},"1171":{"probe_name":"sys","function_name":"munlock"},"1172":{"probe_name":"sys","function_name":"munlockall"},"1173":{"probe_name":"sys","function_name":"munmap"},"1174":{"probe_name":"sys","function_name":"name_to_handle_at"},"1175":{"probe_name":"sys","function_name":"nanosleep"},"1176":{"probe_name":"sys","function_name":"newfstat"},"1177":{"probe_name":"sys","function_name":"newfstatat"},"1178":{"probe_name":"sys","function_name":"newlstat"},"1179":{"probe_name":"sys","function_name":"newstat"},"1180":{"probe_name":"sys","function_name":"newuname"},"1181":{"probe_name":"sys","function_name":"ni_syscall"},"1182":{"probe_name":"sys","function_name":"nice"},"1183":{"probe_name":"sys","function_name":"old_mmap"},"1184":{"probe_name":"sys","function_name":"old_readdir"},"1185":{"probe_name":"sys","function_name":"old_select"},"1186":{"probe_name":"sys","function_name":"oldumount"},"1187":{"probe_name":"sys","function_name":"olduname"},"1188":{"probe_name":"sys","function_name":"open"},"1189":{"probe_name":"sys","function_name":"open_by_handle_at"},"1190":{"probe_name":"sys","function_name":"open_tree"},"1191":{"probe_name":"sys","function_name":"openat"},"1192":{"probe_name":"sys","function_name":"openat2"},"1193":{"probe_name":"sys","function_name":"pause"},"1194":{"probe_name":"sys","function_name":"pciconfig_iobase"},"1195":{"probe_name":"sys","function_name":"pciconfig_read"},"1196":{"probe_name":"sys","function_name":"pciconfig_write"},"1197":{"probe_name":"sys","function_name":"perf_event_open"},"1198":{"probe_name":"sys","function_name":"personality"},"1199":{"probe_name":"sys","function_name":"pidfd_send_signal"},"1200":{"probe_name":"sys","function_name":"pipe"},"1201":{"probe_name":"sys","function_name":"pipe2"},"1202":{"probe_name":"sys","function_name":"pivot_root"},"1203":{"probe_name":"sys","function_name":"pkey_alloc"},"1204":{"probe_name":"sys","function_name":"pkey_free"},"1205":{"probe_name":"sys","function_name":"pkey_mprotect"},"1206":{"probe_name":"sys","function_name":"poll"},"1207":{"probe_name":"sys","function_name":"ppoll"},"1208":{"probe_name":"sys","function_name":"prctl"},"1209":{"probe_name":"sys","function_name":"pread64"},"1210":{"probe_name":"sys","function_name":"preadv"},"1211":{"probe_name":"sys","function_name":"preadv2"},"1212":{"probe_name":"sys","function_name":"prlimit64"},"1213":{"probe_name":"sys","function_name":"process_vm_readv"},"1214":{"probe_name":"sys","function_name":"process_vm_writev"},"1215":{"probe_name":"sys","function_name":"pselect6"},"1216":{"probe_name":"sys","function_name":"ptrace"},"1217":{"probe_name":"sys","function_name":"pwrite64"},"1218":{"probe_name":"sys","function_name":"pwritev"},"1219":{"probe_name":"sys","function_name":"pwritev2"},"1220":{"probe_name":"sys","function_name":"quotactl"},"1221":{"probe_name":"sys","function_name":"read"},"1222":{"probe_name":"sys","function_name":"readahead"},"1223":{"probe_name":"sys","function_name":"readlink"},"1224":{"probe_name":"sys","function_name":"readlinkat"},"1225":{"probe_name":"sys","function_name":"readv"},"1226":{"probe_name":"sys","function_name":"reboot"},"1227":{"probe_name":"sys","function_name":"recv"},"1228":{"probe_name":"sys","function_name":"recvfrom"},"1229":{"probe_name":"sys","function_name":"recvmmsg"},"1230":{"probe_name":"sys","function_name":"recvmsg"},"1231":{"probe_name":"sys","function_name":"remap_file_pages"},"1232":{"probe_name":"sys","function_name":"removexattr"},"1233":{"probe_name":"sys","function_name":"rename"},"1234":{"probe_name":"sys","function_name":"renameat"},"1235":{"probe_name":"sys","function_name":"renameat2"},"1236":{"probe_name":"sys","function_name":"request_key"},"1237":{"probe_name":"sys","function_name":"restart_syscall"},"1238":{"probe_name":"sys","function_name":"rmdir"},"1239":{"probe_name":"sys","function_name":"rseq"},"1240":{"probe_name":"sys","function_name":"rt_sigaction"},"1241":{"probe_name":"sys","function_name":"rt_sigpending"},"1242":{"probe_name":"sys","function_name":"rt_sigprocmask"},"1243":{"probe_name":"sys","function_name":"rt_sigqueueinfo"},"1244":{"probe_name":"sys","function_name":"rt_sigsuspend"},"1245":{"probe_name":"sys","function_name":"rt_sigtimedwait"},"1246":{"probe_name":"sys","function_name":"rt_tgsigqueueinfo"},"1247":{"probe_name":"sys","function_name":"sched_get_priority_max"},"1248":{"probe_name":"sys","function_name":"sched_get_priority_min"},"1249":{"probe_name":"sys","function_name":"sched_getaffinity"},"1250":{"probe_name":"sys","function_name":"sched_getattr"},"1251":{"probe_name":"sys","function_name":"sched_getparam"},"1252":{"probe_name":"sys","function_name":"sched_getscheduler"},"1253":{"probe_name":"sys","function_name":"sched_rr_get_interval"},"1254":{"probe_name":"sys","function_name":"sched_setaffinity"},"1255":{"probe_name":"sys","function_name":"sched_setattr"},"1256":{"probe_name":"sys","function_name":"sched_setparam"},"1257":{"probe_name":"sys","function_name":"sched_setscheduler"},"1258":{"probe_name":"sys","function_name":"sched_yield"},"1259":{"probe_name":"sys","function_name":"seccomp"},"1260":{"probe_name":"sys","function_name":"select"},"1261":{"probe_name":"sys","function_name":"semctl"},"1262":{"probe_name":"sys","function_name":"semget"},"1263":{"probe_name":"sys","function_name":"semop"},"1264":{"probe_name":"sys","function_name":"semtimedop"},"1265":{"probe_name":"sys","function_name":"send"},"1266":{"probe_name":"sys","function_name":"sendfile"},"1267":{"probe_name":"sys","function_name":"sendfile64"},"1268":{"probe_name":"sys","function_name":"sendmmsg"},"1269":{"probe_name":"sys","function_name":"sendmsg"},"1270":{"probe_name":"sys","function_name":"sendto"},"1271":{"probe_name":"sys","function_name":"set_mempolicy"},"1272":{"probe_name":"sys","function_name":"set_robust_list"},"1273":{"probe_name":"sys","function_name":"set_tid_address"},"1274":{"probe_name":"sys","function_name":"setdomainname"},"1275":{"probe_name":"sys","function_name":"setfsgid"},"1276":{"probe_name":"sys","function_name":"setfsuid"},"1277":{"probe_name":"sys","function_name":"setgid"},"1278":{"probe_name":"sys","function_name":"setgroups"},"1279":{"probe_name":"sys","function_name":"sethostname"},"1280":{"probe_name":"sys","function_name":"setitimer"},"1281":{"probe_name":"sys","function_name":"setns"},"1282":{"probe_name":"sys","function_name":"setpgid"},"1283":{"probe_name":"sys","function_name":"setpriority"},"1284":{"probe_name":"sys","function_name":"setregid"},"1285":{"probe_name":"sys","function_name":"setresgid"},"1286":{"probe_name":"sys","function_name":"setresuid"},"1287":{"probe_name":"sys","function_name":"setreuid"},"1288":{"probe_name":"sys","function_name":"setrlimit"},"1289":{"probe_name":"sys","function_name":"setsid"},"1290":{"probe_name":"sys","function_name":"setsockopt"},"1291":{"probe_name":"sys","function_name":"settimeofday"},"1292":{"probe_name":"sys","function_name":"setuid"},"1293":{"probe_name":"sys","function_name":"setxattr"},"1294":{"probe_name":"sys","function_name":"sgetmask"},"1295":{"probe_name":"sys","function_name":"shmat"},"1296":{"probe_name":"sys","function_name":"shmctl"},"1297":{"probe_name":"sys","function_name":"shmdt"},"1298":{"probe_name":"sys","function_name":"shmget"},"1299":{"probe_name":"sys","function_name":"shutdown"},"1300":{"probe_name":"sys","function_name":"sigaltstack"},"1301":{"probe_name":"sys","function_name":"signal"},"1302":{"probe_name":"sys","function_name":"signalfd"},"1303":{"probe_name":"sys","function_name":"signalfd4"},"1304":{"probe_name":"sys","function_name":"sigpending"},"1305":{"probe_name":"sys","function_name":"sigprocmask"},"1306":{"probe_name":"sys","function_name":"socket"},"1307":{"probe_name":"sys","function_name":"socketcall"},"1308":{"probe_name":"sys","function_name":"socketpair"},"1309":{"probe_name":"sys","function_name":"splice"},"1310":{"probe_name":"sys","function_name":"spu_create"},"1311":{"probe_name":"sys","function_name":"spu_run"},"1312":{"probe_name":"sys","function_name":"ssetmask"},"1313":{"probe_name":"sys","function_name":"stat"},"1314":{"probe_name":"sys","function_name":"statfs"},"1315":{"probe_name":"sys","function_name":"statfs64"},"1316":{"probe_name":"sys","function_name":"statx"},"1317":{"probe_name":"sys","function_name":"stime"},"1318":{"probe_name":"sys","function_name":"swapoff"},"1319":{"probe_name":"sys","function_name":"swapon"},"1320":{"probe_name":"sys","function_name":"symlink"},"1321":{"probe_name":"sys","function_name":"symlinkat"},"1322":{"probe_name":"sys","function_name":"sync"},"1323":{"probe_name":"sys","function_name":"sync_file_range"},"1324":{"probe_name":"sys","function_name":"sync_file_range2"},"1325":{"probe_name":"sys","function_name":"syncfs"},"1326":{"probe_name":"sys","function_name":"sysctl"},"1327":{"probe_name":"sys","function_name":"sysfs"},"1328":{"probe_name":"sys","function_name":"sysinfo"},"1329":{"probe_name":"sys","function_name":"syslog"},"1330":{"probe_name":"sys","function_name":"tee"}} diff --git a/etc/datacrumbs/data/categories-haridev-lead-us.json b/etc/datacrumbs/data/categories-haridev-lead-us.json deleted file mode 100644 index 22ab3a72..00000000 --- a/etc/datacrumbs/data/categories-haridev-lead-us.json +++ /dev/null @@ -1 +0,0 @@ -{"1933":{"probe_name":"libc","function_name":"wscanf"},"1932":{"probe_name":"libc","function_name":"writev"},"1931":{"probe_name":"libc","function_name":"writeunix:0x1476a0"},"1930":{"probe_name":"libc","function_name":"writeunix:0x146dd0"},"1929":{"probe_name":"libc","function_name":"writetcp:0x14cbc0"},"1928":{"probe_name":"libc","function_name":"writetcp:0x149760"},"1927":{"probe_name":"libc","function_name":"write"},"1926":{"probe_name":"libc","function_name":"wprintf"},"1925":{"probe_name":"libc","function_name":"wordfree"},"1924":{"probe_name":"libc","function_name":"wordexp"},"1923":{"probe_name":"libc","function_name":"wmempcpy"},"1922":{"probe_name":"libc","function_name":"wmemmove"},"1921":{"probe_name":"libc","function_name":"wmemcpy"},"1920":{"probe_name":"libc","function_name":"wcwidth"},"1919":{"probe_name":"libc","function_name":"wctype"},"1918":{"probe_name":"libc","function_name":"wctrans"},"1917":{"probe_name":"libc","function_name":"wctomb"},"1916":{"probe_name":"libc","function_name":"wctob"},"1915":{"probe_name":"libc","function_name":"wcsxfrm"},"1914":{"probe_name":"libc","function_name":"wcswidth"},"1913":{"probe_name":"libc","function_name":"wcswcs"},"1912":{"probe_name":"libc","function_name":"wcstouq"},"1911":{"probe_name":"libc","function_name":"wcstoumax"},"1910":{"probe_name":"libc","function_name":"wcstoull"},"1909":{"probe_name":"libc","function_name":"wcstoul"},"1908":{"probe_name":"libc","function_name":"wcstoq"},"1907":{"probe_name":"libc","function_name":"wcstombs"},"1906":{"probe_name":"libc","function_name":"wcstoll"},"1905":{"probe_name":"libc","function_name":"wcstold"},"1904":{"probe_name":"libc","function_name":"wcstol"},"1903":{"probe_name":"libc","function_name":"wcstok"},"1902":{"probe_name":"libc","function_name":"wcstoimax"},"1901":{"probe_name":"libc","function_name":"wcstof64x"},"1900":{"probe_name":"libc","function_name":"wcstof64"},"1899":{"probe_name":"libc","function_name":"wcstof32x"},"1898":{"probe_name":"libc","function_name":"wcstof32"},"1897":{"probe_name":"libc","function_name":"wcstof128"},"1896":{"probe_name":"libc","function_name":"wcstof"},"1895":{"probe_name":"libc","function_name":"wcstod"},"1894":{"probe_name":"libc","function_name":"wcsstr"},"1893":{"probe_name":"libc","function_name":"wcsspn"},"1892":{"probe_name":"libc","function_name":"wcsrtombs"},"1891":{"probe_name":"libc","function_name":"wcspbrk"},"1890":{"probe_name":"libc","function_name":"wcsnrtombs"},"1889":{"probe_name":"libc","function_name":"wcsncpy"},"1888":{"probe_name":"libc","function_name":"wcsncat"},"1887":{"probe_name":"libc","function_name":"wcsncasecmp"},"1886":{"probe_name":"libc","function_name":"wcsdup"},"1885":{"probe_name":"libc","function_name":"wcscspn"},"1884":{"probe_name":"libc","function_name":"wcscoll"},"1883":{"probe_name":"libc","function_name":"wcschrnul"},"1882":{"probe_name":"libc","function_name":"wcscat"},"1881":{"probe_name":"libc","function_name":"wcscasecmp"},"1880":{"probe_name":"libc","function_name":"wcrtomb"},"1879":{"probe_name":"libc","function_name":"wcpncpy"},"1878":{"probe_name":"libc","function_name":"wcpcpy"},"1877":{"probe_name":"libc","function_name":"warnx"},"1876":{"probe_name":"libc","function_name":"warn"},"1875":{"probe_name":"libc","function_name":"walker"},"1874":{"probe_name":"libc","function_name":"waitpid"},"1873":{"probe_name":"libc","function_name":"waitid"},"1872":{"probe_name":"libc","function_name":"wait4"},"1871":{"probe_name":"libc","function_name":"wait3"},"1870":{"probe_name":"libc","function_name":"wait"},"1869":{"probe_name":"libc","function_name":"vwscanf"},"1868":{"probe_name":"libc","function_name":"vwprintf"},"1867":{"probe_name":"libc","function_name":"vwarnx"},"1866":{"probe_name":"libc","function_name":"vwarn"},"1865":{"probe_name":"libc","function_name":"vsyslog"},"1864":{"probe_name":"libc","function_name":"vswscanf"},"1863":{"probe_name":"libc","function_name":"vswprintf"},"1862":{"probe_name":"libc","function_name":"vsscanf"},"1861":{"probe_name":"libc","function_name":"vsprintf"},"1860":{"probe_name":"libc","function_name":"vsnprintf"},"1859":{"probe_name":"libc","function_name":"vscanf"},"1858":{"probe_name":"libc","function_name":"vprintf"},"1857":{"probe_name":"libc","function_name":"vmsplice"},"1856":{"probe_name":"libc","function_name":"vlimit"},"1855":{"probe_name":"libc","function_name":"vhangup"},"1854":{"probe_name":"libc","function_name":"vfwscanf"},"1853":{"probe_name":"libc","function_name":"vfwprintf"},"1852":{"probe_name":"libc","function_name":"vfscanf"},"1851":{"probe_name":"libc","function_name":"vfprintf"},"1850":{"probe_name":"libc","function_name":"vfork"},"1849":{"probe_name":"libc","function_name":"versionsort64"},"1848":{"probe_name":"libc","function_name":"versionsort"},"1847":{"probe_name":"libc","function_name":"verrx"},"1846":{"probe_name":"libc","function_name":"verr"},"1845":{"probe_name":"libc","function_name":"vdprintf"},"1844":{"probe_name":"libc","function_name":"vasprintf"},"1843":{"probe_name":"libc","function_name":"valloc"},"1842":{"probe_name":"libc","function_name":"utmpxname"},"1841":{"probe_name":"libc","function_name":"utmpname"},"1840":{"probe_name":"libc","function_name":"usleep"},"1839":{"probe_name":"libc","function_name":"uselocale"},"1838":{"probe_name":"libc","function_name":"updwtmpx"},"1837":{"probe_name":"libc","function_name":"updwtmp"},"1836":{"probe_name":"libc","function_name":"unshare"},"1835":{"probe_name":"libc","function_name":"unsetenv"},"1834":{"probe_name":"libc","function_name":"unlockpt"},"1833":{"probe_name":"libc","function_name":"unlock"},"1832":{"probe_name":"libc","function_name":"unlinkat"},"1831":{"probe_name":"libc","function_name":"unlink"},"1830":{"probe_name":"libc","function_name":"universal"},"1829":{"probe_name":"libc","function_name":"ungetwc"},"1828":{"probe_name":"libc","function_name":"ungetc"},"1827":{"probe_name":"libc","function_name":"uname"},"1826":{"probe_name":"libc","function_name":"umount2"},"1825":{"probe_name":"libc","function_name":"umount"},"1824":{"probe_name":"libc","function_name":"umask"},"1823":{"probe_name":"libc","function_name":"ulimit"},"1822":{"probe_name":"libc","function_name":"ulckpwdf"},"1821":{"probe_name":"libc","function_name":"ualarm"},"1820":{"probe_name":"libc","function_name":"tzset"},"1819":{"probe_name":"libc","function_name":"twalk"},"1818":{"probe_name":"libc","function_name":"ttyslot"},"1817":{"probe_name":"libc","function_name":"ttyname"},"1816":{"probe_name":"libc","function_name":"tsearch"},"1815":{"probe_name":"libc","function_name":"try"},"1814":{"probe_name":"libc","function_name":"truncate64"},"1813":{"probe_name":"libc","function_name":"truncate"},"1812":{"probe_name":"libc","function_name":"trecurse"},"1811":{"probe_name":"libc","function_name":"transcmp"},"1810":{"probe_name":"libc","function_name":"towupper"},"1809":{"probe_name":"libc","function_name":"towlower"},"1808":{"probe_name":"libc","function_name":"towctrans"},"1807":{"probe_name":"libc","function_name":"toupper"},"1806":{"probe_name":"libc","function_name":"tolower"},"1805":{"probe_name":"libc","function_name":"token.part.0"},"1804":{"probe_name":"libc","function_name":"toascii"},"1803":{"probe_name":"libc","function_name":"tmpnam"},"1802":{"probe_name":"libc","function_name":"tmpfile64"},"1801":{"probe_name":"libc","function_name":"tgkill"},"1800":{"probe_name":"libc","function_name":"tfind"},"1799":{"probe_name":"libc","function_name":"textdomain"},"1798":{"probe_name":"libc","function_name":"tempnam"},"1797":{"probe_name":"libc","function_name":"telldir"},"1796":{"probe_name":"libc","function_name":"tee"},"1795":{"probe_name":"libc","function_name":"tdestroy"},"1794":{"probe_name":"libc","function_name":"tdelete"},"1793":{"probe_name":"libc","function_name":"tcsetpgrp"},"1792":{"probe_name":"libc","function_name":"tcsetattr"},"1791":{"probe_name":"libc","function_name":"tcsendbreak"},"1790":{"probe_name":"libc","function_name":"tcgetsid"},"1789":{"probe_name":"libc","function_name":"tcgetpgrp"},"1788":{"probe_name":"libc","function_name":"tcgetattr"},"1787":{"probe_name":"libc","function_name":"tcflush"},"1786":{"probe_name":"libc","function_name":"tcflow"},"1785":{"probe_name":"libc","function_name":"tcdrain"},"1784":{"probe_name":"libc","function_name":"systrim.constprop.0"},"1783":{"probe_name":"libc","function_name":"system"},"1782":{"probe_name":"libc","function_name":"sysmalloc"},"1781":{"probe_name":"libc","function_name":"syslog"},"1780":{"probe_name":"libc","function_name":"sysinfo"},"1779":{"probe_name":"libc","function_name":"sysconf"},"1778":{"probe_name":"libc","function_name":"syscall"},"1777":{"probe_name":"libc","function_name":"syncfs"},"1776":{"probe_name":"libc","function_name":"sync"},"1775":{"probe_name":"libc","function_name":"symlinkat"},"1774":{"probe_name":"libc","function_name":"symlink"},"1773":{"probe_name":"libc","function_name":"swscanf"},"1772":{"probe_name":"libc","function_name":"swprintf"},"1771":{"probe_name":"libc","function_name":"swapon"},"1770":{"probe_name":"libc","function_name":"swapoff"},"1769":{"probe_name":"libc","function_name":"swapcontext"},"1768":{"probe_name":"libc","function_name":"swab"},"1767":{"probe_name":"libc","function_name":"stty"},"1766":{"probe_name":"libc","function_name":"strxfrm"},"1765":{"probe_name":"libc","function_name":"strverscmp"},"1764":{"probe_name":"libc","function_name":"strtouq"},"1763":{"probe_name":"libc","function_name":"strtoumax"},"1762":{"probe_name":"libc","function_name":"strtoull"},"1761":{"probe_name":"libc","function_name":"strtoul"},"1760":{"probe_name":"libc","function_name":"strtoq"},"1759":{"probe_name":"libc","function_name":"strtoll"},"1758":{"probe_name":"libc","function_name":"strtold"},"1757":{"probe_name":"libc","function_name":"strtol"},"1756":{"probe_name":"libc","function_name":"strtok"},"1755":{"probe_name":"libc","function_name":"strtoimax"},"1754":{"probe_name":"libc","function_name":"strtof64x"},"1753":{"probe_name":"libc","function_name":"strtof64"},"1752":{"probe_name":"libc","function_name":"strtof32x"},"1751":{"probe_name":"libc","function_name":"strtof32"},"1750":{"probe_name":"libc","function_name":"strtof128"},"1749":{"probe_name":"libc","function_name":"strtof"},"1748":{"probe_name":"libc","function_name":"strtod"},"1747":{"probe_name":"libc","function_name":"strsep"},"1746":{"probe_name":"libc","function_name":"strndup"},"1745":{"probe_name":"libc","function_name":"strfry"},"1744":{"probe_name":"libc","function_name":"strfroml"},"1743":{"probe_name":"libc","function_name":"strfromf64x"},"1742":{"probe_name":"libc","function_name":"strfromf64"},"1741":{"probe_name":"libc","function_name":"strfromf32x"},"1740":{"probe_name":"libc","function_name":"strfromf32"},"1739":{"probe_name":"libc","function_name":"strfromf128"},"1738":{"probe_name":"libc","function_name":"strfromf"},"1737":{"probe_name":"libc","function_name":"strfromd"},"1736":{"probe_name":"libc","function_name":"strfmon"},"1735":{"probe_name":"libc","function_name":"strerror"},"1734":{"probe_name":"libc","function_name":"strdup"},"1733":{"probe_name":"libc","function_name":"strcoll"},"1732":{"probe_name":"libc","function_name":"strcasestr"},"1731":{"probe_name":"libc","function_name":"statx"},"1730":{"probe_name":"libc","function_name":"statvfs64"},"1729":{"probe_name":"libc","function_name":"statvfs"},"1728":{"probe_name":"libc","function_name":"statfs64"},"1727":{"probe_name":"libc","function_name":"statfs"},"1726":{"probe_name":"libc","function_name":"stat64"},"1725":{"probe_name":"libc","function_name":"stat"},"1724":{"probe_name":"libc","function_name":"sscanf"},"1723":{"probe_name":"libc","function_name":"srandom"},"1722":{"probe_name":"libc","function_name":"srand48"},"1721":{"probe_name":"libc","function_name":"srand"},"1720":{"probe_name":"libc","function_name":"sprofil"},"1719":{"probe_name":"libc","function_name":"sprintf"},"1718":{"probe_name":"libc","function_name":"splice"},"1717":{"probe_name":"libc","function_name":"space"},"1716":{"probe_name":"libc","function_name":"socketpair"},"1715":{"probe_name":"libc","function_name":"socket"},"1714":{"probe_name":"libc","function_name":"sockatmark"},"1713":{"probe_name":"libc","function_name":"snprintf"},"1712":{"probe_name":"libc","function_name":"sleep"},"1711":{"probe_name":"libc","function_name":"skip"},"1710":{"probe_name":"libc","function_name":"sigwaitinfo"},"1709":{"probe_name":"libc","function_name":"sigwait"},"1708":{"probe_name":"libc","function_name":"sigsuspend"},"1707":{"probe_name":"libc","function_name":"sigstack"},"1706":{"probe_name":"libc","function_name":"sigsetmask"},"1705":{"probe_name":"libc","function_name":"sigset"},"1704":{"probe_name":"libc","function_name":"sigreturn"},"1703":{"probe_name":"libc","function_name":"sigrelse"},"1702":{"probe_name":"libc","function_name":"sigqueue"},"1701":{"probe_name":"libc","function_name":"sigprocmask"},"1700":{"probe_name":"libc","function_name":"sigpending"},"1699":{"probe_name":"libc","function_name":"sigpause"},"1698":{"probe_name":"libc","function_name":"sigorset"},"1697":{"probe_name":"libc","function_name":"siglongjmp"},"1696":{"probe_name":"libc","function_name":"sigismember"},"1695":{"probe_name":"libc","function_name":"sigisemptyset"},"1694":{"probe_name":"libc","function_name":"siginterrupt"},"1693":{"probe_name":"libc","function_name":"sigignore"},"1692":{"probe_name":"libc","function_name":"sighold"},"1691":{"probe_name":"libc","function_name":"siggetmask"},"1690":{"probe_name":"libc","function_name":"sigfillset"},"1689":{"probe_name":"libc","function_name":"sigemptyset"},"1688":{"probe_name":"libc","function_name":"sigdelset"},"1687":{"probe_name":"libc","function_name":"sigblock"},"1686":{"probe_name":"libc","function_name":"sigandset"},"1685":{"probe_name":"libc","function_name":"sigaltstack"},"1684":{"probe_name":"libc","function_name":"sigaddset"},"1683":{"probe_name":"libc","function_name":"sigaction"},"1682":{"probe_name":"libc","function_name":"shutdown"},"1681":{"probe_name":"libc","function_name":"shmget"},"1680":{"probe_name":"libc","function_name":"shmdt"},"1679":{"probe_name":"libc","function_name":"shmat"},"1678":{"probe_name":"libc","function_name":"sgetspent"},"1677":{"probe_name":"libc","function_name":"sgetsgent"},"1676":{"probe_name":"libc","function_name":"setxattr"},"1675":{"probe_name":"libc","function_name":"setvbuf"},"1674":{"probe_name":"libc","function_name":"setutxent"},"1673":{"probe_name":"libc","function_name":"setutent"},"1672":{"probe_name":"libc","function_name":"setusershell"},"1671":{"probe_name":"libc","function_name":"setuid"},"1670":{"probe_name":"libc","function_name":"setttyent"},"1669":{"probe_name":"libc","function_name":"setstate"},"1668":{"probe_name":"libc","function_name":"setspent"},"1667":{"probe_name":"libc","function_name":"setsourcefilter"},"1666":{"probe_name":"libc","function_name":"setsockopt"},"1665":{"probe_name":"libc","function_name":"setsid"},"1664":{"probe_name":"libc","function_name":"setsgent"},"1663":{"probe_name":"libc","function_name":"setservent"},"1662":{"probe_name":"libc","function_name":"setrpcent"},"1661":{"probe_name":"libc","function_name":"setrlimit64"},"1660":{"probe_name":"libc","function_name":"setrlimit"},"1659":{"probe_name":"libc","function_name":"setreuid"},"1658":{"probe_name":"libc","function_name":"setresuid"},"1657":{"probe_name":"libc","function_name":"setresgid"},"1656":{"probe_name":"libc","function_name":"setregid"},"1655":{"probe_name":"libc","function_name":"setpwent"},"1654":{"probe_name":"libc","function_name":"setprotoent"},"1653":{"probe_name":"libc","function_name":"setpriority"},"1652":{"probe_name":"libc","function_name":"setpgrp"},"1651":{"probe_name":"libc","function_name":"setpgid"},"1650":{"probe_name":"libc","function_name":"setns"},"1649":{"probe_name":"libc","function_name":"setnetgrent"},"1648":{"probe_name":"libc","function_name":"setnetent"},"1647":{"probe_name":"libc","function_name":"setmntent"},"1646":{"probe_name":"libc","function_name":"setlogmask"},"1645":{"probe_name":"libc","function_name":"setlogin"},"1644":{"probe_name":"libc","function_name":"setlocale"},"1643":{"probe_name":"libc","function_name":"setlinebuf"},"1642":{"probe_name":"libc","function_name":"setjmp"},"1641":{"probe_name":"libc","function_name":"setipv4sourcefilter"},"1640":{"probe_name":"libc","function_name":"sethostname"},"1639":{"probe_name":"libc","function_name":"sethostid"},"1638":{"probe_name":"libc","function_name":"sethostent"},"1637":{"probe_name":"libc","function_name":"setgroups"},"1636":{"probe_name":"libc","function_name":"setgrent"},"1635":{"probe_name":"libc","function_name":"setgid"},"1634":{"probe_name":"libc","function_name":"setfsuid"},"1633":{"probe_name":"libc","function_name":"setfsgid"},"1632":{"probe_name":"libc","function_name":"setfsent"},"1631":{"probe_name":"libc","function_name":"seteuid"},"1630":{"probe_name":"libc","function_name":"setenv"},"1629":{"probe_name":"libc","function_name":"setegid"},"1628":{"probe_name":"libc","function_name":"setdomainname"},"1627":{"probe_name":"libc","function_name":"setcontext"},"1626":{"probe_name":"libc","function_name":"setbuffer"},"1625":{"probe_name":"libc","function_name":"setbuf"},"1624":{"probe_name":"libc","function_name":"setaliasent"},"1623":{"probe_name":"libc","function_name":"sendto"},"1622":{"probe_name":"libc","function_name":"sendmsg"},"1621":{"probe_name":"libc","function_name":"sendmmsg"},"1620":{"probe_name":"libc","function_name":"sendfile64"},"1619":{"probe_name":"libc","function_name":"sendfile"},"1618":{"probe_name":"libc","function_name":"send"},"1617":{"probe_name":"libc","function_name":"semop"},"1616":{"probe_name":"libc","function_name":"semget"},"1615":{"probe_name":"libc","function_name":"select"},"1614":{"probe_name":"libc","function_name":"seekdir"},"1613":{"probe_name":"libc","function_name":"seed48"},"1612":{"probe_name":"libc","function_name":"scopecmp"},"1611":{"probe_name":"libc","function_name":"scanf"},"1610":{"probe_name":"libc","function_name":"scandirat64"},"1609":{"probe_name":"libc","function_name":"scandirat"},"1608":{"probe_name":"libc","function_name":"scandir64"},"1607":{"probe_name":"libc","function_name":"scandir"},"1606":{"probe_name":"libc","function_name":"scalbnl"},"1605":{"probe_name":"libc","function_name":"scalbnf64x"},"1604":{"probe_name":"libc","function_name":"scalbnf64"},"1603":{"probe_name":"libc","function_name":"scalbnf32x"},"1602":{"probe_name":"libc","function_name":"scalbnf32"},"1601":{"probe_name":"libc","function_name":"scalbnf128"},"1600":{"probe_name":"libc","function_name":"scalbnf"},"1599":{"probe_name":"libc","function_name":"scalbn"},"1598":{"probe_name":"libc","function_name":"sbrk"},"1597":{"probe_name":"libc","function_name":"ruserpass"},"1596":{"probe_name":"libc","function_name":"ruserok"},"1595":{"probe_name":"libc","function_name":"rresvport"},"1594":{"probe_name":"libc","function_name":"rpmatch"},"1593":{"probe_name":"libc","function_name":"rmdir"},"1592":{"probe_name":"libc","function_name":"rexec"},"1591":{"probe_name":"libc","function_name":"rewinddir"},"1590":{"probe_name":"libc","function_name":"rewind"},"1589":{"probe_name":"libc","function_name":"revoke"},"1588":{"probe_name":"libc","function_name":"reopen"},"1587":{"probe_name":"libc","function_name":"renameat2"},"1586":{"probe_name":"libc","function_name":"renameat"},"1585":{"probe_name":"libc","function_name":"rename"},"1584":{"probe_name":"libc","function_name":"remque"},"1583":{"probe_name":"libc","function_name":"removexattr"},"1582":{"probe_name":"libc","function_name":"remove"},"1581":{"probe_name":"libc","function_name":"regfree"},"1580":{"probe_name":"libc","function_name":"regerror"},"1579":{"probe_name":"libc","function_name":"regcomp"},"1578":{"probe_name":"libc","function_name":"recvmsg"},"1577":{"probe_name":"libc","function_name":"recvmmsg"},"1576":{"probe_name":"libc","function_name":"recvfrom"},"1575":{"probe_name":"libc","function_name":"recv"},"1574":{"probe_name":"libc","function_name":"reboot"},"1573":{"probe_name":"libc","function_name":"reallocarray"},"1572":{"probe_name":"libc","function_name":"realloc"},"1571":{"probe_name":"libc","function_name":"readv"},"1570":{"probe_name":"libc","function_name":"readunix:0x147810"},"1569":{"probe_name":"libc","function_name":"readunix:0x146e50"},"1568":{"probe_name":"libc","function_name":"readtcp:0x14cc30"},"1567":{"probe_name":"libc","function_name":"readtcp:0x1497e0"},"1566":{"probe_name":"libc","function_name":"readlinkat"},"1565":{"probe_name":"libc","function_name":"readlink"},"1564":{"probe_name":"libc","function_name":"readdir64"},"1563":{"probe_name":"libc","function_name":"readdir"},"1562":{"probe_name":"libc","function_name":"readahead"},"1561":{"probe_name":"libc","function_name":"read"},"1560":{"probe_name":"libc","function_name":"rcmd"},"1559":{"probe_name":"libc","function_name":"random"},"1558":{"probe_name":"libc","function_name":"rand"},"1557":{"probe_name":"libc","function_name":"raise"},"1556":{"probe_name":"libc","function_name":"quotactl"},"1555":{"probe_name":"libc","function_name":"qsort"},"1554":{"probe_name":"libc","function_name":"qgcvt"},"1553":{"probe_name":"libc","function_name":"qfcvt"},"1552":{"probe_name":"libc","function_name":"qecvt"},"1551":{"probe_name":"libc","function_name":"pwritev64v2"},"1550":{"probe_name":"libc","function_name":"pwritev64"},"1549":{"probe_name":"libc","function_name":"pwritev2"},"1548":{"probe_name":"libc","function_name":"pwritev"},"1547":{"probe_name":"libc","function_name":"pwrite64"},"1546":{"probe_name":"libc","function_name":"pwrite"},"1545":{"probe_name":"libc","function_name":"pvalloc"},"1544":{"probe_name":"libc","function_name":"putwchar"},"1543":{"probe_name":"libc","function_name":"putwc"},"1542":{"probe_name":"libc","function_name":"putw"},"1541":{"probe_name":"libc","function_name":"pututxline"},"1540":{"probe_name":"libc","function_name":"pututline"},"1539":{"probe_name":"libc","function_name":"putspent"},"1538":{"probe_name":"libc","function_name":"putsgent"},"1253":{"probe_name":"libc","function_name":"gethostbyname"},"1252":{"probe_name":"libc","function_name":"gethostbyaddr"},"1251":{"probe_name":"libc","function_name":"getgroups"},"1250":{"probe_name":"libc","function_name":"getgrouplist"},"1249":{"probe_name":"libc","function_name":"getgrnam"},"1248":{"probe_name":"libc","function_name":"getgrgid"},"1247":{"probe_name":"libc","function_name":"getgrent"},"1246":{"probe_name":"libc","function_name":"getgid"},"1245":{"probe_name":"libc","function_name":"getfsspec"},"1244":{"probe_name":"libc","function_name":"getfsfile"},"1243":{"probe_name":"libc","function_name":"getfsent"},"1242":{"probe_name":"libc","function_name":"geteuid"},"1241":{"probe_name":"libc","function_name":"getenv"},"1240":{"probe_name":"libc","function_name":"getentropy"},"1239":{"probe_name":"libc","function_name":"getegid"},"1238":{"probe_name":"libc","function_name":"getdtablesize"},"1237":{"probe_name":"libc","function_name":"getdomainname"},"1236":{"probe_name":"libc","function_name":"getdirentries64"},"1235":{"probe_name":"libc","function_name":"getdirentries"},"1234":{"probe_name":"libc","function_name":"getdents64"},"1233":{"probe_name":"libc","function_name":"getdelim"},"1232":{"probe_name":"libc","function_name":"getdate"},"1231":{"probe_name":"libc","function_name":"getcwd"},"1230":{"probe_name":"libc","function_name":"getcpu"},"1229":{"probe_name":"libc","function_name":"getcontext"},"1228":{"probe_name":"libc","function_name":"getchar"},"1227":{"probe_name":"libc","function_name":"getc"},"1226":{"probe_name":"libc","function_name":"getauxval"},"1225":{"probe_name":"libc","function_name":"getaliasent"},"1224":{"probe_name":"libc","function_name":"getaliasbyname"},"1223":{"probe_name":"libc","function_name":"getaddrinfo"},"1222":{"probe_name":"libc","function_name":"gcvt"},"1221":{"probe_name":"libc","function_name":"fwscanf"},"1220":{"probe_name":"libc","function_name":"fwrite"},"1219":{"probe_name":"libc","function_name":"fwprintf"},"1218":{"probe_name":"libc","function_name":"fwide"},"1217":{"probe_name":"libc","function_name":"funlockfile"},"1216":{"probe_name":"libc","function_name":"ftw64"},"1215":{"probe_name":"libc","function_name":"ftw"},"1214":{"probe_name":"libc","function_name":"ftrylockfile"},"1213":{"probe_name":"libc","function_name":"ftruncate64"},"1212":{"probe_name":"libc","function_name":"ftruncate"},"1211":{"probe_name":"libc","function_name":"ftok"},"1210":{"probe_name":"libc","function_name":"ftello64"},"1209":{"probe_name":"libc","function_name":"ftello"},"1208":{"probe_name":"libc","function_name":"ftell"},"1207":{"probe_name":"libc","function_name":"fsync"},"1206":{"probe_name":"libc","function_name":"fstatvfs64"},"1205":{"probe_name":"libc","function_name":"fstatvfs"},"1204":{"probe_name":"libc","function_name":"fstatfs64"},"1203":{"probe_name":"libc","function_name":"fstatfs"},"1202":{"probe_name":"libc","function_name":"fstatat64"},"1201":{"probe_name":"libc","function_name":"fstatat"},"1200":{"probe_name":"libc","function_name":"fstat64"},"1199":{"probe_name":"libc","function_name":"fstat"},"1198":{"probe_name":"libc","function_name":"fsetxattr"},"1197":{"probe_name":"libc","function_name":"fseeko64"},"1196":{"probe_name":"libc","function_name":"fseeko"},"1195":{"probe_name":"libc","function_name":"fseek"},"1194":{"probe_name":"libc","function_name":"fscanf"},"1193":{"probe_name":"libc","function_name":"frexpl"},"1192":{"probe_name":"libc","function_name":"frexpf64x"},"1191":{"probe_name":"libc","function_name":"frexpf64"},"1190":{"probe_name":"libc","function_name":"frexpf32x"},"1189":{"probe_name":"libc","function_name":"frexpf32"},"1188":{"probe_name":"libc","function_name":"frexpf128"},"1187":{"probe_name":"libc","function_name":"frexpf"},"1186":{"probe_name":"libc","function_name":"frexp"},"1185":{"probe_name":"libc","function_name":"freopen64"},"1184":{"probe_name":"libc","function_name":"freopen"},"1183":{"probe_name":"libc","function_name":"fremovexattr"},"1182":{"probe_name":"libc","function_name":"freeres"},"1181":{"probe_name":"libc","function_name":"freelocale"},"1180":{"probe_name":"libc","function_name":"freeifaddrs"},"1179":{"probe_name":"libc","function_name":"freecache"},"1178":{"probe_name":"libc","function_name":"freeaddrinfo"},"1177":{"probe_name":"libc","function_name":"free"},"1176":{"probe_name":"libc","function_name":"fread"},"1175":{"probe_name":"libc","function_name":"fputws"},"1174":{"probe_name":"libc","function_name":"fputwc"},"1173":{"probe_name":"libc","function_name":"fputs"},"1172":{"probe_name":"libc","function_name":"fputc"},"1171":{"probe_name":"libc","function_name":"fprintf"},"1170":{"probe_name":"libc","function_name":"fpathconf"},"1169":{"probe_name":"libc","function_name":"fork"},"1168":{"probe_name":"libc","function_name":"fopen64"},"1167":{"probe_name":"libc","function_name":"fmtmsg"},"1166":{"probe_name":"libc","function_name":"flockfile"},"1165":{"probe_name":"libc","function_name":"flock"},"1164":{"probe_name":"libc","function_name":"flistxattr"},"1163":{"probe_name":"libc","function_name":"finitel"},"1162":{"probe_name":"libc","function_name":"finitef"},"1161":{"probe_name":"libc","function_name":"finite"},"1160":{"probe_name":"libc","function_name":"fini"},"1159":{"probe_name":"libc","function_name":"fileno"},"1158":{"probe_name":"libc","function_name":"fgetxattr"},"1157":{"probe_name":"libc","function_name":"fgetws"},"1156":{"probe_name":"libc","function_name":"fgetwc"},"1155":{"probe_name":"libc","function_name":"fgetspent"},"1154":{"probe_name":"libc","function_name":"fgetsgent"},"1153":{"probe_name":"libc","function_name":"fgets"},"1152":{"probe_name":"libc","function_name":"fgetpwent"},"1151":{"probe_name":"libc","function_name":"fgetgrent"},"1150":{"probe_name":"libc","function_name":"fgetc"},"1149":{"probe_name":"libc","function_name":"ffsll"},"1148":{"probe_name":"libc","function_name":"ffsl"},"1147":{"probe_name":"libc","function_name":"ffs"},"1146":{"probe_name":"libc","function_name":"fflush"},"1145":{"probe_name":"libc","function_name":"fexecve"},"1144":{"probe_name":"libc","function_name":"ferror"},"1143":{"probe_name":"libc","function_name":"feof"},"1142":{"probe_name":"libc","function_name":"fdopendir"},"1141":{"probe_name":"libc","function_name":"fdatasync"},"1140":{"probe_name":"libc","function_name":"fcvt"},"1139":{"probe_name":"libc","function_name":"fcntl64"},"1138":{"probe_name":"libc","function_name":"fcntl"},"1137":{"probe_name":"libc","function_name":"fcloseall"},"1136":{"probe_name":"libc","function_name":"fchownat"},"1135":{"probe_name":"libc","function_name":"fchown"},"1134":{"probe_name":"libc","function_name":"fchmodat"},"1133":{"probe_name":"libc","function_name":"fchmod"},"1132":{"probe_name":"libc","function_name":"fchflags"},"1131":{"probe_name":"libc","function_name":"fchdir"},"1130":{"probe_name":"libc","function_name":"fallocate64"},"1129":{"probe_name":"libc","function_name":"fallocate"},"1128":{"probe_name":"libc","function_name":"faccessat"},"1127":{"probe_name":"libc","function_name":"exit"},"1126":{"probe_name":"libc","function_name":"execvpe"},"1125":{"probe_name":"libc","function_name":"execvp"},"1124":{"probe_name":"libc","function_name":"execveat"},"1055":{"probe_name":"libc","function_name":"clock"},"1054":{"probe_name":"libc","function_name":"clearerr"},"1053":{"probe_name":"libc","function_name":"clearenv"},"1052":{"probe_name":"libc","function_name":"cleanup:0x943c0"},"1051":{"probe_name":"libc","function_name":"cleanup:0x8ba90"},"1050":{"probe_name":"libc","function_name":"chroot"},"1049":{"probe_name":"libc","function_name":"chown"},"1048":{"probe_name":"libc","function_name":"chmod"},"1047":{"probe_name":"libc","function_name":"chflags"},"1046":{"probe_name":"libc","function_name":"chdir"},"1045":{"probe_name":"libc","function_name":"cfsetspeed"},"1044":{"probe_name":"libc","function_name":"cfsetospeed"},"1043":{"probe_name":"libc","function_name":"cfsetispeed"},"1042":{"probe_name":"libc","function_name":"cfmakeraw"},"1041":{"probe_name":"libc","function_name":"cfgetospeed"},"1040":{"probe_name":"libc","function_name":"cfgetispeed"},"1039":{"probe_name":"libc","function_name":"catopen"},"1038":{"probe_name":"libc","function_name":"catgets"},"1037":{"probe_name":"libc","function_name":"catclose"},"1036":{"probe_name":"libc","function_name":"capset"},"1035":{"probe_name":"libc","function_name":"capget"},"1034":{"probe_name":"libc","function_name":"calloc"},"1033":{"probe_name":"libc","function_name":"callback"},"1032":{"probe_name":"libc","function_name":"c32rtomb"},"1031":{"probe_name":"libc","function_name":"c16rtomb"},"1027":{"probe_name":"libc","function_name":"brk"},"1026":{"probe_name":"libc","function_name":"bindtextdomain"},"1009":{"probe_name":"libc","function_name":"alarm"},"1008":{"probe_name":"libc","function_name":"addseverity"},"1007":{"probe_name":"libc","function_name":"addmntent"},"1006":{"probe_name":"libc","function_name":"acct"},"1000":{"probe_name":"libc","function_name":"a64l"},"1005":{"probe_name":"libc","function_name":"access"},"1030":{"probe_name":"libc","function_name":"bzero"},"1084":{"probe_name":"libc","function_name":"div"},"1018":{"probe_name":"libc","function_name":"atol"},"1017":{"probe_name":"libc","function_name":"atoi"},"1029":{"probe_name":"libc","function_name":"btowc"},"1083":{"probe_name":"libc","function_name":"dirname"},"1002":{"probe_name":"libc","function_name":"abs"},"1004":{"probe_name":"libc","function_name":"accept4"},"1016":{"probe_name":"libc","function_name":"atof"},"1028":{"probe_name":"libc","function_name":"bsearch"},"1082":{"probe_name":"libc","function_name":"dirfd"},"1001":{"probe_name":"libc","function_name":"abort"},"1003":{"probe_name":"libc","function_name":"accept"},"1015":{"probe_name":"libc","function_name":"asprintf"},"1010":{"probe_name":"libc","function_name":"allocate:0x105510"},"1011":{"probe_name":"libc","function_name":"allocate:0x122220"},"1012":{"probe_name":"libc","function_name":"alphasort"},"1013":{"probe_name":"libc","function_name":"alphasort64"},"1014":{"probe_name":"libc","function_name":"arg"},"1019":{"probe_name":"libc","function_name":"atoll"},"1020":{"probe_name":"libc","function_name":"backtrace"},"1021":{"probe_name":"libc","function_name":"basename"},"1022":{"probe_name":"libc","function_name":"bcopy"},"1023":{"probe_name":"libc","function_name":"bin2hex"},"1024":{"probe_name":"libc","function_name":"bind"},"1025":{"probe_name":"libc","function_name":"bindresvport"},"1056":{"probe_name":"libc","function_name":"clone"},"1057":{"probe_name":"libc","function_name":"clone3"},"1058":{"probe_name":"libc","function_name":"close"},"1059":{"probe_name":"libc","function_name":"closedir"},"1060":{"probe_name":"libc","function_name":"closefrom"},"1061":{"probe_name":"libc","function_name":"closelog"},"1062":{"probe_name":"libc","function_name":"comma"},"1063":{"probe_name":"libc","function_name":"confstr"},"1064":{"probe_name":"libc","function_name":"connect"},"1065":{"probe_name":"libc","function_name":"copysign"},"1066":{"probe_name":"libc","function_name":"copysignf"},"1067":{"probe_name":"libc","function_name":"copysignf128"},"1068":{"probe_name":"libc","function_name":"copysignf32"},"1069":{"probe_name":"libc","function_name":"copysignf32x"},"1070":{"probe_name":"libc","function_name":"copysignf64"},"1071":{"probe_name":"libc","function_name":"copysignf64x"},"1072":{"probe_name":"libc","function_name":"copysignl"},"1073":{"probe_name":"libc","function_name":"creat"},"1074":{"probe_name":"libc","function_name":"creat64"},"1075":{"probe_name":"libc","function_name":"ctermid"},"1076":{"probe_name":"libc","function_name":"cuserid"},"1077":{"probe_name":"libc","function_name":"daemon"},"1078":{"probe_name":"libc","function_name":"dcgettext"},"1079":{"probe_name":"libc","function_name":"dcngettext"},"1080":{"probe_name":"libc","function_name":"deallocate"},"1081":{"probe_name":"libc","function_name":"dgettext"},"1085":{"probe_name":"libc","function_name":"dngettext"},"1086":{"probe_name":"libc","function_name":"dprintf"},"1087":{"probe_name":"libc","function_name":"drand48"},"1088":{"probe_name":"libc","function_name":"dup"},"1089":{"probe_name":"libc","function_name":"dup2"},"1090":{"probe_name":"libc","function_name":"dup3"},"1091":{"probe_name":"libc","function_name":"duplocale"},"1092":{"probe_name":"libc","function_name":"dysize"},"1093":{"probe_name":"libc","function_name":"eaccess"},"1094":{"probe_name":"libc","function_name":"ecvt"},"1095":{"probe_name":"libc","function_name":"endaliasent"},"1096":{"probe_name":"libc","function_name":"endfsent"},"1097":{"probe_name":"libc","function_name":"endgrent"},"1098":{"probe_name":"libc","function_name":"endhostent"},"1099":{"probe_name":"libc","function_name":"endmntent"},"1100":{"probe_name":"libc","function_name":"endnetent"},"1101":{"probe_name":"libc","function_name":"endnetgrent"},"1102":{"probe_name":"libc","function_name":"endprotoent"},"1103":{"probe_name":"libc","function_name":"endpwent"},"1104":{"probe_name":"libc","function_name":"endrpcent"},"1105":{"probe_name":"libc","function_name":"endservent"},"1106":{"probe_name":"libc","function_name":"endsgent"},"1107":{"probe_name":"libc","function_name":"endspent"},"1108":{"probe_name":"libc","function_name":"endttyent"},"0":{"probe_name":"M","function_name":"SH"},"1109":{"probe_name":"libc","function_name":"endusershell"},"1":{"probe_name":"DC","function_name":"start"},"1110":{"probe_name":"libc","function_name":"endutent"},"2":{"probe_name":"DC","function_name":"end"},"1111":{"probe_name":"libc","function_name":"endutxent"},"1112":{"probe_name":"libc","function_name":"erand48"},"1113":{"probe_name":"libc","function_name":"err"},"1114":{"probe_name":"libc","function_name":"error"},"1115":{"probe_name":"libc","function_name":"errx"},"1116":{"probe_name":"libc","function_name":"euidaccess"},"1117":{"probe_name":"libc","function_name":"eventfd"},"1118":{"probe_name":"libc","function_name":"exchange"},"1119":{"probe_name":"libc","function_name":"execl"},"1120":{"probe_name":"libc","function_name":"execle"},"1121":{"probe_name":"libc","function_name":"execlp"},"1122":{"probe_name":"libc","function_name":"execv"},"1123":{"probe_name":"libc","function_name":"execve"},"1254":{"probe_name":"libc","function_name":"gethostbyname2"},"1255":{"probe_name":"libc","function_name":"gethostent"},"1256":{"probe_name":"libc","function_name":"gethostid"},"1257":{"probe_name":"libc","function_name":"gethostname"},"1258":{"probe_name":"libc","function_name":"gethosts"},"1259":{"probe_name":"libc","function_name":"getifaddrs"},"1260":{"probe_name":"libc","function_name":"getipv4sourcefilter"},"1261":{"probe_name":"libc","function_name":"getline"},"1262":{"probe_name":"libc","function_name":"getloadavg"},"1263":{"probe_name":"libc","function_name":"getlogin"},"1264":{"probe_name":"libc","function_name":"getmntent"},"1265":{"probe_name":"libc","function_name":"getnameinfo"},"1266":{"probe_name":"libc","function_name":"getnetbyaddr"},"1267":{"probe_name":"libc","function_name":"getnetbyname"},"1268":{"probe_name":"libc","function_name":"getnetent"},"1269":{"probe_name":"libc","function_name":"getnetgrent"},"1270":{"probe_name":"libc","function_name":"getopt"},"1271":{"probe_name":"libc","function_name":"getpagesize"},"1272":{"probe_name":"libc","function_name":"getpass"},"1273":{"probe_name":"libc","function_name":"getpeername"},"1274":{"probe_name":"libc","function_name":"getpgid"},"1275":{"probe_name":"libc","function_name":"getpgrp"},"1276":{"probe_name":"libc","function_name":"getpid"},"1277":{"probe_name":"libc","function_name":"getppid"},"1278":{"probe_name":"libc","function_name":"getpriority"},"1279":{"probe_name":"libc","function_name":"getprotobyname"},"1280":{"probe_name":"libc","function_name":"getprotobynumber"},"1281":{"probe_name":"libc","function_name":"getprotoent"},"1282":{"probe_name":"libc","function_name":"getpt"},"1283":{"probe_name":"libc","function_name":"getpw"},"1284":{"probe_name":"libc","function_name":"getpwent"},"1285":{"probe_name":"libc","function_name":"getpwnam"},"1286":{"probe_name":"libc","function_name":"getpwuid"},"1287":{"probe_name":"libc","function_name":"getrandom"},"1288":{"probe_name":"libc","function_name":"getresgid"},"1289":{"probe_name":"libc","function_name":"getresuid"},"1290":{"probe_name":"libc","function_name":"getrlimit"},"1291":{"probe_name":"libc","function_name":"getrlimit64"},"1292":{"probe_name":"libc","function_name":"getrpcbyname"},"1293":{"probe_name":"libc","function_name":"getrpcbynumber"},"1294":{"probe_name":"libc","function_name":"getrpcent"},"1295":{"probe_name":"libc","function_name":"getrusage"},"1296":{"probe_name":"libc","function_name":"gets"},"1297":{"probe_name":"libc","function_name":"getservbyname"},"1298":{"probe_name":"libc","function_name":"getservbyport"},"1299":{"probe_name":"libc","function_name":"getservent"},"1300":{"probe_name":"libc","function_name":"getsgent"},"1301":{"probe_name":"libc","function_name":"getsid"},"1302":{"probe_name":"libc","function_name":"getsockname"},"1303":{"probe_name":"libc","function_name":"getsockopt"},"1304":{"probe_name":"libc","function_name":"getsourcefilter"},"1305":{"probe_name":"libc","function_name":"getspent"},"1306":{"probe_name":"libc","function_name":"getspnam"},"1307":{"probe_name":"libc","function_name":"getsubopt"},"1308":{"probe_name":"libc","function_name":"gettext"},"1309":{"probe_name":"libc","function_name":"gettid"},"1310":{"probe_name":"libc","function_name":"getttyent"},"1311":{"probe_name":"libc","function_name":"getttynam"},"1312":{"probe_name":"libc","function_name":"getuid"},"1313":{"probe_name":"libc","function_name":"getusershell"},"1314":{"probe_name":"libc","function_name":"getutent"},"1315":{"probe_name":"libc","function_name":"getutid"},"1316":{"probe_name":"libc","function_name":"getutline"},"1317":{"probe_name":"libc","function_name":"getutmp"},"1318":{"probe_name":"libc","function_name":"getutmpx"},"1319":{"probe_name":"libc","function_name":"getutxent"},"1320":{"probe_name":"libc","function_name":"getutxid"},"1321":{"probe_name":"libc","function_name":"getutxline"},"1322":{"probe_name":"libc","function_name":"getw"},"1323":{"probe_name":"libc","function_name":"getwc"},"1324":{"probe_name":"libc","function_name":"getwchar"},"1325":{"probe_name":"libc","function_name":"getwd"},"1326":{"probe_name":"libc","function_name":"getxattr"},"1327":{"probe_name":"libc","function_name":"globfree"},"1328":{"probe_name":"libc","function_name":"globfree64"},"1329":{"probe_name":"libc","function_name":"gtty"},"1330":{"probe_name":"libc","function_name":"hcreate"},"1331":{"probe_name":"libc","function_name":"hdestroy"},"1332":{"probe_name":"libc","function_name":"herror"},"1333":{"probe_name":"libc","function_name":"hex2bin"},"1334":{"probe_name":"libc","function_name":"hsearch"},"1335":{"probe_name":"libc","function_name":"hstrerror"},"1336":{"probe_name":"libc","function_name":"htonl"},"1337":{"probe_name":"libc","function_name":"htons"},"1338":{"probe_name":"libc","function_name":"iconv"},"1339":{"probe_name":"libc","function_name":"imaxabs"},"1340":{"probe_name":"libc","function_name":"imaxdiv"},"1341":{"probe_name":"libc","function_name":"in6aicmp"},"1342":{"probe_name":"libc","function_name":"init"},"1343":{"probe_name":"libc","function_name":"initgroups"},"1344":{"probe_name":"libc","function_name":"initshells"},"1345":{"probe_name":"libc","function_name":"initstate"},"1346":{"probe_name":"libc","function_name":"innetgr"},"1347":{"probe_name":"libc","function_name":"insert.part.0"},"1348":{"probe_name":"libc","function_name":"insque"},"1349":{"probe_name":"libc","function_name":"ioctl"},"1350":{"probe_name":"libc","function_name":"ioperm"},"1351":{"probe_name":"libc","function_name":"iopl"},"1352":{"probe_name":"libc","function_name":"iruserfopen"},"1353":{"probe_name":"libc","function_name":"iruserok"},"1354":{"probe_name":"libc","function_name":"isalnum"},"1355":{"probe_name":"libc","function_name":"isalpha"},"1356":{"probe_name":"libc","function_name":"isascii"},"1357":{"probe_name":"libc","function_name":"isatty"},"1358":{"probe_name":"libc","function_name":"isblank"},"1359":{"probe_name":"libc","function_name":"iscntrl"},"1360":{"probe_name":"libc","function_name":"isctype"},"1361":{"probe_name":"libc","function_name":"isdigit"},"1362":{"probe_name":"libc","function_name":"isfdtype"},"1363":{"probe_name":"libc","function_name":"isgraph"},"1364":{"probe_name":"libc","function_name":"isinf"},"1365":{"probe_name":"libc","function_name":"isinff"},"1366":{"probe_name":"libc","function_name":"isinfl"},"1367":{"probe_name":"libc","function_name":"islower"},"1368":{"probe_name":"libc","function_name":"isnan"},"1369":{"probe_name":"libc","function_name":"isnanf"},"1370":{"probe_name":"libc","function_name":"isnanl"},"1371":{"probe_name":"libc","function_name":"isprint"},"1372":{"probe_name":"libc","function_name":"ispunct"},"1373":{"probe_name":"libc","function_name":"isspace"},"1374":{"probe_name":"libc","function_name":"isupper"},"1375":{"probe_name":"libc","function_name":"iswalnum"},"1376":{"probe_name":"libc","function_name":"iswalpha"},"1377":{"probe_name":"libc","function_name":"iswblank"},"1378":{"probe_name":"libc","function_name":"iswcntrl"},"1379":{"probe_name":"libc","function_name":"iswctype"},"1380":{"probe_name":"libc","function_name":"iswdigit"},"1381":{"probe_name":"libc","function_name":"iswgraph"},"1382":{"probe_name":"libc","function_name":"iswlower"},"1383":{"probe_name":"libc","function_name":"iswprint"},"1384":{"probe_name":"libc","function_name":"iswpunct"},"1385":{"probe_name":"libc","function_name":"iswspace"},"1386":{"probe_name":"libc","function_name":"iswupper"},"1387":{"probe_name":"libc","function_name":"iswxdigit"},"1388":{"probe_name":"libc","function_name":"isxdigit"},"1389":{"probe_name":"libc","function_name":"jrand48"},"1390":{"probe_name":"libc","function_name":"kill"},"1391":{"probe_name":"libc","function_name":"killpg"},"1392":{"probe_name":"libc","function_name":"klogctl"},"1393":{"probe_name":"libc","function_name":"l64a"},"1394":{"probe_name":"libc","function_name":"labs"},"1395":{"probe_name":"libc","function_name":"lchmod"},"1396":{"probe_name":"libc","function_name":"lchown"},"1397":{"probe_name":"libc","function_name":"lckpwdf"},"1398":{"probe_name":"libc","function_name":"lcong48"},"1399":{"probe_name":"libc","function_name":"ldexp"},"1400":{"probe_name":"libc","function_name":"ldexpf"},"1401":{"probe_name":"libc","function_name":"ldexpf128"},"1402":{"probe_name":"libc","function_name":"ldexpf32"},"1403":{"probe_name":"libc","function_name":"ldexpf32x"},"1404":{"probe_name":"libc","function_name":"ldexpf64"},"1405":{"probe_name":"libc","function_name":"ldexpf64x"},"1406":{"probe_name":"libc","function_name":"ldexpl"},"1407":{"probe_name":"libc","function_name":"ldiv"},"1408":{"probe_name":"libc","function_name":"lfind"},"1409":{"probe_name":"libc","function_name":"lgetxattr"},"1410":{"probe_name":"libc","function_name":"link"},"1411":{"probe_name":"libc","function_name":"linkat"},"1412":{"probe_name":"libc","function_name":"listen"},"1413":{"probe_name":"libc","function_name":"listxattr"},"1414":{"probe_name":"libc","function_name":"llabs"},"1415":{"probe_name":"libc","function_name":"lldiv"},"1416":{"probe_name":"libc","function_name":"llistxattr"},"1417":{"probe_name":"libc","function_name":"lockf"},"1418":{"probe_name":"libc","function_name":"lockf64"},"1419":{"probe_name":"libc","function_name":"longjmp"},"1420":{"probe_name":"libc","function_name":"lrand48"},"1421":{"probe_name":"libc","function_name":"lremovexattr"},"1422":{"probe_name":"libc","function_name":"lsearch"},"1423":{"probe_name":"libc","function_name":"lseek"},"1424":{"probe_name":"libc","function_name":"lseek64"},"1425":{"probe_name":"libc","function_name":"lsetxattr"},"1426":{"probe_name":"libc","function_name":"lstat"},"1427":{"probe_name":"libc","function_name":"lstat64"},"1428":{"probe_name":"libc","function_name":"madvise"},"1429":{"probe_name":"libc","function_name":"makecontext"},"1430":{"probe_name":"libc","function_name":"mallinfo"},"1431":{"probe_name":"libc","function_name":"mallinfo2"},"1432":{"probe_name":"libc","function_name":"malloc"},"1433":{"probe_name":"libc","function_name":"mallopt"},"1434":{"probe_name":"libc","function_name":"mblen"},"1435":{"probe_name":"libc","function_name":"mbrlen"},"1436":{"probe_name":"libc","function_name":"mbrtoc16"},"1437":{"probe_name":"libc","function_name":"mbrtoc32"},"1438":{"probe_name":"libc","function_name":"mbrtowc"},"1439":{"probe_name":"libc","function_name":"mbsinit"},"1440":{"probe_name":"libc","function_name":"mbsnrtowcs"},"1441":{"probe_name":"libc","function_name":"mbsrtowcs"},"1442":{"probe_name":"libc","function_name":"mbstowcs"},"1443":{"probe_name":"libc","function_name":"mbtowc"},"1444":{"probe_name":"libc","function_name":"mcheck"},"1445":{"probe_name":"libc","function_name":"mcount"},"1446":{"probe_name":"libc","function_name":"memalign"},"1447":{"probe_name":"libc","function_name":"memccpy"},"1448":{"probe_name":"libc","function_name":"memfrob"},"1449":{"probe_name":"libc","function_name":"memmem"},"1450":{"probe_name":"libc","function_name":"mincore"},"1451":{"probe_name":"libc","function_name":"mkdir"},"1452":{"probe_name":"libc","function_name":"mkdirat"},"1453":{"probe_name":"libc","function_name":"mkdtemp"},"1454":{"probe_name":"libc","function_name":"mkfifo"},"1455":{"probe_name":"libc","function_name":"mkfifoat"},"1456":{"probe_name":"libc","function_name":"mknod"},"1457":{"probe_name":"libc","function_name":"mknodat"},"1458":{"probe_name":"libc","function_name":"mkostemp"},"1459":{"probe_name":"libc","function_name":"mkostemp64"},"1460":{"probe_name":"libc","function_name":"mkostemps"},"1461":{"probe_name":"libc","function_name":"mkostemps64"},"1462":{"probe_name":"libc","function_name":"mkstemp"},"1463":{"probe_name":"libc","function_name":"mkstemp64"},"1464":{"probe_name":"libc","function_name":"mkstemps"},"1465":{"probe_name":"libc","function_name":"mkstemps64"},"1466":{"probe_name":"libc","function_name":"mktemp"},"1467":{"probe_name":"libc","function_name":"mlock"},"1468":{"probe_name":"libc","function_name":"mlock2"},"1469":{"probe_name":"libc","function_name":"mlockall"},"1470":{"probe_name":"libc","function_name":"mmap"},"1471":{"probe_name":"libc","function_name":"mmap64"},"1472":{"probe_name":"libc","function_name":"modf"},"1473":{"probe_name":"libc","function_name":"modff"},"1474":{"probe_name":"libc","function_name":"modff128"},"1475":{"probe_name":"libc","function_name":"modff32"},"1476":{"probe_name":"libc","function_name":"modff32x"},"1477":{"probe_name":"libc","function_name":"modff64"},"1478":{"probe_name":"libc","function_name":"modff64x"},"1479":{"probe_name":"libc","function_name":"modfl"},"1480":{"probe_name":"libc","function_name":"moncontrol"},"1481":{"probe_name":"libc","function_name":"monstartup"},"1482":{"probe_name":"libc","function_name":"mount"},"1483":{"probe_name":"libc","function_name":"mprobe"},"1484":{"probe_name":"libc","function_name":"mprotect"},"1485":{"probe_name":"libc","function_name":"mrand48"},"1486":{"probe_name":"libc","function_name":"mremap"},"1487":{"probe_name":"libc","function_name":"msgget"},"1488":{"probe_name":"libc","function_name":"msgrcv"},"1489":{"probe_name":"libc","function_name":"msgsnd"},"1490":{"probe_name":"libc","function_name":"msync"},"1491":{"probe_name":"libc","function_name":"mtrace"},"1492":{"probe_name":"libc","function_name":"munlock"},"1493":{"probe_name":"libc","function_name":"munlockall"},"1494":{"probe_name":"libc","function_name":"munmap"},"1495":{"probe_name":"libc","function_name":"muntrace"},"1496":{"probe_name":"libc","function_name":"nanosleep"},"1497":{"probe_name":"libc","function_name":"newlocale"},"1498":{"probe_name":"libc","function_name":"ngettext"},"1499":{"probe_name":"libc","function_name":"nice"},"1500":{"probe_name":"libc","function_name":"nrand48"},"1501":{"probe_name":"libc","function_name":"ntohl"},"1502":{"probe_name":"libc","function_name":"ntohs"},"1503":{"probe_name":"libc","function_name":"open"},"1504":{"probe_name":"libc","function_name":"open64"},"1505":{"probe_name":"libc","function_name":"openat"},"1506":{"probe_name":"libc","function_name":"openat64"},"1507":{"probe_name":"libc","function_name":"opendir"},"1508":{"probe_name":"libc","function_name":"openlog"},"1509":{"probe_name":"libc","function_name":"pathconf"},"1510":{"probe_name":"libc","function_name":"pause"},"1511":{"probe_name":"libc","function_name":"pcmp"},"1512":{"probe_name":"libc","function_name":"perror"},"1513":{"probe_name":"libc","function_name":"personality"},"1514":{"probe_name":"libc","function_name":"pipe"},"1515":{"probe_name":"libc","function_name":"pipe2"},"1516":{"probe_name":"libc","function_name":"prctl"},"1517":{"probe_name":"libc","function_name":"pread"},"1518":{"probe_name":"libc","function_name":"pread64"},"1519":{"probe_name":"libc","function_name":"preadv"},"1520":{"probe_name":"libc","function_name":"preadv2"},"1521":{"probe_name":"libc","function_name":"preadv64"},"1522":{"probe_name":"libc","function_name":"preadv64v2"},"1523":{"probe_name":"libc","function_name":"prefixcmp"},"1524":{"probe_name":"libc","function_name":"printf"},"1525":{"probe_name":"libc","function_name":"prlimit"},"1526":{"probe_name":"libc","function_name":"prlimit64"},"1527":{"probe_name":"libc","function_name":"profil"},"1528":{"probe_name":"libc","function_name":"pselect"},"1529":{"probe_name":"libc","function_name":"psiginfo"},"1530":{"probe_name":"libc","function_name":"ptrace"},"1531":{"probe_name":"libc","function_name":"ptsname"},"1532":{"probe_name":"libc","function_name":"putc"},"1533":{"probe_name":"libc","function_name":"putchar"},"1534":{"probe_name":"libc","function_name":"putenv"},"1535":{"probe_name":"libc","function_name":"putgrent"},"1536":{"probe_name":"libc","function_name":"putpwent"},"1537":{"probe_name":"libc","function_name":"puts"}} diff --git a/etc/datacrumbs/data/categories-haridev-lead.json b/etc/datacrumbs/data/categories-haridev-lead.json deleted file mode 100644 index bacb22c5..00000000 --- a/etc/datacrumbs/data/categories-haridev-lead.json +++ /dev/null @@ -1 +0,0 @@ -{"11869":{"probe_name":"ior","function_name":"updateParsedOptions"},"11868":{"probe_name":"ior","function_name":"test_time_elapsed"},"11867":{"probe_name":"ior","function_name":"string_to_bytes"},"11866":{"probe_name":"ior","function_name":"set_o_direct_flag"},"11865":{"probe_name":"ior","function_name":"safeMalloc"},"11864":{"probe_name":"ior","function_name":"register_tm_clones"},"11863":{"probe_name":"ior","function_name":"print_value"},"11862":{"probe_name":"ior","function_name":"print_option_value"},"11861":{"probe_name":"ior","function_name":"print_help_section"},"11860":{"probe_name":"ior","function_name":"print_current_option_section"},"11859":{"probe_name":"ior","function_name":"option_print_help"},"11858":{"probe_name":"ior","function_name":"option_print_current"},"11857":{"probe_name":"ior","function_name":"option_parse_token"},"11856":{"probe_name":"ior","function_name":"option_parse_str"},"11855":{"probe_name":"ior","function_name":"option_parse_key_value"},"11854":{"probe_name":"ior","function_name":"option_parse"},"11853":{"probe_name":"ior","function_name":"ops_values"},"11852":{"probe_name":"ior","function_name":"mean_of_array_of_doubles"},"11851":{"probe_name":"ior","function_name":"malloc_and_touch"},"11850":{"probe_name":"ior","function_name":"main"},"11849":{"probe_name":"ior","function_name":"ior_run"},"11848":{"probe_name":"ior","function_name":"ior_mmap_file"},"11847":{"probe_name":"ior","function_name":"ior_main"},"11846":{"probe_name":"ior","function_name":"init_or_fini_internal"},"11845":{"probe_name":"ior","function_name":"init_or_fini"},"11844":{"probe_name":"ior","function_name":"init_clock"},"11843":{"probe_name":"ior","function_name":"init_IOR_Param_t"},"11842":{"probe_name":"ior","function_name":"frame_dummy"},"11841":{"probe_name":"ior","function_name":"file_hits_histogram"},"11840":{"probe_name":"ior","function_name":"deregister_tm_clones"},"11839":{"probe_name":"ior","function_name":"decodeDirectiveWrapper"},"11838":{"probe_name":"ior","function_name":"createGlobalOptions"},"11837":{"probe_name":"ior","function_name":"contains_only"},"11836":{"probe_name":"ior","function_name":"bw_values"},"11835":{"probe_name":"ior","function_name":"bw_ops_values"},"11834":{"probe_name":"ior","function_name":"aligned_buffer_free"},"11833":{"probe_name":"ior","function_name":"aligned_buffer_alloc"},"11832":{"probe_name":"ior","function_name":"airoi_update_module_options"},"11831":{"probe_name":"ior","function_name":"airoi_create_all_module_options"},"11830":{"probe_name":"ior","function_name":"aiori_supported_apis"},"11829":{"probe_name":"ior","function_name":"aiori_select"},"11828":{"probe_name":"ior","function_name":"aiori_posix_statfs"},"11827":{"probe_name":"ior","function_name":"aiori_posix_stat"},"11826":{"probe_name":"ior","function_name":"aiori_posix_rmdir"},"11825":{"probe_name":"ior","function_name":"aiori_posix_mkdir"},"11824":{"probe_name":"ior","function_name":"aiori_posix_access"},"11823":{"probe_name":"ior","function_name":"aiori_initialize"},"11822":{"probe_name":"ior","function_name":"aiori_get_version"},"11821":{"probe_name":"ior","function_name":"aiori_finalize"},"11820":{"probe_name":"ior","function_name":"aiori_default"},"11819":{"probe_name":"ior","function_name":"aiori_count"},"11818":{"probe_name":"ior","function_name":"__do_global_dtors_aux"},"11817":{"probe_name":"ior","function_name":"XferBuffersSetup"},"11816":{"probe_name":"ior","function_name":"XferBuffersFree"},"11815":{"probe_name":"ior","function_name":"WriteTimes"},"11814":{"probe_name":"ior","function_name":"WriteOrReadSingle"},"11813":{"probe_name":"ior","function_name":"WriteOrRead"},"11812":{"probe_name":"ior","function_name":"ValidateTests"},"11811":{"probe_name":"ior","function_name":"TimeDeviation"},"11810":{"probe_name":"ior","function_name":"TestIoSys"},"11809":{"probe_name":"ior","function_name":"StringToBytes"},"11808":{"probe_name":"ior","function_name":"StoreStoneWallingIterations"},"11807":{"probe_name":"ior","function_name":"ShowTestStart"},"11806":{"probe_name":"ior","function_name":"ShowTestEnd"},"11805":{"probe_name":"ior","function_name":"ShowSetup"},"11804":{"probe_name":"ior","function_name":"ShowHints"},"11803":{"probe_name":"ior","function_name":"ShowFileSystemSize"},"11802":{"probe_name":"ior","function_name":"SetupDataSet"},"11801":{"probe_name":"ior","function_name":"SetHints"},"11800":{"probe_name":"ior","function_name":"SeedRandGen"},"11799":{"probe_name":"ior","function_name":"RemoveFile"},"11798":{"probe_name":"ior","function_name":"Regex"},"11797":{"probe_name":"ior","function_name":"ReduceIterResults"},"11796":{"probe_name":"ior","function_name":"ReadStoneWallingIterations"},"11795":{"probe_name":"ior","function_name":"ReadConfigScript"},"11794":{"probe_name":"ior","function_name":"QueryNodeMapping"},"11793":{"probe_name":"ior","function_name":"PrintTimestamp"},"11792":{"probe_name":"ior","function_name":"PrintTestEnds"},"11791":{"probe_name":"ior","function_name":"PrintTableHeader"},"11790":{"probe_name":"ior","function_name":"PrintStartSection"},"11789":{"probe_name":"ior","function_name":"PrintShortSummary"},"11788":{"probe_name":"ior","function_name":"PrintRepeatStart"},"11787":{"probe_name":"ior","function_name":"PrintRepeatEnd"},"11786":{"probe_name":"ior","function_name":"PrintRemoveTiming"},"11785":{"probe_name":"ior","function_name":"PrintReducedResult"},"11784":{"probe_name":"ior","function_name":"PrintNextToken"},"11783":{"probe_name":"ior","function_name":"PrintNamedSectionStart"},"11782":{"probe_name":"ior","function_name":"PrintNamedArrayStart"},"11781":{"probe_name":"ior","function_name":"PrintLongSummaryOneTest"},"11780":{"probe_name":"ior","function_name":"PrintLongSummaryOneOperation"},"11779":{"probe_name":"ior","function_name":"PrintLongSummaryHeader"},"11778":{"probe_name":"ior","function_name":"PrintLongSummaryAllTests"},"11777":{"probe_name":"ior","function_name":"PrintKeyValStart"},"11776":{"probe_name":"ior","function_name":"PrintKeyValInt"},"11775":{"probe_name":"ior","function_name":"PrintKeyValEnd"},"11774":{"probe_name":"ior","function_name":"PrintKeyValDouble"},"11773":{"probe_name":"ior","function_name":"PrintKeyVal"},"11772":{"probe_name":"ior","function_name":"PrintIndent"},"11771":{"probe_name":"ior","function_name":"PrintHeader"},"11770":{"probe_name":"ior","function_name":"PrintEndSection"},"11769":{"probe_name":"ior","function_name":"PrintArrayStart"},"11768":{"probe_name":"ior","function_name":"PrintArrayNamedStart"},"11767":{"probe_name":"ior","function_name":"PrintArrayEnd"},"11766":{"probe_name":"ior","function_name":"PrependDir"},"11765":{"probe_name":"ior","function_name":"ParseLine"},"11764":{"probe_name":"ior","function_name":"ParseFileName"},"11763":{"probe_name":"ior","function_name":"ParseCommandLine"},"11762":{"probe_name":"ior","function_name":"PPDouble"},"11761":{"probe_name":"ior","function_name":"POSIX_options"},"11760":{"probe_name":"ior","function_name":"POSIX_Xfer"},"11759":{"probe_name":"ior","function_name":"POSIX_Sync"},"11758":{"probe_name":"ior","function_name":"POSIX_Open"},"11757":{"probe_name":"ior","function_name":"POSIX_Mknod"},"11756":{"probe_name":"ior","function_name":"POSIX_GetFileSize"},"11755":{"probe_name":"ior","function_name":"POSIX_Fsync"},"11754":{"probe_name":"ior","function_name":"POSIX_Delete"},"11753":{"probe_name":"ior","function_name":"POSIX_Create"},"11752":{"probe_name":"ior","function_name":"POSIX_Close"},"11751":{"probe_name":"ior","function_name":"NodeMemoryStringToBytes"},"11750":{"probe_name":"ior","function_name":"MPIIO_Xfer"},"11749":{"probe_name":"ior","function_name":"MPIIO_Open"},"11748":{"probe_name":"ior","function_name":"MPIIO_GetVersion"},"11747":{"probe_name":"ior","function_name":"MPIIO_GetFileSize"},"11746":{"probe_name":"ior","function_name":"MPIIO_Fsync"},"11745":{"probe_name":"ior","function_name":"MPIIO_Delete"},"11744":{"probe_name":"ior","function_name":"MPIIO_Create"},"11743":{"probe_name":"ior","function_name":"MPIIO_Close"},"11742":{"probe_name":"ior","function_name":"MPIIO_Access"},"11741":{"probe_name":"ior","function_name":"MMAP_options"},"11740":{"probe_name":"ior","function_name":"MMAP_Xfer"},"11739":{"probe_name":"ior","function_name":"MMAP_Open"},"11738":{"probe_name":"ior","function_name":"MMAP_Fsync"},"11737":{"probe_name":"ior","function_name":"MMAP_Create"},"11736":{"probe_name":"ior","function_name":"MMAP_Close"},"11735":{"probe_name":"ior","function_name":"InitTests"},"11734":{"probe_name":"ior","function_name":"HumanReadable"},"11733":{"probe_name":"ior","function_name":"HogMemory"},"11732":{"probe_name":"ior","function_name":"HDF5_options"},"11731":{"probe_name":"ior","function_name":"HDF5_Xfer"},"11730":{"probe_name":"ior","function_name":"HDF5_Open"},"11729":{"probe_name":"ior","function_name":"HDF5_GetVersion"},"11728":{"probe_name":"ior","function_name":"HDF5_GetFileSize"},"11727":{"probe_name":"ior","function_name":"HDF5_Fsync"},"11726":{"probe_name":"ior","function_name":"HDF5_Delete"},"11725":{"probe_name":"ior","function_name":"HDF5_Create"},"11724":{"probe_name":"ior","function_name":"HDF5_Close"},"11723":{"probe_name":"ior","function_name":"HDF5_Access"},"11722":{"probe_name":"ior","function_name":"GetTimeStamp"},"11721":{"probe_name":"ior","function_name":"GetTestFileName"},"11720":{"probe_name":"ior","function_name":"GetPlatformName"},"11719":{"probe_name":"ior","function_name":"GetOffsetArraySequential"},"11718":{"probe_name":"ior","function_name":"GetOffsetArrayRandom"},"11717":{"probe_name":"ior","function_name":"GetNumTasksOnNode0"},"11716":{"probe_name":"ior","function_name":"GetNumTasks"},"11715":{"probe_name":"ior","function_name":"GetNumNodes"},"11714":{"probe_name":"ior","function_name":"FreeResults"},"11713":{"probe_name":"ior","function_name":"FillIncompressibleBuffer"},"11712":{"probe_name":"ior","function_name":"FillBuffer"},"11711":{"probe_name":"ior","function_name":"FailMessage"},"11710":{"probe_name":"ior","function_name":"ExtractHint"},"11709":{"probe_name":"ior","function_name":"DumpBuffer"},"11708":{"probe_name":"ior","function_name":"DistributeHints"},"11707":{"probe_name":"ior","function_name":"DisplayOutliers"},"11706":{"probe_name":"ior","function_name":"DisplayFreespace"},"11705":{"probe_name":"ior","function_name":"DestroyTests"},"11704":{"probe_name":"ior","function_name":"DestroyTest"},"11703":{"probe_name":"ior","function_name":"DelaySecs"},"11702":{"probe_name":"ior","function_name":"DecodeDirective"},"11701":{"probe_name":"ior","function_name":"DUMMY_statfs"},"11700":{"probe_name":"ior","function_name":"DUMMY_stat"},"11699":{"probe_name":"ior","function_name":"DUMMY_rmdir"},"11698":{"probe_name":"ior","function_name":"DUMMY_options"},"11697":{"probe_name":"ior","function_name":"DUMMY_mkdir"},"11696":{"probe_name":"ior","function_name":"DUMMY_getVersion"},"11695":{"probe_name":"ior","function_name":"DUMMY_check_params"},"11694":{"probe_name":"ior","function_name":"DUMMY_access"},"11693":{"probe_name":"ior","function_name":"DUMMY_Xfer"},"11692":{"probe_name":"ior","function_name":"DUMMY_Sync"},"11691":{"probe_name":"ior","function_name":"DUMMY_Open"},"11690":{"probe_name":"ior","function_name":"DUMMY_GetFileSize"},"11689":{"probe_name":"ior","function_name":"DUMMY_Fsync"},"11688":{"probe_name":"ior","function_name":"DUMMY_Delete"},"11687":{"probe_name":"ior","function_name":"DUMMY_Create"},"11686":{"probe_name":"ior","function_name":"DUMMY_Close"},"11685":{"probe_name":"ior","function_name":"CurrentTimeString"},"11684":{"probe_name":"ior","function_name":"CreateTest"},"11683":{"probe_name":"ior","function_name":"CountErrors"},"11682":{"probe_name":"ior","function_name":"CompareBuffers"},"11681":{"probe_name":"ior","function_name":"CheckRunSettings"},"11680":{"probe_name":"ior","function_name":"CheckForOutliers"},"11679":{"probe_name":"ior","function_name":"CheckFileSize"},"11678":{"probe_name":"ior","function_name":"AllocResults"},"11677":{"probe_name":"mpi","function_name":"write_init.constprop.0"},"11676":{"probe_name":"mpi","function_name":"write_init"},"11675":{"probe_name":"mpi","function_name":"weighted_degree_dsc"},"11674":{"probe_name":"mpi","function_name":"vulcan_register"},"11673":{"probe_name":"mpi","function_name":"vprotocol_pessimist_request_no_free"},"11672":{"probe_name":"mpi","function_name":"vprotocol_pessimist_request_construct"},"11671":{"probe_name":"mpi","function_name":"vprotocol_pessimist_delivery_log"},"11670":{"probe_name":"mpi","function_name":"tuned_register"},"11669":{"probe_name":"mpi","function_name":"tuned_open"},"11668":{"probe_name":"mpi","function_name":"tuned_module_enable"},"11667":{"probe_name":"mpi","function_name":"tuned_close"},"11666":{"probe_name":"mpi","function_name":"treematch_module_destructor"},"11665":{"probe_name":"mpi","function_name":"treematch_module_constructor"},"11664":{"probe_name":"mpi","function_name":"tm_wait_work_completion"},"11663":{"probe_name":"mpi","function_name":"tm_update_val"},"11662":{"probe_name":"mpi","function_name":"tm_try_add_edge"},"11661":{"probe_name":"mpi","function_name":"tm_topology_set_binding_constraints"},"11660":{"probe_name":"mpi","function_name":"tm_topology_add_binding_constraints"},"11659":{"probe_name":"mpi","function_name":"tm_time_diff"},"11658":{"probe_name":"mpi","function_name":"tm_test_main"},"11657":{"probe_name":"mpi","function_name":"tm_terminate_thread_pool"},"11656":{"probe_name":"mpi","function_name":"tm_submit_work"},"11655":{"probe_name":"mpi","function_name":"tm_set_verbose_level"},"11654":{"probe_name":"mpi","function_name":"tm_set_numbering"},"11653":{"probe_name":"mpi","function_name":"tm_set_node"},"11652":{"probe_name":"mpi","function_name":"tm_set_max_nb_threads"},"11651":{"probe_name":"mpi","function_name":"tm_set_greedy_flag"},"11650":{"probe_name":"mpi","function_name":"tm_set_exhaustive_search_flag"},"11649":{"probe_name":"mpi","function_name":"tm_realloc"},"11648":{"probe_name":"mpi","function_name":"tm_print_1D_tab"},"11647":{"probe_name":"mpi","function_name":"tm_optimize_topology"},"11646":{"probe_name":"mpi","function_name":"tm_open_verbose_file"},"11645":{"probe_name":"mpi","function_name":"tm_new_affinity_mat"},"11644":{"probe_name":"mpi","function_name":"tm_nb_processing_units"},"11643":{"probe_name":"mpi","function_name":"tm_mem_check"},"11642":{"probe_name":"mpi","function_name":"tm_map_topology"},"11641":{"probe_name":"mpi","function_name":"tm_map_RR"},"11640":{"probe_name":"mpi","function_name":"tm_map_Packed"},"11639":{"probe_name":"mpi","function_name":"tm_map_MPIPP"},"11638":{"probe_name":"mpi","function_name":"tm_malloc"},"11637":{"probe_name":"mpi","function_name":"tm_load_topology.cold"},"11636":{"probe_name":"mpi","function_name":"tm_load_topology"},"11635":{"probe_name":"mpi","function_name":"tm_load_aff_mat"},"11634":{"probe_name":"mpi","function_name":"tm_kpartition_build_tree_from_topology"},"11633":{"probe_name":"mpi","function_name":"tm_kpartition.cold"},"11632":{"probe_name":"mpi","function_name":"tm_kpartition"},"11631":{"probe_name":"mpi","function_name":"tm_kPartitioning"},"11630":{"probe_name":"mpi","function_name":"tm_int_cmp_inc"},"11629":{"probe_name":"mpi","function_name":"tm_intCIV_set"},"11628":{"probe_name":"mpi","function_name":"tm_intCIV_isInitialized"},"11627":{"probe_name":"mpi","function_name":"tm_intCIV_init"},"11626":{"probe_name":"mpi","function_name":"tm_intCIV_get"},"11625":{"probe_name":"mpi","function_name":"tm_init_genrand"},"11624":{"probe_name":"mpi","function_name":"tm_in_tab"},"11623":{"probe_name":"mpi","function_name":"tm_get_verbose_output"},"11622":{"probe_name":"mpi","function_name":"tm_get_verbose_level"},"11621":{"probe_name":"mpi","function_name":"tm_get_time"},"11620":{"probe_name":"mpi","function_name":"tm_get_numbering"},"11619":{"probe_name":"mpi","function_name":"tm_get_nb_threads"},"11618":{"probe_name":"mpi","function_name":"tm_get_local_topology_with_hwloc.cold"},"11617":{"probe_name":"mpi","function_name":"tm_get_local_topology_with_hwloc"},"11616":{"probe_name":"mpi","function_name":"tm_get_greedy_flag"},"11615":{"probe_name":"mpi","function_name":"tm_get_exhaustive_search_flag"},"11614":{"probe_name":"mpi","function_name":"tm_genrand_res53"},"11613":{"probe_name":"mpi","function_name":"tm_genrand_real3"},"11612":{"probe_name":"mpi","function_name":"tm_genrand_real2"},"11611":{"probe_name":"mpi","function_name":"tm_genrand_real1"},"11610":{"probe_name":"mpi","function_name":"tm_genrand_int32"},"11609":{"probe_name":"mpi","function_name":"tm_genrand_int31"},"11608":{"probe_name":"mpi","function_name":"tm_free_tree"},"11607":{"probe_name":"mpi","function_name":"tm_free_topology"},"11606":{"probe_name":"mpi","function_name":"tm_free_solution"},"11605":{"probe_name":"mpi","function_name":"tm_free_affinity_mat"},"11604":{"probe_name":"mpi","function_name":"tm_free"},"11603":{"probe_name":"mpi","function_name":"tm_finalize"},"11602":{"probe_name":"mpi","function_name":"tm_fill_tab"},"11601":{"probe_name":"mpi","function_name":"tm_fiboTreeMin"},"11600":{"probe_name":"mpi","function_name":"tm_fiboTreeInit"},"11599":{"probe_name":"mpi","function_name":"tm_fiboTreeFree"},"11598":{"probe_name":"mpi","function_name":"tm_fiboTreeExit"},"11597":{"probe_name":"mpi","function_name":"tm_fiboTreeDel"},"11596":{"probe_name":"mpi","function_name":"tm_enable_oversubscribing"},"11595":{"probe_name":"mpi","function_name":"tm_display_topology"},"11594":{"probe_name":"mpi","function_name":"tm_display_tab"},"11593":{"probe_name":"mpi","function_name":"tm_display_solution"},"11592":{"probe_name":"mpi","function_name":"tm_display_other_heuristics"},"11591":{"probe_name":"mpi","function_name":"tm_display_arity"},"11590":{"probe_name":"mpi","function_name":"tm_destroy_work"},"11589":{"probe_name":"mpi","function_name":"tm_create_work"},"11588":{"probe_name":"mpi","function_name":"tm_compute_nb_leaves_from_level"},"11587":{"probe_name":"mpi","function_name":"tm_compute_mapping"},"11586":{"probe_name":"mpi","function_name":"tm_complete_obj_weight"},"11585":{"probe_name":"mpi","function_name":"tm_close_verbose_file"},"11584":{"probe_name":"mpi","function_name":"tm_calloc"},"11583":{"probe_name":"mpi","function_name":"tm_build_tree_from_topology"},"11582":{"probe_name":"mpi","function_name":"tm_build_synthetic_topology"},"11581":{"probe_name":"mpi","function_name":"tm_build_affinity_mat"},"11580":{"probe_name":"mpi","function_name":"tm_bucket_grouping"},"11579":{"probe_name":"mpi","function_name":"thread_loop"},"11578":{"probe_name":"mpi","function_name":"tgt_to_tm"},"11577":{"probe_name":"mpi","function_name":"tab_cmp"},"11576":{"probe_name":"mpi","function_name":"sync_register"},"11575":{"probe_name":"mpi","function_name":"sm_register:0x215be0"},"11574":{"probe_name":"mpi","function_name":"sm_register:0x108080"},"11573":{"probe_name":"mpi","function_name":"sm_module_enable"},"11572":{"probe_name":"mpi","function_name":"sm_close"},"11571":{"probe_name":"mpi","function_name":"shuffle_init.constprop.0:0x16f180"},"11570":{"probe_name":"mpi","function_name":"shuffle_init.constprop.0:0x16bb70"},"11569":{"probe_name":"mpi","function_name":"set_value"},"11568":{"probe_name":"mpi","function_name":"set_handler_default"},"11567":{"probe_name":"mpi","function_name":"send_request_pml_complete"},"11566":{"probe_name":"mpi","function_name":"send_msg.cold"},"11565":{"probe_name":"mpi","function_name":"send_msg"},"11564":{"probe_name":"mpi","function_name":"send_cb:0x163f50"},"11563":{"probe_name":"mpi","function_name":"send_cb:0x160b60"},"11562":{"probe_name":"mpi","function_name":"self_register"},"11561":{"probe_name":"mpi","function_name":"select_independent_groups"},"11560":{"probe_name":"mpi","function_name":"save_ptr"},"11559":{"probe_name":"mpi","function_name":"retreive_size.cold"},"11558":{"probe_name":"mpi","function_name":"retreive_size"},"11557":{"probe_name":"mpi","function_name":"result_request"},"11556":{"probe_name":"mpi","function_name":"request_start"},"11555":{"probe_name":"mpi","function_name":"request_free:0x1da910"},"11554":{"probe_name":"mpi","function_name":"request_free:0x127b50"},"11553":{"probe_name":"mpi","function_name":"request_construct:0x1da8a0"},"11552":{"probe_name":"mpi","function_name":"request_construct:0x127810"},"11551":{"probe_name":"mpi","function_name":"request_cancel:0x1da890"},"11550":{"probe_name":"mpi","function_name":"request_cancel:0x127800"},"11549":{"probe_name":"mpi","function_name":"release_vecs_callback"},"11548":{"probe_name":"mpi","function_name":"release_objs_callback"},"11547":{"probe_name":"mpi","function_name":"register_tm_clones"},"11546":{"probe_name":"mpi","function_name":"register_datarep"},"11545":{"probe_name":"mpi","function_name":"register_component:0x17baa0"},"11544":{"probe_name":"mpi","function_name":"register_component:0x175430"},"11543":{"probe_name":"mpi","function_name":"register_component:0x1686b0"},"11542":{"probe_name":"mpi","function_name":"reduce_inorder"},"11541":{"probe_name":"mpi","function_name":"recv_request_pml_complete"},"11540":{"probe_name":"mpi","function_name":"recv_cb:0x1647d0"},"11539":{"probe_name":"mpi","function_name":"recv_cb:0x1613b0"},"11538":{"probe_name":"mpi","function_name":"recurs_select_independent_groups"},"11537":{"probe_name":"mpi","function_name":"rankkeycompare"},"11536":{"probe_name":"mpi","function_name":"partial_update_val"},"11535":{"probe_name":"mpi","function_name":"partial_exhaustive_search"},"11534":{"probe_name":"mpi","function_name":"partial_aggregate_aff_mat"},"11533":{"probe_name":"mpi","function_name":"optimize_arity"},"11532":{"probe_name":"mpi","function_name":"open_component"},"11531":{"probe_name":"mpi","function_name":"opal_free_list_wait.constprop.0:0x1fbad0"},"11530":{"probe_name":"mpi","function_name":"opal_free_list_wait.constprop.0:0x1f8730"},"11529":{"probe_name":"mpi","function_name":"opal_free_list_wait"},"11528":{"probe_name":"mpi","function_name":"ompit_var_type_to_datatype"},"11527":{"probe_name":"mpi","function_name":"ompit_opal_to_mpit_error"},"11526":{"probe_name":"mpi","function_name":"ompi_win_set_name"},"11525":{"probe_name":"mpi","function_name":"ompi_win_null_delete_fn_f"},"11524":{"probe_name":"mpi","function_name":"ompi_win_null_copy_fn_f"},"11523":{"probe_name":"mpi","function_name":"ompi_win_init"},"11522":{"probe_name":"mpi","function_name":"ompi_win_group"},"11521":{"probe_name":"mpi","function_name":"ompi_win_get_name"},"11520":{"probe_name":"mpi","function_name":"ompi_win_free"},"11519":{"probe_name":"mpi","function_name":"ompi_win_finalize"},"11518":{"probe_name":"mpi","function_name":"ompi_win_dup_fn_f"},"11517":{"probe_name":"mpi","function_name":"ompi_win_destruct"},"11516":{"probe_name":"mpi","function_name":"ompi_win_create_dynamic"},"11515":{"probe_name":"mpi","function_name":"ompi_win_create"},"11514":{"probe_name":"mpi","function_name":"ompi_win_construct"},"11513":{"probe_name":"mpi","function_name":"ompi_win_allocate_shared"},"11512":{"probe_name":"mpi","function_name":"ompi_win_allocate"},"11511":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_sender_based_init"},"11510":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_sender_based_finalize"},"11509":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_sender_based_alloc"},"11508":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_matching_replay"},"11507":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_event_logger_disconnect"},"11506":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_event_logger_connect.cold"},"11505":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_event_logger_connect"},"11504":{"probe_name":"mpi","function_name":"ompi_vprotocol_pessimist_delivery_replay"},"11503":{"probe_name":"mpi","function_name":"ompi_type_null_delete_fn_f"},"11502":{"probe_name":"mpi","function_name":"ompi_type_null_copy_fn_f"},"11501":{"probe_name":"mpi","function_name":"ompi_type_dup_fn_f"},"11500":{"probe_name":"mpi","function_name":"ompi_test_fortran_constants_f"},"11499":{"probe_name":"mpi","function_name":"ompi_test_fortran_constants__"},"11498":{"probe_name":"mpi","function_name":"ompi_test_fortran_constants_"},"11497":{"probe_name":"mpi","function_name":"ompi_test_fortran_constants"},"11496":{"probe_name":"mpi","function_name":"ompi_show_all_mca_params"},"11495":{"probe_name":"mpi","function_name":"ompi_set_group_rank"},"11494":{"probe_name":"mpi","function_name":"ompi_seq_tracker_insert"},"11493":{"probe_name":"mpi","function_name":"ompi_seq_tracker_destruct"},"11492":{"probe_name":"mpi","function_name":"ompi_seq_tracker_copy"},"11491":{"probe_name":"mpi","function_name":"ompi_seq_tracker_construct"},"11490":{"probe_name":"mpi","function_name":"ompi_seq_tracker_check_duplicate"},"11489":{"probe_name":"mpi","function_name":"ompi_rte_wait_for_debugger"},"11488":{"probe_name":"mpi","function_name":"ompi_rte_init"},"11487":{"probe_name":"mpi","function_name":"ompi_rte_finalize"},"11486":{"probe_name":"mpi","function_name":"ompi_rte_convert_string_to_process_name"},"11485":{"probe_name":"mpi","function_name":"ompi_rte_convert_process_name_to_string"},"11484":{"probe_name":"mpi","function_name":"ompi_rte_compare_name_fields"},"11483":{"probe_name":"mpi","function_name":"ompi_rte_breakpoint"},"11482":{"probe_name":"mpi","function_name":"ompi_rte_abort_peers"},"11481":{"probe_name":"mpi","function_name":"ompi_rte_abort"},"11480":{"probe_name":"mpi","function_name":"ompi_rounddown"},"11479":{"probe_name":"mpi","function_name":"ompi_request_wait_completion:0x5d7f0"},"11478":{"probe_name":"mpi","function_name":"ompi_request_wait_completion:0x212b80"},"11477":{"probe_name":"mpi","function_name":"ompi_request_wait_completion:0x1f7c70"},"11476":{"probe_name":"mpi","function_name":"ompi_request_wait_completion:0x1f56c0"},"11475":{"probe_name":"mpi","function_name":"ompi_request_wait_completion:0x1f3e20"},"11474":{"probe_name":"mpi","function_name":"ompi_request_persistent_noop_free"},"11473":{"probe_name":"mpi","function_name":"ompi_request_persistent_noop_create"},"11472":{"probe_name":"mpi","function_name":"ompi_request_null_free"},"11471":{"probe_name":"mpi","function_name":"ompi_request_null_cancel"},"11470":{"probe_name":"mpi","function_name":"ompi_request_is_failed_fn"},"11469":{"probe_name":"mpi","function_name":"ompi_request_init"},"11468":{"probe_name":"mpi","function_name":"ompi_request_finalize"},"11467":{"probe_name":"mpi","function_name":"ompi_request_empty_free"},"11466":{"probe_name":"mpi","function_name":"ompi_request_destruct"},"11465":{"probe_name":"mpi","function_name":"ompi_request_default_wait_some"},"11464":{"probe_name":"mpi","function_name":"ompi_request_default_wait_any"},"11463":{"probe_name":"mpi","function_name":"ompi_request_default_wait_all"},"11462":{"probe_name":"mpi","function_name":"ompi_request_default_wait"},"11461":{"probe_name":"mpi","function_name":"ompi_request_default_test_some"},"11460":{"probe_name":"mpi","function_name":"ompi_request_default_test_any"},"11459":{"probe_name":"mpi","function_name":"ompi_request_default_test_all"},"11458":{"probe_name":"mpi","function_name":"ompi_request_default_test"},"11457":{"probe_name":"mpi","function_name":"ompi_request_construct"},"11456":{"probe_name":"mpi","function_name":"ompi_request_check_same_instance"},"11455":{"probe_name":"mpi","function_name":"ompi_report_comm_methods"},"11454":{"probe_name":"mpi","function_name":"ompi_rbcast_bml_send_complete_cb"},"11453":{"probe_name":"mpi","function_name":"ompi_proc_world_size"},"11452":{"probe_name":"mpi","function_name":"ompi_proc_world"},"11451":{"probe_name":"mpi","function_name":"ompi_proc_unpack"},"11450":{"probe_name":"mpi","function_name":"ompi_proc_self"},"11449":{"probe_name":"mpi","function_name":"ompi_proc_refresh"},"11448":{"probe_name":"mpi","function_name":"ompi_proc_pack"},"11447":{"probe_name":"mpi","function_name":"ompi_proc_lookup"},"11446":{"probe_name":"mpi","function_name":"ompi_proc_init"},"11445":{"probe_name":"mpi","function_name":"ompi_proc_get_allocated"},"11444":{"probe_name":"mpi","function_name":"ompi_proc_for_name"},"11443":{"probe_name":"mpi","function_name":"ompi_proc_find_and_add"},"11442":{"probe_name":"mpi","function_name":"ompi_proc_find"},"11441":{"probe_name":"mpi","function_name":"ompi_proc_finalize"},"11440":{"probe_name":"mpi","function_name":"ompi_proc_destruct"},"11439":{"probe_name":"mpi","function_name":"ompi_proc_construct"},"11438":{"probe_name":"mpi","function_name":"ompi_proc_complete_init_single"},"11437":{"probe_name":"mpi","function_name":"ompi_proc_complete_init"},"11436":{"probe_name":"mpi","function_name":"ompi_proc_compare_vid"},"11435":{"probe_name":"mpi","function_name":"ompi_proc_allocate"},"11434":{"probe_name":"mpi","function_name":"ompi_proc_all"},"11433":{"probe_name":"mpi","function_name":"ompi_pml_v_output_open"},"11432":{"probe_name":"mpi","function_name":"ompi_pml_v_output_close"},"11431":{"probe_name":"mpi","function_name":"ompi_pml_ob1_check_cantmatch_for_match"},"11430":{"probe_name":"mpi","function_name":"ompi_pml_ob1_append_frag_to_ordered_list"},"11429":{"probe_name":"mpi","function_name":"ompi_pmix_snprintf_jobid"},"11428":{"probe_name":"mpi","function_name":"ompi_pmix_print_name"},"11427":{"probe_name":"mpi","function_name":"ompi_pmix_print_id"},"11426":{"probe_name":"mpi","function_name":"ompi_osc_sm_wait"},"11425":{"probe_name":"mpi","function_name":"ompi_osc_sm_unlock_all"},"11424":{"probe_name":"mpi","function_name":"ompi_osc_sm_unlock"},"11423":{"probe_name":"mpi","function_name":"ompi_osc_sm_test"},"11422":{"probe_name":"mpi","function_name":"ompi_osc_sm_sync"},"11421":{"probe_name":"mpi","function_name":"ompi_osc_sm_start"},"11420":{"probe_name":"mpi","function_name":"ompi_osc_sm_shared_query"},"11419":{"probe_name":"mpi","function_name":"ompi_osc_sm_set_info"},"11418":{"probe_name":"mpi","function_name":"ompi_osc_sm_rput"},"11417":{"probe_name":"mpi","function_name":"ompi_osc_sm_rget_accumulate"},"11416":{"probe_name":"mpi","function_name":"ompi_osc_sm_rget"},"11415":{"probe_name":"mpi","function_name":"ompi_osc_sm_raccumulate"},"11414":{"probe_name":"mpi","function_name":"ompi_osc_sm_put"},"11413":{"probe_name":"mpi","function_name":"ompi_osc_sm_post"},"11412":{"probe_name":"mpi","function_name":"ompi_osc_sm_lock_all"},"11411":{"probe_name":"mpi","function_name":"ompi_osc_sm_lock"},"11410":{"probe_name":"mpi","function_name":"ompi_osc_sm_group_ranks"},"11409":{"probe_name":"mpi","function_name":"ompi_osc_sm_get_info"},"11408":{"probe_name":"mpi","function_name":"ompi_osc_sm_get_accumulate"},"11407":{"probe_name":"mpi","function_name":"ompi_osc_sm_get"},"11406":{"probe_name":"mpi","function_name":"ompi_osc_sm_free"},"11405":{"probe_name":"mpi","function_name":"ompi_osc_sm_flush_local_all"},"11404":{"probe_name":"mpi","function_name":"ompi_osc_sm_flush_local"},"11403":{"probe_name":"mpi","function_name":"ompi_osc_sm_flush_all"},"11402":{"probe_name":"mpi","function_name":"ompi_osc_sm_flush"},"11401":{"probe_name":"mpi","function_name":"ompi_osc_sm_fetch_and_op"},"11400":{"probe_name":"mpi","function_name":"ompi_osc_sm_fence"},"11399":{"probe_name":"mpi","function_name":"ompi_osc_sm_detach"},"11398":{"probe_name":"mpi","function_name":"ompi_osc_sm_complete"},"11397":{"probe_name":"mpi","function_name":"ompi_osc_sm_compare_and_swap"},"11396":{"probe_name":"mpi","function_name":"ompi_osc_sm_attach"},"11395":{"probe_name":"mpi","function_name":"ompi_osc_sm_accumulate"},"11394":{"probe_name":"mpi","function_name":"ompi_osc_rdma_wait_atomic"},"11393":{"probe_name":"mpi","function_name":"ompi_osc_rdma_unlock_atomic.cold"},"11392":{"probe_name":"mpi","function_name":"ompi_osc_rdma_unlock_atomic"},"11391":{"probe_name":"mpi","function_name":"ompi_osc_rdma_unlock_all_atomic.cold"},"11390":{"probe_name":"mpi","function_name":"ompi_osc_rdma_unlock_all_atomic"},"11389":{"probe_name":"mpi","function_name":"ompi_osc_rdma_test_atomic"},"11388":{"probe_name":"mpi","function_name":"ompi_osc_rdma_sync_return"},"11387":{"probe_name":"mpi","function_name":"ompi_osc_rdma_sync_pscw_peer"},"11386":{"probe_name":"mpi","function_name":"ompi_osc_rdma_sync_destructor"},"11385":{"probe_name":"mpi","function_name":"ompi_osc_rdma_sync_constructor"},"11384":{"probe_name":"mpi","function_name":"ompi_osc_rdma_sync_allocate"},"11383":{"probe_name":"mpi","function_name":"ompi_osc_rdma_sync"},"11382":{"probe_name":"mpi","function_name":"ompi_osc_rdma_start_atomic"},"11381":{"probe_name":"mpi","function_name":"ompi_osc_rdma_set_no_lock_info"},"11380":{"probe_name":"mpi","function_name":"ompi_osc_rdma_rput"},"11379":{"probe_name":"mpi","function_name":"ompi_osc_rdma_rget_accumulate_internal.cold"},"11378":{"probe_name":"mpi","function_name":"ompi_osc_rdma_rget_accumulate_internal"},"11377":{"probe_name":"mpi","function_name":"ompi_osc_rdma_rget_accumulate"},"11376":{"probe_name":"mpi","function_name":"ompi_osc_rdma_rget"},"11375":{"probe_name":"mpi","function_name":"ompi_osc_rdma_request_complete:0x1cee10"},"11374":{"probe_name":"mpi","function_name":"ompi_osc_rdma_request_complete:0x1c62b0"},"11373":{"probe_name":"mpi","function_name":"ompi_osc_rdma_release_peers"},"11372":{"probe_name":"mpi","function_name":"ompi_osc_rdma_raccumulate"},"11371":{"probe_name":"mpi","function_name":"ompi_osc_rdma_pvar_read"},"11370":{"probe_name":"mpi","function_name":"ompi_osc_rdma_put_contig"},"11369":{"probe_name":"mpi","function_name":"ompi_osc_rdma_put_complete_flush"},"11368":{"probe_name":"mpi","function_name":"ompi_osc_rdma_put_complete"},"11367":{"probe_name":"mpi","function_name":"ompi_osc_rdma_put"},"11366":{"probe_name":"mpi","function_name":"ompi_osc_rdma_post_atomic"},"11365":{"probe_name":"mpi","function_name":"ompi_osc_rdma_pending_op_destruct"},"11364":{"probe_name":"mpi","function_name":"ompi_osc_rdma_pending_op_construct"},"11363":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_setup"},"11362":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_lookup"},"11361":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_dynamic_destruct"},"11360":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_dynamic_construct"},"11359":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_destruct"},"11358":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_construct"},"11357":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_btl_endpoint"},"11356":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_basic_destruct"},"11355":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_basic_construct"},"11354":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_accumulate_cleanup.cold"},"11353":{"probe_name":"mpi","function_name":"ompi_osc_rdma_peer_accumulate_cleanup"},"11352":{"probe_name":"mpi","function_name":"ompi_osc_rdma_new_peer.cold"},"11351":{"probe_name":"mpi","function_name":"ompi_osc_rdma_new_peer"},"11350":{"probe_name":"mpi","function_name":"ompi_osc_rdma_master_noncontig"},"11349":{"probe_name":"mpi","function_name":"ompi_osc_rdma_lock_release_exclusive.constprop.0.isra.0.cold"},"11348":{"probe_name":"mpi","function_name":"ompi_osc_rdma_lock_release_exclusive.constprop.0.isra.0"},"11347":{"probe_name":"mpi","function_name":"ompi_osc_rdma_lock_atomic_internal"},"11346":{"probe_name":"mpi","function_name":"ompi_osc_rdma_lock_atomic"},"11345":{"probe_name":"mpi","function_name":"ompi_osc_rdma_lock_all_atomic"},"11344":{"probe_name":"mpi","function_name":"ompi_osc_rdma_initialize_region.isra.0"},"11343":{"probe_name":"mpi","function_name":"ompi_osc_rdma_handle_init"},"11342":{"probe_name":"mpi","function_name":"ompi_osc_rdma_handle_fini"},"11341":{"probe_name":"mpi","function_name":"ompi_osc_rdma_get_peers"},"11340":{"probe_name":"mpi","function_name":"ompi_osc_rdma_get_partial"},"11339":{"probe_name":"mpi","function_name":"ompi_osc_rdma_get_contig"},"11338":{"probe_name":"mpi","function_name":"ompi_osc_rdma_get_complete"},"11337":{"probe_name":"mpi","function_name":"ompi_osc_rdma_get_accumulate"},"11336":{"probe_name":"mpi","function_name":"ompi_osc_rdma_get"},"11335":{"probe_name":"mpi","function_name":"ompi_osc_rdma_gacc_master_cleanup.cold"},"11334":{"probe_name":"mpi","function_name":"ompi_osc_rdma_gacc_master_cleanup"},"11333":{"probe_name":"mpi","function_name":"ompi_osc_rdma_gacc_master"},"11332":{"probe_name":"mpi","function_name":"ompi_osc_rdma_gacc_amo.constprop.0"},"11331":{"probe_name":"mpi","function_name":"ompi_osc_rdma_free"},"11330":{"probe_name":"mpi","function_name":"ompi_osc_rdma_frag_alloc.constprop.0:0x1e0770"},"11329":{"probe_name":"mpi","function_name":"ompi_osc_rdma_frag_alloc.constprop.0:0x1dd090"},"11328":{"probe_name":"mpi","function_name":"ompi_osc_rdma_frag_alloc.constprop.0:0x1dafc0"},"11327":{"probe_name":"mpi","function_name":"ompi_osc_rdma_frag_alloc"},"11326":{"probe_name":"mpi","function_name":"ompi_osc_rdma_flush_local_all"},"11325":{"probe_name":"mpi","function_name":"ompi_osc_rdma_flush_local"},"11324":{"probe_name":"mpi","function_name":"ompi_osc_rdma_flush_all"},"11323":{"probe_name":"mpi","function_name":"ompi_osc_rdma_flush"},"11322":{"probe_name":"mpi","function_name":"ompi_osc_rdma_find_dynamic_region"},"11321":{"probe_name":"mpi","function_name":"ompi_osc_rdma_fetch_and_op"},"11320":{"probe_name":"mpi","function_name":"ompi_osc_rdma_fence_atomic"},"11319":{"probe_name":"mpi","function_name":"ompi_osc_rdma_detach"},"11318":{"probe_name":"mpi","function_name":"ompi_osc_rdma_demand_lock_peer"},"11317":{"probe_name":"mpi","function_name":"ompi_osc_rdma_component_select"},"11316":{"probe_name":"mpi","function_name":"ompi_osc_rdma_component_register"},"11315":{"probe_name":"mpi","function_name":"ompi_osc_rdma_component_query"},"11314":{"probe_name":"mpi","function_name":"ompi_osc_rdma_component_init"},"11313":{"probe_name":"mpi","function_name":"ompi_osc_rdma_component_finalize"},"11312":{"probe_name":"mpi","function_name":"ompi_osc_rdma_complete_atomic"},"11311":{"probe_name":"mpi","function_name":"ompi_osc_rdma_compare_and_swap.cold"},"11310":{"probe_name":"mpi","function_name":"ompi_osc_rdma_compare_and_swap"},"11309":{"probe_name":"mpi","function_name":"ompi_osc_rdma_check_posts"},"11308":{"probe_name":"mpi","function_name":"ompi_osc_rdma_cas_put_complete"},"11307":{"probe_name":"mpi","function_name":"ompi_osc_rdma_btl_op.constprop.0"},"11306":{"probe_name":"mpi","function_name":"ompi_osc_rdma_attach"},"11305":{"probe_name":"mpi","function_name":"ompi_osc_rdma_atomic_complete"},"11304":{"probe_name":"mpi","function_name":"ompi_osc_rdma_add_attachment"},"11303":{"probe_name":"mpi","function_name":"ompi_osc_rdma_accumulate"},"11302":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_wait"},"11301":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_unlock_all"},"11300":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_unlock"},"11299":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_test"},"11298":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_sync"},"11297":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_start"},"11296":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_set_template"},"11295":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_rput"},"11294":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_rget_accumulate"},"11293":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_rget"},"11292":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_raccumulate"},"11291":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_put"},"11290":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_post"},"11289":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_lock_all"},"11288":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_lock"},"11287":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_get_accumulate"},"11286":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_get"},"11285":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_free"},"11284":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_flush_local_all"},"11283":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_flush_local"},"11282":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_flush_all"},"11281":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_flush"},"11280":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_fetch_and_op"},"11279":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_fence"},"11278":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_detach"},"11277":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_complete"},"11276":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_compare_and_swap"},"11275":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_attach"},"11274":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_ucx_accumulate"},"11273":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_wait"},"11272":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_unlock_all"},"11271":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_unlock"},"11270":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_test"},"11269":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_sync"},"11268":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_start"},"11267":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_set_template"},"11266":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_rput"},"11265":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_rget_accumulate"},"11264":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_rget"},"11263":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_raccumulate"},"11262":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_put"},"11261":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_post"},"11260":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_lock_all"},"11259":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_lock"},"11258":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_get_accumulate"},"11257":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_get"},"11256":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_free"},"11255":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_flush_local_all"},"11254":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_flush_local"},"11253":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_flush_all"},"11252":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_flush"},"11251":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_fetch_and_op"},"6064":{"probe_name":"hdf5","function_name":"H5VL_vol_object_verify"},"6063":{"probe_name":"hdf5","function_name":"H5VL_vol_object"},"6062":{"probe_name":"hdf5","function_name":"H5VL_unwrap_object"},"6061":{"probe_name":"hdf5","function_name":"H5VL_token_to_str"},"6060":{"probe_name":"hdf5","function_name":"H5VL_token_from_str"},"6059":{"probe_name":"hdf5","function_name":"H5VL_token_cmp"},"6058":{"probe_name":"hdf5","function_name":"H5VL_term_package"},"6057":{"probe_name":"hdf5","function_name":"H5VL_start_lib_state"},"6056":{"probe_name":"hdf5","function_name":"H5VL_setup_token_args"},"6055":{"probe_name":"hdf5","function_name":"H5VL_setup_self_args"},"6054":{"probe_name":"hdf5","function_name":"H5VL_setup_name_args"},"6053":{"probe_name":"hdf5","function_name":"H5VL_setup_loc_args"},"6052":{"probe_name":"hdf5","function_name":"H5VL_setup_idx_args"},"6051":{"probe_name":"hdf5","function_name":"H5VL_setup_args"},"6050":{"probe_name":"hdf5","function_name":"H5VL_setup_acc_args"},"6049":{"probe_name":"hdf5","function_name":"H5VL_set_vol_wrapper"},"6048":{"probe_name":"hdf5","function_name":"H5VL_retrieve_lib_state"},"6047":{"probe_name":"hdf5","function_name":"H5VL_restore_lib_state"},"6046":{"probe_name":"hdf5","function_name":"H5VL_reset_vol_wrapper"},"6045":{"probe_name":"hdf5","function_name":"H5VL_request_wait"},"6044":{"probe_name":"hdf5","function_name":"H5VL_request_specific"},"6043":{"probe_name":"hdf5","function_name":"H5VL_request_optional"},"6042":{"probe_name":"hdf5","function_name":"H5VL_request_notify"},"6041":{"probe_name":"hdf5","function_name":"H5VL_request_free"},"6040":{"probe_name":"hdf5","function_name":"H5VL_request_cancel"},"6039":{"probe_name":"hdf5","function_name":"H5VL_register_using_vol_id"},"6038":{"probe_name":"hdf5","function_name":"H5VL_register_using_existing_id"},"6037":{"probe_name":"hdf5","function_name":"H5VL_register"},"6036":{"probe_name":"hdf5","function_name":"H5VL_pass_through_wrap_object"},"6035":{"probe_name":"hdf5","function_name":"H5VL_pass_through_unwrap_object"},"6034":{"probe_name":"hdf5","function_name":"H5VL_pass_through_token_to_str"},"6033":{"probe_name":"hdf5","function_name":"H5VL_pass_through_token_from_str"},"6032":{"probe_name":"hdf5","function_name":"H5VL_pass_through_token_cmp"},"6031":{"probe_name":"hdf5","function_name":"H5VL_pass_through_term"},"6030":{"probe_name":"hdf5","function_name":"H5VL_pass_through_str_to_info"},"6029":{"probe_name":"hdf5","function_name":"H5VL_pass_through_request_wait"},"6028":{"probe_name":"hdf5","function_name":"H5VL_pass_through_request_specific"},"6027":{"probe_name":"hdf5","function_name":"H5VL_pass_through_request_optional"},"6026":{"probe_name":"hdf5","function_name":"H5VL_pass_through_request_notify"},"6025":{"probe_name":"hdf5","function_name":"H5VL_pass_through_request_free"},"6024":{"probe_name":"hdf5","function_name":"H5VL_pass_through_request_cancel"},"6023":{"probe_name":"hdf5","function_name":"H5VL_pass_through_register"},"6022":{"probe_name":"hdf5","function_name":"H5VL_pass_through_optional"},"6021":{"probe_name":"hdf5","function_name":"H5VL_pass_through_object_specific"},"6020":{"probe_name":"hdf5","function_name":"H5VL_pass_through_object_optional"},"6019":{"probe_name":"hdf5","function_name":"H5VL_pass_through_object_open"},"6018":{"probe_name":"hdf5","function_name":"H5VL_pass_through_object_get"},"6017":{"probe_name":"hdf5","function_name":"H5VL_pass_through_object_copy"},"6016":{"probe_name":"hdf5","function_name":"H5VL_pass_through_link_specific"},"6015":{"probe_name":"hdf5","function_name":"H5VL_pass_through_link_optional"},"6014":{"probe_name":"hdf5","function_name":"H5VL_pass_through_link_move"},"6013":{"probe_name":"hdf5","function_name":"H5VL_pass_through_link_get"},"6012":{"probe_name":"hdf5","function_name":"H5VL_pass_through_link_create"},"6011":{"probe_name":"hdf5","function_name":"H5VL_pass_through_link_copy"},"6010":{"probe_name":"hdf5","function_name":"H5VL_pass_through_introspect_opt_query"},"6009":{"probe_name":"hdf5","function_name":"H5VL_pass_through_introspect_get_conn_cls"},"6008":{"probe_name":"hdf5","function_name":"H5VL_pass_through_introspect_get_cap_flags"},"6007":{"probe_name":"hdf5","function_name":"H5VL_pass_through_init"},"6006":{"probe_name":"hdf5","function_name":"H5VL_pass_through_info_to_str"},"6005":{"probe_name":"hdf5","function_name":"H5VL_pass_through_info_free"},"6004":{"probe_name":"hdf5","function_name":"H5VL_pass_through_info_copy"},"6003":{"probe_name":"hdf5","function_name":"H5VL_pass_through_info_cmp"},"6002":{"probe_name":"hdf5","function_name":"H5VL_pass_through_group_specific"},"6001":{"probe_name":"hdf5","function_name":"H5VL_pass_through_group_optional"},"6000":{"probe_name":"hdf5","function_name":"H5VL_pass_through_group_open"},"5999":{"probe_name":"hdf5","function_name":"H5VL_pass_through_group_get"},"5998":{"probe_name":"hdf5","function_name":"H5VL_pass_through_group_create"},"5997":{"probe_name":"hdf5","function_name":"H5VL_pass_through_group_close"},"5996":{"probe_name":"hdf5","function_name":"H5VL_pass_through_get_wrap_ctx"},"5995":{"probe_name":"hdf5","function_name":"H5VL_pass_through_get_object"},"5994":{"probe_name":"hdf5","function_name":"H5VL_pass_through_free_wrap_ctx"},"5993":{"probe_name":"hdf5","function_name":"H5VL_pass_through_file_specific"},"5992":{"probe_name":"hdf5","function_name":"H5VL_pass_through_file_optional"},"5991":{"probe_name":"hdf5","function_name":"H5VL_pass_through_file_open"},"5990":{"probe_name":"hdf5","function_name":"H5VL_pass_through_file_get"},"5989":{"probe_name":"hdf5","function_name":"H5VL_pass_through_file_create"},"5988":{"probe_name":"hdf5","function_name":"H5VL_pass_through_file_close"},"5987":{"probe_name":"hdf5","function_name":"H5VL_pass_through_datatype_specific"},"5986":{"probe_name":"hdf5","function_name":"H5VL_pass_through_datatype_optional"},"5985":{"probe_name":"hdf5","function_name":"H5VL_pass_through_datatype_open"},"5984":{"probe_name":"hdf5","function_name":"H5VL_pass_through_datatype_get"},"5983":{"probe_name":"hdf5","function_name":"H5VL_pass_through_datatype_commit"},"5982":{"probe_name":"hdf5","function_name":"H5VL_pass_through_datatype_close"},"5981":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_write"},"5980":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_specific"},"5979":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_read"},"5978":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_optional"},"5977":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_open"},"5976":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_get"},"5975":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_create"},"5974":{"probe_name":"hdf5","function_name":"H5VL_pass_through_dataset_close"},"5973":{"probe_name":"hdf5","function_name":"H5VL_pass_through_blob_specific"},"5972":{"probe_name":"hdf5","function_name":"H5VL_pass_through_blob_put"},"5971":{"probe_name":"hdf5","function_name":"H5VL_pass_through_blob_optional"},"5970":{"probe_name":"hdf5","function_name":"H5VL_pass_through_blob_get"},"5969":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_write"},"5968":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_specific"},"5967":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_read"},"5966":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_optional"},"5965":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_open"},"5964":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_get"},"5963":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_create"},"5962":{"probe_name":"hdf5","function_name":"H5VL_pass_through_attr_close"},"5961":{"probe_name":"hdf5","function_name":"H5VL_optional"},"5960":{"probe_name":"hdf5","function_name":"H5VL_object_verify"},"5959":{"probe_name":"hdf5","function_name":"H5VL_object_unwrap"},"5958":{"probe_name":"hdf5","function_name":"H5VL_object_specific"},"5957":{"probe_name":"hdf5","function_name":"H5VL_object_optional"},"5956":{"probe_name":"hdf5","function_name":"H5VL_object_open"},"5955":{"probe_name":"hdf5","function_name":"H5VL_object_is_native"},"5954":{"probe_name":"hdf5","function_name":"H5VL_object_inc_rc"},"5953":{"probe_name":"hdf5","function_name":"H5VL_object_get"},"5952":{"probe_name":"hdf5","function_name":"H5VL_object_data"},"5951":{"probe_name":"hdf5","function_name":"H5VL_object_copy"},"5950":{"probe_name":"hdf5","function_name":"H5VL_object"},"5949":{"probe_name":"hdf5","function_name":"H5VL_new_connector"},"5948":{"probe_name":"hdf5","function_name":"H5VL_native_token_to_addr"},"5947":{"probe_name":"hdf5","function_name":"H5VL_native_register"},"5946":{"probe_name":"hdf5","function_name":"H5VL_native_get_file_struct"},"5945":{"probe_name":"hdf5","function_name":"H5VL_native_get_file_addr_len"},"5944":{"probe_name":"hdf5","function_name":"H5VL_native_addr_to_token"},"5943":{"probe_name":"hdf5","function_name":"H5VL_link_specific"},"5942":{"probe_name":"hdf5","function_name":"H5VL_link_optional"},"5941":{"probe_name":"hdf5","function_name":"H5VL_link_move"},"5940":{"probe_name":"hdf5","function_name":"H5VL_link_get"},"5939":{"probe_name":"hdf5","function_name":"H5VL_link_create"},"5938":{"probe_name":"hdf5","function_name":"H5VL_link_copy"},"5937":{"probe_name":"hdf5","function_name":"H5VL_introspect_opt_query"},"5936":{"probe_name":"hdf5","function_name":"H5VL_introspect_get_conn_cls"},"5935":{"probe_name":"hdf5","function_name":"H5VL_introspect_get_cap_flags"},"5934":{"probe_name":"hdf5","function_name":"H5VL_init_phase2"},"5933":{"probe_name":"hdf5","function_name":"H5VL_init_phase1"},"5932":{"probe_name":"hdf5","function_name":"H5VL_inc_vol_wrapper"},"5931":{"probe_name":"hdf5","function_name":"H5VL_group_specific"},"5930":{"probe_name":"hdf5","function_name":"H5VL_group_optional"},"5929":{"probe_name":"hdf5","function_name":"H5VL_group_open"},"5928":{"probe_name":"hdf5","function_name":"H5VL_group_get"},"5927":{"probe_name":"hdf5","function_name":"H5VL_group_create"},"5926":{"probe_name":"hdf5","function_name":"H5VL_group_close"},"5925":{"probe_name":"hdf5","function_name":"H5VL_get_wrap_ctx"},"5924":{"probe_name":"hdf5","function_name":"H5VL_get_cap_flags"},"5923":{"probe_name":"hdf5","function_name":"H5VL_free_wrap_ctx"},"5922":{"probe_name":"hdf5","function_name":"H5VL_free_object"},"5921":{"probe_name":"hdf5","function_name":"H5VL_free_lib_state"},"5920":{"probe_name":"hdf5","function_name":"H5VL_free_connector_info"},"5919":{"probe_name":"hdf5","function_name":"H5VL_finish_lib_state"},"5918":{"probe_name":"hdf5","function_name":"H5VL_file_specific"},"5917":{"probe_name":"hdf5","function_name":"H5VL_file_optional"},"5916":{"probe_name":"hdf5","function_name":"H5VL_file_open"},"5915":{"probe_name":"hdf5","function_name":"H5VL_file_is_same"},"5914":{"probe_name":"hdf5","function_name":"H5VL_file_get"},"5913":{"probe_name":"hdf5","function_name":"H5VL_file_create"},"5912":{"probe_name":"hdf5","function_name":"H5VL_file_close"},"5911":{"probe_name":"hdf5","function_name":"H5VL_dec_vol_wrapper"},"5910":{"probe_name":"hdf5","function_name":"H5VL_datatype_specific"},"5909":{"probe_name":"hdf5","function_name":"H5VL_datatype_optional_op"},"5908":{"probe_name":"hdf5","function_name":"H5VL_datatype_optional"},"5907":{"probe_name":"hdf5","function_name":"H5VL_datatype_open"},"5906":{"probe_name":"hdf5","function_name":"H5VL_datatype_get"},"5905":{"probe_name":"hdf5","function_name":"H5VL_datatype_commit"},"5904":{"probe_name":"hdf5","function_name":"H5VL_datatype_close"},"5903":{"probe_name":"hdf5","function_name":"H5VL_dataset_write"},"5902":{"probe_name":"hdf5","function_name":"H5VL_dataset_specific"},"5901":{"probe_name":"hdf5","function_name":"H5VL_dataset_read"},"5900":{"probe_name":"hdf5","function_name":"H5VL_dataset_optional"},"5899":{"probe_name":"hdf5","function_name":"H5VL_dataset_open"},"5898":{"probe_name":"hdf5","function_name":"H5VL_dataset_get"},"5897":{"probe_name":"hdf5","function_name":"H5VL_dataset_create"},"5896":{"probe_name":"hdf5","function_name":"H5VL_dataset_close"},"5895":{"probe_name":"hdf5","function_name":"H5VL_create_object_using_vol_id"},"5894":{"probe_name":"hdf5","function_name":"H5VL_create_object"},"5893":{"probe_name":"hdf5","function_name":"H5VL_copy_connector_info"},"5892":{"probe_name":"hdf5","function_name":"H5VL_conn_inc_rc"},"5891":{"probe_name":"hdf5","function_name":"H5VL_conn_free"},"5890":{"probe_name":"hdf5","function_name":"H5VL_conn_dec_rc"},"5889":{"probe_name":"hdf5","function_name":"H5VL_conn_copy"},"5888":{"probe_name":"hdf5","function_name":"H5VL_cmp_connector_info"},"5887":{"probe_name":"hdf5","function_name":"H5VL_cmp_connector_cls"},"5886":{"probe_name":"hdf5","function_name":"H5VL_check_plugin_load"},"5885":{"probe_name":"hdf5","function_name":"H5VL_blob_specific"},"5884":{"probe_name":"hdf5","function_name":"H5VL_blob_put"},"5883":{"probe_name":"hdf5","function_name":"H5VL_blob_optional"},"5882":{"probe_name":"hdf5","function_name":"H5VL_blob_get"},"5881":{"probe_name":"hdf5","function_name":"H5VL_attr_write"},"5880":{"probe_name":"hdf5","function_name":"H5VL_attr_specific"},"5879":{"probe_name":"hdf5","function_name":"H5VL_attr_read"},"5878":{"probe_name":"hdf5","function_name":"H5VL_attr_optional"},"5877":{"probe_name":"hdf5","function_name":"H5VL_attr_open"},"5876":{"probe_name":"hdf5","function_name":"H5VL_attr_get"},"5875":{"probe_name":"hdf5","function_name":"H5VL_attr_create"},"5874":{"probe_name":"hdf5","function_name":"H5VL_attr_close"},"5873":{"probe_name":"hdf5","function_name":"H5VL__wrap_obj"},"5872":{"probe_name":"hdf5","function_name":"H5VL__unregister_opt_operation"},"5871":{"probe_name":"hdf5","function_name":"H5VL__term_opt_operation_cb"},"5870":{"probe_name":"hdf5","function_name":"H5VL__term_opt_operation"},"5869":{"probe_name":"hdf5","function_name":"H5VL__set_def_conn"},"5868":{"probe_name":"hdf5","function_name":"H5VL__reparse_def_vol_conn_variable_test"},"5867":{"probe_name":"hdf5","function_name":"H5VL__register_opt_operation"},"5866":{"probe_name":"hdf5","function_name":"H5VL__register_connector_by_value"},"5865":{"probe_name":"hdf5","function_name":"H5VL__register_connector_by_name"},"5864":{"probe_name":"hdf5","function_name":"H5VL__register_connector_by_class"},"5863":{"probe_name":"hdf5","function_name":"H5VL__register_connector"},"5862":{"probe_name":"hdf5","function_name":"H5VL__peek_connector_id_by_value"},"5861":{"probe_name":"hdf5","function_name":"H5VL__peek_connector_id_by_name"},"5860":{"probe_name":"hdf5","function_name":"H5VL__num_opt_operation"},"5859":{"probe_name":"hdf5","function_name":"H5VL__native_token_to_str"},"5858":{"probe_name":"hdf5","function_name":"H5VL__native_token_cmp"},"5857":{"probe_name":"hdf5","function_name":"H5VL__native_term"},"5856":{"probe_name":"hdf5","function_name":"H5VL__native_str_to_token"},"5855":{"probe_name":"hdf5","function_name":"H5VL__native_object_specific"},"5854":{"probe_name":"hdf5","function_name":"H5VL__native_object_optional"},"5853":{"probe_name":"hdf5","function_name":"H5VL__native_object_open"},"5852":{"probe_name":"hdf5","function_name":"H5VL__native_object_get"},"5851":{"probe_name":"hdf5","function_name":"H5VL__native_object_copy"},"5850":{"probe_name":"hdf5","function_name":"H5VL__native_link_specific"},"5849":{"probe_name":"hdf5","function_name":"H5VL__native_link_move"},"5848":{"probe_name":"hdf5","function_name":"H5VL__native_link_get"},"5847":{"probe_name":"hdf5","function_name":"H5VL__native_link_create"},"5846":{"probe_name":"hdf5","function_name":"H5VL__native_link_copy"},"5845":{"probe_name":"hdf5","function_name":"H5VL__native_introspect_opt_query"},"5844":{"probe_name":"hdf5","function_name":"H5VL__native_introspect_get_conn_cls"},"5843":{"probe_name":"hdf5","function_name":"H5VL__native_introspect_get_cap_flags"},"5842":{"probe_name":"hdf5","function_name":"H5VL__native_group_specific"},"5841":{"probe_name":"hdf5","function_name":"H5VL__native_group_optional"},"5840":{"probe_name":"hdf5","function_name":"H5VL__native_group_open"},"5839":{"probe_name":"hdf5","function_name":"H5VL__native_group_get"},"5838":{"probe_name":"hdf5","function_name":"H5VL__native_group_create"},"5837":{"probe_name":"hdf5","function_name":"H5VL__native_group_close"},"5836":{"probe_name":"hdf5","function_name":"H5VL__native_get_file_addr_len"},"5835":{"probe_name":"hdf5","function_name":"H5VL__native_file_specific"},"5834":{"probe_name":"hdf5","function_name":"H5VL__native_file_optional"},"5833":{"probe_name":"hdf5","function_name":"H5VL__native_file_open"},"5832":{"probe_name":"hdf5","function_name":"H5VL__native_file_get"},"5831":{"probe_name":"hdf5","function_name":"H5VL__native_file_create"},"5830":{"probe_name":"hdf5","function_name":"H5VL__native_file_close"},"5829":{"probe_name":"hdf5","function_name":"H5VL__native_datatype_specific"},"5828":{"probe_name":"hdf5","function_name":"H5VL__native_datatype_open"},"5827":{"probe_name":"hdf5","function_name":"H5VL__native_datatype_get"},"5826":{"probe_name":"hdf5","function_name":"H5VL__native_datatype_commit"},"5825":{"probe_name":"hdf5","function_name":"H5VL__native_datatype_close"},"5824":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_write"},"5823":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_specific"},"5822":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_read"},"5821":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_optional"},"5820":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_open"},"5819":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_io_setup"},"5818":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_io_cleanup"},"5817":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_get"},"5816":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_create"},"5815":{"probe_name":"hdf5","function_name":"H5VL__native_dataset_close"},"5814":{"probe_name":"hdf5","function_name":"H5VL__native_blob_specific"},"5813":{"probe_name":"hdf5","function_name":"H5VL__native_blob_put"},"5812":{"probe_name":"hdf5","function_name":"H5VL__native_blob_get"},"5811":{"probe_name":"hdf5","function_name":"H5VL__native_attr_write"},"5810":{"probe_name":"hdf5","function_name":"H5VL__native_attr_specific"},"5809":{"probe_name":"hdf5","function_name":"H5VL__native_attr_read"},"5808":{"probe_name":"hdf5","function_name":"H5VL__native_attr_optional"},"5807":{"probe_name":"hdf5","function_name":"H5VL__native_attr_open"},"5806":{"probe_name":"hdf5","function_name":"H5VL__native_attr_get"},"5805":{"probe_name":"hdf5","function_name":"H5VL__native_attr_create"},"5804":{"probe_name":"hdf5","function_name":"H5VL__native_attr_close"},"5803":{"probe_name":"hdf5","function_name":"H5VL__is_default_conn"},"5802":{"probe_name":"hdf5","function_name":"H5VL__is_connector_registered_by_value"},"5801":{"probe_name":"hdf5","function_name":"H5VL__is_connector_registered_by_name"},"5800":{"probe_name":"hdf5","function_name":"H5VL__get_connector_name"},"5799":{"probe_name":"hdf5","function_name":"H5VL__get_connector_id_by_value"},"5798":{"probe_name":"hdf5","function_name":"H5VL__get_connector_id_by_name"},"5797":{"probe_name":"hdf5","function_name":"H5VL__get_connector_id"},"5796":{"probe_name":"hdf5","function_name":"H5VL__get_connector_cb"},"5795":{"probe_name":"hdf5","function_name":"H5VL__free_cls"},"5794":{"probe_name":"hdf5","function_name":"H5VL__find_opt_operation"},"5793":{"probe_name":"hdf5","function_name":"H5VL__file_open_find_connector_cb"},"5792":{"probe_name":"hdf5","function_name":"H5VL__connector_str_to_info"},"5791":{"probe_name":"hdf5","function_name":"H5UC_decr"},"5790":{"probe_name":"hdf5","function_name":"H5UC_create"},"5789":{"probe_name":"hdf5","function_name":"H5Tvlen_create"},"5788":{"probe_name":"hdf5","function_name":"H5Tunregister"},"5787":{"probe_name":"hdf5","function_name":"H5Tset_tag"},"5786":{"probe_name":"hdf5","function_name":"H5Tset_strpad"},"5785":{"probe_name":"hdf5","function_name":"H5Tset_size"},"5784":{"probe_name":"hdf5","function_name":"H5Tset_sign"},"5783":{"probe_name":"hdf5","function_name":"H5Tset_precision"},"5782":{"probe_name":"hdf5","function_name":"H5Tset_pad"},"5781":{"probe_name":"hdf5","function_name":"H5Tset_order"},"5780":{"probe_name":"hdf5","function_name":"H5Tset_offset"},"5779":{"probe_name":"hdf5","function_name":"H5Tset_norm"},"5778":{"probe_name":"hdf5","function_name":"H5Tset_inpad"},"5777":{"probe_name":"hdf5","function_name":"H5Tset_fields"},"5776":{"probe_name":"hdf5","function_name":"H5Tset_ebias"},"5775":{"probe_name":"hdf5","function_name":"H5Tset_cset"},"5774":{"probe_name":"hdf5","function_name":"H5Tregister"},"5773":{"probe_name":"hdf5","function_name":"H5Trefresh"},"5772":{"probe_name":"hdf5","function_name":"H5Treclaim"},"5771":{"probe_name":"hdf5","function_name":"H5Tpack"},"5770":{"probe_name":"hdf5","function_name":"H5Topen_async"},"5769":{"probe_name":"hdf5","function_name":"H5Topen2"},"5768":{"probe_name":"hdf5","function_name":"H5Topen1"},"5767":{"probe_name":"hdf5","function_name":"H5Tlock"},"5766":{"probe_name":"hdf5","function_name":"H5Tis_variable_str"},"5765":{"probe_name":"hdf5","function_name":"H5Tinsert"},"5764":{"probe_name":"hdf5","function_name":"H5Tget_tag"},"5763":{"probe_name":"hdf5","function_name":"H5Tget_super"},"5762":{"probe_name":"hdf5","function_name":"H5Tget_strpad"},"5761":{"probe_name":"hdf5","function_name":"H5Tget_size"},"5760":{"probe_name":"hdf5","function_name":"H5Tget_sign"},"5759":{"probe_name":"hdf5","function_name":"H5Tget_precision"},"5758":{"probe_name":"hdf5","function_name":"H5Tget_pad"},"5757":{"probe_name":"hdf5","function_name":"H5Tget_order"},"5756":{"probe_name":"hdf5","function_name":"H5Tget_offset"},"5755":{"probe_name":"hdf5","function_name":"H5Tget_norm"},"5754":{"probe_name":"hdf5","function_name":"H5Tget_nmembers"},"5753":{"probe_name":"hdf5","function_name":"H5Tget_native_type"},"5752":{"probe_name":"hdf5","function_name":"H5Tget_member_value"},"5751":{"probe_name":"hdf5","function_name":"H5Tget_member_type"},"5750":{"probe_name":"hdf5","function_name":"H5Tget_member_offset"},"5749":{"probe_name":"hdf5","function_name":"H5Tget_member_name"},"5748":{"probe_name":"hdf5","function_name":"H5Tget_member_index"},"5747":{"probe_name":"hdf5","function_name":"H5Tget_member_class"},"5746":{"probe_name":"hdf5","function_name":"H5Tget_inpad"},"5745":{"probe_name":"hdf5","function_name":"H5Tget_fields"},"5744":{"probe_name":"hdf5","function_name":"H5Tget_ebias"},"5743":{"probe_name":"hdf5","function_name":"H5Tget_cset"},"5742":{"probe_name":"hdf5","function_name":"H5Tget_create_plist"},"5741":{"probe_name":"hdf5","function_name":"H5Tget_class"},"5740":{"probe_name":"hdf5","function_name":"H5Tget_array_ndims"},"5739":{"probe_name":"hdf5","function_name":"H5Tget_array_dims2"},"5738":{"probe_name":"hdf5","function_name":"H5Tget_array_dims1"},"5737":{"probe_name":"hdf5","function_name":"H5Tflush"},"5736":{"probe_name":"hdf5","function_name":"H5Tfind"},"5735":{"probe_name":"hdf5","function_name":"H5Tequal"},"5734":{"probe_name":"hdf5","function_name":"H5Tenum_valueof"},"5733":{"probe_name":"hdf5","function_name":"H5Tenum_nameof"},"5732":{"probe_name":"hdf5","function_name":"H5Tenum_insert"},"5731":{"probe_name":"hdf5","function_name":"H5Tenum_create"},"5730":{"probe_name":"hdf5","function_name":"H5Tencode"},"5729":{"probe_name":"hdf5","function_name":"H5Tdetect_class"},"5728":{"probe_name":"hdf5","function_name":"H5Tdecode"},"5727":{"probe_name":"hdf5","function_name":"H5Tcreate"},"5726":{"probe_name":"hdf5","function_name":"H5Tcopy"},"5725":{"probe_name":"hdf5","function_name":"H5Tconvert"},"5724":{"probe_name":"hdf5","function_name":"H5Tcompiler_conv"},"5723":{"probe_name":"hdf5","function_name":"H5Tcommitted"},"5722":{"probe_name":"hdf5","function_name":"H5Tcommit_async"},"5721":{"probe_name":"hdf5","function_name":"H5Tcommit_anon"},"5720":{"probe_name":"hdf5","function_name":"H5Tcommit2"},"5719":{"probe_name":"hdf5","function_name":"H5Tcommit1"},"5718":{"probe_name":"hdf5","function_name":"H5Tclose_async"},"5717":{"probe_name":"hdf5","function_name":"H5Tclose"},"5716":{"probe_name":"hdf5","function_name":"H5Tarray_create2"},"5715":{"probe_name":"hdf5","function_name":"H5Tarray_create1"},"5714":{"probe_name":"hdf5","function_name":"H5T_vlen_reclaim_elmt"},"5713":{"probe_name":"hdf5","function_name":"H5T_update_shared"},"5712":{"probe_name":"hdf5","function_name":"H5T_unregister"},"5711":{"probe_name":"hdf5","function_name":"H5T_top_term_package"},"5710":{"probe_name":"hdf5","function_name":"H5T_term_package"},"5709":{"probe_name":"hdf5","function_name":"H5T_set_version"},"5708":{"probe_name":"hdf5","function_name":"H5T_set_loc.localalias"},"5707":{"probe_name":"hdf5","function_name":"H5T_set_loc"},"5706":{"probe_name":"hdf5","function_name":"H5T_save_refresh_state"},"5705":{"probe_name":"hdf5","function_name":"H5T_restore_refresh_state"},"5704":{"probe_name":"hdf5","function_name":"H5T_reclaim_cb"},"5703":{"probe_name":"hdf5","function_name":"H5T_reclaim"},"5702":{"probe_name":"hdf5","function_name":"H5T_path_noop"},"5701":{"probe_name":"hdf5","function_name":"H5T_path_match_find_type_with_volobj"},"5700":{"probe_name":"hdf5","function_name":"H5T_path_find"},"5699":{"probe_name":"hdf5","function_name":"H5T_path_compound_subset"},"5698":{"probe_name":"hdf5","function_name":"H5T_path_bkg"},"5697":{"probe_name":"hdf5","function_name":"H5T_patch_vlen_file"},"5696":{"probe_name":"hdf5","function_name":"H5T_patch_file"},"5695":{"probe_name":"hdf5","function_name":"H5T_own_vol_obj"},"5694":{"probe_name":"hdf5","function_name":"H5T_open"},"5693":{"probe_name":"hdf5","function_name":"H5T_oloc"},"5692":{"probe_name":"hdf5","function_name":"H5T_noop_conv"},"5691":{"probe_name":"hdf5","function_name":"H5T_nameof"},"5690":{"probe_name":"hdf5","function_name":"H5T_lock"},"5689":{"probe_name":"hdf5","function_name":"H5T_link"},"5688":{"probe_name":"hdf5","function_name":"H5T_is_vl_storage"},"5687":{"probe_name":"hdf5","function_name":"H5T_is_variable_str"},"5686":{"probe_name":"hdf5","function_name":"H5T_is_sensible"},"5685":{"probe_name":"hdf5","function_name":"H5T_is_relocatable"},"5684":{"probe_name":"hdf5","function_name":"H5T_is_numeric_with_unusual_unused_bits"},"5683":{"probe_name":"hdf5","function_name":"H5T_is_named"},"5682":{"probe_name":"hdf5","function_name":"H5T_is_immutable"},"5681":{"probe_name":"hdf5","function_name":"H5T_invoke_vol_optional"},"5680":{"probe_name":"hdf5","function_name":"H5T_init"},"5679":{"probe_name":"hdf5","function_name":"H5T_get_super"},"5678":{"probe_name":"hdf5","function_name":"H5T_get_size"},"5677":{"probe_name":"hdf5","function_name":"H5T_get_sign"},"5676":{"probe_name":"hdf5","function_name":"H5T_get_ref_type"},"5675":{"probe_name":"hdf5","function_name":"H5T_get_precision"},"5674":{"probe_name":"hdf5","function_name":"H5T_get_order.localalias"},"5673":{"probe_name":"hdf5","function_name":"H5T_get_order"},"5672":{"probe_name":"hdf5","function_name":"H5T_get_offset"},"5671":{"probe_name":"hdf5","function_name":"H5T_get_nmembers"},"5670":{"probe_name":"hdf5","function_name":"H5T_get_named_type"},"5669":{"probe_name":"hdf5","function_name":"H5T_get_member_type"},"5668":{"probe_name":"hdf5","function_name":"H5T_get_member_offset"},"5667":{"probe_name":"hdf5","function_name":"H5T_get_force_conv"},"5666":{"probe_name":"hdf5","function_name":"H5T_get_class"},"5665":{"probe_name":"hdf5","function_name":"H5T_get_actual_type"},"5664":{"probe_name":"hdf5","function_name":"H5T_encode"},"5663":{"probe_name":"hdf5","function_name":"H5T_detect_class.localalias"},"5662":{"probe_name":"hdf5","function_name":"H5T_detect_class"},"5661":{"probe_name":"hdf5","function_name":"H5T_decode"},"5660":{"probe_name":"hdf5","function_name":"H5T_debug.localalias"},"5659":{"probe_name":"hdf5","function_name":"H5T_debug.cold"},"5658":{"probe_name":"hdf5","function_name":"H5T_debug"},"5657":{"probe_name":"hdf5","function_name":"H5T_copy_reopen"},"5656":{"probe_name":"hdf5","function_name":"H5T_copy"},"5655":{"probe_name":"hdf5","function_name":"H5T_convert_with_ctx"},"5654":{"probe_name":"hdf5","function_name":"H5T_convert_committed_datatype"},"5653":{"probe_name":"hdf5","function_name":"H5T_convert"},"5652":{"probe_name":"hdf5","function_name":"H5T_construct_datatype"},"5651":{"probe_name":"hdf5","function_name":"H5T_cmp.localalias"},"5650":{"probe_name":"hdf5","function_name":"H5T_cmp"},"5649":{"probe_name":"hdf5","function_name":"H5T_close_real"},"5648":{"probe_name":"hdf5","function_name":"H5T_close"},"5647":{"probe_name":"hdf5","function_name":"H5T_already_vol_managed"},"5646":{"probe_name":"hdf5","function_name":"H5T__vlen_set_loc"},"5645":{"probe_name":"hdf5","function_name":"H5T__vlen_reclaim"},"5644":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_str_write"},"5643":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_str_setnull"},"5642":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_str_read"},"5641":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_str_isnull"},"5640":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_str_getptr"},"5639":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_str_getlen"},"5638":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_seq_write"},"5637":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_seq_setnull"},"5636":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_seq_read"},"5635":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_seq_isnull"},"5634":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_seq_getptr"},"5633":{"probe_name":"hdf5","function_name":"H5T__vlen_mem_seq_getlen"},"5632":{"probe_name":"hdf5","function_name":"H5T__vlen_disk_write"},"5631":{"probe_name":"hdf5","function_name":"H5T__vlen_disk_setnull"},"5630":{"probe_name":"hdf5","function_name":"H5T__vlen_disk_read"},"5629":{"probe_name":"hdf5","function_name":"H5T__vlen_disk_isnull"},"5628":{"probe_name":"hdf5","function_name":"H5T__vlen_disk_getlen"},"5627":{"probe_name":"hdf5","function_name":"H5T__vlen_disk_delete.part.0"},"5626":{"probe_name":"hdf5","function_name":"H5T__vlen_disk_delete"},"5625":{"probe_name":"hdf5","function_name":"H5T__vlen_create"},"5624":{"probe_name":"hdf5","function_name":"H5T__visit.localalias"},"5623":{"probe_name":"hdf5","function_name":"H5T__visit"},"5622":{"probe_name":"hdf5","function_name":"H5T__upgrade_version_cb"},"5621":{"probe_name":"hdf5","function_name":"H5T__upgrade_version"},"5620":{"probe_name":"hdf5","function_name":"H5T__update_packed"},"5619":{"probe_name":"hdf5","function_name":"H5T__unlock_cb"},"5618":{"probe_name":"hdf5","function_name":"H5T__sort_value"},"5617":{"probe_name":"hdf5","function_name":"H5T__sort_name"},"5616":{"probe_name":"hdf5","function_name":"H5T__set_size"},"5615":{"probe_name":"hdf5","function_name":"H5T__set_precision"},"5614":{"probe_name":"hdf5","function_name":"H5T__set_order"},"5613":{"probe_name":"hdf5","function_name":"H5T__set_offset"},"5612":{"probe_name":"hdf5","function_name":"H5T__reverse_order"},"5611":{"probe_name":"hdf5","function_name":"H5T__register_int"},"5610":{"probe_name":"hdf5","function_name":"H5T__register"},"5609":{"probe_name":"hdf5","function_name":"H5T__ref_set_loc"},"5608":{"probe_name":"hdf5","function_name":"H5T__ref_reclaim"},"5607":{"probe_name":"hdf5","function_name":"H5T__ref_obj_disk_read"},"5606":{"probe_name":"hdf5","function_name":"H5T__ref_obj_disk_isnull"},"5605":{"probe_name":"hdf5","function_name":"H5T__ref_obj_disk_getsize"},"5604":{"probe_name":"hdf5","function_name":"H5T__ref_mem_write"},"5603":{"probe_name":"hdf5","function_name":"H5T__ref_mem_setnull"},"5602":{"probe_name":"hdf5","function_name":"H5T__ref_mem_read"},"5601":{"probe_name":"hdf5","function_name":"H5T__ref_mem_isnull"},"5600":{"probe_name":"hdf5","function_name":"H5T__ref_mem_getsize"},"5599":{"probe_name":"hdf5","function_name":"H5T__ref_dsetreg_disk_read"},"5598":{"probe_name":"hdf5","function_name":"H5T__ref_dsetreg_disk_isnull"},"5597":{"probe_name":"hdf5","function_name":"H5T__ref_dsetreg_disk_getsize"},"5596":{"probe_name":"hdf5","function_name":"H5T__ref_disk_write"},"5595":{"probe_name":"hdf5","function_name":"H5T__ref_disk_setnull"},"5594":{"probe_name":"hdf5","function_name":"H5T__ref_disk_read"},"5593":{"probe_name":"hdf5","function_name":"H5T__ref_disk_isnull"},"5592":{"probe_name":"hdf5","function_name":"H5T__ref_disk_getsize"},"5591":{"probe_name":"hdf5","function_name":"H5T__print_path_stats"},"5590":{"probe_name":"hdf5","function_name":"H5T__path_free"},"5589":{"probe_name":"hdf5","function_name":"H5T__path_find_real"},"5588":{"probe_name":"hdf5","function_name":"H5T__pack"},"5587":{"probe_name":"hdf5","function_name":"H5T__open_name"},"5586":{"probe_name":"hdf5","function_name":"H5T__open_api_common"},"5585":{"probe_name":"hdf5","function_name":"H5T__insert"},"5584":{"probe_name":"hdf5","function_name":"H5T__initiate_copy"},"5583":{"probe_name":"hdf5","function_name":"H5T__init_native_internal"},"5582":{"probe_name":"hdf5","function_name":"H5T__init_native_float_types"},"5581":{"probe_name":"hdf5","function_name":"H5T__get_path_table_npaths"},"5580":{"probe_name":"hdf5","function_name":"H5T__get_native_type"},"5579":{"probe_name":"hdf5","function_name":"H5T__get_member_value"},"5578":{"probe_name":"hdf5","function_name":"H5T__get_member_size"},"5577":{"probe_name":"hdf5","function_name":"H5T__get_member_name"},"5576":{"probe_name":"hdf5","function_name":"H5T__get_create_plist"},"5575":{"probe_name":"hdf5","function_name":"H5T__get_array_ndims"},"5574":{"probe_name":"hdf5","function_name":"H5T__get_array_dims"},"5573":{"probe_name":"hdf5","function_name":"H5T__free"},"5572":{"probe_name":"hdf5","function_name":"H5T__enum_insert"},"5571":{"probe_name":"hdf5","function_name":"H5T__enum_create"},"5570":{"probe_name":"hdf5","function_name":"H5T__detect_vlen_ref"},"5569":{"probe_name":"hdf5","function_name":"H5T__create"},"5568":{"probe_name":"hdf5","function_name":"H5T__copy_transient"},"5567":{"probe_name":"hdf5","function_name":"H5T__copy_all"},"5566":{"probe_name":"hdf5","function_name":"H5T__conv_vlen_nested_free"},"5565":{"probe_name":"hdf5","function_name":"H5T__conv_vlen"},"5564":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_ulong.cold"},"5563":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_ulong"},"5562":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_ullong.cold"},"5561":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_ullong"},"5560":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_uint.cold"},"5559":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_uint"},"5558":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_uchar"},"5557":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_short"},"5556":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_schar"},"5555":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_long.cold"},"5554":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_long"},"5553":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_llong.cold"},"5552":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_llong"},"5551":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_ldouble"},"5550":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_int.cold"},"5549":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_int"},"5548":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_float"},"5547":{"probe_name":"hdf5","function_name":"H5T__conv_ushort_double"},"5546":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_ushort"},"5545":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_ullong"},"5544":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_uint"},"5543":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_uchar"},"5542":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_short"},"5541":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_schar"},"5540":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_long"},"5539":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_llong"},"5538":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_ldouble"},"5537":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_int"},"5536":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_float"},"5535":{"probe_name":"hdf5","function_name":"H5T__conv_ulong_double"},"5534":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_ushort"},"5533":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_ulong"},"5532":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_uint"},"5531":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_uchar"},"5530":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_short"},"5529":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_schar"},"5528":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_long"},"5527":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_llong"},"5526":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_ldouble"},"5525":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_int"},"5524":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_float"},"5523":{"probe_name":"hdf5","function_name":"H5T__conv_ullong_double"},"5522":{"probe_name":"hdf5","function_name":"H5T__conv_uint_ushort"},"5521":{"probe_name":"hdf5","function_name":"H5T__conv_uint_ulong.cold"},"5520":{"probe_name":"hdf5","function_name":"H5T__conv_uint_ulong"},"5519":{"probe_name":"hdf5","function_name":"H5T__conv_uint_ullong.cold"},"5518":{"probe_name":"hdf5","function_name":"H5T__conv_uint_ullong"},"5517":{"probe_name":"hdf5","function_name":"H5T__conv_uint_uchar"},"5516":{"probe_name":"hdf5","function_name":"H5T__conv_uint_short"},"5515":{"probe_name":"hdf5","function_name":"H5T__conv_uint_schar"},"5514":{"probe_name":"hdf5","function_name":"H5T__conv_uint_long.cold"},"5513":{"probe_name":"hdf5","function_name":"H5T__conv_uint_long"},"5512":{"probe_name":"hdf5","function_name":"H5T__conv_uint_llong.cold"},"5511":{"probe_name":"hdf5","function_name":"H5T__conv_uint_llong"},"5510":{"probe_name":"hdf5","function_name":"H5T__conv_uint_ldouble"},"5509":{"probe_name":"hdf5","function_name":"H5T__conv_uint_int"},"5508":{"probe_name":"hdf5","function_name":"H5T__conv_uint_float"},"5507":{"probe_name":"hdf5","function_name":"H5T__conv_uint_double"},"5506":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_ushort.cold"},"5505":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_ushort"},"5504":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_ulong.cold"},"5503":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_ulong"},"5502":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_ullong.cold"},"5501":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_ullong"},"5500":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_uint.cold"},"5499":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_uint"},"5498":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_short.cold"},"5497":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_short"},"5496":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_schar"},"5495":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_long.cold"},"5494":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_long"},"5493":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_llong.cold"},"5492":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_llong"},"5491":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_ldouble"},"5490":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_int.cold"},"5489":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_int"},"5488":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_float"},"5487":{"probe_name":"hdf5","function_name":"H5T__conv_uchar_double"},"5486":{"probe_name":"hdf5","function_name":"H5T__conv_struct_subset"},"5485":{"probe_name":"hdf5","function_name":"H5T__conv_struct_opt"},"5484":{"probe_name":"hdf5","function_name":"H5T__conv_struct_init"},"5483":{"probe_name":"hdf5","function_name":"H5T__conv_struct_free"},"5482":{"probe_name":"hdf5","function_name":"H5T__conv_struct"},"5481":{"probe_name":"hdf5","function_name":"H5T__conv_short_ushort"},"5480":{"probe_name":"hdf5","function_name":"H5T__conv_short_ulong"},"5479":{"probe_name":"hdf5","function_name":"H5T__conv_short_ullong"},"5478":{"probe_name":"hdf5","function_name":"H5T__conv_short_uint"},"5477":{"probe_name":"hdf5","function_name":"H5T__conv_short_uchar"},"5476":{"probe_name":"hdf5","function_name":"H5T__conv_short_schar"},"5475":{"probe_name":"hdf5","function_name":"H5T__conv_short_long.cold"},"5474":{"probe_name":"hdf5","function_name":"H5T__conv_short_long"},"5473":{"probe_name":"hdf5","function_name":"H5T__conv_short_llong.cold"},"5472":{"probe_name":"hdf5","function_name":"H5T__conv_short_llong"},"5471":{"probe_name":"hdf5","function_name":"H5T__conv_short_ldouble"},"5470":{"probe_name":"hdf5","function_name":"H5T__conv_short_int.cold"},"5469":{"probe_name":"hdf5","function_name":"H5T__conv_short_int"},"5468":{"probe_name":"hdf5","function_name":"H5T__conv_short_float"},"5467":{"probe_name":"hdf5","function_name":"H5T__conv_short_double"},"5466":{"probe_name":"hdf5","function_name":"H5T__conv_schar_ushort"},"5465":{"probe_name":"hdf5","function_name":"H5T__conv_schar_ulong"},"5464":{"probe_name":"hdf5","function_name":"H5T__conv_schar_ullong"},"5463":{"probe_name":"hdf5","function_name":"H5T__conv_schar_uint"},"5462":{"probe_name":"hdf5","function_name":"H5T__conv_schar_uchar"},"5461":{"probe_name":"hdf5","function_name":"H5T__conv_schar_short.cold"},"5460":{"probe_name":"hdf5","function_name":"H5T__conv_schar_short"},"5459":{"probe_name":"hdf5","function_name":"H5T__conv_schar_long.cold"},"5458":{"probe_name":"hdf5","function_name":"H5T__conv_schar_long"},"5457":{"probe_name":"hdf5","function_name":"H5T__conv_schar_llong.cold"},"5456":{"probe_name":"hdf5","function_name":"H5T__conv_schar_llong"},"5455":{"probe_name":"hdf5","function_name":"H5T__conv_schar_ldouble"},"5454":{"probe_name":"hdf5","function_name":"H5T__conv_schar_int.cold"},"5453":{"probe_name":"hdf5","function_name":"H5T__conv_schar_int"},"5452":{"probe_name":"hdf5","function_name":"H5T__conv_schar_float"},"5451":{"probe_name":"hdf5","function_name":"H5T__conv_schar_double"},"5450":{"probe_name":"hdf5","function_name":"H5T__conv_s_s"},"5449":{"probe_name":"hdf5","function_name":"H5T__conv_ref"},"5448":{"probe_name":"hdf5","function_name":"H5T__conv_order_opt"},"5447":{"probe_name":"hdf5","function_name":"H5T__conv_order"},"5446":{"probe_name":"hdf5","function_name":"H5T__conv_noop"},"5445":{"probe_name":"hdf5","function_name":"H5T__conv_long_ushort"},"5444":{"probe_name":"hdf5","function_name":"H5T__conv_long_ulong"},"5443":{"probe_name":"hdf5","function_name":"H5T__conv_long_ullong"},"5442":{"probe_name":"hdf5","function_name":"H5T__conv_long_uint"},"5441":{"probe_name":"hdf5","function_name":"H5T__conv_long_uchar"},"5440":{"probe_name":"hdf5","function_name":"H5T__conv_long_short"},"5439":{"probe_name":"hdf5","function_name":"H5T__conv_long_schar"},"5438":{"probe_name":"hdf5","function_name":"H5T__conv_long_llong"},"5437":{"probe_name":"hdf5","function_name":"H5T__conv_long_ldouble"},"5436":{"probe_name":"hdf5","function_name":"H5T__conv_long_int"},"5435":{"probe_name":"hdf5","function_name":"H5T__conv_long_float"},"5434":{"probe_name":"hdf5","function_name":"H5T__conv_long_double"},"5433":{"probe_name":"hdf5","function_name":"H5T__conv_llong_ushort"},"5432":{"probe_name":"hdf5","function_name":"H5T__conv_llong_ulong"},"5431":{"probe_name":"hdf5","function_name":"H5T__conv_llong_ullong"},"5430":{"probe_name":"hdf5","function_name":"H5T__conv_llong_uint"},"5429":{"probe_name":"hdf5","function_name":"H5T__conv_llong_uchar"},"5428":{"probe_name":"hdf5","function_name":"H5T__conv_llong_short"},"5427":{"probe_name":"hdf5","function_name":"H5T__conv_llong_schar"},"5426":{"probe_name":"hdf5","function_name":"H5T__conv_llong_long"},"5425":{"probe_name":"hdf5","function_name":"H5T__conv_llong_ldouble"},"5424":{"probe_name":"hdf5","function_name":"H5T__conv_llong_int"},"5423":{"probe_name":"hdf5","function_name":"H5T__conv_llong_float"},"5422":{"probe_name":"hdf5","function_name":"H5T__conv_llong_double"},"5421":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_ushort"},"5420":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_ulong"},"5419":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_ullong"},"5418":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_uint"},"5417":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_uchar"},"5416":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_short"},"5415":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_schar"},"5414":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_long"},"5413":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_llong"},"5412":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_int"},"5411":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_float"},"5410":{"probe_name":"hdf5","function_name":"H5T__conv_ldouble_double"},"5409":{"probe_name":"hdf5","function_name":"H5T__conv_int_ushort"},"5408":{"probe_name":"hdf5","function_name":"H5T__conv_int_ulong"},"5407":{"probe_name":"hdf5","function_name":"H5T__conv_int_ullong"},"5406":{"probe_name":"hdf5","function_name":"H5T__conv_int_uint"},"5405":{"probe_name":"hdf5","function_name":"H5T__conv_int_uchar"},"5404":{"probe_name":"hdf5","function_name":"H5T__conv_int_short"},"5403":{"probe_name":"hdf5","function_name":"H5T__conv_int_schar"},"5402":{"probe_name":"hdf5","function_name":"H5T__conv_int_long.cold"},"5401":{"probe_name":"hdf5","function_name":"H5T__conv_int_long"},"5400":{"probe_name":"hdf5","function_name":"H5T__conv_int_llong.cold"},"5399":{"probe_name":"hdf5","function_name":"H5T__conv_int_llong"},"5398":{"probe_name":"hdf5","function_name":"H5T__conv_int_ldouble"},"5397":{"probe_name":"hdf5","function_name":"H5T__conv_int_float"},"5396":{"probe_name":"hdf5","function_name":"H5T__conv_int_double"},"5395":{"probe_name":"hdf5","function_name":"H5T__conv_i_i"},"5394":{"probe_name":"hdf5","function_name":"H5T__conv_i_f"},"5393":{"probe_name":"hdf5","function_name":"H5T__conv_float_ushort"},"5392":{"probe_name":"hdf5","function_name":"H5T__conv_float_ulong"},"5391":{"probe_name":"hdf5","function_name":"H5T__conv_float_ullong"},"5390":{"probe_name":"hdf5","function_name":"H5T__conv_float_uint"},"5389":{"probe_name":"hdf5","function_name":"H5T__conv_float_uchar"},"5388":{"probe_name":"hdf5","function_name":"H5T__conv_float_short"},"5387":{"probe_name":"hdf5","function_name":"H5T__conv_float_schar"},"5386":{"probe_name":"hdf5","function_name":"H5T__conv_float_long"},"5385":{"probe_name":"hdf5","function_name":"H5T__conv_float_llong"},"5384":{"probe_name":"hdf5","function_name":"H5T__conv_float_ldouble.cold"},"5383":{"probe_name":"hdf5","function_name":"H5T__conv_float_ldouble"},"5382":{"probe_name":"hdf5","function_name":"H5T__conv_float_int"},"5381":{"probe_name":"hdf5","function_name":"H5T__conv_float_double.cold"},"5380":{"probe_name":"hdf5","function_name":"H5T__conv_float_double"},"5379":{"probe_name":"hdf5","function_name":"H5T__conv_f_i"},"5378":{"probe_name":"hdf5","function_name":"H5T__conv_f_f"},"5377":{"probe_name":"hdf5","function_name":"H5T__conv_enum_numeric"},"5376":{"probe_name":"hdf5","function_name":"H5T__conv_enum_init"},"5375":{"probe_name":"hdf5","function_name":"H5T__conv_enum_free.part.0"},"5374":{"probe_name":"hdf5","function_name":"H5T__conv_enum"},"5373":{"probe_name":"hdf5","function_name":"H5T__conv_double_ushort"},"5372":{"probe_name":"hdf5","function_name":"H5T__conv_double_ulong"},"5371":{"probe_name":"hdf5","function_name":"H5T__conv_double_ullong"},"5370":{"probe_name":"hdf5","function_name":"H5T__conv_double_uint"},"5369":{"probe_name":"hdf5","function_name":"H5T__conv_double_uchar"},"5368":{"probe_name":"hdf5","function_name":"H5T__conv_double_short"},"5367":{"probe_name":"hdf5","function_name":"H5T__conv_double_schar"},"5366":{"probe_name":"hdf5","function_name":"H5T__conv_double_long"},"5365":{"probe_name":"hdf5","function_name":"H5T__conv_double_llong"},"5364":{"probe_name":"hdf5","function_name":"H5T__conv_double_ldouble.cold"},"5363":{"probe_name":"hdf5","function_name":"H5T__conv_double_ldouble"},"5362":{"probe_name":"hdf5","function_name":"H5T__conv_double_int"},"5361":{"probe_name":"hdf5","function_name":"H5T__conv_double_float"},"5360":{"probe_name":"hdf5","function_name":"H5T__conv_b_b"},"5359":{"probe_name":"hdf5","function_name":"H5T__conv_array"},"5358":{"probe_name":"hdf5","function_name":"H5T__complete_copy"},"5357":{"probe_name":"hdf5","function_name":"H5T__commit_named"},"5356":{"probe_name":"hdf5","function_name":"H5T__commit_api_common"},"5355":{"probe_name":"hdf5","function_name":"H5T__commit_anon"},"5354":{"probe_name":"hdf5","function_name":"H5T__commit"},"5353":{"probe_name":"hdf5","function_name":"H5T__close_cb"},"5352":{"probe_name":"hdf5","function_name":"H5T__bit_shift"},"5351":{"probe_name":"hdf5","function_name":"H5T__bit_set_d"},"5350":{"probe_name":"hdf5","function_name":"H5T__bit_set"},"5349":{"probe_name":"hdf5","function_name":"H5T__bit_neg"},"5348":{"probe_name":"hdf5","function_name":"H5T__bit_inc"},"5347":{"probe_name":"hdf5","function_name":"H5T__bit_get_d"},"5346":{"probe_name":"hdf5","function_name":"H5T__bit_find"},"5345":{"probe_name":"hdf5","function_name":"H5T__bit_dec"},"5344":{"probe_name":"hdf5","function_name":"H5T__bit_copy"},"5343":{"probe_name":"hdf5","function_name":"H5T__bit_cmp.constprop.0"},"5342":{"probe_name":"hdf5","function_name":"H5T__array_create"},"5341":{"probe_name":"hdf5","function_name":"H5T__alloc"},"5340":{"probe_name":"hdf5","function_name":"H5Sset_extent_simple"},"5339":{"probe_name":"hdf5","function_name":"H5Sset_extent_none"},"5338":{"probe_name":"hdf5","function_name":"H5Sselect_valid"},"5337":{"probe_name":"hdf5","function_name":"H5Sselect_shape_same"},"5336":{"probe_name":"hdf5","function_name":"H5Sselect_project_intersection"},"5335":{"probe_name":"hdf5","function_name":"H5Sselect_none"},"5334":{"probe_name":"hdf5","function_name":"H5Sselect_intersect_block"},"5333":{"probe_name":"hdf5","function_name":"H5Sselect_hyperslab"},"5332":{"probe_name":"hdf5","function_name":"H5Sselect_elements"},"5331":{"probe_name":"hdf5","function_name":"H5Sselect_copy"},"5330":{"probe_name":"hdf5","function_name":"H5Sselect_all"},"5329":{"probe_name":"hdf5","function_name":"H5Sselect_adjust"},"5328":{"probe_name":"hdf5","function_name":"H5Ssel_iter_reset"},"5327":{"probe_name":"hdf5","function_name":"H5Ssel_iter_get_seq_list"},"5326":{"probe_name":"hdf5","function_name":"H5Ssel_iter_create"},"5325":{"probe_name":"hdf5","function_name":"H5Ssel_iter_close"},"5324":{"probe_name":"hdf5","function_name":"H5Soffset_simple"},"5323":{"probe_name":"hdf5","function_name":"H5Smodify_select"},"5322":{"probe_name":"hdf5","function_name":"H5Sis_simple"},"5321":{"probe_name":"hdf5","function_name":"H5Sis_regular_hyperslab"},"5320":{"probe_name":"hdf5","function_name":"H5Sget_simple_extent_type"},"5319":{"probe_name":"hdf5","function_name":"H5Sget_simple_extent_npoints"},"5318":{"probe_name":"hdf5","function_name":"H5Sget_simple_extent_ndims"},"5317":{"probe_name":"hdf5","function_name":"H5Sget_simple_extent_dims"},"5316":{"probe_name":"hdf5","function_name":"H5Sget_select_type"},"5315":{"probe_name":"hdf5","function_name":"H5Sget_select_npoints"},"5314":{"probe_name":"hdf5","function_name":"H5Sget_select_hyper_nblocks"},"5313":{"probe_name":"hdf5","function_name":"H5Sget_select_hyper_blocklist"},"5312":{"probe_name":"hdf5","function_name":"H5Sget_select_elem_pointlist"},"5311":{"probe_name":"hdf5","function_name":"H5Sget_select_elem_npoints"},"5310":{"probe_name":"hdf5","function_name":"H5Sget_select_bounds"},"5309":{"probe_name":"hdf5","function_name":"H5Sget_regular_hyperslab"},"5308":{"probe_name":"hdf5","function_name":"H5Sextent_equal"},"5307":{"probe_name":"hdf5","function_name":"H5Sextent_copy"},"5306":{"probe_name":"hdf5","function_name":"H5Sencode2"},"5305":{"probe_name":"hdf5","function_name":"H5Sencode1"},"5304":{"probe_name":"hdf5","function_name":"H5Sdecode"},"5303":{"probe_name":"hdf5","function_name":"H5Screate_simple"},"5302":{"probe_name":"hdf5","function_name":"H5Screate"},"5301":{"probe_name":"hdf5","function_name":"H5Scopy"},"5300":{"probe_name":"hdf5","function_name":"H5Scombine_select"},"5299":{"probe_name":"hdf5","function_name":"H5Scombine_hyperslab"},"5298":{"probe_name":"hdf5","function_name":"H5Sclose"},"5297":{"probe_name":"hdf5","function_name":"H5S_write"},"5296":{"probe_name":"hdf5","function_name":"H5S_top_term_package"},"5295":{"probe_name":"hdf5","function_name":"H5S_term_package"},"5294":{"probe_name":"hdf5","function_name":"H5S_set_version"},"5293":{"probe_name":"hdf5","function_name":"H5S_set_extent_simple"},"5292":{"probe_name":"hdf5","function_name":"H5S_set_extent_real"},"5291":{"probe_name":"hdf5","function_name":"H5S_set_extent"},"5290":{"probe_name":"hdf5","function_name":"H5S_select_valid"},"5289":{"probe_name":"hdf5","function_name":"H5S_select_subtract"},"5288":{"probe_name":"hdf5","function_name":"H5S_select_shape_same"},"5287":{"probe_name":"hdf5","function_name":"H5S_select_serialize"},"5286":{"probe_name":"hdf5","function_name":"H5S_select_serial_size"},"5285":{"probe_name":"hdf5","function_name":"H5S_select_release"},"5284":{"probe_name":"hdf5","function_name":"H5S_select_project_simple"},"5283":{"probe_name":"hdf5","function_name":"H5S_select_project_scalar"},"5282":{"probe_name":"hdf5","function_name":"H5S_select_project_intersection"},"5281":{"probe_name":"hdf5","function_name":"H5S_select_offset"},"5280":{"probe_name":"hdf5","function_name":"H5S_select_none"},"5279":{"probe_name":"hdf5","function_name":"H5S_select_iterate"},"5278":{"probe_name":"hdf5","function_name":"H5S_select_iter_release"},"5277":{"probe_name":"hdf5","function_name":"H5S_select_iter_next"},"5276":{"probe_name":"hdf5","function_name":"H5S_select_iter_nelmts"},"5275":{"probe_name":"hdf5","function_name":"H5S_select_iter_init"},"5274":{"probe_name":"hdf5","function_name":"H5S_select_iter_get_seq_list"},"5273":{"probe_name":"hdf5","function_name":"H5S_select_iter_coords"},"5272":{"probe_name":"hdf5","function_name":"H5S_select_is_single"},"5271":{"probe_name":"hdf5","function_name":"H5S_select_is_regular"},"5270":{"probe_name":"hdf5","function_name":"H5S_select_is_contiguous"},"5269":{"probe_name":"hdf5","function_name":"H5S_select_intersect_block"},"5268":{"probe_name":"hdf5","function_name":"H5S_select_hyperslab.localalias"},"5267":{"probe_name":"hdf5","function_name":"H5S_select_hyperslab"},"5266":{"probe_name":"hdf5","function_name":"H5S_select_fill"},"5265":{"probe_name":"hdf5","function_name":"H5S_select_elements"},"5264":{"probe_name":"hdf5","function_name":"H5S_select_deserialize"},"5263":{"probe_name":"hdf5","function_name":"H5S_select_copy"},"5262":{"probe_name":"hdf5","function_name":"H5S_select_contig_block"},"5261":{"probe_name":"hdf5","function_name":"H5S_select_construct_projection"},"5260":{"probe_name":"hdf5","function_name":"H5S_select_all"},"5259":{"probe_name":"hdf5","function_name":"H5S_select_adjust_u"},"5258":{"probe_name":"hdf5","function_name":"H5S_select_adjust_s"},"5257":{"probe_name":"hdf5","function_name":"H5S_sel_iter_close"},"5256":{"probe_name":"hdf5","function_name":"H5S_read"},"5255":{"probe_name":"hdf5","function_name":"H5S_mpio_space_type"},"5254":{"probe_name":"hdf5","function_name":"H5S_init"},"5253":{"probe_name":"hdf5","function_name":"H5S_hyper_normalize_offset"},"5252":{"probe_name":"hdf5","function_name":"H5S_hyper_get_unlim_block"},"5251":{"probe_name":"hdf5","function_name":"H5S_hyper_get_first_inc_block"},"5250":{"probe_name":"hdf5","function_name":"H5S_hyper_get_clip_extent_match"},"5249":{"probe_name":"hdf5","function_name":"H5S_hyper_get_clip_extent"},"5248":{"probe_name":"hdf5","function_name":"H5S_hyper_denormalize_offset"},"5247":{"probe_name":"hdf5","function_name":"H5S_hyper_clip_unlim"},"5246":{"probe_name":"hdf5","function_name":"H5S_hyper_add_span_element"},"5245":{"probe_name":"hdf5","function_name":"H5S_has_extent"},"5244":{"probe_name":"hdf5","function_name":"H5S_get_simple_extent_type"},"5243":{"probe_name":"hdf5","function_name":"H5S_get_simple_extent_npoints"},"5242":{"probe_name":"hdf5","function_name":"H5S_get_simple_extent_ndims"},"5241":{"probe_name":"hdf5","function_name":"H5S_get_simple_extent_dims"},"5240":{"probe_name":"hdf5","function_name":"H5S_get_simple_extent"},"5239":{"probe_name":"hdf5","function_name":"H5S_get_select_unlim_dim"},"5238":{"probe_name":"hdf5","function_name":"H5S_get_select_type"},"5237":{"probe_name":"hdf5","function_name":"H5S_get_select_offset"},"5236":{"probe_name":"hdf5","function_name":"H5S_get_select_num_elem_non_unlim"},"5235":{"probe_name":"hdf5","function_name":"H5S_get_select_npoints"},"5234":{"probe_name":"hdf5","function_name":"H5S_get_select_bounds"},"5233":{"probe_name":"hdf5","function_name":"H5S_get_npoints_max"},"5232":{"probe_name":"hdf5","function_name":"H5S_extent_nelem"},"5231":{"probe_name":"hdf5","function_name":"H5S_extent_get_dims"},"5230":{"probe_name":"hdf5","function_name":"H5S_extent_equal"},"5229":{"probe_name":"hdf5","function_name":"H5S_extent_copy"},"5228":{"probe_name":"hdf5","function_name":"H5S_encode"},"5227":{"probe_name":"hdf5","function_name":"H5S_decode"},"5226":{"probe_name":"hdf5","function_name":"H5S_debug"},"5225":{"probe_name":"hdf5","function_name":"H5S_create_simple"},"5224":{"probe_name":"hdf5","function_name":"H5S_create"},"5223":{"probe_name":"hdf5","function_name":"H5S_copy"},"5222":{"probe_name":"hdf5","function_name":"H5S_combine_hyperslab"},"5221":{"probe_name":"hdf5","function_name":"H5S_close"},"5220":{"probe_name":"hdf5","function_name":"H5S_append"},"5219":{"probe_name":"hdf5","function_name":"H5S__verify_offsets"},"5218":{"probe_name":"hdf5","function_name":"H5S__set_regular_hyperslab"},"5217":{"probe_name":"hdf5","function_name":"H5S__sel_iter_close_cb"},"5216":{"probe_name":"hdf5","function_name":"H5S__point_unlim_dim"},"5215":{"probe_name":"hdf5","function_name":"H5S__point_shape_same"},"5214":{"probe_name":"hdf5","function_name":"H5S__point_serialize"},"5213":{"probe_name":"hdf5","function_name":"H5S__point_serial_size"},"5212":{"probe_name":"hdf5","function_name":"H5S__point_release"},"5211":{"probe_name":"hdf5","function_name":"H5S__point_project_simple"},"5210":{"probe_name":"hdf5","function_name":"H5S__point_project_scalar"},"5209":{"probe_name":"hdf5","function_name":"H5S__point_offset"},"5208":{"probe_name":"hdf5","function_name":"H5S__point_iter_release"},"5207":{"probe_name":"hdf5","function_name":"H5S__point_iter_next_block"},"5206":{"probe_name":"hdf5","function_name":"H5S__point_iter_next"},"5205":{"probe_name":"hdf5","function_name":"H5S__point_iter_nelmts"},"5204":{"probe_name":"hdf5","function_name":"H5S__point_iter_init"},"5203":{"probe_name":"hdf5","function_name":"H5S__point_iter_has_next_block"},"5202":{"probe_name":"hdf5","function_name":"H5S__point_iter_get_seq_list"},"5201":{"probe_name":"hdf5","function_name":"H5S__point_iter_coords"},"5200":{"probe_name":"hdf5","function_name":"H5S__point_iter_block"},"5199":{"probe_name":"hdf5","function_name":"H5S__point_is_valid"},"5198":{"probe_name":"hdf5","function_name":"H5S__point_is_single"},"5197":{"probe_name":"hdf5","function_name":"H5S__point_is_regular"},"5196":{"probe_name":"hdf5","function_name":"H5S__point_is_contiguous"},"5195":{"probe_name":"hdf5","function_name":"H5S__point_intersect_block"},"5194":{"probe_name":"hdf5","function_name":"H5S__point_get_version_enc_size"},"5193":{"probe_name":"hdf5","function_name":"H5S__point_deserialize"},"5192":{"probe_name":"hdf5","function_name":"H5S__point_copy"},"5191":{"probe_name":"hdf5","function_name":"H5S__point_bounds"},"5190":{"probe_name":"hdf5","function_name":"H5S__point_adjust_u"},"5189":{"probe_name":"hdf5","function_name":"H5S__point_adjust_s"},"5188":{"probe_name":"hdf5","function_name":"H5S__obtain_datatype.constprop.0"},"5187":{"probe_name":"hdf5","function_name":"H5S__none_unlim_dim"},"5186":{"probe_name":"hdf5","function_name":"H5S__none_shape_same"},"5185":{"probe_name":"hdf5","function_name":"H5S__none_serialize"},"5184":{"probe_name":"hdf5","function_name":"H5S__none_serial_size"},"5183":{"probe_name":"hdf5","function_name":"H5S__none_release"},"5182":{"probe_name":"hdf5","function_name":"H5S__none_project_simple"},"5181":{"probe_name":"hdf5","function_name":"H5S__none_project_scalar"},"5180":{"probe_name":"hdf5","function_name":"H5S__none_offset"},"5179":{"probe_name":"hdf5","function_name":"H5S__none_iter_release"},"5178":{"probe_name":"hdf5","function_name":"H5S__none_iter_next_block"},"5177":{"probe_name":"hdf5","function_name":"H5S__none_iter_next"},"5176":{"probe_name":"hdf5","function_name":"H5S__none_iter_nelmts"},"5175":{"probe_name":"hdf5","function_name":"H5S__none_iter_init"},"5174":{"probe_name":"hdf5","function_name":"H5S__none_iter_has_next_block"},"5173":{"probe_name":"hdf5","function_name":"H5S__none_iter_get_seq_list"},"5172":{"probe_name":"hdf5","function_name":"H5S__none_iter_coords"},"5171":{"probe_name":"hdf5","function_name":"H5S__none_iter_block"},"5170":{"probe_name":"hdf5","function_name":"H5S__none_is_valid"},"5169":{"probe_name":"hdf5","function_name":"H5S__none_is_single"},"5168":{"probe_name":"hdf5","function_name":"H5S__none_is_regular"},"5167":{"probe_name":"hdf5","function_name":"H5S__none_is_contiguous"},"5166":{"probe_name":"hdf5","function_name":"H5S__none_intersect_block"},"5165":{"probe_name":"hdf5","function_name":"H5S__none_deserialize"},"5164":{"probe_name":"hdf5","function_name":"H5S__none_copy"},"5163":{"probe_name":"hdf5","function_name":"H5S__none_bounds"},"5162":{"probe_name":"hdf5","function_name":"H5S__none_adjust_u"},"5161":{"probe_name":"hdf5","function_name":"H5S__none_adjust_s"},"5160":{"probe_name":"hdf5","function_name":"H5S__mpio_span_hyper_type"},"5159":{"probe_name":"hdf5","function_name":"H5S__mpio_reg_hyper_type"},"5158":{"probe_name":"hdf5","function_name":"H5S__mpio_create_point_datatype"},"5157":{"probe_name":"hdf5","function_name":"H5S__modify_select"},"5156":{"probe_name":"hdf5","function_name":"H5S__internal_consistency_test"},"5155":{"probe_name":"hdf5","function_name":"H5S__hyper_update_diminfo"},"5154":{"probe_name":"hdf5","function_name":"H5S__hyper_unlim_dim"},"5153":{"probe_name":"hdf5","function_name":"H5S__hyper_spans_shape_same_helper"},"5152":{"probe_name":"hdf5","function_name":"H5S__hyper_spans_shape_same"},"5151":{"probe_name":"hdf5","function_name":"H5S__hyper_spans_nelem_helper.part.0.constprop.0"},"5150":{"probe_name":"hdf5","function_name":"H5S__hyper_span_nblocks_helper.constprop.0"},"5149":{"probe_name":"hdf5","function_name":"H5S__hyper_span_blocklist"},"5148":{"probe_name":"hdf5","function_name":"H5S__hyper_shape_same"},"5147":{"probe_name":"hdf5","function_name":"H5S__hyper_serialize_helper"},"5146":{"probe_name":"hdf5","function_name":"H5S__hyper_serialize"},"5145":{"probe_name":"hdf5","function_name":"H5S__hyper_serial_size"},"5144":{"probe_name":"hdf5","function_name":"H5S__hyper_release"},"5143":{"probe_name":"hdf5","function_name":"H5S__hyper_rebuild_helper"},"5142":{"probe_name":"hdf5","function_name":"H5S__hyper_rebuild"},"5141":{"probe_name":"hdf5","function_name":"H5S__hyper_project_simple"},"5140":{"probe_name":"hdf5","function_name":"H5S__hyper_project_scalar"},"5139":{"probe_name":"hdf5","function_name":"H5S__hyper_project_intersection"},"5138":{"probe_name":"hdf5","function_name":"H5S__hyper_proj_int_iterate"},"5137":{"probe_name":"hdf5","function_name":"H5S__hyper_proj_int_build_proj"},"5136":{"probe_name":"hdf5","function_name":"H5S__hyper_offset"},"5135":{"probe_name":"hdf5","function_name":"H5S__hyper_num_elem_non_unlim"},"5134":{"probe_name":"hdf5","function_name":"H5S__hyper_new_span_info.part.0"},"5133":{"probe_name":"hdf5","function_name":"H5S__hyper_new_span.part.0"},"5132":{"probe_name":"hdf5","function_name":"H5S__hyper_merge_spans_helper"},"5131":{"probe_name":"hdf5","function_name":"H5S__hyper_make_spans"},"5130":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_release"},"5129":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_next_block"},"5128":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_next"},"5127":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_nelmts"},"5126":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_init"},"5125":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_has_next_block"},"5124":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_get_seq_list_single"},"5123":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_get_seq_list_opt"},"5122":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_get_seq_list"},"5121":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_coords"},"5120":{"probe_name":"hdf5","function_name":"H5S__hyper_iter_block"},"5119":{"probe_name":"hdf5","function_name":"H5S__hyper_is_valid"},"5118":{"probe_name":"hdf5","function_name":"H5S__hyper_is_single"},"5117":{"probe_name":"hdf5","function_name":"H5S__hyper_is_regular"},"5116":{"probe_name":"hdf5","function_name":"H5S__hyper_is_contiguous"},"5115":{"probe_name":"hdf5","function_name":"H5S__hyper_intersect_block_helper.constprop.0"},"5114":{"probe_name":"hdf5","function_name":"H5S__hyper_intersect_block"},"5113":{"probe_name":"hdf5","function_name":"H5S__hyper_get_version_enc_size"},"5112":{"probe_name":"hdf5","function_name":"H5S__hyper_get_op_gen"},"5111":{"probe_name":"hdf5","function_name":"H5S__hyper_generate_spans"},"5110":{"probe_name":"hdf5","function_name":"H5S__hyper_free_span_info"},"5109":{"probe_name":"hdf5","function_name":"H5S__hyper_deserialize"},"5108":{"probe_name":"hdf5","function_name":"H5S__hyper_copy_span_helper.part.0"},"5107":{"probe_name":"hdf5","function_name":"H5S__hyper_copy"},"5106":{"probe_name":"hdf5","function_name":"H5S__hyper_coord_to_span"},"5105":{"probe_name":"hdf5","function_name":"H5S__hyper_cmp_spans.part.0"},"5104":{"probe_name":"hdf5","function_name":"H5S__hyper_clip_spans.constprop.0"},"5103":{"probe_name":"hdf5","function_name":"H5S__hyper_bounds"},"5102":{"probe_name":"hdf5","function_name":"H5S__hyper_append_span.constprop.0"},"5101":{"probe_name":"hdf5","function_name":"H5S__hyper_append_span"},"5100":{"probe_name":"hdf5","function_name":"H5S__hyper_adjust_u_helper.constprop.0"},"5099":{"probe_name":"hdf5","function_name":"H5S__hyper_adjust_u"},"5098":{"probe_name":"hdf5","function_name":"H5S__hyper_adjust_s_helper.constprop.0"},"5097":{"probe_name":"hdf5","function_name":"H5S__hyper_adjust_s"},"5096":{"probe_name":"hdf5","function_name":"H5S__hyper_add_span_element_helper.constprop.0"},"5095":{"probe_name":"hdf5","function_name":"H5S__hyper_add_disjoint_spans"},"5094":{"probe_name":"hdf5","function_name":"H5S__get_select_hyper_blocklist"},"5093":{"probe_name":"hdf5","function_name":"H5S__get_rebuild_status_test"},"5092":{"probe_name":"hdf5","function_name":"H5S__get_diminfo_status_test"},"5091":{"probe_name":"hdf5","function_name":"H5S__generate_hyperslab"},"5090":{"probe_name":"hdf5","function_name":"H5S__fill_in_select"},"5089":{"probe_name":"hdf5","function_name":"H5S__fill_in_new_space"},"5088":{"probe_name":"hdf5","function_name":"H5S__extent_release"},"5086":{"probe_name":"hdf5","function_name":"H5S__copy_pnt_list"},"5085":{"probe_name":"hdf5","function_name":"H5S__combine_select"},"5084":{"probe_name":"hdf5","function_name":"H5S__close_cb"},"5083":{"probe_name":"hdf5","function_name":"H5S__check_spans_tail_ptr"},"5082":{"probe_name":"hdf5","function_name":"H5S__check_spans_overlap"},"5081":{"probe_name":"hdf5","function_name":"H5S__check_internal_consistency"},"5080":{"probe_name":"hdf5","function_name":"H5S__all_unlim_dim"},"5079":{"probe_name":"hdf5","function_name":"H5S__all_shape_same"},"5078":{"probe_name":"hdf5","function_name":"H5S__all_serialize"},"5077":{"probe_name":"hdf5","function_name":"H5S__all_serial_size"},"5076":{"probe_name":"hdf5","function_name":"H5S__all_release"},"5075":{"probe_name":"hdf5","function_name":"H5S__all_project_simple"},"5074":{"probe_name":"hdf5","function_name":"H5S__all_project_scalar"},"5073":{"probe_name":"hdf5","function_name":"H5S__all_offset"},"5072":{"probe_name":"hdf5","function_name":"H5S__all_iter_release"},"5071":{"probe_name":"hdf5","function_name":"H5S__all_iter_next_block"},"5070":{"probe_name":"hdf5","function_name":"H5S__all_iter_next"},"5069":{"probe_name":"hdf5","function_name":"H5S__all_iter_nelmts"},"5068":{"probe_name":"hdf5","function_name":"H5S__all_iter_init"},"5067":{"probe_name":"hdf5","function_name":"H5S__all_iter_has_next_block"},"5066":{"probe_name":"hdf5","function_name":"H5S__all_iter_get_seq_list"},"5065":{"probe_name":"hdf5","function_name":"H5S__all_iter_coords"},"5064":{"probe_name":"hdf5","function_name":"H5S__all_iter_block"},"5063":{"probe_name":"hdf5","function_name":"H5S__all_is_valid"},"5062":{"probe_name":"hdf5","function_name":"H5S__all_is_single"},"5061":{"probe_name":"hdf5","function_name":"H5S__all_is_regular"},"5060":{"probe_name":"hdf5","function_name":"H5S__all_is_contiguous"},"5059":{"probe_name":"hdf5","function_name":"H5S__all_intersect_block"},"5058":{"probe_name":"hdf5","function_name":"H5S__all_deserialize"},"5057":{"probe_name":"hdf5","function_name":"H5S__all_copy"},"5056":{"probe_name":"hdf5","function_name":"H5S__all_bounds"},"5055":{"probe_name":"hdf5","function_name":"H5S__all_adjust_u"},"5054":{"probe_name":"hdf5","function_name":"H5S__all_adjust_s"},"5053":{"probe_name":"hdf5","function_name":"H5SM_type_shared"},"5052":{"probe_name":"hdf5","function_name":"H5SM_try_share"},"5051":{"probe_name":"hdf5","function_name":"H5SM_table_debug"},"5050":{"probe_name":"hdf5","function_name":"H5SM_reconstitute"},"5049":{"probe_name":"hdf5","function_name":"H5SM_list_debug"},"5048":{"probe_name":"hdf5","function_name":"H5SM_init"},"5047":{"probe_name":"hdf5","function_name":"H5SM_ih_size"},"5046":{"probe_name":"hdf5","function_name":"H5SM_get_refcount"},"5045":{"probe_name":"hdf5","function_name":"H5SM_get_info"},"5044":{"probe_name":"hdf5","function_name":"H5SM_get_fheap_addr"},"5043":{"probe_name":"hdf5","function_name":"H5SM_delete"},"5042":{"probe_name":"hdf5","function_name":"H5SM_can_share"},"5041":{"probe_name":"hdf5","function_name":"H5SM__table_free"},"5040":{"probe_name":"hdf5","function_name":"H5SM__read_mesg_fh_cb"},"5039":{"probe_name":"hdf5","function_name":"H5SM__read_mesg"},"5038":{"probe_name":"hdf5","function_name":"H5SM__read_iter_op"},"5037":{"probe_name":"hdf5","function_name":"H5SM__message_encode"},"5036":{"probe_name":"hdf5","function_name":"H5SM__message_decode"},"5035":{"probe_name":"hdf5","function_name":"H5SM__message_compare"},"5034":{"probe_name":"hdf5","function_name":"H5SM__list_free"},"5033":{"probe_name":"hdf5","function_name":"H5SM__incr_ref"},"5032":{"probe_name":"hdf5","function_name":"H5SM__get_refcount_bt2_cb"},"5031":{"probe_name":"hdf5","function_name":"H5SM__get_mesg_count_test"},"5030":{"probe_name":"hdf5","function_name":"H5SM__get_index"},"5029":{"probe_name":"hdf5","function_name":"H5SM__delete_index"},"5028":{"probe_name":"hdf5","function_name":"H5SM__decr_ref"},"5027":{"probe_name":"hdf5","function_name":"H5SM__create_list"},"5026":{"probe_name":"hdf5","function_name":"H5SM__compare_iter_op"},"5025":{"probe_name":"hdf5","function_name":"H5SM__compare_cb"},"5024":{"probe_name":"hdf5","function_name":"H5SM__cache_table_verify_chksum"},"5023":{"probe_name":"hdf5","function_name":"H5SM__cache_table_serialize"},"5022":{"probe_name":"hdf5","function_name":"H5SM__cache_table_image_len"},"5021":{"probe_name":"hdf5","function_name":"H5SM__cache_table_get_initial_load_size"},"5020":{"probe_name":"hdf5","function_name":"H5SM__cache_table_free_icr"},"5019":{"probe_name":"hdf5","function_name":"H5SM__cache_table_deserialize"},"5018":{"probe_name":"hdf5","function_name":"H5SM__cache_list_verify_chksum"},"5017":{"probe_name":"hdf5","function_name":"H5SM__cache_list_serialize"},"5016":{"probe_name":"hdf5","function_name":"H5SM__cache_list_image_len"},"5015":{"probe_name":"hdf5","function_name":"H5SM__cache_list_get_initial_load_size"},"5014":{"probe_name":"hdf5","function_name":"H5SM__cache_list_free_icr"},"5013":{"probe_name":"hdf5","function_name":"H5SM__cache_list_deserialize"},"5012":{"probe_name":"hdf5","function_name":"H5SM__bt2_store"},"5011":{"probe_name":"hdf5","function_name":"H5SM__bt2_dst_context"},"5010":{"probe_name":"hdf5","function_name":"H5SM__bt2_debug"},"5009":{"probe_name":"hdf5","function_name":"H5SM__bt2_crt_context"},"5008":{"probe_name":"hdf5","function_name":"H5SM__bt2_convert_to_list_op"},"5007":{"probe_name":"hdf5","function_name":"H5SL_term_package"},"5006":{"probe_name":"hdf5","function_name":"H5SL_search.cold"},"5005":{"probe_name":"hdf5","function_name":"H5SL_search"},"5004":{"probe_name":"hdf5","function_name":"H5SL_remove_first"},"5003":{"probe_name":"hdf5","function_name":"H5SL_remove.cold"},"5002":{"probe_name":"hdf5","function_name":"H5SL_remove"},"5001":{"probe_name":"hdf5","function_name":"H5SL_release"},"5000":{"probe_name":"hdf5","function_name":"H5SL_prev"},"4999":{"probe_name":"hdf5","function_name":"H5SL_next"},"4998":{"probe_name":"hdf5","function_name":"H5SL_less"},"4997":{"probe_name":"hdf5","function_name":"H5SL_last"},"4996":{"probe_name":"hdf5","function_name":"H5SL_iterate"},"4995":{"probe_name":"hdf5","function_name":"H5SL_item"},"4994":{"probe_name":"hdf5","function_name":"H5SL_insert"},"4993":{"probe_name":"hdf5","function_name":"H5SL_init"},"4992":{"probe_name":"hdf5","function_name":"H5SL_greater"},"4991":{"probe_name":"hdf5","function_name":"H5SL_free"},"4990":{"probe_name":"hdf5","function_name":"H5SL_first"},"4989":{"probe_name":"hdf5","function_name":"H5SL_find.cold"},"4988":{"probe_name":"hdf5","function_name":"H5SL_find"},"4987":{"probe_name":"hdf5","function_name":"H5SL_destroy"},"4986":{"probe_name":"hdf5","function_name":"H5SL_create"},"4985":{"probe_name":"hdf5","function_name":"H5SL_count"},"4984":{"probe_name":"hdf5","function_name":"H5SL_close"},"4983":{"probe_name":"hdf5","function_name":"H5SL_below"},"4982":{"probe_name":"hdf5","function_name":"H5SL__release_common"},"4981":{"probe_name":"hdf5","function_name":"H5SL__insert_common.cold"},"4980":{"probe_name":"hdf5","function_name":"H5SL__insert_common"},"4979":{"probe_name":"hdf5","function_name":"H5Ropen_region_async"},"4978":{"probe_name":"hdf5","function_name":"H5Ropen_region"},"4977":{"probe_name":"hdf5","function_name":"H5Ropen_object_async"},"4976":{"probe_name":"hdf5","function_name":"H5Ropen_object"},"4975":{"probe_name":"hdf5","function_name":"H5Ropen_attr_async"},"4974":{"probe_name":"hdf5","function_name":"H5Ropen_attr"},"4973":{"probe_name":"hdf5","function_name":"H5Rget_type"},"4972":{"probe_name":"hdf5","function_name":"H5Rget_region"},"4971":{"probe_name":"hdf5","function_name":"H5Rget_obj_type3"},"4970":{"probe_name":"hdf5","function_name":"H5Rget_obj_type2"},"4969":{"probe_name":"hdf5","function_name":"H5Rget_obj_type1"},"4968":{"probe_name":"hdf5","function_name":"H5Rget_obj_name"},"4967":{"probe_name":"hdf5","function_name":"H5Rget_name"},"4966":{"probe_name":"hdf5","function_name":"H5Rget_file_name"},"4965":{"probe_name":"hdf5","function_name":"H5Rget_attr_name"},"4964":{"probe_name":"hdf5","function_name":"H5Requal"},"4963":{"probe_name":"hdf5","function_name":"H5Rdestroy"},"4962":{"probe_name":"hdf5","function_name":"H5Rdereference2"},"4961":{"probe_name":"hdf5","function_name":"H5Rdereference1"},"4960":{"probe_name":"hdf5","function_name":"H5Rcreate_region"},"4959":{"probe_name":"hdf5","function_name":"H5Rcreate_object"},"4958":{"probe_name":"hdf5","function_name":"H5Rcreate_attr"},"4957":{"probe_name":"hdf5","function_name":"H5Rcreate"},"4956":{"probe_name":"hdf5","function_name":"H5Rcopy"},"4955":{"probe_name":"hdf5","function_name":"H5R_init"},"4954":{"probe_name":"hdf5","function_name":"H5R__set_obj_token"},"4953":{"probe_name":"hdf5","function_name":"H5R__set_loc_id"},"4952":{"probe_name":"hdf5","function_name":"H5R__reopen_file"},"4951":{"probe_name":"hdf5","function_name":"H5R__open_region_api_common"},"4950":{"probe_name":"hdf5","function_name":"H5R__open_object_api_common"},"4949":{"probe_name":"hdf5","function_name":"H5R__open_attr_api_common"},"4948":{"probe_name":"hdf5","function_name":"H5R__get_type"},"4947":{"probe_name":"hdf5","function_name":"H5R__get_region"},"4946":{"probe_name":"hdf5","function_name":"H5R__get_obj_token"},"4945":{"probe_name":"hdf5","function_name":"H5R__get_loc_id"},"4944":{"probe_name":"hdf5","function_name":"H5R__get_file_name"},"4943":{"probe_name":"hdf5","function_name":"H5R__get_attr_name"},"4942":{"probe_name":"hdf5","function_name":"H5R__equal"},"4941":{"probe_name":"hdf5","function_name":"H5R__encode_token_obj_compat"},"4940":{"probe_name":"hdf5","function_name":"H5R__encode_heap"},"4939":{"probe_name":"hdf5","function_name":"H5R__encode"},"4938":{"probe_name":"hdf5","function_name":"H5R__destroy"},"4937":{"probe_name":"hdf5","function_name":"H5R__decode_token_region_compat"},"4936":{"probe_name":"hdf5","function_name":"H5R__decode_token_obj_compat"},"4935":{"probe_name":"hdf5","function_name":"H5R__decode_token_compat"},"4934":{"probe_name":"hdf5","function_name":"H5R__decode_string"},"4933":{"probe_name":"hdf5","function_name":"H5R__decode_heap"},"4932":{"probe_name":"hdf5","function_name":"H5R__decode"},"4931":{"probe_name":"hdf5","function_name":"H5R__create_region"},"4930":{"probe_name":"hdf5","function_name":"H5R__create_object"},"4929":{"probe_name":"hdf5","function_name":"H5R__create_attr"},"4928":{"probe_name":"hdf5","function_name":"H5R__copy"},"4927":{"probe_name":"hdf5","function_name":"H5RS_wrap"},"4926":{"probe_name":"hdf5","function_name":"H5RS_len"},"4925":{"probe_name":"hdf5","function_name":"H5RS_incr"},"4924":{"probe_name":"hdf5","function_name":"H5RS_get_str"},"4923":{"probe_name":"hdf5","function_name":"H5RS_get_count"},"4922":{"probe_name":"hdf5","function_name":"H5RS_dup"},"4921":{"probe_name":"hdf5","function_name":"H5RS_decr"},"4920":{"probe_name":"hdf5","function_name":"H5RS_create"},"4919":{"probe_name":"hdf5","function_name":"H5RS_cmp"},"4918":{"probe_name":"hdf5","function_name":"H5RS_asprintf_cat"},"4917":{"probe_name":"hdf5","function_name":"H5RS_aputc"},"4916":{"probe_name":"hdf5","function_name":"H5RS_ancat"},"4915":{"probe_name":"hdf5","function_name":"H5RS_acat"},"4914":{"probe_name":"hdf5","function_name":"H5RS__resize_for_append.part.0"},"4913":{"probe_name":"hdf5","function_name":"H5RS__prepare_for_append"},"4912":{"probe_name":"hdf5","function_name":"H5Punregister"},"4911":{"probe_name":"hdf5","function_name":"H5Pset_vol"},"4910":{"probe_name":"hdf5","function_name":"H5Pset_vlen_mem_manager"},"4909":{"probe_name":"hdf5","function_name":"H5Pset_virtual_view"},"4908":{"probe_name":"hdf5","function_name":"H5Pset_virtual_printf_gap"},"4907":{"probe_name":"hdf5","function_name":"H5Pset_virtual_prefix"},"4906":{"probe_name":"hdf5","function_name":"H5Pset_virtual"},"4905":{"probe_name":"hdf5","function_name":"H5Pset_userblock"},"4904":{"probe_name":"hdf5","function_name":"H5Pset_type_conv_cb"},"4903":{"probe_name":"hdf5","function_name":"H5Pset_szip"},"4902":{"probe_name":"hdf5","function_name":"H5Pset_sym_k"},"4901":{"probe_name":"hdf5","function_name":"H5Pset_small_data_block_size"},"4900":{"probe_name":"hdf5","function_name":"H5Pset_sizes"},"4899":{"probe_name":"hdf5","function_name":"H5Pset_sieve_buf_size"},"4898":{"probe_name":"hdf5","function_name":"H5Pset_shuffle"},"4897":{"probe_name":"hdf5","function_name":"H5Pset_shared_mesg_phase_change"},"4896":{"probe_name":"hdf5","function_name":"H5Pset_shared_mesg_nindexes"},"4895":{"probe_name":"hdf5","function_name":"H5Pset_shared_mesg_index"},"4894":{"probe_name":"hdf5","function_name":"H5Pset_selection_io"},"4893":{"probe_name":"hdf5","function_name":"H5Pset_scaleoffset"},"4892":{"probe_name":"hdf5","function_name":"H5Pset_relax_file_integrity_checks"},"4891":{"probe_name":"hdf5","function_name":"H5Pset_preserve"},"4890":{"probe_name":"hdf5","function_name":"H5Pset_page_buffer_size"},"4889":{"probe_name":"hdf5","function_name":"H5Pset_object_flush_cb"},"4888":{"probe_name":"hdf5","function_name":"H5Pset_obj_track_times"},"4887":{"probe_name":"hdf5","function_name":"H5Pset_nlinks"},"4886":{"probe_name":"hdf5","function_name":"H5Pset_nbit"},"4885":{"probe_name":"hdf5","function_name":"H5Pset_multi_type"},"4884":{"probe_name":"hdf5","function_name":"H5Pset_mpi_params"},"4883":{"probe_name":"hdf5","function_name":"H5Pset_modify_write_buf"},"4882":{"probe_name":"hdf5","function_name":"H5Pset_metadata_read_attempts"},"4881":{"probe_name":"hdf5","function_name":"H5Pset_meta_block_size"},"4880":{"probe_name":"hdf5","function_name":"H5Pset_mdc_log_options"},"4879":{"probe_name":"hdf5","function_name":"H5Pset_mdc_image_config"},"4878":{"probe_name":"hdf5","function_name":"H5Pset_mdc_config"},"4877":{"probe_name":"hdf5","function_name":"H5Pset_mcdt_search_cb"},"4876":{"probe_name":"hdf5","function_name":"H5Pset_local_heap_size_hint"},"4875":{"probe_name":"hdf5","function_name":"H5Pset_link_phase_change"},"4874":{"probe_name":"hdf5","function_name":"H5Pset_link_creation_order"},"4873":{"probe_name":"hdf5","function_name":"H5Pset_libver_bounds"},"4872":{"probe_name":"hdf5","function_name":"H5Pset_layout"},"4871":{"probe_name":"hdf5","function_name":"H5Pset_istore_k"},"4870":{"probe_name":"hdf5","function_name":"H5Pset_hyper_vector_size"},"4869":{"probe_name":"hdf5","function_name":"H5Pset_gc_references"},"4868":{"probe_name":"hdf5","function_name":"H5Pset_fletcher32"},"4867":{"probe_name":"hdf5","function_name":"H5Pset_filter_callback"},"4866":{"probe_name":"hdf5","function_name":"H5Pset_filter"},"4865":{"probe_name":"hdf5","function_name":"H5Pset_fill_value"},"4864":{"probe_name":"hdf5","function_name":"H5Pset_fill_time"},"4863":{"probe_name":"hdf5","function_name":"H5Pset_file_space_strategy"},"4862":{"probe_name":"hdf5","function_name":"H5Pset_file_space_page_size"},"4861":{"probe_name":"hdf5","function_name":"H5Pset_file_space"},"4860":{"probe_name":"hdf5","function_name":"H5Pset_file_locking"},"4859":{"probe_name":"hdf5","function_name":"H5Pset_file_image_callbacks"},"4858":{"probe_name":"hdf5","function_name":"H5Pset_file_image"},"4857":{"probe_name":"hdf5","function_name":"H5Pset_fclose_degree"},"4856":{"probe_name":"hdf5","function_name":"H5Pset_fapl_stdio"},"4855":{"probe_name":"hdf5","function_name":"H5Pset_fapl_splitter"},"4854":{"probe_name":"hdf5","function_name":"H5Pset_fapl_split"},"4853":{"probe_name":"hdf5","function_name":"H5Pset_fapl_sec2"},"4852":{"probe_name":"hdf5","function_name":"H5Pset_fapl_onion"},"4851":{"probe_name":"hdf5","function_name":"H5Pset_fapl_multi"},"4850":{"probe_name":"hdf5","function_name":"H5Pset_fapl_mpio"},"4849":{"probe_name":"hdf5","function_name":"H5Pset_fapl_log"},"4848":{"probe_name":"hdf5","function_name":"H5Pset_fapl_family"},"4847":{"probe_name":"hdf5","function_name":"H5Pset_fapl_core"},"4846":{"probe_name":"hdf5","function_name":"H5Pset_family_offset"},"4845":{"probe_name":"hdf5","function_name":"H5Pset_external"},"4844":{"probe_name":"hdf5","function_name":"H5Pset_evict_on_close"},"4843":{"probe_name":"hdf5","function_name":"H5Pset_est_link_info"},"4842":{"probe_name":"hdf5","function_name":"H5Pset_elink_prefix"},"4841":{"probe_name":"hdf5","function_name":"H5Pset_elink_file_cache_size"},"4840":{"probe_name":"hdf5","function_name":"H5Pset_elink_fapl"},"4839":{"probe_name":"hdf5","function_name":"H5Pset_elink_cb"},"4838":{"probe_name":"hdf5","function_name":"H5Pset_elink_acc_flags"},"4837":{"probe_name":"hdf5","function_name":"H5Pset_efile_prefix"},"4836":{"probe_name":"hdf5","function_name":"H5Pset_edc_check"},"4835":{"probe_name":"hdf5","function_name":"H5Pset_dxpl_mpio_collective_opt"},"4834":{"probe_name":"hdf5","function_name":"H5Pset_dxpl_mpio_chunk_opt_ratio"},"4833":{"probe_name":"hdf5","function_name":"H5Pset_dxpl_mpio_chunk_opt_num"},"4832":{"probe_name":"hdf5","function_name":"H5Pset_dxpl_mpio_chunk_opt"},"4831":{"probe_name":"hdf5","function_name":"H5Pset_dxpl_mpio"},"4830":{"probe_name":"hdf5","function_name":"H5Pset_dset_no_attrs_hint"},"4829":{"probe_name":"hdf5","function_name":"H5Pset_driver_by_value"},"4828":{"probe_name":"hdf5","function_name":"H5Pset_driver_by_name"},"4827":{"probe_name":"hdf5","function_name":"H5Pset_driver"},"4826":{"probe_name":"hdf5","function_name":"H5Pset_deflate"},"4825":{"probe_name":"hdf5","function_name":"H5Pset_dataset_io_hyperslab_selection"},"4824":{"probe_name":"hdf5","function_name":"H5Pset_data_transform"},"4823":{"probe_name":"hdf5","function_name":"H5Pset_create_intermediate_group"},"4822":{"probe_name":"hdf5","function_name":"H5Pset_core_write_tracking"},"4821":{"probe_name":"hdf5","function_name":"H5Pset_copy_object"},"4820":{"probe_name":"hdf5","function_name":"H5Pset_coll_metadata_write"},"4819":{"probe_name":"hdf5","function_name":"H5Pset_chunk_opts"},"4818":{"probe_name":"hdf5","function_name":"H5Pset_chunk_cache"},"4817":{"probe_name":"hdf5","function_name":"H5Pset_chunk"},"4816":{"probe_name":"hdf5","function_name":"H5Pset_char_encoding"},"4815":{"probe_name":"hdf5","function_name":"H5Pset_cache"},"4814":{"probe_name":"hdf5","function_name":"H5Pset_buffer"},"4813":{"probe_name":"hdf5","function_name":"H5Pset_btree_ratios"},"4812":{"probe_name":"hdf5","function_name":"H5Pset_attr_phase_change"},"4811":{"probe_name":"hdf5","function_name":"H5Pset_attr_creation_order"},"4810":{"probe_name":"hdf5","function_name":"H5Pset_append_flush"},"4809":{"probe_name":"hdf5","function_name":"H5Pset_alloc_time"},"4808":{"probe_name":"hdf5","function_name":"H5Pset_all_coll_metadata_ops"},"4807":{"probe_name":"hdf5","function_name":"H5Pset_alignment"},"4806":{"probe_name":"hdf5","function_name":"H5Pset"},"4805":{"probe_name":"hdf5","function_name":"H5Premove_filter"},"4804":{"probe_name":"hdf5","function_name":"H5Premove"},"4803":{"probe_name":"hdf5","function_name":"H5Pregister2"},"4802":{"probe_name":"hdf5","function_name":"H5Pregister1"},"4801":{"probe_name":"hdf5","function_name":"H5Pmodify_filter"},"4800":{"probe_name":"hdf5","function_name":"H5Piterate"},"4799":{"probe_name":"hdf5","function_name":"H5Pisa_class"},"4798":{"probe_name":"hdf5","function_name":"H5Pinsert2"},"4797":{"probe_name":"hdf5","function_name":"H5Pinsert1"},"4796":{"probe_name":"hdf5","function_name":"H5Pget_vol_info"},"4795":{"probe_name":"hdf5","function_name":"H5Pget_vol_id"},"4794":{"probe_name":"hdf5","function_name":"H5Pget_vol_cap_flags"},"4793":{"probe_name":"hdf5","function_name":"H5Pget_vlen_mem_manager"},"4792":{"probe_name":"hdf5","function_name":"H5Pget_virtual_vspace"},"4791":{"probe_name":"hdf5","function_name":"H5Pget_virtual_view"},"4790":{"probe_name":"hdf5","function_name":"H5Pget_virtual_srcspace"},"4789":{"probe_name":"hdf5","function_name":"H5Pget_virtual_printf_gap"},"4788":{"probe_name":"hdf5","function_name":"H5Pget_virtual_prefix"},"4787":{"probe_name":"hdf5","function_name":"H5Pget_virtual_filename"},"4786":{"probe_name":"hdf5","function_name":"H5Pget_virtual_dsetname"},"4785":{"probe_name":"hdf5","function_name":"H5Pget_virtual_count"},"4784":{"probe_name":"hdf5","function_name":"H5Pget_version"},"4783":{"probe_name":"hdf5","function_name":"H5Pget_userblock"},"4782":{"probe_name":"hdf5","function_name":"H5Pget_type_conv_cb"},"4781":{"probe_name":"hdf5","function_name":"H5Pget_sym_k"},"4780":{"probe_name":"hdf5","function_name":"H5Pget_small_data_block_size"},"4779":{"probe_name":"hdf5","function_name":"H5Pget_sizes"},"4778":{"probe_name":"hdf5","function_name":"H5Pget_size"},"4777":{"probe_name":"hdf5","function_name":"H5Pget_sieve_buf_size"},"4776":{"probe_name":"hdf5","function_name":"H5Pget_shared_mesg_phase_change"},"4775":{"probe_name":"hdf5","function_name":"H5Pget_shared_mesg_nindexes"},"4774":{"probe_name":"hdf5","function_name":"H5Pget_shared_mesg_index"},"4773":{"probe_name":"hdf5","function_name":"H5Pget_selection_io"},"4772":{"probe_name":"hdf5","function_name":"H5Pget_relax_file_integrity_checks"},"4771":{"probe_name":"hdf5","function_name":"H5Pget_preserve"},"4770":{"probe_name":"hdf5","function_name":"H5Pget_page_buffer_size"},"4769":{"probe_name":"hdf5","function_name":"H5Pget_object_flush_cb"},"4768":{"probe_name":"hdf5","function_name":"H5Pget_obj_track_times"},"4767":{"probe_name":"hdf5","function_name":"H5Pget_nprops"},"4766":{"probe_name":"hdf5","function_name":"H5Pget_no_selection_io_cause"},"4765":{"probe_name":"hdf5","function_name":"H5Pget_nlinks"},"4764":{"probe_name":"hdf5","function_name":"H5Pget_nfilters"},"4763":{"probe_name":"hdf5","function_name":"H5Pget_multi_type"},"4762":{"probe_name":"hdf5","function_name":"H5Pget_mpio_no_collective_cause"},"4761":{"probe_name":"hdf5","function_name":"H5Pget_mpio_actual_io_mode"},"4760":{"probe_name":"hdf5","function_name":"H5Pget_mpio_actual_chunk_opt_mode"},"4759":{"probe_name":"hdf5","function_name":"H5Pget_mpi_params"},"4758":{"probe_name":"hdf5","function_name":"H5Pget_modify_write_buf"},"4757":{"probe_name":"hdf5","function_name":"H5Pget_metadata_read_attempts"},"4756":{"probe_name":"hdf5","function_name":"H5Pget_meta_block_size"},"4755":{"probe_name":"hdf5","function_name":"H5Pget_mdc_log_options"},"4754":{"probe_name":"hdf5","function_name":"H5Pget_mdc_image_config"},"4753":{"probe_name":"hdf5","function_name":"H5Pget_mdc_config"},"4752":{"probe_name":"hdf5","function_name":"H5Pget_mcdt_search_cb"},"4751":{"probe_name":"hdf5","function_name":"H5Pget_local_heap_size_hint"},"4750":{"probe_name":"hdf5","function_name":"H5Pget_link_phase_change"},"4749":{"probe_name":"hdf5","function_name":"H5Pget_link_creation_order"},"4748":{"probe_name":"hdf5","function_name":"H5Pget_libver_bounds"},"4747":{"probe_name":"hdf5","function_name":"H5Pget_layout"},"4746":{"probe_name":"hdf5","function_name":"H5Pget_istore_k"},"4745":{"probe_name":"hdf5","function_name":"H5Pget_hyper_vector_size"},"4744":{"probe_name":"hdf5","function_name":"H5Pget_gc_references"},"4743":{"probe_name":"hdf5","function_name":"H5Pget_filter_by_id2"},"4742":{"probe_name":"hdf5","function_name":"H5Pget_filter_by_id1"},"4741":{"probe_name":"hdf5","function_name":"H5Pget_filter2"},"4740":{"probe_name":"hdf5","function_name":"H5Pget_filter1"},"4739":{"probe_name":"hdf5","function_name":"H5Pget_fill_value"},"4738":{"probe_name":"hdf5","function_name":"H5Pget_fill_time"},"4737":{"probe_name":"hdf5","function_name":"H5Pget_file_space_strategy"},"4736":{"probe_name":"hdf5","function_name":"H5Pget_file_space_page_size"},"4735":{"probe_name":"hdf5","function_name":"H5Pget_file_space"},"4734":{"probe_name":"hdf5","function_name":"H5Pget_file_locking"},"4733":{"probe_name":"hdf5","function_name":"H5Pget_file_image_callbacks"},"4732":{"probe_name":"hdf5","function_name":"H5Pget_file_image"},"4731":{"probe_name":"hdf5","function_name":"H5Pget_fclose_degree"},"4730":{"probe_name":"hdf5","function_name":"H5Pget_fapl_splitter"},"4729":{"probe_name":"hdf5","function_name":"H5Pget_fapl_onion"},"4728":{"probe_name":"hdf5","function_name":"H5Pget_fapl_multi"},"4727":{"probe_name":"hdf5","function_name":"H5Pget_fapl_mpio"},"4726":{"probe_name":"hdf5","function_name":"H5Pget_fapl_family"},"4725":{"probe_name":"hdf5","function_name":"H5Pget_fapl_core"},"4724":{"probe_name":"hdf5","function_name":"H5Pget_family_offset"},"4723":{"probe_name":"hdf5","function_name":"H5Pget_external_count"},"4722":{"probe_name":"hdf5","function_name":"H5Pget_external"},"4721":{"probe_name":"hdf5","function_name":"H5Pget_evict_on_close"},"4720":{"probe_name":"hdf5","function_name":"H5Pget_est_link_info"},"4719":{"probe_name":"hdf5","function_name":"H5Pget_elink_prefix"},"4718":{"probe_name":"hdf5","function_name":"H5Pget_elink_file_cache_size"},"4717":{"probe_name":"hdf5","function_name":"H5Pget_elink_fapl"},"4716":{"probe_name":"hdf5","function_name":"H5Pget_elink_cb"},"4715":{"probe_name":"hdf5","function_name":"H5Pget_elink_acc_flags"},"4714":{"probe_name":"hdf5","function_name":"H5Pget_efile_prefix"},"4713":{"probe_name":"hdf5","function_name":"H5Pget_edc_check"},"4712":{"probe_name":"hdf5","function_name":"H5Pget_dxpl_mpio"},"4711":{"probe_name":"hdf5","function_name":"H5Pget_dset_no_attrs_hint"},"4710":{"probe_name":"hdf5","function_name":"H5Pget_driver_info"},"4709":{"probe_name":"hdf5","function_name":"H5Pget_driver_config_str"},"4708":{"probe_name":"hdf5","function_name":"H5Pget_driver"},"4707":{"probe_name":"hdf5","function_name":"H5Pget_data_transform"},"4706":{"probe_name":"hdf5","function_name":"H5Pget_create_intermediate_group"},"4705":{"probe_name":"hdf5","function_name":"H5Pget_core_write_tracking"},"4704":{"probe_name":"hdf5","function_name":"H5Pget_copy_object"},"4703":{"probe_name":"hdf5","function_name":"H5Pget_coll_metadata_write"},"4702":{"probe_name":"hdf5","function_name":"H5Pget_class_parent"},"4701":{"probe_name":"hdf5","function_name":"H5Pget_class_name"},"4700":{"probe_name":"hdf5","function_name":"H5Pget_class"},"4699":{"probe_name":"hdf5","function_name":"H5Pget_chunk_opts"},"4698":{"probe_name":"hdf5","function_name":"H5Pget_chunk_cache"},"4697":{"probe_name":"hdf5","function_name":"H5Pget_chunk"},"4696":{"probe_name":"hdf5","function_name":"H5Pget_char_encoding"},"4695":{"probe_name":"hdf5","function_name":"H5Pget_cache"},"4694":{"probe_name":"hdf5","function_name":"H5Pget_buffer"},"4693":{"probe_name":"hdf5","function_name":"H5Pget_btree_ratios"},"4692":{"probe_name":"hdf5","function_name":"H5Pget_attr_phase_change"},"4691":{"probe_name":"hdf5","function_name":"H5Pget_attr_creation_order"},"4690":{"probe_name":"hdf5","function_name":"H5Pget_append_flush"},"4689":{"probe_name":"hdf5","function_name":"H5Pget_alloc_time"},"4688":{"probe_name":"hdf5","function_name":"H5Pget_all_coll_metadata_ops"},"4687":{"probe_name":"hdf5","function_name":"H5Pget_alignment"},"4686":{"probe_name":"hdf5","function_name":"H5Pget_actual_selection_io_mode"},"4685":{"probe_name":"hdf5","function_name":"H5Pget"},"4684":{"probe_name":"hdf5","function_name":"H5Pfree_merge_committed_dtype_paths"},"4683":{"probe_name":"hdf5","function_name":"H5Pfill_value_defined"},"4682":{"probe_name":"hdf5","function_name":"H5Pexist"},"4681":{"probe_name":"hdf5","function_name":"H5Pequal"},"4680":{"probe_name":"hdf5","function_name":"H5Pencode2"},"4679":{"probe_name":"hdf5","function_name":"H5Pencode1"},"4678":{"probe_name":"hdf5","function_name":"H5Pdecode"},"4677":{"probe_name":"hdf5","function_name":"H5Pcreate_class"},"4676":{"probe_name":"hdf5","function_name":"H5Pcreate"},"4675":{"probe_name":"hdf5","function_name":"H5Pcopy_prop"},"4674":{"probe_name":"hdf5","function_name":"H5Pcopy"},"4673":{"probe_name":"hdf5","function_name":"H5Pclose_class"},"4672":{"probe_name":"hdf5","function_name":"H5Pclose"},"4671":{"probe_name":"hdf5","function_name":"H5Pall_filters_avail"},"4670":{"probe_name":"hdf5","function_name":"H5Padd_merge_committed_dtype_path"},"4669":{"probe_name":"hdf5","function_name":"H5P_term_package"},"4668":{"probe_name":"hdf5","function_name":"H5P_set_vol"},"4667":{"probe_name":"hdf5","function_name":"H5P_set_vlen_mem_manager"},"4666":{"probe_name":"hdf5","function_name":"H5P_set_driver_by_value"},"4665":{"probe_name":"hdf5","function_name":"H5P_set_driver_by_name"},"4664":{"probe_name":"hdf5","function_name":"H5P_set_driver"},"4663":{"probe_name":"hdf5","function_name":"H5P_set"},"4662":{"probe_name":"hdf5","function_name":"H5P_reset_vol_class"},"4661":{"probe_name":"hdf5","function_name":"H5P_remove"},"4660":{"probe_name":"hdf5","function_name":"H5P_poke"},"4659":{"probe_name":"hdf5","function_name":"H5P_peek_driver_info"},"4658":{"probe_name":"hdf5","function_name":"H5P_peek_driver_config_str"},"4657":{"probe_name":"hdf5","function_name":"H5P_peek_driver"},"4656":{"probe_name":"hdf5","function_name":"H5P_peek"},"4655":{"probe_name":"hdf5","function_name":"H5P_object_verify"},"4654":{"probe_name":"hdf5","function_name":"H5P_modify_filter"},"4653":{"probe_name":"hdf5","function_name":"H5P_isa_class"},"4652":{"probe_name":"hdf5","function_name":"H5P_is_fill_value_defined"},"4651":{"probe_name":"hdf5","function_name":"H5P_insert"},"4650":{"probe_name":"hdf5","function_name":"H5P_init_phase2"},"4649":{"probe_name":"hdf5","function_name":"H5P_init_phase1"},"4648":{"probe_name":"hdf5","function_name":"H5P_ignore_cmp"},"4647":{"probe_name":"hdf5","function_name":"H5P_get_plist_id"},"4646":{"probe_name":"hdf5","function_name":"H5P_get_nprops_pclass"},"4645":{"probe_name":"hdf5","function_name":"H5P_get_filter_by_id"},"4644":{"probe_name":"hdf5","function_name":"H5P_get_fill_value"},"4643":{"probe_name":"hdf5","function_name":"H5P_get_class_name"},"4642":{"probe_name":"hdf5","function_name":"H5P_get_class"},"4641":{"probe_name":"hdf5","function_name":"H5P_get"},"4640":{"probe_name":"hdf5","function_name":"H5P_filter_in_pline"},"4639":{"probe_name":"hdf5","function_name":"H5P_fill_value_defined"},"4638":{"probe_name":"hdf5","function_name":"H5P_fill_value_cmp"},"4637":{"probe_name":"hdf5","function_name":"H5P_exist_plist"},"4636":{"probe_name":"hdf5","function_name":"H5P_create_id"},"4635":{"probe_name":"hdf5","function_name":"H5P_copy_plist"},"4634":{"probe_name":"hdf5","function_name":"H5P_close"},"4633":{"probe_name":"hdf5","function_name":"H5P_class_isa"},"4632":{"probe_name":"hdf5","function_name":"H5P__unregister"},"4631":{"probe_name":"hdf5","function_name":"H5P__strcrt_reg_prop"},"4630":{"probe_name":"hdf5","function_name":"H5P__strcrt_char_encoding_enc"},"4629":{"probe_name":"hdf5","function_name":"H5P__strcrt_char_encoding_dec"},"4628":{"probe_name":"hdf5","function_name":"H5P__set_layout"},"4627":{"probe_name":"hdf5","function_name":"H5P__register_real"},"4626":{"probe_name":"hdf5","function_name":"H5P__register"},"4625":{"probe_name":"hdf5","function_name":"H5P__open_class_path_test"},"4624":{"probe_name":"hdf5","function_name":"H5P__open_class_path_cb"},"4623":{"probe_name":"hdf5","function_name":"H5P__open_class_path"},"4622":{"probe_name":"hdf5","function_name":"H5P__ocrt_reg_prop"},"4621":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_set"},"4620":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_get"},"4619":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_enc"},"4618":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_del"},"4617":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_dec"},"4616":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_copy"},"4615":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_cmp"},"4614":{"probe_name":"hdf5","function_name":"H5P__ocrt_pipeline_close"},"4613":{"probe_name":"hdf5","function_name":"H5P__ocpy_reg_prop"},"4612":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_set"},"4611":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_get"},"4610":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_enc.cold"},"4609":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_enc"},"4608":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_del"},"4607":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_dec"},"4606":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_copy"},"4605":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_cmp"},"4604":{"probe_name":"hdf5","function_name":"H5P__ocpy_merge_comm_dt_list_close"},"4603":{"probe_name":"hdf5","function_name":"H5P__new_plist_of_type"},"4602":{"probe_name":"hdf5","function_name":"H5P__mcrt_reg_prop"},"4601":{"probe_name":"hdf5","function_name":"H5P__macc_reg_prop"},"4600":{"probe_name":"hdf5","function_name":"H5P__lcrt_reg_prop"},"4599":{"probe_name":"hdf5","function_name":"H5P__lacc_reg_prop"},"4598":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_set"},"4597":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_get"},"4596":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_enc"},"4595":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_del"},"4594":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_dec"},"4593":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_copy"},"4592":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_cmp"},"4591":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_pref_close"},"4590":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_set"},"4589":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_get"},"4588":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_enc"},"4587":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_del"},"4586":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_dec"},"4585":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_copy"},"4584":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_cmp"},"4583":{"probe_name":"hdf5","function_name":"H5P__lacc_elink_fapl_close"},"4582":{"probe_name":"hdf5","function_name":"H5P__iterate_plist_pclass_cb"},"4581":{"probe_name":"hdf5","function_name":"H5P__iterate_plist_cb"},"4580":{"probe_name":"hdf5","function_name":"H5P__iterate_plist"},"4579":{"probe_name":"hdf5","function_name":"H5P__iterate_pclass_cb"},"4578":{"probe_name":"hdf5","function_name":"H5P__iterate_pclass"},"4577":{"probe_name":"hdf5","function_name":"H5P__iterate_cb"},"4576":{"probe_name":"hdf5","function_name":"H5P__get_size_plist"},"4575":{"probe_name":"hdf5","function_name":"H5P__get_size_pclass"},"4574":{"probe_name":"hdf5","function_name":"H5P__get_nprops_plist"},"4573":{"probe_name":"hdf5","function_name":"H5P__get_filter"},"4572":{"probe_name":"hdf5","function_name":"H5P__get_class_path_test"},"4571":{"probe_name":"hdf5","function_name":"H5P__get_class_path.localalias"},"4570":{"probe_name":"hdf5","function_name":"H5P__get_class_path"},"4569":{"probe_name":"hdf5","function_name":"H5P__get_class_parent"},"4568":{"probe_name":"hdf5","function_name":"H5P__get_cb"},"4567":{"probe_name":"hdf5","function_name":"H5P__gcrt_reg_prop"},"4566":{"probe_name":"hdf5","function_name":"H5P__gcrt_link_info_enc"},"4565":{"probe_name":"hdf5","function_name":"H5P__gcrt_link_info_dec"},"4564":{"probe_name":"hdf5","function_name":"H5P__gcrt_group_info_enc"},"4563":{"probe_name":"hdf5","function_name":"H5P__gcrt_group_info_dec"},"4562":{"probe_name":"hdf5","function_name":"H5P__free_prop_cb"},"4561":{"probe_name":"hdf5","function_name":"H5P__free_del_name_cb"},"4560":{"probe_name":"hdf5","function_name":"H5P__fmnt_reg_prop"},"4559":{"probe_name":"hdf5","function_name":"H5P__find_prop_plist"},"4558":{"probe_name":"hdf5","function_name":"H5P__fcrt_shmsg_index_types_enc"},"4557":{"probe_name":"hdf5","function_name":"H5P__fcrt_shmsg_index_types_dec"},"4556":{"probe_name":"hdf5","function_name":"H5P__fcrt_shmsg_index_minsize_enc"},"4555":{"probe_name":"hdf5","function_name":"H5P__fcrt_shmsg_index_minsize_dec"},"4554":{"probe_name":"hdf5","function_name":"H5P__fcrt_reg_prop"},"4553":{"probe_name":"hdf5","function_name":"H5P__fcrt_fspace_strategy_enc"},"4552":{"probe_name":"hdf5","function_name":"H5P__fcrt_fspace_strategy_dec"},"4551":{"probe_name":"hdf5","function_name":"H5P__fcrt_btree_rank_enc"},"4550":{"probe_name":"hdf5","function_name":"H5P__fcrt_btree_rank_dec"},"4549":{"probe_name":"hdf5","function_name":"H5P__facc_vol_set"},"4548":{"probe_name":"hdf5","function_name":"H5P__facc_vol_get"},"4547":{"probe_name":"hdf5","function_name":"H5P__facc_vol_del"},"4546":{"probe_name":"hdf5","function_name":"H5P__facc_vol_create"},"4545":{"probe_name":"hdf5","function_name":"H5P__facc_vol_copy"},"4544":{"probe_name":"hdf5","function_name":"H5P__facc_vol_cmp"},"4543":{"probe_name":"hdf5","function_name":"H5P__facc_vol_close"},"4542":{"probe_name":"hdf5","function_name":"H5P__facc_set_def_driver"},"4541":{"probe_name":"hdf5","function_name":"H5P__facc_reg_prop"},"4540":{"probe_name":"hdf5","function_name":"H5P__facc_multi_type_enc"},"4539":{"probe_name":"hdf5","function_name":"H5P__facc_multi_type_dec"},"4538":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_info_set"},"4537":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_info_get"},"4536":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_info_del"},"4535":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_info_copy"},"4534":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_info_cmp"},"4533":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_info_close"},"4532":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_comm_set"},"4531":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_comm_get"},"4530":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_comm_del"},"4529":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_comm_copy"},"4528":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_comm_cmp"},"4527":{"probe_name":"hdf5","function_name":"H5P__facc_mpi_comm_close"},"4526":{"probe_name":"hdf5","function_name":"H5P__facc_mdc_log_location_enc"},"4525":{"probe_name":"hdf5","function_name":"H5P__facc_mdc_log_location_del"},"4524":{"probe_name":"hdf5","function_name":"H5P__facc_mdc_log_location_dec"},"4523":{"probe_name":"hdf5","function_name":"H5P__facc_mdc_log_location_copy"},"4522":{"probe_name":"hdf5","function_name":"H5P__facc_mdc_log_location_cmp"},"4521":{"probe_name":"hdf5","function_name":"H5P__facc_mdc_log_location_close"},"4520":{"probe_name":"hdf5","function_name":"H5P__facc_libver_type_enc"},"4519":{"probe_name":"hdf5","function_name":"H5P__facc_libver_type_dec"},"4518":{"probe_name":"hdf5","function_name":"H5P__facc_file_image_info_set"},"4517":{"probe_name":"hdf5","function_name":"H5P__facc_file_image_info_get"},"4516":{"probe_name":"hdf5","function_name":"H5P__facc_file_image_info_del"},"4515":{"probe_name":"hdf5","function_name":"H5P__facc_file_image_info_copy"},"4514":{"probe_name":"hdf5","function_name":"H5P__facc_file_image_info_cmp"},"4513":{"probe_name":"hdf5","function_name":"H5P__facc_file_image_info_close"},"4512":{"probe_name":"hdf5","function_name":"H5P__facc_file_driver_set"},"4511":{"probe_name":"hdf5","function_name":"H5P__facc_file_driver_get"},"4510":{"probe_name":"hdf5","function_name":"H5P__facc_file_driver_del"},"4509":{"probe_name":"hdf5","function_name":"H5P__facc_file_driver_create"},"4508":{"probe_name":"hdf5","function_name":"H5P__facc_file_driver_copy"},"4507":{"probe_name":"hdf5","function_name":"H5P__facc_file_driver_cmp"},"4506":{"probe_name":"hdf5","function_name":"H5P__facc_file_driver_close"},"4505":{"probe_name":"hdf5","function_name":"H5P__facc_fclose_degree_enc"},"4504":{"probe_name":"hdf5","function_name":"H5P__facc_fclose_degree_dec"},"4503":{"probe_name":"hdf5","function_name":"H5P__facc_cache_image_config_enc"},"4502":{"probe_name":"hdf5","function_name":"H5P__facc_cache_image_config_dec"},"4501":{"probe_name":"hdf5","function_name":"H5P__facc_cache_image_config_cmp"},"4500":{"probe_name":"hdf5","function_name":"H5P__facc_cache_config_enc"},"4499":{"probe_name":"hdf5","function_name":"H5P__facc_cache_config_dec"},"4498":{"probe_name":"hdf5","function_name":"H5P__facc_cache_config_cmp"},"4497":{"probe_name":"hdf5","function_name":"H5P__exist_pclass"},"4496":{"probe_name":"hdf5","function_name":"H5P__encode_unsigned"},"4495":{"probe_name":"hdf5","function_name":"H5P__encode_uint8_t"},"4494":{"probe_name":"hdf5","function_name":"H5P__encode_uint64_t"},"4493":{"probe_name":"hdf5","function_name":"H5P__encode_size_t"},"4492":{"probe_name":"hdf5","function_name":"H5P__encode_hsize_t"},"4491":{"probe_name":"hdf5","function_name":"H5P__encode_double"},"4490":{"probe_name":"hdf5","function_name":"H5P__encode_coll_md_read_flag_t"},"4489":{"probe_name":"hdf5","function_name":"H5P__encode_chunk_cache_nslots"},"4488":{"probe_name":"hdf5","function_name":"H5P__encode_chunk_cache_nbytes"},"4487":{"probe_name":"hdf5","function_name":"H5P__encode_cb"},"4486":{"probe_name":"hdf5","function_name":"H5P__encode_bool"},"4485":{"probe_name":"hdf5","function_name":"H5P__encode"},"4484":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_set"},"4483":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_get"},"4482":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_enc"},"4481":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_del"},"4480":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_dec"},"4479":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_copy"},"4478":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_cmp"},"4477":{"probe_name":"hdf5","function_name":"H5P__dxfr_xform_close"},"4476":{"probe_name":"hdf5","function_name":"H5P__dxfr_selection_io_mode_enc"},"4475":{"probe_name":"hdf5","function_name":"H5P__dxfr_selection_io_mode_dec"},"4474":{"probe_name":"hdf5","function_name":"H5P__dxfr_reg_prop"},"4473":{"probe_name":"hdf5","function_name":"H5P__dxfr_mpio_collective_opt_enc"},"4472":{"probe_name":"hdf5","function_name":"H5P__dxfr_mpio_collective_opt_dec"},"4471":{"probe_name":"hdf5","function_name":"H5P__dxfr_mpio_chunk_opt_hard_enc"},"4470":{"probe_name":"hdf5","function_name":"H5P__dxfr_mpio_chunk_opt_hard_dec"},"4469":{"probe_name":"hdf5","function_name":"H5P__dxfr_modify_write_buf_enc"},"4468":{"probe_name":"hdf5","function_name":"H5P__dxfr_modify_write_buf_dec"},"4467":{"probe_name":"hdf5","function_name":"H5P__dxfr_io_xfer_mode_enc"},"4466":{"probe_name":"hdf5","function_name":"H5P__dxfr_io_xfer_mode_dec"},"4465":{"probe_name":"hdf5","function_name":"H5P__dxfr_edc_enc"},"4464":{"probe_name":"hdf5","function_name":"H5P__dxfr_edc_dec"},"4463":{"probe_name":"hdf5","function_name":"H5P__dxfr_dset_io_hyp_sel_copy"},"4462":{"probe_name":"hdf5","function_name":"H5P__dxfr_dset_io_hyp_sel_cmp"},"4461":{"probe_name":"hdf5","function_name":"H5P__dxfr_dset_io_hyp_sel_close"},"4460":{"probe_name":"hdf5","function_name":"H5P__dxfr_btree_split_ratio_enc"},"4459":{"probe_name":"hdf5","function_name":"H5P__dxfr_btree_split_ratio_dec"},"4458":{"probe_name":"hdf5","function_name":"H5P__dxfr_bkgr_buf_type_enc"},"4457":{"probe_name":"hdf5","function_name":"H5P__dxfr_bkgr_buf_type_dec"},"4456":{"probe_name":"hdf5","function_name":"H5P__dup_prop"},"4455":{"probe_name":"hdf5","function_name":"H5P__do_prop_cb1"},"4454":{"probe_name":"hdf5","function_name":"H5P__decode_unsigned"},"4453":{"probe_name":"hdf5","function_name":"H5P__decode_uint8_t"},"4452":{"probe_name":"hdf5","function_name":"H5P__decode_uint64_t"},"4451":{"probe_name":"hdf5","function_name":"H5P__decode_size_t"},"4450":{"probe_name":"hdf5","function_name":"H5P__decode_hsize_t"},"4449":{"probe_name":"hdf5","function_name":"H5P__decode_double"},"4448":{"probe_name":"hdf5","function_name":"H5P__decode_coll_md_read_flag_t"},"4447":{"probe_name":"hdf5","function_name":"H5P__decode_chunk_cache_nslots"},"4446":{"probe_name":"hdf5","function_name":"H5P__decode_chunk_cache_nbytes"},"4445":{"probe_name":"hdf5","function_name":"H5P__decode_bool"},"4444":{"probe_name":"hdf5","function_name":"H5P__decode"},"4443":{"probe_name":"hdf5","function_name":"H5P__dcrt_reg_prop"},"4442":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_set"},"4441":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_get"},"4440":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_enc"},"4439":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_del"},"4438":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_dec"},"4437":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_copy"},"4436":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_cmp"},"4435":{"probe_name":"hdf5","function_name":"H5P__dcrt_layout_close"},"4434":{"probe_name":"hdf5","function_name":"H5P__dcrt_fill_value_set"},"4433":{"probe_name":"hdf5","function_name":"H5P__dcrt_fill_value_get"},"4432":{"probe_name":"hdf5","function_name":"H5P__dcrt_fill_value_enc"},"4431":{"probe_name":"hdf5","function_name":"H5P__dcrt_fill_value_del"},"4430":{"probe_name":"hdf5","function_name":"H5P__dcrt_fill_value_dec"},"4429":{"probe_name":"hdf5","function_name":"H5P__dcrt_fill_value_copy"},"4428":{"probe_name":"hdf5","function_name":"H5P__dcrt_fill_value_close"},"4427":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_set"},"4426":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_get"},"4425":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_enc"},"4424":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_del"},"4423":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_dec"},"4422":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_copy"},"4421":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_cmp"},"4420":{"probe_name":"hdf5","function_name":"H5P__dcrt_ext_file_list_close"},"4419":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_set"},"4418":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_get"},"4417":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_enc"},"4416":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_del"},"4415":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_dec"},"4414":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_copy"},"4413":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_cmp"},"4412":{"probe_name":"hdf5","function_name":"H5P__dapl_vds_file_pref_close"},"4411":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_set"},"4410":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_get"},"4409":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_enc"},"4408":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_del"},"4407":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_dec"},"4406":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_copy"},"4405":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_cmp"},"4404":{"probe_name":"hdf5","function_name":"H5P__dapl_efile_pref_close"},"4403":{"probe_name":"hdf5","function_name":"H5P__dacc_vds_view_enc"},"4402":{"probe_name":"hdf5","function_name":"H5P__dacc_vds_view_dec"},"4401":{"probe_name":"hdf5","function_name":"H5P__dacc_reg_prop"},"4400":{"probe_name":"hdf5","function_name":"H5P__create_prop"},"4399":{"probe_name":"hdf5","function_name":"H5P__create_class"},"4398":{"probe_name":"hdf5","function_name":"H5P__copy_prop_plist"},"4397":{"probe_name":"hdf5","function_name":"H5P__copy_prop_pclass"},"4396":{"probe_name":"hdf5","function_name":"H5P__copy_pclass"},"4395":{"probe_name":"hdf5","function_name":"H5P__copy_merge_comm_dt_list"},"4394":{"probe_name":"hdf5","function_name":"H5P__cmp_prop.part.0"},"4393":{"probe_name":"hdf5","function_name":"H5P__cmp_plist_cb"},"4392":{"probe_name":"hdf5","function_name":"H5P__cmp_plist"},"4391":{"probe_name":"hdf5","function_name":"H5P__cmp_class"},"4390":{"probe_name":"hdf5","function_name":"H5P__close_list_cb"},"4389":{"probe_name":"hdf5","function_name":"H5P__close_class_cb"},"4388":{"probe_name":"hdf5","function_name":"H5P__close_class"},"4387":{"probe_name":"hdf5","function_name":"H5P__class_set"},"4386":{"probe_name":"hdf5","function_name":"H5P__class_get"},"4385":{"probe_name":"hdf5","function_name":"H5P__add_prop"},"4384":{"probe_name":"hdf5","function_name":"H5P__access_class.localalias"},"4383":{"probe_name":"hdf5","function_name":"H5P__access_class"},"4382":{"probe_name":"hdf5","function_name":"H5PLsize"},"4381":{"probe_name":"hdf5","function_name":"H5PLset_loading_state"},"4380":{"probe_name":"hdf5","function_name":"H5PLreplace"},"4379":{"probe_name":"hdf5","function_name":"H5PLremove"},"4378":{"probe_name":"hdf5","function_name":"H5PLprepend"},"4377":{"probe_name":"hdf5","function_name":"H5PLinsert"},"4376":{"probe_name":"hdf5","function_name":"H5PLget_loading_state"},"4375":{"probe_name":"hdf5","function_name":"H5PLget"},"4374":{"probe_name":"hdf5","function_name":"H5PLappend"},"4373":{"probe_name":"hdf5","function_name":"H5PL_term_package"},"4372":{"probe_name":"hdf5","function_name":"H5PL_load"},"4371":{"probe_name":"hdf5","function_name":"H5PL_iterate"},"4370":{"probe_name":"hdf5","function_name":"H5PL_init"},"4369":{"probe_name":"hdf5","function_name":"H5PL__set_plugin_control_mask"},"4368":{"probe_name":"hdf5","function_name":"H5PL__replace_path"},"4367":{"probe_name":"hdf5","function_name":"H5PL__remove_path"},"4366":{"probe_name":"hdf5","function_name":"H5PL__prepend_path"},"4365":{"probe_name":"hdf5","function_name":"H5PL__path_table_iterate"},"4364":{"probe_name":"hdf5","function_name":"H5PL__open"},"4363":{"probe_name":"hdf5","function_name":"H5PL__insert_path"},"4362":{"probe_name":"hdf5","function_name":"H5PL__insert_at"},"4361":{"probe_name":"hdf5","function_name":"H5PL__get_plugin_control_mask"},"4360":{"probe_name":"hdf5","function_name":"H5PL__get_path"},"4359":{"probe_name":"hdf5","function_name":"H5PL__get_num_paths"},"4358":{"probe_name":"hdf5","function_name":"H5PL__find_plugin_in_path_table"},"4357":{"probe_name":"hdf5","function_name":"H5PL__find_plugin_in_cache"},"4356":{"probe_name":"hdf5","function_name":"H5PL__create_plugin_cache"},"4355":{"probe_name":"hdf5","function_name":"H5PL__create_path_table"},"4354":{"probe_name":"hdf5","function_name":"H5PL__close_plugin_cache"},"4353":{"probe_name":"hdf5","function_name":"H5PL__close_path_table"},"4352":{"probe_name":"hdf5","function_name":"H5PL__close"},"4351":{"probe_name":"hdf5","function_name":"H5PL__append_path"},"4350":{"probe_name":"hdf5","function_name":"H5PL__add_plugin"},"4349":{"probe_name":"hdf5","function_name":"H5PB_write"},"4348":{"probe_name":"hdf5","function_name":"H5PB_update_entry"},"4347":{"probe_name":"hdf5","function_name":"H5PB_reset_stats"},"4346":{"probe_name":"hdf5","function_name":"H5PB_remove_entry"},"4345":{"probe_name":"hdf5","function_name":"H5PB_read"},"4344":{"probe_name":"hdf5","function_name":"H5PB_print_stats"},"4343":{"probe_name":"hdf5","function_name":"H5PB_get_stats"},"4342":{"probe_name":"hdf5","function_name":"H5PB_flush"},"4341":{"probe_name":"hdf5","function_name":"H5PB_enabled"},"4340":{"probe_name":"hdf5","function_name":"H5PB_dest"},"4339":{"probe_name":"hdf5","function_name":"H5PB_create"},"4338":{"probe_name":"hdf5","function_name":"H5PB_add_new_page"},"4337":{"probe_name":"hdf5","function_name":"H5PB__make_space"},"4336":{"probe_name":"hdf5","function_name":"H5PB__flush_cb"},"4335":{"probe_name":"hdf5","function_name":"H5PB__dest_cb"},"4334":{"probe_name":"hdf5","function_name":"H5Ovisit_by_name3"},"4333":{"probe_name":"hdf5","function_name":"H5Ovisit_by_name2"},"4332":{"probe_name":"hdf5","function_name":"H5Ovisit_by_name1"},"4331":{"probe_name":"hdf5","function_name":"H5Ovisit3"},"4330":{"probe_name":"hdf5","function_name":"H5Ovisit2"},"4329":{"probe_name":"hdf5","function_name":"H5Ovisit1"},"4328":{"probe_name":"hdf5","function_name":"H5Otoken_to_str"},"4327":{"probe_name":"hdf5","function_name":"H5Otoken_from_str"},"4326":{"probe_name":"hdf5","function_name":"H5Otoken_cmp"},"4325":{"probe_name":"hdf5","function_name":"H5Oset_comment_by_name"},"4324":{"probe_name":"hdf5","function_name":"H5Oset_comment"},"4323":{"probe_name":"hdf5","function_name":"H5Orefresh_async"},"4322":{"probe_name":"hdf5","function_name":"H5Orefresh"},"4321":{"probe_name":"hdf5","function_name":"H5Oopen_by_token"},"4320":{"probe_name":"hdf5","function_name":"H5Oopen_by_idx_async"},"4319":{"probe_name":"hdf5","function_name":"H5Oopen_by_idx"},"4318":{"probe_name":"hdf5","function_name":"H5Oopen_by_addr"},"4317":{"probe_name":"hdf5","function_name":"H5Oopen_async"},"4316":{"probe_name":"hdf5","function_name":"H5Oopen"},"4315":{"probe_name":"hdf5","function_name":"H5Olink"},"4314":{"probe_name":"hdf5","function_name":"H5Oincr_refcount"},"4313":{"probe_name":"hdf5","function_name":"H5Oget_native_info_by_name"},"4312":{"probe_name":"hdf5","function_name":"H5Oget_native_info_by_idx"},"4311":{"probe_name":"hdf5","function_name":"H5Oget_native_info"},"4310":{"probe_name":"hdf5","function_name":"H5Oget_info_by_name_async"},"4309":{"probe_name":"hdf5","function_name":"H5Oget_info_by_name3"},"4308":{"probe_name":"hdf5","function_name":"H5Oget_info_by_name2"},"4307":{"probe_name":"hdf5","function_name":"H5Oget_info_by_name1"},"4306":{"probe_name":"hdf5","function_name":"H5Oget_info_by_idx3"},"4305":{"probe_name":"hdf5","function_name":"H5Oget_info_by_idx2"},"4304":{"probe_name":"hdf5","function_name":"H5Oget_info_by_idx1"},"4303":{"probe_name":"hdf5","function_name":"H5Oget_info3"},"4302":{"probe_name":"hdf5","function_name":"H5Oget_info2"},"4301":{"probe_name":"hdf5","function_name":"H5Oget_info1"},"4300":{"probe_name":"hdf5","function_name":"H5Oget_comment_by_name"},"4299":{"probe_name":"hdf5","function_name":"H5Oget_comment"},"4298":{"probe_name":"hdf5","function_name":"H5Oflush_async"},"4297":{"probe_name":"hdf5","function_name":"H5Oflush"},"4296":{"probe_name":"hdf5","function_name":"H5Oexists_by_name"},"4295":{"probe_name":"hdf5","function_name":"H5Oenable_mdc_flushes"},"4294":{"probe_name":"hdf5","function_name":"H5Odisable_mdc_flushes"},"4293":{"probe_name":"hdf5","function_name":"H5Odecr_refcount"},"4292":{"probe_name":"hdf5","function_name":"H5Ocopy_async"},"4291":{"probe_name":"hdf5","function_name":"H5Ocopy"},"4290":{"probe_name":"hdf5","function_name":"H5Oclose_async"},"4289":{"probe_name":"hdf5","function_name":"H5Oclose"},"4288":{"probe_name":"hdf5","function_name":"H5Oare_mdc_flushes_disabled"},"4287":{"probe_name":"hdf5","function_name":"H5O_unprotect"},"4286":{"probe_name":"hdf5","function_name":"H5O_unpin"},"4285":{"probe_name":"hdf5","function_name":"H5O_touch_oh"},"4284":{"probe_name":"hdf5","function_name":"H5O_touch"},"4283":{"probe_name":"hdf5","function_name":"H5O_set_shared"},"4282":{"probe_name":"hdf5","function_name":"H5O_refresh_metadata_reopen"},"4281":{"probe_name":"hdf5","function_name":"H5O_refresh_metadata"},"4280":{"probe_name":"hdf5","function_name":"H5O_protect"},"4279":{"probe_name":"hdf5","function_name":"H5O_pline_set_version"},"4278":{"probe_name":"hdf5","function_name":"H5O_pin"},"4277":{"probe_name":"hdf5","function_name":"H5O_open_name"},"4276":{"probe_name":"hdf5","function_name":"H5O_open_by_loc"},"4275":{"probe_name":"hdf5","function_name":"H5O_open"},"4274":{"probe_name":"hdf5","function_name":"H5O_obj_type"},"4273":{"probe_name":"hdf5","function_name":"H5O_obj_create"},"4272":{"probe_name":"hdf5","function_name":"H5O_msg_write_oh"},"4271":{"probe_name":"hdf5","function_name":"H5O_msg_write"},"4270":{"probe_name":"hdf5","function_name":"H5O_msg_size_oh"},"4269":{"probe_name":"hdf5","function_name":"H5O_msg_size_f"},"4268":{"probe_name":"hdf5","function_name":"H5O_msg_set_share"},"4267":{"probe_name":"hdf5","function_name":"H5O_msg_reset_share"},"4266":{"probe_name":"hdf5","function_name":"H5O_msg_reset"},"4265":{"probe_name":"hdf5","function_name":"H5O_msg_remove_op"},"4264":{"probe_name":"hdf5","function_name":"H5O_msg_remove"},"4263":{"probe_name":"hdf5","function_name":"H5O_msg_read_oh"},"4262":{"probe_name":"hdf5","function_name":"H5O_msg_read"},"4261":{"probe_name":"hdf5","function_name":"H5O_msg_raw_size"},"4260":{"probe_name":"hdf5","function_name":"H5O_msg_iterate"},"4259":{"probe_name":"hdf5","function_name":"H5O_msg_is_shared"},"4258":{"probe_name":"hdf5","function_name":"H5O_msg_get_flags"},"4257":{"probe_name":"hdf5","function_name":"H5O_msg_get_crt_index"},"4256":{"probe_name":"hdf5","function_name":"H5O_msg_free_real"},"4255":{"probe_name":"hdf5","function_name":"H5O_msg_free"},"4254":{"probe_name":"hdf5","function_name":"H5O_msg_flush"},"4253":{"probe_name":"hdf5","function_name":"H5O_msg_exists_oh"},"4252":{"probe_name":"hdf5","function_name":"H5O_msg_exists"},"4251":{"probe_name":"hdf5","function_name":"H5O_msg_encode"},"4250":{"probe_name":"hdf5","function_name":"H5O_msg_delete"},"4249":{"probe_name":"hdf5","function_name":"H5O_msg_decode"},"4248":{"probe_name":"hdf5","function_name":"H5O_msg_create"},"4247":{"probe_name":"hdf5","function_name":"H5O_msg_count"},"4246":{"probe_name":"hdf5","function_name":"H5O_msg_copy"},"4245":{"probe_name":"hdf5","function_name":"H5O_msg_can_share_in_ohdr"},"4244":{"probe_name":"hdf5","function_name":"H5O_msg_can_share"},"4243":{"probe_name":"hdf5","function_name":"H5O_msg_append_oh"},"4242":{"probe_name":"hdf5","function_name":"H5O_loc_reset"},"4241":{"probe_name":"hdf5","function_name":"H5O_loc_hold_file"},"4240":{"probe_name":"hdf5","function_name":"H5O_loc_free"},"4239":{"probe_name":"hdf5","function_name":"H5O_loc_copy_shallow"},"4238":{"probe_name":"hdf5","function_name":"H5O_loc_copy_deep"},"4237":{"probe_name":"hdf5","function_name":"H5O_loc_copy"},"4236":{"probe_name":"hdf5","function_name":"H5O_link_delete"},"4235":{"probe_name":"hdf5","function_name":"H5O_link"},"4234":{"probe_name":"hdf5","function_name":"H5O_init"},"4233":{"probe_name":"hdf5","function_name":"H5O_has_chksum"},"4232":{"probe_name":"hdf5","function_name":"H5O_get_rc_and_type"},"4231":{"probe_name":"hdf5","function_name":"H5O_get_proxy"},"4230":{"probe_name":"hdf5","function_name":"H5O_get_oh_version"},"4229":{"probe_name":"hdf5","function_name":"H5O_get_oh_mtime"},"4228":{"probe_name":"hdf5","function_name":"H5O_get_oh_flags"},"4227":{"probe_name":"hdf5","function_name":"H5O_get_oh_addr"},"4226":{"probe_name":"hdf5","function_name":"H5O_get_nlinks"},"4225":{"probe_name":"hdf5","function_name":"H5O_get_native_info"},"4224":{"probe_name":"hdf5","function_name":"H5O_get_loc"},"4223":{"probe_name":"hdf5","function_name":"H5O_get_info"},"4222":{"probe_name":"hdf5","function_name":"H5O_get_hdr_info"},"4221":{"probe_name":"hdf5","function_name":"H5O_get_create_plist"},"4220":{"probe_name":"hdf5","function_name":"H5O_fsinfo_set_version"},"4219":{"probe_name":"hdf5","function_name":"H5O_fsinfo_check_version"},"4218":{"probe_name":"hdf5","function_name":"H5O_flush_common"},"4217":{"probe_name":"hdf5","function_name":"H5O_flush"},"4216":{"probe_name":"hdf5","function_name":"H5O_fill_set_version"},"4215":{"probe_name":"hdf5","function_name":"H5O_fill_reset_dyn"},"4214":{"probe_name":"hdf5","function_name":"H5O_fill_convert"},"4213":{"probe_name":"hdf5","function_name":"H5O_efl_total_size"},"4212":{"probe_name":"hdf5","function_name":"H5O_delete"},"4211":{"probe_name":"hdf5","function_name":"H5O_dec_rc_by_loc"},"4210":{"probe_name":"hdf5","function_name":"H5O_debug_id"},"4209":{"probe_name":"hdf5","function_name":"H5O_debug"},"4208":{"probe_name":"hdf5","function_name":"H5O_create_ohdr"},"4207":{"probe_name":"hdf5","function_name":"H5O_create"},"4206":{"probe_name":"hdf5","function_name":"H5O_copy_header_map"},"4205":{"probe_name":"hdf5","function_name":"H5O_copy_expand_ref"},"4204":{"probe_name":"hdf5","function_name":"H5O_close"},"4203":{"probe_name":"hdf5","function_name":"H5O_attr_iterate_real"},"4202":{"probe_name":"hdf5","function_name":"H5O_apply_ohdr"},"4201":{"probe_name":"hdf5","function_name":"H5O__visit_cb"},"4200":{"probe_name":"hdf5","function_name":"H5O__visit"},"4199":{"probe_name":"hdf5","function_name":"H5O__unknown_free"},"4198":{"probe_name":"hdf5","function_name":"H5O__stab_size"},"4197":{"probe_name":"hdf5","function_name":"H5O__stab_post_copy_file"},"4196":{"probe_name":"hdf5","function_name":"H5O__stab_free"},"4195":{"probe_name":"hdf5","function_name":"H5O__stab_encode"},"4194":{"probe_name":"hdf5","function_name":"H5O__stab_delete"},"4193":{"probe_name":"hdf5","function_name":"H5O__stab_decode"},"4192":{"probe_name":"hdf5","function_name":"H5O__stab_debug"},"4191":{"probe_name":"hdf5","function_name":"H5O__stab_copy_file"},"4190":{"probe_name":"hdf5","function_name":"H5O__stab_copy"},"4189":{"probe_name":"hdf5","function_name":"H5O__shmesg_size"},"4188":{"probe_name":"hdf5","function_name":"H5O__shmesg_encode"},"4187":{"probe_name":"hdf5","function_name":"H5O__shmesg_decode"},"4186":{"probe_name":"hdf5","function_name":"H5O__shmesg_debug"},"4185":{"probe_name":"hdf5","function_name":"H5O__shmesg_copy"},"4184":{"probe_name":"hdf5","function_name":"H5O__shared_size"},"4183":{"probe_name":"hdf5","function_name":"H5O__shared_post_copy_file"},"4182":{"probe_name":"hdf5","function_name":"H5O__shared_link"},"4181":{"probe_name":"hdf5","function_name":"H5O__shared_encode"},"4180":{"probe_name":"hdf5","function_name":"H5O__shared_delete"},"4179":{"probe_name":"hdf5","function_name":"H5O__shared_decode"},"4178":{"probe_name":"hdf5","function_name":"H5O__shared_debug"},"4177":{"probe_name":"hdf5","function_name":"H5O__shared_copy_file"},"4176":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_size"},"4175":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_post_copy_file"},"4174":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_link"},"4173":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_encode"},"4172":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_delete"},"4171":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_decode"},"4170":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_debug"},"4169":{"probe_name":"hdf5","function_name":"H5O__sdspace_shared_copy_file"},"4168":{"probe_name":"hdf5","function_name":"H5O__sdspace_reset"},"4167":{"probe_name":"hdf5","function_name":"H5O__sdspace_pre_copy_file"},"4166":{"probe_name":"hdf5","function_name":"H5O__sdspace_free"},"4165":{"probe_name":"hdf5","function_name":"H5O__sdspace_copy"},"4164":{"probe_name":"hdf5","function_name":"H5O__remove_empty_chunks"},"4163":{"probe_name":"hdf5","function_name":"H5O__release_mesg"},"4162":{"probe_name":"hdf5","function_name":"H5O__refcount_size"},"4161":{"probe_name":"hdf5","function_name":"H5O__refcount_pre_copy_file"},"4160":{"probe_name":"hdf5","function_name":"H5O__refcount_free"},"4159":{"probe_name":"hdf5","function_name":"H5O__refcount_encode"},"4158":{"probe_name":"hdf5","function_name":"H5O__refcount_decode"},"4157":{"probe_name":"hdf5","function_name":"H5O__refcount_debug"},"4156":{"probe_name":"hdf5","function_name":"H5O__refcount_copy"},"4155":{"probe_name":"hdf5","function_name":"H5O__prefix_deserialize"},"4154":{"probe_name":"hdf5","function_name":"H5O__pline_shared_size"},"4153":{"probe_name":"hdf5","function_name":"H5O__pline_shared_post_copy_file"},"4152":{"probe_name":"hdf5","function_name":"H5O__pline_shared_link"},"4151":{"probe_name":"hdf5","function_name":"H5O__pline_shared_encode"},"4150":{"probe_name":"hdf5","function_name":"H5O__pline_shared_delete"},"4149":{"probe_name":"hdf5","function_name":"H5O__pline_shared_decode"},"4148":{"probe_name":"hdf5","function_name":"H5O__pline_shared_debug"},"4147":{"probe_name":"hdf5","function_name":"H5O__pline_shared_copy_file"},"4146":{"probe_name":"hdf5","function_name":"H5O__pline_reset"},"4145":{"probe_name":"hdf5","function_name":"H5O__pline_pre_copy_file"},"4144":{"probe_name":"hdf5","function_name":"H5O__pline_free"},"4143":{"probe_name":"hdf5","function_name":"H5O__pline_copy"},"4142":{"probe_name":"hdf5","function_name":"H5O__open_by_idx"},"4141":{"probe_name":"hdf5","function_name":"H5O__open_by_addr"},"4140":{"probe_name":"hdf5","function_name":"H5O__obj_class_real"},"4139":{"probe_name":"hdf5","function_name":"H5O__obj_class"},"4138":{"probe_name":"hdf5","function_name":"H5O__num_attrs_test"},"4137":{"probe_name":"hdf5","function_name":"H5O__name_size"},"4136":{"probe_name":"hdf5","function_name":"H5O__name_reset"},"4135":{"probe_name":"hdf5","function_name":"H5O__name_encode"},"4134":{"probe_name":"hdf5","function_name":"H5O__name_decode"},"4133":{"probe_name":"hdf5","function_name":"H5O__name_debug"},"4132":{"probe_name":"hdf5","function_name":"H5O__name_copy"},"4131":{"probe_name":"hdf5","function_name":"H5O__mtime_size"},"4130":{"probe_name":"hdf5","function_name":"H5O__mtime_new_size"},"4129":{"probe_name":"hdf5","function_name":"H5O__mtime_new_encode"},"4128":{"probe_name":"hdf5","function_name":"H5O__mtime_new_decode"},"4127":{"probe_name":"hdf5","function_name":"H5O__mtime_free"},"4126":{"probe_name":"hdf5","function_name":"H5O__mtime_encode"},"4125":{"probe_name":"hdf5","function_name":"H5O__mtime_decode"},"4124":{"probe_name":"hdf5","function_name":"H5O__mtime_debug"},"4123":{"probe_name":"hdf5","function_name":"H5O__mtime_copy"},"4122":{"probe_name":"hdf5","function_name":"H5O__msg_write_real"},"4121":{"probe_name":"hdf5","function_name":"H5O__msg_remove_real"},"4120":{"probe_name":"hdf5","function_name":"H5O__msg_remove_cb"},"4119":{"probe_name":"hdf5","function_name":"H5O__msg_move_to_new_chunk_test"},"4118":{"probe_name":"hdf5","function_name":"H5O__msg_iterate_real"},"4117":{"probe_name":"hdf5","function_name":"H5O__msg_get_chunkno_test"},"4116":{"probe_name":"hdf5","function_name":"H5O__msg_free_mesg"},"4115":{"probe_name":"hdf5","function_name":"H5O__msg_count_real"},"4114":{"probe_name":"hdf5","function_name":"H5O__msg_copy_file"},"4113":{"probe_name":"hdf5","function_name":"H5O__msg_append_real"},"4112":{"probe_name":"hdf5","function_name":"H5O__msg_alloc"},"4111":{"probe_name":"hdf5","function_name":"H5O__mdci_size"},"4110":{"probe_name":"hdf5","function_name":"H5O__mdci_free"},"4109":{"probe_name":"hdf5","function_name":"H5O__mdci_encode"},"4108":{"probe_name":"hdf5","function_name":"H5O__mdci_delete"},"4107":{"probe_name":"hdf5","function_name":"H5O__mdci_decode"},"4106":{"probe_name":"hdf5","function_name":"H5O__mdci_debug"},"4105":{"probe_name":"hdf5","function_name":"H5O__mdci_copy"},"4104":{"probe_name":"hdf5","function_name":"H5O__link_size"},"4103":{"probe_name":"hdf5","function_name":"H5O__link_reset"},"4102":{"probe_name":"hdf5","function_name":"H5O__link_pre_copy_file"},"4101":{"probe_name":"hdf5","function_name":"H5O__link_post_copy_file"},"4100":{"probe_name":"hdf5","function_name":"H5O__link_oh"},"4099":{"probe_name":"hdf5","function_name":"H5O__link_free"},"4098":{"probe_name":"hdf5","function_name":"H5O__link_encode"},"4097":{"probe_name":"hdf5","function_name":"H5O__link_decode"},"4096":{"probe_name":"hdf5","function_name":"H5O__link_debug"},"4095":{"probe_name":"hdf5","function_name":"H5O__link_copy_file"},"4094":{"probe_name":"hdf5","function_name":"H5O__link_copy"},"4093":{"probe_name":"hdf5","function_name":"H5O__linfo_size"},"4092":{"probe_name":"hdf5","function_name":"H5O__linfo_post_copy_file_cb"},"4091":{"probe_name":"hdf5","function_name":"H5O__linfo_post_copy_file"},"4090":{"probe_name":"hdf5","function_name":"H5O__linfo_free"},"4089":{"probe_name":"hdf5","function_name":"H5O__linfo_encode"},"4088":{"probe_name":"hdf5","function_name":"H5O__linfo_delete"},"4087":{"probe_name":"hdf5","function_name":"H5O__linfo_decode"},"4086":{"probe_name":"hdf5","function_name":"H5O__linfo_debug"},"4085":{"probe_name":"hdf5","function_name":"H5O__linfo_copy_file"},"4084":{"probe_name":"hdf5","function_name":"H5O__linfo_copy.part.0"},"4083":{"probe_name":"hdf5","function_name":"H5O__linfo_copy"},"4082":{"probe_name":"hdf5","function_name":"H5O__layout_size"},"4081":{"probe_name":"hdf5","function_name":"H5O__layout_reset.part.0"},"4080":{"probe_name":"hdf5","function_name":"H5O__layout_reset"},"4079":{"probe_name":"hdf5","function_name":"H5O__layout_pre_copy_file"},"4078":{"probe_name":"hdf5","function_name":"H5O__layout_free"},"4077":{"probe_name":"hdf5","function_name":"H5O__layout_encode"},"4076":{"probe_name":"hdf5","function_name":"H5O__layout_delete"},"4075":{"probe_name":"hdf5","function_name":"H5O__layout_decode"},"4074":{"probe_name":"hdf5","function_name":"H5O__layout_debug"},"4073":{"probe_name":"hdf5","function_name":"H5O__layout_copy_file"},"4072":{"probe_name":"hdf5","function_name":"H5O__layout_copy"},"4071":{"probe_name":"hdf5","function_name":"H5O__iterate1_adapter"},"4070":{"probe_name":"hdf5","function_name":"H5O__is_attr_empty_test"},"4069":{"probe_name":"hdf5","function_name":"H5O__is_attr_dense_test"},"4068":{"probe_name":"hdf5","function_name":"H5O__inc_rc"},"4067":{"probe_name":"hdf5","function_name":"H5O__group_open"},"4066":{"probe_name":"hdf5","function_name":"H5O__group_isa"},"4065":{"probe_name":"hdf5","function_name":"H5O__group_get_oloc"},"4064":{"probe_name":"hdf5","function_name":"H5O__group_get_copy_file_udata"},"4063":{"probe_name":"hdf5","function_name":"H5O__group_free_copy_file_udata"},"4062":{"probe_name":"hdf5","function_name":"H5O__group_create"},"4061":{"probe_name":"hdf5","function_name":"H5O__group_bh_info"},"4060":{"probe_name":"hdf5","function_name":"H5O__ginfo_size"},"4059":{"probe_name":"hdf5","function_name":"H5O__ginfo_free"},"4058":{"probe_name":"hdf5","function_name":"H5O__ginfo_encode"},"4057":{"probe_name":"hdf5","function_name":"H5O__ginfo_decode"},"4056":{"probe_name":"hdf5","function_name":"H5O__ginfo_debug"},"4055":{"probe_name":"hdf5","function_name":"H5O__ginfo_copy"},"4054":{"probe_name":"hdf5","function_name":"H5O__get_rc_test"},"4053":{"probe_name":"hdf5","function_name":"H5O__get_info_old"},"4052":{"probe_name":"hdf5","function_name":"H5O__get_hdr_info_real"},"4051":{"probe_name":"hdf5","function_name":"H5O__fsinfo_size"},"4050":{"probe_name":"hdf5","function_name":"H5O__fsinfo_free"},"4049":{"probe_name":"hdf5","function_name":"H5O__fsinfo_encode"},"4048":{"probe_name":"hdf5","function_name":"H5O__fsinfo_decode"},"4047":{"probe_name":"hdf5","function_name":"H5O__fsinfo_debug"},"4046":{"probe_name":"hdf5","function_name":"H5O__fsinfo_copy"},"4045":{"probe_name":"hdf5","function_name":"H5O__free_visit_visited"},"4044":{"probe_name":"hdf5","function_name":"H5O__free"},"4043":{"probe_name":"hdf5","function_name":"H5O__flush_msgs"},"4042":{"probe_name":"hdf5","function_name":"H5O__fill_shared_size"},"4041":{"probe_name":"hdf5","function_name":"H5O__fill_shared_post_copy_file"},"4040":{"probe_name":"hdf5","function_name":"H5O__fill_shared_link"},"4039":{"probe_name":"hdf5","function_name":"H5O__fill_shared_encode"},"4038":{"probe_name":"hdf5","function_name":"H5O__fill_shared_delete"},"4037":{"probe_name":"hdf5","function_name":"H5O__fill_shared_decode"},"4036":{"probe_name":"hdf5","function_name":"H5O__fill_shared_debug"},"4035":{"probe_name":"hdf5","function_name":"H5O__fill_shared_copy_file"},"4034":{"probe_name":"hdf5","function_name":"H5O__fill_reset"},"4033":{"probe_name":"hdf5","function_name":"H5O__fill_pre_copy_file"},"4032":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_size"},"4031":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_post_copy_file"},"4030":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_link"},"4029":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_encode"},"4028":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_delete"},"4027":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_decode"},"4026":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_debug"},"4025":{"probe_name":"hdf5","function_name":"H5O__fill_new_shared_copy_file"},"4024":{"probe_name":"hdf5","function_name":"H5O__fill_free"},"4023":{"probe_name":"hdf5","function_name":"H5O__fill_debug.constprop.0"},"4022":{"probe_name":"hdf5","function_name":"H5O__fill_copy"},"4021":{"probe_name":"hdf5","function_name":"H5O__expunge_chunks_test"},"4020":{"probe_name":"hdf5","function_name":"H5O__enable_mdc_flushes"},"4019":{"probe_name":"hdf5","function_name":"H5O__eliminate_gap"},"4018":{"probe_name":"hdf5","function_name":"H5O__efl_size"},"4017":{"probe_name":"hdf5","function_name":"H5O__efl_reset"},"4016":{"probe_name":"hdf5","function_name":"H5O__efl_encode"},"4015":{"probe_name":"hdf5","function_name":"H5O__efl_decode"},"4014":{"probe_name":"hdf5","function_name":"H5O__efl_debug"},"4013":{"probe_name":"hdf5","function_name":"H5O__efl_copy_file"},"4012":{"probe_name":"hdf5","function_name":"H5O__efl_copy"},"4011":{"probe_name":"hdf5","function_name":"H5O__dtype_size.isra.0"},"4010":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_size"},"4009":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_post_copy_file"},"4008":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_link"},"4007":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_encode"},"4006":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_delete"},"4005":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_decode"},"4004":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_debug"},"4003":{"probe_name":"hdf5","function_name":"H5O__dtype_shared_copy_file"},"4002":{"probe_name":"hdf5","function_name":"H5O__dtype_set_share"},"4001":{"probe_name":"hdf5","function_name":"H5O__dtype_reset"},"4000":{"probe_name":"hdf5","function_name":"H5O__dtype_pre_copy_file"},"3999":{"probe_name":"hdf5","function_name":"H5O__dtype_open"},"3998":{"probe_name":"hdf5","function_name":"H5O__dtype_isa"},"3997":{"probe_name":"hdf5","function_name":"H5O__dtype_get_oloc"},"3996":{"probe_name":"hdf5","function_name":"H5O__dtype_free"},"3995":{"probe_name":"hdf5","function_name":"H5O__dtype_encode_helper.cold"},"3994":{"probe_name":"hdf5","function_name":"H5O__dtype_encode_helper"},"3993":{"probe_name":"hdf5","function_name":"H5O__dtype_decode_helper"},"3992":{"probe_name":"hdf5","function_name":"H5O__dtype_debug.isra.0"},"3991":{"probe_name":"hdf5","function_name":"H5O__dtype_create"},"3990":{"probe_name":"hdf5","function_name":"H5O__dtype_copy"},"3989":{"probe_name":"hdf5","function_name":"H5O__dtype_can_share"},"3988":{"probe_name":"hdf5","function_name":"H5O__dset_open"},"3987":{"probe_name":"hdf5","function_name":"H5O__dset_isa"},"3986":{"probe_name":"hdf5","function_name":"H5O__dset_get_oloc"},"3985":{"probe_name":"hdf5","function_name":"H5O__dset_get_copy_file_udata"},"3984":{"probe_name":"hdf5","function_name":"H5O__dset_free_copy_file_udata"},"3983":{"probe_name":"hdf5","function_name":"H5O__dset_flush"},"3982":{"probe_name":"hdf5","function_name":"H5O__dset_create"},"3981":{"probe_name":"hdf5","function_name":"H5O__dset_bh_info"},"3980":{"probe_name":"hdf5","function_name":"H5O__drvinfo_size"},"3979":{"probe_name":"hdf5","function_name":"H5O__drvinfo_reset"},"3978":{"probe_name":"hdf5","function_name":"H5O__drvinfo_encode"},"3977":{"probe_name":"hdf5","function_name":"H5O__drvinfo_decode"},"3976":{"probe_name":"hdf5","function_name":"H5O__drvinfo_debug"},"3975":{"probe_name":"hdf5","function_name":"H5O__drvinfo_copy"},"3974":{"probe_name":"hdf5","function_name":"H5O__disable_mdc_flushes"},"3973":{"probe_name":"hdf5","function_name":"H5O__delete_mesg"},"3972":{"probe_name":"hdf5","function_name":"H5O__dec_rc"},"3971":{"probe_name":"hdf5","function_name":"H5O__debug_real"},"3970":{"probe_name":"hdf5","function_name":"H5O__copy_search_comm_dt_check"},"3969":{"probe_name":"hdf5","function_name":"H5O__copy_search_comm_dt_cb"},"3968":{"probe_name":"hdf5","function_name":"H5O__copy_search_comm_dt_attr_cb"},"3967":{"probe_name":"hdf5","function_name":"H5O__copy_obj_by_ref"},"3966":{"probe_name":"hdf5","function_name":"H5O__copy_header_real"},"3965":{"probe_name":"hdf5","function_name":"H5O__copy_free_comm_dt_cb"},"3964":{"probe_name":"hdf5","function_name":"H5O__copy_free_addrmap_cb"},"3963":{"probe_name":"hdf5","function_name":"H5O__copy_comm_dt_cmp"},"3962":{"probe_name":"hdf5","function_name":"H5O__copy_api_common"},"3961":{"probe_name":"hdf5","function_name":"H5O__copy"},"3960":{"probe_name":"hdf5","function_name":"H5O__cont_size"},"3959":{"probe_name":"hdf5","function_name":"H5O__cont_free"},"3958":{"probe_name":"hdf5","function_name":"H5O__cont_encode"},"3957":{"probe_name":"hdf5","function_name":"H5O__cont_delete"},"3956":{"probe_name":"hdf5","function_name":"H5O__cont_decode"},"3955":{"probe_name":"hdf5","function_name":"H5O__cont_debug"},"3954":{"probe_name":"hdf5","function_name":"H5O__condense_header"},"3953":{"probe_name":"hdf5","function_name":"H5O__chunk_update_idx"},"3952":{"probe_name":"hdf5","function_name":"H5O__chunk_unprotect"},"3951":{"probe_name":"hdf5","function_name":"H5O__chunk_serialize"},"3950":{"probe_name":"hdf5","function_name":"H5O__chunk_resize"},"3949":{"probe_name":"hdf5","function_name":"H5O__chunk_protect"},"3948":{"probe_name":"hdf5","function_name":"H5O__chunk_dest"},"3947":{"probe_name":"hdf5","function_name":"H5O__chunk_deserialize"},"3946":{"probe_name":"hdf5","function_name":"H5O__chunk_delete"},"3945":{"probe_name":"hdf5","function_name":"H5O__chunk_add"},"3944":{"probe_name":"hdf5","function_name":"H5O__check_msg_marked_test"},"3943":{"probe_name":"hdf5","function_name":"H5O__cache_verify_chksum"},"3942":{"probe_name":"hdf5","function_name":"H5O__cache_serialize"},"3941":{"probe_name":"hdf5","function_name":"H5O__cache_notify"},"3940":{"probe_name":"hdf5","function_name":"H5O__cache_image_len"},"3939":{"probe_name":"hdf5","function_name":"H5O__cache_get_initial_load_size"},"3938":{"probe_name":"hdf5","function_name":"H5O__cache_get_final_load_size"},"3937":{"probe_name":"hdf5","function_name":"H5O__cache_free_icr"},"3936":{"probe_name":"hdf5","function_name":"H5O__cache_deserialize"},"3935":{"probe_name":"hdf5","function_name":"H5O__cache_chk_verify_chksum"},"3934":{"probe_name":"hdf5","function_name":"H5O__cache_chk_serialize"},"3933":{"probe_name":"hdf5","function_name":"H5O__cache_chk_notify"},"3932":{"probe_name":"hdf5","function_name":"H5O__cache_chk_image_len"},"3931":{"probe_name":"hdf5","function_name":"H5O__cache_chk_get_initial_load_size"},"3930":{"probe_name":"hdf5","function_name":"H5O__cache_chk_free_icr"},"3929":{"probe_name":"hdf5","function_name":"H5O__cache_chk_deserialize"},"3928":{"probe_name":"hdf5","function_name":"H5O__btreek_size"},"3927":{"probe_name":"hdf5","function_name":"H5O__btreek_encode"},"3926":{"probe_name":"hdf5","function_name":"H5O__btreek_decode"},"3925":{"probe_name":"hdf5","function_name":"H5O__btreek_debug"},"3924":{"probe_name":"hdf5","function_name":"H5O__btreek_copy"},"3923":{"probe_name":"hdf5","function_name":"H5O__attr_write_cb"},"3922":{"probe_name":"hdf5","function_name":"H5O__attr_write"},"3921":{"probe_name":"hdf5","function_name":"H5O__attr_update_shared"},"3920":{"probe_name":"hdf5","function_name":"H5O__attr_to_dense_cb"},"3919":{"probe_name":"hdf5","function_name":"H5O__attr_shared_size"},"3918":{"probe_name":"hdf5","function_name":"H5O__attr_shared_post_copy_file"},"3917":{"probe_name":"hdf5","function_name":"H5O__attr_shared_link"},"3916":{"probe_name":"hdf5","function_name":"H5O__attr_shared_encode"},"3915":{"probe_name":"hdf5","function_name":"H5O__attr_shared_delete"},"3914":{"probe_name":"hdf5","function_name":"H5O__attr_shared_decode"},"3913":{"probe_name":"hdf5","function_name":"H5O__attr_shared_debug"},"3912":{"probe_name":"hdf5","function_name":"H5O__attr_shared_copy_file"},"3911":{"probe_name":"hdf5","function_name":"H5O__attr_set_crt_index"},"3910":{"probe_name":"hdf5","function_name":"H5O__attr_reset"},"3909":{"probe_name":"hdf5","function_name":"H5O__attr_rename_mod_cb"},"3908":{"probe_name":"hdf5","function_name":"H5O__attr_rename_chk_cb"},"3907":{"probe_name":"hdf5","function_name":"H5O__attr_rename"},"3906":{"probe_name":"hdf5","function_name":"H5O__attr_remove_update"},"3905":{"probe_name":"hdf5","function_name":"H5O__attr_remove_cb"},"3904":{"probe_name":"hdf5","function_name":"H5O__attr_remove_by_idx"},"3903":{"probe_name":"hdf5","function_name":"H5O__attr_remove"},"3902":{"probe_name":"hdf5","function_name":"H5O__attr_pre_copy_file"},"3901":{"probe_name":"hdf5","function_name":"H5O__attr_open_cb"},"3900":{"probe_name":"hdf5","function_name":"H5O__attr_open_by_name"},"3899":{"probe_name":"hdf5","function_name":"H5O__attr_open_by_idx_cb"},"3898":{"probe_name":"hdf5","function_name":"H5O__attr_open_by_idx"},"3897":{"probe_name":"hdf5","function_name":"H5O__attr_link"},"3896":{"probe_name":"hdf5","function_name":"H5O__attr_iterate"},"3895":{"probe_name":"hdf5","function_name":"H5O__attr_get_crt_index"},"3894":{"probe_name":"hdf5","function_name":"H5O__attr_free"},"3893":{"probe_name":"hdf5","function_name":"H5O__attr_find_opened_attr"},"3892":{"probe_name":"hdf5","function_name":"H5O__attr_exists_cb"},"3891":{"probe_name":"hdf5","function_name":"H5O__attr_exists"},"3890":{"probe_name":"hdf5","function_name":"H5O__attr_dense_info_test"},"3889":{"probe_name":"hdf5","function_name":"H5O__attr_delete"},"3888":{"probe_name":"hdf5","function_name":"H5O__attr_create"},"3887":{"probe_name":"hdf5","function_name":"H5O__attr_count_real"},"3886":{"probe_name":"hdf5","function_name":"H5O__attr_copy"},"3885":{"probe_name":"hdf5","function_name":"H5O__attr_bh_info"},"3884":{"probe_name":"hdf5","function_name":"H5O__are_mdc_flushes_disabled"},"3883":{"probe_name":"hdf5","function_name":"H5O__alloc_null"},"3882":{"probe_name":"hdf5","function_name":"H5O__alloc_msgs"},"3881":{"probe_name":"hdf5","function_name":"H5O__alloc_find_best_null"},"3880":{"probe_name":"hdf5","function_name":"H5O__alloc_chunk"},"3879":{"probe_name":"hdf5","function_name":"H5O__alloc"},"3878":{"probe_name":"hdf5","function_name":"H5O__ainfo_size"},"3877":{"probe_name":"hdf5","function_name":"H5O__ainfo_pre_copy_file"},"3876":{"probe_name":"hdf5","function_name":"H5O__ainfo_post_copy_file"},"3875":{"probe_name":"hdf5","function_name":"H5O__ainfo_free"},"3874":{"probe_name":"hdf5","function_name":"H5O__ainfo_encode"},"3873":{"probe_name":"hdf5","function_name":"H5O__ainfo_delete"},"3872":{"probe_name":"hdf5","function_name":"H5O__ainfo_decode"},"3871":{"probe_name":"hdf5","function_name":"H5O__ainfo_debug"},"3870":{"probe_name":"hdf5","function_name":"H5O__ainfo_copy_file"},"3869":{"probe_name":"hdf5","function_name":"H5O__ainfo_copy"},"3868":{"probe_name":"hdf5","function_name":"H5O__add_gap.constprop.0"},"3867":{"probe_name":"hdf5","function_name":"H5M_top_term_package"},"3866":{"probe_name":"hdf5","function_name":"H5M_term_package"},"3865":{"probe_name":"hdf5","function_name":"H5M_init"},"3864":{"probe_name":"hdf5","function_name":"H5M__close_cb"},"3863":{"probe_name":"hdf5","function_name":"H5MM_xstrdup"},"3862":{"probe_name":"hdf5","function_name":"H5MM_xfree_const"},"3861":{"probe_name":"hdf5","function_name":"H5MM_xfree"},"3860":{"probe_name":"hdf5","function_name":"H5MM_strndup"},"3859":{"probe_name":"hdf5","function_name":"H5MM_strdup"},"3858":{"probe_name":"hdf5","function_name":"H5MM_realloc"},"3857":{"probe_name":"hdf5","function_name":"H5MF_xfree"},"3856":{"probe_name":"hdf5","function_name":"H5MF_try_shrink"},"3855":{"probe_name":"hdf5","function_name":"H5MF_try_extend"},"3854":{"probe_name":"hdf5","function_name":"H5MF_try_close"},"3853":{"probe_name":"hdf5","function_name":"H5MF_settle_raw_data_fsm"},"3852":{"probe_name":"hdf5","function_name":"H5MF_settle_meta_data_fsm"},"3851":{"probe_name":"hdf5","function_name":"H5MF_sects_debug"},"3850":{"probe_name":"hdf5","function_name":"H5MF_init_merge_flags"},"3849":{"probe_name":"hdf5","function_name":"H5MF_get_freespace"},"3848":{"probe_name":"hdf5","function_name":"H5MF_get_free_sections"},"3847":{"probe_name":"hdf5","function_name":"H5MF_free_aggrs"},"3846":{"probe_name":"hdf5","function_name":"H5MF_close"},"3845":{"probe_name":"hdf5","function_name":"H5MF_alloc_tmp"},"3844":{"probe_name":"hdf5","function_name":"H5MF_alloc"},"3843":{"probe_name":"hdf5","function_name":"H5MF_aggr_vfd_alloc"},"3842":{"probe_name":"hdf5","function_name":"H5MF__start_fstype"},"3841":{"probe_name":"hdf5","function_name":"H5MF__sects_debug_cb"},"3840":{"probe_name":"hdf5","function_name":"H5MF__sects_cb"},"3839":{"probe_name":"hdf5","function_name":"H5MF__sect_valid"},"3838":{"probe_name":"hdf5","function_name":"H5MF__sect_split"},"3837":{"probe_name":"hdf5","function_name":"H5MF__sect_small_merge"},"3836":{"probe_name":"hdf5","function_name":"H5MF__sect_small_can_merge"},"3835":{"probe_name":"hdf5","function_name":"H5MF__sect_small_add"},"3834":{"probe_name":"hdf5","function_name":"H5MF__sect_simple_shrink"},"3833":{"probe_name":"hdf5","function_name":"H5MF__sect_simple_merge"},"3832":{"probe_name":"hdf5","function_name":"H5MF__sect_simple_can_shrink"},"3831":{"probe_name":"hdf5","function_name":"H5MF__sect_simple_can_merge"},"3830":{"probe_name":"hdf5","function_name":"H5MF__sect_new"},"3829":{"probe_name":"hdf5","function_name":"H5MF__sect_large_shrink"},"3828":{"probe_name":"hdf5","function_name":"H5MF__sect_large_merge"},"3827":{"probe_name":"hdf5","function_name":"H5MF__sect_large_can_shrink"},"3826":{"probe_name":"hdf5","function_name":"H5MF__sect_large_can_merge"},"3825":{"probe_name":"hdf5","function_name":"H5MF__sect_free"},"3824":{"probe_name":"hdf5","function_name":"H5MF__sect_deserialize"},"3823":{"probe_name":"hdf5","function_name":"H5MF__open_fstype"},"3822":{"probe_name":"hdf5","function_name":"H5MF__fsm_type_is_self_referential"},"3821":{"probe_name":"hdf5","function_name":"H5MF__fsm_is_self_referential"},"3820":{"probe_name":"hdf5","function_name":"H5MF__find_sect"},"3819":{"probe_name":"hdf5","function_name":"H5MF__close_shrink_eoa"},"3818":{"probe_name":"hdf5","function_name":"H5MF__close_delete_fstype"},"3817":{"probe_name":"hdf5","function_name":"H5MF__alloc_to_fs_type"},"3816":{"probe_name":"hdf5","function_name":"H5MF__aggrs_try_shrink_eoa"},"3815":{"probe_name":"hdf5","function_name":"H5MF__aggr_try_extend"},"3814":{"probe_name":"hdf5","function_name":"H5MF__aggr_query"},"3813":{"probe_name":"hdf5","function_name":"H5MF__aggr_can_absorb"},"3812":{"probe_name":"hdf5","function_name":"H5MF__aggr_alloc"},"3811":{"probe_name":"hdf5","function_name":"H5MF__aggr_absorb"},"3810":{"probe_name":"hdf5","function_name":"H5MF__add_sect"},"3809":{"probe_name":"hdf5","function_name":"H5Lvisit_by_name2"},"3808":{"probe_name":"hdf5","function_name":"H5Lvisit_by_name1"},"3807":{"probe_name":"hdf5","function_name":"H5Lvisit2"},"3806":{"probe_name":"hdf5","function_name":"H5Lvisit1"},"3805":{"probe_name":"hdf5","function_name":"H5Lunregister"},"3804":{"probe_name":"hdf5","function_name":"H5Lunpack_elink_val"},"3803":{"probe_name":"hdf5","function_name":"H5Lregister"},"3802":{"probe_name":"hdf5","function_name":"H5Lmove"},"3801":{"probe_name":"hdf5","function_name":"H5Literate_by_name2"},"3800":{"probe_name":"hdf5","function_name":"H5Literate_by_name1"},"3799":{"probe_name":"hdf5","function_name":"H5Literate_async"},"3798":{"probe_name":"hdf5","function_name":"H5Literate2"},"3797":{"probe_name":"hdf5","function_name":"H5Literate1"},"3796":{"probe_name":"hdf5","function_name":"H5Lis_registered"},"3795":{"probe_name":"hdf5","function_name":"H5Lget_val_by_idx"},"3794":{"probe_name":"hdf5","function_name":"H5Lget_val"},"3793":{"probe_name":"hdf5","function_name":"H5Lget_name_by_idx"},"3792":{"probe_name":"hdf5","function_name":"H5Lget_info_by_idx2"},"3791":{"probe_name":"hdf5","function_name":"H5Lget_info_by_idx1"},"3790":{"probe_name":"hdf5","function_name":"H5Lget_info2"},"3789":{"probe_name":"hdf5","function_name":"H5Lget_info1"},"3788":{"probe_name":"hdf5","function_name":"H5Lexists_async"},"3787":{"probe_name":"hdf5","function_name":"H5Lexists"},"3786":{"probe_name":"hdf5","function_name":"H5Ldelete_by_idx_async"},"3785":{"probe_name":"hdf5","function_name":"H5Ldelete_by_idx"},"3784":{"probe_name":"hdf5","function_name":"H5Ldelete_async"},"3783":{"probe_name":"hdf5","function_name":"H5Ldelete"},"3782":{"probe_name":"hdf5","function_name":"H5Lcreate_ud"},"3781":{"probe_name":"hdf5","function_name":"H5Lcreate_soft_async"},"3780":{"probe_name":"hdf5","function_name":"H5Lcreate_soft"},"3779":{"probe_name":"hdf5","function_name":"H5Lcreate_hard_async"},"3778":{"probe_name":"hdf5","function_name":"H5Lcreate_hard"},"3777":{"probe_name":"hdf5","function_name":"H5Lcreate_external"},"3776":{"probe_name":"hdf5","function_name":"H5Lcopy"},"3775":{"probe_name":"hdf5","function_name":"H5L_unregister"},"3774":{"probe_name":"hdf5","function_name":"H5L_term_package"},"3773":{"probe_name":"hdf5","function_name":"H5L_register_external"},"3772":{"probe_name":"hdf5","function_name":"H5L_register"},"3771":{"probe_name":"hdf5","function_name":"H5L_link_object"},"3770":{"probe_name":"hdf5","function_name":"H5L_link"},"3769":{"probe_name":"hdf5","function_name":"H5L_iterate"},"3768":{"probe_name":"hdf5","function_name":"H5L_is_registered"},"3767":{"probe_name":"hdf5","function_name":"H5L_init"},"3766":{"probe_name":"hdf5","function_name":"H5L_get_ocrt_info"},"3765":{"probe_name":"hdf5","function_name":"H5L_get_info"},"3764":{"probe_name":"hdf5","function_name":"H5L_find_class"},"3763":{"probe_name":"hdf5","function_name":"H5L_exists_tolerant"},"3762":{"probe_name":"hdf5","function_name":"H5L__move_dest_cb"},"3761":{"probe_name":"hdf5","function_name":"H5L__move_cb"},"3760":{"probe_name":"hdf5","function_name":"H5L__move"},"3759":{"probe_name":"hdf5","function_name":"H5L__link_copy_file"},"3758":{"probe_name":"hdf5","function_name":"H5L__link_cb"},"3757":{"probe_name":"hdf5","function_name":"H5L__iterate2_shim"},"3756":{"probe_name":"hdf5","function_name":"H5L__get_val_cb"},"3755":{"probe_name":"hdf5","function_name":"H5L__get_val_by_idx_cb"},"3754":{"probe_name":"hdf5","function_name":"H5L__get_val_by_idx"},"3753":{"probe_name":"hdf5","function_name":"H5L__get_val"},"3752":{"probe_name":"hdf5","function_name":"H5L__get_name_by_idx_cb"},"3751":{"probe_name":"hdf5","function_name":"H5L__get_name_by_idx"},"3750":{"probe_name":"hdf5","function_name":"H5L__get_info_cb"},"3749":{"probe_name":"hdf5","function_name":"H5L__get_info_by_idx_cb"},"3748":{"probe_name":"hdf5","function_name":"H5L__get_info_by_idx"},"3747":{"probe_name":"hdf5","function_name":"H5L__extern_traverse"},"3746":{"probe_name":"hdf5","function_name":"H5L__extern_query"},"3745":{"probe_name":"hdf5","function_name":"H5L__exists_inter_cb"},"3744":{"probe_name":"hdf5","function_name":"H5L__exists_final_cb"},"3743":{"probe_name":"hdf5","function_name":"H5L__exists"},"3742":{"probe_name":"hdf5","function_name":"H5L__delete_cb"},"3741":{"probe_name":"hdf5","function_name":"H5L__delete_by_idx_cb"},"3740":{"probe_name":"hdf5","function_name":"H5L__delete_by_idx"},"3739":{"probe_name":"hdf5","function_name":"H5L__delete"},"3738":{"probe_name":"hdf5","function_name":"H5L__create_ud"},"3737":{"probe_name":"hdf5","function_name":"H5L__create_soft_api_common"},"3736":{"probe_name":"hdf5","function_name":"H5L__create_soft"},"3735":{"probe_name":"hdf5","function_name":"H5L__create_real"},"3734":{"probe_name":"hdf5","function_name":"H5L__create_hard_api_common"},"3733":{"probe_name":"hdf5","function_name":"H5L__create_hard"},"3732":{"probe_name":"hdf5","function_name":"H5Itype_exists"},"3731":{"probe_name":"hdf5","function_name":"H5Isearch"},"3730":{"probe_name":"hdf5","function_name":"H5Iremove_verify"},"3729":{"probe_name":"hdf5","function_name":"H5Iregister_type"},"3728":{"probe_name":"hdf5","function_name":"H5Iregister_future"},"3727":{"probe_name":"hdf5","function_name":"H5Iregister"},"3726":{"probe_name":"hdf5","function_name":"H5Iobject_verify"},"3725":{"probe_name":"hdf5","function_name":"H5Inmembers"},"3724":{"probe_name":"hdf5","function_name":"H5Iiterate"},"3723":{"probe_name":"hdf5","function_name":"H5Iis_valid"},"3722":{"probe_name":"hdf5","function_name":"H5Iinc_type_ref"},"3721":{"probe_name":"hdf5","function_name":"H5Iinc_ref"},"3720":{"probe_name":"hdf5","function_name":"H5Iget_type_ref"},"3719":{"probe_name":"hdf5","function_name":"H5Iget_type"},"3718":{"probe_name":"hdf5","function_name":"H5Iget_ref"},"3717":{"probe_name":"hdf5","function_name":"H5Iget_name"},"3716":{"probe_name":"hdf5","function_name":"H5Iget_file_id"},"3715":{"probe_name":"hdf5","function_name":"H5Idestroy_type"},"3714":{"probe_name":"hdf5","function_name":"H5Idec_type_ref"},"3713":{"probe_name":"hdf5","function_name":"H5Idec_ref"},"3712":{"probe_name":"hdf5","function_name":"H5Iclear_type"},"3711":{"probe_name":"hdf5","function_name":"H5I_term_package"},"3710":{"probe_name":"hdf5","function_name":"H5I_subst"},"3709":{"probe_name":"hdf5","function_name":"H5I_remove"},"3708":{"probe_name":"hdf5","function_name":"H5I_register_using_existing_id"},"3707":{"probe_name":"hdf5","function_name":"H5I_register_type"},"3706":{"probe_name":"hdf5","function_name":"H5I_register"},"3705":{"probe_name":"hdf5","function_name":"H5I_object_verify"},"3704":{"probe_name":"hdf5","function_name":"H5I_object"},"3703":{"probe_name":"hdf5","function_name":"H5I_nmembers"},"3702":{"probe_name":"hdf5","function_name":"H5I_iterate"},"3701":{"probe_name":"hdf5","function_name":"H5I_is_file_object"},"3700":{"probe_name":"hdf5","function_name":"H5I_inc_ref"},"3699":{"probe_name":"hdf5","function_name":"H5I_get_type"},"3698":{"probe_name":"hdf5","function_name":"H5I_get_ref"},"3697":{"probe_name":"hdf5","function_name":"H5I_find_id"},"3696":{"probe_name":"hdf5","function_name":"H5I_dump_ids_for_type"},"3695":{"probe_name":"hdf5","function_name":"H5I_dec_type_ref"},"3694":{"probe_name":"hdf5","function_name":"H5I_dec_ref"},"3693":{"probe_name":"hdf5","function_name":"H5I_dec_app_ref_async"},"3692":{"probe_name":"hdf5","function_name":"H5I_dec_app_ref_always_close_async"},"3691":{"probe_name":"hdf5","function_name":"H5I_dec_app_ref_always_close"},"3690":{"probe_name":"hdf5","function_name":"H5I_dec_app_ref"},"3689":{"probe_name":"hdf5","function_name":"H5I_clear_type"},"3688":{"probe_name":"hdf5","function_name":"H5I__search_cb"},"3687":{"probe_name":"hdf5","function_name":"H5I__remove_verify"},"3686":{"probe_name":"hdf5","function_name":"H5I__remove_common"},"3685":{"probe_name":"hdf5","function_name":"H5I__register"},"3684":{"probe_name":"hdf5","function_name":"H5I__iterate_pub_cb"},"3683":{"probe_name":"hdf5","function_name":"H5I__inc_type_ref"},"3682":{"probe_name":"hdf5","function_name":"H5I__get_type_ref"},"3681":{"probe_name":"hdf5","function_name":"H5I__get_name_test"},"3680":{"probe_name":"hdf5","function_name":"H5I__find_id"},"3679":{"probe_name":"hdf5","function_name":"H5I__destroy_type"},"3678":{"probe_name":"hdf5","function_name":"H5HL_unprotect"},"3677":{"probe_name":"hdf5","function_name":"H5HL_remove"},"3676":{"probe_name":"hdf5","function_name":"H5HL_protect"},"3675":{"probe_name":"hdf5","function_name":"H5HL_offset_into"},"3674":{"probe_name":"hdf5","function_name":"H5HL_insert"},"3673":{"probe_name":"hdf5","function_name":"H5HL_heapsize"},"3672":{"probe_name":"hdf5","function_name":"H5HL_heap_get_size"},"3671":{"probe_name":"hdf5","function_name":"H5HL_get_size"},"3670":{"probe_name":"hdf5","function_name":"H5HL_delete"},"3669":{"probe_name":"hdf5","function_name":"H5HL_debug"},"3668":{"probe_name":"hdf5","function_name":"H5HL_create"},"3667":{"probe_name":"hdf5","function_name":"H5HL__prfx_new"},"3666":{"probe_name":"hdf5","function_name":"H5HL__prfx_dest"},"3665":{"probe_name":"hdf5","function_name":"H5HL__new"},"3664":{"probe_name":"hdf5","function_name":"H5HL__minimize_heap_space"},"3663":{"probe_name":"hdf5","function_name":"H5HL__inc_rc"},"3662":{"probe_name":"hdf5","function_name":"H5HL__hdr_deserialize"},"3661":{"probe_name":"hdf5","function_name":"H5HL__fl_serialize"},"3660":{"probe_name":"hdf5","function_name":"H5HL__fl_deserialize"},"3659":{"probe_name":"hdf5","function_name":"H5HL__dest"},"3658":{"probe_name":"hdf5","function_name":"H5HL__dec_rc"},"3657":{"probe_name":"hdf5","function_name":"H5HL__dblk_realloc"},"3656":{"probe_name":"hdf5","function_name":"H5HL__dblk_new"},"3655":{"probe_name":"hdf5","function_name":"H5HL__dblk_dest"},"3654":{"probe_name":"hdf5","function_name":"H5HL__cache_prefix_serialize"},"3653":{"probe_name":"hdf5","function_name":"H5HL__cache_prefix_image_len"},"3652":{"probe_name":"hdf5","function_name":"H5HL__cache_prefix_get_initial_load_size"},"3651":{"probe_name":"hdf5","function_name":"H5HL__cache_prefix_get_final_load_size"},"3650":{"probe_name":"hdf5","function_name":"H5HL__cache_prefix_free_icr"},"3649":{"probe_name":"hdf5","function_name":"H5HL__cache_prefix_deserialize"},"3648":{"probe_name":"hdf5","function_name":"H5HL__cache_datablock_serialize"},"3647":{"probe_name":"hdf5","function_name":"H5HL__cache_datablock_notify"},"3646":{"probe_name":"hdf5","function_name":"H5HL__cache_datablock_image_len"},"3645":{"probe_name":"hdf5","function_name":"H5HL__cache_datablock_get_initial_load_size"},"3644":{"probe_name":"hdf5","function_name":"H5HL__cache_datablock_free_icr"},"3643":{"probe_name":"hdf5","function_name":"H5HL__cache_datablock_deserialize"},"3642":{"probe_name":"hdf5","function_name":"H5HG_remove"},"3641":{"probe_name":"hdf5","function_name":"H5HG_read"},"3640":{"probe_name":"hdf5","function_name":"H5HG_link"},"3639":{"probe_name":"hdf5","function_name":"H5HG_insert"},"3638":{"probe_name":"hdf5","function_name":"H5HG_get_size"},"3637":{"probe_name":"hdf5","function_name":"H5HG_get_obj_size"},"3636":{"probe_name":"hdf5","function_name":"H5HG_get_free_size"},"3635":{"probe_name":"hdf5","function_name":"H5HG_get_addr"},"3634":{"probe_name":"hdf5","function_name":"H5HG_extend"},"3633":{"probe_name":"hdf5","function_name":"H5HG_debug"},"3632":{"probe_name":"hdf5","function_name":"H5HG__protect"},"3631":{"probe_name":"hdf5","function_name":"H5HG__free"},"3630":{"probe_name":"hdf5","function_name":"H5HG__cache_heap_serialize"},"3629":{"probe_name":"hdf5","function_name":"H5HG__cache_heap_image_len"},"3628":{"probe_name":"hdf5","function_name":"H5HG__cache_heap_get_initial_load_size"},"3627":{"probe_name":"hdf5","function_name":"H5HG__cache_heap_get_final_load_size"},"3626":{"probe_name":"hdf5","function_name":"H5HG__cache_heap_free_icr"},"3625":{"probe_name":"hdf5","function_name":"H5HG__cache_heap_deserialize"},"3624":{"probe_name":"hdf5","function_name":"H5HF_write"},"3623":{"probe_name":"hdf5","function_name":"H5HF_stat_info"},"3622":{"probe_name":"hdf5","function_name":"H5HF_size"},"3621":{"probe_name":"hdf5","function_name":"H5HF_sects_debug_cb"},"3620":{"probe_name":"hdf5","function_name":"H5HF_sects_debug"},"3619":{"probe_name":"hdf5","function_name":"H5HF_remove"},"3618":{"probe_name":"hdf5","function_name":"H5HF_read"},"3617":{"probe_name":"hdf5","function_name":"H5HF_open"},"3616":{"probe_name":"hdf5","function_name":"H5HF_op"},"3615":{"probe_name":"hdf5","function_name":"H5HF_insert"},"3614":{"probe_name":"hdf5","function_name":"H5HF_id_print"},"3613":{"probe_name":"hdf5","function_name":"H5HF_iblock_print.localalias"},"3612":{"probe_name":"hdf5","function_name":"H5HF_iblock_print"},"3611":{"probe_name":"hdf5","function_name":"H5HF_iblock_debug"},"3610":{"probe_name":"hdf5","function_name":"H5HF_hdr_print"},"3609":{"probe_name":"hdf5","function_name":"H5HF_hdr_debug"},"3608":{"probe_name":"hdf5","function_name":"H5HF_get_tiny_info_test"},"3607":{"probe_name":"hdf5","function_name":"H5HF_get_obj_off"},"3606":{"probe_name":"hdf5","function_name":"H5HF_get_obj_len"},"3605":{"probe_name":"hdf5","function_name":"H5HF_get_max_root_rows"},"3604":{"probe_name":"hdf5","function_name":"H5HF_get_id_type_test"},"3603":{"probe_name":"hdf5","function_name":"H5HF_get_id_off_test"},"3602":{"probe_name":"hdf5","function_name":"H5HF_get_id_len"},"3601":{"probe_name":"hdf5","function_name":"H5HF_get_iblock_max_drows_test"},"3600":{"probe_name":"hdf5","function_name":"H5HF_get_huge_info_test"},"3599":{"probe_name":"hdf5","function_name":"H5HF_get_heap_addr"},"3598":{"probe_name":"hdf5","function_name":"H5HF_get_dtable_width_test"},"3597":{"probe_name":"hdf5","function_name":"H5HF_get_dtable_max_drows_test"},"3596":{"probe_name":"hdf5","function_name":"H5HF_get_dblock_size_test"},"3595":{"probe_name":"hdf5","function_name":"H5HF_get_dblock_free_test"},"3594":{"probe_name":"hdf5","function_name":"H5HF_get_cparam_test"},"3593":{"probe_name":"hdf5","function_name":"H5HF_delete"},"3592":{"probe_name":"hdf5","function_name":"H5HF_dblock_debug_cb"},"3591":{"probe_name":"hdf5","function_name":"H5HF_dblock_debug"},"3590":{"probe_name":"hdf5","function_name":"H5HF_create"},"3589":{"probe_name":"hdf5","function_name":"H5HF_cmp_cparam_test"},"3588":{"probe_name":"hdf5","function_name":"H5HF_close"},"3587":{"probe_name":"hdf5","function_name":"H5HF__tiny_remove"},"3586":{"probe_name":"hdf5","function_name":"H5HF__tiny_read"},"3585":{"probe_name":"hdf5","function_name":"H5HF__tiny_op"},"3584":{"probe_name":"hdf5","function_name":"H5HF__tiny_insert"},"3583":{"probe_name":"hdf5","function_name":"H5HF__tiny_init"},"3582":{"probe_name":"hdf5","function_name":"H5HF__tiny_get_obj_len"},"3581":{"probe_name":"hdf5","function_name":"H5HF__space_start"},"3580":{"probe_name":"hdf5","function_name":"H5HF__space_size"},"3579":{"probe_name":"hdf5","function_name":"H5HF__space_sect_change_class"},"3578":{"probe_name":"hdf5","function_name":"H5HF__space_revert_root_cb"},"3577":{"probe_name":"hdf5","function_name":"H5HF__space_revert_root"},"3576":{"probe_name":"hdf5","function_name":"H5HF__space_remove"},"3575":{"probe_name":"hdf5","function_name":"H5HF__space_find"},"3574":{"probe_name":"hdf5","function_name":"H5HF__space_delete"},"3573":{"probe_name":"hdf5","function_name":"H5HF__space_create_root_cb"},"3572":{"probe_name":"hdf5","function_name":"H5HF__space_create_root"},"3571":{"probe_name":"hdf5","function_name":"H5HF__space_close"},"3570":{"probe_name":"hdf5","function_name":"H5HF__space_add"},"3569":{"probe_name":"hdf5","function_name":"H5HF__sect_single_valid"},"3568":{"probe_name":"hdf5","function_name":"H5HF__sect_single_shrink"},"3567":{"probe_name":"hdf5","function_name":"H5HF__sect_single_revive"},"3566":{"probe_name":"hdf5","function_name":"H5HF__sect_single_reduce"},"3565":{"probe_name":"hdf5","function_name":"H5HF__sect_single_new"},"3564":{"probe_name":"hdf5","function_name":"H5HF__sect_single_merge"},"3563":{"probe_name":"hdf5","function_name":"H5HF__sect_single_full_dblock"},"3562":{"probe_name":"hdf5","function_name":"H5HF__sect_single_free"},"3561":{"probe_name":"hdf5","function_name":"H5HF__sect_single_deserialize"},"3560":{"probe_name":"hdf5","function_name":"H5HF__sect_single_dblock_info"},"3559":{"probe_name":"hdf5","function_name":"H5HF__sect_single_can_shrink"},"3558":{"probe_name":"hdf5","function_name":"H5HF__sect_single_can_merge"},"3557":{"probe_name":"hdf5","function_name":"H5HF__sect_single_add"},"3556":{"probe_name":"hdf5","function_name":"H5HF__sect_row_valid"},"3555":{"probe_name":"hdf5","function_name":"H5HF__sect_row_term_cls"},"3554":{"probe_name":"hdf5","function_name":"H5HF__sect_row_shrink"},"3553":{"probe_name":"hdf5","function_name":"H5HF__sect_row_serialize"},"3552":{"probe_name":"hdf5","function_name":"H5HF__sect_row_revive"},"3551":{"probe_name":"hdf5","function_name":"H5HF__sect_row_reduce"},"3550":{"probe_name":"hdf5","function_name":"H5HF__sect_row_merge"},"3549":{"probe_name":"hdf5","function_name":"H5HF__sect_row_init_cls"},"3548":{"probe_name":"hdf5","function_name":"H5HF__sect_row_get_iblock"},"3547":{"probe_name":"hdf5","function_name":"H5HF__sect_row_free"},"3546":{"probe_name":"hdf5","function_name":"H5HF__sect_row_first.part.0"},"3545":{"probe_name":"hdf5","function_name":"H5HF__sect_row_deserialize"},"3544":{"probe_name":"hdf5","function_name":"H5HF__sect_row_debug"},"3543":{"probe_name":"hdf5","function_name":"H5HF__sect_row_can_shrink"},"3542":{"probe_name":"hdf5","function_name":"H5HF__sect_row_can_merge"},"3541":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_valid.isra.0"},"3540":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_term_cls"},"3539":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_shrink"},"3538":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_serialize"},"3537":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_revive"},"3536":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_reduce"},"3535":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_new"},"3534":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_init_rows"},"3533":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_init_cls"},"3532":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_free"},"3531":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_first"},"3530":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_decr"},"3529":{"probe_name":"hdf5","function_name":"H5HF__sect_indirect_add"},"3528":{"probe_name":"hdf5","function_name":"H5HF__op_write"},"3527":{"probe_name":"hdf5","function_name":"H5HF__op_read"},"3526":{"probe_name":"hdf5","function_name":"H5HF__man_write"},"3525":{"probe_name":"hdf5","function_name":"H5HF__man_remove"},"3524":{"probe_name":"hdf5","function_name":"H5HF__man_read"},"3523":{"probe_name":"hdf5","function_name":"H5HF__man_op_real"},"3522":{"probe_name":"hdf5","function_name":"H5HF__man_op"},"3521":{"probe_name":"hdf5","function_name":"H5HF__man_iter_up"},"3520":{"probe_name":"hdf5","function_name":"H5HF__man_iter_start_offset"},"3519":{"probe_name":"hdf5","function_name":"H5HF__man_iter_start_entry"},"3518":{"probe_name":"hdf5","function_name":"H5HF__man_iter_set_entry"},"3517":{"probe_name":"hdf5","function_name":"H5HF__man_iter_reset"},"3516":{"probe_name":"hdf5","function_name":"H5HF__man_iter_ready"},"3515":{"probe_name":"hdf5","function_name":"H5HF__man_iter_next"},"3514":{"probe_name":"hdf5","function_name":"H5HF__man_iter_init"},"3513":{"probe_name":"hdf5","function_name":"H5HF__man_iter_down"},"3512":{"probe_name":"hdf5","function_name":"H5HF__man_iter_curr"},"3511":{"probe_name":"hdf5","function_name":"H5HF__man_insert"},"3510":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_unprotect"},"3509":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_size.localalias"},"3508":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_size"},"3507":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_root_double"},"3506":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_root_create"},"3505":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_protect"},"3504":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_parent_info"},"3503":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_entry_addr"},"3502":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_detach.localalias"},"3501":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_detach"},"3500":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_dest"},"3499":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_delete.localalias"},"3498":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_delete"},"3497":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_create"},"3496":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_attach"},"3495":{"probe_name":"hdf5","function_name":"H5HF__man_iblock_alloc_row"},"3494":{"probe_name":"hdf5","function_name":"H5HF__man_get_obj_off"},"3493":{"probe_name":"hdf5","function_name":"H5HF__man_get_obj_len"},"3492":{"probe_name":"hdf5","function_name":"H5HF__man_dblock_protect"},"3491":{"probe_name":"hdf5","function_name":"H5HF__man_dblock_new"},"3490":{"probe_name":"hdf5","function_name":"H5HF__man_dblock_locate"},"3489":{"probe_name":"hdf5","function_name":"H5HF__man_dblock_destroy"},"3488":{"probe_name":"hdf5","function_name":"H5HF__man_dblock_dest"},"3487":{"probe_name":"hdf5","function_name":"H5HF__man_dblock_delete"},"3486":{"probe_name":"hdf5","function_name":"H5HF__man_dblock_create"},"3485":{"probe_name":"hdf5","function_name":"H5HF__iblock_incr"},"3484":{"probe_name":"hdf5","function_name":"H5HF__iblock_dirty"},"3483":{"probe_name":"hdf5","function_name":"H5HF__iblock_decr"},"3482":{"probe_name":"hdf5","function_name":"H5HF__huge_write"},"3481":{"probe_name":"hdf5","function_name":"H5HF__huge_term"},"3480":{"probe_name":"hdf5","function_name":"H5HF__huge_remove"},"3479":{"probe_name":"hdf5","function_name":"H5HF__huge_read"},"3478":{"probe_name":"hdf5","function_name":"H5HF__huge_op_real"},"3477":{"probe_name":"hdf5","function_name":"H5HF__huge_op"},"3476":{"probe_name":"hdf5","function_name":"H5HF__huge_insert"},"3475":{"probe_name":"hdf5","function_name":"H5HF__huge_init"},"3474":{"probe_name":"hdf5","function_name":"H5HF__huge_get_obj_off"},"3473":{"probe_name":"hdf5","function_name":"H5HF__huge_get_obj_len"},"3472":{"probe_name":"hdf5","function_name":"H5HF__huge_delete"},"3471":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_indir_store"},"3470":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_indir_remove"},"3469":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_indir_found"},"3468":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_indir_encode"},"3467":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_indir_decode"},"3466":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_indir_debug"},"3465":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_indir_compare"},"3464":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_indir_store"},"3463":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_indir_remove"},"3462":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_indir_found"},"3461":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_indir_encode"},"3460":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_indir_decode"},"3459":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_indir_debug"},"3458":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_indir_compare"},"3457":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_dir_store"},"3456":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_dir_remove"},"3455":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_dir_found"},"3454":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_dir_encode"},"3453":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_dir_decode"},"3452":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_dir_debug"},"3451":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_filt_dir_compare"},"3450":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_dst_context"},"3449":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_dir_store"},"3448":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_dir_remove"},"3447":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_dir_encode"},"3446":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_dir_decode"},"3445":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_dir_debug"},"3444":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_dir_compare"},"3443":{"probe_name":"hdf5","function_name":"H5HF__huge_bt2_crt_context"},"3442":{"probe_name":"hdf5","function_name":"H5HF__hdr_update_iter"},"3441":{"probe_name":"hdf5","function_name":"H5HF__hdr_start_iter"},"3440":{"probe_name":"hdf5","function_name":"H5HF__hdr_skip_blocks"},"3439":{"probe_name":"hdf5","function_name":"H5HF__hdr_reverse_iter"},"3438":{"probe_name":"hdf5","function_name":"H5HF__hdr_reset_iter"},"3437":{"probe_name":"hdf5","function_name":"H5HF__hdr_protect"},"3436":{"probe_name":"hdf5","function_name":"H5HF__hdr_incr"},"3435":{"probe_name":"hdf5","function_name":"H5HF__hdr_inc_iter"},"3434":{"probe_name":"hdf5","function_name":"H5HF__hdr_inc_alloc"},"3433":{"probe_name":"hdf5","function_name":"H5HF__hdr_fuse_incr"},"3432":{"probe_name":"hdf5","function_name":"H5HF__hdr_fuse_decr"},"3431":{"probe_name":"hdf5","function_name":"H5HF__hdr_free"},"3430":{"probe_name":"hdf5","function_name":"H5HF__hdr_finish_init_phase2"},"3429":{"probe_name":"hdf5","function_name":"H5HF__hdr_finish_init_phase1"},"3428":{"probe_name":"hdf5","function_name":"H5HF__hdr_finish_init"},"3427":{"probe_name":"hdf5","function_name":"H5HF__hdr_empty"},"3426":{"probe_name":"hdf5","function_name":"H5HF__hdr_dirty"},"3425":{"probe_name":"hdf5","function_name":"H5HF__hdr_delete"},"3424":{"probe_name":"hdf5","function_name":"H5HF__hdr_decr"},"3423":{"probe_name":"hdf5","function_name":"H5HF__hdr_create"},"3422":{"probe_name":"hdf5","function_name":"H5HF__hdr_alloc"},"3421":{"probe_name":"hdf5","function_name":"H5HF__hdr_adjust_heap"},"3420":{"probe_name":"hdf5","function_name":"H5HF__hdr_adj_free"},"3419":{"probe_name":"hdf5","function_name":"H5HF__dtable_span_size"},"3418":{"probe_name":"hdf5","function_name":"H5HF__dtable_size_to_rows"},"3417":{"probe_name":"hdf5","function_name":"H5HF__dtable_size_to_row"},"3416":{"probe_name":"hdf5","function_name":"H5HF__dtable_lookup"},"3415":{"probe_name":"hdf5","function_name":"H5HF__dtable_init"},"3414":{"probe_name":"hdf5","function_name":"H5HF__dtable_dest"},"3413":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_verify_chksum"},"3412":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_serialize"},"3411":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_pre_serialize"},"3410":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_notify"},"3409":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_image_len"},"3408":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_get_initial_load_size"},"3407":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_free_icr"},"3406":{"probe_name":"hdf5","function_name":"H5HF__cache_iblock_deserialize"},"3405":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_verify_chksum"},"3404":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_serialize"},"3403":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_pre_serialize"},"3402":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_image_len"},"3401":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_get_initial_load_size"},"3400":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_get_final_load_size"},"3399":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_free_icr"},"3398":{"probe_name":"hdf5","function_name":"H5HF__cache_hdr_deserialize"},"3397":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_verify_chksum"},"3396":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_serialize"},"3395":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_pre_serialize"},"3394":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_notify"},"3393":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_image_len"},"3392":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_get_initial_load_size"},"3391":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_fsf_size"},"3390":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_free_icr"},"3389":{"probe_name":"hdf5","function_name":"H5HF__cache_dblock_deserialize"},"3388":{"probe_name":"hdf5","function_name":"H5Gunlink"},"3387":{"probe_name":"hdf5","function_name":"H5Gset_comment"},"3386":{"probe_name":"hdf5","function_name":"H5Grefresh"},"3385":{"probe_name":"hdf5","function_name":"H5Gopen_async"},"3384":{"probe_name":"hdf5","function_name":"H5Gopen2"},"3383":{"probe_name":"hdf5","function_name":"H5Gopen1"},"3382":{"probe_name":"hdf5","function_name":"H5Gmove2"},"3381":{"probe_name":"hdf5","function_name":"H5Gmove"},"3380":{"probe_name":"hdf5","function_name":"H5Glink2"},"3379":{"probe_name":"hdf5","function_name":"H5Glink"},"3378":{"probe_name":"hdf5","function_name":"H5Giterate"},"3377":{"probe_name":"hdf5","function_name":"H5Gget_objtype_by_idx"},"3376":{"probe_name":"hdf5","function_name":"H5Gget_objname_by_idx"},"3375":{"probe_name":"hdf5","function_name":"H5Gget_objinfo"},"3374":{"probe_name":"hdf5","function_name":"H5Gget_num_objs"},"3373":{"probe_name":"hdf5","function_name":"H5Gget_linkval"},"3372":{"probe_name":"hdf5","function_name":"H5Gget_info_by_name_async"},"3371":{"probe_name":"hdf5","function_name":"H5Gget_info_by_name"},"3370":{"probe_name":"hdf5","function_name":"H5Gget_info_by_idx_async"},"3369":{"probe_name":"hdf5","function_name":"H5Gget_info_by_idx"},"3368":{"probe_name":"hdf5","function_name":"H5Gget_info_async"},"3346":{"probe_name":"hdf5","function_name":"H5G_obj_remove"},"3345":{"probe_name":"hdf5","function_name":"H5G_obj_lookup_by_idx"},"3344":{"probe_name":"hdf5","function_name":"H5G_obj_insert.localalias"},"3343":{"probe_name":"hdf5","function_name":"H5G_obj_insert"},"3342":{"probe_name":"hdf5","function_name":"H5G_obj_get_name_by_idx"},"3341":{"probe_name":"hdf5","function_name":"H5G_normalize"},"3340":{"probe_name":"hdf5","function_name":"H5G_node_debug"},"3339":{"probe_name":"hdf5","function_name":"H5G_node_close"},"3338":{"probe_name":"hdf5","function_name":"H5G_nameof"},"3337":{"probe_name":"hdf5","function_name":"H5G_name_set"},"3336":{"probe_name":"hdf5","function_name":"H5G_name_reset"},"3335":{"probe_name":"hdf5","function_name":"H5G_name_replace"},"2086":{"probe_name":"hdf5","function_name":"H5D__typeinfo_init"},"2085":{"probe_name":"hdf5","function_name":"H5D__single_idx_size"},"2084":{"probe_name":"hdf5","function_name":"H5D__single_idx_reset"},"2083":{"probe_name":"hdf5","function_name":"H5D__single_idx_remove"},"2082":{"probe_name":"hdf5","function_name":"H5D__single_idx_open"},"2081":{"probe_name":"hdf5","function_name":"H5D__single_idx_load_metadata"},"2080":{"probe_name":"hdf5","function_name":"H5D__single_idx_iterate"},"2079":{"probe_name":"hdf5","function_name":"H5D__single_idx_is_space_alloc"},"2078":{"probe_name":"hdf5","function_name":"H5D__single_idx_is_open"},"2077":{"probe_name":"hdf5","function_name":"H5D__single_idx_insert"},"2076":{"probe_name":"hdf5","function_name":"H5D__single_idx_init"},"2075":{"probe_name":"hdf5","function_name":"H5D__single_idx_get_addr"},"2074":{"probe_name":"hdf5","function_name":"H5D__single_idx_dump"},"2073":{"probe_name":"hdf5","function_name":"H5D__single_idx_delete"},"2072":{"probe_name":"hdf5","function_name":"H5D__single_idx_create"},"2071":{"probe_name":"hdf5","function_name":"H5D__single_idx_copy_setup"},"2070":{"probe_name":"hdf5","function_name":"H5D__single_idx_close"},"2069":{"probe_name":"hdf5","function_name":"H5D__set_extent"},"2068":{"probe_name":"hdf5","function_name":"H5D__select_write"},"2067":{"probe_name":"hdf5","function_name":"H5D__select_read"},"2066":{"probe_name":"hdf5","function_name":"H5D__select_io"},"2065":{"probe_name":"hdf5","function_name":"H5D__scatter_mem"},"2064":{"probe_name":"hdf5","function_name":"H5D__scatter_file"},"2063":{"probe_name":"hdf5","function_name":"H5D__scatgath_write_select"},"2062":{"probe_name":"hdf5","function_name":"H5D__scatgath_write"},"2061":{"probe_name":"hdf5","function_name":"H5D__scatgath_read_select"},"2060":{"probe_name":"hdf5","function_name":"H5D__scatgath_read"},"2059":{"probe_name":"hdf5","function_name":"H5D__refresh"},"2058":{"probe_name":"hdf5","function_name":"H5D__read_api_common.constprop.0"},"2057":{"probe_name":"hdf5","function_name":"H5D__read_api_common"},"2056":{"probe_name":"hdf5","function_name":"H5D__read"},"2055":{"probe_name":"hdf5","function_name":"H5D__piece_mem_cb"},"2054":{"probe_name":"hdf5","function_name":"H5D__piece_io"},"2053":{"probe_name":"hdf5","function_name":"H5D__piece_file_cb"},"2052":{"probe_name":"hdf5","function_name":"H5D__open_name"},"2051":{"probe_name":"hdf5","function_name":"H5D__nonexistent_readvv_cb"},"2050":{"probe_name":"hdf5","function_name":"H5D__nonexistent_readvv"},"2049":{"probe_name":"hdf5","function_name":"H5D__none_idx_size"},"2048":{"probe_name":"hdf5","function_name":"H5D__none_idx_reset"},"2047":{"probe_name":"hdf5","function_name":"H5D__none_idx_remove"},"2046":{"probe_name":"hdf5","function_name":"H5D__none_idx_open"},"2045":{"probe_name":"hdf5","function_name":"H5D__none_idx_load_metadata"},"2044":{"probe_name":"hdf5","function_name":"H5D__none_idx_iterate"},"2043":{"probe_name":"hdf5","function_name":"H5D__none_idx_is_space_alloc"},"2042":{"probe_name":"hdf5","function_name":"H5D__none_idx_is_open"},"2041":{"probe_name":"hdf5","function_name":"H5D__none_idx_get_addr"},"2040":{"probe_name":"hdf5","function_name":"H5D__none_idx_dump"},"2039":{"probe_name":"hdf5","function_name":"H5D__none_idx_delete"},"2038":{"probe_name":"hdf5","function_name":"H5D__none_idx_create"},"2037":{"probe_name":"hdf5","function_name":"H5D__none_idx_copy_setup"},"2036":{"probe_name":"hdf5","function_name":"H5D__none_idx_close"},"2035":{"probe_name":"hdf5","function_name":"H5D__new"},"2034":{"probe_name":"hdf5","function_name":"H5D__multi_chunk_filtered_collective_io.constprop.0"},"2033":{"probe_name":"hdf5","function_name":"H5D__multi_chunk_collective_io"},"2032":{"probe_name":"hdf5","function_name":"H5D__mpio_share_chunk_modification_data.constprop.0"},"2031":{"probe_name":"hdf5","function_name":"H5D__mpio_select_write"},"2030":{"probe_name":"hdf5","function_name":"H5D__mpio_select_read"},"2029":{"probe_name":"hdf5","function_name":"H5D__mpio_redistribute_shared_chunks"},"2028":{"probe_name":"hdf5","function_name":"H5D__mpio_opt_possible"},"2027":{"probe_name":"hdf5","function_name":"H5D__mpio_get_no_coll_cause_strings"},"2026":{"probe_name":"hdf5","function_name":"H5D__mpio_get_chunk_alloc_info_types.constprop.0"},"2025":{"probe_name":"hdf5","function_name":"H5D__mpio_collective_filtered_vec_io"},"2024":{"probe_name":"hdf5","function_name":"H5D__mpio_collective_filtered_chunk_update"},"2023":{"probe_name":"hdf5","function_name":"H5D__mpio_collective_filtered_chunk_reinsert"},"2022":{"probe_name":"hdf5","function_name":"H5D__mpio_collective_filtered_chunk_read.constprop.0"},"2021":{"probe_name":"hdf5","function_name":"H5D__mark"},"2020":{"probe_name":"hdf5","function_name":"H5D__link_piece_collective_io.constprop.0"},"2019":{"probe_name":"hdf5","function_name":"H5D__link_chunk_filtered_collective_io"},"2018":{"probe_name":"hdf5","function_name":"H5D__layout_version_test"},"2017":{"probe_name":"hdf5","function_name":"H5D__layout_type_test"},"2016":{"probe_name":"hdf5","function_name":"H5D__layout_set_version"},"2015":{"probe_name":"hdf5","function_name":"H5D__layout_set_latest_indexing"},"2014":{"probe_name":"hdf5","function_name":"H5D__layout_set_io_ops"},"2013":{"probe_name":"hdf5","function_name":"H5D__layout_oh_write"},"2012":{"probe_name":"hdf5","function_name":"H5D__layout_oh_read"},"2011":{"probe_name":"hdf5","function_name":"H5D__layout_oh_create"},"2010":{"probe_name":"hdf5","function_name":"H5D__layout_meta_size"},"2009":{"probe_name":"hdf5","function_name":"H5D__layout_idx_type_test"},"2008":{"probe_name":"hdf5","function_name":"H5D__layout_contig_size_test"},"2007":{"probe_name":"hdf5","function_name":"H5D__layout_compact_dirty_test"},"2006":{"probe_name":"hdf5","function_name":"H5D__ioinfo_adjust"},"2005":{"probe_name":"hdf5","function_name":"H5D__inter_collective_io"},"2004":{"probe_name":"hdf5","function_name":"H5D__init_storage"},"2003":{"probe_name":"hdf5","function_name":"H5D__get_type"},"2002":{"probe_name":"hdf5","function_name":"H5D__get_storage_size"},"2001":{"probe_name":"hdf5","function_name":"H5D__get_space_status"},"2000":{"probe_name":"hdf5","function_name":"H5D__get_space"},"1999":{"probe_name":"hdf5","function_name":"H5D__get_offset"},"1998":{"probe_name":"hdf5","function_name":"H5D__get_num_chunks_cb"},"1997":{"probe_name":"hdf5","function_name":"H5D__get_num_chunks"},"1996":{"probe_name":"hdf5","function_name":"H5D__get_chunk_storage_size"},"1995":{"probe_name":"hdf5","function_name":"H5D__get_chunk_info_cb"},"1994":{"probe_name":"hdf5","function_name":"H5D__get_chunk_info_by_coord_cb"},"1993":{"probe_name":"hdf5","function_name":"H5D__get_chunk_info_by_coord"},"1992":{"probe_name":"hdf5","function_name":"H5D__get_chunk_info"},"1991":{"probe_name":"hdf5","function_name":"H5D__gather_mem"},"1990":{"probe_name":"hdf5","function_name":"H5D__gather_file"},"1989":{"probe_name":"hdf5","function_name":"H5D__free_piece_info"},"1988":{"probe_name":"hdf5","function_name":"H5D__format_convert"},"1987":{"probe_name":"hdf5","function_name":"H5D__flush_sieve_buf"},"1986":{"probe_name":"hdf5","function_name":"H5D__flush_real"},"1985":{"probe_name":"hdf5","function_name":"H5D__flush_all_cb"},"1984":{"probe_name":"hdf5","function_name":"H5D__flush"},"1983":{"probe_name":"hdf5","function_name":"H5D__fill_term"},"1982":{"probe_name":"hdf5","function_name":"H5D__fill_refill_vl"},"1981":{"probe_name":"hdf5","function_name":"H5D__fill_init"},"1980":{"probe_name":"hdf5","function_name":"H5D__fill"},"1979":{"probe_name":"hdf5","function_name":"H5D__farray_idx_size"},"1978":{"probe_name":"hdf5","function_name":"H5D__farray_idx_reset"},"1977":{"probe_name":"hdf5","function_name":"H5D__farray_idx_remove"},"1976":{"probe_name":"hdf5","function_name":"H5D__farray_idx_open"},"1975":{"probe_name":"hdf5","function_name":"H5D__farray_idx_load_metadata"},"1974":{"probe_name":"hdf5","function_name":"H5D__farray_idx_iterate_cb"},"1973":{"probe_name":"hdf5","function_name":"H5D__farray_idx_iterate"},"1972":{"probe_name":"hdf5","function_name":"H5D__farray_idx_is_space_alloc"},"1971":{"probe_name":"hdf5","function_name":"H5D__farray_idx_is_open"},"1970":{"probe_name":"hdf5","function_name":"H5D__farray_idx_insert"},"1969":{"probe_name":"hdf5","function_name":"H5D__farray_idx_init"},"1968":{"probe_name":"hdf5","function_name":"H5D__farray_idx_get_addr"},"1967":{"probe_name":"hdf5","function_name":"H5D__farray_idx_dump"},"1966":{"probe_name":"hdf5","function_name":"H5D__farray_idx_dest"},"1965":{"probe_name":"hdf5","function_name":"H5D__farray_idx_depend"},"1964":{"probe_name":"hdf5","function_name":"H5D__farray_idx_delete_cb"},"1963":{"probe_name":"hdf5","function_name":"H5D__farray_idx_delete"},"1962":{"probe_name":"hdf5","function_name":"H5D__farray_idx_create"},"1961":{"probe_name":"hdf5","function_name":"H5D__farray_idx_copy_shutdown"},"1960":{"probe_name":"hdf5","function_name":"H5D__farray_idx_copy_setup"},"1959":{"probe_name":"hdf5","function_name":"H5D__farray_idx_close"},"1958":{"probe_name":"hdf5","function_name":"H5D__farray_filt_fill"},"1957":{"probe_name":"hdf5","function_name":"H5D__farray_filt_encode"},"1956":{"probe_name":"hdf5","function_name":"H5D__farray_filt_decode"},"1955":{"probe_name":"hdf5","function_name":"H5D__farray_filt_debug"},"1954":{"probe_name":"hdf5","function_name":"H5D__farray_fill"},"1953":{"probe_name":"hdf5","function_name":"H5D__farray_encode"},"1952":{"probe_name":"hdf5","function_name":"H5D__farray_dst_dbg_context"},"1951":{"probe_name":"hdf5","function_name":"H5D__farray_dst_context"},"1950":{"probe_name":"hdf5","function_name":"H5D__farray_decode"},"1949":{"probe_name":"hdf5","function_name":"H5D__farray_debug"},"1948":{"probe_name":"hdf5","function_name":"H5D__farray_crt_dbg_context"},"1947":{"probe_name":"hdf5","function_name":"H5D__farray_crt_context"},"1946":{"probe_name":"hdf5","function_name":"H5D__efl_writevv_cb"},"1945":{"probe_name":"hdf5","function_name":"H5D__efl_writevv"},"1944":{"probe_name":"hdf5","function_name":"H5D__efl_readvv_cb"},"1943":{"probe_name":"hdf5","function_name":"H5D__efl_readvv"},"1942":{"probe_name":"hdf5","function_name":"H5D__efl_is_space_alloc"},"1941":{"probe_name":"hdf5","function_name":"H5D__efl_io_init"},"1940":{"probe_name":"hdf5","function_name":"H5D__efl_init"},"1939":{"probe_name":"hdf5","function_name":"H5D__efl_construct"},"1938":{"probe_name":"hdf5","function_name":"H5D__efl_bh_info"},"1937":{"probe_name":"hdf5","function_name":"H5D__earray_idx_size"},"1936":{"probe_name":"hdf5","function_name":"H5D__earray_idx_resize"},"1935":{"probe_name":"hdf5","function_name":"H5D__earray_idx_reset"},"1934":{"probe_name":"hdf5","function_name":"H5D__earray_idx_remove"},"1933":{"probe_name":"hdf5","function_name":"H5D__earray_idx_open"},"1932":{"probe_name":"hdf5","function_name":"H5D__earray_idx_load_metadata"},"1931":{"probe_name":"hdf5","function_name":"H5D__earray_idx_iterate_cb"},"1930":{"probe_name":"hdf5","function_name":"H5D__earray_idx_iterate"},"1929":{"probe_name":"hdf5","function_name":"H5D__earray_idx_is_space_alloc"},"1928":{"probe_name":"hdf5","function_name":"H5D__earray_idx_is_open"},"1927":{"probe_name":"hdf5","function_name":"H5D__earray_idx_insert"},"1926":{"probe_name":"hdf5","function_name":"H5D__earray_idx_init"},"1925":{"probe_name":"hdf5","function_name":"H5D__earray_idx_get_addr"},"1924":{"probe_name":"hdf5","function_name":"H5D__earray_idx_dump"},"1923":{"probe_name":"hdf5","function_name":"H5D__earray_idx_dest"},"1922":{"probe_name":"hdf5","function_name":"H5D__earray_idx_depend"},"1921":{"probe_name":"hdf5","function_name":"H5D__earray_idx_delete_cb"},"1920":{"probe_name":"hdf5","function_name":"H5D__earray_idx_delete"},"1919":{"probe_name":"hdf5","function_name":"H5D__earray_idx_create"},"1918":{"probe_name":"hdf5","function_name":"H5D__earray_idx_copy_shutdown"},"1917":{"probe_name":"hdf5","function_name":"H5D__earray_idx_copy_setup"},"1916":{"probe_name":"hdf5","function_name":"H5D__earray_idx_close"},"1915":{"probe_name":"hdf5","function_name":"H5D__earray_filt_fill"},"1914":{"probe_name":"hdf5","function_name":"H5D__earray_filt_encode"},"1913":{"probe_name":"hdf5","function_name":"H5D__earray_filt_decode"},"1912":{"probe_name":"hdf5","function_name":"H5D__earray_filt_debug"},"1911":{"probe_name":"hdf5","function_name":"H5D__earray_fill"},"1910":{"probe_name":"hdf5","function_name":"H5D__earray_encode"},"1909":{"probe_name":"hdf5","function_name":"H5D__earray_dst_dbg_context"},"1908":{"probe_name":"hdf5","function_name":"H5D__earray_dst_context"},"1907":{"probe_name":"hdf5","function_name":"H5D__earray_decode"},"1906":{"probe_name":"hdf5","function_name":"H5D__earray_debug"},"1905":{"probe_name":"hdf5","function_name":"H5D__earray_crt_dbg_context"},"1904":{"probe_name":"hdf5","function_name":"H5D__earray_crt_context"},"1903":{"probe_name":"hdf5","function_name":"H5D__current_cache_size_test"},"1902":{"probe_name":"hdf5","function_name":"H5D__create_named"},"1901":{"probe_name":"hdf5","function_name":"H5D__create"},"1900":{"probe_name":"hdf5","function_name":"H5D__contig_writevv_sieve_cb"},"1899":{"probe_name":"hdf5","function_name":"H5D__contig_writevv_cb"},"1898":{"probe_name":"hdf5","function_name":"H5D__contig_writevv"},"1897":{"probe_name":"hdf5","function_name":"H5D__contig_write"},"1896":{"probe_name":"hdf5","function_name":"H5D__contig_readvv_sieve_cb"},"1895":{"probe_name":"hdf5","function_name":"H5D__contig_readvv_cb"},"1894":{"probe_name":"hdf5","function_name":"H5D__contig_readvv"},"1893":{"probe_name":"hdf5","function_name":"H5D__contig_read"},"1892":{"probe_name":"hdf5","function_name":"H5D__contig_mdio_init"},"1891":{"probe_name":"hdf5","function_name":"H5D__contig_is_space_alloc"},"1890":{"probe_name":"hdf5","function_name":"H5D__contig_is_data_cached"},"1889":{"probe_name":"hdf5","function_name":"H5D__contig_io_term"},"1888":{"probe_name":"hdf5","function_name":"H5D__contig_io_init"},"1887":{"probe_name":"hdf5","function_name":"H5D__contig_init"},"1886":{"probe_name":"hdf5","function_name":"H5D__contig_flush"},"1885":{"probe_name":"hdf5","function_name":"H5D__contig_fill"},"1884":{"probe_name":"hdf5","function_name":"H5D__contig_delete"},"1883":{"probe_name":"hdf5","function_name":"H5D__contig_copy"},"1882":{"probe_name":"hdf5","function_name":"H5D__contig_construct"},"1881":{"probe_name":"hdf5","function_name":"H5D__contig_check"},"1880":{"probe_name":"hdf5","function_name":"H5D__contig_alloc"},"1879":{"probe_name":"hdf5","function_name":"H5D__compound_opt_read"},"1878":{"probe_name":"hdf5","function_name":"H5D__compact_writevv"},"1877":{"probe_name":"hdf5","function_name":"H5D__compact_readvv"},"1876":{"probe_name":"hdf5","function_name":"H5D__compact_is_space_alloc"},"1875":{"probe_name":"hdf5","function_name":"H5D__compact_iovv_memmanage_cb"},"1874":{"probe_name":"hdf5","function_name":"H5D__compact_io_init"},"1873":{"probe_name":"hdf5","function_name":"H5D__compact_init"},"1872":{"probe_name":"hdf5","function_name":"H5D__compact_flush"},"1871":{"probe_name":"hdf5","function_name":"H5D__compact_fill"},"1870":{"probe_name":"hdf5","function_name":"H5D__compact_dest"},"1869":{"probe_name":"hdf5","function_name":"H5D__compact_copy"},"1868":{"probe_name":"hdf5","function_name":"H5D__compact_construct"},"1867":{"probe_name":"hdf5","function_name":"H5D__collective_write"},"1866":{"probe_name":"hdf5","function_name":"H5D__collective_read"},"1865":{"probe_name":"hdf5","function_name":"H5D__cmp_piece_addr"},"1864":{"probe_name":"hdf5","function_name":"H5D__cmp_filtered_collective_io_info_entry"},"1863":{"probe_name":"hdf5","function_name":"H5D__cmp_chunk_redistribute_info_orig_owner"},"1862":{"probe_name":"hdf5","function_name":"H5D__cmp_chunk_redistribute_info"},"1861":{"probe_name":"hdf5","function_name":"H5D__close_cb"},"1860":{"probe_name":"hdf5","function_name":"H5D__chunk_write"},"1859":{"probe_name":"hdf5","function_name":"H5D__chunk_update_old_edge_chunks"},"1858":{"probe_name":"hdf5","function_name":"H5D__chunk_update_cache"},"1857":{"probe_name":"hdf5","function_name":"H5D__chunk_unlock.constprop.0"},"1856":{"probe_name":"hdf5","function_name":"H5D__chunk_set_sizes"},"1855":{"probe_name":"hdf5","function_name":"H5D__chunk_set_info_real"},"1854":{"probe_name":"hdf5","function_name":"H5D__chunk_set_info"},"1853":{"probe_name":"hdf5","function_name":"H5D__chunk_read"},"1852":{"probe_name":"hdf5","function_name":"H5D__chunk_prune_by_extent"},"1851":{"probe_name":"hdf5","function_name":"H5D__chunk_mem_xfree"},"1850":{"probe_name":"hdf5","function_name":"H5D__chunk_mem_realloc"},"1849":{"probe_name":"hdf5","function_name":"H5D__chunk_mem_free"},"1848":{"probe_name":"hdf5","function_name":"H5D__chunk_mem_alloc"},"1847":{"probe_name":"hdf5","function_name":"H5D__chunk_mdio_init"},"1846":{"probe_name":"hdf5","function_name":"H5D__chunk_lookup"},"1845":{"probe_name":"hdf5","function_name":"H5D__chunk_lock.constprop.0"},"1844":{"probe_name":"hdf5","function_name":"H5D__chunk_iter_cb"},"1843":{"probe_name":"hdf5","function_name":"H5D__chunk_iter"},"1842":{"probe_name":"hdf5","function_name":"H5D__chunk_is_space_alloc"},"1841":{"probe_name":"hdf5","function_name":"H5D__chunk_is_partial_edge_chunk"},"1840":{"probe_name":"hdf5","function_name":"H5D__chunk_is_data_cached"},"1839":{"probe_name":"hdf5","function_name":"H5D__chunk_io_term"},"1838":{"probe_name":"hdf5","function_name":"H5D__chunk_io_init"},"1837":{"probe_name":"hdf5","function_name":"H5D__chunk_init"},"1836":{"probe_name":"hdf5","function_name":"H5D__chunk_index_empty_cb"},"1835":{"probe_name":"hdf5","function_name":"H5D__chunk_index_empty"},"1834":{"probe_name":"hdf5","function_name":"H5D__chunk_get_offset_copy"},"1833":{"probe_name":"hdf5","function_name":"H5D__chunk_format_convert_cb"},"1832":{"probe_name":"hdf5","function_name":"H5D__chunk_format_convert"},"1831":{"probe_name":"hdf5","function_name":"H5D__chunk_flush_entry.constprop.0"},"1830":{"probe_name":"hdf5","function_name":"H5D__chunk_flush_entry"},"1829":{"probe_name":"hdf5","function_name":"H5D__chunk_flush"},"1828":{"probe_name":"hdf5","function_name":"H5D__chunk_file_alloc"},"1827":{"probe_name":"hdf5","function_name":"H5D__chunk_dump_index_cb"},"1826":{"probe_name":"hdf5","function_name":"H5D__chunk_dump_index"},"1825":{"probe_name":"hdf5","function_name":"H5D__chunk_direct_write"},"1824":{"probe_name":"hdf5","function_name":"H5D__chunk_direct_read"},"1823":{"probe_name":"hdf5","function_name":"H5D__chunk_dest"},"1822":{"probe_name":"hdf5","function_name":"H5D__chunk_delete"},"1821":{"probe_name":"hdf5","function_name":"H5D__chunk_create"},"1820":{"probe_name":"hdf5","function_name":"H5D__chunk_copy_cb"},"1819":{"probe_name":"hdf5","function_name":"H5D__chunk_copy"},"1818":{"probe_name":"hdf5","function_name":"H5D__chunk_construct"},"1817":{"probe_name":"hdf5","function_name":"H5D__chunk_cmp_coll_fill_info"},"1816":{"probe_name":"hdf5","function_name":"H5D__chunk_cacheable"},"1815":{"probe_name":"hdf5","function_name":"H5D__chunk_cache_evict.constprop.0"},"1814":{"probe_name":"hdf5","function_name":"H5D__chunk_cache_evict"},"1813":{"probe_name":"hdf5","function_name":"H5D__chunk_bh_info"},"1812":{"probe_name":"hdf5","function_name":"H5D__chunk_allocated_cb"},"1811":{"probe_name":"hdf5","function_name":"H5D__chunk_allocated"},"1810":{"probe_name":"hdf5","function_name":"H5D__chunk_allocate"},"1809":{"probe_name":"hdf5","function_name":"H5D__chunk_addrmap_cb"},"1808":{"probe_name":"hdf5","function_name":"H5D__chunk_addrmap"},"1807":{"probe_name":"hdf5","function_name":"H5D__cache_dataspace_info"},"1806":{"probe_name":"hdf5","function_name":"H5D__build_file_prefix.isra.0"},"1805":{"probe_name":"hdf5","function_name":"H5D__btree_shared_free"},"1804":{"probe_name":"hdf5","function_name":"H5D__btree_shared_create"},"1803":{"probe_name":"hdf5","function_name":"H5D__btree_remove"},"1802":{"probe_name":"hdf5","function_name":"H5D__btree_new_node"},"1801":{"probe_name":"hdf5","function_name":"H5D__btree_insert"},"1800":{"probe_name":"hdf5","function_name":"H5D__btree_idx_size"},"1799":{"probe_name":"hdf5","function_name":"H5D__btree_idx_reset"},"1798":{"probe_name":"hdf5","function_name":"H5D__btree_idx_remove"},"1797":{"probe_name":"hdf5","function_name":"H5D__btree_idx_open"},"1796":{"probe_name":"hdf5","function_name":"H5D__btree_idx_load_metadata"},"1795":{"probe_name":"hdf5","function_name":"H5D__btree_idx_iterate_cb"},"1794":{"probe_name":"hdf5","function_name":"H5D__btree_idx_iterate"},"1793":{"probe_name":"hdf5","function_name":"H5D__btree_idx_is_space_alloc"},"1792":{"probe_name":"hdf5","function_name":"H5D__btree_idx_is_open"},"1791":{"probe_name":"hdf5","function_name":"H5D__btree_idx_insert"},"1790":{"probe_name":"hdf5","function_name":"H5D__btree_idx_init"},"1789":{"probe_name":"hdf5","function_name":"H5D__btree_idx_get_addr"},"1788":{"probe_name":"hdf5","function_name":"H5D__btree_idx_dump"},"1787":{"probe_name":"hdf5","function_name":"H5D__btree_idx_dest"},"1786":{"probe_name":"hdf5","function_name":"H5D__btree_idx_delete"},"1785":{"probe_name":"hdf5","function_name":"H5D__btree_idx_create"},"1784":{"probe_name":"hdf5","function_name":"H5D__btree_idx_copy_shutdown"},"1783":{"probe_name":"hdf5","function_name":"H5D__btree_idx_copy_setup"},"1782":{"probe_name":"hdf5","function_name":"H5D__btree_idx_close"},"1781":{"probe_name":"hdf5","function_name":"H5D__btree_get_shared"},"1780":{"probe_name":"hdf5","function_name":"H5D__btree_found"},"1779":{"probe_name":"hdf5","function_name":"H5D__btree_encode_key"},"1778":{"probe_name":"hdf5","function_name":"H5D__btree_decode_key"},"1777":{"probe_name":"hdf5","function_name":"H5D__btree_debug_key"},"1776":{"probe_name":"hdf5","function_name":"H5D__btree_cmp3"},"1775":{"probe_name":"hdf5","function_name":"H5D__btree_cmp2"},"1774":{"probe_name":"hdf5","function_name":"H5D__btree2_idx_depend"},"1773":{"probe_name":"hdf5","function_name":"H5D__bt2_unfilt_encode"},"1772":{"probe_name":"hdf5","function_name":"H5D__bt2_unfilt_decode"},"1771":{"probe_name":"hdf5","function_name":"H5D__bt2_unfilt_debug"},"1770":{"probe_name":"hdf5","function_name":"H5D__bt2_store"},"1769":{"probe_name":"hdf5","function_name":"H5D__bt2_remove_cb"},"1768":{"probe_name":"hdf5","function_name":"H5D__bt2_mod_cb"},"1767":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_size"},"1766":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_reset"},"1765":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_remove"},"1764":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_open"},"1763":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_load_metadata"},"1762":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_iterate_cb"},"1761":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_iterate"},"1760":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_is_space_alloc"},"1759":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_is_open"},"1758":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_insert"},"1757":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_init"},"1756":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_get_addr"},"1755":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_dump"},"1754":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_dest"},"1753":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_delete"},"1752":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_create"},"1751":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_copy_shutdown"},"1750":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_copy_setup"},"1749":{"probe_name":"hdf5","function_name":"H5D__bt2_idx_close"},"1748":{"probe_name":"hdf5","function_name":"H5D__bt2_found_cb"},"1747":{"probe_name":"hdf5","function_name":"H5D__bt2_filt_encode"},"1746":{"probe_name":"hdf5","function_name":"H5D__bt2_filt_decode"},"1745":{"probe_name":"hdf5","function_name":"H5D__bt2_filt_debug"},"1744":{"probe_name":"hdf5","function_name":"H5D__bt2_dst_context"},"1743":{"probe_name":"hdf5","function_name":"H5D__bt2_crt_context"},"1742":{"probe_name":"hdf5","function_name":"H5D__bt2_compare"},"1741":{"probe_name":"hdf5","function_name":"H5D__append_flush_setup.part.0"},"1740":{"probe_name":"hdf5","function_name":"H5D__alloc_storage"},"1739":{"probe_name":"hdf5","function_name":"H5C_validate_resize_config"},"1738":{"probe_name":"hdf5","function_name":"H5C_validate_cache_image_config"},"1737":{"probe_name":"hdf5","function_name":"H5C_unsettle_ring"},"1736":{"probe_name":"hdf5","function_name":"H5C_unsettle_entry_ring"},"1735":{"probe_name":"hdf5","function_name":"H5C_unprotect"},"1734":{"probe_name":"hdf5","function_name":"H5C_unpin_entry"},"1733":{"probe_name":"hdf5","function_name":"H5C_stop_logging"},"1732":{"probe_name":"hdf5","function_name":"H5C_stats__reset"},"1731":{"probe_name":"hdf5","function_name":"H5C_stats"},"1730":{"probe_name":"hdf5","function_name":"H5C_start_logging"},"1729":{"probe_name":"hdf5","function_name":"H5C_set_slist_enabled"},"1728":{"probe_name":"hdf5","function_name":"H5C_set_prefix"},"1727":{"probe_name":"hdf5","function_name":"H5C_set_evictions_enabled"},"1726":{"probe_name":"hdf5","function_name":"H5C_set_cache_image_config"},"1725":{"probe_name":"hdf5","function_name":"H5C_set_cache_auto_resize_config"},"1724":{"probe_name":"hdf5","function_name":"H5C_retag_entries"},"1723":{"probe_name":"hdf5","function_name":"H5C_resize_entry"},"1722":{"probe_name":"hdf5","function_name":"H5C_reset_cache_hit_rate_stats"},"1721":{"probe_name":"hdf5","function_name":"H5C_remove_entry"},"1720":{"probe_name":"hdf5","function_name":"H5C_protect"},"1719":{"probe_name":"hdf5","function_name":"H5C_prep_for_file_close"},"1718":{"probe_name":"hdf5","function_name":"H5C_pin_protected_entry"},"1717":{"probe_name":"hdf5","function_name":"H5C_move_entry"},"1716":{"probe_name":"hdf5","function_name":"H5C_mark_entry_unserialized"},"1715":{"probe_name":"hdf5","function_name":"H5C_mark_entry_serialized"},"1714":{"probe_name":"hdf5","function_name":"H5C_mark_entry_dirty"},"1713":{"probe_name":"hdf5","function_name":"H5C_mark_entry_clean"},"1712":{"probe_name":"hdf5","function_name":"H5C_mark_entries_as_clean"},"1711":{"probe_name":"hdf5","function_name":"H5C_log_write_unprotect_entry_msg"},"1710":{"probe_name":"hdf5","function_name":"H5C_log_write_unpin_entry_msg"},"1709":{"probe_name":"hdf5","function_name":"H5C_log_write_set_cache_config_msg"},"1708":{"probe_name":"hdf5","function_name":"H5C_log_write_resize_entry_msg"},"1707":{"probe_name":"hdf5","function_name":"H5C_log_write_remove_entry_msg"},"1706":{"probe_name":"hdf5","function_name":"H5C_log_write_protect_entry_msg"},"1705":{"probe_name":"hdf5","function_name":"H5C_log_write_pin_entry_msg"},"1704":{"probe_name":"hdf5","function_name":"H5C_log_write_move_entry_msg"},"1703":{"probe_name":"hdf5","function_name":"H5C_log_write_mark_unserialized_entry_msg"},"1702":{"probe_name":"hdf5","function_name":"H5C_log_write_mark_serialized_entry_msg"},"1701":{"probe_name":"hdf5","function_name":"H5C_log_write_mark_entry_dirty_msg"},"1700":{"probe_name":"hdf5","function_name":"H5C_log_write_mark_entry_clean_msg"},"1699":{"probe_name":"hdf5","function_name":"H5C_log_write_insert_entry_msg"},"1698":{"probe_name":"hdf5","function_name":"H5C_log_write_flush_cache_msg"},"1697":{"probe_name":"hdf5","function_name":"H5C_log_write_expunge_entry_msg"},"1696":{"probe_name":"hdf5","function_name":"H5C_log_write_evict_cache_msg"},"1695":{"probe_name":"hdf5","function_name":"H5C_log_write_destroy_fd_msg"},"1694":{"probe_name":"hdf5","function_name":"H5C_log_write_destroy_cache_msg"},"1693":{"probe_name":"hdf5","function_name":"H5C_log_write_create_fd_msg"},"1692":{"probe_name":"hdf5","function_name":"H5C_log_write_create_cache_msg"},"1691":{"probe_name":"hdf5","function_name":"H5C_log_tear_down"},"1690":{"probe_name":"hdf5","function_name":"H5C_log_set_up"},"1689":{"probe_name":"hdf5","function_name":"H5C_load_cache_image_on_next_protect"},"1688":{"probe_name":"hdf5","function_name":"H5C_insert_entry"},"1687":{"probe_name":"hdf5","function_name":"H5C_ignore_tags"},"1686":{"probe_name":"hdf5","function_name":"H5C_get_tag"},"1685":{"probe_name":"hdf5","function_name":"H5C_get_num_objs_corked"},"1684":{"probe_name":"hdf5","function_name":"H5C_get_mdc_image_info"},"1683":{"probe_name":"hdf5","function_name":"H5C_get_logging_status"},"1682":{"probe_name":"hdf5","function_name":"H5C_get_ignore_tags"},"1681":{"probe_name":"hdf5","function_name":"H5C_get_evictions_enabled"},"1680":{"probe_name":"hdf5","function_name":"H5C_get_entry_status"},"1679":{"probe_name":"hdf5","function_name":"H5C_get_entry_ring"},"1678":{"probe_name":"hdf5","function_name":"H5C_get_cache_size"},"1677":{"probe_name":"hdf5","function_name":"H5C_get_cache_hit_rate"},"1676":{"probe_name":"hdf5","function_name":"H5C_get_cache_flush_in_progress"},"1675":{"probe_name":"hdf5","function_name":"H5C_get_cache_auto_resize_config"},"1674":{"probe_name":"hdf5","function_name":"H5C_get_aux_ptr"},"1673":{"probe_name":"hdf5","function_name":"H5C_flush_to_min_clean"},"1672":{"probe_name":"hdf5","function_name":"H5C_flush_tagged_entries"},"1671":{"probe_name":"hdf5","function_name":"H5C_flush_cache"},"1670":{"probe_name":"hdf5","function_name":"H5C_expunge_tag_type_metadata"},"1669":{"probe_name":"hdf5","function_name":"H5C_expunge_entry"},"1668":{"probe_name":"hdf5","function_name":"H5C_evict_tagged_entries"},"1667":{"probe_name":"hdf5","function_name":"H5C_evict"},"1666":{"probe_name":"hdf5","function_name":"H5C_destroy_flush_dependency"},"1665":{"probe_name":"hdf5","function_name":"H5C_dest"},"1664":{"probe_name":"hdf5","function_name":"H5C_def_auto_resize_rpt_fcn"},"1663":{"probe_name":"hdf5","function_name":"H5C_create_flush_dependency"},"1662":{"probe_name":"hdf5","function_name":"H5C_create"},"1661":{"probe_name":"hdf5","function_name":"H5C_cork"},"1660":{"probe_name":"hdf5","function_name":"H5C_construct_candidate_list__min_clean"},"1659":{"probe_name":"hdf5","function_name":"H5C_construct_candidate_list__clean_cache"},"1658":{"probe_name":"hdf5","function_name":"H5C_clear_coll_entries"},"1657":{"probe_name":"hdf5","function_name":"H5C_cache_image_status"},"1656":{"probe_name":"hdf5","function_name":"H5C_cache_image_pending"},"1655":{"probe_name":"hdf5","function_name":"H5C_apply_candidate_list"},"1654":{"probe_name":"hdf5","function_name":"H5C__verify_len_eoa.isra.0"},"1653":{"probe_name":"hdf5","function_name":"H5C__verify_cork_tag_test_cb"},"1652":{"probe_name":"hdf5","function_name":"H5C__verify_cork_tag_test"},"1651":{"probe_name":"hdf5","function_name":"H5C__untag_entry"},"1650":{"probe_name":"hdf5","function_name":"H5C__unpin_entry_from_client"},"1649":{"probe_name":"hdf5","function_name":"H5C__trace_write_unprotect_entry_log_msg"},"1648":{"probe_name":"hdf5","function_name":"H5C__trace_write_unpin_entry_log_msg"},"1647":{"probe_name":"hdf5","function_name":"H5C__trace_write_set_cache_config_log_msg"},"1646":{"probe_name":"hdf5","function_name":"H5C__trace_write_resize_entry_log_msg"},"1645":{"probe_name":"hdf5","function_name":"H5C__trace_write_remove_entry_log_msg"},"1644":{"probe_name":"hdf5","function_name":"H5C__trace_write_protect_entry_log_msg"},"1643":{"probe_name":"hdf5","function_name":"H5C__trace_write_pin_entry_log_msg"},"1642":{"probe_name":"hdf5","function_name":"H5C__trace_write_move_entry_log_msg"},"1641":{"probe_name":"hdf5","function_name":"H5C__trace_write_mark_unserialized_entry_log_msg"},"1640":{"probe_name":"hdf5","function_name":"H5C__trace_write_mark_serialized_entry_log_msg"},"1639":{"probe_name":"hdf5","function_name":"H5C__trace_write_mark_entry_dirty_log_msg"},"1638":{"probe_name":"hdf5","function_name":"H5C__trace_write_mark_entry_clean_log_msg"},"1637":{"probe_name":"hdf5","function_name":"H5C__trace_write_insert_entry_log_msg"},"1636":{"probe_name":"hdf5","function_name":"H5C__trace_write_flush_cache_log_msg"},"1635":{"probe_name":"hdf5","function_name":"H5C__trace_write_expunge_entry_log_msg"},"1634":{"probe_name":"hdf5","function_name":"H5C__trace_write_destroy_fd_log_msg"},"1633":{"probe_name":"hdf5","function_name":"H5C__trace_write_create_fd_log_msg"},"1632":{"probe_name":"hdf5","function_name":"H5C__trace_tear_down_logging"},"1631":{"probe_name":"hdf5","function_name":"H5C__tag_entry"},"1630":{"probe_name":"hdf5","function_name":"H5C__serialize_single_entry"},"1629":{"probe_name":"hdf5","function_name":"H5C__serialize_cache"},"1628":{"probe_name":"hdf5","function_name":"H5C__prep_image_for_file_close"},"1627":{"probe_name":"hdf5","function_name":"H5C__prep_for_file_close__compute_fd_heights_real"},"1626":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_verify_chksum"},"1625":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_serialize"},"1624":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_pre_serialize"},"1623":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_notify"},"1622":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_image_len"},"1621":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_get_initial_load_size"},"1620":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_get_final_load_size"},"1619":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_fsf_size"},"1618":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_free_icr"},"1617":{"probe_name":"hdf5","function_name":"H5C__prefetched_entry_deserialize"},"1616":{"probe_name":"hdf5","function_name":"H5C__pin_entry_from_client.part.0"},"1615":{"probe_name":"hdf5","function_name":"H5C__make_space_in_cache"},"1614":{"probe_name":"hdf5","function_name":"H5C__log_trace_set_up"},"1613":{"probe_name":"hdf5","function_name":"H5C__log_json_set_up"},"1612":{"probe_name":"hdf5","function_name":"H5C__load_cache_image"},"1611":{"probe_name":"hdf5","function_name":"H5C__json_write_unprotect_entry_log_msg"},"1610":{"probe_name":"hdf5","function_name":"H5C__json_write_unpin_entry_log_msg"},"1609":{"probe_name":"hdf5","function_name":"H5C__json_write_stop_log_msg"},"1608":{"probe_name":"hdf5","function_name":"H5C__json_write_start_log_msg"},"1607":{"probe_name":"hdf5","function_name":"H5C__json_write_set_cache_config_log_msg"},"1606":{"probe_name":"hdf5","function_name":"H5C__json_write_resize_entry_log_msg"},"1605":{"probe_name":"hdf5","function_name":"H5C__json_write_remove_entry_log_msg"},"1604":{"probe_name":"hdf5","function_name":"H5C__json_write_protect_entry_log_msg"},"1603":{"probe_name":"hdf5","function_name":"H5C__json_write_pin_entry_log_msg"},"1602":{"probe_name":"hdf5","function_name":"H5C__json_write_move_entry_log_msg"},"1601":{"probe_name":"hdf5","function_name":"H5C__json_write_mark_unserialized_entry_log_msg"},"1600":{"probe_name":"hdf5","function_name":"H5C__json_write_mark_serialized_entry_log_msg"},"1599":{"probe_name":"hdf5","function_name":"H5C__json_write_mark_entry_dirty_log_msg"},"1598":{"probe_name":"hdf5","function_name":"H5C__json_write_mark_entry_clean_log_msg"},"1597":{"probe_name":"hdf5","function_name":"H5C__json_write_insert_entry_log_msg"},"1596":{"probe_name":"hdf5","function_name":"H5C__json_write_flush_cache_log_msg"},"1595":{"probe_name":"hdf5","function_name":"H5C__json_write_expunge_entry_log_msg"},"1594":{"probe_name":"hdf5","function_name":"H5C__json_write_evict_cache_log_msg"},"1593":{"probe_name":"hdf5","function_name":"H5C__json_write_destroy_fd_log_msg"},"1592":{"probe_name":"hdf5","function_name":"H5C__json_write_destroy_cache_log_msg"},"1591":{"probe_name":"hdf5","function_name":"H5C__json_write_create_fd_log_msg"},"1590":{"probe_name":"hdf5","function_name":"H5C__json_write_create_cache_log_msg"},"1589":{"probe_name":"hdf5","function_name":"H5C__json_tear_down_logging"},"1588":{"probe_name":"hdf5","function_name":"H5C__iter_tagged_entries_real"},"1587":{"probe_name":"hdf5","function_name":"H5C__iter_tagged_entries"},"1586":{"probe_name":"hdf5","function_name":"H5C__image_stats"},"1585":{"probe_name":"hdf5","function_name":"H5C__image_entry_cmp"},"1584":{"probe_name":"hdf5","function_name":"H5C__get_cache_image_config"},"1583":{"probe_name":"hdf5","function_name":"H5C__generate_image"},"1582":{"probe_name":"hdf5","function_name":"H5C__generate_cache_image"},"1581":{"probe_name":"hdf5","function_name":"H5C__flush_tagged_entries_cb"},"1580":{"probe_name":"hdf5","function_name":"H5C__flush_single_entry"},"1579":{"probe_name":"hdf5","function_name":"H5C__flush_ring"},"1578":{"probe_name":"hdf5","function_name":"H5C__flush_invalidate_cache"},"1577":{"probe_name":"hdf5","function_name":"H5C__flash_increase_cache_size"},"1576":{"probe_name":"hdf5","function_name":"H5C__expunge_tag_type_metadata_cb"},"1575":{"probe_name":"hdf5","function_name":"H5C__evict_tagged_entries_cb"},"1574":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_verify_chksum"},"1573":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_serialize"},"1572":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_pre_serialize"},"1571":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_notify"},"1570":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_image_len"},"1569":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_get_initial_load_size"},"1568":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_get_final_load_size"},"1567":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_fsf_size"},"1566":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_free_icr"},"1565":{"probe_name":"hdf5","function_name":"H5C__epoch_marker_deserialize"},"1564":{"probe_name":"hdf5","function_name":"H5C__autoadjust__ageout__remove_excess_markers"},"1563":{"probe_name":"hdf5","function_name":"H5C__autoadjust__ageout__remove_all_markers"},"1562":{"probe_name":"hdf5","function_name":"H5C__auto_adjust_cache_size"},"1561":{"probe_name":"hdf5","function_name":"H5CX_term_package"},"1560":{"probe_name":"hdf5","function_name":"H5CX_set_vol_wrap_ctx"},"1559":{"probe_name":"hdf5","function_name":"H5CX_set_vol_connector_prop"},"1558":{"probe_name":"hdf5","function_name":"H5CX_set_vlen_alloc_info"},"1557":{"probe_name":"hdf5","function_name":"H5CX_set_tag"},"1556":{"probe_name":"hdf5","function_name":"H5CX_set_ring"},"1555":{"probe_name":"hdf5","function_name":"H5CX_set_no_selection_io_cause"},"1554":{"probe_name":"hdf5","function_name":"H5CX_set_nlinks"},"1553":{"probe_name":"hdf5","function_name":"H5CX_set_mpio_rank0_bcast"},"1552":{"probe_name":"hdf5","function_name":"H5CX_set_mpio_local_no_coll_cause"},"1551":{"probe_name":"hdf5","function_name":"H5CX_set_mpio_global_no_coll_cause"},"1550":{"probe_name":"hdf5","function_name":"H5CX_set_mpio_coll_opt"},"1549":{"probe_name":"hdf5","function_name":"H5CX_set_mpio_actual_io_mode"},"1548":{"probe_name":"hdf5","function_name":"H5CX_set_mpio_actual_chunk_opt"},"1547":{"probe_name":"hdf5","function_name":"H5CX_set_mpi_file_flushing"},"1546":{"probe_name":"hdf5","function_name":"H5CX_set_mpi_coll_datatypes"},"1545":{"probe_name":"hdf5","function_name":"H5CX_set_loc"},"1544":{"probe_name":"hdf5","function_name":"H5CX_set_libver_bounds"},"1543":{"probe_name":"hdf5","function_name":"H5CX_set_lcpl"},"1542":{"probe_name":"hdf5","function_name":"H5CX_set_lapl"},"1541":{"probe_name":"hdf5","function_name":"H5CX_set_io_xfer_mode"},"1540":{"probe_name":"hdf5","function_name":"H5CX_set_dxpl"},"1539":{"probe_name":"hdf5","function_name":"H5CX_set_dcpl"},"1538":{"probe_name":"hdf5","function_name":"H5CX_set_coll_metadata_read"},"1537":{"probe_name":"hdf5","function_name":"H5CX_set_apl"},"1536":{"probe_name":"hdf5","function_name":"H5CX_set_actual_selection_io_mode"},"1535":{"probe_name":"hdf5","function_name":"H5CX_retrieve_state"},"1534":{"probe_name":"hdf5","function_name":"H5CX_restore_state"},"1533":{"probe_name":"hdf5","function_name":"H5CX_pushed"},"1532":{"probe_name":"hdf5","function_name":"H5CX_push_special"},"1531":{"probe_name":"hdf5","function_name":"H5CX_push"},"1530":{"probe_name":"hdf5","function_name":"H5CX_pop"},"1529":{"probe_name":"hdf5","function_name":"H5CX_is_def_dxpl"},"1528":{"probe_name":"hdf5","function_name":"H5CX_init"},"1527":{"probe_name":"hdf5","function_name":"H5CX_get_vol_wrap_ctx"},"1526":{"probe_name":"hdf5","function_name":"H5CX_get_vol_connector_prop"},"1525":{"probe_name":"hdf5","function_name":"H5CX_get_vlen_alloc_info"},"1524":{"probe_name":"hdf5","function_name":"H5CX_get_vec_size"},"1523":{"probe_name":"hdf5","function_name":"H5CX_get_vds_prefix"},"1522":{"probe_name":"hdf5","function_name":"H5CX_get_tconv_buf"},"1521":{"probe_name":"hdf5","function_name":"H5CX_get_tag"},"1520":{"probe_name":"hdf5","function_name":"H5CX_get_selection_io_mode"},"1519":{"probe_name":"hdf5","function_name":"H5CX_get_ring"},"1234":{"probe_name":"hdf5","function_name":"H5A__attr_iterate_table"},"1233":{"probe_name":"hdf5","function_name":"H5A__attr_copy_file"},"1232":{"probe_name":"hdf5","function_name":"H5A__attr_cmp_name_inc"},"1231":{"probe_name":"hdf5","function_name":"H5A__attr_cmp_name_dec"},"1230":{"probe_name":"hdf5","function_name":"H5A__attr_cmp_corder_inc"},"1229":{"probe_name":"hdf5","function_name":"H5A__attr_cmp_corder_dec"},"1228":{"probe_name":"hdf5","function_name":"H5AC_validate_config"},"1227":{"probe_name":"hdf5","function_name":"H5AC_validate_cache_image_config"},"1226":{"probe_name":"hdf5","function_name":"H5AC_unsettle_ring"},"1225":{"probe_name":"hdf5","function_name":"H5AC_unsettle_entry_ring"},"1224":{"probe_name":"hdf5","function_name":"H5AC_unprotect"},"1223":{"probe_name":"hdf5","function_name":"H5AC_unpin_entry"},"1222":{"probe_name":"hdf5","function_name":"H5AC_term_package"},"1221":{"probe_name":"hdf5","function_name":"H5AC_tag"},"1220":{"probe_name":"hdf5","function_name":"H5AC_stats"},"1219":{"probe_name":"hdf5","function_name":"H5AC_set_ring"},"1218":{"probe_name":"hdf5","function_name":"H5AC_set_cache_auto_resize_config"},"1217":{"probe_name":"hdf5","function_name":"H5AC_secure_from_file_flush"},"1216":{"probe_name":"hdf5","function_name":"H5AC_retag_copied_metadata"},"1215":{"probe_name":"hdf5","function_name":"H5AC_resize_entry"},"1214":{"probe_name":"hdf5","function_name":"H5AC_reset_cache_hit_rate_stats"},"1213":{"probe_name":"hdf5","function_name":"H5AC_remove_entry"},"1212":{"probe_name":"hdf5","function_name":"H5AC_proxy_entry_remove_parent"},"1211":{"probe_name":"hdf5","function_name":"H5AC_proxy_entry_remove_child"},"1210":{"probe_name":"hdf5","function_name":"H5AC_proxy_entry_dest"},"1209":{"probe_name":"hdf5","function_name":"H5AC_proxy_entry_create"},"1208":{"probe_name":"hdf5","function_name":"H5AC_proxy_entry_add_parent"},"1207":{"probe_name":"hdf5","function_name":"H5AC_proxy_entry_add_child"},"1206":{"probe_name":"hdf5","function_name":"H5AC_protect"},"1205":{"probe_name":"hdf5","function_name":"H5AC_prep_for_file_flush"},"1204":{"probe_name":"hdf5","function_name":"H5AC_prep_for_file_close"},"1203":{"probe_name":"hdf5","function_name":"H5AC_pin_protected_entry"},"1202":{"probe_name":"hdf5","function_name":"H5AC_move_entry"},"1201":{"probe_name":"hdf5","function_name":"H5AC_mark_entry_unserialized"},"1200":{"probe_name":"hdf5","function_name":"H5AC_mark_entry_serialized"},"1199":{"probe_name":"hdf5","function_name":"H5AC_mark_entry_dirty"},"1198":{"probe_name":"hdf5","function_name":"H5AC_mark_entry_clean"},"1197":{"probe_name":"hdf5","function_name":"H5AC_load_cache_image_on_next_protect"},"1196":{"probe_name":"hdf5","function_name":"H5AC_insert_entry"},"1195":{"probe_name":"hdf5","function_name":"H5AC_init"},"1194":{"probe_name":"hdf5","function_name":"H5AC_ignore_tags"},"1193":{"probe_name":"hdf5","function_name":"H5AC_get_tag"},"1192":{"probe_name":"hdf5","function_name":"H5AC_get_mdc_image_info"},"1191":{"probe_name":"hdf5","function_name":"H5AC_get_entry_status"},"1190":{"probe_name":"hdf5","function_name":"H5AC_get_entry_ring"},"1189":{"probe_name":"hdf5","function_name":"H5AC_get_cache_size"},"1188":{"probe_name":"hdf5","function_name":"H5AC_get_cache_hit_rate"},"1187":{"probe_name":"hdf5","function_name":"H5AC_get_cache_flush_in_progress"},"1186":{"probe_name":"hdf5","function_name":"H5AC_get_cache_auto_resize_config"},"1185":{"probe_name":"hdf5","function_name":"H5AC_flush_tagged_metadata"},"1184":{"probe_name":"hdf5","function_name":"H5AC_flush"},"1183":{"probe_name":"hdf5","function_name":"H5AC_expunge_tag_type_metadata"},"1182":{"probe_name":"hdf5","function_name":"H5AC_expunge_entry"},"1181":{"probe_name":"hdf5","function_name":"H5AC_evict_tagged_metadata"},"1180":{"probe_name":"hdf5","function_name":"H5AC_evict"},"1179":{"probe_name":"hdf5","function_name":"H5AC_destroy_flush_dependency"},"1178":{"probe_name":"hdf5","function_name":"H5AC_dest"},"1177":{"probe_name":"hdf5","function_name":"H5AC_create_flush_dependency"},"1176":{"probe_name":"hdf5","function_name":"H5AC_create"},"1175":{"probe_name":"hdf5","function_name":"H5AC_cork"},"1174":{"probe_name":"hdf5","function_name":"H5AC_cache_image_pending"},"1173":{"probe_name":"hdf5","function_name":"H5AC_add_candidate"},"1172":{"probe_name":"hdf5","function_name":"H5AC__set_write_done_callback"},"1171":{"probe_name":"hdf5","function_name":"H5AC__set_sync_point_done_callback"},"1170":{"probe_name":"hdf5","function_name":"H5AC__run_sync_point"},"1169":{"probe_name":"hdf5","function_name":"H5AC__receive_haddr_list"},"1168":{"probe_name":"hdf5","function_name":"H5AC__proxy_entry_serialize"},"1167":{"probe_name":"hdf5","function_name":"H5AC__proxy_entry_remove_child_cb"},"1166":{"probe_name":"hdf5","function_name":"H5AC__proxy_entry_notify"},"1165":{"probe_name":"hdf5","function_name":"H5AC__proxy_entry_image_len"},"1164":{"probe_name":"hdf5","function_name":"H5AC__proxy_entry_free_icr"},"1163":{"probe_name":"hdf5","function_name":"H5AC__proxy_entry_add_child_cb"},"1162":{"probe_name":"hdf5","function_name":"H5AC__propagate_flushed_and_still_clean_entries_list"},"1161":{"probe_name":"hdf5","function_name":"H5AC__log_moved_entry"},"1160":{"probe_name":"hdf5","function_name":"H5AC__log_inserted_entry"},"1159":{"probe_name":"hdf5","function_name":"H5AC__log_flushed_entry"},"1158":{"probe_name":"hdf5","function_name":"H5AC__log_dirtied_entry"},"1157":{"probe_name":"hdf5","function_name":"H5AC__log_deleted_entry"},"1156":{"probe_name":"hdf5","function_name":"H5AC__log_cleaned_entry"},"1155":{"probe_name":"hdf5","function_name":"H5AC__flush_entries"},"1154":{"probe_name":"hdf5","function_name":"H5AC__copy_candidate_list_to_buffer_cb"},"1153":{"probe_name":"hdf5","function_name":"H5AC__copy_candidate_list_to_buffer.constprop.0"},"1152":{"probe_name":"hdf5","function_name":"H5AC__check_if_write_permitted"},"1151":{"probe_name":"hdf5","function_name":"H5AC__broadcast_clean_list_cb"},"1150":{"probe_name":"libc","function_name":"vfork"},"1149":{"probe_name":"libc","function_name":"pthread_atfork@GLIBC_2.2.5"},"1148":{"probe_name":"libc","function_name":"fork"},"1147":{"probe_name":"libc","function_name":"__vfork"},"1146":{"probe_name":"libc","function_name":"__unregister_atfork"},"1145":{"probe_name":"libc","function_name":"__timer_fork_subprocess"},"1144":{"probe_name":"libc","function_name":"__run_prefork_handlers"},"1143":{"probe_name":"libc","function_name":"__run_postfork_handlers"},"1142":{"probe_name":"libc","function_name":"__register_atfork"},"1141":{"probe_name":"libc","function_name":"__nss_database_fork_subprocess"},"1140":{"probe_name":"libc","function_name":"__nss_database_fork_prepare_parent"},"1139":{"probe_name":"libc","function_name":"__mq_notify_fork_subprocess"},"1138":{"probe_name":"libc","function_name":"__malloc_fork_unlock_parent"},"1137":{"probe_name":"libc","function_name":"__malloc_fork_unlock_child"},"1136":{"probe_name":"libc","function_name":"__malloc_fork_lock_parent"},"1135":{"probe_name":"libc","function_name":"__libc_vfork"},"1134":{"probe_name":"libc","function_name":"__libc_unwind_link_after_fork"},"1133":{"probe_name":"libc","function_name":"__libc_fork"},"1132":{"probe_name":"libc","function_name":"__forkpty"},"1131":{"probe_name":"libc","function_name":"__fork"},"1130":{"probe_name":"libc","function_name":"__dyn_pthread_atfork"},"1129":{"probe_name":"libc","function_name":"__GI_forkpty"},"1128":{"probe_name":"libc","function_name":"__GI___vfork"},"1127":{"probe_name":"libc","function_name":"__GI___register_atfork"},"1126":{"probe_name":"libc","function_name":"__GI___fork"},"1125":{"probe_name":"sys","function_name":"writev"},"1124":{"probe_name":"sys","function_name":"write"},"1123":{"probe_name":"sys","function_name":"vfork"},"1122":{"probe_name":"sys","function_name":"ustat"},"1121":{"probe_name":"sys","function_name":"unlinkat"},"1120":{"probe_name":"sys","function_name":"unlink"},"1119":{"probe_name":"sys","function_name":"truncate"},"1118":{"probe_name":"sys","function_name":"sysfs"},"1117":{"probe_name":"sys","function_name":"syncfs"},"1116":{"probe_name":"sys","function_name":"sync_file_range2"},"1115":{"probe_name":"sys","function_name":"sync_file_range"},"1114":{"probe_name":"sys","function_name":"sync"},"1113":{"probe_name":"sys","function_name":"symlinkat"},"1112":{"probe_name":"sys","function_name":"symlink"},"1111":{"probe_name":"sys","function_name":"statx"},"1110":{"probe_name":"sys","function_name":"statfs64"},"1108":{"probe_name":"sys","function_name":"stat"},"1107":{"probe_name":"sys","function_name":"setxattr"},"1106":{"probe_name":"sys","function_name":"sendfile64"},"1105":{"probe_name":"sys","function_name":"rmdir"},"1036":{"probe_name":"sys","function_name":"ftruncate"},"1035":{"probe_name":"sys","function_name":"fsync"},"1034":{"probe_name":"sys","function_name":"fstatfs64"},"1033":{"probe_name":"sys","function_name":"fstatfs"},"1032":{"probe_name":"sys","function_name":"fstat"},"1031":{"probe_name":"sys","function_name":"fsetxattr"},"1030":{"probe_name":"sys","function_name":"fremovexattr"},"1029":{"probe_name":"sys","function_name":"flock"},"1027":{"probe_name":"sys","function_name":"fgetxattr"},"1026":{"probe_name":"sys","function_name":"fdatasync"},"3367":{"probe_name":"hdf5","function_name":"H5Gget_info"},"100020":{"probe_name":"custom1","function_name":"openat2"},"7563":{"probe_name":"mpi","function_name":"MPI_Type_get_contents"},"1025":{"probe_name":"sys","function_name":"fcntl"},"3366":{"probe_name":"hdf5","function_name":"H5Gget_create_plist"},"100019":{"probe_name":"custom1","function_name":"open"},"7562":{"probe_name":"mpi","function_name":"MPI_Type_get_attr"},"1024":{"probe_name":"sys","function_name":"fchownat"},"3365":{"probe_name":"hdf5","function_name":"H5Gget_comment"},"100018":{"probe_name":"custom1","function_name":"writev"},"7561":{"probe_name":"mpi","function_name":"MPI_Type_free_keyval"},"1023":{"probe_name":"sys","function_name":"fchown"},"3364":{"probe_name":"hdf5","function_name":"H5Gflush"},"100017":{"probe_name":"custom1","function_name":"readv"},"7560":{"probe_name":"mpi","function_name":"MPI_Type_free"},"1022":{"probe_name":"sys","function_name":"fchmodat2"},"3363":{"probe_name":"hdf5","function_name":"H5Gcreate_async"},"100016":{"probe_name":"custom1","function_name":"readahead"},"7559":{"probe_name":"mpi","function_name":"MPI_Type_f2c"},"1021":{"probe_name":"sys","function_name":"fchmodat"},"3362":{"probe_name":"hdf5","function_name":"H5Gcreate_anon"},"100015":{"probe_name":"custom1","function_name":"pwritev2"},"7558":{"probe_name":"mpi","function_name":"MPI_Type_extent"},"1020":{"probe_name":"sys","function_name":"fchmod"},"3361":{"probe_name":"hdf5","function_name":"H5Gcreate2"},"100014":{"probe_name":"custom1","function_name":"pwritev"},"7557":{"probe_name":"mpi","function_name":"MPI_Type_dup"},"1019":{"probe_name":"sys","function_name":"fchdir"},"3360":{"probe_name":"hdf5","function_name":"H5Gcreate1"},"100013":{"probe_name":"custom1","function_name":"pwrite64"},"7556":{"probe_name":"mpi","function_name":"MPI_Type_delete_attr"},"1009":{"probe_name":"sys","function_name":"eventfd2"},"3350":{"probe_name":"hdf5","function_name":"H5G_root_free"},"100003":{"probe_name":"custom1","function_name":"close"},"7546":{"probe_name":"mpi","function_name":"MPI_Type_create_f90_integer"},"1078":{"probe_name":"sys","function_name":"munmap"},"1008":{"probe_name":"sys","function_name":"dup3"},"3349":{"probe_name":"hdf5","function_name":"H5G_open"},"100002":{"probe_name":"custom1","function_name":"write"},"7545":{"probe_name":"mpi","function_name":"MPI_Type_create_f90_complex"},"1077":{"probe_name":"sys","function_name":"munlockall"},"1005":{"probe_name":"sys","function_name":"creat"},"1004":{"probe_name":"sys","function_name":"copy_file_range"},"1002":{"probe_name":"sys","function_name":"close"},"1001":{"probe_name":"sys","function_name":"chdir"},"1000":{"probe_name":"sys","function_name":"access"},"1007":{"probe_name":"sys","function_name":"dup2"},"3348":{"probe_name":"hdf5","function_name":"H5G_oloc"},"100001":{"probe_name":"custom1","function_name":"read"},"7544":{"probe_name":"mpi","function_name":"MPI_Type_create_darray"},"1076":{"probe_name":"sys","function_name":"munlock"},"1003":{"probe_name":"sys","function_name":"close_range"},"1028":{"probe_name":"sys","function_name":"flistxattr"},"1109":{"probe_name":"sys","function_name":"statfs"},"5087":{"probe_name":"hdf5","function_name":"H5S__extent_copy_real"},"0":{"probe_name":"M","function_name":"SH"},"10273":{"probe_name":"mpi","function_name":"ompi_group_to_proc_name_array"},"2357":{"probe_name":"hdf5","function_name":"H5E_init"},"1082":{"probe_name":"sys","function_name":"open"},"1016":{"probe_name":"sys","function_name":"fallocate"},"3357":{"probe_name":"hdf5","function_name":"H5G_visit"},"100010":{"probe_name":"custom1","function_name":"pread64"},"7553":{"probe_name":"mpi","function_name":"MPI_Type_create_resized"},"1010":{"probe_name":"sys","function_name":"exit"},"3351":{"probe_name":"hdf5","function_name":"H5G_root_loc"},"100004":{"probe_name":"custom1","function_name":"fallocate"},"7547":{"probe_name":"mpi","function_name":"MPI_Type_create_f90_real"},"1067":{"probe_name":"sys","function_name":"mknod"},"1079":{"probe_name":"sys","function_name":"newfstat"},"1006":{"probe_name":"sys","function_name":"dup"},"3347":{"probe_name":"hdf5","function_name":"H5G_obj_remove_by_idx"},"100000":{"probe_name":"custom1","function_name":"openat"},"7543":{"probe_name":"mpi","function_name":"MPI_Type_contiguous"},"1011":{"probe_name":"sys","function_name":"exit_group"},"3352":{"probe_name":"hdf5","function_name":"H5G_rootof"},"100005":{"probe_name":"custom1","function_name":"fdatasync"},"7548":{"probe_name":"mpi","function_name":"MPI_Type_create_hindexed"},"1068":{"probe_name":"sys","function_name":"mknodat"},"1080":{"probe_name":"sys","function_name":"newlstat"},"1012":{"probe_name":"sys","function_name":"faccessat"},"3353":{"probe_name":"hdf5","function_name":"H5G_term_package"},"100006":{"probe_name":"custom1","function_name":"flock"},"7549":{"probe_name":"mpi","function_name":"MPI_Type_create_hindexed_block"},"1069":{"probe_name":"sys","function_name":"mlock"},"1081":{"probe_name":"sys","function_name":"newstat"},"1013":{"probe_name":"sys","function_name":"faccessat2"},"3354":{"probe_name":"hdf5","function_name":"H5G_top_term_package"},"100007":{"probe_name":"custom1","function_name":"fsync"},"7550":{"probe_name":"mpi","function_name":"MPI_Type_create_hvector"},"1070":{"probe_name":"sys","function_name":"mlockall"},"1014":{"probe_name":"sys","function_name":"fadvise64"},"3355":{"probe_name":"hdf5","function_name":"H5G_traverse"},"100008":{"probe_name":"custom1","function_name":"ftruncate"},"7551":{"probe_name":"mpi","function_name":"MPI_Type_create_indexed_block"},"1071":{"probe_name":"sys","function_name":"mmap_pgoff"},"1083":{"probe_name":"sys","function_name":"openat"},"1015":{"probe_name":"sys","function_name":"fadvise64_64"},"3356":{"probe_name":"hdf5","function_name":"H5G_unmount"},"100009":{"probe_name":"custom1","function_name":"lseek"},"7552":{"probe_name":"mpi","function_name":"MPI_Type_create_keyval"},"1072":{"probe_name":"sys","function_name":"move_pages"},"1084":{"probe_name":"sys","function_name":"openat2"},"1073":{"probe_name":"sys","function_name":"mprotect"},"1085":{"probe_name":"sys","function_name":"pidfd_open"},"1017":{"probe_name":"sys","function_name":"fanotify_init"},"3358":{"probe_name":"hdf5","function_name":"H5Gclose"},"100011":{"probe_name":"custom1","function_name":"preadv"},"7554":{"probe_name":"mpi","function_name":"MPI_Type_create_struct"},"1074":{"probe_name":"sys","function_name":"mremap"},"1086":{"probe_name":"sys","function_name":"pipe"},"1018":{"probe_name":"sys","function_name":"fanotify_mark"},"3359":{"probe_name":"hdf5","function_name":"H5Gclose_async"},"100012":{"probe_name":"custom1","function_name":"preadv2"},"7555":{"probe_name":"mpi","function_name":"MPI_Type_create_subarray"},"1075":{"probe_name":"sys","function_name":"msync"},"1087":{"probe_name":"sys","function_name":"pread64"},"1037":{"probe_name":"sys","function_name":"getcwd"},"1038":{"probe_name":"sys","function_name":"getdents"},"1039":{"probe_name":"sys","function_name":"getxattr"},"1040":{"probe_name":"sys","function_name":"inotify_add_watch"},"1041":{"probe_name":"sys","function_name":"inotify_init"},"1042":{"probe_name":"sys","function_name":"inotify_init1"},"1043":{"probe_name":"sys","function_name":"inotify_rm_watch"},"1044":{"probe_name":"sys","function_name":"io_cancel"},"1045":{"probe_name":"sys","function_name":"io_destroy"},"1046":{"probe_name":"sys","function_name":"io_setup"},"1047":{"probe_name":"sys","function_name":"io_submit"},"1048":{"probe_name":"sys","function_name":"io_uring_enter"},"1049":{"probe_name":"sys","function_name":"io_uring_register"},"1050":{"probe_name":"sys","function_name":"io_uring_setup"},"1051":{"probe_name":"sys","function_name":"lgetxattr"},"1052":{"probe_name":"sys","function_name":"link"},"1053":{"probe_name":"sys","function_name":"linkat"},"1054":{"probe_name":"sys","function_name":"listxattr"},"1055":{"probe_name":"sys","function_name":"llistxattr"},"1056":{"probe_name":"sys","function_name":"llseek"},"1057":{"probe_name":"sys","function_name":"lremovexattr"},"1058":{"probe_name":"sys","function_name":"lseek"},"1059":{"probe_name":"sys","function_name":"lsetxattr"},"1060":{"probe_name":"sys","function_name":"lstat"},"1061":{"probe_name":"sys","function_name":"madvise"},"1062":{"probe_name":"sys","function_name":"mbind"},"1063":{"probe_name":"sys","function_name":"migrate_pages"},"1064":{"probe_name":"sys","function_name":"mincore"},"1065":{"probe_name":"sys","function_name":"mkdir"},"1066":{"probe_name":"sys","function_name":"mkdirat"},"1088":{"probe_name":"sys","function_name":"preadv"},"1089":{"probe_name":"sys","function_name":"preadv2"},"1090":{"probe_name":"sys","function_name":"process_madvise"},"1091":{"probe_name":"sys","function_name":"process_mrelease"},"1092":{"probe_name":"sys","function_name":"process_vm_readv"},"1093":{"probe_name":"sys","function_name":"process_vm_writev"},"1094":{"probe_name":"sys","function_name":"pwrite64"},"1095":{"probe_name":"sys","function_name":"pwritev"},"1096":{"probe_name":"sys","function_name":"pwritev2"},"1097":{"probe_name":"sys","function_name":"read"},"1098":{"probe_name":"sys","function_name":"readlink"},"1099":{"probe_name":"sys","function_name":"readlinkat"},"1100":{"probe_name":"sys","function_name":"readv"},"1101":{"probe_name":"sys","function_name":"remap_file_pages"},"1102":{"probe_name":"sys","function_name":"removexattr"},"1103":{"probe_name":"sys","function_name":"rename"},"1104":{"probe_name":"sys","function_name":"renameat"},"1235":{"probe_name":"hdf5","function_name":"H5A__attr_post_copy_file"},"1236":{"probe_name":"hdf5","function_name":"H5A__attr_release_table"},"1237":{"probe_name":"hdf5","function_name":"H5A__close"},"1238":{"probe_name":"hdf5","function_name":"H5A__close_cb"},"1239":{"probe_name":"hdf5","function_name":"H5A__compact_build_table"},"1240":{"probe_name":"hdf5","function_name":"H5A__compact_build_table_cb"},"1241":{"probe_name":"hdf5","function_name":"H5A__copy"},"1242":{"probe_name":"hdf5","function_name":"H5A__create"},"1243":{"probe_name":"hdf5","function_name":"H5A__create_api_common"},"1244":{"probe_name":"hdf5","function_name":"H5A__create_by_name"},"1245":{"probe_name":"hdf5","function_name":"H5A__create_by_name_api_common"},"1246":{"probe_name":"hdf5","function_name":"H5A__delete_by_idx"},"1247":{"probe_name":"hdf5","function_name":"H5A__delete_by_name"},"1248":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_corder_compare"},"1249":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_corder_debug"},"1250":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_corder_decode"},"1251":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_corder_encode"},"1252":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_corder_store"},"1253":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_name_compare"},"1254":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_name_debug"},"1255":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_name_decode"},"1256":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_name_encode"},"1257":{"probe_name":"hdf5","function_name":"H5A__dense_btree2_name_store"},"1258":{"probe_name":"hdf5","function_name":"H5A__dense_build_table"},"1259":{"probe_name":"hdf5","function_name":"H5A__dense_build_table_cb"},"1260":{"probe_name":"hdf5","function_name":"H5A__dense_copy_fh_cb"},"1261":{"probe_name":"hdf5","function_name":"H5A__dense_create"},"1262":{"probe_name":"hdf5","function_name":"H5A__dense_delete"},"1263":{"probe_name":"hdf5","function_name":"H5A__dense_delete_bt2_cb"},"1264":{"probe_name":"hdf5","function_name":"H5A__dense_exists"},"1265":{"probe_name":"hdf5","function_name":"H5A__dense_fh_name_cmp"},"1266":{"probe_name":"hdf5","function_name":"H5A__dense_fnd_cb"},"1267":{"probe_name":"hdf5","function_name":"H5A__dense_insert"},"1268":{"probe_name":"hdf5","function_name":"H5A__dense_iterate"},"1269":{"probe_name":"hdf5","function_name":"H5A__dense_iterate_bt2_cb"},"1270":{"probe_name":"hdf5","function_name":"H5A__dense_open"},"1271":{"probe_name":"hdf5","function_name":"H5A__dense_post_copy_file_all"},"1272":{"probe_name":"hdf5","function_name":"H5A__dense_post_copy_file_cb"},"1273":{"probe_name":"hdf5","function_name":"H5A__dense_remove"},"1274":{"probe_name":"hdf5","function_name":"H5A__dense_remove_bt2_cb"},"1275":{"probe_name":"hdf5","function_name":"H5A__dense_remove_by_idx"},"1276":{"probe_name":"hdf5","function_name":"H5A__dense_remove_by_idx_bt2_cb"},"1277":{"probe_name":"hdf5","function_name":"H5A__dense_rename"},"1278":{"probe_name":"hdf5","function_name":"H5A__dense_write"},"1279":{"probe_name":"hdf5","function_name":"H5A__dense_write_bt2_cb"},"1280":{"probe_name":"hdf5","function_name":"H5A__dense_write_bt2_cb2"},"1281":{"probe_name":"hdf5","function_name":"H5A__exists_by_name"},"1282":{"probe_name":"hdf5","function_name":"H5A__get_ainfo"},"1283":{"probe_name":"hdf5","function_name":"H5A__get_create_plist"},"1284":{"probe_name":"hdf5","function_name":"H5A__get_info"},"1285":{"probe_name":"hdf5","function_name":"H5A__get_name"},"1286":{"probe_name":"hdf5","function_name":"H5A__get_shared_rc_test"},"1287":{"probe_name":"hdf5","function_name":"H5A__get_type"},"1288":{"probe_name":"hdf5","function_name":"H5A__is_shared_test"},"1289":{"probe_name":"hdf5","function_name":"H5A__iterate"},"1290":{"probe_name":"hdf5","function_name":"H5A__iterate_old"},"1291":{"probe_name":"hdf5","function_name":"H5A__open"},"1292":{"probe_name":"hdf5","function_name":"H5A__open_by_idx"},"1293":{"probe_name":"hdf5","function_name":"H5A__open_by_name"},"1294":{"probe_name":"hdf5","function_name":"H5A__open_common:0x6a920"},"1295":{"probe_name":"hdf5","function_name":"H5A__open_common:0x76bf0"},"1296":{"probe_name":"hdf5","function_name":"H5A__read"},"1297":{"probe_name":"hdf5","function_name":"H5A__rename_by_name"},"1298":{"probe_name":"hdf5","function_name":"H5A__set_version"},"1299":{"probe_name":"hdf5","function_name":"H5A__shared_free"},"1300":{"probe_name":"hdf5","function_name":"H5A__write"},"1301":{"probe_name":"hdf5","function_name":"H5A_get_space"},"1302":{"probe_name":"hdf5","function_name":"H5A_init"},"1303":{"probe_name":"hdf5","function_name":"H5A_nameof"},"1304":{"probe_name":"hdf5","function_name":"H5A_oloc"},"1305":{"probe_name":"hdf5","function_name":"H5A_term_package"},"1306":{"probe_name":"hdf5","function_name":"H5A_top_term_package"},"1307":{"probe_name":"hdf5","function_name":"H5A_type"},"1308":{"probe_name":"hdf5","function_name":"H5Aclose"},"1309":{"probe_name":"hdf5","function_name":"H5Aclose_async"},"1310":{"probe_name":"hdf5","function_name":"H5Acreate1"},"1311":{"probe_name":"hdf5","function_name":"H5Acreate2"},"1312":{"probe_name":"hdf5","function_name":"H5Acreate_async"},"1313":{"probe_name":"hdf5","function_name":"H5Acreate_by_name"},"1314":{"probe_name":"hdf5","function_name":"H5Acreate_by_name_async"},"1315":{"probe_name":"hdf5","function_name":"H5Adelete"},"1316":{"probe_name":"hdf5","function_name":"H5Adelete_by_idx"},"1317":{"probe_name":"hdf5","function_name":"H5Adelete_by_name"},"1318":{"probe_name":"hdf5","function_name":"H5Aexists"},"1319":{"probe_name":"hdf5","function_name":"H5Aexists_async"},"1320":{"probe_name":"hdf5","function_name":"H5Aexists_by_name"},"1321":{"probe_name":"hdf5","function_name":"H5Aexists_by_name_async"},"1322":{"probe_name":"hdf5","function_name":"H5Aget_create_plist"},"1323":{"probe_name":"hdf5","function_name":"H5Aget_info"},"1324":{"probe_name":"hdf5","function_name":"H5Aget_info_by_idx"},"1325":{"probe_name":"hdf5","function_name":"H5Aget_info_by_name"},"1326":{"probe_name":"hdf5","function_name":"H5Aget_name"},"1327":{"probe_name":"hdf5","function_name":"H5Aget_name_by_idx"},"1328":{"probe_name":"hdf5","function_name":"H5Aget_num_attrs"},"1329":{"probe_name":"hdf5","function_name":"H5Aget_space"},"1330":{"probe_name":"hdf5","function_name":"H5Aget_storage_size"},"1331":{"probe_name":"hdf5","function_name":"H5Aget_type"},"1332":{"probe_name":"hdf5","function_name":"H5Aiterate1"},"1333":{"probe_name":"hdf5","function_name":"H5Aiterate2"},"1334":{"probe_name":"hdf5","function_name":"H5Aiterate_by_name"},"1335":{"probe_name":"hdf5","function_name":"H5Aopen"},"1336":{"probe_name":"hdf5","function_name":"H5Aopen_async"},"1337":{"probe_name":"hdf5","function_name":"H5Aopen_by_idx"},"1338":{"probe_name":"hdf5","function_name":"H5Aopen_by_idx_async"},"1339":{"probe_name":"hdf5","function_name":"H5Aopen_by_name"},"1340":{"probe_name":"hdf5","function_name":"H5Aopen_by_name_async"},"1341":{"probe_name":"hdf5","function_name":"H5Aopen_idx"},"1342":{"probe_name":"hdf5","function_name":"H5Aopen_name"},"1343":{"probe_name":"hdf5","function_name":"H5Aread"},"1344":{"probe_name":"hdf5","function_name":"H5Aread_async"},"1345":{"probe_name":"hdf5","function_name":"H5Arename"},"1346":{"probe_name":"hdf5","function_name":"H5Arename_async"},"1347":{"probe_name":"hdf5","function_name":"H5Arename_by_name"},"1348":{"probe_name":"hdf5","function_name":"H5Arename_by_name_async"},"1349":{"probe_name":"hdf5","function_name":"H5Awrite"},"1350":{"probe_name":"hdf5","function_name":"H5Awrite_async"},"1351":{"probe_name":"hdf5","function_name":"H5B2__cache_hdr_deserialize"},"1352":{"probe_name":"hdf5","function_name":"H5B2__cache_hdr_free_icr"},"1353":{"probe_name":"hdf5","function_name":"H5B2__cache_hdr_get_initial_load_size"},"1354":{"probe_name":"hdf5","function_name":"H5B2__cache_hdr_image_len"},"1355":{"probe_name":"hdf5","function_name":"H5B2__cache_hdr_notify"},"1356":{"probe_name":"hdf5","function_name":"H5B2__cache_hdr_serialize"},"1357":{"probe_name":"hdf5","function_name":"H5B2__cache_hdr_verify_chksum"},"1358":{"probe_name":"hdf5","function_name":"H5B2__cache_int_deserialize"},"1359":{"probe_name":"hdf5","function_name":"H5B2__cache_int_free_icr"},"1360":{"probe_name":"hdf5","function_name":"H5B2__cache_int_get_initial_load_size"},"1361":{"probe_name":"hdf5","function_name":"H5B2__cache_int_image_len"},"1362":{"probe_name":"hdf5","function_name":"H5B2__cache_int_notify"},"1363":{"probe_name":"hdf5","function_name":"H5B2__cache_int_serialize"},"1364":{"probe_name":"hdf5","function_name":"H5B2__cache_int_verify_chksum"},"1365":{"probe_name":"hdf5","function_name":"H5B2__cache_leaf_deserialize"},"1366":{"probe_name":"hdf5","function_name":"H5B2__cache_leaf_free_icr"},"1367":{"probe_name":"hdf5","function_name":"H5B2__cache_leaf_get_initial_load_size"},"1368":{"probe_name":"hdf5","function_name":"H5B2__cache_leaf_image_len"},"1369":{"probe_name":"hdf5","function_name":"H5B2__cache_leaf_notify"},"1370":{"probe_name":"hdf5","function_name":"H5B2__cache_leaf_serialize"},"1371":{"probe_name":"hdf5","function_name":"H5B2__cache_leaf_verify_chksum"},"1372":{"probe_name":"hdf5","function_name":"H5B2__create_flush_depend"},"1373":{"probe_name":"hdf5","function_name":"H5B2__create_internal"},"1374":{"probe_name":"hdf5","function_name":"H5B2__create_leaf"},"1375":{"probe_name":"hdf5","function_name":"H5B2__delete_node"},"1376":{"probe_name":"hdf5","function_name":"H5B2__delete_node.localalias"},"1377":{"probe_name":"hdf5","function_name":"H5B2__destroy_flush_depend"},"1378":{"probe_name":"hdf5","function_name":"H5B2__get_node_depth_test"},"1379":{"probe_name":"hdf5","function_name":"H5B2__get_node_info_test"},"1380":{"probe_name":"hdf5","function_name":"H5B2__get_root_addr_test"},"1381":{"probe_name":"hdf5","function_name":"H5B2__hdr_alloc"},"1382":{"probe_name":"hdf5","function_name":"H5B2__hdr_create"},"1383":{"probe_name":"hdf5","function_name":"H5B2__hdr_debug"},"1384":{"probe_name":"hdf5","function_name":"H5B2__hdr_decr"},"1385":{"probe_name":"hdf5","function_name":"H5B2__hdr_delete"},"1386":{"probe_name":"hdf5","function_name":"H5B2__hdr_dirty"},"1387":{"probe_name":"hdf5","function_name":"H5B2__hdr_free"},"1388":{"probe_name":"hdf5","function_name":"H5B2__hdr_fuse_decr"},"1389":{"probe_name":"hdf5","function_name":"H5B2__hdr_fuse_incr"},"1390":{"probe_name":"hdf5","function_name":"H5B2__hdr_incr"},"1391":{"probe_name":"hdf5","function_name":"H5B2__hdr_init"},"1392":{"probe_name":"hdf5","function_name":"H5B2__hdr_protect"},"1393":{"probe_name":"hdf5","function_name":"H5B2__hdr_unprotect"},"1394":{"probe_name":"hdf5","function_name":"H5B2__insert"},"1395":{"probe_name":"hdf5","function_name":"H5B2__insert_internal"},"1396":{"probe_name":"hdf5","function_name":"H5B2__insert_internal.localalias"},"1397":{"probe_name":"hdf5","function_name":"H5B2__insert_leaf"},"1398":{"probe_name":"hdf5","function_name":"H5B2__int_debug"},"1399":{"probe_name":"hdf5","function_name":"H5B2__internal_free"},"1400":{"probe_name":"hdf5","function_name":"H5B2__iterate_node"},"1401":{"probe_name":"hdf5","function_name":"H5B2__iterate_node.localalias"},"1402":{"probe_name":"hdf5","function_name":"H5B2__leaf_debug"},"1403":{"probe_name":"hdf5","function_name":"H5B2__leaf_free"},"1404":{"probe_name":"hdf5","function_name":"H5B2__locate_record"},"1405":{"probe_name":"hdf5","function_name":"H5B2__merge2"},"1406":{"probe_name":"hdf5","function_name":"H5B2__merge3"},"1407":{"probe_name":"hdf5","function_name":"H5B2__neighbor_internal"},"1408":{"probe_name":"hdf5","function_name":"H5B2__neighbor_internal.localalias"},"1409":{"probe_name":"hdf5","function_name":"H5B2__neighbor_leaf"},"1410":{"probe_name":"hdf5","function_name":"H5B2__node_size"},"1411":{"probe_name":"hdf5","function_name":"H5B2__node_size.localalias"},"1412":{"probe_name":"hdf5","function_name":"H5B2__protect_internal"},"1413":{"probe_name":"hdf5","function_name":"H5B2__protect_leaf"},"1414":{"probe_name":"hdf5","function_name":"H5B2__redistribute2"},"1415":{"probe_name":"hdf5","function_name":"H5B2__redistribute3"},"1416":{"probe_name":"hdf5","function_name":"H5B2__remove_internal"},"1417":{"probe_name":"hdf5","function_name":"H5B2__remove_internal.localalias"},"1418":{"probe_name":"hdf5","function_name":"H5B2__remove_internal_by_idx"},"1419":{"probe_name":"hdf5","function_name":"H5B2__remove_internal_by_idx.localalias"},"1420":{"probe_name":"hdf5","function_name":"H5B2__remove_leaf"},"1421":{"probe_name":"hdf5","function_name":"H5B2__remove_leaf_by_idx"},"1422":{"probe_name":"hdf5","function_name":"H5B2__shadow_internal"},"1423":{"probe_name":"hdf5","function_name":"H5B2__shadow_leaf"},"1424":{"probe_name":"hdf5","function_name":"H5B2__split1"},"1425":{"probe_name":"hdf5","function_name":"H5B2__split_root"},"1426":{"probe_name":"hdf5","function_name":"H5B2__swap_leaf"},"1427":{"probe_name":"hdf5","function_name":"H5B2__test2_compare"},"1428":{"probe_name":"hdf5","function_name":"H5B2__test2_debug"},"1429":{"probe_name":"hdf5","function_name":"H5B2__test2_decode"},"1430":{"probe_name":"hdf5","function_name":"H5B2__test2_encode"},"1431":{"probe_name":"hdf5","function_name":"H5B2__test2_store"},"1432":{"probe_name":"hdf5","function_name":"H5B2__test_compare"},"1433":{"probe_name":"hdf5","function_name":"H5B2__test_crt_context"},"1434":{"probe_name":"hdf5","function_name":"H5B2__test_debug"},"1435":{"probe_name":"hdf5","function_name":"H5B2__test_decode"},"1436":{"probe_name":"hdf5","function_name":"H5B2__test_dst_context"},"1437":{"probe_name":"hdf5","function_name":"H5B2__test_encode"},"1438":{"probe_name":"hdf5","function_name":"H5B2__test_store"},"1439":{"probe_name":"hdf5","function_name":"H5B2__update_flush_depend"},"1440":{"probe_name":"hdf5","function_name":"H5B2__update_internal"},"1441":{"probe_name":"hdf5","function_name":"H5B2__update_internal.localalias"},"1442":{"probe_name":"hdf5","function_name":"H5B2__update_leaf"},"1443":{"probe_name":"hdf5","function_name":"H5B2_close"},"1444":{"probe_name":"hdf5","function_name":"H5B2_create"},"1445":{"probe_name":"hdf5","function_name":"H5B2_delete"},"1446":{"probe_name":"hdf5","function_name":"H5B2_depend"},"1447":{"probe_name":"hdf5","function_name":"H5B2_find"},"1448":{"probe_name":"hdf5","function_name":"H5B2_get_addr"},"1449":{"probe_name":"hdf5","function_name":"H5B2_get_nrec"},"1450":{"probe_name":"hdf5","function_name":"H5B2_index"},"1451":{"probe_name":"hdf5","function_name":"H5B2_insert"},"1452":{"probe_name":"hdf5","function_name":"H5B2_iterate"},"1453":{"probe_name":"hdf5","function_name":"H5B2_modify"},"1454":{"probe_name":"hdf5","function_name":"H5B2_neighbor"},"1455":{"probe_name":"hdf5","function_name":"H5B2_open"},"1456":{"probe_name":"hdf5","function_name":"H5B2_patch_file"},"1457":{"probe_name":"hdf5","function_name":"H5B2_remove"},"1458":{"probe_name":"hdf5","function_name":"H5B2_remove_by_idx"},"1459":{"probe_name":"hdf5","function_name":"H5B2_size"},"1460":{"probe_name":"hdf5","function_name":"H5B2_stat_info"},"1461":{"probe_name":"hdf5","function_name":"H5B2_update"},"1462":{"probe_name":"hdf5","function_name":"H5B__cache_deserialize"},"1463":{"probe_name":"hdf5","function_name":"H5B__cache_free_icr"},"1464":{"probe_name":"hdf5","function_name":"H5B__cache_get_initial_load_size"},"1465":{"probe_name":"hdf5","function_name":"H5B__cache_image_len"},"1466":{"probe_name":"hdf5","function_name":"H5B__cache_serialize"},"1467":{"probe_name":"hdf5","function_name":"H5B__get_info_helper"},"1468":{"probe_name":"hdf5","function_name":"H5B__insert_helper"},"1469":{"probe_name":"hdf5","function_name":"H5B__iterate_helper"},"1470":{"probe_name":"hdf5","function_name":"H5B__node_dest"},"1471":{"probe_name":"hdf5","function_name":"H5B__remove_helper"},"1472":{"probe_name":"hdf5","function_name":"H5B__verify_structure"},"1473":{"probe_name":"hdf5","function_name":"H5B_create"},"1474":{"probe_name":"hdf5","function_name":"H5B_debug"},"1475":{"probe_name":"hdf5","function_name":"H5B_delete"},"1476":{"probe_name":"hdf5","function_name":"H5B_delete.localalias"},"1477":{"probe_name":"hdf5","function_name":"H5B_find"},"1478":{"probe_name":"hdf5","function_name":"H5B_find.localalias"},"1479":{"probe_name":"hdf5","function_name":"H5B_get_info"},"1480":{"probe_name":"hdf5","function_name":"H5B_insert"},"1481":{"probe_name":"hdf5","function_name":"H5B_iterate"},"1482":{"probe_name":"hdf5","function_name":"H5B_remove"},"1483":{"probe_name":"hdf5","function_name":"H5B_shared_free"},"1484":{"probe_name":"hdf5","function_name":"H5B_shared_new"},"1485":{"probe_name":"hdf5","function_name":"H5B_valid"},"1486":{"probe_name":"hdf5","function_name":"H5CX__pop_common"},"1487":{"probe_name":"hdf5","function_name":"H5CX_free_state"},"1488":{"probe_name":"hdf5","function_name":"H5CX_get_actual_selection_io_mode"},"1489":{"probe_name":"hdf5","function_name":"H5CX_get_bkgr_buf"},"1490":{"probe_name":"hdf5","function_name":"H5CX_get_bkgr_buf_type"},"1491":{"probe_name":"hdf5","function_name":"H5CX_get_btree_split_ratios"},"1492":{"probe_name":"hdf5","function_name":"H5CX_get_coll_metadata_read"},"1493":{"probe_name":"hdf5","function_name":"H5CX_get_data_transform"},"1494":{"probe_name":"hdf5","function_name":"H5CX_get_dset_min_ohdr_flag"},"1495":{"probe_name":"hdf5","function_name":"H5CX_get_dt_conv_cb"},"1496":{"probe_name":"hdf5","function_name":"H5CX_get_dxpl"},"1497":{"probe_name":"hdf5","function_name":"H5CX_get_encoding"},"1498":{"probe_name":"hdf5","function_name":"H5CX_get_err_detect"},"1499":{"probe_name":"hdf5","function_name":"H5CX_get_ext_file_prefix"},"1500":{"probe_name":"hdf5","function_name":"H5CX_get_filter_cb"},"1501":{"probe_name":"hdf5","function_name":"H5CX_get_intermediate_group"},"1502":{"probe_name":"hdf5","function_name":"H5CX_get_io_xfer_mode"},"1503":{"probe_name":"hdf5","function_name":"H5CX_get_lapl"},"1504":{"probe_name":"hdf5","function_name":"H5CX_get_libver_bounds"},"1505":{"probe_name":"hdf5","function_name":"H5CX_get_max_temp_buf"},"1506":{"probe_name":"hdf5","function_name":"H5CX_get_modify_write_buf"},"1507":{"probe_name":"hdf5","function_name":"H5CX_get_mpi_coll_datatypes"},"1508":{"probe_name":"hdf5","function_name":"H5CX_get_mpi_file_flushing"},"1509":{"probe_name":"hdf5","function_name":"H5CX_get_mpio_chunk_opt_mode"},"1510":{"probe_name":"hdf5","function_name":"H5CX_get_mpio_chunk_opt_num"},"1511":{"probe_name":"hdf5","function_name":"H5CX_get_mpio_chunk_opt_ratio"},"1512":{"probe_name":"hdf5","function_name":"H5CX_get_mpio_coll_opt"},"1513":{"probe_name":"hdf5","function_name":"H5CX_get_mpio_global_no_coll_cause"},"1514":{"probe_name":"hdf5","function_name":"H5CX_get_mpio_local_no_coll_cause"},"1515":{"probe_name":"hdf5","function_name":"H5CX_get_mpio_rank0_bcast"},"1516":{"probe_name":"hdf5","function_name":"H5CX_get_nlinks"},"1517":{"probe_name":"hdf5","function_name":"H5CX_get_no_selection_io_cause"},"1518":{"probe_name":"hdf5","function_name":"H5CX_get_ohdr_flags"},"2087":{"probe_name":"hdf5","function_name":"H5D__typeinfo_init_phase2"},"2088":{"probe_name":"hdf5","function_name":"H5D__typeinfo_init_phase3.part.0"},"2089":{"probe_name":"hdf5","function_name":"H5D__virtual_build_source_name.part.0"},"2090":{"probe_name":"hdf5","function_name":"H5D__virtual_copy"},"2091":{"probe_name":"hdf5","function_name":"H5D__virtual_copy_layout"},"2092":{"probe_name":"hdf5","function_name":"H5D__virtual_copy_parsed_name"},"2093":{"probe_name":"hdf5","function_name":"H5D__virtual_delete"},"2094":{"probe_name":"hdf5","function_name":"H5D__virtual_flush"},"2095":{"probe_name":"hdf5","function_name":"H5D__virtual_hold_source_dset_files"},"2096":{"probe_name":"hdf5","function_name":"H5D__virtual_init"},"2097":{"probe_name":"hdf5","function_name":"H5D__virtual_io_init"},"2098":{"probe_name":"hdf5","function_name":"H5D__virtual_is_data_cached"},"2099":{"probe_name":"hdf5","function_name":"H5D__virtual_is_space_alloc"},"2100":{"probe_name":"hdf5","function_name":"H5D__virtual_open_source_dset"},"2101":{"probe_name":"hdf5","function_name":"H5D__virtual_post_io"},"2102":{"probe_name":"hdf5","function_name":"H5D__virtual_pre_io.isra.0"},"2103":{"probe_name":"hdf5","function_name":"H5D__virtual_read"},"2104":{"probe_name":"hdf5","function_name":"H5D__virtual_read_one"},"2105":{"probe_name":"hdf5","function_name":"H5D__virtual_refresh_source_dset"},"2106":{"probe_name":"hdf5","function_name":"H5D__virtual_refresh_source_dsets"},"2107":{"probe_name":"hdf5","function_name":"H5D__virtual_release_source_dset_files"},"2108":{"probe_name":"hdf5","function_name":"H5D__virtual_reset_layout"},"2109":{"probe_name":"hdf5","function_name":"H5D__virtual_set_extent_unlim"},"2110":{"probe_name":"hdf5","function_name":"H5D__virtual_store_layout"},"2111":{"probe_name":"hdf5","function_name":"H5D__virtual_str_append"},"2112":{"probe_name":"hdf5","function_name":"H5D__virtual_write"},"2113":{"probe_name":"hdf5","function_name":"H5D__virtual_write_one"},"2114":{"probe_name":"hdf5","function_name":"H5D__vlen_get_buf_size"},"2115":{"probe_name":"hdf5","function_name":"H5D__vlen_get_buf_size_alloc"},"2116":{"probe_name":"hdf5","function_name":"H5D__vlen_get_buf_size_cb"},"2117":{"probe_name":"hdf5","function_name":"H5D__vlen_get_buf_size_gen"},"2118":{"probe_name":"hdf5","function_name":"H5D__vlen_get_buf_size_gen_cb"},"2119":{"probe_name":"hdf5","function_name":"H5D__write"},"2120":{"probe_name":"hdf5","function_name":"H5D__write_api_common"},"2121":{"probe_name":"hdf5","function_name":"H5D__write_api_common.constprop.0"},"2122":{"probe_name":"hdf5","function_name":"H5D_btree_debug"},"2123":{"probe_name":"hdf5","function_name":"H5D_chunk_idx_reset"},"2124":{"probe_name":"hdf5","function_name":"H5D_close"},"2125":{"probe_name":"hdf5","function_name":"H5D_close.localalias"},"2126":{"probe_name":"hdf5","function_name":"H5D_flush_all"},"2127":{"probe_name":"hdf5","function_name":"H5D_get_access_plist"},"2128":{"probe_name":"hdf5","function_name":"H5D_get_create_plist"},"2129":{"probe_name":"hdf5","function_name":"H5D_get_dcpl_id"},"2130":{"probe_name":"hdf5","function_name":"H5D_init"},"2131":{"probe_name":"hdf5","function_name":"H5D_mult_refresh_close"},"2132":{"probe_name":"hdf5","function_name":"H5D_mult_refresh_reopen"},"2133":{"probe_name":"hdf5","function_name":"H5D_nameof"},"2134":{"probe_name":"hdf5","function_name":"H5D_oloc"},"2135":{"probe_name":"hdf5","function_name":"H5D_open"},"2136":{"probe_name":"hdf5","function_name":"H5D_select_io_mem"},"2137":{"probe_name":"hdf5","function_name":"H5D_term_package"},"2138":{"probe_name":"hdf5","function_name":"H5D_top_term_package"},"2139":{"probe_name":"hdf5","function_name":"H5D_virtual_check_mapping_post"},"2140":{"probe_name":"hdf5","function_name":"H5D_virtual_check_mapping_pre"},"2141":{"probe_name":"hdf5","function_name":"H5D_virtual_check_min_dims"},"2142":{"probe_name":"hdf5","function_name":"H5D_virtual_free_parsed_name"},"2143":{"probe_name":"hdf5","function_name":"H5D_virtual_parse_source_name"},"2144":{"probe_name":"hdf5","function_name":"H5D_virtual_update_min_dims"},"2145":{"probe_name":"hdf5","function_name":"H5Dchunk_iter"},"2146":{"probe_name":"hdf5","function_name":"H5Dclose"},"2147":{"probe_name":"hdf5","function_name":"H5Dclose_async"},"2148":{"probe_name":"hdf5","function_name":"H5Dcreate1"},"2149":{"probe_name":"hdf5","function_name":"H5Dcreate2"},"2150":{"probe_name":"hdf5","function_name":"H5Dcreate_anon"},"2151":{"probe_name":"hdf5","function_name":"H5Dcreate_async"},"2152":{"probe_name":"hdf5","function_name":"H5Ddebug"},"2153":{"probe_name":"hdf5","function_name":"H5Dextend"},"2154":{"probe_name":"hdf5","function_name":"H5Dfill"},"2155":{"probe_name":"hdf5","function_name":"H5Dflush"},"2156":{"probe_name":"hdf5","function_name":"H5Dformat_convert"},"2157":{"probe_name":"hdf5","function_name":"H5Dgather"},"2158":{"probe_name":"hdf5","function_name":"H5Dget_access_plist"},"2159":{"probe_name":"hdf5","function_name":"H5Dget_chunk_index_type"},"2160":{"probe_name":"hdf5","function_name":"H5Dget_chunk_info"},"2161":{"probe_name":"hdf5","function_name":"H5Dget_chunk_info_by_coord"},"2162":{"probe_name":"hdf5","function_name":"H5Dget_chunk_storage_size"},"2163":{"probe_name":"hdf5","function_name":"H5Dget_create_plist"},"2164":{"probe_name":"hdf5","function_name":"H5Dget_num_chunks"},"2165":{"probe_name":"hdf5","function_name":"H5Dget_offset"},"2166":{"probe_name":"hdf5","function_name":"H5Dget_space"},"2167":{"probe_name":"hdf5","function_name":"H5Dget_space_async"},"2168":{"probe_name":"hdf5","function_name":"H5Dget_space_status"},"2169":{"probe_name":"hdf5","function_name":"H5Dget_storage_size"},"2170":{"probe_name":"hdf5","function_name":"H5Dget_type"},"2171":{"probe_name":"hdf5","function_name":"H5Diterate"},"2172":{"probe_name":"hdf5","function_name":"H5Dopen1"},"2173":{"probe_name":"hdf5","function_name":"H5Dopen2"},"2174":{"probe_name":"hdf5","function_name":"H5Dopen_async"},"2175":{"probe_name":"hdf5","function_name":"H5Dread"},"2176":{"probe_name":"hdf5","function_name":"H5Dread_async"},"2177":{"probe_name":"hdf5","function_name":"H5Dread_chunk"},"2178":{"probe_name":"hdf5","function_name":"H5Dread_multi"},"2179":{"probe_name":"hdf5","function_name":"H5Dread_multi_async"},"2180":{"probe_name":"hdf5","function_name":"H5Drefresh"},"2181":{"probe_name":"hdf5","function_name":"H5Dscatter"},"2182":{"probe_name":"hdf5","function_name":"H5Dset_extent"},"2183":{"probe_name":"hdf5","function_name":"H5Dset_extent_async"},"2184":{"probe_name":"hdf5","function_name":"H5Dvlen_get_buf_size"},"2185":{"probe_name":"hdf5","function_name":"H5Dvlen_reclaim"},"2186":{"probe_name":"hdf5","function_name":"H5Dwrite"},"2187":{"probe_name":"hdf5","function_name":"H5Dwrite_async"},"2188":{"probe_name":"hdf5","function_name":"H5Dwrite_chunk"},"2189":{"probe_name":"hdf5","function_name":"H5Dwrite_multi"},"2190":{"probe_name":"hdf5","function_name":"H5Dwrite_multi_async"},"2191":{"probe_name":"hdf5","function_name":"H5EA__cache_dblk_page_deserialize"},"2192":{"probe_name":"hdf5","function_name":"H5EA__cache_dblk_page_free_icr"},"2193":{"probe_name":"hdf5","function_name":"H5EA__cache_dblk_page_get_initial_load_size"},"2194":{"probe_name":"hdf5","function_name":"H5EA__cache_dblk_page_image_len"},"2195":{"probe_name":"hdf5","function_name":"H5EA__cache_dblk_page_notify"},"2196":{"probe_name":"hdf5","function_name":"H5EA__cache_dblk_page_serialize"},"2197":{"probe_name":"hdf5","function_name":"H5EA__cache_dblk_page_verify_chksum"},"2198":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_deserialize"},"2199":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_free_icr"},"2200":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_fsf_size"},"2201":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_get_initial_load_size"},"2202":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_image_len"},"2203":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_notify"},"2204":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_serialize"},"2205":{"probe_name":"hdf5","function_name":"H5EA__cache_dblock_verify_chksum"},"2206":{"probe_name":"hdf5","function_name":"H5EA__cache_hdr_deserialize"},"2207":{"probe_name":"hdf5","function_name":"H5EA__cache_hdr_free_icr"},"2208":{"probe_name":"hdf5","function_name":"H5EA__cache_hdr_get_initial_load_size"},"2209":{"probe_name":"hdf5","function_name":"H5EA__cache_hdr_image_len"},"2210":{"probe_name":"hdf5","function_name":"H5EA__cache_hdr_notify"},"2211":{"probe_name":"hdf5","function_name":"H5EA__cache_hdr_serialize"},"2212":{"probe_name":"hdf5","function_name":"H5EA__cache_hdr_verify_chksum"},"2213":{"probe_name":"hdf5","function_name":"H5EA__cache_iblock_deserialize"},"2214":{"probe_name":"hdf5","function_name":"H5EA__cache_iblock_free_icr"},"2215":{"probe_name":"hdf5","function_name":"H5EA__cache_iblock_get_initial_load_size"},"2216":{"probe_name":"hdf5","function_name":"H5EA__cache_iblock_image_len"},"2217":{"probe_name":"hdf5","function_name":"H5EA__cache_iblock_notify"},"2218":{"probe_name":"hdf5","function_name":"H5EA__cache_iblock_serialize"},"2219":{"probe_name":"hdf5","function_name":"H5EA__cache_iblock_verify_chksum"},"2220":{"probe_name":"hdf5","function_name":"H5EA__cache_sblock_deserialize"},"2221":{"probe_name":"hdf5","function_name":"H5EA__cache_sblock_free_icr"},"2222":{"probe_name":"hdf5","function_name":"H5EA__cache_sblock_get_initial_load_size"},"2223":{"probe_name":"hdf5","function_name":"H5EA__cache_sblock_image_len"},"2224":{"probe_name":"hdf5","function_name":"H5EA__cache_sblock_notify"},"2225":{"probe_name":"hdf5","function_name":"H5EA__cache_sblock_serialize"},"2226":{"probe_name":"hdf5","function_name":"H5EA__cache_sblock_verify_chksum"},"2227":{"probe_name":"hdf5","function_name":"H5EA__cmp_cparam_test"},"2228":{"probe_name":"hdf5","function_name":"H5EA__create_flush_depend"},"2229":{"probe_name":"hdf5","function_name":"H5EA__dblk_page_alloc"},"2230":{"probe_name":"hdf5","function_name":"H5EA__dblk_page_create"},"2231":{"probe_name":"hdf5","function_name":"H5EA__dblk_page_dest"},"2232":{"probe_name":"hdf5","function_name":"H5EA__dblk_page_protect"},"2233":{"probe_name":"hdf5","function_name":"H5EA__dblk_page_unprotect"},"2234":{"probe_name":"hdf5","function_name":"H5EA__dblock_alloc"},"2235":{"probe_name":"hdf5","function_name":"H5EA__dblock_create"},"2236":{"probe_name":"hdf5","function_name":"H5EA__dblock_debug"},"2237":{"probe_name":"hdf5","function_name":"H5EA__dblock_delete"},"2238":{"probe_name":"hdf5","function_name":"H5EA__dblock_dest"},"2239":{"probe_name":"hdf5","function_name":"H5EA__dblock_protect"},"2240":{"probe_name":"hdf5","function_name":"H5EA__dblock_sblk_idx"},"2241":{"probe_name":"hdf5","function_name":"H5EA__dblock_unprotect"},"2242":{"probe_name":"hdf5","function_name":"H5EA__destroy_flush_depend"},"2243":{"probe_name":"hdf5","function_name":"H5EA__get_cparam_test"},"2244":{"probe_name":"hdf5","function_name":"H5EA__hdr_alloc"},"2245":{"probe_name":"hdf5","function_name":"H5EA__hdr_alloc_elmts"},"2246":{"probe_name":"hdf5","function_name":"H5EA__hdr_create"},"2247":{"probe_name":"hdf5","function_name":"H5EA__hdr_debug"},"2248":{"probe_name":"hdf5","function_name":"H5EA__hdr_decr"},"2249":{"probe_name":"hdf5","function_name":"H5EA__hdr_delete"},"2250":{"probe_name":"hdf5","function_name":"H5EA__hdr_dest"},"2251":{"probe_name":"hdf5","function_name":"H5EA__hdr_free_elmts"},"2252":{"probe_name":"hdf5","function_name":"H5EA__hdr_fuse_decr"},"2253":{"probe_name":"hdf5","function_name":"H5EA__hdr_fuse_incr"},"2254":{"probe_name":"hdf5","function_name":"H5EA__hdr_incr"},"2255":{"probe_name":"hdf5","function_name":"H5EA__hdr_init"},"2256":{"probe_name":"hdf5","function_name":"H5EA__hdr_modified"},"2257":{"probe_name":"hdf5","function_name":"H5EA__hdr_protect"},"2258":{"probe_name":"hdf5","function_name":"H5EA__hdr_unprotect"},"2259":{"probe_name":"hdf5","function_name":"H5EA__iblock_alloc"},"2260":{"probe_name":"hdf5","function_name":"H5EA__iblock_create"},"2261":{"probe_name":"hdf5","function_name":"H5EA__iblock_debug"},"2262":{"probe_name":"hdf5","function_name":"H5EA__iblock_delete"},"2263":{"probe_name":"hdf5","function_name":"H5EA__iblock_dest"},"2264":{"probe_name":"hdf5","function_name":"H5EA__iblock_protect"},"2265":{"probe_name":"hdf5","function_name":"H5EA__iblock_unprotect"},"2266":{"probe_name":"hdf5","function_name":"H5EA__lookup_elmt.constprop.0.isra.0"},"2267":{"probe_name":"hdf5","function_name":"H5EA__sblock_alloc"},"2268":{"probe_name":"hdf5","function_name":"H5EA__sblock_create"},"2269":{"probe_name":"hdf5","function_name":"H5EA__sblock_debug"},"2270":{"probe_name":"hdf5","function_name":"H5EA__sblock_delete"},"2271":{"probe_name":"hdf5","function_name":"H5EA__sblock_dest"},"2272":{"probe_name":"hdf5","function_name":"H5EA__sblock_protect"},"2273":{"probe_name":"hdf5","function_name":"H5EA__sblock_unprotect"},"2274":{"probe_name":"hdf5","function_name":"H5EA__test_crt_context"},"2275":{"probe_name":"hdf5","function_name":"H5EA__test_crt_dbg_context"},"2276":{"probe_name":"hdf5","function_name":"H5EA__test_debug"},"2277":{"probe_name":"hdf5","function_name":"H5EA__test_decode"},"2278":{"probe_name":"hdf5","function_name":"H5EA__test_dst_context"},"2279":{"probe_name":"hdf5","function_name":"H5EA__test_dst_dbg_context"},"2280":{"probe_name":"hdf5","function_name":"H5EA__test_encode"},"2281":{"probe_name":"hdf5","function_name":"H5EA__test_fill"},"2282":{"probe_name":"hdf5","function_name":"H5EA_close"},"2283":{"probe_name":"hdf5","function_name":"H5EA_create"},"2284":{"probe_name":"hdf5","function_name":"H5EA_delete"},"2285":{"probe_name":"hdf5","function_name":"H5EA_depend"},"2286":{"probe_name":"hdf5","function_name":"H5EA_get"},"2287":{"probe_name":"hdf5","function_name":"H5EA_get_addr"},"2288":{"probe_name":"hdf5","function_name":"H5EA_get_nelmts"},"2289":{"probe_name":"hdf5","function_name":"H5EA_get_stats"},"2290":{"probe_name":"hdf5","function_name":"H5EA_iterate"},"2291":{"probe_name":"hdf5","function_name":"H5EA_open"},"2292":{"probe_name":"hdf5","function_name":"H5EA_patch_file"},"2293":{"probe_name":"hdf5","function_name":"H5EA_set"},"2294":{"probe_name":"hdf5","function_name":"H5ES__cancel"},"2295":{"probe_name":"hdf5","function_name":"H5ES__cancel_cb"},"2296":{"probe_name":"hdf5","function_name":"H5ES__close_cb"},"2297":{"probe_name":"hdf5","function_name":"H5ES__close_failed_cb"},"2298":{"probe_name":"hdf5","function_name":"H5ES__create"},"2299":{"probe_name":"hdf5","function_name":"H5ES__event_completed"},"2300":{"probe_name":"hdf5","function_name":"H5ES__event_free"},"2301":{"probe_name":"hdf5","function_name":"H5ES__event_new"},"2302":{"probe_name":"hdf5","function_name":"H5ES__get_err_info"},"2303":{"probe_name":"hdf5","function_name":"H5ES__get_err_info_cb"},"2304":{"probe_name":"hdf5","function_name":"H5ES__get_requests"},"2305":{"probe_name":"hdf5","function_name":"H5ES__get_requests_cb"},"2306":{"probe_name":"hdf5","function_name":"H5ES__insert_request"},"2307":{"probe_name":"hdf5","function_name":"H5ES__list_append"},"2308":{"probe_name":"hdf5","function_name":"H5ES__list_count"},"2309":{"probe_name":"hdf5","function_name":"H5ES__list_iterate"},"2310":{"probe_name":"hdf5","function_name":"H5ES__list_remove"},"2311":{"probe_name":"hdf5","function_name":"H5ES__op_complete"},"2312":{"probe_name":"hdf5","function_name":"H5ES__wait"},"2313":{"probe_name":"hdf5","function_name":"H5ES__wait_cb"},"2314":{"probe_name":"hdf5","function_name":"H5ES_init"},"2315":{"probe_name":"hdf5","function_name":"H5ES_insert"},"2316":{"probe_name":"hdf5","function_name":"H5ES_term_package"},"2317":{"probe_name":"hdf5","function_name":"H5EScancel"},"2318":{"probe_name":"hdf5","function_name":"H5ESclose"},"2319":{"probe_name":"hdf5","function_name":"H5EScreate"},"2320":{"probe_name":"hdf5","function_name":"H5ESfree_err_info"},"2321":{"probe_name":"hdf5","function_name":"H5ESget_count"},"2322":{"probe_name":"hdf5","function_name":"H5ESget_err_count"},"2323":{"probe_name":"hdf5","function_name":"H5ESget_err_info"},"2324":{"probe_name":"hdf5","function_name":"H5ESget_err_status"},"2325":{"probe_name":"hdf5","function_name":"H5ESget_op_counter"},"2326":{"probe_name":"hdf5","function_name":"H5ESget_requests"},"2327":{"probe_name":"hdf5","function_name":"H5ESinsert_request"},"2328":{"probe_name":"hdf5","function_name":"H5ESregister_complete_func"},"2329":{"probe_name":"hdf5","function_name":"H5ESregister_insert_func"},"2330":{"probe_name":"hdf5","function_name":"H5ESwait"},"2331":{"probe_name":"hdf5","function_name":"H5E__append_stack"},"2332":{"probe_name":"hdf5","function_name":"H5E__clear_entries"},"2333":{"probe_name":"hdf5","function_name":"H5E__clear_stack"},"2334":{"probe_name":"hdf5","function_name":"H5E__close_msg"},"2335":{"probe_name":"hdf5","function_name":"H5E__close_msg_cb"},"2336":{"probe_name":"hdf5","function_name":"H5E__close_stack"},"2337":{"probe_name":"hdf5","function_name":"H5E__create_msg"},"2338":{"probe_name":"hdf5","function_name":"H5E__get_auto"},"2339":{"probe_name":"hdf5","function_name":"H5E__get_class_name"},"2340":{"probe_name":"hdf5","function_name":"H5E__get_current_stack"},"2341":{"probe_name":"hdf5","function_name":"H5E__get_msg"},"2342":{"probe_name":"hdf5","function_name":"H5E__get_num"},"2343":{"probe_name":"hdf5","function_name":"H5E__pop"},"2344":{"probe_name":"hdf5","function_name":"H5E__print"},"2345":{"probe_name":"hdf5","function_name":"H5E__print2"},"2346":{"probe_name":"hdf5","function_name":"H5E__push_stack"},"2347":{"probe_name":"hdf5","function_name":"H5E__register_class"},"2348":{"probe_name":"hdf5","function_name":"H5E__set_auto"},"2349":{"probe_name":"hdf5","function_name":"H5E__set_current_stack"},"2350":{"probe_name":"hdf5","function_name":"H5E__set_default_auto"},"2351":{"probe_name":"hdf5","function_name":"H5E__unregister_class"},"2352":{"probe_name":"hdf5","function_name":"H5E__walk"},"2353":{"probe_name":"hdf5","function_name":"H5E__walk1_cb"},"2354":{"probe_name":"hdf5","function_name":"H5E__walk2_cb"},"2355":{"probe_name":"hdf5","function_name":"H5E_clear_stack"},"2356":{"probe_name":"hdf5","function_name":"H5E_dump_api_stack"},"2358":{"probe_name":"hdf5","function_name":"H5E_pause_stack"},"2359":{"probe_name":"hdf5","function_name":"H5E_printf_stack"},"2360":{"probe_name":"hdf5","function_name":"H5E_resume_stack"},"2361":{"probe_name":"hdf5","function_name":"H5E_term_package"},"2362":{"probe_name":"hdf5","function_name":"H5Eappend_stack"},"2363":{"probe_name":"hdf5","function_name":"H5Eauto_is_v2"},"2364":{"probe_name":"hdf5","function_name":"H5Eclear1"},"2365":{"probe_name":"hdf5","function_name":"H5Eclear2"},"2366":{"probe_name":"hdf5","function_name":"H5Eclose_msg"},"2367":{"probe_name":"hdf5","function_name":"H5Eclose_stack"},"2368":{"probe_name":"hdf5","function_name":"H5Ecreate_msg"},"2369":{"probe_name":"hdf5","function_name":"H5Ecreate_stack"},"2370":{"probe_name":"hdf5","function_name":"H5Eget_auto1"},"2371":{"probe_name":"hdf5","function_name":"H5Eget_auto2"},"2372":{"probe_name":"hdf5","function_name":"H5Eget_class_name"},"2373":{"probe_name":"hdf5","function_name":"H5Eget_current_stack"},"2374":{"probe_name":"hdf5","function_name":"H5Eget_major"},"2375":{"probe_name":"hdf5","function_name":"H5Eget_minor"},"2376":{"probe_name":"hdf5","function_name":"H5Eget_msg"},"2377":{"probe_name":"hdf5","function_name":"H5Eget_num"},"2378":{"probe_name":"hdf5","function_name":"H5Eis_paused"},"2379":{"probe_name":"hdf5","function_name":"H5Epause_stack"},"2380":{"probe_name":"hdf5","function_name":"H5Epop"},"2381":{"probe_name":"hdf5","function_name":"H5Eprint1"},"2382":{"probe_name":"hdf5","function_name":"H5Eprint2"},"2383":{"probe_name":"hdf5","function_name":"H5Epush1"},"2384":{"probe_name":"hdf5","function_name":"H5Epush2"},"2385":{"probe_name":"hdf5","function_name":"H5Eregister_class"},"2386":{"probe_name":"hdf5","function_name":"H5Eresume_stack"},"2387":{"probe_name":"hdf5","function_name":"H5Eset_auto1"},"2388":{"probe_name":"hdf5","function_name":"H5Eset_auto2"},"2389":{"probe_name":"hdf5","function_name":"H5Eset_current_stack"},"2390":{"probe_name":"hdf5","function_name":"H5Eunregister_class"},"2391":{"probe_name":"hdf5","function_name":"H5Ewalk1"},"2392":{"probe_name":"hdf5","function_name":"H5Ewalk2"},"2393":{"probe_name":"hdf5","function_name":"H5FA__cache_dblk_page_deserialize"},"2394":{"probe_name":"hdf5","function_name":"H5FA__cache_dblk_page_free_icr"},"2395":{"probe_name":"hdf5","function_name":"H5FA__cache_dblk_page_get_initial_load_size"},"2396":{"probe_name":"hdf5","function_name":"H5FA__cache_dblk_page_image_len"},"2397":{"probe_name":"hdf5","function_name":"H5FA__cache_dblk_page_notify"},"2398":{"probe_name":"hdf5","function_name":"H5FA__cache_dblk_page_serialize"},"2399":{"probe_name":"hdf5","function_name":"H5FA__cache_dblk_page_verify_chksum"},"2400":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_deserialize"},"2401":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_free_icr"},"2402":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_fsf_size"},"2403":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_get_initial_load_size"},"2404":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_image_len"},"2405":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_notify"},"2406":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_serialize"},"2407":{"probe_name":"hdf5","function_name":"H5FA__cache_dblock_verify_chksum"},"2408":{"probe_name":"hdf5","function_name":"H5FA__cache_hdr_deserialize"},"2409":{"probe_name":"hdf5","function_name":"H5FA__cache_hdr_free_icr"},"2410":{"probe_name":"hdf5","function_name":"H5FA__cache_hdr_get_initial_load_size"},"2411":{"probe_name":"hdf5","function_name":"H5FA__cache_hdr_image_len"},"2412":{"probe_name":"hdf5","function_name":"H5FA__cache_hdr_notify"},"2413":{"probe_name":"hdf5","function_name":"H5FA__cache_hdr_serialize"},"2414":{"probe_name":"hdf5","function_name":"H5FA__cache_hdr_verify_chksum"},"2415":{"probe_name":"hdf5","function_name":"H5FA__cmp_cparam_test"},"2416":{"probe_name":"hdf5","function_name":"H5FA__create_flush_depend"},"2417":{"probe_name":"hdf5","function_name":"H5FA__dblk_page_alloc"},"2418":{"probe_name":"hdf5","function_name":"H5FA__dblk_page_create"},"2419":{"probe_name":"hdf5","function_name":"H5FA__dblk_page_dest"},"2420":{"probe_name":"hdf5","function_name":"H5FA__dblk_page_protect"},"2421":{"probe_name":"hdf5","function_name":"H5FA__dblk_page_unprotect"},"2422":{"probe_name":"hdf5","function_name":"H5FA__dblock_alloc"},"2423":{"probe_name":"hdf5","function_name":"H5FA__dblock_create"},"2424":{"probe_name":"hdf5","function_name":"H5FA__dblock_debug"},"2425":{"probe_name":"hdf5","function_name":"H5FA__dblock_delete"},"2426":{"probe_name":"hdf5","function_name":"H5FA__dblock_dest"},"2427":{"probe_name":"hdf5","function_name":"H5FA__dblock_protect"},"2428":{"probe_name":"hdf5","function_name":"H5FA__dblock_unprotect"},"2429":{"probe_name":"hdf5","function_name":"H5FA__destroy_flush_depend"},"2430":{"probe_name":"hdf5","function_name":"H5FA__get_cparam_test"},"2431":{"probe_name":"hdf5","function_name":"H5FA__hdr_alloc"},"2432":{"probe_name":"hdf5","function_name":"H5FA__hdr_create"},"2433":{"probe_name":"hdf5","function_name":"H5FA__hdr_debug"},"2434":{"probe_name":"hdf5","function_name":"H5FA__hdr_decr"},"2435":{"probe_name":"hdf5","function_name":"H5FA__hdr_delete"},"2436":{"probe_name":"hdf5","function_name":"H5FA__hdr_dest"},"2437":{"probe_name":"hdf5","function_name":"H5FA__hdr_fuse_decr"},"2438":{"probe_name":"hdf5","function_name":"H5FA__hdr_fuse_incr"},"2439":{"probe_name":"hdf5","function_name":"H5FA__hdr_incr"},"2440":{"probe_name":"hdf5","function_name":"H5FA__hdr_init"},"2441":{"probe_name":"hdf5","function_name":"H5FA__hdr_modified"},"2442":{"probe_name":"hdf5","function_name":"H5FA__hdr_protect"},"2443":{"probe_name":"hdf5","function_name":"H5FA__hdr_unprotect"},"2444":{"probe_name":"hdf5","function_name":"H5FA__test_crt_context"},"2445":{"probe_name":"hdf5","function_name":"H5FA__test_crt_dbg_context"},"2446":{"probe_name":"hdf5","function_name":"H5FA__test_debug"},"2447":{"probe_name":"hdf5","function_name":"H5FA__test_decode"},"2448":{"probe_name":"hdf5","function_name":"H5FA__test_dst_context"},"2449":{"probe_name":"hdf5","function_name":"H5FA__test_encode"},"2450":{"probe_name":"hdf5","function_name":"H5FA__test_fill"},"2451":{"probe_name":"hdf5","function_name":"H5FA_close"},"2452":{"probe_name":"hdf5","function_name":"H5FA_create"},"2453":{"probe_name":"hdf5","function_name":"H5FA_delete"},"2454":{"probe_name":"hdf5","function_name":"H5FA_depend"},"2455":{"probe_name":"hdf5","function_name":"H5FA_get"},"2456":{"probe_name":"hdf5","function_name":"H5FA_get_addr"},"2457":{"probe_name":"hdf5","function_name":"H5FA_get_nelmts"},"2458":{"probe_name":"hdf5","function_name":"H5FA_get_stats"},"2459":{"probe_name":"hdf5","function_name":"H5FA_iterate"},"2460":{"probe_name":"hdf5","function_name":"H5FA_open"},"2461":{"probe_name":"hdf5","function_name":"H5FA_patch_file"},"2462":{"probe_name":"hdf5","function_name":"H5FA_set"},"2463":{"probe_name":"hdf5","function_name":"H5FD__alloc_real"},"2464":{"probe_name":"hdf5","function_name":"H5FD__copy_plist"},"2465":{"probe_name":"hdf5","function_name":"H5FD__core_close"},"2466":{"probe_name":"hdf5","function_name":"H5FD__core_cmp"},"2467":{"probe_name":"hdf5","function_name":"H5FD__core_delete"},"2468":{"probe_name":"hdf5","function_name":"H5FD__core_fapl_get"},"2469":{"probe_name":"hdf5","function_name":"H5FD__core_flush"},"2470":{"probe_name":"hdf5","function_name":"H5FD__core_flush.part.0"},"2471":{"probe_name":"hdf5","function_name":"H5FD__core_get_eoa"},"2472":{"probe_name":"hdf5","function_name":"H5FD__core_get_eof"},"2473":{"probe_name":"hdf5","function_name":"H5FD__core_get_handle"},"2474":{"probe_name":"hdf5","function_name":"H5FD__core_lock"},"2475":{"probe_name":"hdf5","function_name":"H5FD__core_open"},"2476":{"probe_name":"hdf5","function_name":"H5FD__core_query"},"2477":{"probe_name":"hdf5","function_name":"H5FD__core_read"},"2478":{"probe_name":"hdf5","function_name":"H5FD__core_set_eoa"},"2479":{"probe_name":"hdf5","function_name":"H5FD__core_term"},"2480":{"probe_name":"hdf5","function_name":"H5FD__core_truncate"},"2481":{"probe_name":"hdf5","function_name":"H5FD__core_unlock"},"2482":{"probe_name":"hdf5","function_name":"H5FD__core_write"},"2483":{"probe_name":"hdf5","function_name":"H5FD__core_write_to_bstore"},"2484":{"probe_name":"hdf5","function_name":"H5FD__extend"},"2485":{"probe_name":"hdf5","function_name":"H5FD__family_close"},"2486":{"probe_name":"hdf5","function_name":"H5FD__family_cmp"},"2487":{"probe_name":"hdf5","function_name":"H5FD__family_delete"},"2488":{"probe_name":"hdf5","function_name":"H5FD__family_fapl_copy"},"2489":{"probe_name":"hdf5","function_name":"H5FD__family_fapl_free"},"2490":{"probe_name":"hdf5","function_name":"H5FD__family_fapl_get"},"2491":{"probe_name":"hdf5","function_name":"H5FD__family_flush"},"2492":{"probe_name":"hdf5","function_name":"H5FD__family_get_default_config"},"2493":{"probe_name":"hdf5","function_name":"H5FD__family_get_default_printf_filename"},"2494":{"probe_name":"hdf5","function_name":"H5FD__family_get_eoa"},"2495":{"probe_name":"hdf5","function_name":"H5FD__family_get_eof"},"2496":{"probe_name":"hdf5","function_name":"H5FD__family_get_handle"},"2497":{"probe_name":"hdf5","function_name":"H5FD__family_lock"},"2498":{"probe_name":"hdf5","function_name":"H5FD__family_open"},"2499":{"probe_name":"hdf5","function_name":"H5FD__family_query"},"2500":{"probe_name":"hdf5","function_name":"H5FD__family_read"},"2501":{"probe_name":"hdf5","function_name":"H5FD__family_sb_decode"},"2502":{"probe_name":"hdf5","function_name":"H5FD__family_sb_encode"},"2503":{"probe_name":"hdf5","function_name":"H5FD__family_sb_size"},"2504":{"probe_name":"hdf5","function_name":"H5FD__family_set_eoa"},"2505":{"probe_name":"hdf5","function_name":"H5FD__family_term"},"2506":{"probe_name":"hdf5","function_name":"H5FD__family_truncate"},"2507":{"probe_name":"hdf5","function_name":"H5FD__family_unlock"},"2508":{"probe_name":"hdf5","function_name":"H5FD__family_write"},"2509":{"probe_name":"hdf5","function_name":"H5FD__free_cls"},"2510":{"probe_name":"hdf5","function_name":"H5FD__free_real"},"2511":{"probe_name":"hdf5","function_name":"H5FD__get_driver_cb"},"2512":{"probe_name":"hdf5","function_name":"H5FD__log_alloc"},"2513":{"probe_name":"hdf5","function_name":"H5FD__log_close"},"2514":{"probe_name":"hdf5","function_name":"H5FD__log_cmp"},"2515":{"probe_name":"hdf5","function_name":"H5FD__log_delete"},"2516":{"probe_name":"hdf5","function_name":"H5FD__log_fapl_copy"},"2517":{"probe_name":"hdf5","function_name":"H5FD__log_fapl_free"},"2518":{"probe_name":"hdf5","function_name":"H5FD__log_fapl_get"},"2519":{"probe_name":"hdf5","function_name":"H5FD__log_free"},"2520":{"probe_name":"hdf5","function_name":"H5FD__log_get_eoa"},"2521":{"probe_name":"hdf5","function_name":"H5FD__log_get_eof"},"2522":{"probe_name":"hdf5","function_name":"H5FD__log_get_handle"},"2523":{"probe_name":"hdf5","function_name":"H5FD__log_lock"},"2524":{"probe_name":"hdf5","function_name":"H5FD__log_open"},"2525":{"probe_name":"hdf5","function_name":"H5FD__log_query"},"2526":{"probe_name":"hdf5","function_name":"H5FD__log_read"},"2527":{"probe_name":"hdf5","function_name":"H5FD__log_set_eoa"},"2528":{"probe_name":"hdf5","function_name":"H5FD__log_term"},"2529":{"probe_name":"hdf5","function_name":"H5FD__log_truncate"},"2530":{"probe_name":"hdf5","function_name":"H5FD__log_unlock"},"2531":{"probe_name":"hdf5","function_name":"H5FD__log_write"},"2532":{"probe_name":"hdf5","function_name":"H5FD__mpio_close"},"2533":{"probe_name":"hdf5","function_name":"H5FD__mpio_ctl"},"2534":{"probe_name":"hdf5","function_name":"H5FD__mpio_delete"},"2535":{"probe_name":"hdf5","function_name":"H5FD__mpio_flush"},"2536":{"probe_name":"hdf5","function_name":"H5FD__mpio_get_eoa"},"2537":{"probe_name":"hdf5","function_name":"H5FD__mpio_get_eof"},"2538":{"probe_name":"hdf5","function_name":"H5FD__mpio_get_handle"},"2539":{"probe_name":"hdf5","function_name":"H5FD__mpio_open"},"2540":{"probe_name":"hdf5","function_name":"H5FD__mpio_query"},"2541":{"probe_name":"hdf5","function_name":"H5FD__mpio_read"},"2542":{"probe_name":"hdf5","function_name":"H5FD__mpio_read_selection"},"2543":{"probe_name":"hdf5","function_name":"H5FD__mpio_read_vector"},"2544":{"probe_name":"hdf5","function_name":"H5FD__mpio_set_eoa"},"2545":{"probe_name":"hdf5","function_name":"H5FD__mpio_term"},"2546":{"probe_name":"hdf5","function_name":"H5FD__mpio_truncate"},"2547":{"probe_name":"hdf5","function_name":"H5FD__mpio_vector_build_types.constprop.0"},"2548":{"probe_name":"hdf5","function_name":"H5FD__mpio_write"},"2549":{"probe_name":"hdf5","function_name":"H5FD__mpio_write_selection"},"2550":{"probe_name":"hdf5","function_name":"H5FD__mpio_write_vector"},"2551":{"probe_name":"hdf5","function_name":"H5FD__onion_archival_index_find"},"2552":{"probe_name":"hdf5","function_name":"H5FD__onion_archival_index_is_valid"},"2553":{"probe_name":"hdf5","function_name":"H5FD__onion_archival_index_list_sort_cmp"},"2554":{"probe_name":"hdf5","function_name":"H5FD__onion_close"},"2555":{"probe_name":"hdf5","function_name":"H5FD__onion_ctl"},"2556":{"probe_name":"hdf5","function_name":"H5FD__onion_get_eoa"},"2557":{"probe_name":"hdf5","function_name":"H5FD__onion_get_eof"},"2558":{"probe_name":"hdf5","function_name":"H5FD__onion_header_decode"},"2559":{"probe_name":"hdf5","function_name":"H5FD__onion_header_encode"},"2560":{"probe_name":"hdf5","function_name":"H5FD__onion_history_decode"},"2561":{"probe_name":"hdf5","function_name":"H5FD__onion_history_encode"},"2562":{"probe_name":"hdf5","function_name":"H5FD__onion_ingest_header"},"2563":{"probe_name":"hdf5","function_name":"H5FD__onion_ingest_history"},"2564":{"probe_name":"hdf5","function_name":"H5FD__onion_ingest_revision_record"},"2565":{"probe_name":"hdf5","function_name":"H5FD__onion_merge_revision_index_into_archival_index"},"2566":{"probe_name":"hdf5","function_name":"H5FD__onion_open"},"2567":{"probe_name":"hdf5","function_name":"H5FD__onion_read"},"2568":{"probe_name":"hdf5","function_name":"H5FD__onion_revision_index_destroy"},"2569":{"probe_name":"hdf5","function_name":"H5FD__onion_revision_index_find"},"2570":{"probe_name":"hdf5","function_name":"H5FD__onion_revision_index_init"},"2571":{"probe_name":"hdf5","function_name":"H5FD__onion_revision_index_insert"},"2572":{"probe_name":"hdf5","function_name":"H5FD__onion_revision_record_decode"},"2573":{"probe_name":"hdf5","function_name":"H5FD__onion_revision_record_encode"},"2574":{"probe_name":"hdf5","function_name":"H5FD__onion_sb_decode"},"2575":{"probe_name":"hdf5","function_name":"H5FD__onion_sb_encode"},"2576":{"probe_name":"hdf5","function_name":"H5FD__onion_sb_size"},"2577":{"probe_name":"hdf5","function_name":"H5FD__onion_set_eoa"},"2578":{"probe_name":"hdf5","function_name":"H5FD__onion_term"},"2579":{"probe_name":"hdf5","function_name":"H5FD__onion_write"},"2580":{"probe_name":"hdf5","function_name":"H5FD__onion_write_final_history"},"2581":{"probe_name":"hdf5","function_name":"H5FD__onion_write_header"},"2582":{"probe_name":"hdf5","function_name":"H5FD__onion_write_history"},"2583":{"probe_name":"hdf5","function_name":"H5FD__read_selection_translate"},"2584":{"probe_name":"hdf5","function_name":"H5FD__sec2_close"},"2585":{"probe_name":"hdf5","function_name":"H5FD__sec2_cmp"},"2586":{"probe_name":"hdf5","function_name":"H5FD__sec2_ctl"},"2587":{"probe_name":"hdf5","function_name":"H5FD__sec2_delete"},"2588":{"probe_name":"hdf5","function_name":"H5FD__sec2_get_eoa"},"2589":{"probe_name":"hdf5","function_name":"H5FD__sec2_get_eof"},"2590":{"probe_name":"hdf5","function_name":"H5FD__sec2_get_handle"},"2591":{"probe_name":"hdf5","function_name":"H5FD__sec2_lock"},"2592":{"probe_name":"hdf5","function_name":"H5FD__sec2_open"},"2593":{"probe_name":"hdf5","function_name":"H5FD__sec2_query"},"2594":{"probe_name":"hdf5","function_name":"H5FD__sec2_read"},"2595":{"probe_name":"hdf5","function_name":"H5FD__sec2_set_eoa"},"2596":{"probe_name":"hdf5","function_name":"H5FD__sec2_term"},"2597":{"probe_name":"hdf5","function_name":"H5FD__sec2_truncate"},"2598":{"probe_name":"hdf5","function_name":"H5FD__sec2_unlock"},"2599":{"probe_name":"hdf5","function_name":"H5FD__sec2_write"},"2600":{"probe_name":"hdf5","function_name":"H5FD__selection_build_types.constprop.0"},"2601":{"probe_name":"hdf5","function_name":"H5FD__sort_io_req_real.constprop.0"},"2602":{"probe_name":"hdf5","function_name":"H5FD__splitter_alloc"},"2603":{"probe_name":"hdf5","function_name":"H5FD__splitter_close"},"2604":{"probe_name":"hdf5","function_name":"H5FD__splitter_cmp"},"2605":{"probe_name":"hdf5","function_name":"H5FD__splitter_ctl"},"2606":{"probe_name":"hdf5","function_name":"H5FD__splitter_delete"},"2607":{"probe_name":"hdf5","function_name":"H5FD__splitter_fapl_copy"},"2608":{"probe_name":"hdf5","function_name":"H5FD__splitter_fapl_free"},"2609":{"probe_name":"hdf5","function_name":"H5FD__splitter_fapl_get"},"2610":{"probe_name":"hdf5","function_name":"H5FD__splitter_flush"},"2611":{"probe_name":"hdf5","function_name":"H5FD__splitter_free"},"2612":{"probe_name":"hdf5","function_name":"H5FD__splitter_get_default_wo_path.constprop.0"},"2613":{"probe_name":"hdf5","function_name":"H5FD__splitter_get_eoa"},"2614":{"probe_name":"hdf5","function_name":"H5FD__splitter_get_eof"},"2615":{"probe_name":"hdf5","function_name":"H5FD__splitter_get_handle"},"2616":{"probe_name":"hdf5","function_name":"H5FD__splitter_get_type_map"},"2617":{"probe_name":"hdf5","function_name":"H5FD__splitter_lock"},"2618":{"probe_name":"hdf5","function_name":"H5FD__splitter_log_error.part.0.isra.0"},"2619":{"probe_name":"hdf5","function_name":"H5FD__splitter_open"},"2620":{"probe_name":"hdf5","function_name":"H5FD__splitter_populate_config"},"2621":{"probe_name":"hdf5","function_name":"H5FD__splitter_query"},"2622":{"probe_name":"hdf5","function_name":"H5FD__splitter_read"},"2623":{"probe_name":"hdf5","function_name":"H5FD__splitter_sb_decode"},"2624":{"probe_name":"hdf5","function_name":"H5FD__splitter_sb_encode"},"2625":{"probe_name":"hdf5","function_name":"H5FD__splitter_sb_size"},"2626":{"probe_name":"hdf5","function_name":"H5FD__splitter_set_eoa"},"2627":{"probe_name":"hdf5","function_name":"H5FD__splitter_term"},"2628":{"probe_name":"hdf5","function_name":"H5FD__splitter_truncate"},"2629":{"probe_name":"hdf5","function_name":"H5FD__splitter_unlock"},"2630":{"probe_name":"hdf5","function_name":"H5FD__splitter_write"},"2631":{"probe_name":"hdf5","function_name":"H5FD__srt_tmp_cmp"},"2632":{"probe_name":"hdf5","function_name":"H5FD__supports_swmr_test"},"2633":{"probe_name":"hdf5","function_name":"H5FD__write_selection_translate"},"2634":{"probe_name":"hdf5","function_name":"H5FD_alloc"},"2635":{"probe_name":"hdf5","function_name":"H5FD_check_plugin_load"},"2636":{"probe_name":"hdf5","function_name":"H5FD_close"},"2637":{"probe_name":"hdf5","function_name":"H5FD_cmp"},"2638":{"probe_name":"hdf5","function_name":"H5FD_core_init"},"2639":{"probe_name":"hdf5","function_name":"H5FD_ctl"},"2640":{"probe_name":"hdf5","function_name":"H5FD_delete"},"2641":{"probe_name":"hdf5","function_name":"H5FD_driver_query"},"2642":{"probe_name":"hdf5","function_name":"H5FD_family_init"},"2643":{"probe_name":"hdf5","function_name":"H5FD_fapl_get"},"2644":{"probe_name":"hdf5","function_name":"H5FD_flush"},"2645":{"probe_name":"hdf5","function_name":"H5FD_free"},"2646":{"probe_name":"hdf5","function_name":"H5FD_free_driver_info"},"2647":{"probe_name":"hdf5","function_name":"H5FD_get_base_addr"},"2648":{"probe_name":"hdf5","function_name":"H5FD_get_class"},"2649":{"probe_name":"hdf5","function_name":"H5FD_get_class.localalias"},"2650":{"probe_name":"hdf5","function_name":"H5FD_get_driver_id_by_name"},"2651":{"probe_name":"hdf5","function_name":"H5FD_get_driver_id_by_value"},"2652":{"probe_name":"hdf5","function_name":"H5FD_get_eoa"},"2653":{"probe_name":"hdf5","function_name":"H5FD_get_eof"},"2654":{"probe_name":"hdf5","function_name":"H5FD_get_feature_flags"},"2655":{"probe_name":"hdf5","function_name":"H5FD_get_fileno"},"2656":{"probe_name":"hdf5","function_name":"H5FD_get_fs_type_map"},"2657":{"probe_name":"hdf5","function_name":"H5FD_get_maxaddr"},"2658":{"probe_name":"hdf5","function_name":"H5FD_get_mpio_atomicity"},"2659":{"probe_name":"hdf5","function_name":"H5FD_get_vfd_handle"},"2660":{"probe_name":"hdf5","function_name":"H5FD_init"},"2661":{"probe_name":"hdf5","function_name":"H5FD_is_driver_registered_by_name"},"2662":{"probe_name":"hdf5","function_name":"H5FD_is_driver_registered_by_value"},"2663":{"probe_name":"hdf5","function_name":"H5FD_locate_signature"},"2664":{"probe_name":"hdf5","function_name":"H5FD_lock"},"2665":{"probe_name":"hdf5","function_name":"H5FD_log_init"},"2666":{"probe_name":"hdf5","function_name":"H5FD_mpi_MPIOff_to_haddr"},"2667":{"probe_name":"hdf5","function_name":"H5FD_mpi_get_comm"},"2668":{"probe_name":"hdf5","function_name":"H5FD_mpi_get_file_sync_required"},"2669":{"probe_name":"hdf5","function_name":"H5FD_mpi_get_info"},"2670":{"probe_name":"hdf5","function_name":"H5FD_mpi_get_rank"},"2671":{"probe_name":"hdf5","function_name":"H5FD_mpi_get_size"},"2672":{"probe_name":"hdf5","function_name":"H5FD_mpi_haddr_to_MPIOff"},"2673":{"probe_name":"hdf5","function_name":"H5FD_mpio_init"},"2674":{"probe_name":"hdf5","function_name":"H5FD_multi_alloc"},"2675":{"probe_name":"hdf5","function_name":"H5FD_multi_close"},"2676":{"probe_name":"hdf5","function_name":"H5FD_multi_cmp"},"2677":{"probe_name":"hdf5","function_name":"H5FD_multi_ctl"},"2678":{"probe_name":"hdf5","function_name":"H5FD_multi_delete"},"2679":{"probe_name":"hdf5","function_name":"H5FD_multi_fapl_copy"},"2680":{"probe_name":"hdf5","function_name":"H5FD_multi_fapl_free"},"2681":{"probe_name":"hdf5","function_name":"H5FD_multi_fapl_get"},"2682":{"probe_name":"hdf5","function_name":"H5FD_multi_flush"},"2683":{"probe_name":"hdf5","function_name":"H5FD_multi_free"},"2684":{"probe_name":"hdf5","function_name":"H5FD_multi_get_eoa"},"2685":{"probe_name":"hdf5","function_name":"H5FD_multi_get_eof"},"2686":{"probe_name":"hdf5","function_name":"H5FD_multi_get_handle"},"2687":{"probe_name":"hdf5","function_name":"H5FD_multi_get_type_map"},"2688":{"probe_name":"hdf5","function_name":"H5FD_multi_init"},"2689":{"probe_name":"hdf5","function_name":"H5FD_multi_lock"},"2690":{"probe_name":"hdf5","function_name":"H5FD_multi_open"},"2691":{"probe_name":"hdf5","function_name":"H5FD_multi_populate_config"},"2692":{"probe_name":"hdf5","function_name":"H5FD_multi_query"},"2693":{"probe_name":"hdf5","function_name":"H5FD_multi_read"},"2694":{"probe_name":"hdf5","function_name":"H5FD_multi_sb_decode"},"2695":{"probe_name":"hdf5","function_name":"H5FD_multi_sb_decode.part.0"},"2696":{"probe_name":"hdf5","function_name":"H5FD_multi_sb_encode"},"2697":{"probe_name":"hdf5","function_name":"H5FD_multi_sb_size"},"2698":{"probe_name":"hdf5","function_name":"H5FD_multi_set_eoa"},"2699":{"probe_name":"hdf5","function_name":"H5FD_multi_term"},"2700":{"probe_name":"hdf5","function_name":"H5FD_multi_truncate"},"2701":{"probe_name":"hdf5","function_name":"H5FD_multi_unlock"},"2702":{"probe_name":"hdf5","function_name":"H5FD_multi_write"},"2703":{"probe_name":"hdf5","function_name":"H5FD_onion_init"},"2704":{"probe_name":"hdf5","function_name":"H5FD_open"},"2705":{"probe_name":"hdf5","function_name":"H5FD_read"},"2706":{"probe_name":"hdf5","function_name":"H5FD_read_from_selection"},"2707":{"probe_name":"hdf5","function_name":"H5FD_read_selection"},"2708":{"probe_name":"hdf5","function_name":"H5FD_read_selection_id"},"2709":{"probe_name":"hdf5","function_name":"H5FD_read_vector"},"2710":{"probe_name":"hdf5","function_name":"H5FD_read_vector_from_selection"},"2711":{"probe_name":"hdf5","function_name":"H5FD_register"},"2712":{"probe_name":"hdf5","function_name":"H5FD_register_driver_by_name"},"2713":{"probe_name":"hdf5","function_name":"H5FD_register_driver_by_value"},"2714":{"probe_name":"hdf5","function_name":"H5FD_sb_encode"},"2715":{"probe_name":"hdf5","function_name":"H5FD_sb_load"},"2716":{"probe_name":"hdf5","function_name":"H5FD_sb_size"},"2717":{"probe_name":"hdf5","function_name":"H5FD_sec2_init"},"2718":{"probe_name":"hdf5","function_name":"H5FD_set_base_addr"},"2719":{"probe_name":"hdf5","function_name":"H5FD_set_eoa"},"2720":{"probe_name":"hdf5","function_name":"H5FD_set_feature_flags"},"2721":{"probe_name":"hdf5","function_name":"H5FD_set_mpio_atomicity"},"2722":{"probe_name":"hdf5","function_name":"H5FD_set_paged_aggr"},"2723":{"probe_name":"hdf5","function_name":"H5FD_sort_selection_io_req"},"2724":{"probe_name":"hdf5","function_name":"H5FD_sort_vector_io_req"},"2725":{"probe_name":"hdf5","function_name":"H5FD_split_populate_config.constprop.0"},"2726":{"probe_name":"hdf5","function_name":"H5FD_splitter_init"},"2727":{"probe_name":"hdf5","function_name":"H5FD_stdio_alloc"},"2728":{"probe_name":"hdf5","function_name":"H5FD_stdio_close"},"2729":{"probe_name":"hdf5","function_name":"H5FD_stdio_cmp"},"2730":{"probe_name":"hdf5","function_name":"H5FD_stdio_delete"},"2731":{"probe_name":"hdf5","function_name":"H5FD_stdio_flush"},"2732":{"probe_name":"hdf5","function_name":"H5FD_stdio_get_eoa"},"2733":{"probe_name":"hdf5","function_name":"H5FD_stdio_get_eof"},"2734":{"probe_name":"hdf5","function_name":"H5FD_stdio_get_handle"},"2735":{"probe_name":"hdf5","function_name":"H5FD_stdio_init"},"2736":{"probe_name":"hdf5","function_name":"H5FD_stdio_lock"},"2737":{"probe_name":"hdf5","function_name":"H5FD_stdio_open"},"2738":{"probe_name":"hdf5","function_name":"H5FD_stdio_query"},"2739":{"probe_name":"hdf5","function_name":"H5FD_stdio_read"},"2740":{"probe_name":"hdf5","function_name":"H5FD_stdio_set_eoa"},"2741":{"probe_name":"hdf5","function_name":"H5FD_stdio_term"},"2742":{"probe_name":"hdf5","function_name":"H5FD_stdio_truncate"},"2743":{"probe_name":"hdf5","function_name":"H5FD_stdio_unlock"},"2744":{"probe_name":"hdf5","function_name":"H5FD_stdio_write"},"2745":{"probe_name":"hdf5","function_name":"H5FD_term_package"},"2746":{"probe_name":"hdf5","function_name":"H5FD_truncate"},"2747":{"probe_name":"hdf5","function_name":"H5FD_try_extend"},"2748":{"probe_name":"hdf5","function_name":"H5FD_unlock"},"2749":{"probe_name":"hdf5","function_name":"H5FD_write"},"2750":{"probe_name":"hdf5","function_name":"H5FD_write_from_selection"},"2751":{"probe_name":"hdf5","function_name":"H5FD_write_selection"},"2752":{"probe_name":"hdf5","function_name":"H5FD_write_selection_id"},"2753":{"probe_name":"hdf5","function_name":"H5FD_write_vector"},"2754":{"probe_name":"hdf5","function_name":"H5FD_write_vector_from_selection"},"2755":{"probe_name":"hdf5","function_name":"H5FDalloc"},"2756":{"probe_name":"hdf5","function_name":"H5FDclose"},"2757":{"probe_name":"hdf5","function_name":"H5FDcmp"},"2758":{"probe_name":"hdf5","function_name":"H5FDctl"},"2759":{"probe_name":"hdf5","function_name":"H5FDdelete"},"2760":{"probe_name":"hdf5","function_name":"H5FDdriver_query"},"2761":{"probe_name":"hdf5","function_name":"H5FDflush"},"2762":{"probe_name":"hdf5","function_name":"H5FDfree"},"2763":{"probe_name":"hdf5","function_name":"H5FDget_eoa"},"2764":{"probe_name":"hdf5","function_name":"H5FDget_eof"},"2765":{"probe_name":"hdf5","function_name":"H5FDget_vfd_handle"},"2766":{"probe_name":"hdf5","function_name":"H5FDis_driver_registered_by_name"},"2767":{"probe_name":"hdf5","function_name":"H5FDis_driver_registered_by_value"},"2768":{"probe_name":"hdf5","function_name":"H5FDlock"},"2769":{"probe_name":"hdf5","function_name":"H5FDonion_get_revision_count"},"2770":{"probe_name":"hdf5","function_name":"H5FDopen"},"2771":{"probe_name":"hdf5","function_name":"H5FDperform_init"},"2772":{"probe_name":"hdf5","function_name":"H5FDquery"},"2773":{"probe_name":"hdf5","function_name":"H5FDread"},"2774":{"probe_name":"hdf5","function_name":"H5FDread_from_selection"},"2775":{"probe_name":"hdf5","function_name":"H5FDread_selection"},"2776":{"probe_name":"hdf5","function_name":"H5FDread_vector"},"2777":{"probe_name":"hdf5","function_name":"H5FDread_vector_from_selection"},"2778":{"probe_name":"hdf5","function_name":"H5FDregister"},"2779":{"probe_name":"hdf5","function_name":"H5FDset_eoa"},"2780":{"probe_name":"hdf5","function_name":"H5FDtruncate"},"2781":{"probe_name":"hdf5","function_name":"H5FDunlock"},"2782":{"probe_name":"hdf5","function_name":"H5FDunregister"},"2783":{"probe_name":"hdf5","function_name":"H5FDwrite"},"2784":{"probe_name":"hdf5","function_name":"H5FDwrite_from_selection"},"2785":{"probe_name":"hdf5","function_name":"H5FDwrite_selection"},"2786":{"probe_name":"hdf5","function_name":"H5FDwrite_vector"},"2787":{"probe_name":"hdf5","function_name":"H5FDwrite_vector_from_selection"},"2788":{"probe_name":"hdf5","function_name":"H5FL__blk_create_list.part.0"},"2789":{"probe_name":"hdf5","function_name":"H5FL__blk_gc_list"},"2790":{"probe_name":"hdf5","function_name":"H5FL_arr_calloc"},"2791":{"probe_name":"hdf5","function_name":"H5FL_arr_free"},"2792":{"probe_name":"hdf5","function_name":"H5FL_arr_malloc"},"2793":{"probe_name":"hdf5","function_name":"H5FL_arr_realloc"},"2794":{"probe_name":"hdf5","function_name":"H5FL_blk_calloc"},"2795":{"probe_name":"hdf5","function_name":"H5FL_blk_free"},"2796":{"probe_name":"hdf5","function_name":"H5FL_blk_free_block_avail"},"2797":{"probe_name":"hdf5","function_name":"H5FL_blk_malloc"},"2798":{"probe_name":"hdf5","function_name":"H5FL_blk_realloc"},"2799":{"probe_name":"hdf5","function_name":"H5FL_fac_calloc"},"2800":{"probe_name":"hdf5","function_name":"H5FL_fac_free"},"2801":{"probe_name":"hdf5","function_name":"H5FL_fac_init"},"2802":{"probe_name":"hdf5","function_name":"H5FL_fac_malloc"},"2803":{"probe_name":"hdf5","function_name":"H5FL_fac_term"},"2804":{"probe_name":"hdf5","function_name":"H5FL_garbage_coll"},"2805":{"probe_name":"hdf5","function_name":"H5FL_get_free_list_sizes"},"2806":{"probe_name":"hdf5","function_name":"H5FL_reg_calloc"},"2807":{"probe_name":"hdf5","function_name":"H5FL_reg_free"},"2808":{"probe_name":"hdf5","function_name":"H5FL_reg_malloc"},"2809":{"probe_name":"hdf5","function_name":"H5FL_seq_calloc"},"2810":{"probe_name":"hdf5","function_name":"H5FL_seq_free"},"2811":{"probe_name":"hdf5","function_name":"H5FL_seq_malloc"},"2812":{"probe_name":"hdf5","function_name":"H5FL_seq_realloc"},"2813":{"probe_name":"hdf5","function_name":"H5FL_set_free_list_limits"},"2814":{"probe_name":"hdf5","function_name":"H5FL_term_package"},"2815":{"probe_name":"hdf5","function_name":"H5FO_create"},"2816":{"probe_name":"hdf5","function_name":"H5FO_delete"},"2817":{"probe_name":"hdf5","function_name":"H5FO_dest"},"2818":{"probe_name":"hdf5","function_name":"H5FO_insert"},"2819":{"probe_name":"hdf5","function_name":"H5FO_mark"},"2820":{"probe_name":"hdf5","function_name":"H5FO_marked"},"2821":{"probe_name":"hdf5","function_name":"H5FO_opened"},"2822":{"probe_name":"hdf5","function_name":"H5FO_top_count"},"2823":{"probe_name":"hdf5","function_name":"H5FO_top_create"},"2824":{"probe_name":"hdf5","function_name":"H5FO_top_decr"},"2825":{"probe_name":"hdf5","function_name":"H5FO_top_dest"},"2826":{"probe_name":"hdf5","function_name":"H5FO_top_incr"},"2827":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_deserialize"},"2828":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_free_icr"},"2829":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_get_initial_load_size"},"2830":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_image_len"},"2831":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_notify"},"2832":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_pre_serialize"},"2833":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_serialize"},"2834":{"probe_name":"hdf5","function_name":"H5FS__cache_hdr_verify_chksum"},"2835":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_deserialize"},"2836":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_free_icr"},"2837":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_get_initial_load_size"},"2838":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_image_len"},"2839":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_notify"},"2840":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_pre_serialize"},"2841":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_serialize"},"2842":{"probe_name":"hdf5","function_name":"H5FS__cache_sinfo_verify_chksum"},"2843":{"probe_name":"hdf5","function_name":"H5FS__cmp_cparam_test"},"2844":{"probe_name":"hdf5","function_name":"H5FS__create_flush_depend"},"2845":{"probe_name":"hdf5","function_name":"H5FS__decr"},"2846":{"probe_name":"hdf5","function_name":"H5FS__destroy_flush_depend"},"2847":{"probe_name":"hdf5","function_name":"H5FS__dirty"},"2848":{"probe_name":"hdf5","function_name":"H5FS__get_cparam_test"},"2849":{"probe_name":"hdf5","function_name":"H5FS__hdr_dest"},"2850":{"probe_name":"hdf5","function_name":"H5FS__incr"},"2851":{"probe_name":"hdf5","function_name":"H5FS__iterate_node_cb"},"2852":{"probe_name":"hdf5","function_name":"H5FS__iterate_sect_cb"},"2853":{"probe_name":"hdf5","function_name":"H5FS__new"},"2854":{"probe_name":"hdf5","function_name":"H5FS__sect_init_cls.part.0"},"2855":{"probe_name":"hdf5","function_name":"H5FS__sect_link"},"2856":{"probe_name":"hdf5","function_name":"H5FS__sect_merge"},"2857":{"probe_name":"hdf5","function_name":"H5FS__sect_node_new.part.0"},"2858":{"probe_name":"hdf5","function_name":"H5FS__sect_remove_real"},"2859":{"probe_name":"hdf5","function_name":"H5FS__sect_unlink_rest"},"2860":{"probe_name":"hdf5","function_name":"H5FS__sinfo_dest"},"2861":{"probe_name":"hdf5","function_name":"H5FS__sinfo_free_node_cb"},"2862":{"probe_name":"hdf5","function_name":"H5FS__sinfo_free_sect_cb"},"2863":{"probe_name":"hdf5","function_name":"H5FS__sinfo_lock"},"2864":{"probe_name":"hdf5","function_name":"H5FS__sinfo_new"},"2865":{"probe_name":"hdf5","function_name":"H5FS__sinfo_serialize_node_cb"},"2866":{"probe_name":"hdf5","function_name":"H5FS__sinfo_serialize_sect_cb"},"2867":{"probe_name":"hdf5","function_name":"H5FS__sinfo_unlock"},"2868":{"probe_name":"hdf5","function_name":"H5FS__size_node_decr.isra.0"},"2869":{"probe_name":"hdf5","function_name":"H5FS_alloc_hdr"},"2870":{"probe_name":"hdf5","function_name":"H5FS_alloc_sect"},"2871":{"probe_name":"hdf5","function_name":"H5FS_close"},"2872":{"probe_name":"hdf5","function_name":"H5FS_create"},"2873":{"probe_name":"hdf5","function_name":"H5FS_debug"},"2874":{"probe_name":"hdf5","function_name":"H5FS_delete"},"2875":{"probe_name":"hdf5","function_name":"H5FS_free"},"2876":{"probe_name":"hdf5","function_name":"H5FS_get_sect_count"},"2877":{"probe_name":"hdf5","function_name":"H5FS_open"},"2878":{"probe_name":"hdf5","function_name":"H5FS_sect_add"},"2879":{"probe_name":"hdf5","function_name":"H5FS_sect_change_class"},"2880":{"probe_name":"hdf5","function_name":"H5FS_sect_debug"},"2881":{"probe_name":"hdf5","function_name":"H5FS_sect_find"},"2882":{"probe_name":"hdf5","function_name":"H5FS_sect_iterate"},"2883":{"probe_name":"hdf5","function_name":"H5FS_sect_remove"},"2884":{"probe_name":"hdf5","function_name":"H5FS_sect_stats"},"2885":{"probe_name":"hdf5","function_name":"H5FS_sect_try_extend"},"2886":{"probe_name":"hdf5","function_name":"H5FS_sect_try_merge"},"2887":{"probe_name":"hdf5","function_name":"H5FS_sect_try_shrink_eoa"},"2888":{"probe_name":"hdf5","function_name":"H5FS_sects_debug"},"2889":{"probe_name":"hdf5","function_name":"H5FS_size"},"2890":{"probe_name":"hdf5","function_name":"H5FS_stat_info"},"2891":{"probe_name":"hdf5","function_name":"H5FS_vfd_alloc_hdr_and_section_info_if_needed"},"2892":{"probe_name":"hdf5","function_name":"H5F_Kvalue"},"2893":{"probe_name":"hdf5","function_name":"H5F__accum_adjust"},"2894":{"probe_name":"hdf5","function_name":"H5F__accum_flush"},"2895":{"probe_name":"hdf5","function_name":"H5F__accum_free"},"2896":{"probe_name":"hdf5","function_name":"H5F__accum_read"},"2897":{"probe_name":"hdf5","function_name":"H5F__accum_reset"},"2898":{"probe_name":"hdf5","function_name":"H5F__accum_write"},"2899":{"probe_name":"hdf5","function_name":"H5F__alloc"},"2900":{"probe_name":"hdf5","function_name":"H5F__build_actual_name"},"2901":{"probe_name":"hdf5","function_name":"H5F__build_name"},"2902":{"probe_name":"hdf5","function_name":"H5F__cache_drvrinfo_deserialize"},"2903":{"probe_name":"hdf5","function_name":"H5F__cache_drvrinfo_free_icr"},"2904":{"probe_name":"hdf5","function_name":"H5F__cache_drvrinfo_get_final_load_size"},"2905":{"probe_name":"hdf5","function_name":"H5F__cache_drvrinfo_get_initial_load_size"},"2906":{"probe_name":"hdf5","function_name":"H5F__cache_drvrinfo_image_len"},"2907":{"probe_name":"hdf5","function_name":"H5F__cache_drvrinfo_serialize"},"2908":{"probe_name":"hdf5","function_name":"H5F__cache_superblock_deserialize"},"2909":{"probe_name":"hdf5","function_name":"H5F__cache_superblock_free_icr"},"2910":{"probe_name":"hdf5","function_name":"H5F__cache_superblock_get_final_load_size"},"2911":{"probe_name":"hdf5","function_name":"H5F__cache_superblock_get_initial_load_size"},"2912":{"probe_name":"hdf5","function_name":"H5F__cache_superblock_image_len"},"2913":{"probe_name":"hdf5","function_name":"H5F__cache_superblock_serialize"},"2914":{"probe_name":"hdf5","function_name":"H5F__cache_superblock_verify_chksum"},"2915":{"probe_name":"hdf5","function_name":"H5F__check_cached_stab_test"},"2916":{"probe_name":"hdf5","function_name":"H5F__close"},"2917":{"probe_name":"hdf5","function_name":"H5F__close_cb"},"2918":{"probe_name":"hdf5","function_name":"H5F__close_mounts"},"2919":{"probe_name":"hdf5","function_name":"H5F__create_api_common"},"2920":{"probe_name":"hdf5","function_name":"H5F__delete"},"2921":{"probe_name":"hdf5","function_name":"H5F__dest"},"2922":{"probe_name":"hdf5","function_name":"H5F__efc_create"},"2923":{"probe_name":"hdf5","function_name":"H5F__efc_destroy"},"2924":{"probe_name":"hdf5","function_name":"H5F__efc_max_nfiles"},"2925":{"probe_name":"hdf5","function_name":"H5F__efc_open"},"2926":{"probe_name":"hdf5","function_name":"H5F__efc_open_file"},"2927":{"probe_name":"hdf5","function_name":"H5F__efc_release"},"2928":{"probe_name":"hdf5","function_name":"H5F__efc_release_real"},"2929":{"probe_name":"hdf5","function_name":"H5F__efc_try_close"},"2930":{"probe_name":"hdf5","function_name":"H5F__efc_try_close_tag1.isra.0"},"2931":{"probe_name":"hdf5","function_name":"H5F__efc_try_close_tag2.isra.0"},"2932":{"probe_name":"hdf5","function_name":"H5F__evict_cache_entries"},"2933":{"probe_name":"hdf5","function_name":"H5F__flush"},"2934":{"probe_name":"hdf5","function_name":"H5F__flush_api_common"},"2935":{"probe_name":"hdf5","function_name":"H5F__flush_mounts_recurse"},"2936":{"probe_name":"hdf5","function_name":"H5F__flush_phase2"},"2937":{"probe_name":"hdf5","function_name":"H5F__format_convert"},"2938":{"probe_name":"hdf5","function_name":"H5F__free"},"2939":{"probe_name":"hdf5","function_name":"H5F__get_all_count_cb"},"2940":{"probe_name":"hdf5","function_name":"H5F__get_all_ids_cb"},"2941":{"probe_name":"hdf5","function_name":"H5F__get_cont_info"},"2942":{"probe_name":"hdf5","function_name":"H5F__get_file_image"},"2943":{"probe_name":"hdf5","function_name":"H5F__get_info"},"2944":{"probe_name":"hdf5","function_name":"H5F__get_max_eof_eoa"},"2945":{"probe_name":"hdf5","function_name":"H5F__get_maxaddr_test"},"2946":{"probe_name":"hdf5","function_name":"H5F__get_mpi_atomicity"},"2947":{"probe_name":"hdf5","function_name":"H5F__get_objects_cb"},"2948":{"probe_name":"hdf5","function_name":"H5F__get_sbe_addr_test"},"2949":{"probe_name":"hdf5","function_name":"H5F__get_sohm_mesg_count_test"},"2950":{"probe_name":"hdf5","function_name":"H5F__is_hdf5"},"2951":{"probe_name":"hdf5","function_name":"H5F__mount_count_ids"},"2952":{"probe_name":"hdf5","function_name":"H5F__mount_count_ids_recurse"},"2953":{"probe_name":"hdf5","function_name":"H5F__new"},"2954":{"probe_name":"hdf5","function_name":"H5F__open_api_common"},"2955":{"probe_name":"hdf5","function_name":"H5F__parse_file_lock_env_var"},"2956":{"probe_name":"hdf5","function_name":"H5F__post_open"},"2957":{"probe_name":"hdf5","function_name":"H5F__post_open_api_common"},"2958":{"probe_name":"hdf5","function_name":"H5F__reopen"},"2959":{"probe_name":"hdf5","function_name":"H5F__reopen_api_common"},"2960":{"probe_name":"hdf5","function_name":"H5F__reparse_file_lock_variable_test"},"2961":{"probe_name":"hdf5","function_name":"H5F__same_file_test"},"2962":{"probe_name":"hdf5","function_name":"H5F__set_base_addr"},"2963":{"probe_name":"hdf5","function_name":"H5F__set_eoa"},"2964":{"probe_name":"hdf5","function_name":"H5F__set_libver_bounds"},"2965":{"probe_name":"hdf5","function_name":"H5F__set_mpi_atomicity"},"2966":{"probe_name":"hdf5","function_name":"H5F__set_paged_aggr"},"2967":{"probe_name":"hdf5","function_name":"H5F__sfile_add"},"2968":{"probe_name":"hdf5","function_name":"H5F__sfile_remove"},"2969":{"probe_name":"hdf5","function_name":"H5F__sfile_search"},"2970":{"probe_name":"hdf5","function_name":"H5F__start_swmr_write"},"2971":{"probe_name":"hdf5","function_name":"H5F__super_ext_close"},"2972":{"probe_name":"hdf5","function_name":"H5F__super_ext_create"},"2973":{"probe_name":"hdf5","function_name":"H5F__super_ext_open"},"2974":{"probe_name":"hdf5","function_name":"H5F__super_ext_remove_msg"},"2975":{"probe_name":"hdf5","function_name":"H5F__super_ext_write_msg"},"2976":{"probe_name":"hdf5","function_name":"H5F__super_free"},"2977":{"probe_name":"hdf5","function_name":"H5F__super_init"},"2978":{"probe_name":"hdf5","function_name":"H5F__super_read"},"2979":{"probe_name":"hdf5","function_name":"H5F__super_size"},"2980":{"probe_name":"hdf5","function_name":"H5F__superblock_prefix_decode"},"2981":{"probe_name":"hdf5","function_name":"H5F__try_extend"},"2982":{"probe_name":"hdf5","function_name":"H5F__update_super_ext_driver_msg"},"2983":{"probe_name":"hdf5","function_name":"H5F_addr_decode"},"2984":{"probe_name":"hdf5","function_name":"H5F_addr_decode_len"},"2985":{"probe_name":"hdf5","function_name":"H5F_addr_encode"},"2986":{"probe_name":"hdf5","function_name":"H5F_addr_encode_len"},"2987":{"probe_name":"hdf5","function_name":"H5F_block_read"},"2988":{"probe_name":"hdf5","function_name":"H5F_block_write"},"2989":{"probe_name":"hdf5","function_name":"H5F_coll_md_read"},"2990":{"probe_name":"hdf5","function_name":"H5F_cwfs_add"},"2991":{"probe_name":"hdf5","function_name":"H5F_cwfs_advance_heap"},"2992":{"probe_name":"hdf5","function_name":"H5F_cwfs_find_free_heap"},"2993":{"probe_name":"hdf5","function_name":"H5F_cwfs_remove_heap"},"2994":{"probe_name":"hdf5","function_name":"H5F_debug"},"2995":{"probe_name":"hdf5","function_name":"H5F_decr_nopen_objs"},"2996":{"probe_name":"hdf5","function_name":"H5F_efc_close"},"2997":{"probe_name":"hdf5","function_name":"H5F_eoa_dirty"},"2998":{"probe_name":"hdf5","function_name":"H5F_fake_alloc"},"2999":{"probe_name":"hdf5","function_name":"H5F_fake_free"},"3000":{"probe_name":"hdf5","function_name":"H5F_file_id_exists"},"3001":{"probe_name":"hdf5","function_name":"H5F_flush_mounts"},"3002":{"probe_name":"hdf5","function_name":"H5F_flush_tagged_metadata"},"3003":{"probe_name":"hdf5","function_name":"H5F_gc_ref"},"3004":{"probe_name":"hdf5","function_name":"H5F_get_access_plist"},"3005":{"probe_name":"hdf5","function_name":"H5F_get_actual_name"},"3006":{"probe_name":"hdf5","function_name":"H5F_get_alignment"},"3007":{"probe_name":"hdf5","function_name":"H5F_get_base_addr"},"3008":{"probe_name":"hdf5","function_name":"H5F_get_checksums"},"3009":{"probe_name":"hdf5","function_name":"H5F_get_coll_metadata_reads"},"3010":{"probe_name":"hdf5","function_name":"H5F_get_driver_id"},"3011":{"probe_name":"hdf5","function_name":"H5F_get_eoa"},"3012":{"probe_name":"hdf5","function_name":"H5F_get_evict_on_close"},"3013":{"probe_name":"hdf5","function_name":"H5F_get_extpath"},"3014":{"probe_name":"hdf5","function_name":"H5F_get_fc_degree"},"3015":{"probe_name":"hdf5","function_name":"H5F_get_fcpl"},"3016":{"probe_name":"hdf5","function_name":"H5F_get_file_id"},"3017":{"probe_name":"hdf5","function_name":"H5F_get_fileno"},"3018":{"probe_name":"hdf5","function_name":"H5F_get_high_bound"},"3019":{"probe_name":"hdf5","function_name":"H5F_get_id"},"3020":{"probe_name":"hdf5","function_name":"H5F_get_intent"},"3021":{"probe_name":"hdf5","function_name":"H5F_get_low_bound"},"3022":{"probe_name":"hdf5","function_name":"H5F_get_metadata_read_retry_info"},"3023":{"probe_name":"hdf5","function_name":"H5F_get_min_dset_ohdr"},"3024":{"probe_name":"hdf5","function_name":"H5F_get_nmounts"},"3025":{"probe_name":"hdf5","function_name":"H5F_get_nopen_objs"},"3026":{"probe_name":"hdf5","function_name":"H5F_get_nrefs"},"3027":{"probe_name":"hdf5","function_name":"H5F_get_null_fsm_addr"},"3028":{"probe_name":"hdf5","function_name":"H5F_get_obj_count"},"3029":{"probe_name":"hdf5","function_name":"H5F_get_obj_ids"},"3030":{"probe_name":"hdf5","function_name":"H5F_get_open_name"},"3031":{"probe_name":"hdf5","function_name":"H5F_get_parent"},"3032":{"probe_name":"hdf5","function_name":"H5F_get_pgend_meta_thres"},"3033":{"probe_name":"hdf5","function_name":"H5F_get_point_of_no_return"},"3034":{"probe_name":"hdf5","function_name":"H5F_get_read_attempts"},"3035":{"probe_name":"hdf5","function_name":"H5F_get_rfic_flags"},"3036":{"probe_name":"hdf5","function_name":"H5F_get_shared"},"3037":{"probe_name":"hdf5","function_name":"H5F_get_sohm_addr"},"3038":{"probe_name":"hdf5","function_name":"H5F_get_sohm_nindexes"},"3039":{"probe_name":"hdf5","function_name":"H5F_get_sohm_vers"},"3040":{"probe_name":"hdf5","function_name":"H5F_get_threshold"},"3041":{"probe_name":"hdf5","function_name":"H5F_get_use_file_locking"},"3042":{"probe_name":"hdf5","function_name":"H5F_get_vfd_handle"},"3043":{"probe_name":"hdf5","function_name":"H5F_get_vol_cls"},"3044":{"probe_name":"hdf5","function_name":"H5F_get_vol_obj"},"3045":{"probe_name":"hdf5","function_name":"H5F_grp_btree_shared"},"3046":{"probe_name":"hdf5","function_name":"H5F_has_feature"},"3047":{"probe_name":"hdf5","function_name":"H5F_has_vector_select_io"},"3048":{"probe_name":"hdf5","function_name":"H5F_incr_nopen_objs"},"3049":{"probe_name":"hdf5","function_name":"H5F_init"},"3050":{"probe_name":"hdf5","function_name":"H5F_is_mount"},"3051":{"probe_name":"hdf5","function_name":"H5F_is_tmp_addr"},"3052":{"probe_name":"hdf5","function_name":"H5F_mdc_log_location"},"3053":{"probe_name":"hdf5","function_name":"H5F_mount"},"3054":{"probe_name":"hdf5","function_name":"H5F_mpi_get_comm"},"3055":{"probe_name":"hdf5","function_name":"H5F_mpi_get_file_block_type"},"3056":{"probe_name":"hdf5","function_name":"H5F_mpi_get_info"},"3057":{"probe_name":"hdf5","function_name":"H5F_mpi_get_rank"},"3058":{"probe_name":"hdf5","function_name":"H5F_mpi_get_size"},"3059":{"probe_name":"hdf5","function_name":"H5F_mpi_retrieve_comm"},"3060":{"probe_name":"hdf5","function_name":"H5F_object_flush_cb"},"3061":{"probe_name":"hdf5","function_name":"H5F_open"},"3062":{"probe_name":"hdf5","function_name":"H5F_prefix_open_file"},"3063":{"probe_name":"hdf5","function_name":"H5F_rdcc_nbytes"},"3064":{"probe_name":"hdf5","function_name":"H5F_rdcc_nslots"},"3065":{"probe_name":"hdf5","function_name":"H5F_rdcc_w0"},"3066":{"probe_name":"hdf5","function_name":"H5F_same_shared"},"3067":{"probe_name":"hdf5","function_name":"H5F_set_coll_metadata_reads"},"3068":{"probe_name":"hdf5","function_name":"H5F_set_grp_btree_shared"},"3069":{"probe_name":"hdf5","function_name":"H5F_set_min_dset_ohdr"},"3070":{"probe_name":"hdf5","function_name":"H5F_set_retries"},"3071":{"probe_name":"hdf5","function_name":"H5F_set_sohm_addr"},"3072":{"probe_name":"hdf5","function_name":"H5F_set_sohm_nindexes"},"3073":{"probe_name":"hdf5","function_name":"H5F_set_sohm_vers"},"3074":{"probe_name":"hdf5","function_name":"H5F_set_store_msg_crt_idx"},"3075":{"probe_name":"hdf5","function_name":"H5F_sfile_assert_num"},"3076":{"probe_name":"hdf5","function_name":"H5F_shared_block_read"},"3077":{"probe_name":"hdf5","function_name":"H5F_shared_block_write"},"3078":{"probe_name":"hdf5","function_name":"H5F_shared_coll_md_read"},"3079":{"probe_name":"hdf5","function_name":"H5F_shared_get_coll_metadata_reads"},"3080":{"probe_name":"hdf5","function_name":"H5F_shared_get_eoa"},"3081":{"probe_name":"hdf5","function_name":"H5F_shared_get_file_driver"},"3082":{"probe_name":"hdf5","function_name":"H5F_shared_get_intent"},"3083":{"probe_name":"hdf5","function_name":"H5F_shared_get_mpi_file_sync_required"},"3084":{"probe_name":"hdf5","function_name":"H5F_shared_has_feature"},"3085":{"probe_name":"hdf5","function_name":"H5F_shared_mpi_get_size"},"3086":{"probe_name":"hdf5","function_name":"H5F_shared_select_read"},"3087":{"probe_name":"hdf5","function_name":"H5F_shared_select_write"},"3088":{"probe_name":"hdf5","function_name":"H5F_shared_vector_read"},"3089":{"probe_name":"hdf5","function_name":"H5F_shared_vector_write"},"3090":{"probe_name":"hdf5","function_name":"H5F_sieve_buf_size"},"3091":{"probe_name":"hdf5","function_name":"H5F_sizeof_addr"},"3092":{"probe_name":"hdf5","function_name":"H5F_sizeof_size"},"3093":{"probe_name":"hdf5","function_name":"H5F_start_mdc_log_on_access"},"3094":{"probe_name":"hdf5","function_name":"H5F_store_msg_crt_idx"},"3095":{"probe_name":"hdf5","function_name":"H5F_super_dirty"},"3096":{"probe_name":"hdf5","function_name":"H5F_sym_leaf_k"},"3097":{"probe_name":"hdf5","function_name":"H5F_term_package"},"3098":{"probe_name":"hdf5","function_name":"H5F_track_metadata_read_retries"},"3099":{"probe_name":"hdf5","function_name":"H5F_traverse_mount"},"3100":{"probe_name":"hdf5","function_name":"H5F_try_close"},"3101":{"probe_name":"hdf5","function_name":"H5F_try_close.localalias"},"3102":{"probe_name":"hdf5","function_name":"H5F_unmount"},"3103":{"probe_name":"hdf5","function_name":"H5F_use_mdc_logging"},"3104":{"probe_name":"hdf5","function_name":"H5F_use_tmp_space"},"3105":{"probe_name":"hdf5","function_name":"H5Fclear_elink_file_cache"},"3106":{"probe_name":"hdf5","function_name":"H5Fclose"},"3107":{"probe_name":"hdf5","function_name":"H5Fclose_async"},"3108":{"probe_name":"hdf5","function_name":"H5Fcreate"},"3109":{"probe_name":"hdf5","function_name":"H5Fcreate_async"},"3110":{"probe_name":"hdf5","function_name":"H5Fdelete"},"3111":{"probe_name":"hdf5","function_name":"H5Fflush"},"3112":{"probe_name":"hdf5","function_name":"H5Fflush_async"},"3113":{"probe_name":"hdf5","function_name":"H5Fformat_convert"},"3114":{"probe_name":"hdf5","function_name":"H5Fget_access_plist"},"3115":{"probe_name":"hdf5","function_name":"H5Fget_create_plist"},"3116":{"probe_name":"hdf5","function_name":"H5Fget_dset_no_attrs_hint"},"3117":{"probe_name":"hdf5","function_name":"H5Fget_eoa"},"3118":{"probe_name":"hdf5","function_name":"H5Fget_file_image"},"3119":{"probe_name":"hdf5","function_name":"H5Fget_fileno"},"3120":{"probe_name":"hdf5","function_name":"H5Fget_filesize"},"3121":{"probe_name":"hdf5","function_name":"H5Fget_free_sections"},"3122":{"probe_name":"hdf5","function_name":"H5Fget_freespace"},"3123":{"probe_name":"hdf5","function_name":"H5Fget_info1"},"3124":{"probe_name":"hdf5","function_name":"H5Fget_info2"},"3125":{"probe_name":"hdf5","function_name":"H5Fget_intent"},"3126":{"probe_name":"hdf5","function_name":"H5Fget_mdc_config"},"3127":{"probe_name":"hdf5","function_name":"H5Fget_mdc_hit_rate"},"3128":{"probe_name":"hdf5","function_name":"H5Fget_mdc_image_info"},"3129":{"probe_name":"hdf5","function_name":"H5Fget_mdc_logging_status"},"3130":{"probe_name":"hdf5","function_name":"H5Fget_mdc_size"},"3131":{"probe_name":"hdf5","function_name":"H5Fget_metadata_read_retry_info"},"3132":{"probe_name":"hdf5","function_name":"H5Fget_mpi_atomicity"},"3133":{"probe_name":"hdf5","function_name":"H5Fget_name"},"3134":{"probe_name":"hdf5","function_name":"H5Fget_obj_count"},"3135":{"probe_name":"hdf5","function_name":"H5Fget_obj_ids"},"3136":{"probe_name":"hdf5","function_name":"H5Fget_page_buffering_stats"},"3137":{"probe_name":"hdf5","function_name":"H5Fget_vfd_handle"},"3138":{"probe_name":"hdf5","function_name":"H5Fincrement_filesize"},"3139":{"probe_name":"hdf5","function_name":"H5Fis_accessible"},"3140":{"probe_name":"hdf5","function_name":"H5Fis_hdf5"},"3141":{"probe_name":"hdf5","function_name":"H5Fmount"},"3142":{"probe_name":"hdf5","function_name":"H5Fopen"},"3143":{"probe_name":"hdf5","function_name":"H5Fopen_async"},"3144":{"probe_name":"hdf5","function_name":"H5Freopen"},"3145":{"probe_name":"hdf5","function_name":"H5Freopen_async"},"3146":{"probe_name":"hdf5","function_name":"H5Freset_mdc_hit_rate_stats"},"3147":{"probe_name":"hdf5","function_name":"H5Freset_page_buffering_stats"},"3148":{"probe_name":"hdf5","function_name":"H5Fset_dset_no_attrs_hint"},"3149":{"probe_name":"hdf5","function_name":"H5Fset_latest_format"},"3150":{"probe_name":"hdf5","function_name":"H5Fset_libver_bounds"},"3151":{"probe_name":"hdf5","function_name":"H5Fset_mdc_config"},"3152":{"probe_name":"hdf5","function_name":"H5Fset_mpi_atomicity"},"3153":{"probe_name":"hdf5","function_name":"H5Fstart_mdc_logging"},"3154":{"probe_name":"hdf5","function_name":"H5Fstart_swmr_write"},"3155":{"probe_name":"hdf5","function_name":"H5Fstop_mdc_logging"},"3156":{"probe_name":"hdf5","function_name":"H5Funmount"},"3157":{"probe_name":"hdf5","function_name":"H5G__cache_node_deserialize"},"3158":{"probe_name":"hdf5","function_name":"H5G__cache_node_free_icr"},"3159":{"probe_name":"hdf5","function_name":"H5G__cache_node_get_initial_load_size"},"3160":{"probe_name":"hdf5","function_name":"H5G__cache_node_image_len"},"3161":{"probe_name":"hdf5","function_name":"H5G__cache_node_serialize"},"3162":{"probe_name":"hdf5","function_name":"H5G__close_cb"},"3163":{"probe_name":"hdf5","function_name":"H5G__common_path"},"3164":{"probe_name":"hdf5","function_name":"H5G__compact_build_table_cb"},"3165":{"probe_name":"hdf5","function_name":"H5G__compact_get_name_by_idx"},"3166":{"probe_name":"hdf5","function_name":"H5G__compact_insert"},"3167":{"probe_name":"hdf5","function_name":"H5G__compact_iterate"},"3168":{"probe_name":"hdf5","function_name":"H5G__compact_lookup"},"3169":{"probe_name":"hdf5","function_name":"H5G__compact_lookup_by_idx"},"3170":{"probe_name":"hdf5","function_name":"H5G__compact_lookup_cb"},"3171":{"probe_name":"hdf5","function_name":"H5G__compact_remove"},"3172":{"probe_name":"hdf5","function_name":"H5G__compact_remove_by_idx"},"3173":{"probe_name":"hdf5","function_name":"H5G__compact_remove_common_cb"},"3174":{"probe_name":"hdf5","function_name":"H5G__component"},"3175":{"probe_name":"hdf5","function_name":"H5G__create"},"3176":{"probe_name":"hdf5","function_name":"H5G__create_named"},"3177":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_corder_compare"},"3178":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_corder_debug"},"3179":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_corder_decode"},"3180":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_corder_encode"},"3181":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_corder_store"},"3182":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_name_compare"},"3183":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_name_debug"},"3184":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_name_decode"},"3185":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_name_encode"},"3186":{"probe_name":"hdf5","function_name":"H5G__dense_btree2_name_store"},"3187":{"probe_name":"hdf5","function_name":"H5G__dense_build_table"},"3188":{"probe_name":"hdf5","function_name":"H5G__dense_build_table_cb"},"3189":{"probe_name":"hdf5","function_name":"H5G__dense_create"},"3190":{"probe_name":"hdf5","function_name":"H5G__dense_delete"},"3191":{"probe_name":"hdf5","function_name":"H5G__dense_fh_name_cmp"},"3192":{"probe_name":"hdf5","function_name":"H5G__dense_get_name_by_idx"},"3193":{"probe_name":"hdf5","function_name":"H5G__dense_get_name_by_idx_bt2_cb"},"3194":{"probe_name":"hdf5","function_name":"H5G__dense_get_name_by_idx_fh_cb"},"3195":{"probe_name":"hdf5","function_name":"H5G__dense_insert"},"3196":{"probe_name":"hdf5","function_name":"H5G__dense_iterate"},"3197":{"probe_name":"hdf5","function_name":"H5G__dense_iterate_bt2_cb"},"3198":{"probe_name":"hdf5","function_name":"H5G__dense_iterate_fh_cb"},"3199":{"probe_name":"hdf5","function_name":"H5G__dense_lookup"},"3200":{"probe_name":"hdf5","function_name":"H5G__dense_lookup_by_idx"},"3201":{"probe_name":"hdf5","function_name":"H5G__dense_lookup_by_idx_bt2_cb"},"3202":{"probe_name":"hdf5","function_name":"H5G__dense_lookup_by_idx_fh_cb"},"3203":{"probe_name":"hdf5","function_name":"H5G__dense_lookup_cb"},"3204":{"probe_name":"hdf5","function_name":"H5G__dense_remove"},"3205":{"probe_name":"hdf5","function_name":"H5G__dense_remove_bt2_cb"},"3206":{"probe_name":"hdf5","function_name":"H5G__dense_remove_by_idx"},"3207":{"probe_name":"hdf5","function_name":"H5G__dense_remove_by_idx_bt2_cb"},"3208":{"probe_name":"hdf5","function_name":"H5G__dense_remove_by_idx_fh_cb"},"3209":{"probe_name":"hdf5","function_name":"H5G__dense_remove_fh_cb"},"3210":{"probe_name":"hdf5","function_name":"H5G__ent_copy"},"3211":{"probe_name":"hdf5","function_name":"H5G__ent_debug"},"3212":{"probe_name":"hdf5","function_name":"H5G__ent_decode_vec"},"3213":{"probe_name":"hdf5","function_name":"H5G__ent_encode_vec"},"3214":{"probe_name":"hdf5","function_name":"H5G__ent_reset"},"3215":{"probe_name":"hdf5","function_name":"H5G__ent_to_link"},"3216":{"probe_name":"hdf5","function_name":"H5G__free_visit_visited"},"3217":{"probe_name":"hdf5","function_name":"H5G__get_info_by_idx"},"3218":{"probe_name":"hdf5","function_name":"H5G__get_info_by_name"},"3219":{"probe_name":"hdf5","function_name":"H5G__get_name_by_addr_cb"},"3220":{"probe_name":"hdf5","function_name":"H5G__get_objinfo"},"3221":{"probe_name":"hdf5","function_name":"H5G__get_objinfo_cb"},"3222":{"probe_name":"hdf5","function_name":"H5G__has_links_test"},"3223":{"probe_name":"hdf5","function_name":"H5G__has_stab_test"},"3224":{"probe_name":"hdf5","function_name":"H5G__is_empty_test"},"3225":{"probe_name":"hdf5","function_name":"H5G__is_new_dense_test"},"3226":{"probe_name":"hdf5","function_name":"H5G__iterate_cb"},"3227":{"probe_name":"hdf5","function_name":"H5G__lheap_size_test"},"3228":{"probe_name":"hdf5","function_name":"H5G__link_cmp_corder_dec"},"3229":{"probe_name":"hdf5","function_name":"H5G__link_cmp_corder_inc"},"3230":{"probe_name":"hdf5","function_name":"H5G__link_cmp_name_dec"},"3231":{"probe_name":"hdf5","function_name":"H5G__link_cmp_name_inc"},"3232":{"probe_name":"hdf5","function_name":"H5G__link_iterate_table"},"3233":{"probe_name":"hdf5","function_name":"H5G__link_name_replace"},"3234":{"probe_name":"hdf5","function_name":"H5G__link_release_table"},"3235":{"probe_name":"hdf5","function_name":"H5G__link_sort_table"},"3236":{"probe_name":"hdf5","function_name":"H5G__link_to_ent"},"3237":{"probe_name":"hdf5","function_name":"H5G__link_to_loc"},"3238":{"probe_name":"hdf5","function_name":"H5G__loc_addr"},"3239":{"probe_name":"hdf5","function_name":"H5G__loc_addr_cb"},"3240":{"probe_name":"hdf5","function_name":"H5G__loc_exists_cb"},"3241":{"probe_name":"hdf5","function_name":"H5G__loc_find_by_idx_cb"},"3242":{"probe_name":"hdf5","function_name":"H5G__loc_find_cb"},"3243":{"probe_name":"hdf5","function_name":"H5G__loc_get_comment_cb"},"3244":{"probe_name":"hdf5","function_name":"H5G__loc_info_cb"},"3245":{"probe_name":"hdf5","function_name":"H5G__loc_insert"},"3246":{"probe_name":"hdf5","function_name":"H5G__loc_native_info_cb"},"3247":{"probe_name":"hdf5","function_name":"H5G__loc_set_comment_cb"},"3248":{"probe_name":"hdf5","function_name":"H5G__name_init"},"3249":{"probe_name":"hdf5","function_name":"H5G__name_replace_cb"},"3250":{"probe_name":"hdf5","function_name":"H5G__new_dense_info_test"},"3251":{"probe_name":"hdf5","function_name":"H5G__node_build_table"},"3252":{"probe_name":"hdf5","function_name":"H5G__node_by_idx"},"3253":{"probe_name":"hdf5","function_name":"H5G__node_cmp2"},"3254":{"probe_name":"hdf5","function_name":"H5G__node_cmp3"},"3255":{"probe_name":"hdf5","function_name":"H5G__node_copy"},"3256":{"probe_name":"hdf5","function_name":"H5G__node_create"},"3257":{"probe_name":"hdf5","function_name":"H5G__node_debug_key"},"3258":{"probe_name":"hdf5","function_name":"H5G__node_decode_key"},"3259":{"probe_name":"hdf5","function_name":"H5G__node_encode_key"},"3260":{"probe_name":"hdf5","function_name":"H5G__node_found"},"3261":{"probe_name":"hdf5","function_name":"H5G__node_free"},"3262":{"probe_name":"hdf5","function_name":"H5G__node_get_shared"},"3263":{"probe_name":"hdf5","function_name":"H5G__node_init"},"3264":{"probe_name":"hdf5","function_name":"H5G__node_insert"},"3265":{"probe_name":"hdf5","function_name":"H5G__node_iterate"},"3266":{"probe_name":"hdf5","function_name":"H5G__node_iterate_size"},"3267":{"probe_name":"hdf5","function_name":"H5G__node_remove"},"3268":{"probe_name":"hdf5","function_name":"H5G__node_sumup"},"3269":{"probe_name":"hdf5","function_name":"H5G__obj_compact_to_dense_cb"},"3270":{"probe_name":"hdf5","function_name":"H5G__obj_create"},"3271":{"probe_name":"hdf5","function_name":"H5G__obj_create_real"},"3272":{"probe_name":"hdf5","function_name":"H5G__obj_get_linfo"},"3273":{"probe_name":"hdf5","function_name":"H5G__obj_info"},"3274":{"probe_name":"hdf5","function_name":"H5G__obj_iterate"},"3275":{"probe_name":"hdf5","function_name":"H5G__obj_lookup"},"3276":{"probe_name":"hdf5","function_name":"H5G__obj_remove_update_linfo"},"3277":{"probe_name":"hdf5","function_name":"H5G__obj_stab_to_new_cb"},"3278":{"probe_name":"hdf5","function_name":"H5G__open_name"},"3279":{"probe_name":"hdf5","function_name":"H5G__stab_bh_size"},"3280":{"probe_name":"hdf5","function_name":"H5G__stab_count"},"3281":{"probe_name":"hdf5","function_name":"H5G__stab_create"},"3282":{"probe_name":"hdf5","function_name":"H5G__stab_create_components"},"3283":{"probe_name":"hdf5","function_name":"H5G__stab_delete"},"3284":{"probe_name":"hdf5","function_name":"H5G__stab_get_name_by_idx"},"3285":{"probe_name":"hdf5","function_name":"H5G__stab_get_name_by_idx_cb"},"3286":{"probe_name":"hdf5","function_name":"H5G__stab_insert"},"3287":{"probe_name":"hdf5","function_name":"H5G__stab_insert_real"},"3288":{"probe_name":"hdf5","function_name":"H5G__stab_iterate"},"3289":{"probe_name":"hdf5","function_name":"H5G__stab_lookup"},"3290":{"probe_name":"hdf5","function_name":"H5G__stab_lookup_by_idx"},"3291":{"probe_name":"hdf5","function_name":"H5G__stab_lookup_by_idx_cb"},"3292":{"probe_name":"hdf5","function_name":"H5G__stab_lookup_cb"},"3293":{"probe_name":"hdf5","function_name":"H5G__stab_remove"},"3294":{"probe_name":"hdf5","function_name":"H5G__stab_remove_by_idx"},"3295":{"probe_name":"hdf5","function_name":"H5G__stab_valid"},"3296":{"probe_name":"hdf5","function_name":"H5G__traverse_real"},"3297":{"probe_name":"hdf5","function_name":"H5G__traverse_slink_cb"},"3298":{"probe_name":"hdf5","function_name":"H5G__traverse_special"},"3299":{"probe_name":"hdf5","function_name":"H5G__user_path_test"},"3300":{"probe_name":"hdf5","function_name":"H5G__verify_cached_stab_test"},"3301":{"probe_name":"hdf5","function_name":"H5G__verify_cached_stabs_test"},"3302":{"probe_name":"hdf5","function_name":"H5G__verify_cached_stabs_test_cb"},"3303":{"probe_name":"hdf5","function_name":"H5G__visit_cb"},"3304":{"probe_name":"hdf5","function_name":"H5G_build_fullpath_refstr_str"},"3305":{"probe_name":"hdf5","function_name":"H5G_close"},"3306":{"probe_name":"hdf5","function_name":"H5G_ent_decode"},"3307":{"probe_name":"hdf5","function_name":"H5G_ent_encode"},"3308":{"probe_name":"hdf5","function_name":"H5G_fileof"},"3309":{"probe_name":"hdf5","function_name":"H5G_get_create_plist"},"3310":{"probe_name":"hdf5","function_name":"H5G_get_gcpl_id"},"3311":{"probe_name":"hdf5","function_name":"H5G_get_name"},"3312":{"probe_name":"hdf5","function_name":"H5G_get_name_by_addr"},"3313":{"probe_name":"hdf5","function_name":"H5G_get_shared_count"},"3314":{"probe_name":"hdf5","function_name":"H5G_init"},"3315":{"probe_name":"hdf5","function_name":"H5G_iterate"},"3316":{"probe_name":"hdf5","function_name":"H5G_link_to_info"},"3317":{"probe_name":"hdf5","function_name":"H5G_loc"},"3318":{"probe_name":"hdf5","function_name":"H5G_loc_copy"},"3319":{"probe_name":"hdf5","function_name":"H5G_loc_exists"},"3320":{"probe_name":"hdf5","function_name":"H5G_loc_find"},"3321":{"probe_name":"hdf5","function_name":"H5G_loc_find_by_idx"},"3322":{"probe_name":"hdf5","function_name":"H5G_loc_free"},"3323":{"probe_name":"hdf5","function_name":"H5G_loc_get_comment"},"3324":{"probe_name":"hdf5","function_name":"H5G_loc_info"},"3325":{"probe_name":"hdf5","function_name":"H5G_loc_native_info"},"3326":{"probe_name":"hdf5","function_name":"H5G_loc_real"},"3327":{"probe_name":"hdf5","function_name":"H5G_loc_reset"},"3328":{"probe_name":"hdf5","function_name":"H5G_loc_set_comment"},"3329":{"probe_name":"hdf5","function_name":"H5G_map_obj_type"},"3330":{"probe_name":"hdf5","function_name":"H5G_mkroot"},"3331":{"probe_name":"hdf5","function_name":"H5G_mount"},"3332":{"probe_name":"hdf5","function_name":"H5G_mounted"},"3333":{"probe_name":"hdf5","function_name":"H5G_name_copy"},"3334":{"probe_name":"hdf5","function_name":"H5G_name_free"},"6065":{"probe_name":"hdf5","function_name":"H5VL_wrap_object"},"6066":{"probe_name":"hdf5","function_name":"H5VL_wrap_register"},"6067":{"probe_name":"hdf5","function_name":"H5VLattr_close"},"6068":{"probe_name":"hdf5","function_name":"H5VLattr_create"},"6069":{"probe_name":"hdf5","function_name":"H5VLattr_get"},"6070":{"probe_name":"hdf5","function_name":"H5VLattr_open"},"6071":{"probe_name":"hdf5","function_name":"H5VLattr_optional"},"6072":{"probe_name":"hdf5","function_name":"H5VLattr_optional_op"},"6073":{"probe_name":"hdf5","function_name":"H5VLattr_read"},"6074":{"probe_name":"hdf5","function_name":"H5VLattr_specific"},"6075":{"probe_name":"hdf5","function_name":"H5VLattr_write"},"6076":{"probe_name":"hdf5","function_name":"H5VLblob_get"},"6077":{"probe_name":"hdf5","function_name":"H5VLblob_optional"},"6078":{"probe_name":"hdf5","function_name":"H5VLblob_put"},"6079":{"probe_name":"hdf5","function_name":"H5VLblob_specific"},"6080":{"probe_name":"hdf5","function_name":"H5VLclose"},"6081":{"probe_name":"hdf5","function_name":"H5VLcmp_connector_cls"},"6082":{"probe_name":"hdf5","function_name":"H5VLcmp_connector_info"},"6083":{"probe_name":"hdf5","function_name":"H5VLconnector_info_to_str"},"6084":{"probe_name":"hdf5","function_name":"H5VLconnector_str_to_info"},"6085":{"probe_name":"hdf5","function_name":"H5VLcopy_connector_info"},"6086":{"probe_name":"hdf5","function_name":"H5VLdataset_close"},"6087":{"probe_name":"hdf5","function_name":"H5VLdataset_create"},"6088":{"probe_name":"hdf5","function_name":"H5VLdataset_get"},"6089":{"probe_name":"hdf5","function_name":"H5VLdataset_open"},"6090":{"probe_name":"hdf5","function_name":"H5VLdataset_optional"},"6091":{"probe_name":"hdf5","function_name":"H5VLdataset_optional_op"},"6092":{"probe_name":"hdf5","function_name":"H5VLdataset_read"},"6093":{"probe_name":"hdf5","function_name":"H5VLdataset_specific"},"6094":{"probe_name":"hdf5","function_name":"H5VLdataset_write"},"6095":{"probe_name":"hdf5","function_name":"H5VLdatatype_close"},"6096":{"probe_name":"hdf5","function_name":"H5VLdatatype_commit"},"6097":{"probe_name":"hdf5","function_name":"H5VLdatatype_get"},"6098":{"probe_name":"hdf5","function_name":"H5VLdatatype_open"},"6099":{"probe_name":"hdf5","function_name":"H5VLdatatype_optional"},"6100":{"probe_name":"hdf5","function_name":"H5VLdatatype_optional_op"},"6101":{"probe_name":"hdf5","function_name":"H5VLdatatype_specific"},"6102":{"probe_name":"hdf5","function_name":"H5VLfile_close"},"6103":{"probe_name":"hdf5","function_name":"H5VLfile_create"},"6104":{"probe_name":"hdf5","function_name":"H5VLfile_get"},"6105":{"probe_name":"hdf5","function_name":"H5VLfile_open"},"6106":{"probe_name":"hdf5","function_name":"H5VLfile_optional"},"6107":{"probe_name":"hdf5","function_name":"H5VLfile_optional_op"},"6108":{"probe_name":"hdf5","function_name":"H5VLfile_specific"},"6109":{"probe_name":"hdf5","function_name":"H5VLfind_opt_operation"},"6110":{"probe_name":"hdf5","function_name":"H5VLfinish_lib_state"},"6111":{"probe_name":"hdf5","function_name":"H5VLfree_connector_info"},"6112":{"probe_name":"hdf5","function_name":"H5VLfree_lib_state"},"6113":{"probe_name":"hdf5","function_name":"H5VLfree_wrap_ctx"},"6114":{"probe_name":"hdf5","function_name":"H5VLget_cap_flags"},"6115":{"probe_name":"hdf5","function_name":"H5VLget_connector_id"},"6116":{"probe_name":"hdf5","function_name":"H5VLget_connector_id_by_name"},"6117":{"probe_name":"hdf5","function_name":"H5VLget_connector_id_by_value"},"6118":{"probe_name":"hdf5","function_name":"H5VLget_connector_name"},"6119":{"probe_name":"hdf5","function_name":"H5VLget_file_type"},"6120":{"probe_name":"hdf5","function_name":"H5VLget_object"},"6121":{"probe_name":"hdf5","function_name":"H5VLget_value"},"6122":{"probe_name":"hdf5","function_name":"H5VLget_wrap_ctx"},"6123":{"probe_name":"hdf5","function_name":"H5VLgroup_close"},"6124":{"probe_name":"hdf5","function_name":"H5VLgroup_create"},"6125":{"probe_name":"hdf5","function_name":"H5VLgroup_get"},"6126":{"probe_name":"hdf5","function_name":"H5VLgroup_open"},"6127":{"probe_name":"hdf5","function_name":"H5VLgroup_optional"},"6128":{"probe_name":"hdf5","function_name":"H5VLgroup_optional_op"},"6129":{"probe_name":"hdf5","function_name":"H5VLgroup_specific"},"6130":{"probe_name":"hdf5","function_name":"H5VLinitialize"},"6131":{"probe_name":"hdf5","function_name":"H5VLintrospect_get_cap_flags"},"6132":{"probe_name":"hdf5","function_name":"H5VLintrospect_get_conn_cls"},"6133":{"probe_name":"hdf5","function_name":"H5VLintrospect_opt_query"},"6134":{"probe_name":"hdf5","function_name":"H5VLis_connector_registered_by_name"},"6135":{"probe_name":"hdf5","function_name":"H5VLis_connector_registered_by_value"},"6136":{"probe_name":"hdf5","function_name":"H5VLlink_copy"},"6137":{"probe_name":"hdf5","function_name":"H5VLlink_create"},"6138":{"probe_name":"hdf5","function_name":"H5VLlink_get"},"6139":{"probe_name":"hdf5","function_name":"H5VLlink_move"},"6140":{"probe_name":"hdf5","function_name":"H5VLlink_optional"},"6141":{"probe_name":"hdf5","function_name":"H5VLlink_optional_op"},"6142":{"probe_name":"hdf5","function_name":"H5VLlink_specific"},"6143":{"probe_name":"hdf5","function_name":"H5VLnative_addr_to_token"},"6144":{"probe_name":"hdf5","function_name":"H5VLnative_token_to_addr"},"6145":{"probe_name":"hdf5","function_name":"H5VLobject"},"6146":{"probe_name":"hdf5","function_name":"H5VLobject_copy"},"6147":{"probe_name":"hdf5","function_name":"H5VLobject_get"},"6148":{"probe_name":"hdf5","function_name":"H5VLobject_is_native"},"6149":{"probe_name":"hdf5","function_name":"H5VLobject_open"},"6150":{"probe_name":"hdf5","function_name":"H5VLobject_optional"},"6151":{"probe_name":"hdf5","function_name":"H5VLobject_optional_op"},"6152":{"probe_name":"hdf5","function_name":"H5VLobject_specific"},"6153":{"probe_name":"hdf5","function_name":"H5VLoptional"},"6154":{"probe_name":"hdf5","function_name":"H5VLpeek_connector_id_by_name"},"6155":{"probe_name":"hdf5","function_name":"H5VLpeek_connector_id_by_value"},"6156":{"probe_name":"hdf5","function_name":"H5VLquery_optional"},"6157":{"probe_name":"hdf5","function_name":"H5VLregister_connector"},"6158":{"probe_name":"hdf5","function_name":"H5VLregister_connector_by_name"},"6159":{"probe_name":"hdf5","function_name":"H5VLregister_connector_by_value"},"6160":{"probe_name":"hdf5","function_name":"H5VLregister_opt_operation"},"6161":{"probe_name":"hdf5","function_name":"H5VLrequest_cancel"},"6162":{"probe_name":"hdf5","function_name":"H5VLrequest_free"},"6163":{"probe_name":"hdf5","function_name":"H5VLrequest_notify"},"6164":{"probe_name":"hdf5","function_name":"H5VLrequest_optional"},"6165":{"probe_name":"hdf5","function_name":"H5VLrequest_optional_op"},"6166":{"probe_name":"hdf5","function_name":"H5VLrequest_specific"},"6167":{"probe_name":"hdf5","function_name":"H5VLrequest_wait"},"6168":{"probe_name":"hdf5","function_name":"H5VLrestore_lib_state"},"6169":{"probe_name":"hdf5","function_name":"H5VLretrieve_lib_state"},"6170":{"probe_name":"hdf5","function_name":"H5VLstart_lib_state"},"6171":{"probe_name":"hdf5","function_name":"H5VLterminate"},"6172":{"probe_name":"hdf5","function_name":"H5VLtoken_cmp"},"6173":{"probe_name":"hdf5","function_name":"H5VLtoken_from_str"},"6174":{"probe_name":"hdf5","function_name":"H5VLtoken_to_str"},"6175":{"probe_name":"hdf5","function_name":"H5VLunregister_connector"},"6176":{"probe_name":"hdf5","function_name":"H5VLunregister_opt_operation"},"6177":{"probe_name":"hdf5","function_name":"H5VLunwrap_object"},"6178":{"probe_name":"hdf5","function_name":"H5VLwrap_object"},"6179":{"probe_name":"hdf5","function_name":"H5VLwrap_register"},"6180":{"probe_name":"hdf5","function_name":"H5VM_array_calc"},"6181":{"probe_name":"hdf5","function_name":"H5VM_array_calc_pre"},"6182":{"probe_name":"hdf5","function_name":"H5VM_array_down"},"6183":{"probe_name":"hdf5","function_name":"H5VM_array_fill"},"6184":{"probe_name":"hdf5","function_name":"H5VM_array_offset"},"6185":{"probe_name":"hdf5","function_name":"H5VM_array_offset_pre"},"6186":{"probe_name":"hdf5","function_name":"H5VM_chunk_index"},"6187":{"probe_name":"hdf5","function_name":"H5VM_chunk_index_scaled"},"6188":{"probe_name":"hdf5","function_name":"H5VM_chunk_scaled"},"6189":{"probe_name":"hdf5","function_name":"H5VM_hyper_copy"},"6190":{"probe_name":"hdf5","function_name":"H5VM_hyper_eq"},"6191":{"probe_name":"hdf5","function_name":"H5VM_hyper_fill"},"6192":{"probe_name":"hdf5","function_name":"H5VM_hyper_stride"},"6193":{"probe_name":"hdf5","function_name":"H5VM_memcpyvv"},"6194":{"probe_name":"hdf5","function_name":"H5VM_opvv"},"6195":{"probe_name":"hdf5","function_name":"H5VM_stride_copy"},"6196":{"probe_name":"hdf5","function_name":"H5VM_stride_copy.part.0"},"6197":{"probe_name":"hdf5","function_name":"H5VM_stride_copy_s"},"6198":{"probe_name":"hdf5","function_name":"H5VM_stride_fill"},"6199":{"probe_name":"hdf5","function_name":"H5WB_actual"},"6200":{"probe_name":"hdf5","function_name":"H5WB_actual_clear"},"6201":{"probe_name":"hdf5","function_name":"H5WB_unwrap"},"6202":{"probe_name":"hdf5","function_name":"H5WB_wrap"},"6203":{"probe_name":"hdf5","function_name":"H5Z__calc_parms_array"},"6204":{"probe_name":"hdf5","function_name":"H5Z__calc_parms_compound"},"6205":{"probe_name":"hdf5","function_name":"H5Z__can_apply_nbit"},"6206":{"probe_name":"hdf5","function_name":"H5Z__can_apply_scaleoffset"},"6207":{"probe_name":"hdf5","function_name":"H5Z__check_unregister_dset_cb"},"6208":{"probe_name":"hdf5","function_name":"H5Z__check_unregister_group_cb"},"6209":{"probe_name":"hdf5","function_name":"H5Z__do_op"},"6210":{"probe_name":"hdf5","function_name":"H5Z__filter_deflate"},"6211":{"probe_name":"hdf5","function_name":"H5Z__filter_fletcher32"},"6212":{"probe_name":"hdf5","function_name":"H5Z__filter_nbit"},"6213":{"probe_name":"hdf5","function_name":"H5Z__filter_scaleoffset"},"6214":{"probe_name":"hdf5","function_name":"H5Z__filter_shuffle"},"6215":{"probe_name":"hdf5","function_name":"H5Z__flush_file_cb"},"6216":{"probe_name":"hdf5","function_name":"H5Z__get_token"},"6217":{"probe_name":"hdf5","function_name":"H5Z__nbit_compress_one_array"},"6218":{"probe_name":"hdf5","function_name":"H5Z__nbit_compress_one_atomic"},"6219":{"probe_name":"hdf5","function_name":"H5Z__nbit_compress_one_compound"},"6220":{"probe_name":"hdf5","function_name":"H5Z__nbit_decompress_one_array"},"6221":{"probe_name":"hdf5","function_name":"H5Z__nbit_decompress_one_atomic"},"6222":{"probe_name":"hdf5","function_name":"H5Z__nbit_decompress_one_compound"},"6223":{"probe_name":"hdf5","function_name":"H5Z__new_node.part.0"},"6224":{"probe_name":"hdf5","function_name":"H5Z__parse_expression"},"6225":{"probe_name":"hdf5","function_name":"H5Z__parse_factor"},"6226":{"probe_name":"hdf5","function_name":"H5Z__parse_term"},"6227":{"probe_name":"hdf5","function_name":"H5Z__prelude_callback"},"6228":{"probe_name":"hdf5","function_name":"H5Z__prepare_prelude_callback_dcpl"},"6229":{"probe_name":"hdf5","function_name":"H5Z__scaleoffset_get_type"},"6230":{"probe_name":"hdf5","function_name":"H5Z__scaleoffset_postdecompress_i"},"6231":{"probe_name":"hdf5","function_name":"H5Z__scaleoffset_precompress_fd"},"6232":{"probe_name":"hdf5","function_name":"H5Z__set_local_nbit"},"6233":{"probe_name":"hdf5","function_name":"H5Z__set_local_scaleoffset"},"6234":{"probe_name":"hdf5","function_name":"H5Z__set_local_shuffle"},"6235":{"probe_name":"hdf5","function_name":"H5Z__set_parms_array"},"6236":{"probe_name":"hdf5","function_name":"H5Z__set_parms_atomic"},"6237":{"probe_name":"hdf5","function_name":"H5Z__set_parms_compound"},"6238":{"probe_name":"hdf5","function_name":"H5Z__unregister"},"6239":{"probe_name":"hdf5","function_name":"H5Z__xform_copy_tree.isra.0"},"6240":{"probe_name":"hdf5","function_name":"H5Z__xform_destroy_parse_tree.part.0"},"6241":{"probe_name":"hdf5","function_name":"H5Z__xform_eval_full"},"6242":{"probe_name":"hdf5","function_name":"H5Z__xform_reduce_tree"},"6243":{"probe_name":"hdf5","function_name":"H5Z_all_filters_avail"},"6244":{"probe_name":"hdf5","function_name":"H5Z_append"},"6245":{"probe_name":"hdf5","function_name":"H5Z_can_apply"},"6246":{"probe_name":"hdf5","function_name":"H5Z_can_apply_direct"},"6247":{"probe_name":"hdf5","function_name":"H5Z_delete"},"6248":{"probe_name":"hdf5","function_name":"H5Z_filter_avail"},"6249":{"probe_name":"hdf5","function_name":"H5Z_filter_in_pline"},"6250":{"probe_name":"hdf5","function_name":"H5Z_filter_info"},"6251":{"probe_name":"hdf5","function_name":"H5Z_find"},"6252":{"probe_name":"hdf5","function_name":"H5Z_get_filter_info"},"6253":{"probe_name":"hdf5","function_name":"H5Z_ignore_filters"},"6254":{"probe_name":"hdf5","function_name":"H5Z_init"},"6255":{"probe_name":"hdf5","function_name":"H5Z_modify"},"6256":{"probe_name":"hdf5","function_name":"H5Z_pipeline"},"6257":{"probe_name":"hdf5","function_name":"H5Z_register"},"6258":{"probe_name":"hdf5","function_name":"H5Z_set_local"},"6259":{"probe_name":"hdf5","function_name":"H5Z_set_local_direct"},"6260":{"probe_name":"hdf5","function_name":"H5Z_term_package"},"6261":{"probe_name":"hdf5","function_name":"H5Z_xform_copy"},"6262":{"probe_name":"hdf5","function_name":"H5Z_xform_create"},"6263":{"probe_name":"hdf5","function_name":"H5Z_xform_destroy"},"6264":{"probe_name":"hdf5","function_name":"H5Z_xform_eval"},"6265":{"probe_name":"hdf5","function_name":"H5Z_xform_extract_xform_str"},"6266":{"probe_name":"hdf5","function_name":"H5Z_xform_noop"},"6267":{"probe_name":"hdf5","function_name":"H5Zfilter_avail"},"6268":{"probe_name":"hdf5","function_name":"H5Zget_filter_info"},"6269":{"probe_name":"hdf5","function_name":"H5Zregister"},"6270":{"probe_name":"hdf5","function_name":"H5Zunregister"},"6271":{"probe_name":"hdf5","function_name":"H5__debug_mask"},"6272":{"probe_name":"hdf5","function_name":"H5__mpi_delete_cb"},"6273":{"probe_name":"hdf5","function_name":"H5_bandwidth"},"6274":{"probe_name":"hdf5","function_name":"H5_basename"},"6275":{"probe_name":"hdf5","function_name":"H5_buffer_dump"},"6276":{"probe_name":"hdf5","function_name":"H5_build_extpath"},"6277":{"probe_name":"hdf5","function_name":"H5_checksum_crc"},"6278":{"probe_name":"hdf5","function_name":"H5_checksum_fletcher32"},"6279":{"probe_name":"hdf5","function_name":"H5_checksum_lookup3"},"6280":{"probe_name":"hdf5","function_name":"H5_checksum_metadata"},"6281":{"probe_name":"hdf5","function_name":"H5_combine_path"},"6282":{"probe_name":"hdf5","function_name":"H5_default_vfd_init"},"6283":{"probe_name":"hdf5","function_name":"H5_dirname"},"6284":{"probe_name":"hdf5","function_name":"H5_get_option"},"6285":{"probe_name":"hdf5","function_name":"H5_get_time"},"6286":{"probe_name":"hdf5","function_name":"H5_hash_string"},"6287":{"probe_name":"hdf5","function_name":"H5_init_library"},"6288":{"probe_name":"hdf5","function_name":"H5_make_time"},"6289":{"probe_name":"hdf5","function_name":"H5_mpi_comm_cmp"},"6290":{"probe_name":"hdf5","function_name":"H5_mpi_comm_dup"},"6291":{"probe_name":"hdf5","function_name":"H5_mpi_comm_free"},"6292":{"probe_name":"hdf5","function_name":"H5_mpi_get_bigio_count"},"6293":{"probe_name":"hdf5","function_name":"H5_mpi_info_cmp"},"6294":{"probe_name":"hdf5","function_name":"H5_mpi_info_dup"},"6295":{"probe_name":"hdf5","function_name":"H5_mpi_info_free"},"6296":{"probe_name":"hdf5","function_name":"H5_mpi_set_bigio_count"},"6297":{"probe_name":"hdf5","function_name":"H5_mpio_create_large_type"},"6298":{"probe_name":"hdf5","function_name":"H5_mpio_gatherv_alloc"},"6299":{"probe_name":"hdf5","function_name":"H5_mpio_gatherv_alloc_simple"},"6300":{"probe_name":"hdf5","function_name":"H5_mpio_get_file_sync_required"},"6301":{"probe_name":"hdf5","function_name":"H5_nanosleep"},"6302":{"probe_name":"hdf5","function_name":"H5_now"},"6303":{"probe_name":"hdf5","function_name":"H5_now_usec"},"6304":{"probe_name":"hdf5","function_name":"H5_strcasestr"},"6305":{"probe_name":"hdf5","function_name":"H5_term_library"},"6306":{"probe_name":"hdf5","function_name":"H5_term_library.part.0"},"6307":{"probe_name":"hdf5","function_name":"H5_timer_get_time_string"},"6308":{"probe_name":"hdf5","function_name":"H5_timer_get_times"},"6309":{"probe_name":"hdf5","function_name":"H5_timer_get_total_times"},"6310":{"probe_name":"hdf5","function_name":"H5_timer_init"},"6311":{"probe_name":"hdf5","function_name":"H5_timer_start"},"6312":{"probe_name":"hdf5","function_name":"H5_timer_stop"},"6313":{"probe_name":"hdf5","function_name":"H5_trace"},"6314":{"probe_name":"hdf5","function_name":"H5_trace_args"},"6315":{"probe_name":"hdf5","function_name":"H5allocate_memory"},"6316":{"probe_name":"hdf5","function_name":"H5atclose"},"6317":{"probe_name":"hdf5","function_name":"H5check_version"},"6318":{"probe_name":"hdf5","function_name":"H5close"},"6319":{"probe_name":"hdf5","function_name":"H5dont_atexit"},"6320":{"probe_name":"hdf5","function_name":"H5free_memory"},"6321":{"probe_name":"hdf5","function_name":"H5garbage_collect"},"6322":{"probe_name":"hdf5","function_name":"H5get_free_list_sizes"},"6323":{"probe_name":"hdf5","function_name":"H5get_libversion"},"6324":{"probe_name":"hdf5","function_name":"H5is_library_terminating"},"6325":{"probe_name":"hdf5","function_name":"H5is_library_threadsafe"},"6326":{"probe_name":"hdf5","function_name":"H5open"},"6327":{"probe_name":"hdf5","function_name":"H5resize_memory"},"6328":{"probe_name":"hdf5","function_name":"H5set_free_list_limits"},"6329":{"probe_name":"hdf5","function_name":"Nflock"},"6330":{"probe_name":"hdf5","function_name":"Pflock"},"6331":{"probe_name":"hdf5","function_name":"__do_global_dtors_aux"},"6332":{"probe_name":"hdf5","function_name":"atexit"},"6333":{"probe_name":"hdf5","function_name":"compute_next"},"6334":{"probe_name":"hdf5","function_name":"deregister_tm_clones"},"6335":{"probe_name":"hdf5","function_name":"frame_dummy"},"6336":{"probe_name":"hdf5","function_name":"open_members"},"6337":{"probe_name":"hdf5","function_name":"register_tm_clones"},"6338":{"probe_name":"bio","function_name":"bio_add_folio"},"6339":{"probe_name":"bio","function_name":"bio_add_folio_nofail"},"6340":{"probe_name":"bio","function_name":"bio_add_hw_folio"},"6341":{"probe_name":"bio","function_name":"bio_add_hw_page"},"6342":{"probe_name":"bio","function_name":"bio_add_page"},"6343":{"probe_name":"bio","function_name":"bio_add_pc_page"},"6344":{"probe_name":"bio","function_name":"bio_add_zone_append_page"},"6345":{"probe_name":"bio","function_name":"bio_alloc_bioset"},"6346":{"probe_name":"bio","function_name":"bio_alloc_cache_prune.constprop.0"},"6347":{"probe_name":"bio","function_name":"bio_alloc_clone"},"6348":{"probe_name":"bio","function_name":"bio_alloc_irq_cache_splice"},"6349":{"probe_name":"bio","function_name":"bio_alloc_map_data"},"6350":{"probe_name":"bio","function_name":"bio_alloc_rescue"},"6351":{"probe_name":"bio","function_name":"bio_associate_blkg"},"6352":{"probe_name":"bio","function_name":"bio_associate_blkg_from_css"},"6353":{"probe_name":"bio","function_name":"bio_associate_blkg_from_page.isra.0"},"6354":{"probe_name":"bio","function_name":"bio_attempt_back_merge"},"6355":{"probe_name":"bio","function_name":"bio_attempt_discard_merge"},"6356":{"probe_name":"bio","function_name":"bio_attempt_front_merge"},"6357":{"probe_name":"bio","function_name":"bio_await_chain"},"6358":{"probe_name":"bio","function_name":"bio_blkcg_css"},"6359":{"probe_name":"bio","function_name":"bio_chain"},"6360":{"probe_name":"bio","function_name":"bio_chain_and_submit"},"6361":{"probe_name":"bio","function_name":"bio_chain_endio"},"6362":{"probe_name":"bio","function_name":"bio_check_pages_dirty"},"6363":{"probe_name":"bio","function_name":"bio_clone_blkg_association"},"6364":{"probe_name":"bio","function_name":"bio_copy_data"},"6365":{"probe_name":"bio","function_name":"bio_copy_data_iter"},"6366":{"probe_name":"bio","function_name":"bio_copy_from_iter"},"6367":{"probe_name":"bio","function_name":"bio_copy_kern_endio"},"6368":{"probe_name":"bio","function_name":"bio_copy_kern_endio_read"},"6369":{"probe_name":"bio","function_name":"bio_copy_user_iov"},"6370":{"probe_name":"bio","function_name":"bio_cpu_dead"},"6371":{"probe_name":"bio","function_name":"bio_dirty_fn"},"6372":{"probe_name":"bio","function_name":"bio_end_io_acct_remapped"},"6373":{"probe_name":"bio","function_name":"bio_endio"},"6374":{"probe_name":"bio","function_name":"bio_free"},"6375":{"probe_name":"bio","function_name":"bio_free_pages"},"6376":{"probe_name":"bio","function_name":"bio_get_page"},"6377":{"probe_name":"bio","function_name":"bio_init"},"6378":{"probe_name":"bio","function_name":"bio_init_clone"},"6379":{"probe_name":"bio","function_name":"bio_integrity_add_page"},"6380":{"probe_name":"bio","function_name":"bio_integrity_advance"},"6381":{"probe_name":"bio","function_name":"bio_integrity_alloc"},"6382":{"probe_name":"bio","function_name":"bio_integrity_clone"},"6383":{"probe_name":"bio","function_name":"bio_integrity_copy_user"},"6384":{"probe_name":"bio","function_name":"bio_integrity_free"},"6385":{"probe_name":"bio","function_name":"bio_integrity_init_user"},"6386":{"probe_name":"bio","function_name":"bio_integrity_map_user"},"6387":{"probe_name":"bio","function_name":"bio_integrity_prep"},"6388":{"probe_name":"bio","function_name":"bio_integrity_prep.cold"},"6389":{"probe_name":"bio","function_name":"bio_integrity_trim"},"6390":{"probe_name":"bio","function_name":"bio_integrity_unmap_user"},"6391":{"probe_name":"bio","function_name":"bio_integrity_unpin_bvec"},"6392":{"probe_name":"bio","function_name":"bio_integrity_verify_fn"},"6393":{"probe_name":"bio","function_name":"bio_iov_bvec_set"},"6394":{"probe_name":"bio","function_name":"bio_iov_iter_get_pages"},"6395":{"probe_name":"bio","function_name":"bio_kmalloc"},"6396":{"probe_name":"bio","function_name":"bio_map_kern_endio"},"6397":{"probe_name":"bio","function_name":"bio_map_user_iov"},"6398":{"probe_name":"bio","function_name":"bio_next_page"},"6399":{"probe_name":"bio","function_name":"bio_poll"},"6400":{"probe_name":"bio","function_name":"bio_post_read_processing"},"6401":{"probe_name":"bio","function_name":"bio_put"},"6402":{"probe_name":"bio","function_name":"bio_reset"},"6403":{"probe_name":"bio","function_name":"bio_set_pages_dirty"},"6404":{"probe_name":"bio","function_name":"bio_split"},"6405":{"probe_name":"bio","function_name":"bio_split_discard"},"6406":{"probe_name":"bio","function_name":"bio_split_rw"},"6407":{"probe_name":"bio","function_name":"bio_split_rw_at"},"6408":{"probe_name":"bio","function_name":"bio_split_to_limits"},"6409":{"probe_name":"bio","function_name":"bio_split_write_zeroes"},"6410":{"probe_name":"bio","function_name":"bio_split_zone_append"},"6411":{"probe_name":"bio","function_name":"bio_start_io_acct"},"6412":{"probe_name":"bio","function_name":"bio_submit_split.part.0"},"6413":{"probe_name":"bio","function_name":"bio_to_wbt_flags"},"6414":{"probe_name":"bio","function_name":"bio_trim"},"6415":{"probe_name":"bio","function_name":"bio_uninit"},"6416":{"probe_name":"bio","function_name":"bio_wait_end_io"},"6417":{"probe_name":"bio","function_name":"bioset_exit"},"6418":{"probe_name":"bio","function_name":"bioset_init"},"6419":{"probe_name":"bio","function_name":"bioset_integrity_create"},"6420":{"probe_name":"bio","function_name":"bioset_integrity_free"},"6421":{"probe_name":"bio","function_name":"biovec_init_pool"},"6422":{"probe_name":"python","function_name":"function__entry"},"6423":{"probe_name":"os_page_cache","function_name":"add_to_page_cache_lru"},"6424":{"probe_name":"os_page_cache","function_name":"clear_page_dirty_for_io"},"6425":{"probe_name":"os_page_cache","function_name":"delete_from_page_cache_batch"},"6426":{"probe_name":"os_page_cache","function_name":"end_page_writeback"},"6427":{"probe_name":"os_page_cache","function_name":"fault_in_safe_writeable"},"6428":{"probe_name":"os_page_cache","function_name":"fault_in_subpage_writeable"},"6429":{"probe_name":"os_page_cache","function_name":"fault_in_writeable"},"6430":{"probe_name":"os_page_cache","function_name":"filemap_add_folio"},"6431":{"probe_name":"os_page_cache","function_name":"filemap_alloc_folio"},"6432":{"probe_name":"os_page_cache","function_name":"filemap_check_errors"},"6433":{"probe_name":"os_page_cache","function_name":"filemap_fdatawait_keep_errors"},"6434":{"probe_name":"os_page_cache","function_name":"filemap_fdatawait_range"},"6435":{"probe_name":"os_page_cache","function_name":"filemap_fdatawait_range_keep_errors"},"6436":{"probe_name":"os_page_cache","function_name":"filemap_fdatawrite"},"6437":{"probe_name":"os_page_cache","function_name":"filemap_fdatawrite_range"},"6438":{"probe_name":"os_page_cache","function_name":"filemap_fdatawrite_wbc"},"6439":{"probe_name":"os_page_cache","function_name":"filemap_flush"},"6440":{"probe_name":"os_page_cache","function_name":"filemap_get_folios"},"6441":{"probe_name":"os_page_cache","function_name":"filemap_get_folios_contig"},"6442":{"probe_name":"os_page_cache","function_name":"filemap_get_folios_tag"},"6443":{"probe_name":"os_page_cache","function_name":"filemap_range_has_page"},"6444":{"probe_name":"os_page_cache","function_name":"filemap_range_has_writeback"},"6445":{"probe_name":"os_page_cache","function_name":"filemap_release_folio"},"6446":{"probe_name":"os_page_cache","function_name":"filemap_remove_folio"},"6447":{"probe_name":"os_page_cache","function_name":"folio_account_cleaned"},"6448":{"probe_name":"os_page_cache","function_name":"folio_add_wait_queue"},"6449":{"probe_name":"os_page_cache","function_name":"folio_clear_dirty_for_io"},"6450":{"probe_name":"os_page_cache","function_name":"folio_end_private_2"},"6451":{"probe_name":"os_page_cache","function_name":"folio_end_writeback"},"6452":{"probe_name":"os_page_cache","function_name":"folio_invalidate"},"6453":{"probe_name":"os_page_cache","function_name":"folio_mapping"},"6454":{"probe_name":"os_page_cache","function_name":"folio_wait_bit"},"6455":{"probe_name":"os_page_cache","function_name":"folio_wait_bit_killable"},"6456":{"probe_name":"os_page_cache","function_name":"folio_wait_private_2"},"6457":{"probe_name":"os_page_cache","function_name":"folio_wait_private_2_killable"},"6458":{"probe_name":"os_page_cache","function_name":"folio_wait_stable"},"6459":{"probe_name":"os_page_cache","function_name":"folio_wait_writeback"},"6460":{"probe_name":"os_page_cache","function_name":"folio_wait_writeback_killable"},"6461":{"probe_name":"os_page_cache","function_name":"grab_cache_page_write_begin"},"6462":{"probe_name":"os_page_cache","function_name":"invalidate_inode_pages2"},"6463":{"probe_name":"os_page_cache","function_name":"invalidate_inode_pages2_range"},"6464":{"probe_name":"os_page_cache","function_name":"invalidate_mapping_pages"},"6465":{"probe_name":"os_page_cache","function_name":"kiocb_invalidate_pages"},"6466":{"probe_name":"os_page_cache","function_name":"kiocb_invalidate_post_direct_write"},"6467":{"probe_name":"os_page_cache","function_name":"kiocb_write_and_wait"},"6468":{"probe_name":"os_page_cache","function_name":"mapping_read_folio_gfp"},"6469":{"probe_name":"os_page_cache","function_name":"mapping_seek_hole_data"},"6470":{"probe_name":"shm","function_name":"shmem_charge"},"6471":{"probe_name":"shm","function_name":"shmem_file_setup"},"6472":{"probe_name":"shm","function_name":"shmem_file_setup_with_mnt"},"6473":{"probe_name":"shm","function_name":"shmem_get_folio"},"6474":{"probe_name":"shm","function_name":"shmem_get_unmapped_area"},"6475":{"probe_name":"shm","function_name":"shmem_init_fs_context"},"6476":{"probe_name":"shm","function_name":"shmem_kernel_file_setup"},"6477":{"probe_name":"shm","function_name":"shmem_lock"},"6478":{"probe_name":"shm","function_name":"shmem_partial_swap_usage"},"6479":{"probe_name":"shm","function_name":"shmem_read_folio_gfp"},"6480":{"probe_name":"shm","function_name":"shmem_read_mapping_page_gfp"},"6481":{"probe_name":"shm","function_name":"shmem_swap_usage"},"6482":{"probe_name":"shm","function_name":"shmem_truncate_range"},"6483":{"probe_name":"shm","function_name":"shmem_uncharge"},"6484":{"probe_name":"shm","function_name":"shmem_unlock_mapping"},"6485":{"probe_name":"shm","function_name":"shmem_unuse"},"6486":{"probe_name":"shm","function_name":"shmem_zero_setup"},"6487":{"probe_name":"fscache","function_name":"__fscache_acquire_cookie"},"6488":{"probe_name":"fscache","function_name":"__fscache_acquire_volume"},"6489":{"probe_name":"fscache","function_name":"__fscache_begin_read_operation"},"6490":{"probe_name":"fscache","function_name":"__fscache_begin_write_operation"},"6491":{"probe_name":"fscache","function_name":"__fscache_clear_page_bits"},"6492":{"probe_name":"fscache","function_name":"__fscache_invalidate"},"6493":{"probe_name":"fscache","function_name":"__fscache_relinquish_cookie"},"6494":{"probe_name":"fscache","function_name":"__fscache_relinquish_volume"},"6495":{"probe_name":"fscache","function_name":"__fscache_resize_cookie"},"6496":{"probe_name":"fscache","function_name":"__fscache_unuse_cookie"},"6497":{"probe_name":"fscache","function_name":"__fscache_use_cookie"},"6498":{"probe_name":"fscache","function_name":"__fscache_write_to_cache"},"6499":{"probe_name":"xfs","function_name":"xfs_agfblock_init"},"6500":{"probe_name":"xfs","function_name":"xfs_agflblock_init"},"6501":{"probe_name":"xfs","function_name":"xfs_align_sparse_ino.isra.0"},"6502":{"probe_name":"xfs","function_name":"xfs_alloc_ag_max_usable"},"6503":{"probe_name":"xfs","function_name":"xfs_alloc_ag_vextent_exact"},"6504":{"probe_name":"xfs","function_name":"xfs_alloc_ag_vextent_locality"},"6505":{"probe_name":"xfs","function_name":"xfs_alloc_ag_vextent_near"},"6506":{"probe_name":"xfs","function_name":"xfs_alloc_ag_vextent_size"},"6507":{"probe_name":"xfs","function_name":"xfs_alloc_ag_vextent_small"},"6508":{"probe_name":"xfs","function_name":"xfs_alloc_btrec_to_irec"},"6509":{"probe_name":"xfs","function_name":"xfs_alloc_buftarg"},"6510":{"probe_name":"xfs","function_name":"xfs_alloc_cancel_autoreap"},"6511":{"probe_name":"xfs","function_name":"xfs_alloc_check_irec"},"6512":{"probe_name":"xfs","function_name":"xfs_alloc_cntbt_iter"},"6513":{"probe_name":"xfs","function_name":"xfs_alloc_commit_autoreap"},"6514":{"probe_name":"xfs","function_name":"xfs_alloc_compute_aligned"},"6515":{"probe_name":"xfs","function_name":"xfs_alloc_compute_diff"},"6516":{"probe_name":"xfs","function_name":"xfs_alloc_compute_maxlevels"},"6517":{"probe_name":"xfs","function_name":"xfs_alloc_cur_check"},"6518":{"probe_name":"xfs","function_name":"xfs_alloc_cur_finish"},"6519":{"probe_name":"xfs","function_name":"xfs_alloc_file_space"},"6520":{"probe_name":"xfs","function_name":"xfs_alloc_fix_freelist"},"6521":{"probe_name":"xfs","function_name":"xfs_alloc_fix_len"},"6522":{"probe_name":"xfs","function_name":"xfs_alloc_fixup_trees"},"6523":{"probe_name":"xfs","function_name":"xfs_alloc_get_freelist"},"6524":{"probe_name":"xfs","function_name":"xfs_alloc_get_rec"},"6525":{"probe_name":"xfs","function_name":"xfs_alloc_has_records"},"6526":{"probe_name":"xfs","function_name":"xfs_alloc_log_agf"},"6527":{"probe_name":"xfs","function_name":"xfs_alloc_longest_free_extent"},"6528":{"probe_name":"xfs","function_name":"xfs_alloc_lookup_eq"},"6529":{"probe_name":"xfs","function_name":"xfs_alloc_lookup_ge"},"6530":{"probe_name":"xfs","function_name":"xfs_alloc_lookup_le"},"6531":{"probe_name":"xfs","function_name":"xfs_alloc_min_freelist"},"6532":{"probe_name":"xfs","function_name":"xfs_alloc_put_freelist"},"6533":{"probe_name":"xfs","function_name":"xfs_alloc_query_all"},"6534":{"probe_name":"xfs","function_name":"xfs_alloc_query_range"},"6535":{"probe_name":"xfs","function_name":"xfs_alloc_query_range_helper"},"6536":{"probe_name":"xfs","function_name":"xfs_alloc_read_agf"},"6537":{"probe_name":"xfs","function_name":"xfs_alloc_read_agfl"},"6538":{"probe_name":"xfs","function_name":"xfs_alloc_schedule_autoreap"},"6539":{"probe_name":"xfs","function_name":"xfs_alloc_set_aside"},"6540":{"probe_name":"xfs","function_name":"xfs_alloc_space_available"},"6541":{"probe_name":"xfs","function_name":"xfs_alloc_update"},"6542":{"probe_name":"xfs","function_name":"xfs_alloc_update_counters"},"6543":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_check_args"},"6544":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_exact_bno"},"6545":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_finish"},"6546":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_first_ag"},"6547":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_iterate_ags.constprop.0"},"6548":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_near_bno"},"6549":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_prepare_ag"},"6550":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_start_ag"},"6551":{"probe_name":"xfs","function_name":"xfs_alloc_vextent_this_ag"},"6552":{"probe_name":"xfs","function_name":"xfs_alloc_walk_iter"},"6553":{"probe_name":"xfs","function_name":"xfs_allocfree_block_count"},"6554":{"probe_name":"xfs","function_name":"xfs_attr_leaf_entsize"},"6555":{"probe_name":"xfs","function_name":"xfs_attr_leaf_try_add"},"6556":{"probe_name":"xfs","function_name":"xfs_attr_restore_rmt_blk"},"6557":{"probe_name":"xfs","function_name":"xfs_btroot_init"},"6558":{"probe_name":"xfs","function_name":"xfs_buf_alert_ratelimited"},"6559":{"probe_name":"xfs","function_name":"xfs_buf_alloc_pages"},"6560":{"probe_name":"xfs","function_name":"xfs_buf_cmp"},"6561":{"probe_name":"xfs","function_name":"xfs_buf_corruption_error"},"6562":{"probe_name":"xfs","function_name":"xfs_buf_delwri_cancel"},"6563":{"probe_name":"xfs","function_name":"xfs_buf_delwri_pushbuf"},"6564":{"probe_name":"xfs","function_name":"xfs_buf_delwri_queue"},"6565":{"probe_name":"xfs","function_name":"xfs_buf_delwri_queue_here"},"6566":{"probe_name":"xfs","function_name":"xfs_buf_delwri_submit"},"6567":{"probe_name":"xfs","function_name":"xfs_buf_delwri_submit_buffers"},"6568":{"probe_name":"xfs","function_name":"xfs_buf_delwri_submit_nowait"},"6569":{"probe_name":"xfs","function_name":"xfs_buf_dquot_io_fail"},"6570":{"probe_name":"xfs","function_name":"xfs_buf_dquot_iodone"},"6571":{"probe_name":"xfs","function_name":"xfs_buf_find_insert.constprop.0"},"6572":{"probe_name":"xfs","function_name":"xfs_buf_find_lock"},"6573":{"probe_name":"xfs","function_name":"xfs_buf_free"},"6574":{"probe_name":"xfs","function_name":"xfs_buf_free_callback"},"6575":{"probe_name":"xfs","function_name":"xfs_buf_free_pages"},"6576":{"probe_name":"xfs","function_name":"xfs_buf_get_map"},"6577":{"probe_name":"xfs","function_name":"xfs_buf_get_uncached"},"6578":{"probe_name":"xfs","function_name":"xfs_buf_hash_destroy"},"6579":{"probe_name":"xfs","function_name":"xfs_buf_hash_init"},"6580":{"probe_name":"xfs","function_name":"xfs_buf_hold"},"6581":{"probe_name":"xfs","function_name":"xfs_buf_inode_io_fail"},"6582":{"probe_name":"xfs","function_name":"xfs_buf_inode_iodone"},"6583":{"probe_name":"xfs","function_name":"xfs_buf_ioapply_map"},"6584":{"probe_name":"xfs","function_name":"xfs_buf_ioend"},"6585":{"probe_name":"xfs","function_name":"xfs_buf_ioend_fail"},"6586":{"probe_name":"xfs","function_name":"xfs_buf_ioend_handle_error"},"6587":{"probe_name":"xfs","function_name":"xfs_buf_ioend_work"},"6588":{"probe_name":"xfs","function_name":"xfs_buf_ioerror_alert"},"6589":{"probe_name":"xfs","function_name":"xfs_buf_iowait"},"6590":{"probe_name":"xfs","function_name":"xfs_buf_item_committed"},"6591":{"probe_name":"xfs","function_name":"xfs_buf_item_committing"},"6592":{"probe_name":"xfs","function_name":"xfs_buf_item_dirty_format"},"6593":{"probe_name":"xfs","function_name":"xfs_buf_item_done"},"6594":{"probe_name":"xfs","function_name":"xfs_buf_item_format"},"6595":{"probe_name":"xfs","function_name":"xfs_buf_item_format_segment"},"6596":{"probe_name":"xfs","function_name":"xfs_buf_item_free"},"6597":{"probe_name":"xfs","function_name":"xfs_buf_item_free_format"},"6598":{"probe_name":"xfs","function_name":"xfs_buf_item_get_format"},"6599":{"probe_name":"xfs","function_name":"xfs_buf_item_init"},"6600":{"probe_name":"xfs","function_name":"xfs_buf_item_log"},"6601":{"probe_name":"xfs","function_name":"xfs_buf_item_pin"},"6602":{"probe_name":"xfs","function_name":"xfs_buf_item_push"},"6603":{"probe_name":"xfs","function_name":"xfs_buf_item_put"},"6604":{"probe_name":"xfs","function_name":"xfs_buf_item_release"},"6605":{"probe_name":"xfs","function_name":"xfs_buf_item_relse"},"6606":{"probe_name":"xfs","function_name":"xfs_buf_item_size"},"6607":{"probe_name":"xfs","function_name":"xfs_buf_item_size_segment.isra.0"},"6608":{"probe_name":"xfs","function_name":"xfs_buf_item_unpin"},"6609":{"probe_name":"xfs","function_name":"xfs_buf_lock"},"6610":{"probe_name":"xfs","function_name":"xfs_buf_log_check_iovec"},"6611":{"probe_name":"xfs","function_name":"xfs_buf_log_overhead"},"6612":{"probe_name":"xfs","function_name":"xfs_buf_offset"},"6613":{"probe_name":"xfs","function_name":"xfs_buf_read_map"},"6614":{"probe_name":"xfs","function_name":"xfs_buf_read_uncached"},"6615":{"probe_name":"xfs","function_name":"xfs_buf_readahead_map"},"6616":{"probe_name":"xfs","function_name":"xfs_buf_rele"},"6617":{"probe_name":"xfs","function_name":"xfs_buf_reverify"},"6618":{"probe_name":"xfs","function_name":"xfs_buf_set_ref"},"6619":{"probe_name":"xfs","function_name":"xfs_buf_stale"},"6620":{"probe_name":"xfs","function_name":"xfs_buf_trylock"},"6621":{"probe_name":"xfs","function_name":"xfs_buf_unlock"},"6622":{"probe_name":"xfs","function_name":"xfs_buf_verifier_error"},"6623":{"probe_name":"xfs","function_name":"xfs_buf_wait_unpin"},"6624":{"probe_name":"xfs","function_name":"xfs_buf_zero"},"6625":{"probe_name":"xfs","function_name":"xfs_buffered_write_delalloc_punch"},"6626":{"probe_name":"xfs","function_name":"xfs_buffered_write_iomap_begin"},"6627":{"probe_name":"xfs","function_name":"xfs_buffered_write_iomap_end"},"6628":{"probe_name":"xfs","function_name":"xfs_buftarg_drain_rele"},"6629":{"probe_name":"xfs","function_name":"xfs_buftarg_isolate"},"6630":{"probe_name":"xfs","function_name":"xfs_buftarg_shrink_count"},"6631":{"probe_name":"xfs","function_name":"xfs_buftarg_shrink_scan"},"6632":{"probe_name":"xfs","function_name":"xfs_bunmapi"},"6633":{"probe_name":"xfs","function_name":"xfs_bunmapi_range"},"6634":{"probe_name":"xfs","function_name":"xfs_bwrite"},"6635":{"probe_name":"xfs","function_name":"xfs_cntbt_diff_two_keys"},"6636":{"probe_name":"xfs","function_name":"xfs_cntbt_init_high_key_from_rec"},"6637":{"probe_name":"xfs","function_name":"xfs_cntbt_key_diff"},"6638":{"probe_name":"xfs","function_name":"xfs_cntbt_keys_inorder"},"6639":{"probe_name":"xfs","function_name":"xfs_cntbt_recs_inorder"},"6640":{"probe_name":"xfs","function_name":"xfs_cntroot_init"},"6641":{"probe_name":"xfs","function_name":"xfs_da3_blk_link"},"6642":{"probe_name":"xfs","function_name":"xfs_da3_blk_unlink.isra.0"},"6643":{"probe_name":"xfs","function_name":"xfs_da3_blkinfo_verify"},"6644":{"probe_name":"xfs","function_name":"xfs_da3_fixhashpath"},"6645":{"probe_name":"xfs","function_name":"xfs_da3_join"},"6646":{"probe_name":"xfs","function_name":"xfs_da3_node_add"},"6647":{"probe_name":"xfs","function_name":"xfs_da3_node_create"},"6648":{"probe_name":"xfs","function_name":"xfs_da3_node_hdr_from_disk"},"6649":{"probe_name":"xfs","function_name":"xfs_da3_node_hdr_to_disk"},"6650":{"probe_name":"xfs","function_name":"xfs_da3_node_lasthash.isra.0"},"6651":{"probe_name":"xfs","function_name":"xfs_da3_node_lookup_int"},"6652":{"probe_name":"xfs","function_name":"xfs_da3_node_order.isra.0"},"6653":{"probe_name":"xfs","function_name":"xfs_da3_node_read"},"6654":{"probe_name":"xfs","function_name":"xfs_da3_node_read_mapped"},"6655":{"probe_name":"xfs","function_name":"xfs_da3_node_read_verify"},"6656":{"probe_name":"xfs","function_name":"xfs_da3_node_rebalance.constprop.0"},"6657":{"probe_name":"xfs","function_name":"xfs_da3_node_remove"},"6658":{"probe_name":"xfs","function_name":"xfs_da3_node_set_type"},"6659":{"probe_name":"xfs","function_name":"xfs_da3_node_split"},"6660":{"probe_name":"xfs","function_name":"xfs_da3_node_toosmall"},"6661":{"probe_name":"xfs","function_name":"xfs_da3_node_unbalance"},"6662":{"probe_name":"xfs","function_name":"xfs_da3_node_verify"},"6663":{"probe_name":"xfs","function_name":"xfs_da3_node_verify_struct"},"6664":{"probe_name":"xfs","function_name":"xfs_da3_node_write_verify"},"6665":{"probe_name":"xfs","function_name":"xfs_da3_path_shift"},"6666":{"probe_name":"xfs","function_name":"xfs_da3_root_join"},"6667":{"probe_name":"xfs","function_name":"xfs_da3_root_split"},"6668":{"probe_name":"xfs","function_name":"xfs_da3_split"},"6669":{"probe_name":"xfs","function_name":"xfs_da3_swap_lastblock"},"6670":{"probe_name":"xfs","function_name":"xfs_da_buf_copy"},"6671":{"probe_name":"xfs","function_name":"xfs_da_compname"},"6672":{"probe_name":"xfs","function_name":"xfs_da_get_buf"},"6673":{"probe_name":"xfs","function_name":"xfs_da_grow_inode"},"6674":{"probe_name":"xfs","function_name":"xfs_da_grow_inode_int"},"6675":{"probe_name":"xfs","function_name":"xfs_da_hashname"},"6676":{"probe_name":"xfs","function_name":"xfs_da_mount"},"6677":{"probe_name":"xfs","function_name":"xfs_da_read_buf"},"6678":{"probe_name":"xfs","function_name":"xfs_da_reada_buf"},"6679":{"probe_name":"xfs","function_name":"xfs_da_shrink_inode"},"6680":{"probe_name":"xfs","function_name":"xfs_da_state_alloc"},"6681":{"probe_name":"xfs","function_name":"xfs_da_state_free"},"6682":{"probe_name":"xfs","function_name":"xfs_da_state_kill_altpath"},"6683":{"probe_name":"xfs","function_name":"xfs_da_state_reset"},"6684":{"probe_name":"xfs","function_name":"xfs_da_unmount"},"6685":{"probe_name":"xfs","function_name":"xfs_dabuf_map.constprop.0"},"6686":{"probe_name":"xfs","function_name":"xfs_dax_write_iomap_end"},"6687":{"probe_name":"xfs","function_name":"xfs_dax_writepages"},"6688":{"probe_name":"xfs","function_name":"xfs_dio_write_end_io"},"6689":{"probe_name":"xfs","function_name":"xfs_direct_write_iomap_begin"},"6690":{"probe_name":"xfs","function_name":"xfs_discard_endio"},"6691":{"probe_name":"xfs","function_name":"xfs_discard_endio_work"},"6692":{"probe_name":"xfs","function_name":"xfs_discard_extents"},"6693":{"probe_name":"xfs","function_name":"xfs_discard_folio"},"6694":{"probe_name":"xfs","function_name":"xfs_do_force_shutdown"},"6695":{"probe_name":"xfs","function_name":"xfs_dquot_buf_read_verify"},"6696":{"probe_name":"xfs","function_name":"xfs_dquot_buf_readahead_verify"},"6697":{"probe_name":"xfs","function_name":"xfs_dquot_buf_verify"},"6698":{"probe_name":"xfs","function_name":"xfs_dquot_buf_verify_crc.isra.0"},"6699":{"probe_name":"xfs","function_name":"xfs_dquot_buf_verify_struct"},"6700":{"probe_name":"xfs","function_name":"xfs_dquot_buf_write_verify"},"6701":{"probe_name":"xfs","function_name":"xfs_end_ioend"},"6702":{"probe_name":"xfs","function_name":"xfs_extent_busy_ag_cmp"},"6703":{"probe_name":"xfs","function_name":"xfs_extent_busy_clear"},"6704":{"probe_name":"xfs","function_name":"xfs_extent_busy_clear_one"},"6705":{"probe_name":"xfs","function_name":"xfs_extent_busy_flush"},"6706":{"probe_name":"xfs","function_name":"xfs_extent_busy_insert"},"6707":{"probe_name":"xfs","function_name":"xfs_extent_busy_insert_discard"},"6708":{"probe_name":"xfs","function_name":"xfs_extent_busy_insert_list"},"6709":{"probe_name":"xfs","function_name":"xfs_extent_busy_list_empty"},"6710":{"probe_name":"xfs","function_name":"xfs_extent_busy_reuse"},"6711":{"probe_name":"xfs","function_name":"xfs_extent_busy_search"},"6712":{"probe_name":"xfs","function_name":"xfs_extent_busy_trim"},"6713":{"probe_name":"xfs","function_name":"xfs_extent_busy_update_extent"},"6714":{"probe_name":"xfs","function_name":"xfs_extent_busy_wait_all"},"6715":{"probe_name":"xfs","function_name":"xfs_extent_free_abort_intent"},"6716":{"probe_name":"xfs","function_name":"xfs_extent_free_cancel_item"},"6717":{"probe_name":"xfs","function_name":"xfs_extent_free_create_done"},"6718":{"probe_name":"xfs","function_name":"xfs_extent_free_create_intent"},"6719":{"probe_name":"xfs","function_name":"xfs_extent_free_diff_items"},"6720":{"probe_name":"xfs","function_name":"xfs_extent_free_finish_item"},"6721":{"probe_name":"xfs","function_name":"xfs_extent_free_get_group"},"6722":{"probe_name":"xfs","function_name":"xfs_extent_free_log_item.constprop.0"},"6723":{"probe_name":"xfs","function_name":"xfs_extent_free_recover_work"},"6724":{"probe_name":"xfs","function_name":"xfs_extent_free_relog_intent"},"6725":{"probe_name":"xfs","function_name":"xfs_extfree_intent_destroy_cache"},"6726":{"probe_name":"xfs","function_name":"xfs_file_buffered_read"},"6727":{"probe_name":"xfs","function_name":"xfs_file_buffered_write"},"6728":{"probe_name":"xfs","function_name":"xfs_file_dax_read"},"6729":{"probe_name":"xfs","function_name":"xfs_file_dax_write"},"6730":{"probe_name":"xfs","function_name":"xfs_file_dio_read"},"6731":{"probe_name":"xfs","function_name":"xfs_file_dio_write_aligned"},"6732":{"probe_name":"xfs","function_name":"xfs_file_dio_write_unaligned"},"6733":{"probe_name":"xfs","function_name":"xfs_file_fadvise"},"6734":{"probe_name":"xfs","function_name":"xfs_file_fallocate"},"6735":{"probe_name":"xfs","function_name":"xfs_file_fsync"},"6736":{"probe_name":"xfs","function_name":"xfs_file_llseek"},"6737":{"probe_name":"xfs","function_name":"xfs_file_mmap"},"6738":{"probe_name":"xfs","function_name":"xfs_file_open"},"6739":{"probe_name":"xfs","function_name":"xfs_file_read_iter"},"6740":{"probe_name":"xfs","function_name":"xfs_file_readdir"},"6741":{"probe_name":"xfs","function_name":"xfs_file_release"},"6742":{"probe_name":"xfs","function_name":"xfs_file_remap_range"},"6743":{"probe_name":"xfs","function_name":"xfs_file_write_checks"},"6744":{"probe_name":"xfs","function_name":"xfs_file_write_iter"},"6745":{"probe_name":"xfs","function_name":"xfs_filemap_fault"},"6746":{"probe_name":"xfs","function_name":"xfs_filemap_huge_fault"},"6747":{"probe_name":"xfs","function_name":"xfs_filemap_page_mkwrite"},"6748":{"probe_name":"xfs","function_name":"xfs_filemap_pfn_mkwrite"},"6749":{"probe_name":"xfs","function_name":"xfs_finobt_init_ptr_from_cur"},"6750":{"probe_name":"xfs","function_name":"xfs_free_ag_extent"},"6751":{"probe_name":"xfs","function_name":"xfs_freesp_init_recs.isra.0"},"6752":{"probe_name":"xfs","function_name":"xfs_fs_alloc_inode"},"6753":{"probe_name":"xfs","function_name":"xfs_fs_commit_blocks"},"6754":{"probe_name":"xfs","function_name":"xfs_fs_destroy_inode"},"6755":{"probe_name":"xfs","function_name":"xfs_fs_dirty_inode"},"6756":{"probe_name":"xfs","function_name":"xfs_fs_drop_inode"},"6757":{"probe_name":"xfs","function_name":"xfs_fs_encode_fh"},"6758":{"probe_name":"xfs","function_name":"xfs_fs_fh_to_dentry"},"6759":{"probe_name":"xfs","function_name":"xfs_fs_fh_to_parent"},"6760":{"probe_name":"xfs","function_name":"xfs_fs_fill_super"},"6761":{"probe_name":"xfs","function_name":"xfs_fs_free"},"6762":{"probe_name":"xfs","function_name":"xfs_fs_free_cached_objects"},"6763":{"probe_name":"xfs","function_name":"xfs_fs_freeze"},"6764":{"probe_name":"xfs","function_name":"xfs_fs_geometry"},"6765":{"probe_name":"xfs","function_name":"xfs_fs_get_dqblk"},"6766":{"probe_name":"xfs","function_name":"xfs_fs_get_nextdqblk"},"6767":{"probe_name":"xfs","function_name":"xfs_fs_get_parent"},"6768":{"probe_name":"xfs","function_name":"xfs_fs_get_quota_state"},"6769":{"probe_name":"xfs","function_name":"xfs_fs_get_tree"},"6770":{"probe_name":"xfs","function_name":"xfs_fs_get_uuid"},"6771":{"probe_name":"xfs","function_name":"xfs_fs_goingdown"},"6772":{"probe_name":"xfs","function_name":"xfs_fs_inode_init_once"},"6773":{"probe_name":"xfs","function_name":"xfs_fs_map_blocks"},"6774":{"probe_name":"xfs","function_name":"xfs_fs_mark_healthy"},"6775":{"probe_name":"xfs","function_name":"xfs_fs_mark_sick"},"6776":{"probe_name":"xfs","function_name":"xfs_fs_measure_sickness"},"6777":{"probe_name":"xfs","function_name":"xfs_fs_nfs_commit_metadata"},"6778":{"probe_name":"xfs","function_name":"xfs_fs_nr_cached_objects"},"6779":{"probe_name":"xfs","function_name":"xfs_fs_parse_param"},"6780":{"probe_name":"xfs","function_name":"xfs_fs_put_super"},"6781":{"probe_name":"xfs","function_name":"xfs_fs_reconfigure"},"6782":{"probe_name":"xfs","function_name":"xfs_fs_reserve_ag_blocks"},"6783":{"probe_name":"xfs","function_name":"xfs_fs_rm_xquota"},"6784":{"probe_name":"xfs","function_name":"xfs_fs_set_dqblk"},"6785":{"probe_name":"xfs","function_name":"xfs_fs_set_info"},"6786":{"probe_name":"xfs","function_name":"xfs_fs_show_options"},"6787":{"probe_name":"xfs","function_name":"xfs_fs_shutdown"},"6788":{"probe_name":"xfs","function_name":"xfs_fs_statfs"},"6789":{"probe_name":"xfs","function_name":"xfs_fs_sync_fs"},"6790":{"probe_name":"xfs","function_name":"xfs_fs_unfreeze"},"6791":{"probe_name":"xfs","function_name":"xfs_fs_unreserve_ag_blocks"},"6792":{"probe_name":"xfs","function_name":"xfs_fs_validate_params"},"6793":{"probe_name":"xfs","function_name":"xfs_fs_writable"},"6794":{"probe_name":"xfs","function_name":"xfs_ialloc_ag_alloc"},"6795":{"probe_name":"xfs","function_name":"xfs_ialloc_count_inodes_rec"},"6796":{"probe_name":"xfs","function_name":"xfs_ialloc_count_ondisk"},"6797":{"probe_name":"xfs","function_name":"xfs_ialloc_get_rec"},"6798":{"probe_name":"xfs","function_name":"xfs_ialloc_next_rec"},"6799":{"probe_name":"xfs","function_name":"xfs_iflush"},"6800":{"probe_name":"xfs","function_name":"xfs_iflush_abort"},"6801":{"probe_name":"xfs","function_name":"xfs_iflush_cluster"},"6802":{"probe_name":"xfs","function_name":"xfs_iflush_fork"},"6803":{"probe_name":"xfs","function_name":"xfs_iflush_shutdown_abort"},"6804":{"probe_name":"xfs","function_name":"xfs_ifork_init_attr"},"6805":{"probe_name":"xfs","function_name":"xfs_ifork_init_cow"},"6806":{"probe_name":"xfs","function_name":"xfs_ifork_verify_local_attr"},"6807":{"probe_name":"xfs","function_name":"xfs_ifork_verify_local_data"},"6808":{"probe_name":"xfs","function_name":"xfs_ifork_zap_attr"},"6809":{"probe_name":"xfs","function_name":"xfs_ifork_zapped"},"6810":{"probe_name":"xfs","function_name":"xfs_ilock_for_iomap"},"6811":{"probe_name":"xfs","function_name":"xfs_ilock_iocb_for_write"},"6812":{"probe_name":"xfs","function_name":"xfs_inode_alloc"},"6813":{"probe_name":"xfs","function_name":"xfs_inode_buf_read_verify"},"6814":{"probe_name":"xfs","function_name":"xfs_inode_buf_readahead_verify"},"6815":{"probe_name":"xfs","function_name":"xfs_inode_buf_verify"},"6816":{"probe_name":"xfs","function_name":"xfs_inode_buf_write_verify"},"6817":{"probe_name":"xfs","function_name":"xfs_inode_clear_cowblocks_tag"},"6818":{"probe_name":"xfs","function_name":"xfs_inode_clear_eofblocks_tag"},"6819":{"probe_name":"xfs","function_name":"xfs_inode_free"},"6820":{"probe_name":"xfs","function_name":"xfs_inode_free_callback"},"6821":{"probe_name":"xfs","function_name":"xfs_inode_free_cowblocks"},"6822":{"probe_name":"xfs","function_name":"xfs_inode_free_eofblocks.constprop.0"},"6823":{"probe_name":"xfs","function_name":"xfs_inode_from_disk"},"6824":{"probe_name":"xfs","function_name":"xfs_inode_from_disk_ts"},"6825":{"probe_name":"xfs","function_name":"xfs_inode_hasattr"},"6826":{"probe_name":"xfs","function_name":"xfs_inode_inherit_flags"},"6827":{"probe_name":"xfs","function_name":"xfs_inode_init_security"},"6828":{"probe_name":"xfs","function_name":"xfs_inode_item_attr_fork_size"},"6829":{"probe_name":"xfs","function_name":"xfs_inode_item_committed"},"6830":{"probe_name":"xfs","function_name":"xfs_inode_item_committing"},"6831":{"probe_name":"xfs","function_name":"xfs_inode_item_data_fork_size"},"6832":{"probe_name":"xfs","function_name":"xfs_inode_item_destroy"},"6833":{"probe_name":"xfs","function_name":"xfs_inode_item_format"},"6834":{"probe_name":"xfs","function_name":"xfs_inode_item_format_attr_fork"},"6835":{"probe_name":"xfs","function_name":"xfs_inode_item_format_convert"},"6836":{"probe_name":"xfs","function_name":"xfs_inode_item_format_data_fork"},"6837":{"probe_name":"xfs","function_name":"xfs_inode_item_init"},"6838":{"probe_name":"xfs","function_name":"xfs_inode_item_pin"},"6839":{"probe_name":"xfs","function_name":"xfs_inode_item_precommit"},"6840":{"probe_name":"xfs","function_name":"xfs_inode_item_push"},"6841":{"probe_name":"xfs","function_name":"xfs_inode_item_release"},"6842":{"probe_name":"xfs","function_name":"xfs_inode_item_size"},"6843":{"probe_name":"xfs","function_name":"xfs_inode_item_sort"},"6844":{"probe_name":"xfs","function_name":"xfs_inode_item_unpin"},"6845":{"probe_name":"xfs","function_name":"xfs_inode_mark_healthy"},"6846":{"probe_name":"xfs","function_name":"xfs_inode_mark_reclaimable"},"6847":{"probe_name":"xfs","function_name":"xfs_inode_mark_sick"},"6848":{"probe_name":"xfs","function_name":"xfs_inode_measure_sickness"},"6849":{"probe_name":"xfs","function_name":"xfs_inode_near_dquot_enforcement"},"6850":{"probe_name":"xfs","function_name":"xfs_inode_needs_inactive"},"6851":{"probe_name":"xfs","function_name":"xfs_inode_reload_unlinked"},"6852":{"probe_name":"xfs","function_name":"xfs_inode_reload_unlinked_bucket"},"6853":{"probe_name":"xfs","function_name":"xfs_inode_set_cowblocks_tag"},"6854":{"probe_name":"xfs","function_name":"xfs_inode_set_eofblocks_tag"},"6855":{"probe_name":"xfs","function_name":"xfs_inode_to_disk"},"6856":{"probe_name":"xfs","function_name":"xfs_inode_to_log_dinode"},"6857":{"probe_name":"xfs","function_name":"xfs_inode_validate_cowextsize"},"6858":{"probe_name":"xfs","function_name":"xfs_inode_validate_extsize"},"6859":{"probe_name":"xfs","function_name":"xfs_inode_verifier_error"},"6860":{"probe_name":"xfs","function_name":"xfs_iomap_eof_align_last_fsb"},"6861":{"probe_name":"xfs","function_name":"xfs_iomap_inode_sequence"},"6862":{"probe_name":"xfs","function_name":"xfs_iomap_prealloc_size.constprop.0.isra.0"},"6863":{"probe_name":"xfs","function_name":"xfs_iomap_swapfile_activate"},"6864":{"probe_name":"xfs","function_name":"xfs_iomap_valid"},"6865":{"probe_name":"xfs","function_name":"xfs_iomap_write_direct"},"6866":{"probe_name":"xfs","function_name":"xfs_iomap_write_unwritten"},"6867":{"probe_name":"xfs","function_name":"xfs_iread_bmbt_block"},"6868":{"probe_name":"xfs","function_name":"xfs_lookup_get_search_key"},"6869":{"probe_name":"xfs","function_name":"xfs_map_blocks"},"6870":{"probe_name":"xfs","function_name":"xfs_mru_cache_create"},"6871":{"probe_name":"xfs","function_name":"xfs_mru_cache_delete"},"6872":{"probe_name":"xfs","function_name":"xfs_mru_cache_destroy"},"6873":{"probe_name":"xfs","function_name":"xfs_mru_cache_done"},"6874":{"probe_name":"xfs","function_name":"xfs_mru_cache_init"},"6875":{"probe_name":"xfs","function_name":"xfs_mru_cache_insert"},"6876":{"probe_name":"xfs","function_name":"xfs_mru_cache_lookup"},"6877":{"probe_name":"xfs","function_name":"xfs_mru_cache_remove"},"6878":{"probe_name":"xfs","function_name":"xfs_mru_cache_uninit"},"6879":{"probe_name":"xfs","function_name":"xfs_nfs_get_inode.isra.0"},"6880":{"probe_name":"xfs","function_name":"xfs_prepare_ioend"},"6881":{"probe_name":"xfs","function_name":"xfs_read_agf"},"6882":{"probe_name":"xfs","function_name":"xfs_read_agi"},"6883":{"probe_name":"xfs","function_name":"xfs_read_iomap_begin"},"6884":{"probe_name":"xfs","function_name":"xfs_readdir"},"6885":{"probe_name":"xfs","function_name":"xfs_readlink"},"6886":{"probe_name":"xfs","function_name":"xfs_readlink_bmap_ilocked"},"6887":{"probe_name":"xfs","function_name":"xfs_readlink_by_handle"},"6888":{"probe_name":"xfs","function_name":"xfs_release"},"6889":{"probe_name":"xfs","function_name":"xfs_remove"},"6890":{"probe_name":"xfs","function_name":"xfs_rename"},"6891":{"probe_name":"xfs","function_name":"xfs_reserve_blocks"},"6892":{"probe_name":"xfs","function_name":"xfs_restore_resvblks"},"6893":{"probe_name":"xfs","function_name":"xfs_vm_bmap"},"6894":{"probe_name":"xfs","function_name":"xfs_vm_read_folio"},"6895":{"probe_name":"xfs","function_name":"xfs_vm_readahead"},"6896":{"probe_name":"xfs","function_name":"xfs_vm_writepages"},"6897":{"probe_name":"xfs","function_name":"xfs_xattr_iomap_begin"},"6898":{"probe_name":"ext4","function_name":"ext4_alloc_branch"},"6899":{"probe_name":"ext4","function_name":"ext4_alloc_da_blocks"},"6900":{"probe_name":"ext4","function_name":"ext4_alloc_file_blocks.isra.0"},"6901":{"probe_name":"ext4","function_name":"ext4_alloc_flex_bg_array"},"6902":{"probe_name":"ext4","function_name":"ext4_alloc_group_tables"},"6903":{"probe_name":"ext4","function_name":"ext4_alloc_inode"},"6904":{"probe_name":"ext4","function_name":"ext4_alloc_io_end_vec"},"6905":{"probe_name":"ext4","function_name":"ext4_append"},"6906":{"probe_name":"ext4","function_name":"ext4_block_bitmap"},"6907":{"probe_name":"ext4","function_name":"ext4_block_bitmap_csum_set"},"6908":{"probe_name":"ext4","function_name":"ext4_block_bitmap_csum_verify"},"6909":{"probe_name":"ext4","function_name":"ext4_block_bitmap_set"},"6910":{"probe_name":"ext4","function_name":"ext4_block_to_path"},"6911":{"probe_name":"ext4","function_name":"ext4_block_write_begin"},"6912":{"probe_name":"ext4","function_name":"ext4_block_zero_page_range"},"6913":{"probe_name":"ext4","function_name":"ext4_bmap"},"6914":{"probe_name":"ext4","function_name":"ext4_bread"},"6915":{"probe_name":"ext4","function_name":"ext4_bread_batch"},"6916":{"probe_name":"ext4","function_name":"ext4_da_convert_inline_data_to_extent"},"6917":{"probe_name":"ext4","function_name":"ext4_da_get_block_prep"},"6918":{"probe_name":"ext4","function_name":"ext4_da_map_blocks.constprop.0"},"6919":{"probe_name":"ext4","function_name":"ext4_da_release_space"},"6920":{"probe_name":"ext4","function_name":"ext4_da_reserve_space"},"6921":{"probe_name":"ext4","function_name":"ext4_da_update_reserve_space"},"6922":{"probe_name":"ext4","function_name":"ext4_da_write_begin"},"6923":{"probe_name":"ext4","function_name":"ext4_da_write_end"},"6924":{"probe_name":"ext4","function_name":"ext4_da_write_inline_data_begin"},"6925":{"probe_name":"ext4","function_name":"ext4_dio_alignment"},"6926":{"probe_name":"ext4","function_name":"ext4_dio_write_checks"},"6927":{"probe_name":"ext4","function_name":"ext4_dio_write_end_io"},"6928":{"probe_name":"ext4","function_name":"ext4_dio_write_iter"},"6929":{"probe_name":"ext4","function_name":"ext4_dirty_folio"},"6930":{"probe_name":"ext4","function_name":"ext4_dirty_inode"},"6931":{"probe_name":"ext4","function_name":"ext4_end_buffer_io_sync"},"6932":{"probe_name":"ext4","function_name":"ext4_end_io_rsv_work"},"6933":{"probe_name":"ext4","function_name":"ext4_exit_es"},"6934":{"probe_name":"ext4","function_name":"ext4_exit_mballoc"},"6935":{"probe_name":"ext4","function_name":"ext4_exit_pageio"},"6936":{"probe_name":"ext4","function_name":"ext4_exit_pending"},"6937":{"probe_name":"ext4","function_name":"ext4_exit_post_read_processing"},"6938":{"probe_name":"ext4","function_name":"ext4_exit_sysfs"},"6939":{"probe_name":"ext4","function_name":"ext4_exit_system_zone"},"6940":{"probe_name":"ext4","function_name":"ext4_ext_calc_credits_for_single_extent"},"6941":{"probe_name":"ext4","function_name":"ext4_ext_check_inode"},"6942":{"probe_name":"ext4","function_name":"ext4_ext_clear_bb"},"6943":{"probe_name":"ext4","function_name":"ext4_ext_convert_to_initialized"},"6944":{"probe_name":"ext4","function_name":"ext4_ext_correct_indexes"},"6945":{"probe_name":"ext4","function_name":"ext4_ext_find_goal"},"6946":{"probe_name":"ext4","function_name":"ext4_ext_get_access"},"6947":{"probe_name":"ext4","function_name":"ext4_ext_grow_indepth"},"6948":{"probe_name":"ext4","function_name":"ext4_ext_handle_unwritten_extents"},"6949":{"probe_name":"ext4","function_name":"ext4_ext_index_trans_blocks"},"6950":{"probe_name":"ext4","function_name":"ext4_ext_init"},"6951":{"probe_name":"ext4","function_name":"ext4_ext_insert_extent"},"6952":{"probe_name":"ext4","function_name":"ext4_ext_insert_index"},"6953":{"probe_name":"ext4","function_name":"ext4_ext_map_blocks"},"6954":{"probe_name":"ext4","function_name":"ext4_ext_migrate"},"6955":{"probe_name":"ext4","function_name":"ext4_ext_next_allocated_block"},"6956":{"probe_name":"ext4","function_name":"ext4_ext_precache"},"6957":{"probe_name":"ext4","function_name":"ext4_ext_precache.part.0"},"6958":{"probe_name":"ext4","function_name":"ext4_ext_release"},"6959":{"probe_name":"ext4","function_name":"ext4_ext_remove_space"},"6960":{"probe_name":"ext4","function_name":"ext4_ext_replay_set_iblocks"},"6961":{"probe_name":"ext4","function_name":"ext4_ext_replay_shrink_inode"},"6962":{"probe_name":"ext4","function_name":"ext4_ext_replay_update_ex"},"6963":{"probe_name":"ext4","function_name":"ext4_ext_rm_idx"},"6964":{"probe_name":"ext4","function_name":"ext4_ext_rm_leaf"},"6965":{"probe_name":"ext4","function_name":"ext4_ext_search_left"},"6966":{"probe_name":"ext4","function_name":"ext4_ext_search_right"},"6967":{"probe_name":"ext4","function_name":"ext4_ext_shift_extents"},"6968":{"probe_name":"ext4","function_name":"ext4_ext_shift_path_extents"},"6969":{"probe_name":"ext4","function_name":"ext4_ext_split"},"6970":{"probe_name":"ext4","function_name":"ext4_ext_swap_inode_data"},"6971":{"probe_name":"ext4","function_name":"ext4_ext_tree_init"},"6972":{"probe_name":"ext4","function_name":"ext4_ext_truncate"},"6973":{"probe_name":"ext4","function_name":"ext4_ext_try_to_merge"},"6974":{"probe_name":"ext4","function_name":"ext4_ext_try_to_merge_right"},"6975":{"probe_name":"ext4","function_name":"ext4_ext_try_to_merge_up"},"6976":{"probe_name":"ext4","function_name":"ext4_extent_block_csum_set"},"6977":{"probe_name":"ext4","function_name":"ext4_fallocate"},"6978":{"probe_name":"ext4","function_name":"ext4_fh_to_dentry"},"6979":{"probe_name":"ext4","function_name":"ext4_fh_to_parent"},"6980":{"probe_name":"ext4","function_name":"ext4_fiemap"},"6981":{"probe_name":"ext4","function_name":"ext4_file_getattr"},"6982":{"probe_name":"ext4","function_name":"ext4_file_mmap"},"6983":{"probe_name":"ext4","function_name":"ext4_file_open"},"6984":{"probe_name":"ext4","function_name":"ext4_file_read_iter"},"6985":{"probe_name":"ext4","function_name":"ext4_file_write_iter"},"6986":{"probe_name":"ext4","function_name":"ext4_fileattr_get"},"6987":{"probe_name":"ext4","function_name":"ext4_fileattr_set"},"6988":{"probe_name":"ext4","function_name":"ext4_find_dest_de"},"6989":{"probe_name":"ext4","function_name":"ext4_find_entry"},"6990":{"probe_name":"ext4","function_name":"ext4_find_extent"},"6991":{"probe_name":"ext4","function_name":"ext4_find_inline_data_nolock"},"6992":{"probe_name":"ext4","function_name":"ext4_find_inline_entry"},"6993":{"probe_name":"ext4","function_name":"ext4_find_shared"},"6994":{"probe_name":"ext4","function_name":"ext4_finish_convert_inline_dir"},"6995":{"probe_name":"ext4","function_name":"ext4_free_blocks"},"6996":{"probe_name":"ext4","function_name":"ext4_free_blocks_simple.isra.0"},"6997":{"probe_name":"ext4","function_name":"ext4_free_branches"},"6998":{"probe_name":"ext4","function_name":"ext4_free_clusters_after_init"},"6999":{"probe_name":"ext4","function_name":"ext4_free_data"},"7000":{"probe_name":"ext4","function_name":"ext4_free_ext_path"},"7001":{"probe_name":"ext4","function_name":"ext4_free_group_clusters"},"7002":{"probe_name":"ext4","function_name":"ext4_free_group_clusters_set"},"7003":{"probe_name":"ext4","function_name":"ext4_free_in_core_inode"},"7004":{"probe_name":"ext4","function_name":"ext4_free_inode"},"7005":{"probe_name":"ext4","function_name":"ext4_free_inodes_count"},"7006":{"probe_name":"ext4","function_name":"ext4_free_inodes_set"},"7007":{"probe_name":"ext4","function_name":"ext4_free_link"},"7008":{"probe_name":"ext4","function_name":"ext4_io_submit"},"7009":{"probe_name":"ext4","function_name":"ext4_io_submit_init"},"7010":{"probe_name":"ext4","function_name":"ext4_iomap_begin"},"7011":{"probe_name":"ext4","function_name":"ext4_iomap_begin_report"},"7012":{"probe_name":"ext4","function_name":"ext4_iomap_end"},"7013":{"probe_name":"ext4","function_name":"ext4_iomap_overwrite_begin"},"7014":{"probe_name":"ext4","function_name":"ext4_iomap_swap_activate"},"7015":{"probe_name":"ext4","function_name":"ext4_iomap_xattr_begin"},"7016":{"probe_name":"ext4","function_name":"ext4_journal_abort_handle.constprop.0"},"7017":{"probe_name":"ext4","function_name":"ext4_journal_bmap"},"7018":{"probe_name":"ext4","function_name":"ext4_journal_check_start"},"7019":{"probe_name":"ext4","function_name":"ext4_journal_commit_callback"},"7020":{"probe_name":"ext4","function_name":"ext4_journal_finish_inode_data_buffers"},"7021":{"probe_name":"ext4","function_name":"ext4_journal_submit_inode_data_buffers"},"7022":{"probe_name":"ext4","function_name":"ext4_journalled_dirty_folio"},"7023":{"probe_name":"ext4","function_name":"ext4_journalled_invalidate_folio"},"7024":{"probe_name":"ext4","function_name":"ext4_journalled_submit_inode_data_buffers"},"7025":{"probe_name":"ext4","function_name":"ext4_journalled_write_end"},"7026":{"probe_name":"ext4","function_name":"ext4_journalled_write_inline_data"},"7027":{"probe_name":"ext4","function_name":"ext4_journalled_writepage_callback"},"7028":{"probe_name":"ext4","function_name":"ext4_journalled_zero_new_buffers"},"7029":{"probe_name":"ext4","function_name":"ext4_mark_bitmap_end"},"7030":{"probe_name":"ext4","function_name":"ext4_mark_bitmap_end.part.0"},"7031":{"probe_name":"ext4","function_name":"ext4_mark_dquot_dirty"},"7032":{"probe_name":"ext4","function_name":"ext4_mark_group_bitmap_corrupted"},"7033":{"probe_name":"ext4","function_name":"ext4_mark_iloc_dirty"},"7034":{"probe_name":"ext4","function_name":"ext4_mark_inode_used"},"7035":{"probe_name":"ext4","function_name":"ext4_mark_recovery_complete.constprop.0"},"7036":{"probe_name":"ext4","function_name":"ext4_mballoc_query_range"},"7037":{"probe_name":"ext4","function_name":"ext4_meta_trans_blocks"},"7038":{"probe_name":"ext4","function_name":"ext4_mkdir"},"7039":{"probe_name":"ext4","function_name":"ext4_mknod"},"7040":{"probe_name":"ext4","function_name":"ext4_move_extents"},"7041":{"probe_name":"ext4","function_name":"ext4_read_bh"},"7042":{"probe_name":"ext4","function_name":"ext4_read_bh_lock"},"7043":{"probe_name":"ext4","function_name":"ext4_read_bh_nowait"},"7044":{"probe_name":"ext4","function_name":"ext4_read_block_bitmap"},"7045":{"probe_name":"ext4","function_name":"ext4_read_block_bitmap_nowait"},"7046":{"probe_name":"ext4","function_name":"ext4_read_folio"},"7047":{"probe_name":"ext4","function_name":"ext4_read_inline_data.part.0.isra.0"},"7048":{"probe_name":"ext4","function_name":"ext4_read_inline_dir"},"7049":{"probe_name":"ext4","function_name":"ext4_read_inline_link"},"7050":{"probe_name":"ext4","function_name":"ext4_read_inline_page"},"7051":{"probe_name":"ext4","function_name":"ext4_read_inode_bitmap"},"7052":{"probe_name":"ext4","function_name":"ext4_read_merkle_tree_page"},"7053":{"probe_name":"ext4","function_name":"ext4_readahead"},"7054":{"probe_name":"ext4","function_name":"ext4_readdir"},"7055":{"probe_name":"ext4","function_name":"ext4_readpage_inline"},"7056":{"probe_name":"ext4","function_name":"ext4_release_io_end"},"7057":{"probe_name":"ext4","function_name":"ext4_statfs"},"7058":{"probe_name":"ext4","function_name":"ext4_swap_extents"},"7059":{"probe_name":"ext4","function_name":"ext4_symlink"},"7060":{"probe_name":"ext4","function_name":"ext4_sync_file"},"7061":{"probe_name":"ext4","function_name":"ext4_sync_fs"},"7062":{"probe_name":"ext4","function_name":"ext4_tmpfile"},"7063":{"probe_name":"ext4","function_name":"ext4_trim_all_free"},"7064":{"probe_name":"ext4","function_name":"ext4_trim_fs"},"7065":{"probe_name":"ext4","function_name":"ext4_truncate"},"7066":{"probe_name":"ext4","function_name":"ext4_unfreeze"},"7067":{"probe_name":"ext4","function_name":"ext4_unlink"},"7068":{"probe_name":"ext4","function_name":"ext4_write_begin"},"7069":{"probe_name":"ext4","function_name":"ext4_write_dquot"},"7070":{"probe_name":"ext4","function_name":"ext4_write_end"},"7071":{"probe_name":"ext4","function_name":"ext4_write_info"},"7072":{"probe_name":"ext4","function_name":"ext4_write_inline_data"},"7073":{"probe_name":"ext4","function_name":"ext4_write_inline_data_end"},"7074":{"probe_name":"ext4","function_name":"ext4_write_inode"},"7075":{"probe_name":"ext4","function_name":"ext4_write_merkle_tree_block"},"7076":{"probe_name":"ext4","function_name":"ext4_writepage"},"7077":{"probe_name":"ext4","function_name":"ext4_writepage_cb"},"7078":{"probe_name":"ext4","function_name":"ext4_writepage_trans_blocks"},"7079":{"probe_name":"ext4","function_name":"ext4_writepages"},"7080":{"probe_name":"iomap","function_name":"iomap_add_to_ioend"},"7081":{"probe_name":"iomap","function_name":"iomap_adjust_read_range.isra.0"},"7082":{"probe_name":"iomap","function_name":"iomap_bmap"},"7083":{"probe_name":"iomap","function_name":"iomap_dio_complete"},"7084":{"probe_name":"iomap","function_name":"iomap_dio_complete_work"},"7085":{"probe_name":"iomap","function_name":"iomap_dio_deferred_complete"},"7086":{"probe_name":"iomap","function_name":"iomap_dio_inline_iter"},"7087":{"probe_name":"iomap","function_name":"iomap_dio_rw"},"7088":{"probe_name":"iomap","function_name":"iomap_dio_zero"},"7089":{"probe_name":"iomap","function_name":"iomap_dirty_folio"},"7090":{"probe_name":"iomap","function_name":"iomap_do_writepage"},"7091":{"probe_name":"iomap","function_name":"iomap_fiemap"},"7092":{"probe_name":"iomap","function_name":"iomap_file_buffered_write"},"7093":{"probe_name":"iomap","function_name":"iomap_file_buffered_write_punch_delalloc"},"7094":{"probe_name":"iomap","function_name":"iomap_file_unshare"},"7095":{"probe_name":"iomap","function_name":"iomap_finish_ioend"},"7096":{"probe_name":"iomap","function_name":"iomap_finish_ioends"},"7097":{"probe_name":"iomap","function_name":"iomap_get_folio"},"7098":{"probe_name":"iomap","function_name":"iomap_invalidate_folio"},"7099":{"probe_name":"iomap","function_name":"iomap_ioend_compare"},"7100":{"probe_name":"iomap","function_name":"iomap_ioend_try_merge"},"7101":{"probe_name":"iomap","function_name":"iomap_is_partially_uptodate"},"7102":{"probe_name":"iomap","function_name":"iomap_iter"},"7103":{"probe_name":"iomap","function_name":"iomap_page_mkwrite"},"7104":{"probe_name":"iomap","function_name":"iomap_read_end_io"},"7105":{"probe_name":"iomap","function_name":"iomap_read_folio"},"7106":{"probe_name":"iomap","function_name":"iomap_read_folio_sync"},"7107":{"probe_name":"iomap","function_name":"iomap_read_inline_data"},"7108":{"probe_name":"iomap","function_name":"iomap_readahead"},"7109":{"probe_name":"iomap","function_name":"iomap_readpage_iter"},"7110":{"probe_name":"iomap","function_name":"iomap_release_folio"},"7111":{"probe_name":"iomap","function_name":"iomap_seek_data"},"7112":{"probe_name":"iomap","function_name":"iomap_seek_hole"},"7113":{"probe_name":"iomap","function_name":"iomap_sort_ioends"},"7114":{"probe_name":"iomap","function_name":"iomap_submit_ioend"},"7115":{"probe_name":"iomap","function_name":"iomap_swapfile_activate"},"7116":{"probe_name":"iomap","function_name":"iomap_swapfile_add_extent"},"7117":{"probe_name":"iomap","function_name":"iomap_swapfile_fail"},"7118":{"probe_name":"iomap","function_name":"iomap_swapfile_iter"},"7119":{"probe_name":"iomap","function_name":"iomap_to_bh"},"7120":{"probe_name":"iomap","function_name":"iomap_to_fiemap"},"7121":{"probe_name":"iomap","function_name":"iomap_truncate_page"},"7122":{"probe_name":"iomap","function_name":"iomap_unshare_iter"},"7123":{"probe_name":"iomap","function_name":"iomap_write_begin"},"7124":{"probe_name":"iomap","function_name":"iomap_write_delalloc_release"},"7125":{"probe_name":"iomap","function_name":"iomap_write_end"},"7126":{"probe_name":"iomap","function_name":"iomap_write_iter"},"7127":{"probe_name":"iomap","function_name":"iomap_writepage_map"},"7128":{"probe_name":"iomap","function_name":"iomap_writepages"},"7129":{"probe_name":"iomap","function_name":"iomap_zero_iter"},"7130":{"probe_name":"iomap","function_name":"iomap_zero_range"},"7131":{"probe_name":"mpi","function_name":"MPIX_Comm_ack_failed"},"7132":{"probe_name":"mpi","function_name":"MPIX_Comm_ack_failed.cold"},"7133":{"probe_name":"mpi","function_name":"MPIX_Comm_agree"},"7134":{"probe_name":"mpi","function_name":"MPIX_Comm_agree.cold"},"7135":{"probe_name":"mpi","function_name":"MPIX_Comm_failure_ack"},"7136":{"probe_name":"mpi","function_name":"MPIX_Comm_failure_ack.cold"},"7137":{"probe_name":"mpi","function_name":"MPIX_Comm_failure_get_acked"},"7138":{"probe_name":"mpi","function_name":"MPIX_Comm_failure_get_acked.cold"},"7139":{"probe_name":"mpi","function_name":"MPIX_Comm_get_failed"},"7140":{"probe_name":"mpi","function_name":"MPIX_Comm_get_failed.cold"},"7141":{"probe_name":"mpi","function_name":"MPIX_Comm_iagree"},"7142":{"probe_name":"mpi","function_name":"MPIX_Comm_iagree.cold"},"7143":{"probe_name":"mpi","function_name":"MPIX_Comm_is_revoked"},"7144":{"probe_name":"mpi","function_name":"MPIX_Comm_revoke"},"7145":{"probe_name":"mpi","function_name":"MPIX_Comm_revoke.cold"},"7146":{"probe_name":"mpi","function_name":"MPIX_Comm_shrink"},"7147":{"probe_name":"mpi","function_name":"MPIX_Comm_shrink.cold"},"7148":{"probe_name":"mpi","function_name":"MPIX_Query_cuda_support"},"7149":{"probe_name":"mpi","function_name":"MPIX_Query_rocm_support"},"7150":{"probe_name":"mpi","function_name":"MPI_AINT_ADD_F90"},"7151":{"probe_name":"mpi","function_name":"MPI_AINT_DIFF_F90"},"7152":{"probe_name":"mpi","function_name":"MPI_Abort"},"7153":{"probe_name":"mpi","function_name":"MPI_Accumulate"},"7154":{"probe_name":"mpi","function_name":"MPI_Add_error_class"},"7155":{"probe_name":"mpi","function_name":"MPI_Add_error_code"},"7156":{"probe_name":"mpi","function_name":"MPI_Add_error_string"},"7157":{"probe_name":"mpi","function_name":"MPI_Address"},"7158":{"probe_name":"mpi","function_name":"MPI_Allgather"},"7159":{"probe_name":"mpi","function_name":"MPI_Allgather_init"},"7160":{"probe_name":"mpi","function_name":"MPI_Allgatherv"},"7161":{"probe_name":"mpi","function_name":"MPI_Allgatherv_init"},"7162":{"probe_name":"mpi","function_name":"MPI_Alloc_mem"},"7163":{"probe_name":"mpi","function_name":"MPI_Allreduce"},"7164":{"probe_name":"mpi","function_name":"MPI_Allreduce_init"},"7165":{"probe_name":"mpi","function_name":"MPI_Alltoall"},"7166":{"probe_name":"mpi","function_name":"MPI_Alltoall_init"},"7167":{"probe_name":"mpi","function_name":"MPI_Alltoallv"},"7168":{"probe_name":"mpi","function_name":"MPI_Alltoallv_init"},"7169":{"probe_name":"mpi","function_name":"MPI_Alltoallw"},"7170":{"probe_name":"mpi","function_name":"MPI_Alltoallw_init"},"7171":{"probe_name":"mpi","function_name":"MPI_Attr_delete"},"7172":{"probe_name":"mpi","function_name":"MPI_Attr_get"},"7173":{"probe_name":"mpi","function_name":"MPI_Attr_put"},"7174":{"probe_name":"mpi","function_name":"MPI_Barrier"},"7175":{"probe_name":"mpi","function_name":"MPI_Barrier_init"},"7176":{"probe_name":"mpi","function_name":"MPI_Bcast"},"7177":{"probe_name":"mpi","function_name":"MPI_Bcast_init"},"7178":{"probe_name":"mpi","function_name":"MPI_Bsend"},"7179":{"probe_name":"mpi","function_name":"MPI_Bsend_init"},"7180":{"probe_name":"mpi","function_name":"MPI_Buffer_attach"},"7181":{"probe_name":"mpi","function_name":"MPI_Buffer_detach"},"7182":{"probe_name":"mpi","function_name":"MPI_COMM_DUP_FN"},"7183":{"probe_name":"mpi","function_name":"MPI_COMM_NULL_COPY_FN"},"7184":{"probe_name":"mpi","function_name":"MPI_COMM_NULL_DELETE_FN"},"7185":{"probe_name":"mpi","function_name":"MPI_CONVERSION_FN_NULL"},"7186":{"probe_name":"mpi","function_name":"MPI_Cancel"},"7187":{"probe_name":"mpi","function_name":"MPI_Cart_coords"},"7188":{"probe_name":"mpi","function_name":"MPI_Cart_create"},"7189":{"probe_name":"mpi","function_name":"MPI_Cart_get"},"7190":{"probe_name":"mpi","function_name":"MPI_Cart_map"},"7191":{"probe_name":"mpi","function_name":"MPI_Cart_rank"},"7192":{"probe_name":"mpi","function_name":"MPI_Cart_shift"},"7193":{"probe_name":"mpi","function_name":"MPI_Cart_sub"},"7194":{"probe_name":"mpi","function_name":"MPI_Cartdim_get"},"7195":{"probe_name":"mpi","function_name":"MPI_Close_port"},"7196":{"probe_name":"mpi","function_name":"MPI_Comm_accept"},"7197":{"probe_name":"mpi","function_name":"MPI_Comm_c2f"},"7198":{"probe_name":"mpi","function_name":"MPI_Comm_call_errhandler"},"7199":{"probe_name":"mpi","function_name":"MPI_Comm_compare"},"7200":{"probe_name":"mpi","function_name":"MPI_Comm_connect"},"7201":{"probe_name":"mpi","function_name":"MPI_Comm_create"},"7202":{"probe_name":"mpi","function_name":"MPI_Comm_create_errhandler"},"7203":{"probe_name":"mpi","function_name":"MPI_Comm_create_from_group"},"7204":{"probe_name":"mpi","function_name":"MPI_Comm_create_group"},"7205":{"probe_name":"mpi","function_name":"MPI_Comm_create_keyval"},"7206":{"probe_name":"mpi","function_name":"MPI_Comm_delete_attr"},"7207":{"probe_name":"mpi","function_name":"MPI_Comm_disconnect"},"7208":{"probe_name":"mpi","function_name":"MPI_Comm_dup"},"7209":{"probe_name":"mpi","function_name":"MPI_Comm_dup_with_info"},"7210":{"probe_name":"mpi","function_name":"MPI_Comm_f2c"},"7211":{"probe_name":"mpi","function_name":"MPI_Comm_free"},"7212":{"probe_name":"mpi","function_name":"MPI_Comm_free_keyval"},"7213":{"probe_name":"mpi","function_name":"MPI_Comm_get_attr"},"7214":{"probe_name":"mpi","function_name":"MPI_Comm_get_errhandler"},"7215":{"probe_name":"mpi","function_name":"MPI_Comm_get_info"},"7216":{"probe_name":"mpi","function_name":"MPI_Comm_get_name"},"7217":{"probe_name":"mpi","function_name":"MPI_Comm_get_parent"},"7218":{"probe_name":"mpi","function_name":"MPI_Comm_group"},"7219":{"probe_name":"mpi","function_name":"MPI_Comm_idup"},"7220":{"probe_name":"mpi","function_name":"MPI_Comm_idup_with_info"},"7221":{"probe_name":"mpi","function_name":"MPI_Comm_join"},"7222":{"probe_name":"mpi","function_name":"MPI_Comm_rank"},"7223":{"probe_name":"mpi","function_name":"MPI_Comm_remote_group"},"7224":{"probe_name":"mpi","function_name":"MPI_Comm_remote_size"},"7225":{"probe_name":"mpi","function_name":"MPI_Comm_set_attr"},"7226":{"probe_name":"mpi","function_name":"MPI_Comm_set_errhandler"},"7227":{"probe_name":"mpi","function_name":"MPI_Comm_set_info"},"7228":{"probe_name":"mpi","function_name":"MPI_Comm_set_name"},"7229":{"probe_name":"mpi","function_name":"MPI_Comm_size"},"7230":{"probe_name":"mpi","function_name":"MPI_Comm_spawn"},"7231":{"probe_name":"mpi","function_name":"MPI_Comm_spawn_multiple"},"7232":{"probe_name":"mpi","function_name":"MPI_Comm_split"},"7233":{"probe_name":"mpi","function_name":"MPI_Comm_split_type"},"7234":{"probe_name":"mpi","function_name":"MPI_Comm_test_inter"},"7235":{"probe_name":"mpi","function_name":"MPI_Compare_and_swap"},"7236":{"probe_name":"mpi","function_name":"MPI_DUP_FN"},"7237":{"probe_name":"mpi","function_name":"MPI_Dims_create"},"7238":{"probe_name":"mpi","function_name":"MPI_Dist_graph_create"},"7239":{"probe_name":"mpi","function_name":"MPI_Dist_graph_create_adjacent"},"7240":{"probe_name":"mpi","function_name":"MPI_Dist_graph_neighbors"},"7241":{"probe_name":"mpi","function_name":"MPI_Dist_graph_neighbors_count"},"7242":{"probe_name":"mpi","function_name":"MPI_Errhandler_c2f"},"7243":{"probe_name":"mpi","function_name":"MPI_Errhandler_create"},"7244":{"probe_name":"mpi","function_name":"MPI_Errhandler_f2c"},"7245":{"probe_name":"mpi","function_name":"MPI_Errhandler_free"},"7246":{"probe_name":"mpi","function_name":"MPI_Errhandler_get"},"7247":{"probe_name":"mpi","function_name":"MPI_Errhandler_set"},"7248":{"probe_name":"mpi","function_name":"MPI_Error_class"},"7249":{"probe_name":"mpi","function_name":"MPI_Error_string"},"7250":{"probe_name":"mpi","function_name":"MPI_Exscan"},"7251":{"probe_name":"mpi","function_name":"MPI_Exscan_init"},"7252":{"probe_name":"mpi","function_name":"MPI_Fetch_and_op"},"7253":{"probe_name":"mpi","function_name":"MPI_File_c2f"},"7254":{"probe_name":"mpi","function_name":"MPI_File_call_errhandler"},"7255":{"probe_name":"mpi","function_name":"MPI_File_close"},"7256":{"probe_name":"mpi","function_name":"MPI_File_create_errhandler"},"7257":{"probe_name":"mpi","function_name":"MPI_File_delete"},"7258":{"probe_name":"mpi","function_name":"MPI_File_f2c"},"7259":{"probe_name":"mpi","function_name":"MPI_File_get_amode"},"7260":{"probe_name":"mpi","function_name":"MPI_File_get_atomicity"},"7261":{"probe_name":"mpi","function_name":"MPI_File_get_byte_offset"},"7262":{"probe_name":"mpi","function_name":"MPI_File_get_errhandler"},"7263":{"probe_name":"mpi","function_name":"MPI_File_get_group"},"7264":{"probe_name":"mpi","function_name":"MPI_File_get_info"},"7265":{"probe_name":"mpi","function_name":"MPI_File_get_position"},"7266":{"probe_name":"mpi","function_name":"MPI_File_get_position_shared"},"7267":{"probe_name":"mpi","function_name":"MPI_File_get_size"},"7268":{"probe_name":"mpi","function_name":"MPI_File_get_type_extent"},"7269":{"probe_name":"mpi","function_name":"MPI_File_get_view"},"7270":{"probe_name":"mpi","function_name":"MPI_File_iread"},"7271":{"probe_name":"mpi","function_name":"MPI_File_iread_all"},"7272":{"probe_name":"mpi","function_name":"MPI_File_iread_at"},"7273":{"probe_name":"mpi","function_name":"MPI_File_iread_at_all"},"7274":{"probe_name":"mpi","function_name":"MPI_File_iread_shared"},"7275":{"probe_name":"mpi","function_name":"MPI_File_iwrite"},"7276":{"probe_name":"mpi","function_name":"MPI_File_iwrite_all"},"7277":{"probe_name":"mpi","function_name":"MPI_File_iwrite_at"},"7278":{"probe_name":"mpi","function_name":"MPI_File_iwrite_at_all"},"7279":{"probe_name":"mpi","function_name":"MPI_File_iwrite_shared"},"7280":{"probe_name":"mpi","function_name":"MPI_File_open"},"7281":{"probe_name":"mpi","function_name":"MPI_File_preallocate"},"7282":{"probe_name":"mpi","function_name":"MPI_File_read"},"7283":{"probe_name":"mpi","function_name":"MPI_File_read_all"},"7284":{"probe_name":"mpi","function_name":"MPI_File_read_all_begin"},"7285":{"probe_name":"mpi","function_name":"MPI_File_read_all_end"},"7286":{"probe_name":"mpi","function_name":"MPI_File_read_at"},"7287":{"probe_name":"mpi","function_name":"MPI_File_read_at_all"},"7288":{"probe_name":"mpi","function_name":"MPI_File_read_at_all_begin"},"7289":{"probe_name":"mpi","function_name":"MPI_File_read_at_all_end"},"7290":{"probe_name":"mpi","function_name":"MPI_File_read_ordered"},"7291":{"probe_name":"mpi","function_name":"MPI_File_read_ordered_begin"},"7292":{"probe_name":"mpi","function_name":"MPI_File_read_ordered_end"},"7293":{"probe_name":"mpi","function_name":"MPI_File_read_shared"},"7294":{"probe_name":"mpi","function_name":"MPI_File_seek"},"7295":{"probe_name":"mpi","function_name":"MPI_File_seek_shared"},"7296":{"probe_name":"mpi","function_name":"MPI_File_set_atomicity"},"7297":{"probe_name":"mpi","function_name":"MPI_File_set_errhandler"},"7298":{"probe_name":"mpi","function_name":"MPI_File_set_info"},"7299":{"probe_name":"mpi","function_name":"MPI_File_set_size"},"7300":{"probe_name":"mpi","function_name":"MPI_File_set_view"},"7301":{"probe_name":"mpi","function_name":"MPI_File_sync"},"7302":{"probe_name":"mpi","function_name":"MPI_File_write"},"7303":{"probe_name":"mpi","function_name":"MPI_File_write_all"},"7304":{"probe_name":"mpi","function_name":"MPI_File_write_all_begin"},"7305":{"probe_name":"mpi","function_name":"MPI_File_write_all_end"},"7306":{"probe_name":"mpi","function_name":"MPI_File_write_at"},"7307":{"probe_name":"mpi","function_name":"MPI_File_write_at_all"},"7308":{"probe_name":"mpi","function_name":"MPI_File_write_at_all_begin"},"7309":{"probe_name":"mpi","function_name":"MPI_File_write_at_all_end"},"7310":{"probe_name":"mpi","function_name":"MPI_File_write_ordered"},"7311":{"probe_name":"mpi","function_name":"MPI_File_write_ordered_begin"},"7312":{"probe_name":"mpi","function_name":"MPI_File_write_ordered_end"},"7313":{"probe_name":"mpi","function_name":"MPI_File_write_shared"},"7314":{"probe_name":"mpi","function_name":"MPI_Finalize"},"7315":{"probe_name":"mpi","function_name":"MPI_Finalized"},"7316":{"probe_name":"mpi","function_name":"MPI_Free_mem"},"7317":{"probe_name":"mpi","function_name":"MPI_Gather"},"7318":{"probe_name":"mpi","function_name":"MPI_Gather_init"},"7319":{"probe_name":"mpi","function_name":"MPI_Gatherv"},"7320":{"probe_name":"mpi","function_name":"MPI_Gatherv_init"},"7321":{"probe_name":"mpi","function_name":"MPI_Get"},"7322":{"probe_name":"mpi","function_name":"MPI_Get_accumulate"},"7323":{"probe_name":"mpi","function_name":"MPI_Get_address"},"7324":{"probe_name":"mpi","function_name":"MPI_Get_count"},"7325":{"probe_name":"mpi","function_name":"MPI_Get_elements"},"7326":{"probe_name":"mpi","function_name":"MPI_Get_elements_x"},"7327":{"probe_name":"mpi","function_name":"MPI_Get_library_version"},"7328":{"probe_name":"mpi","function_name":"MPI_Get_processor_name"},"7329":{"probe_name":"mpi","function_name":"MPI_Get_version"},"7330":{"probe_name":"mpi","function_name":"MPI_Graph_create"},"7331":{"probe_name":"mpi","function_name":"MPI_Graph_get"},"7332":{"probe_name":"mpi","function_name":"MPI_Graph_map"},"7333":{"probe_name":"mpi","function_name":"MPI_Graph_neighbors"},"7334":{"probe_name":"mpi","function_name":"MPI_Graph_neighbors_count"},"7335":{"probe_name":"mpi","function_name":"MPI_Graphdims_get"},"7336":{"probe_name":"mpi","function_name":"MPI_Grequest_complete"},"7337":{"probe_name":"mpi","function_name":"MPI_Grequest_start"},"7338":{"probe_name":"mpi","function_name":"MPI_Group_c2f"},"7339":{"probe_name":"mpi","function_name":"MPI_Group_compare"},"7340":{"probe_name":"mpi","function_name":"MPI_Group_difference"},"7341":{"probe_name":"mpi","function_name":"MPI_Group_excl"},"7342":{"probe_name":"mpi","function_name":"MPI_Group_f2c"},"7343":{"probe_name":"mpi","function_name":"MPI_Group_free"},"7344":{"probe_name":"mpi","function_name":"MPI_Group_from_session_pset"},"7345":{"probe_name":"mpi","function_name":"MPI_Group_incl"},"7346":{"probe_name":"mpi","function_name":"MPI_Group_intersection"},"7347":{"probe_name":"mpi","function_name":"MPI_Group_range_excl"},"7348":{"probe_name":"mpi","function_name":"MPI_Group_range_incl"},"7349":{"probe_name":"mpi","function_name":"MPI_Group_rank"},"7350":{"probe_name":"mpi","function_name":"MPI_Group_size"},"7351":{"probe_name":"mpi","function_name":"MPI_Group_translate_ranks"},"7352":{"probe_name":"mpi","function_name":"MPI_Group_union"},"7353":{"probe_name":"mpi","function_name":"MPI_Iallgather"},"7354":{"probe_name":"mpi","function_name":"MPI_Iallgatherv"},"7355":{"probe_name":"mpi","function_name":"MPI_Iallreduce"},"7356":{"probe_name":"mpi","function_name":"MPI_Ialltoall"},"7357":{"probe_name":"mpi","function_name":"MPI_Ialltoallv"},"7358":{"probe_name":"mpi","function_name":"MPI_Ialltoallw"},"7359":{"probe_name":"mpi","function_name":"MPI_Ibarrier"},"7360":{"probe_name":"mpi","function_name":"MPI_Ibcast"},"7361":{"probe_name":"mpi","function_name":"MPI_Ibsend"},"7362":{"probe_name":"mpi","function_name":"MPI_Iexscan"},"7363":{"probe_name":"mpi","function_name":"MPI_Igather"},"7364":{"probe_name":"mpi","function_name":"MPI_Igatherv"},"7365":{"probe_name":"mpi","function_name":"MPI_Improbe"},"7366":{"probe_name":"mpi","function_name":"MPI_Imrecv"},"7367":{"probe_name":"mpi","function_name":"MPI_Ineighbor_allgather"},"7368":{"probe_name":"mpi","function_name":"MPI_Ineighbor_allgatherv"},"7369":{"probe_name":"mpi","function_name":"MPI_Ineighbor_alltoall"},"7370":{"probe_name":"mpi","function_name":"MPI_Ineighbor_alltoallv"},"7371":{"probe_name":"mpi","function_name":"MPI_Ineighbor_alltoallw"},"7372":{"probe_name":"mpi","function_name":"MPI_Info_c2f"},"7373":{"probe_name":"mpi","function_name":"MPI_Info_create"},"7374":{"probe_name":"mpi","function_name":"MPI_Info_create_env"},"7375":{"probe_name":"mpi","function_name":"MPI_Info_delete"},"7376":{"probe_name":"mpi","function_name":"MPI_Info_dup"},"7377":{"probe_name":"mpi","function_name":"MPI_Info_f2c"},"7378":{"probe_name":"mpi","function_name":"MPI_Info_free"},"7379":{"probe_name":"mpi","function_name":"MPI_Info_get"},"7380":{"probe_name":"mpi","function_name":"MPI_Info_get_nkeys"},"7381":{"probe_name":"mpi","function_name":"MPI_Info_get_nthkey"},"7382":{"probe_name":"mpi","function_name":"MPI_Info_get_string"},"7383":{"probe_name":"mpi","function_name":"MPI_Info_get_valuelen"},"7384":{"probe_name":"mpi","function_name":"MPI_Info_set"},"7385":{"probe_name":"mpi","function_name":"MPI_Init"},"7386":{"probe_name":"mpi","function_name":"MPI_Init_thread"},"7387":{"probe_name":"mpi","function_name":"MPI_Initialized"},"7388":{"probe_name":"mpi","function_name":"MPI_Intercomm_create"},"7389":{"probe_name":"mpi","function_name":"MPI_Intercomm_create_from_groups"},"7390":{"probe_name":"mpi","function_name":"MPI_Intercomm_merge"},"7391":{"probe_name":"mpi","function_name":"MPI_Iprobe"},"7392":{"probe_name":"mpi","function_name":"MPI_Irecv"},"7393":{"probe_name":"mpi","function_name":"MPI_Ireduce"},"7394":{"probe_name":"mpi","function_name":"MPI_Ireduce_scatter"},"7395":{"probe_name":"mpi","function_name":"MPI_Ireduce_scatter_block"},"7396":{"probe_name":"mpi","function_name":"MPI_Irsend"},"7397":{"probe_name":"mpi","function_name":"MPI_Is_thread_main"},"7398":{"probe_name":"mpi","function_name":"MPI_Iscan"},"7399":{"probe_name":"mpi","function_name":"MPI_Iscatter"},"7400":{"probe_name":"mpi","function_name":"MPI_Iscatterv"},"7401":{"probe_name":"mpi","function_name":"MPI_Isend"},"7402":{"probe_name":"mpi","function_name":"MPI_Isendrecv"},"7403":{"probe_name":"mpi","function_name":"MPI_Isendrecv_replace"},"7404":{"probe_name":"mpi","function_name":"MPI_Issend"},"7405":{"probe_name":"mpi","function_name":"MPI_Keyval_create"},"7406":{"probe_name":"mpi","function_name":"MPI_Keyval_free"},"7407":{"probe_name":"mpi","function_name":"MPI_Lookup_name"},"7408":{"probe_name":"mpi","function_name":"MPI_Message_c2f"},"7409":{"probe_name":"mpi","function_name":"MPI_Message_f2c"},"7410":{"probe_name":"mpi","function_name":"MPI_Mprobe"},"7411":{"probe_name":"mpi","function_name":"MPI_Mrecv"},"7412":{"probe_name":"mpi","function_name":"MPI_NULL_COPY_FN"},"7413":{"probe_name":"mpi","function_name":"MPI_NULL_DELETE_FN"},"7414":{"probe_name":"mpi","function_name":"MPI_Neighbor_allgather"},"7415":{"probe_name":"mpi","function_name":"MPI_Neighbor_allgather_init"},"7416":{"probe_name":"mpi","function_name":"MPI_Neighbor_allgatherv"},"7417":{"probe_name":"mpi","function_name":"MPI_Neighbor_allgatherv_init"},"7418":{"probe_name":"mpi","function_name":"MPI_Neighbor_alltoall"},"7419":{"probe_name":"mpi","function_name":"MPI_Neighbor_alltoall_init"},"7420":{"probe_name":"mpi","function_name":"MPI_Neighbor_alltoallv"},"7421":{"probe_name":"mpi","function_name":"MPI_Neighbor_alltoallv_init"},"7422":{"probe_name":"mpi","function_name":"MPI_Neighbor_alltoallw"},"7423":{"probe_name":"mpi","function_name":"MPI_Neighbor_alltoallw_init"},"7424":{"probe_name":"mpi","function_name":"MPI_Op_c2f"},"7425":{"probe_name":"mpi","function_name":"MPI_Op_commutative"},"7426":{"probe_name":"mpi","function_name":"MPI_Op_create"},"7427":{"probe_name":"mpi","function_name":"MPI_Op_f2c"},"7428":{"probe_name":"mpi","function_name":"MPI_Op_free"},"7429":{"probe_name":"mpi","function_name":"MPI_Open_port"},"7430":{"probe_name":"mpi","function_name":"MPI_Pack"},"7431":{"probe_name":"mpi","function_name":"MPI_Pack_external"},"7432":{"probe_name":"mpi","function_name":"MPI_Pack_external_size"},"7433":{"probe_name":"mpi","function_name":"MPI_Pack_size"},"7434":{"probe_name":"mpi","function_name":"MPI_Parrived"},"7435":{"probe_name":"mpi","function_name":"MPI_Pcontrol"},"7436":{"probe_name":"mpi","function_name":"MPI_Pready"},"7437":{"probe_name":"mpi","function_name":"MPI_Pready_list"},"7438":{"probe_name":"mpi","function_name":"MPI_Pready_range"},"7439":{"probe_name":"mpi","function_name":"MPI_Precv_init"},"7440":{"probe_name":"mpi","function_name":"MPI_Probe"},"7441":{"probe_name":"mpi","function_name":"MPI_Psend_init"},"7442":{"probe_name":"mpi","function_name":"MPI_Publish_name"},"7443":{"probe_name":"mpi","function_name":"MPI_Put"},"7444":{"probe_name":"mpi","function_name":"MPI_Query_thread"},"7445":{"probe_name":"mpi","function_name":"MPI_Raccumulate"},"7446":{"probe_name":"mpi","function_name":"MPI_Recv"},"7447":{"probe_name":"mpi","function_name":"MPI_Recv_init"},"7448":{"probe_name":"mpi","function_name":"MPI_Reduce"},"7449":{"probe_name":"mpi","function_name":"MPI_Reduce_init"},"7450":{"probe_name":"mpi","function_name":"MPI_Reduce_local"},"7451":{"probe_name":"mpi","function_name":"MPI_Reduce_scatter"},"7452":{"probe_name":"mpi","function_name":"MPI_Reduce_scatter_block"},"7453":{"probe_name":"mpi","function_name":"MPI_Reduce_scatter_block_init"},"7454":{"probe_name":"mpi","function_name":"MPI_Reduce_scatter_init"},"7455":{"probe_name":"mpi","function_name":"MPI_Register_datarep"},"7456":{"probe_name":"mpi","function_name":"MPI_Request_c2f"},"7457":{"probe_name":"mpi","function_name":"MPI_Request_f2c"},"7458":{"probe_name":"mpi","function_name":"MPI_Request_free"},"7459":{"probe_name":"mpi","function_name":"MPI_Request_get_status"},"7460":{"probe_name":"mpi","function_name":"MPI_Rget"},"7461":{"probe_name":"mpi","function_name":"MPI_Rget_accumulate"},"7462":{"probe_name":"mpi","function_name":"MPI_Rput"},"7463":{"probe_name":"mpi","function_name":"MPI_Rsend"},"7464":{"probe_name":"mpi","function_name":"MPI_Rsend_init"},"7465":{"probe_name":"mpi","function_name":"MPI_Scan"},"7466":{"probe_name":"mpi","function_name":"MPI_Scan_init"},"7467":{"probe_name":"mpi","function_name":"MPI_Scatter"},"7468":{"probe_name":"mpi","function_name":"MPI_Scatter_init"},"7469":{"probe_name":"mpi","function_name":"MPI_Scatterv"},"7470":{"probe_name":"mpi","function_name":"MPI_Scatterv_init"},"7471":{"probe_name":"mpi","function_name":"MPI_Send"},"7472":{"probe_name":"mpi","function_name":"MPI_Send_init"},"7473":{"probe_name":"mpi","function_name":"MPI_Sendrecv"},"7474":{"probe_name":"mpi","function_name":"MPI_Sendrecv_replace"},"7475":{"probe_name":"mpi","function_name":"MPI_Session_c2f"},"7476":{"probe_name":"mpi","function_name":"MPI_Session_call_errhandler"},"7477":{"probe_name":"mpi","function_name":"MPI_Session_create_errhandler"},"7478":{"probe_name":"mpi","function_name":"MPI_Session_f2c"},"7479":{"probe_name":"mpi","function_name":"MPI_Session_finalize"},"7480":{"probe_name":"mpi","function_name":"MPI_Session_get_errhandler"},"7481":{"probe_name":"mpi","function_name":"MPI_Session_get_info"},"7482":{"probe_name":"mpi","function_name":"MPI_Session_get_nth_pset"},"7483":{"probe_name":"mpi","function_name":"MPI_Session_get_num_psets"},"7484":{"probe_name":"mpi","function_name":"MPI_Session_get_pset_info"},"7485":{"probe_name":"mpi","function_name":"MPI_Session_init"},"7486":{"probe_name":"mpi","function_name":"MPI_Session_set_errhandler"},"7487":{"probe_name":"mpi","function_name":"MPI_Session_set_info"},"7488":{"probe_name":"mpi","function_name":"MPI_Ssend"},"7489":{"probe_name":"mpi","function_name":"MPI_Ssend_init"},"7490":{"probe_name":"mpi","function_name":"MPI_Start"},"7491":{"probe_name":"mpi","function_name":"MPI_Startall"},"7492":{"probe_name":"mpi","function_name":"MPI_Status_c2f"},"7493":{"probe_name":"mpi","function_name":"MPI_Status_c2f08"},"7494":{"probe_name":"mpi","function_name":"MPI_Status_f082c"},"7495":{"probe_name":"mpi","function_name":"MPI_Status_f082f"},"7496":{"probe_name":"mpi","function_name":"MPI_Status_f2c"},"7497":{"probe_name":"mpi","function_name":"MPI_Status_f2f08"},"7498":{"probe_name":"mpi","function_name":"MPI_Status_set_cancelled"},"7499":{"probe_name":"mpi","function_name":"MPI_Status_set_elements"},"7500":{"probe_name":"mpi","function_name":"MPI_Status_set_elements_x"},"7501":{"probe_name":"mpi","function_name":"MPI_TYPE_DUP_FN"},"7502":{"probe_name":"mpi","function_name":"MPI_TYPE_NULL_COPY_FN"},"7503":{"probe_name":"mpi","function_name":"MPI_TYPE_NULL_DELETE_FN"},"7504":{"probe_name":"mpi","function_name":"MPI_T_category_changed"},"7505":{"probe_name":"mpi","function_name":"MPI_T_category_get_categories"},"7506":{"probe_name":"mpi","function_name":"MPI_T_category_get_cvars"},"7507":{"probe_name":"mpi","function_name":"MPI_T_category_get_index"},"7508":{"probe_name":"mpi","function_name":"MPI_T_category_get_info"},"7509":{"probe_name":"mpi","function_name":"MPI_T_category_get_num"},"7510":{"probe_name":"mpi","function_name":"MPI_T_category_get_pvars"},"7511":{"probe_name":"mpi","function_name":"MPI_T_cvar_get_index"},"7512":{"probe_name":"mpi","function_name":"MPI_T_cvar_get_info"},"7513":{"probe_name":"mpi","function_name":"MPI_T_cvar_get_num"},"7514":{"probe_name":"mpi","function_name":"MPI_T_cvar_handle_alloc"},"7515":{"probe_name":"mpi","function_name":"MPI_T_cvar_handle_free"},"7516":{"probe_name":"mpi","function_name":"MPI_T_cvar_read"},"7517":{"probe_name":"mpi","function_name":"MPI_T_cvar_write"},"7518":{"probe_name":"mpi","function_name":"MPI_T_enum_get_info"},"7519":{"probe_name":"mpi","function_name":"MPI_T_enum_get_item"},"7520":{"probe_name":"mpi","function_name":"MPI_T_finalize"},"7521":{"probe_name":"mpi","function_name":"MPI_T_init_thread"},"7522":{"probe_name":"mpi","function_name":"MPI_T_pvar_get_index"},"7523":{"probe_name":"mpi","function_name":"MPI_T_pvar_get_info"},"7524":{"probe_name":"mpi","function_name":"MPI_T_pvar_get_num"},"7525":{"probe_name":"mpi","function_name":"MPI_T_pvar_handle_alloc"},"7526":{"probe_name":"mpi","function_name":"MPI_T_pvar_handle_free"},"7527":{"probe_name":"mpi","function_name":"MPI_T_pvar_read"},"7528":{"probe_name":"mpi","function_name":"MPI_T_pvar_readreset"},"7529":{"probe_name":"mpi","function_name":"MPI_T_pvar_reset"},"7530":{"probe_name":"mpi","function_name":"MPI_T_pvar_session_create"},"7531":{"probe_name":"mpi","function_name":"MPI_T_pvar_session_free"},"7532":{"probe_name":"mpi","function_name":"MPI_T_pvar_start"},"7533":{"probe_name":"mpi","function_name":"MPI_T_pvar_stop"},"7534":{"probe_name":"mpi","function_name":"MPI_T_pvar_write"},"7535":{"probe_name":"mpi","function_name":"MPI_Test"},"7536":{"probe_name":"mpi","function_name":"MPI_Test_cancelled"},"7537":{"probe_name":"mpi","function_name":"MPI_Testall"},"7538":{"probe_name":"mpi","function_name":"MPI_Testany"},"7539":{"probe_name":"mpi","function_name":"MPI_Testsome"},"7540":{"probe_name":"mpi","function_name":"MPI_Topo_test"},"7541":{"probe_name":"mpi","function_name":"MPI_Type_c2f"},"7542":{"probe_name":"mpi","function_name":"MPI_Type_commit"},"7564":{"probe_name":"mpi","function_name":"MPI_Type_get_envelope"},"7565":{"probe_name":"mpi","function_name":"MPI_Type_get_extent"},"7566":{"probe_name":"mpi","function_name":"MPI_Type_get_extent_x"},"7567":{"probe_name":"mpi","function_name":"MPI_Type_get_name"},"7568":{"probe_name":"mpi","function_name":"MPI_Type_get_true_extent"},"7569":{"probe_name":"mpi","function_name":"MPI_Type_get_true_extent_x"},"7570":{"probe_name":"mpi","function_name":"MPI_Type_hindexed"},"7571":{"probe_name":"mpi","function_name":"MPI_Type_hvector"},"7572":{"probe_name":"mpi","function_name":"MPI_Type_indexed"},"7573":{"probe_name":"mpi","function_name":"MPI_Type_lb"},"7574":{"probe_name":"mpi","function_name":"MPI_Type_match_size"},"7575":{"probe_name":"mpi","function_name":"MPI_Type_set_attr"},"7576":{"probe_name":"mpi","function_name":"MPI_Type_set_name"},"7577":{"probe_name":"mpi","function_name":"MPI_Type_size"},"7578":{"probe_name":"mpi","function_name":"MPI_Type_size_x"},"7579":{"probe_name":"mpi","function_name":"MPI_Type_struct"},"7580":{"probe_name":"mpi","function_name":"MPI_Type_ub"},"7581":{"probe_name":"mpi","function_name":"MPI_Type_vector"},"7582":{"probe_name":"mpi","function_name":"MPI_Unpack"},"7583":{"probe_name":"mpi","function_name":"MPI_Unpack_external"},"7584":{"probe_name":"mpi","function_name":"MPI_Unpublish_name"},"7585":{"probe_name":"mpi","function_name":"MPI_WIN_DUP_FN"},"7586":{"probe_name":"mpi","function_name":"MPI_WIN_NULL_COPY_FN"},"7587":{"probe_name":"mpi","function_name":"MPI_WIN_NULL_DELETE_FN"},"7588":{"probe_name":"mpi","function_name":"MPI_WTICK_F90"},"7589":{"probe_name":"mpi","function_name":"MPI_WTIME_F90"},"7590":{"probe_name":"mpi","function_name":"MPI_Wait"},"7591":{"probe_name":"mpi","function_name":"MPI_Waitall"},"7592":{"probe_name":"mpi","function_name":"MPI_Waitany"},"7593":{"probe_name":"mpi","function_name":"MPI_Waitsome"},"7594":{"probe_name":"mpi","function_name":"MPI_Win_allocate"},"7595":{"probe_name":"mpi","function_name":"MPI_Win_allocate_shared"},"7596":{"probe_name":"mpi","function_name":"MPI_Win_attach"},"7597":{"probe_name":"mpi","function_name":"MPI_Win_c2f"},"7598":{"probe_name":"mpi","function_name":"MPI_Win_call_errhandler"},"7599":{"probe_name":"mpi","function_name":"MPI_Win_complete"},"7600":{"probe_name":"mpi","function_name":"MPI_Win_create"},"7601":{"probe_name":"mpi","function_name":"MPI_Win_create_dynamic"},"7602":{"probe_name":"mpi","function_name":"MPI_Win_create_errhandler"},"7603":{"probe_name":"mpi","function_name":"MPI_Win_create_keyval"},"7604":{"probe_name":"mpi","function_name":"MPI_Win_delete_attr"},"7605":{"probe_name":"mpi","function_name":"MPI_Win_detach"},"7606":{"probe_name":"mpi","function_name":"MPI_Win_f2c"},"7607":{"probe_name":"mpi","function_name":"MPI_Win_fence"},"7608":{"probe_name":"mpi","function_name":"MPI_Win_flush"},"7609":{"probe_name":"mpi","function_name":"MPI_Win_flush_all"},"7610":{"probe_name":"mpi","function_name":"MPI_Win_flush_local"},"7611":{"probe_name":"mpi","function_name":"MPI_Win_flush_local_all"},"7612":{"probe_name":"mpi","function_name":"MPI_Win_free"},"7613":{"probe_name":"mpi","function_name":"MPI_Win_free_keyval"},"7614":{"probe_name":"mpi","function_name":"MPI_Win_get_attr"},"7615":{"probe_name":"mpi","function_name":"MPI_Win_get_errhandler"},"7616":{"probe_name":"mpi","function_name":"MPI_Win_get_group"},"7617":{"probe_name":"mpi","function_name":"MPI_Win_get_info"},"7618":{"probe_name":"mpi","function_name":"MPI_Win_get_name"},"7619":{"probe_name":"mpi","function_name":"MPI_Win_lock"},"7620":{"probe_name":"mpi","function_name":"MPI_Win_lock_all"},"7621":{"probe_name":"mpi","function_name":"MPI_Win_post"},"7622":{"probe_name":"mpi","function_name":"MPI_Win_set_attr"},"7623":{"probe_name":"mpi","function_name":"MPI_Win_set_errhandler"},"7624":{"probe_name":"mpi","function_name":"MPI_Win_set_info"},"7625":{"probe_name":"mpi","function_name":"MPI_Win_set_name"},"7626":{"probe_name":"mpi","function_name":"MPI_Win_shared_query"},"7627":{"probe_name":"mpi","function_name":"MPI_Win_start"},"7628":{"probe_name":"mpi","function_name":"MPI_Win_sync"},"7629":{"probe_name":"mpi","function_name":"MPI_Win_test"},"7630":{"probe_name":"mpi","function_name":"MPI_Win_unlock"},"7631":{"probe_name":"mpi","function_name":"MPI_Win_unlock_all"},"7632":{"probe_name":"mpi","function_name":"MPI_Win_wait"},"7633":{"probe_name":"mpi","function_name":"MPI_Wtick"},"7634":{"probe_name":"mpi","function_name":"MPI_Wtime"},"7635":{"probe_name":"mpi","function_name":"NBC_Comm_neighbors"},"7636":{"probe_name":"mpi","function_name":"NBC_Comm_neighbors_count"},"7637":{"probe_name":"mpi","function_name":"NBC_Error"},"7638":{"probe_name":"mpi","function_name":"NBC_Error.constprop.0:0x12d820"},"7639":{"probe_name":"mpi","function_name":"NBC_Error.constprop.0:0x12e380"},"7640":{"probe_name":"mpi","function_name":"NBC_Error.constprop.0:0x12ee10"},"7641":{"probe_name":"mpi","function_name":"NBC_Error.constprop.0:0x130de0"},"7642":{"probe_name":"mpi","function_name":"NBC_Error.constprop.0:0x138c20"},"7643":{"probe_name":"mpi","function_name":"NBC_Error.constprop.0:0x13a930"},"7644":{"probe_name":"mpi","function_name":"NBC_Error.constprop.0:0x13bee0"},"7645":{"probe_name":"mpi","function_name":"NBC_Init_comm"},"7646":{"probe_name":"mpi","function_name":"NBC_Progress"},"7647":{"probe_name":"mpi","function_name":"NBC_Return_handle"},"7648":{"probe_name":"mpi","function_name":"NBC_Sched_barrier"},"7649":{"probe_name":"mpi","function_name":"NBC_Sched_commit"},"7650":{"probe_name":"mpi","function_name":"NBC_Sched_copy"},"7651":{"probe_name":"mpi","function_name":"NBC_Sched_local_recv"},"7652":{"probe_name":"mpi","function_name":"NBC_Sched_local_send"},"7653":{"probe_name":"mpi","function_name":"NBC_Sched_op"},"7654":{"probe_name":"mpi","function_name":"NBC_Sched_recv"},"7655":{"probe_name":"mpi","function_name":"NBC_Sched_send"},"7656":{"probe_name":"mpi","function_name":"NBC_Sched_unpack"},"7657":{"probe_name":"mpi","function_name":"NBC_Schedule_request"},"7658":{"probe_name":"mpi","function_name":"NBC_Start"},"7659":{"probe_name":"mpi","function_name":"NBC_Start_round"},"7660":{"probe_name":"mpi","function_name":"OMPI_Affinity_str"},"7661":{"probe_name":"mpi","function_name":"OMPI_Affinity_str.cold"},"7662":{"probe_name":"mpi","function_name":"OMPI_C_MPI_COMM_DUP_FN"},"7663":{"probe_name":"mpi","function_name":"OMPI_C_MPI_COMM_NULL_COPY_FN"},"7664":{"probe_name":"mpi","function_name":"OMPI_C_MPI_COMM_NULL_DELETE_FN"},"7665":{"probe_name":"mpi","function_name":"OMPI_C_MPI_DUP_FN"},"7666":{"probe_name":"mpi","function_name":"OMPI_C_MPI_NULL_COPY_FN"},"7667":{"probe_name":"mpi","function_name":"OMPI_C_MPI_NULL_DELETE_FN"},"7668":{"probe_name":"mpi","function_name":"OMPI_C_MPI_TYPE_DUP_FN"},"7669":{"probe_name":"mpi","function_name":"OMPI_C_MPI_TYPE_NULL_COPY_FN"},"7670":{"probe_name":"mpi","function_name":"OMPI_C_MPI_TYPE_NULL_DELETE_FN"},"7671":{"probe_name":"mpi","function_name":"OMPI_C_MPI_WIN_DUP_FN"},"7672":{"probe_name":"mpi","function_name":"OMPI_C_MPI_WIN_NULL_COPY_FN"},"7673":{"probe_name":"mpi","function_name":"OMPI_C_MPI_WIN_NULL_DELETE_FN"},"7674":{"probe_name":"mpi","function_name":"OMPI_TEST_FORTRAN_CONSTANTS"},"7675":{"probe_name":"mpi","function_name":"PMPIX_Comm_ack_failed"},"7676":{"probe_name":"mpi","function_name":"PMPIX_Comm_ack_failed.cold"},"7677":{"probe_name":"mpi","function_name":"PMPIX_Comm_agree"},"7678":{"probe_name":"mpi","function_name":"PMPIX_Comm_agree.cold"},"7679":{"probe_name":"mpi","function_name":"PMPIX_Comm_failure_ack"},"7680":{"probe_name":"mpi","function_name":"PMPIX_Comm_failure_ack.cold"},"7681":{"probe_name":"mpi","function_name":"PMPIX_Comm_failure_get_acked"},"7682":{"probe_name":"mpi","function_name":"PMPIX_Comm_failure_get_acked.cold"},"7683":{"probe_name":"mpi","function_name":"PMPIX_Comm_get_failed"},"7684":{"probe_name":"mpi","function_name":"PMPIX_Comm_get_failed.cold"},"7685":{"probe_name":"mpi","function_name":"PMPIX_Comm_iagree"},"7686":{"probe_name":"mpi","function_name":"PMPIX_Comm_iagree.cold"},"7687":{"probe_name":"mpi","function_name":"PMPIX_Comm_is_revoked"},"7688":{"probe_name":"mpi","function_name":"PMPIX_Comm_revoke"},"7689":{"probe_name":"mpi","function_name":"PMPIX_Comm_revoke.cold"},"7690":{"probe_name":"mpi","function_name":"PMPIX_Comm_shrink"},"7691":{"probe_name":"mpi","function_name":"PMPIX_Comm_shrink.cold"},"7692":{"probe_name":"mpi","function_name":"PMPI_Abort"},"7693":{"probe_name":"mpi","function_name":"PMPI_Accumulate"},"7694":{"probe_name":"mpi","function_name":"PMPI_Accumulate.cold"},"7695":{"probe_name":"mpi","function_name":"PMPI_Add_error_class"},"7696":{"probe_name":"mpi","function_name":"PMPI_Add_error_class.cold"},"7697":{"probe_name":"mpi","function_name":"PMPI_Add_error_code"},"7698":{"probe_name":"mpi","function_name":"PMPI_Add_error_code.cold"},"7699":{"probe_name":"mpi","function_name":"PMPI_Add_error_string"},"7700":{"probe_name":"mpi","function_name":"PMPI_Address"},"7701":{"probe_name":"mpi","function_name":"PMPI_Allgather"},"7702":{"probe_name":"mpi","function_name":"PMPI_Allgather.cold"},"7703":{"probe_name":"mpi","function_name":"PMPI_Allgather_init"},"7704":{"probe_name":"mpi","function_name":"PMPI_Allgather_init.cold"},"7705":{"probe_name":"mpi","function_name":"PMPI_Allgatherv"},"7706":{"probe_name":"mpi","function_name":"PMPI_Allgatherv.cold"},"7707":{"probe_name":"mpi","function_name":"PMPI_Allgatherv_init"},"7708":{"probe_name":"mpi","function_name":"PMPI_Allgatherv_init.cold"},"7709":{"probe_name":"mpi","function_name":"PMPI_Alloc_mem"},"7710":{"probe_name":"mpi","function_name":"PMPI_Allreduce"},"7711":{"probe_name":"mpi","function_name":"PMPI_Allreduce.cold"},"7712":{"probe_name":"mpi","function_name":"PMPI_Allreduce_init"},"7713":{"probe_name":"mpi","function_name":"PMPI_Allreduce_init.cold"},"7714":{"probe_name":"mpi","function_name":"PMPI_Alltoall"},"7715":{"probe_name":"mpi","function_name":"PMPI_Alltoall.cold"},"7716":{"probe_name":"mpi","function_name":"PMPI_Alltoall_init"},"7717":{"probe_name":"mpi","function_name":"PMPI_Alltoall_init.cold"},"7718":{"probe_name":"mpi","function_name":"PMPI_Alltoallv"},"7719":{"probe_name":"mpi","function_name":"PMPI_Alltoallv.cold"},"7720":{"probe_name":"mpi","function_name":"PMPI_Alltoallv_init"},"7721":{"probe_name":"mpi","function_name":"PMPI_Alltoallv_init.cold"},"7722":{"probe_name":"mpi","function_name":"PMPI_Alltoallw"},"7723":{"probe_name":"mpi","function_name":"PMPI_Alltoallw.cold"},"7724":{"probe_name":"mpi","function_name":"PMPI_Alltoallw_init"},"7725":{"probe_name":"mpi","function_name":"PMPI_Alltoallw_init.cold"},"7726":{"probe_name":"mpi","function_name":"PMPI_Attr_delete"},"7727":{"probe_name":"mpi","function_name":"PMPI_Attr_get"},"7728":{"probe_name":"mpi","function_name":"PMPI_Attr_get.cold"},"7729":{"probe_name":"mpi","function_name":"PMPI_Attr_put"},"7730":{"probe_name":"mpi","function_name":"PMPI_Barrier"},"7731":{"probe_name":"mpi","function_name":"PMPI_Barrier.cold"},"7732":{"probe_name":"mpi","function_name":"PMPI_Barrier_init"},"7733":{"probe_name":"mpi","function_name":"PMPI_Barrier_init.cold"},"7734":{"probe_name":"mpi","function_name":"PMPI_Bcast"},"7735":{"probe_name":"mpi","function_name":"PMPI_Bcast.cold"},"7736":{"probe_name":"mpi","function_name":"PMPI_Bcast_init"},"7737":{"probe_name":"mpi","function_name":"PMPI_Bcast_init.cold"},"7738":{"probe_name":"mpi","function_name":"PMPI_Bsend"},"7739":{"probe_name":"mpi","function_name":"PMPI_Bsend.cold"},"7740":{"probe_name":"mpi","function_name":"PMPI_Bsend_init"},"7741":{"probe_name":"mpi","function_name":"PMPI_Bsend_init.cold"},"7742":{"probe_name":"mpi","function_name":"PMPI_Buffer_attach"},"7743":{"probe_name":"mpi","function_name":"PMPI_Buffer_detach"},"7744":{"probe_name":"mpi","function_name":"PMPI_Cancel"},"7745":{"probe_name":"mpi","function_name":"PMPI_Cancel.cold"},"7746":{"probe_name":"mpi","function_name":"PMPI_Cart_coords"},"7747":{"probe_name":"mpi","function_name":"PMPI_Cart_coords.cold"},"7748":{"probe_name":"mpi","function_name":"PMPI_Cart_create"},"7749":{"probe_name":"mpi","function_name":"PMPI_Cart_create.cold"},"7750":{"probe_name":"mpi","function_name":"PMPI_Cart_get"},"7751":{"probe_name":"mpi","function_name":"PMPI_Cart_get.cold"},"7752":{"probe_name":"mpi","function_name":"PMPI_Cart_map"},"7753":{"probe_name":"mpi","function_name":"PMPI_Cart_map.cold"},"7754":{"probe_name":"mpi","function_name":"PMPI_Cart_rank"},"7755":{"probe_name":"mpi","function_name":"PMPI_Cart_rank.cold"},"7756":{"probe_name":"mpi","function_name":"PMPI_Cart_shift"},"7757":{"probe_name":"mpi","function_name":"PMPI_Cart_shift.cold"},"7758":{"probe_name":"mpi","function_name":"PMPI_Cart_sub"},"7759":{"probe_name":"mpi","function_name":"PMPI_Cart_sub.cold"},"7760":{"probe_name":"mpi","function_name":"PMPI_Cartdim_get"},"7761":{"probe_name":"mpi","function_name":"PMPI_Cartdim_get.cold"},"7762":{"probe_name":"mpi","function_name":"PMPI_Close_port"},"7763":{"probe_name":"mpi","function_name":"PMPI_Close_port.cold"},"7764":{"probe_name":"mpi","function_name":"PMPI_Comm_accept"},"7765":{"probe_name":"mpi","function_name":"PMPI_Comm_accept.cold"},"7766":{"probe_name":"mpi","function_name":"PMPI_Comm_c2f"},"7767":{"probe_name":"mpi","function_name":"PMPI_Comm_call_errhandler"},"7768":{"probe_name":"mpi","function_name":"PMPI_Comm_call_errhandler.cold"},"7769":{"probe_name":"mpi","function_name":"PMPI_Comm_compare"},"7770":{"probe_name":"mpi","function_name":"PMPI_Comm_compare.cold"},"7771":{"probe_name":"mpi","function_name":"PMPI_Comm_connect"},"7772":{"probe_name":"mpi","function_name":"PMPI_Comm_connect.cold"},"7773":{"probe_name":"mpi","function_name":"PMPI_Comm_create"},"7774":{"probe_name":"mpi","function_name":"PMPI_Comm_create.cold"},"7775":{"probe_name":"mpi","function_name":"PMPI_Comm_create_errhandler"},"7776":{"probe_name":"mpi","function_name":"PMPI_Comm_create_from_group"},"7777":{"probe_name":"mpi","function_name":"PMPI_Comm_create_group"},"7778":{"probe_name":"mpi","function_name":"PMPI_Comm_create_group.cold"},"7779":{"probe_name":"mpi","function_name":"PMPI_Comm_create_keyval"},"7780":{"probe_name":"mpi","function_name":"PMPI_Comm_delete_attr"},"7781":{"probe_name":"mpi","function_name":"PMPI_Comm_disconnect"},"7782":{"probe_name":"mpi","function_name":"PMPI_Comm_dup"},"7783":{"probe_name":"mpi","function_name":"PMPI_Comm_dup.cold"},"7784":{"probe_name":"mpi","function_name":"PMPI_Comm_dup_with_info"},"7785":{"probe_name":"mpi","function_name":"PMPI_Comm_dup_with_info.cold"},"7786":{"probe_name":"mpi","function_name":"PMPI_Comm_f2c"},"7787":{"probe_name":"mpi","function_name":"PMPI_Comm_free"},"7788":{"probe_name":"mpi","function_name":"PMPI_Comm_free.cold"},"7789":{"probe_name":"mpi","function_name":"PMPI_Comm_free_keyval"},"7790":{"probe_name":"mpi","function_name":"PMPI_Comm_get_attr"},"7791":{"probe_name":"mpi","function_name":"PMPI_Comm_get_errhandler"},"7792":{"probe_name":"mpi","function_name":"PMPI_Comm_get_info"},"7793":{"probe_name":"mpi","function_name":"PMPI_Comm_get_name"},"7794":{"probe_name":"mpi","function_name":"PMPI_Comm_get_parent"},"7795":{"probe_name":"mpi","function_name":"PMPI_Comm_group"},"7796":{"probe_name":"mpi","function_name":"PMPI_Comm_group.cold"},"7797":{"probe_name":"mpi","function_name":"PMPI_Comm_idup"},"7798":{"probe_name":"mpi","function_name":"PMPI_Comm_idup.cold"},"7799":{"probe_name":"mpi","function_name":"PMPI_Comm_idup_with_info"},"7800":{"probe_name":"mpi","function_name":"PMPI_Comm_idup_with_info.cold"},"7801":{"probe_name":"mpi","function_name":"PMPI_Comm_join"},"7802":{"probe_name":"mpi","function_name":"PMPI_Comm_join.cold"},"7803":{"probe_name":"mpi","function_name":"PMPI_Comm_rank"},"7804":{"probe_name":"mpi","function_name":"PMPI_Comm_remote_group"},"7805":{"probe_name":"mpi","function_name":"PMPI_Comm_remote_size"},"7806":{"probe_name":"mpi","function_name":"PMPI_Comm_set_attr"},"7807":{"probe_name":"mpi","function_name":"PMPI_Comm_set_errhandler"},"7808":{"probe_name":"mpi","function_name":"PMPI_Comm_set_info"},"7809":{"probe_name":"mpi","function_name":"PMPI_Comm_set_name"},"7810":{"probe_name":"mpi","function_name":"PMPI_Comm_set_name.cold"},"7811":{"probe_name":"mpi","function_name":"PMPI_Comm_size"},"7812":{"probe_name":"mpi","function_name":"PMPI_Comm_spawn"},"7813":{"probe_name":"mpi","function_name":"PMPI_Comm_spawn.cold"},"7814":{"probe_name":"mpi","function_name":"PMPI_Comm_spawn_multiple"},"7815":{"probe_name":"mpi","function_name":"PMPI_Comm_spawn_multiple.cold"},"7816":{"probe_name":"mpi","function_name":"PMPI_Comm_split"},"7817":{"probe_name":"mpi","function_name":"PMPI_Comm_split.cold"},"7818":{"probe_name":"mpi","function_name":"PMPI_Comm_split_type"},"7819":{"probe_name":"mpi","function_name":"PMPI_Comm_split_type.cold"},"7820":{"probe_name":"mpi","function_name":"PMPI_Comm_test_inter"},"7821":{"probe_name":"mpi","function_name":"PMPI_Compare_and_swap"},"7822":{"probe_name":"mpi","function_name":"PMPI_Compare_and_swap.cold"},"7823":{"probe_name":"mpi","function_name":"PMPI_Dims_create"},"7824":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_create"},"7825":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_create.cold"},"7826":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_create_adjacent"},"7827":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_create_adjacent.cold"},"7828":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_neighbors"},"7829":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_neighbors.cold"},"7830":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_neighbors_count"},"7831":{"probe_name":"mpi","function_name":"PMPI_Dist_graph_neighbors_count.cold"},"7832":{"probe_name":"mpi","function_name":"PMPI_Errhandler_c2f"},"7833":{"probe_name":"mpi","function_name":"PMPI_Errhandler_create"},"7834":{"probe_name":"mpi","function_name":"PMPI_Errhandler_f2c"},"7835":{"probe_name":"mpi","function_name":"PMPI_Errhandler_free"},"7836":{"probe_name":"mpi","function_name":"PMPI_Errhandler_get"},"7837":{"probe_name":"mpi","function_name":"PMPI_Errhandler_set"},"7838":{"probe_name":"mpi","function_name":"PMPI_Error_class"},"7839":{"probe_name":"mpi","function_name":"PMPI_Error_class.cold"},"7840":{"probe_name":"mpi","function_name":"PMPI_Error_string"},"7841":{"probe_name":"mpi","function_name":"PMPI_Error_string.cold"},"7842":{"probe_name":"mpi","function_name":"PMPI_Exscan"},"7843":{"probe_name":"mpi","function_name":"PMPI_Exscan.cold"},"7844":{"probe_name":"mpi","function_name":"PMPI_Exscan_init"},"7845":{"probe_name":"mpi","function_name":"PMPI_Exscan_init.cold"},"7846":{"probe_name":"mpi","function_name":"PMPI_Fetch_and_op"},"7847":{"probe_name":"mpi","function_name":"PMPI_Fetch_and_op.cold"},"7848":{"probe_name":"mpi","function_name":"PMPI_File_c2f"},"7849":{"probe_name":"mpi","function_name":"PMPI_File_call_errhandler"},"7850":{"probe_name":"mpi","function_name":"PMPI_File_call_errhandler.cold"},"7851":{"probe_name":"mpi","function_name":"PMPI_File_close"},"7852":{"probe_name":"mpi","function_name":"PMPI_File_close.cold"},"7853":{"probe_name":"mpi","function_name":"PMPI_File_create_errhandler"},"7854":{"probe_name":"mpi","function_name":"PMPI_File_delete"},"7855":{"probe_name":"mpi","function_name":"PMPI_File_delete.cold"},"7856":{"probe_name":"mpi","function_name":"PMPI_File_f2c"},"7857":{"probe_name":"mpi","function_name":"PMPI_File_get_amode"},"7858":{"probe_name":"mpi","function_name":"PMPI_File_get_amode.cold"},"7859":{"probe_name":"mpi","function_name":"PMPI_File_get_atomicity"},"7860":{"probe_name":"mpi","function_name":"PMPI_File_get_atomicity.cold"},"7861":{"probe_name":"mpi","function_name":"PMPI_File_get_byte_offset"},"7862":{"probe_name":"mpi","function_name":"PMPI_File_get_byte_offset.cold"},"7863":{"probe_name":"mpi","function_name":"PMPI_File_get_errhandler"},"7864":{"probe_name":"mpi","function_name":"PMPI_File_get_group"},"7865":{"probe_name":"mpi","function_name":"PMPI_File_get_group.cold"},"7866":{"probe_name":"mpi","function_name":"PMPI_File_get_info"},"7867":{"probe_name":"mpi","function_name":"PMPI_File_get_info.cold"},"7868":{"probe_name":"mpi","function_name":"PMPI_File_get_position"},"7869":{"probe_name":"mpi","function_name":"PMPI_File_get_position.cold"},"7870":{"probe_name":"mpi","function_name":"PMPI_File_get_position_shared"},"7871":{"probe_name":"mpi","function_name":"PMPI_File_get_position_shared.cold"},"7872":{"probe_name":"mpi","function_name":"PMPI_File_get_size"},"7873":{"probe_name":"mpi","function_name":"PMPI_File_get_size.cold"},"7874":{"probe_name":"mpi","function_name":"PMPI_File_get_type_extent"},"7875":{"probe_name":"mpi","function_name":"PMPI_File_get_type_extent.cold"},"7876":{"probe_name":"mpi","function_name":"PMPI_File_get_view"},"7877":{"probe_name":"mpi","function_name":"PMPI_File_get_view.cold"},"7878":{"probe_name":"mpi","function_name":"PMPI_File_iread"},"7879":{"probe_name":"mpi","function_name":"PMPI_File_iread.cold"},"7880":{"probe_name":"mpi","function_name":"PMPI_File_iread_all"},"7881":{"probe_name":"mpi","function_name":"PMPI_File_iread_all.cold"},"7882":{"probe_name":"mpi","function_name":"PMPI_File_iread_at"},"7883":{"probe_name":"mpi","function_name":"PMPI_File_iread_at.cold"},"7884":{"probe_name":"mpi","function_name":"PMPI_File_iread_at_all"},"7885":{"probe_name":"mpi","function_name":"PMPI_File_iread_at_all.cold"},"7886":{"probe_name":"mpi","function_name":"PMPI_File_iread_shared"},"7887":{"probe_name":"mpi","function_name":"PMPI_File_iread_shared.cold"},"7888":{"probe_name":"mpi","function_name":"PMPI_File_iwrite"},"7889":{"probe_name":"mpi","function_name":"PMPI_File_iwrite.cold"},"7890":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_all"},"7891":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_all.cold"},"7892":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_at"},"7893":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_at.cold"},"7894":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_at_all"},"7895":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_at_all.cold"},"7896":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_shared"},"7897":{"probe_name":"mpi","function_name":"PMPI_File_iwrite_shared.cold"},"7898":{"probe_name":"mpi","function_name":"PMPI_File_open"},"7899":{"probe_name":"mpi","function_name":"PMPI_File_open.cold"},"7900":{"probe_name":"mpi","function_name":"PMPI_File_preallocate"},"7901":{"probe_name":"mpi","function_name":"PMPI_File_preallocate.cold"},"7902":{"probe_name":"mpi","function_name":"PMPI_File_read"},"7903":{"probe_name":"mpi","function_name":"PMPI_File_read.cold"},"7904":{"probe_name":"mpi","function_name":"PMPI_File_read_all"},"7905":{"probe_name":"mpi","function_name":"PMPI_File_read_all.cold"},"7906":{"probe_name":"mpi","function_name":"PMPI_File_read_all_begin"},"7907":{"probe_name":"mpi","function_name":"PMPI_File_read_all_begin.cold"},"7908":{"probe_name":"mpi","function_name":"PMPI_File_read_all_end"},"7909":{"probe_name":"mpi","function_name":"PMPI_File_read_all_end.cold"},"7910":{"probe_name":"mpi","function_name":"PMPI_File_read_at"},"7911":{"probe_name":"mpi","function_name":"PMPI_File_read_at.cold"},"7912":{"probe_name":"mpi","function_name":"PMPI_File_read_at_all"},"7913":{"probe_name":"mpi","function_name":"PMPI_File_read_at_all.cold"},"7914":{"probe_name":"mpi","function_name":"PMPI_File_read_at_all_begin"},"7915":{"probe_name":"mpi","function_name":"PMPI_File_read_at_all_begin.cold"},"7916":{"probe_name":"mpi","function_name":"PMPI_File_read_at_all_end"},"7917":{"probe_name":"mpi","function_name":"PMPI_File_read_at_all_end.cold"},"7918":{"probe_name":"mpi","function_name":"PMPI_File_read_ordered"},"7919":{"probe_name":"mpi","function_name":"PMPI_File_read_ordered.cold"},"7920":{"probe_name":"mpi","function_name":"PMPI_File_read_ordered_begin"},"7921":{"probe_name":"mpi","function_name":"PMPI_File_read_ordered_begin.cold"},"7922":{"probe_name":"mpi","function_name":"PMPI_File_read_ordered_end"},"7923":{"probe_name":"mpi","function_name":"PMPI_File_read_ordered_end.cold"},"7924":{"probe_name":"mpi","function_name":"PMPI_File_read_shared"},"7925":{"probe_name":"mpi","function_name":"PMPI_File_read_shared.cold"},"7926":{"probe_name":"mpi","function_name":"PMPI_File_seek"},"7927":{"probe_name":"mpi","function_name":"PMPI_File_seek.cold"},"7928":{"probe_name":"mpi","function_name":"PMPI_File_seek_shared"},"7929":{"probe_name":"mpi","function_name":"PMPI_File_seek_shared.cold"},"7930":{"probe_name":"mpi","function_name":"PMPI_File_set_atomicity"},"7931":{"probe_name":"mpi","function_name":"PMPI_File_set_atomicity.cold"},"7932":{"probe_name":"mpi","function_name":"PMPI_File_set_errhandler"},"7933":{"probe_name":"mpi","function_name":"PMPI_File_set_info"},"7934":{"probe_name":"mpi","function_name":"PMPI_File_set_info.cold"},"7935":{"probe_name":"mpi","function_name":"PMPI_File_set_size"},"7936":{"probe_name":"mpi","function_name":"PMPI_File_set_size.cold"},"7937":{"probe_name":"mpi","function_name":"PMPI_File_set_view"},"7938":{"probe_name":"mpi","function_name":"PMPI_File_set_view.cold"},"7939":{"probe_name":"mpi","function_name":"PMPI_File_sync"},"7940":{"probe_name":"mpi","function_name":"PMPI_File_sync.cold"},"7941":{"probe_name":"mpi","function_name":"PMPI_File_write"},"7942":{"probe_name":"mpi","function_name":"PMPI_File_write.cold"},"7943":{"probe_name":"mpi","function_name":"PMPI_File_write_all"},"7944":{"probe_name":"mpi","function_name":"PMPI_File_write_all.cold"},"7945":{"probe_name":"mpi","function_name":"PMPI_File_write_all_begin"},"7946":{"probe_name":"mpi","function_name":"PMPI_File_write_all_begin.cold"},"7947":{"probe_name":"mpi","function_name":"PMPI_File_write_all_end"},"7948":{"probe_name":"mpi","function_name":"PMPI_File_write_all_end.cold"},"7949":{"probe_name":"mpi","function_name":"PMPI_File_write_at"},"7950":{"probe_name":"mpi","function_name":"PMPI_File_write_at.cold"},"7951":{"probe_name":"mpi","function_name":"PMPI_File_write_at_all"},"7952":{"probe_name":"mpi","function_name":"PMPI_File_write_at_all.cold"},"7953":{"probe_name":"mpi","function_name":"PMPI_File_write_at_all_begin"},"7954":{"probe_name":"mpi","function_name":"PMPI_File_write_at_all_begin.cold"},"7955":{"probe_name":"mpi","function_name":"PMPI_File_write_at_all_end"},"7956":{"probe_name":"mpi","function_name":"PMPI_File_write_at_all_end.cold"},"7957":{"probe_name":"mpi","function_name":"PMPI_File_write_ordered"},"7958":{"probe_name":"mpi","function_name":"PMPI_File_write_ordered.cold"},"7959":{"probe_name":"mpi","function_name":"PMPI_File_write_ordered_begin"},"7960":{"probe_name":"mpi","function_name":"PMPI_File_write_ordered_begin.cold"},"7961":{"probe_name":"mpi","function_name":"PMPI_File_write_ordered_end"},"7962":{"probe_name":"mpi","function_name":"PMPI_File_write_ordered_end.cold"},"7963":{"probe_name":"mpi","function_name":"PMPI_File_write_shared"},"7964":{"probe_name":"mpi","function_name":"PMPI_File_write_shared.cold"},"7965":{"probe_name":"mpi","function_name":"PMPI_Finalize"},"7966":{"probe_name":"mpi","function_name":"PMPI_Finalized"},"7967":{"probe_name":"mpi","function_name":"PMPI_Free_mem"},"7968":{"probe_name":"mpi","function_name":"PMPI_Gather"},"7969":{"probe_name":"mpi","function_name":"PMPI_Gather.cold"},"7970":{"probe_name":"mpi","function_name":"PMPI_Gather_init"},"7971":{"probe_name":"mpi","function_name":"PMPI_Gather_init.cold"},"7972":{"probe_name":"mpi","function_name":"PMPI_Gatherv"},"7973":{"probe_name":"mpi","function_name":"PMPI_Gatherv.cold"},"7974":{"probe_name":"mpi","function_name":"PMPI_Gatherv_init"},"7975":{"probe_name":"mpi","function_name":"PMPI_Gatherv_init.cold"},"7976":{"probe_name":"mpi","function_name":"PMPI_Get"},"7977":{"probe_name":"mpi","function_name":"PMPI_Get.cold"},"7978":{"probe_name":"mpi","function_name":"PMPI_Get_accumulate"},"7979":{"probe_name":"mpi","function_name":"PMPI_Get_accumulate.cold"},"7980":{"probe_name":"mpi","function_name":"PMPI_Get_address"},"7981":{"probe_name":"mpi","function_name":"PMPI_Get_count"},"7982":{"probe_name":"mpi","function_name":"PMPI_Get_elements"},"7983":{"probe_name":"mpi","function_name":"PMPI_Get_elements_x"},"7984":{"probe_name":"mpi","function_name":"PMPI_Get_library_version"},"7985":{"probe_name":"mpi","function_name":"PMPI_Get_processor_name"},"7986":{"probe_name":"mpi","function_name":"PMPI_Get_version"},"7987":{"probe_name":"mpi","function_name":"PMPI_Graph_create"},"7988":{"probe_name":"mpi","function_name":"PMPI_Graph_create.cold"},"7989":{"probe_name":"mpi","function_name":"PMPI_Graph_get"},"7990":{"probe_name":"mpi","function_name":"PMPI_Graph_get.cold"},"7991":{"probe_name":"mpi","function_name":"PMPI_Graph_map"},"7992":{"probe_name":"mpi","function_name":"PMPI_Graph_map.cold"},"7993":{"probe_name":"mpi","function_name":"PMPI_Graph_neighbors"},"7994":{"probe_name":"mpi","function_name":"PMPI_Graph_neighbors.cold"},"7995":{"probe_name":"mpi","function_name":"PMPI_Graph_neighbors_count"},"7996":{"probe_name":"mpi","function_name":"PMPI_Graph_neighbors_count.cold"},"7997":{"probe_name":"mpi","function_name":"PMPI_Graphdims_get"},"7998":{"probe_name":"mpi","function_name":"PMPI_Graphdims_get.cold"},"7999":{"probe_name":"mpi","function_name":"PMPI_Grequest_complete"},"8000":{"probe_name":"mpi","function_name":"PMPI_Grequest_start"},"8001":{"probe_name":"mpi","function_name":"PMPI_Grequest_start.cold"},"8002":{"probe_name":"mpi","function_name":"PMPI_Group_c2f"},"8003":{"probe_name":"mpi","function_name":"PMPI_Group_compare"},"8004":{"probe_name":"mpi","function_name":"PMPI_Group_difference"},"8005":{"probe_name":"mpi","function_name":"PMPI_Group_difference.cold"},"8006":{"probe_name":"mpi","function_name":"PMPI_Group_excl"},"8007":{"probe_name":"mpi","function_name":"PMPI_Group_excl.cold"},"8008":{"probe_name":"mpi","function_name":"PMPI_Group_f2c"},"8009":{"probe_name":"mpi","function_name":"PMPI_Group_free"},"8010":{"probe_name":"mpi","function_name":"PMPI_Group_free.cold"},"8011":{"probe_name":"mpi","function_name":"PMPI_Group_from_session_pset"},"8012":{"probe_name":"mpi","function_name":"PMPI_Group_from_session_pset.cold"},"8013":{"probe_name":"mpi","function_name":"PMPI_Group_incl"},"8014":{"probe_name":"mpi","function_name":"PMPI_Group_incl.cold"},"8015":{"probe_name":"mpi","function_name":"PMPI_Group_intersection"},"8016":{"probe_name":"mpi","function_name":"PMPI_Group_intersection.cold"},"8017":{"probe_name":"mpi","function_name":"PMPI_Group_range_excl"},"8018":{"probe_name":"mpi","function_name":"PMPI_Group_range_excl.cold"},"8019":{"probe_name":"mpi","function_name":"PMPI_Group_range_incl"},"8020":{"probe_name":"mpi","function_name":"PMPI_Group_range_incl.cold"},"8021":{"probe_name":"mpi","function_name":"PMPI_Group_rank"},"8022":{"probe_name":"mpi","function_name":"PMPI_Group_size"},"8023":{"probe_name":"mpi","function_name":"PMPI_Group_translate_ranks"},"8024":{"probe_name":"mpi","function_name":"PMPI_Group_translate_ranks.cold"},"8025":{"probe_name":"mpi","function_name":"PMPI_Group_union"},"8026":{"probe_name":"mpi","function_name":"PMPI_Group_union.cold"},"8027":{"probe_name":"mpi","function_name":"PMPI_Iallgather"},"8028":{"probe_name":"mpi","function_name":"PMPI_Iallgather.cold"},"8029":{"probe_name":"mpi","function_name":"PMPI_Iallgatherv"},"8030":{"probe_name":"mpi","function_name":"PMPI_Iallgatherv.cold"},"8031":{"probe_name":"mpi","function_name":"PMPI_Iallreduce"},"8032":{"probe_name":"mpi","function_name":"PMPI_Iallreduce.cold"},"8033":{"probe_name":"mpi","function_name":"PMPI_Ialltoall"},"8034":{"probe_name":"mpi","function_name":"PMPI_Ialltoall.cold"},"8035":{"probe_name":"mpi","function_name":"PMPI_Ialltoallv"},"8036":{"probe_name":"mpi","function_name":"PMPI_Ialltoallv.cold"},"8037":{"probe_name":"mpi","function_name":"PMPI_Ialltoallw"},"8038":{"probe_name":"mpi","function_name":"PMPI_Ialltoallw.cold"},"8039":{"probe_name":"mpi","function_name":"PMPI_Ibarrier"},"8040":{"probe_name":"mpi","function_name":"PMPI_Ibarrier.cold"},"8041":{"probe_name":"mpi","function_name":"PMPI_Ibcast"},"8042":{"probe_name":"mpi","function_name":"PMPI_Ibcast.cold"},"8043":{"probe_name":"mpi","function_name":"PMPI_Ibsend"},"8044":{"probe_name":"mpi","function_name":"PMPI_Ibsend.cold"},"8045":{"probe_name":"mpi","function_name":"PMPI_Iexscan"},"8046":{"probe_name":"mpi","function_name":"PMPI_Iexscan.cold"},"8047":{"probe_name":"mpi","function_name":"PMPI_Igather"},"8048":{"probe_name":"mpi","function_name":"PMPI_Igather.cold"},"8049":{"probe_name":"mpi","function_name":"PMPI_Igatherv"},"8050":{"probe_name":"mpi","function_name":"PMPI_Igatherv.cold"},"8051":{"probe_name":"mpi","function_name":"PMPI_Improbe"},"8052":{"probe_name":"mpi","function_name":"PMPI_Improbe.cold"},"8053":{"probe_name":"mpi","function_name":"PMPI_Imrecv"},"8054":{"probe_name":"mpi","function_name":"PMPI_Imrecv.cold"},"8055":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_allgather"},"8056":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_allgather.cold"},"8057":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_allgatherv"},"8058":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_allgatherv.cold"},"8059":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_alltoall"},"8060":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_alltoall.cold"},"8061":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_alltoallv"},"8062":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_alltoallv.cold"},"8063":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_alltoallw"},"8064":{"probe_name":"mpi","function_name":"PMPI_Ineighbor_alltoallw.cold"},"8065":{"probe_name":"mpi","function_name":"PMPI_Info_c2f"},"8066":{"probe_name":"mpi","function_name":"PMPI_Info_create"},"8067":{"probe_name":"mpi","function_name":"PMPI_Info_create_env"},"8068":{"probe_name":"mpi","function_name":"PMPI_Info_create_env.cold"},"8069":{"probe_name":"mpi","function_name":"PMPI_Info_delete"},"8070":{"probe_name":"mpi","function_name":"PMPI_Info_delete.cold"},"8071":{"probe_name":"mpi","function_name":"PMPI_Info_dup"},"8072":{"probe_name":"mpi","function_name":"PMPI_Info_dup.cold"},"8073":{"probe_name":"mpi","function_name":"PMPI_Info_f2c"},"8074":{"probe_name":"mpi","function_name":"PMPI_Info_free"},"8075":{"probe_name":"mpi","function_name":"PMPI_Info_free.cold"},"8076":{"probe_name":"mpi","function_name":"PMPI_Info_get"},"8077":{"probe_name":"mpi","function_name":"PMPI_Info_get.cold"},"8078":{"probe_name":"mpi","function_name":"PMPI_Info_get_nkeys"},"8079":{"probe_name":"mpi","function_name":"PMPI_Info_get_nkeys.cold"},"8080":{"probe_name":"mpi","function_name":"PMPI_Info_get_nthkey"},"8081":{"probe_name":"mpi","function_name":"PMPI_Info_get_nthkey.cold"},"8082":{"probe_name":"mpi","function_name":"PMPI_Info_get_string"},"8083":{"probe_name":"mpi","function_name":"PMPI_Info_get_string.cold"},"8084":{"probe_name":"mpi","function_name":"PMPI_Info_get_valuelen"},"8085":{"probe_name":"mpi","function_name":"PMPI_Info_get_valuelen.cold"},"8086":{"probe_name":"mpi","function_name":"PMPI_Info_set"},"8087":{"probe_name":"mpi","function_name":"PMPI_Info_set.cold"},"8088":{"probe_name":"mpi","function_name":"PMPI_Init"},"8089":{"probe_name":"mpi","function_name":"PMPI_Init.cold"},"8090":{"probe_name":"mpi","function_name":"PMPI_Init_thread"},"8091":{"probe_name":"mpi","function_name":"PMPI_Init_thread.cold"},"8092":{"probe_name":"mpi","function_name":"PMPI_Initialized"},"8093":{"probe_name":"mpi","function_name":"PMPI_Intercomm_create"},"8094":{"probe_name":"mpi","function_name":"PMPI_Intercomm_create.cold"},"8095":{"probe_name":"mpi","function_name":"PMPI_Intercomm_create_from_groups"},"8096":{"probe_name":"mpi","function_name":"PMPI_Intercomm_merge"},"8097":{"probe_name":"mpi","function_name":"PMPI_Intercomm_merge.cold"},"8098":{"probe_name":"mpi","function_name":"PMPI_Iprobe"},"8099":{"probe_name":"mpi","function_name":"PMPI_Iprobe.cold"},"8100":{"probe_name":"mpi","function_name":"PMPI_Irecv"},"8101":{"probe_name":"mpi","function_name":"PMPI_Irecv.cold"},"8102":{"probe_name":"mpi","function_name":"PMPI_Ireduce"},"8103":{"probe_name":"mpi","function_name":"PMPI_Ireduce.cold"},"8104":{"probe_name":"mpi","function_name":"PMPI_Ireduce_scatter"},"8105":{"probe_name":"mpi","function_name":"PMPI_Ireduce_scatter.cold"},"8106":{"probe_name":"mpi","function_name":"PMPI_Ireduce_scatter_block"},"8107":{"probe_name":"mpi","function_name":"PMPI_Ireduce_scatter_block.cold"},"8108":{"probe_name":"mpi","function_name":"PMPI_Irsend"},"8109":{"probe_name":"mpi","function_name":"PMPI_Irsend.cold"},"8110":{"probe_name":"mpi","function_name":"PMPI_Is_thread_main"},"8111":{"probe_name":"mpi","function_name":"PMPI_Iscan"},"8112":{"probe_name":"mpi","function_name":"PMPI_Iscan.cold"},"8113":{"probe_name":"mpi","function_name":"PMPI_Iscatter"},"8114":{"probe_name":"mpi","function_name":"PMPI_Iscatter.cold"},"8115":{"probe_name":"mpi","function_name":"PMPI_Iscatterv"},"8116":{"probe_name":"mpi","function_name":"PMPI_Iscatterv.cold"},"8117":{"probe_name":"mpi","function_name":"PMPI_Isend"},"8118":{"probe_name":"mpi","function_name":"PMPI_Isend.cold"},"8119":{"probe_name":"mpi","function_name":"PMPI_Isendrecv"},"8120":{"probe_name":"mpi","function_name":"PMPI_Isendrecv.cold"},"8121":{"probe_name":"mpi","function_name":"PMPI_Isendrecv_replace"},"8122":{"probe_name":"mpi","function_name":"PMPI_Isendrecv_replace.cold"},"8123":{"probe_name":"mpi","function_name":"PMPI_Issend"},"8124":{"probe_name":"mpi","function_name":"PMPI_Issend.cold"},"8125":{"probe_name":"mpi","function_name":"PMPI_Keyval_create"},"8126":{"probe_name":"mpi","function_name":"PMPI_Keyval_free"},"8127":{"probe_name":"mpi","function_name":"PMPI_Lookup_name"},"8128":{"probe_name":"mpi","function_name":"PMPI_Lookup_name.cold"},"8129":{"probe_name":"mpi","function_name":"PMPI_Message_c2f"},"8130":{"probe_name":"mpi","function_name":"PMPI_Message_f2c"},"8131":{"probe_name":"mpi","function_name":"PMPI_Mprobe"},"8132":{"probe_name":"mpi","function_name":"PMPI_Mprobe.cold"},"8133":{"probe_name":"mpi","function_name":"PMPI_Mrecv"},"8134":{"probe_name":"mpi","function_name":"PMPI_Mrecv.cold"},"8135":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgather"},"8136":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgather.cold"},"8137":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgather_init"},"8138":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgather_init.cold"},"8139":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgatherv"},"8140":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgatherv.cold"},"8141":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgatherv_init"},"8142":{"probe_name":"mpi","function_name":"PMPI_Neighbor_allgatherv_init.cold"},"8143":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoall"},"8144":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoall.cold"},"8145":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoall_init"},"8146":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoall_init.cold"},"8147":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallv"},"8148":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallv.cold"},"8149":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallv_init"},"8150":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallv_init.cold"},"8151":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallw"},"8152":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallw.cold"},"8153":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallw_init"},"8154":{"probe_name":"mpi","function_name":"PMPI_Neighbor_alltoallw_init.cold"},"8155":{"probe_name":"mpi","function_name":"PMPI_Op_c2f"},"8156":{"probe_name":"mpi","function_name":"PMPI_Op_commutative"},"8157":{"probe_name":"mpi","function_name":"PMPI_Op_create"},"8158":{"probe_name":"mpi","function_name":"PMPI_Op_f2c"},"8159":{"probe_name":"mpi","function_name":"PMPI_Op_free"},"8160":{"probe_name":"mpi","function_name":"PMPI_Open_port"},"8161":{"probe_name":"mpi","function_name":"PMPI_Open_port.cold"},"8162":{"probe_name":"mpi","function_name":"PMPI_Pack"},"8163":{"probe_name":"mpi","function_name":"PMPI_Pack.cold"},"8164":{"probe_name":"mpi","function_name":"PMPI_Pack_external"},"8165":{"probe_name":"mpi","function_name":"PMPI_Pack_external.cold"},"8166":{"probe_name":"mpi","function_name":"PMPI_Pack_external_size"},"8167":{"probe_name":"mpi","function_name":"PMPI_Pack_external_size.cold"},"8168":{"probe_name":"mpi","function_name":"PMPI_Pack_size"},"8169":{"probe_name":"mpi","function_name":"PMPI_Parrived"},"8170":{"probe_name":"mpi","function_name":"PMPI_Parrived.cold"},"8171":{"probe_name":"mpi","function_name":"PMPI_Pcontrol"},"8172":{"probe_name":"mpi","function_name":"PMPI_Pready"},"8173":{"probe_name":"mpi","function_name":"PMPI_Pready.cold"},"8174":{"probe_name":"mpi","function_name":"PMPI_Pready_list"},"8175":{"probe_name":"mpi","function_name":"PMPI_Pready_list.cold"},"8176":{"probe_name":"mpi","function_name":"PMPI_Pready_range"},"8177":{"probe_name":"mpi","function_name":"PMPI_Pready_range.cold"},"8178":{"probe_name":"mpi","function_name":"PMPI_Precv_init"},"8179":{"probe_name":"mpi","function_name":"PMPI_Precv_init.cold"},"8180":{"probe_name":"mpi","function_name":"PMPI_Probe"},"8181":{"probe_name":"mpi","function_name":"PMPI_Probe.cold"},"8182":{"probe_name":"mpi","function_name":"PMPI_Psend_init"},"8183":{"probe_name":"mpi","function_name":"PMPI_Psend_init.cold"},"8184":{"probe_name":"mpi","function_name":"PMPI_Publish_name"},"8185":{"probe_name":"mpi","function_name":"PMPI_Publish_name.cold"},"8186":{"probe_name":"mpi","function_name":"PMPI_Put"},"8187":{"probe_name":"mpi","function_name":"PMPI_Put.cold"},"8188":{"probe_name":"mpi","function_name":"PMPI_Query_thread"},"8189":{"probe_name":"mpi","function_name":"PMPI_Raccumulate"},"8190":{"probe_name":"mpi","function_name":"PMPI_Raccumulate.cold"},"8191":{"probe_name":"mpi","function_name":"PMPI_Recv"},"8192":{"probe_name":"mpi","function_name":"PMPI_Recv.cold"},"8193":{"probe_name":"mpi","function_name":"PMPI_Recv_init"},"8194":{"probe_name":"mpi","function_name":"PMPI_Recv_init.cold"},"8195":{"probe_name":"mpi","function_name":"PMPI_Reduce"},"8196":{"probe_name":"mpi","function_name":"PMPI_Reduce.cold"},"8197":{"probe_name":"mpi","function_name":"PMPI_Reduce_init"},"8198":{"probe_name":"mpi","function_name":"PMPI_Reduce_init.cold"},"8199":{"probe_name":"mpi","function_name":"PMPI_Reduce_local"},"8200":{"probe_name":"mpi","function_name":"PMPI_Reduce_local.cold"},"8201":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter"},"8202":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter.cold"},"8203":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter_block"},"8204":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter_block.cold"},"8205":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter_block_init"},"8206":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter_block_init.cold"},"8207":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter_init"},"8208":{"probe_name":"mpi","function_name":"PMPI_Reduce_scatter_init.cold"},"8209":{"probe_name":"mpi","function_name":"PMPI_Register_datarep"},"8210":{"probe_name":"mpi","function_name":"PMPI_Register_datarep.cold"},"8211":{"probe_name":"mpi","function_name":"PMPI_Request_c2f"},"8212":{"probe_name":"mpi","function_name":"PMPI_Request_f2c"},"8213":{"probe_name":"mpi","function_name":"PMPI_Request_free"},"8214":{"probe_name":"mpi","function_name":"PMPI_Request_free.cold"},"8215":{"probe_name":"mpi","function_name":"PMPI_Request_get_status"},"8216":{"probe_name":"mpi","function_name":"PMPI_Rget"},"8217":{"probe_name":"mpi","function_name":"PMPI_Rget.cold"},"8218":{"probe_name":"mpi","function_name":"PMPI_Rget_accumulate"},"8219":{"probe_name":"mpi","function_name":"PMPI_Rget_accumulate.cold"},"8220":{"probe_name":"mpi","function_name":"PMPI_Rput"},"8221":{"probe_name":"mpi","function_name":"PMPI_Rput.cold"},"8222":{"probe_name":"mpi","function_name":"PMPI_Rsend"},"8223":{"probe_name":"mpi","function_name":"PMPI_Rsend.cold"},"8224":{"probe_name":"mpi","function_name":"PMPI_Rsend_init"},"8225":{"probe_name":"mpi","function_name":"PMPI_Rsend_init.cold"},"8226":{"probe_name":"mpi","function_name":"PMPI_Scan"},"8227":{"probe_name":"mpi","function_name":"PMPI_Scan.cold"},"8228":{"probe_name":"mpi","function_name":"PMPI_Scan_init"},"8229":{"probe_name":"mpi","function_name":"PMPI_Scan_init.cold"},"8230":{"probe_name":"mpi","function_name":"PMPI_Scatter"},"8231":{"probe_name":"mpi","function_name":"PMPI_Scatter.cold"},"8232":{"probe_name":"mpi","function_name":"PMPI_Scatter_init"},"8233":{"probe_name":"mpi","function_name":"PMPI_Scatter_init.cold"},"8234":{"probe_name":"mpi","function_name":"PMPI_Scatterv"},"8235":{"probe_name":"mpi","function_name":"PMPI_Scatterv.cold"},"8236":{"probe_name":"mpi","function_name":"PMPI_Scatterv_init"},"8237":{"probe_name":"mpi","function_name":"PMPI_Scatterv_init.cold"},"8238":{"probe_name":"mpi","function_name":"PMPI_Send"},"8239":{"probe_name":"mpi","function_name":"PMPI_Send.cold"},"8240":{"probe_name":"mpi","function_name":"PMPI_Send_init"},"8241":{"probe_name":"mpi","function_name":"PMPI_Send_init.cold"},"8242":{"probe_name":"mpi","function_name":"PMPI_Sendrecv"},"8243":{"probe_name":"mpi","function_name":"PMPI_Sendrecv.cold"},"8244":{"probe_name":"mpi","function_name":"PMPI_Sendrecv_replace"},"8245":{"probe_name":"mpi","function_name":"PMPI_Sendrecv_replace.cold"},"8246":{"probe_name":"mpi","function_name":"PMPI_Session_c2f"},"8247":{"probe_name":"mpi","function_name":"PMPI_Session_call_errhandler"},"8248":{"probe_name":"mpi","function_name":"PMPI_Session_call_errhandler.cold"},"8249":{"probe_name":"mpi","function_name":"PMPI_Session_create_errhandler"},"8250":{"probe_name":"mpi","function_name":"PMPI_Session_f2c"},"8251":{"probe_name":"mpi","function_name":"PMPI_Session_finalize"},"8252":{"probe_name":"mpi","function_name":"PMPI_Session_finalize.cold"},"8253":{"probe_name":"mpi","function_name":"PMPI_Session_get_errhandler"},"8254":{"probe_name":"mpi","function_name":"PMPI_Session_get_errhandler.cold"},"8255":{"probe_name":"mpi","function_name":"PMPI_Session_get_info"},"8256":{"probe_name":"mpi","function_name":"PMPI_Session_get_nth_pset"},"8257":{"probe_name":"mpi","function_name":"PMPI_Session_get_nth_pset.cold"},"8258":{"probe_name":"mpi","function_name":"PMPI_Session_get_num_psets"},"8259":{"probe_name":"mpi","function_name":"PMPI_Session_get_num_psets.cold"},"8260":{"probe_name":"mpi","function_name":"PMPI_Session_get_pset_info"},"8261":{"probe_name":"mpi","function_name":"PMPI_Session_get_pset_info.cold"},"8262":{"probe_name":"mpi","function_name":"PMPI_Session_init"},"8263":{"probe_name":"mpi","function_name":"PMPI_Session_init.cold"},"8264":{"probe_name":"mpi","function_name":"PMPI_Session_set_errhandler"},"8265":{"probe_name":"mpi","function_name":"PMPI_Session_set_info"},"8266":{"probe_name":"mpi","function_name":"PMPI_Ssend"},"8267":{"probe_name":"mpi","function_name":"PMPI_Ssend.cold"},"8268":{"probe_name":"mpi","function_name":"PMPI_Ssend_init"},"8269":{"probe_name":"mpi","function_name":"PMPI_Ssend_init.cold"},"8270":{"probe_name":"mpi","function_name":"PMPI_Start"},"8271":{"probe_name":"mpi","function_name":"PMPI_Start.cold"},"8272":{"probe_name":"mpi","function_name":"PMPI_Startall"},"8273":{"probe_name":"mpi","function_name":"PMPI_Status_c2f"},"8274":{"probe_name":"mpi","function_name":"PMPI_Status_c2f08"},"8275":{"probe_name":"mpi","function_name":"PMPI_Status_f082c"},"8276":{"probe_name":"mpi","function_name":"PMPI_Status_f082f"},"8277":{"probe_name":"mpi","function_name":"PMPI_Status_f2c"},"8278":{"probe_name":"mpi","function_name":"PMPI_Status_f2f08"},"8279":{"probe_name":"mpi","function_name":"PMPI_Status_set_cancelled"},"8280":{"probe_name":"mpi","function_name":"PMPI_Status_set_elements"},"8281":{"probe_name":"mpi","function_name":"PMPI_Status_set_elements_x"},"8282":{"probe_name":"mpi","function_name":"PMPI_T_category_changed"},"8283":{"probe_name":"mpi","function_name":"PMPI_T_category_get_categories"},"8284":{"probe_name":"mpi","function_name":"PMPI_T_category_get_cvars"},"8285":{"probe_name":"mpi","function_name":"PMPI_T_category_get_index"},"8286":{"probe_name":"mpi","function_name":"PMPI_T_category_get_info"},"8287":{"probe_name":"mpi","function_name":"PMPI_T_category_get_num"},"8288":{"probe_name":"mpi","function_name":"PMPI_T_category_get_pvars"},"8289":{"probe_name":"mpi","function_name":"PMPI_T_cvar_get_index"},"8290":{"probe_name":"mpi","function_name":"PMPI_T_cvar_get_info"},"8291":{"probe_name":"mpi","function_name":"PMPI_T_cvar_get_num"},"8292":{"probe_name":"mpi","function_name":"PMPI_T_cvar_handle_alloc"},"8293":{"probe_name":"mpi","function_name":"PMPI_T_cvar_handle_free"},"8294":{"probe_name":"mpi","function_name":"PMPI_T_cvar_read"},"8295":{"probe_name":"mpi","function_name":"PMPI_T_cvar_write"},"8296":{"probe_name":"mpi","function_name":"PMPI_T_enum_get_info"},"8297":{"probe_name":"mpi","function_name":"PMPI_T_enum_get_item"},"8298":{"probe_name":"mpi","function_name":"PMPI_T_finalize"},"8299":{"probe_name":"mpi","function_name":"PMPI_T_init_thread"},"8300":{"probe_name":"mpi","function_name":"PMPI_T_pvar_get_index"},"8301":{"probe_name":"mpi","function_name":"PMPI_T_pvar_get_info"},"8302":{"probe_name":"mpi","function_name":"PMPI_T_pvar_get_num"},"8303":{"probe_name":"mpi","function_name":"PMPI_T_pvar_handle_alloc"},"8304":{"probe_name":"mpi","function_name":"PMPI_T_pvar_handle_free"},"8305":{"probe_name":"mpi","function_name":"PMPI_T_pvar_read"},"8306":{"probe_name":"mpi","function_name":"PMPI_T_pvar_readreset"},"8307":{"probe_name":"mpi","function_name":"PMPI_T_pvar_reset"},"8308":{"probe_name":"mpi","function_name":"PMPI_T_pvar_session_create"},"8309":{"probe_name":"mpi","function_name":"PMPI_T_pvar_session_free"},"8310":{"probe_name":"mpi","function_name":"PMPI_T_pvar_start"},"8311":{"probe_name":"mpi","function_name":"PMPI_T_pvar_stop"},"8312":{"probe_name":"mpi","function_name":"PMPI_T_pvar_write"},"8313":{"probe_name":"mpi","function_name":"PMPI_Test"},"8314":{"probe_name":"mpi","function_name":"PMPI_Test_cancelled"},"8315":{"probe_name":"mpi","function_name":"PMPI_Testall"},"8316":{"probe_name":"mpi","function_name":"PMPI_Testany"},"8317":{"probe_name":"mpi","function_name":"PMPI_Testsome"},"8318":{"probe_name":"mpi","function_name":"PMPI_Topo_test"},"8319":{"probe_name":"mpi","function_name":"PMPI_Type_c2f"},"8320":{"probe_name":"mpi","function_name":"PMPI_Type_commit"},"8321":{"probe_name":"mpi","function_name":"PMPI_Type_commit.cold"},"8322":{"probe_name":"mpi","function_name":"PMPI_Type_contiguous"},"8323":{"probe_name":"mpi","function_name":"PMPI_Type_contiguous.cold"},"8324":{"probe_name":"mpi","function_name":"PMPI_Type_create_darray"},"8325":{"probe_name":"mpi","function_name":"PMPI_Type_create_darray.cold"},"8326":{"probe_name":"mpi","function_name":"PMPI_Type_create_f90_complex"},"8327":{"probe_name":"mpi","function_name":"PMPI_Type_create_f90_complex.cold"},"8328":{"probe_name":"mpi","function_name":"PMPI_Type_create_f90_integer"},"8329":{"probe_name":"mpi","function_name":"PMPI_Type_create_f90_integer.cold"},"8330":{"probe_name":"mpi","function_name":"PMPI_Type_create_f90_real"},"8331":{"probe_name":"mpi","function_name":"PMPI_Type_create_f90_real.cold"},"8332":{"probe_name":"mpi","function_name":"PMPI_Type_create_hindexed"},"8333":{"probe_name":"mpi","function_name":"PMPI_Type_create_hindexed.cold"},"8334":{"probe_name":"mpi","function_name":"PMPI_Type_create_hindexed_block"},"8335":{"probe_name":"mpi","function_name":"PMPI_Type_create_hindexed_block.cold"},"8336":{"probe_name":"mpi","function_name":"PMPI_Type_create_hvector"},"8337":{"probe_name":"mpi","function_name":"PMPI_Type_create_hvector.cold"},"8338":{"probe_name":"mpi","function_name":"PMPI_Type_create_indexed_block"},"8339":{"probe_name":"mpi","function_name":"PMPI_Type_create_indexed_block.cold"},"8340":{"probe_name":"mpi","function_name":"PMPI_Type_create_keyval"},"8341":{"probe_name":"mpi","function_name":"PMPI_Type_create_keyval.cold"},"8342":{"probe_name":"mpi","function_name":"PMPI_Type_create_resized"},"8343":{"probe_name":"mpi","function_name":"PMPI_Type_create_resized.cold"},"8344":{"probe_name":"mpi","function_name":"PMPI_Type_create_struct"},"8345":{"probe_name":"mpi","function_name":"PMPI_Type_create_struct.cold"},"8346":{"probe_name":"mpi","function_name":"PMPI_Type_create_subarray"},"8347":{"probe_name":"mpi","function_name":"PMPI_Type_create_subarray.cold"},"8348":{"probe_name":"mpi","function_name":"PMPI_Type_delete_attr"},"8349":{"probe_name":"mpi","function_name":"PMPI_Type_dup"},"8350":{"probe_name":"mpi","function_name":"PMPI_Type_dup.cold"},"8351":{"probe_name":"mpi","function_name":"PMPI_Type_extent"},"8352":{"probe_name":"mpi","function_name":"PMPI_Type_f2c"},"8353":{"probe_name":"mpi","function_name":"PMPI_Type_free"},"8354":{"probe_name":"mpi","function_name":"PMPI_Type_free_keyval"},"8355":{"probe_name":"mpi","function_name":"PMPI_Type_get_attr"},"8356":{"probe_name":"mpi","function_name":"PMPI_Type_get_contents"},"8357":{"probe_name":"mpi","function_name":"PMPI_Type_get_envelope"},"8358":{"probe_name":"mpi","function_name":"PMPI_Type_get_envelope.cold"},"8359":{"probe_name":"mpi","function_name":"PMPI_Type_get_extent"},"8360":{"probe_name":"mpi","function_name":"PMPI_Type_get_extent_x"},"8361":{"probe_name":"mpi","function_name":"PMPI_Type_get_name"},"8362":{"probe_name":"mpi","function_name":"PMPI_Type_get_true_extent"},"8363":{"probe_name":"mpi","function_name":"PMPI_Type_get_true_extent_x"},"8364":{"probe_name":"mpi","function_name":"PMPI_Type_hindexed"},"8365":{"probe_name":"mpi","function_name":"PMPI_Type_hvector"},"8366":{"probe_name":"mpi","function_name":"PMPI_Type_indexed"},"8367":{"probe_name":"mpi","function_name":"PMPI_Type_indexed.cold"},"8368":{"probe_name":"mpi","function_name":"PMPI_Type_lb"},"8369":{"probe_name":"mpi","function_name":"PMPI_Type_match_size"},"8370":{"probe_name":"mpi","function_name":"PMPI_Type_set_attr"},"8371":{"probe_name":"mpi","function_name":"PMPI_Type_set_name"},"8372":{"probe_name":"mpi","function_name":"PMPI_Type_size"},"8373":{"probe_name":"mpi","function_name":"PMPI_Type_size_x"},"8374":{"probe_name":"mpi","function_name":"PMPI_Type_struct"},"8375":{"probe_name":"mpi","function_name":"PMPI_Type_ub"},"8376":{"probe_name":"mpi","function_name":"PMPI_Type_vector"},"8377":{"probe_name":"mpi","function_name":"PMPI_Type_vector.cold"},"8378":{"probe_name":"mpi","function_name":"PMPI_Unpack"},"8379":{"probe_name":"mpi","function_name":"PMPI_Unpack.cold"},"8380":{"probe_name":"mpi","function_name":"PMPI_Unpack_external"},"8381":{"probe_name":"mpi","function_name":"PMPI_Unpack_external.cold"},"8382":{"probe_name":"mpi","function_name":"PMPI_Unpublish_name"},"8383":{"probe_name":"mpi","function_name":"PMPI_Unpublish_name.cold"},"8384":{"probe_name":"mpi","function_name":"PMPI_Wait"},"8385":{"probe_name":"mpi","function_name":"PMPI_Waitall"},"8386":{"probe_name":"mpi","function_name":"PMPI_Waitany"},"8387":{"probe_name":"mpi","function_name":"PMPI_Waitsome"},"8388":{"probe_name":"mpi","function_name":"PMPI_Win_allocate"},"8389":{"probe_name":"mpi","function_name":"PMPI_Win_allocate_shared"},"8390":{"probe_name":"mpi","function_name":"PMPI_Win_allocate_shared.cold"},"8391":{"probe_name":"mpi","function_name":"PMPI_Win_attach"},"8392":{"probe_name":"mpi","function_name":"PMPI_Win_attach.cold"},"8393":{"probe_name":"mpi","function_name":"PMPI_Win_c2f"},"8394":{"probe_name":"mpi","function_name":"PMPI_Win_call_errhandler"},"8395":{"probe_name":"mpi","function_name":"PMPI_Win_call_errhandler.cold"},"8396":{"probe_name":"mpi","function_name":"PMPI_Win_complete"},"8397":{"probe_name":"mpi","function_name":"PMPI_Win_complete.cold"},"8398":{"probe_name":"mpi","function_name":"PMPI_Win_create"},"8399":{"probe_name":"mpi","function_name":"PMPI_Win_create_dynamic"},"8400":{"probe_name":"mpi","function_name":"PMPI_Win_create_errhandler"},"8401":{"probe_name":"mpi","function_name":"PMPI_Win_create_keyval"},"8402":{"probe_name":"mpi","function_name":"PMPI_Win_delete_attr"},"8403":{"probe_name":"mpi","function_name":"PMPI_Win_detach"},"8404":{"probe_name":"mpi","function_name":"PMPI_Win_detach.cold"},"8405":{"probe_name":"mpi","function_name":"PMPI_Win_f2c"},"8406":{"probe_name":"mpi","function_name":"PMPI_Win_fence"},"8407":{"probe_name":"mpi","function_name":"PMPI_Win_fence.cold"},"8408":{"probe_name":"mpi","function_name":"PMPI_Win_flush"},"8409":{"probe_name":"mpi","function_name":"PMPI_Win_flush.cold"},"8410":{"probe_name":"mpi","function_name":"PMPI_Win_flush_all"},"8411":{"probe_name":"mpi","function_name":"PMPI_Win_flush_all.cold"},"8412":{"probe_name":"mpi","function_name":"PMPI_Win_flush_local"},"8413":{"probe_name":"mpi","function_name":"PMPI_Win_flush_local.cold"},"8414":{"probe_name":"mpi","function_name":"PMPI_Win_flush_local_all"},"8415":{"probe_name":"mpi","function_name":"PMPI_Win_flush_local_all.cold"},"8416":{"probe_name":"mpi","function_name":"PMPI_Win_free"},"8417":{"probe_name":"mpi","function_name":"PMPI_Win_free.cold"},"8418":{"probe_name":"mpi","function_name":"PMPI_Win_free_keyval"},"8419":{"probe_name":"mpi","function_name":"PMPI_Win_get_attr"},"8420":{"probe_name":"mpi","function_name":"PMPI_Win_get_errhandler"},"8421":{"probe_name":"mpi","function_name":"PMPI_Win_get_group"},"8422":{"probe_name":"mpi","function_name":"PMPI_Win_get_group.cold"},"8423":{"probe_name":"mpi","function_name":"PMPI_Win_get_info"},"8424":{"probe_name":"mpi","function_name":"PMPI_Win_get_info.cold"},"8425":{"probe_name":"mpi","function_name":"PMPI_Win_get_name"},"8426":{"probe_name":"mpi","function_name":"PMPI_Win_get_name.cold"},"8427":{"probe_name":"mpi","function_name":"PMPI_Win_lock"},"8428":{"probe_name":"mpi","function_name":"PMPI_Win_lock.cold"},"8429":{"probe_name":"mpi","function_name":"PMPI_Win_lock_all"},"8430":{"probe_name":"mpi","function_name":"PMPI_Win_lock_all.cold"},"8431":{"probe_name":"mpi","function_name":"PMPI_Win_post"},"8432":{"probe_name":"mpi","function_name":"PMPI_Win_post.cold"},"8433":{"probe_name":"mpi","function_name":"PMPI_Win_set_attr"},"8434":{"probe_name":"mpi","function_name":"PMPI_Win_set_errhandler"},"8435":{"probe_name":"mpi","function_name":"PMPI_Win_set_info"},"8436":{"probe_name":"mpi","function_name":"PMPI_Win_set_info.cold"},"8437":{"probe_name":"mpi","function_name":"PMPI_Win_set_name"},"8438":{"probe_name":"mpi","function_name":"PMPI_Win_set_name.cold"},"8439":{"probe_name":"mpi","function_name":"PMPI_Win_shared_query"},"8440":{"probe_name":"mpi","function_name":"PMPI_Win_shared_query.cold"},"8441":{"probe_name":"mpi","function_name":"PMPI_Win_start"},"8442":{"probe_name":"mpi","function_name":"PMPI_Win_start.cold"},"8443":{"probe_name":"mpi","function_name":"PMPI_Win_sync"},"8444":{"probe_name":"mpi","function_name":"PMPI_Win_sync.cold"},"8445":{"probe_name":"mpi","function_name":"PMPI_Win_test"},"8446":{"probe_name":"mpi","function_name":"PMPI_Win_test.cold"},"8447":{"probe_name":"mpi","function_name":"PMPI_Win_unlock"},"8448":{"probe_name":"mpi","function_name":"PMPI_Win_unlock.cold"},"8449":{"probe_name":"mpi","function_name":"PMPI_Win_unlock_all"},"8450":{"probe_name":"mpi","function_name":"PMPI_Win_unlock_all.cold"},"8451":{"probe_name":"mpi","function_name":"PMPI_Win_wait"},"8452":{"probe_name":"mpi","function_name":"PMPI_Win_wait.cold"},"8453":{"probe_name":"mpi","function_name":"PMPI_Wtick"},"8454":{"probe_name":"mpi","function_name":"PMPI_Wtime"},"8455":{"probe_name":"mpi","function_name":"PQ_adjustElementKey"},"8456":{"probe_name":"mpi","function_name":"PQ_adjustKey"},"8457":{"probe_name":"mpi","function_name":"PQ_decreaseElementKey"},"8458":{"probe_name":"mpi","function_name":"PQ_decreaseKey"},"8459":{"probe_name":"mpi","function_name":"PQ_delete"},"8460":{"probe_name":"mpi","function_name":"PQ_deleteElement"},"8461":{"probe_name":"mpi","function_name":"PQ_deleteMax"},"8462":{"probe_name":"mpi","function_name":"PQ_deleteMaxElement"},"8463":{"probe_name":"mpi","function_name":"PQ_exit"},"8464":{"probe_name":"mpi","function_name":"PQ_findMaxElement"},"8465":{"probe_name":"mpi","function_name":"PQ_findMaxKey"},"8466":{"probe_name":"mpi","function_name":"PQ_free"},"8467":{"probe_name":"mpi","function_name":"PQ_increaseElementKey"},"8468":{"probe_name":"mpi","function_name":"PQ_increaseKey"},"8469":{"probe_name":"mpi","function_name":"PQ_init"},"8470":{"probe_name":"mpi","function_name":"PQ_insert"},"8471":{"probe_name":"mpi","function_name":"PQ_insertElement"},"8472":{"probe_name":"mpi","function_name":"PQ_isEmpty"},"8473":{"probe_name":"mpi","function_name":"V_OUTPUT_ERR"},"8474":{"probe_name":"mpi","function_name":"__SENDER_BASED_METHOD_COPY"},"8475":{"probe_name":"mpi","function_name":"__do_global_dtors_aux"},"8476":{"probe_name":"mpi","function_name":"__muldc3"},"8477":{"probe_name":"mpi","function_name":"__mulsc3"},"8478":{"probe_name":"mpi","function_name":"__mulxc3"},"8479":{"probe_name":"mpi","function_name":"__ompi_datatype_allocate"},"8480":{"probe_name":"mpi","function_name":"__ompi_datatype_create_from_args"},"8481":{"probe_name":"mpi","function_name":"__ompi_datatype_create_from_packed_description.isra.0"},"8482":{"probe_name":"mpi","function_name":"__ompi_datatype_pack_description.isra.0"},"8483":{"probe_name":"mpi","function_name":"__ompi_datatype_release"},"8484":{"probe_name":"mpi","function_name":"_convert_process_name_to_string:0x84d30"},"8485":{"probe_name":"mpi","function_name":"_convert_process_name_to_string:0x88400"},"8486":{"probe_name":"mpi","function_name":"_convert_string_to_jobid"},"8487":{"probe_name":"mpi","function_name":"_convert_string_to_process_name:0x84b80"},"8488":{"probe_name":"mpi","function_name":"_convert_string_to_process_name:0x88410"},"8489":{"probe_name":"mpi","function_name":"_jobid_print_for_opal"},"8490":{"probe_name":"mpi","function_name":"_mca_topo_base_select.part.0"},"8491":{"probe_name":"mpi","function_name":"_process_name_compare:0x849c0"},"8492":{"probe_name":"mpi","function_name":"_process_name_compare:0x88420"},"8493":{"probe_name":"mpi","function_name":"_process_name_print_for_opal:0x84790"},"8494":{"probe_name":"mpi","function_name":"_process_name_print_for_opal:0x88450"},"8495":{"probe_name":"mpi","function_name":"_release_fn"},"8496":{"probe_name":"mpi","function_name":"_vpid_print_for_opal"},"8497":{"probe_name":"mpi","function_name":"adapt_close"},"8498":{"probe_name":"mpi","function_name":"adapt_constant_reduce_context_construct"},"8499":{"probe_name":"mpi","function_name":"adapt_constant_reduce_context_destruct"},"8500":{"probe_name":"mpi","function_name":"adapt_module_construct"},"8501":{"probe_name":"mpi","function_name":"adapt_module_destruct"},"8502":{"probe_name":"mpi","function_name":"adapt_module_enable"},"8503":{"probe_name":"mpi","function_name":"adapt_open"},"8504":{"probe_name":"mpi","function_name":"adapt_register"},"8505":{"probe_name":"mpi","function_name":"alloc_window"},"8506":{"probe_name":"mpi","function_name":"append_frag_to_list"},"8507":{"probe_name":"mpi","function_name":"attr_subsys_construct"},"8508":{"probe_name":"mpi","function_name":"attr_subsys_construct.cold"},"8509":{"probe_name":"mpi","function_name":"attr_subsys_destruct"},"8510":{"probe_name":"mpi","function_name":"attribute_key_value_construct"},"8511":{"probe_name":"mpi","function_name":"avail_coll_compare"},"8512":{"probe_name":"mpi","function_name":"avail_io_compare:0x179350"},"8513":{"probe_name":"mpi","function_name":"avail_io_compare:0x1799d0"},"8514":{"probe_name":"mpi","function_name":"avail_op_compare"},"8515":{"probe_name":"mpi","function_name":"avx_component_close"},"8516":{"probe_name":"mpi","function_name":"avx_component_init_query"},"8517":{"probe_name":"mpi","function_name":"avx_component_op_query"},"8518":{"probe_name":"mpi","function_name":"avx_component_open"},"8519":{"probe_name":"mpi","function_name":"avx_component_register"},"8520":{"probe_name":"mpi","function_name":"backend_abort_aggregate"},"8521":{"probe_name":"mpi","function_name":"backend_abort_no_aggregate"},"8522":{"probe_name":"mpi","function_name":"basic_register"},"8523":{"probe_name":"mpi","function_name":"block"},"8524":{"probe_name":"mpi","function_name":"bootstrap_comm"},"8525":{"probe_name":"mpi","function_name":"btl_bandwidth_compare"},"8526":{"probe_name":"mpi","function_name":"btl_exclusivity_compare"},"8527":{"probe_name":"mpi","function_name":"btl_latency_sort_fn"},"8528":{"probe_name":"mpi","function_name":"buffer_cleanup"},"8529":{"probe_name":"mpi","function_name":"build_level_topology"},"8530":{"probe_name":"mpi","function_name":"build_level_topology.cold"},"8531":{"probe_name":"mpi","function_name":"build_process_tab_id"},"8532":{"probe_name":"mpi","function_name":"check"},"8533":{"probe_name":"mpi","function_name":"check_file"},"8534":{"probe_name":"mpi","function_name":"check_one_component"},"8535":{"probe_name":"mpi","function_name":"close_component"},"8536":{"probe_name":"mpi","function_name":"coll_base_comm_construct"},"8537":{"probe_name":"mpi","function_name":"coll_base_comm_destruct"},"8538":{"probe_name":"mpi","function_name":"coll_base_module_construct"},"8539":{"probe_name":"mpi","function_name":"coll_base_module_destruct"},"8540":{"probe_name":"mpi","function_name":"comm_method_string"},"8541":{"probe_name":"mpi","function_name":"compFunc"},"8542":{"probe_name":"mpi","function_name":"compare_attr_sequence"},"8543":{"probe_name":"mpi","function_name":"compare_ints"},"8544":{"probe_name":"mpi","function_name":"compare_pmix_proc"},"8545":{"probe_name":"mpi","function_name":"compare_ranks:0x1da9b0"},"8546":{"probe_name":"mpi","function_name":"compare_ranks:0x1ea3b0"},"8547":{"probe_name":"mpi","function_name":"compare_uint16_ts"},"8548":{"probe_name":"mpi","function_name":"complete_objs_callback"},"8549":{"probe_name":"mpi","function_name":"complete_vecs_callback"},"8550":{"probe_name":"mpi","function_name":"component_finalize"},"8551":{"probe_name":"mpi","function_name":"component_init"},"8552":{"probe_name":"mpi","function_name":"component_open"},"8553":{"probe_name":"mpi","function_name":"component_query"},"8554":{"probe_name":"mpi","function_name":"component_register"},"8555":{"probe_name":"mpi","function_name":"component_select"},"8556":{"probe_name":"mpi","function_name":"compute_gain"},"8557":{"probe_name":"mpi","function_name":"config_window"},"8558":{"probe_name":"mpi","function_name":"construct_peers"},"8559":{"probe_name":"mpi","function_name":"cost_calc"},"8560":{"probe_name":"mpi","function_name":"create_comm"},"8561":{"probe_name":"mpi","function_name":"create_dumb_tree"},"8562":{"probe_name":"mpi","function_name":"create_threads"},"8563":{"probe_name":"mpi","function_name":"create_win"},"8564":{"probe_name":"mpi","function_name":"cset2mapstr.constprop.0"},"8565":{"probe_name":"mpi","function_name":"cset2str.constprop.0"},"8566":{"probe_name":"mpi","function_name":"datatype_duplicate.isra.0"},"8567":{"probe_name":"mpi","function_name":"dbl_cmp_inc"},"8568":{"probe_name":"mpi","function_name":"delete_group_list"},"8569":{"probe_name":"mpi","function_name":"delete_query"},"8570":{"probe_name":"mpi","function_name":"delete_select"},"8571":{"probe_name":"mpi","function_name":"depth_first"},"8572":{"probe_name":"mpi","function_name":"deregister_tm_clones"},"8573":{"probe_name":"mpi","function_name":"destruct_topology_cache"},"8574":{"probe_name":"mpi","function_name":"dfs"},"8575":{"probe_name":"mpi","function_name":"display_sol"},"8576":{"probe_name":"mpi","function_name":"distance"},"8577":{"probe_name":"mpi","function_name":"dpm_convert.constprop.0"},"8578":{"probe_name":"mpi","function_name":"dpm_convert.constprop.1"},"8579":{"probe_name":"mpi","function_name":"dynamic_gen2_register"},"8580":{"probe_name":"mpi","function_name":"dynamic_register"},"8581":{"probe_name":"mpi","function_name":"era_agreement_comm_specific_constructor"},"8582":{"probe_name":"mpi","function_name":"era_agreement_comm_specific_destructor"},"8583":{"probe_name":"mpi","function_name":"era_agreement_info_constructor"},"8584":{"probe_name":"mpi","function_name":"era_agreement_info_destructor"},"8585":{"probe_name":"mpi","function_name":"era_bounce_event_cb"},"8586":{"probe_name":"mpi","function_name":"era_cb_fn"},"8587":{"probe_name":"mpi","function_name":"era_cb_fn.cold"},"8588":{"probe_name":"mpi","function_name":"era_check_status"},"8589":{"probe_name":"mpi","function_name":"era_combine_agreement_values"},"8590":{"probe_name":"mpi","function_name":"era_combine_agreement_values.cold"},"8591":{"probe_name":"mpi","function_name":"era_create_agreement_info"},"8592":{"probe_name":"mpi","function_name":"era_create_agreement_info.cold"},"8593":{"probe_name":"mpi","function_name":"era_decide"},"8594":{"probe_name":"mpi","function_name":"era_error_event_cb"},"8595":{"probe_name":"mpi","function_name":"era_iagree_req_complete_cb"},"8596":{"probe_name":"mpi","function_name":"era_iagree_req_complete_cb.cold"},"8597":{"probe_name":"mpi","function_name":"era_iagree_req_free"},"8598":{"probe_name":"mpi","function_name":"era_mark_process_failed"},"8599":{"probe_name":"mpi","function_name":"era_merge_new_dead_list"},"8600":{"probe_name":"mpi","function_name":"era_next_child"},"8601":{"probe_name":"mpi","function_name":"era_on_comm_rank_failure"},"8602":{"probe_name":"mpi","function_name":"era_tree_fn_binary"},"8603":{"probe_name":"mpi","function_name":"era_tree_fn_star"},"8604":{"probe_name":"mpi","function_name":"era_tree_fn_string"},"8605":{"probe_name":"mpi","function_name":"era_tree_remove_node"},"8606":{"probe_name":"mpi","function_name":"era_update_return_value"},"8607":{"probe_name":"mpi","function_name":"era_value_constructor"},"8608":{"probe_name":"mpi","function_name":"era_value_destructor"},"8609":{"probe_name":"mpi","function_name":"evhandler_dereg_callbk"},"8610":{"probe_name":"mpi","function_name":"evhandler_reg_callbk:0x7c580"},"8611":{"probe_name":"mpi","function_name":"evhandler_reg_callbk:0x884c0"},"8612":{"probe_name":"mpi","function_name":"f1"},"8613":{"probe_name":"mpi","function_name":"f2"},"8614":{"probe_name":"mpi","function_name":"fast_group"},"8615":{"probe_name":"mpi","function_name":"fd_event_cb"},"8616":{"probe_name":"mpi","function_name":"fd_heartbeat_rdma_cb"},"8617":{"probe_name":"mpi","function_name":"fd_heartbeat_recv_cb"},"8618":{"probe_name":"mpi","function_name":"fd_heartbeat_request.isra.0"},"8619":{"probe_name":"mpi","function_name":"fd_heartbeat_request_cb"},"8620":{"probe_name":"mpi","function_name":"fd_heartbeat_send.isra.0"},"8621":{"probe_name":"mpi","function_name":"fd_progress"},"8622":{"probe_name":"mpi","function_name":"fence_cbfunc"},"8623":{"probe_name":"mpi","function_name":"fence_release:0x820f0"},"8624":{"probe_name":"mpi","function_name":"fence_release:0x884b0"},"8625":{"probe_name":"mpi","function_name":"file_constructor"},"8626":{"probe_name":"mpi","function_name":"file_destructor"},"8627":{"probe_name":"mpi","function_name":"file_query"},"8628":{"probe_name":"mpi","function_name":"file_unquery"},"8629":{"probe_name":"mpi","function_name":"fill_null_pointers"},"8630":{"probe_name":"mpi","function_name":"fragment_sent_cb"},"8631":{"probe_name":"mpi","function_name":"frame_dummy"},"8632":{"probe_name":"mpi","function_name":"free_constraint_tree"},"8633":{"probe_name":"mpi","function_name":"free_list_child"},"8634":{"probe_name":"mpi","function_name":"free_objs_callback"},"8635":{"probe_name":"mpi","function_name":"free_tab_child"},"8636":{"probe_name":"mpi","function_name":"free_vecs_callback"},"8637":{"probe_name":"mpi","function_name":"ftagree_close"},"8638":{"probe_name":"mpi","function_name":"ftagree_register"},"8639":{"probe_name":"mpi","function_name":"generate_random_sol.isra.0"},"8640":{"probe_name":"mpi","function_name":"generate_work_units.constprop.0"},"8641":{"probe_name":"mpi","function_name":"generate_work_units.part.0"},"8642":{"probe_name":"mpi","function_name":"get_algorithm"},"8643":{"probe_name":"mpi","function_name":"get_dynamic_rule"},"8644":{"probe_name":"mpi","function_name":"get_module"},"8645":{"probe_name":"mpi","function_name":"get_print_name_buffer"},"8646":{"probe_name":"mpi","function_name":"get_rsrc_exists"},"8647":{"probe_name":"mpi","function_name":"group_list_asc"},"8648":{"probe_name":"mpi","function_name":"group_list_dsc"},"8649":{"probe_name":"mpi","function_name":"group_list_id"},"8650":{"probe_name":"mpi","function_name":"han_close"},"8651":{"probe_name":"mpi","function_name":"han_module_enable"},"8652":{"probe_name":"mpi","function_name":"han_open"},"8653":{"probe_name":"mpi","function_name":"han_register"},"8654":{"probe_name":"mpi","function_name":"hash_asc"},"8655":{"probe_name":"mpi","function_name":"hb_itor_search"},"8656":{"probe_name":"mpi","function_name":"ibcast_request_fini.isra.0"},"8657":{"probe_name":"mpi","function_name":"icompar"},"8658":{"probe_name":"mpi","function_name":"individual_register:0x16eff0"},"8659":{"probe_name":"mpi","function_name":"individual_register:0x21a490"},"8660":{"probe_name":"mpi","function_name":"info_constructor"},"8661":{"probe_name":"mpi","function_name":"info_destructor"},"8662":{"probe_name":"mpi","function_name":"init_by_array"},"8663":{"probe_name":"mpi","function_name":"init_query:0x17b980"},"8664":{"probe_name":"mpi","function_name":"init_query:0x21f830"},"8665":{"probe_name":"mpi","function_name":"init_query:0x233dc0"},"8666":{"probe_name":"mpi","function_name":"inter_register"},"8667":{"probe_name":"mpi","function_name":"io_base_request_constructor"},"8668":{"probe_name":"mpi","function_name":"ireduce_request_fini.isra.0"},"8669":{"probe_name":"mpi","function_name":"kpartition_build_level_topology.isra.0"},"8670":{"probe_name":"mpi","function_name":"libnbc_close"},"8671":{"probe_name":"mpi","function_name":"libnbc_comm_query"},"8672":{"probe_name":"mpi","function_name":"libnbc_init_query"},"8673":{"probe_name":"mpi","function_name":"libnbc_module_construct"},"8674":{"probe_name":"mpi","function_name":"libnbc_module_destruct"},"8675":{"probe_name":"mpi","function_name":"libnbc_module_enable"},"8676":{"probe_name":"mpi","function_name":"libnbc_open"},"8677":{"probe_name":"mpi","function_name":"libnbc_register"},"8678":{"probe_name":"mpi","function_name":"list_all_possible_groups"},"8679":{"probe_name":"mpi","function_name":"list_all_possible_groups.cold"},"8680":{"probe_name":"mpi","function_name":"lockedfile_register"},"8681":{"probe_name":"mpi","function_name":"match_one"},"8682":{"probe_name":"mpi","function_name":"mca_bml_base_btl_array_construct"},"8683":{"probe_name":"mpi","function_name":"mca_bml_base_btl_array_destruct"},"8684":{"probe_name":"mpi","function_name":"mca_bml_base_btl_array_reserve"},"8685":{"probe_name":"mpi","function_name":"mca_bml_base_close"},"8686":{"probe_name":"mpi","function_name":"mca_bml_base_endpoint_construct"},"8687":{"probe_name":"mpi","function_name":"mca_bml_base_endpoint_destruct"},"8688":{"probe_name":"mpi","function_name":"mca_bml_base_init"},"8689":{"probe_name":"mpi","function_name":"mca_bml_base_inited"},"8690":{"probe_name":"mpi","function_name":"mca_bml_base_open"},"8691":{"probe_name":"mpi","function_name":"mca_bml_base_register"},"8692":{"probe_name":"mpi","function_name":"mca_bml_r2_add_btl"},"8693":{"probe_name":"mpi","function_name":"mca_bml_r2_add_btls"},"8694":{"probe_name":"mpi","function_name":"mca_bml_r2_add_proc"},"8695":{"probe_name":"mpi","function_name":"mca_bml_r2_add_procs"},"8696":{"probe_name":"mpi","function_name":"mca_bml_r2_allocate_endpoint"},"8697":{"probe_name":"mpi","function_name":"mca_bml_r2_component_close"},"8698":{"probe_name":"mpi","function_name":"mca_bml_r2_component_fini"},"8699":{"probe_name":"mpi","function_name":"mca_bml_r2_component_init"},"8700":{"probe_name":"mpi","function_name":"mca_bml_r2_component_open"},"8701":{"probe_name":"mpi","function_name":"mca_bml_r2_component_register"},"8702":{"probe_name":"mpi","function_name":"mca_bml_r2_compute_endpoint_metrics"},"8703":{"probe_name":"mpi","function_name":"mca_bml_r2_compute_endpoint_metrics.cold"},"8704":{"probe_name":"mpi","function_name":"mca_bml_r2_del_btl"},"8705":{"probe_name":"mpi","function_name":"mca_bml_r2_del_proc_btl"},"8706":{"probe_name":"mpi","function_name":"mca_bml_r2_del_procs"},"8707":{"probe_name":"mpi","function_name":"mca_bml_r2_del_procs.cold"},"8708":{"probe_name":"mpi","function_name":"mca_bml_r2_endpoint_add_btl"},"8709":{"probe_name":"mpi","function_name":"mca_bml_r2_finalize"},"8710":{"probe_name":"mpi","function_name":"mca_bml_r2_register"},"8711":{"probe_name":"mpi","function_name":"mca_bml_r2_register_error"},"8712":{"probe_name":"mpi","function_name":"mca_coll_base_alltoall_intra_basic_inplace"},"8713":{"probe_name":"mpi","function_name":"mca_coll_base_alltoallv_intra_basic_inplace"},"8714":{"probe_name":"mpi","function_name":"mca_coll_base_colltype_to_str"},"8715":{"probe_name":"mpi","function_name":"mca_coll_base_comm_select"},"8716":{"probe_name":"mpi","function_name":"mca_coll_base_comm_unselect"},"8717":{"probe_name":"mpi","function_name":"mca_coll_base_find_available"},"8718":{"probe_name":"mpi","function_name":"mca_coll_base_name_to_colltype"},"8719":{"probe_name":"mpi","function_name":"mca_coll_base_reduce_local"},"8720":{"probe_name":"mpi","function_name":"mca_coll_basic_allgather_inter"},"8721":{"probe_name":"mpi","function_name":"mca_coll_basic_allgatherv_inter"},"8722":{"probe_name":"mpi","function_name":"mca_coll_basic_allreduce_inter"},"8723":{"probe_name":"mpi","function_name":"mca_coll_basic_allreduce_intra"},"8724":{"probe_name":"mpi","function_name":"mca_coll_basic_alltoall_inter"},"8725":{"probe_name":"mpi","function_name":"mca_coll_basic_alltoallv_inter"},"8726":{"probe_name":"mpi","function_name":"mca_coll_basic_alltoallw_inter"},"8727":{"probe_name":"mpi","function_name":"mca_coll_basic_alltoallw_intra"},"8728":{"probe_name":"mpi","function_name":"mca_coll_basic_alltoallw_intra_inplace.constprop.0"},"8729":{"probe_name":"mpi","function_name":"mca_coll_basic_barrier_inter_lin"},"8730":{"probe_name":"mpi","function_name":"mca_coll_basic_barrier_intra_log"},"8731":{"probe_name":"mpi","function_name":"mca_coll_basic_bcast_lin_inter"},"8732":{"probe_name":"mpi","function_name":"mca_coll_basic_bcast_log_inter"},"8733":{"probe_name":"mpi","function_name":"mca_coll_basic_bcast_log_intra"},"8734":{"probe_name":"mpi","function_name":"mca_coll_basic_comm_query"},"8735":{"probe_name":"mpi","function_name":"mca_coll_basic_exscan_inter"},"8736":{"probe_name":"mpi","function_name":"mca_coll_basic_exscan_intra"},"8737":{"probe_name":"mpi","function_name":"mca_coll_basic_gather_inter"},"8738":{"probe_name":"mpi","function_name":"mca_coll_basic_gatherv_inter"},"8739":{"probe_name":"mpi","function_name":"mca_coll_basic_gatherv_intra"},"8740":{"probe_name":"mpi","function_name":"mca_coll_basic_init_query"},"8741":{"probe_name":"mpi","function_name":"mca_coll_basic_module_enable"},"8742":{"probe_name":"mpi","function_name":"mca_coll_basic_neighbor_allgather"},"8743":{"probe_name":"mpi","function_name":"mca_coll_basic_neighbor_allgatherv"},"8744":{"probe_name":"mpi","function_name":"mca_coll_basic_neighbor_alltoall"},"8745":{"probe_name":"mpi","function_name":"mca_coll_basic_neighbor_alltoallv"},"8746":{"probe_name":"mpi","function_name":"mca_coll_basic_neighbor_alltoallw"},"8747":{"probe_name":"mpi","function_name":"mca_coll_basic_reduce_lin_inter"},"8748":{"probe_name":"mpi","function_name":"mca_coll_basic_reduce_log_inter"},"8749":{"probe_name":"mpi","function_name":"mca_coll_basic_reduce_log_intra"},"8750":{"probe_name":"mpi","function_name":"mca_coll_basic_reduce_scatter_block_inter"},"8751":{"probe_name":"mpi","function_name":"mca_coll_basic_reduce_scatter_block_intra"},"8752":{"probe_name":"mpi","function_name":"mca_coll_basic_reduce_scatter_inter"},"8753":{"probe_name":"mpi","function_name":"mca_coll_basic_reduce_scatter_intra"},"8754":{"probe_name":"mpi","function_name":"mca_coll_basic_scan_intra"},"8755":{"probe_name":"mpi","function_name":"mca_coll_basic_scatter_inter"},"8756":{"probe_name":"mpi","function_name":"mca_coll_basic_scatterv_inter"},"8757":{"probe_name":"mpi","function_name":"mca_coll_basic_scatterv_intra"},"8758":{"probe_name":"mpi","function_name":"mca_coll_ftagree_comm_query"},"8759":{"probe_name":"mpi","function_name":"mca_coll_ftagree_construct"},"8760":{"probe_name":"mpi","function_name":"mca_coll_ftagree_era_comm_finalize"},"8761":{"probe_name":"mpi","function_name":"mca_coll_ftagree_era_comm_init"},"8762":{"probe_name":"mpi","function_name":"mca_coll_ftagree_era_finalize"},"8763":{"probe_name":"mpi","function_name":"mca_coll_ftagree_era_init"},"8764":{"probe_name":"mpi","function_name":"mca_coll_ftagree_era_inter"},"8765":{"probe_name":"mpi","function_name":"mca_coll_ftagree_era_intra"},"8766":{"probe_name":"mpi","function_name":"mca_coll_ftagree_eta_intra"},"8767":{"probe_name":"mpi","function_name":"mca_coll_ftagree_iera_intra"},"8768":{"probe_name":"mpi","function_name":"mca_coll_ftagree_iera_intra.cold"},"8769":{"probe_name":"mpi","function_name":"mca_coll_ftagree_init_query"},"8770":{"probe_name":"mpi","function_name":"mca_coll_ftagree_module_construct"},"8771":{"probe_name":"mpi","function_name":"mca_coll_ftagree_module_destruct"},"8772":{"probe_name":"mpi","function_name":"mca_coll_ftagree_module_enable"},"8773":{"probe_name":"mpi","function_name":"mca_coll_han_algorithm_id_is_valid"},"8774":{"probe_name":"mpi","function_name":"mca_coll_han_algorithm_id_to_fn"},"8775":{"probe_name":"mpi","function_name":"mca_coll_han_algorithm_id_to_name"},"8776":{"probe_name":"mpi","function_name":"mca_coll_han_algorithm_name_to_id"},"8777":{"probe_name":"mpi","function_name":"mca_coll_han_allgather_intra"},"8778":{"probe_name":"mpi","function_name":"mca_coll_han_allgather_intra_dynamic"},"8779":{"probe_name":"mpi","function_name":"mca_coll_han_allgather_intra_simple"},"8780":{"probe_name":"mpi","function_name":"mca_coll_han_allgather_lb_task"},"8781":{"probe_name":"mpi","function_name":"mca_coll_han_allgather_lg_task"},"8782":{"probe_name":"mpi","function_name":"mca_coll_han_allgather_uag_task"},"8783":{"probe_name":"mpi","function_name":"mca_coll_han_allgatherv_intra_dynamic"},"8784":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_intra"},"8785":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_intra_dynamic"},"8786":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_intra_simple"},"8787":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_reproducible"},"8788":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_reproducible_decision"},"8789":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_t0_task"},"8790":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_t1_task"},"8791":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_t2_task"},"8792":{"probe_name":"mpi","function_name":"mca_coll_han_allreduce_t3_task"},"8793":{"probe_name":"mpi","function_name":"mca_coll_han_barrier_intra_dynamic"},"8794":{"probe_name":"mpi","function_name":"mca_coll_han_barrier_intra_simple"},"8795":{"probe_name":"mpi","function_name":"mca_coll_han_bcast_intra"},"8796":{"probe_name":"mpi","function_name":"mca_coll_han_bcast_intra_dynamic"},"8797":{"probe_name":"mpi","function_name":"mca_coll_han_bcast_intra_simple"},"8798":{"probe_name":"mpi","function_name":"mca_coll_han_bcast_t0_task"},"8799":{"probe_name":"mpi","function_name":"mca_coll_han_bcast_t1_task"},"8800":{"probe_name":"mpi","function_name":"mca_coll_han_comm_create"},"8801":{"probe_name":"mpi","function_name":"mca_coll_han_comm_create_new"},"8802":{"probe_name":"mpi","function_name":"mca_coll_han_comm_query"},"8803":{"probe_name":"mpi","function_name":"mca_coll_han_component_name_to_id"},"8804":{"probe_name":"mpi","function_name":"mca_coll_han_dump_dynamic_rules"},"8805":{"probe_name":"mpi","function_name":"mca_coll_han_free_algorithms"},"8806":{"probe_name":"mpi","function_name":"mca_coll_han_free_dynamic_rules"},"8807":{"probe_name":"mpi","function_name":"mca_coll_han_gather_intra"},"8808":{"probe_name":"mpi","function_name":"mca_coll_han_gather_intra_dynamic"},"8809":{"probe_name":"mpi","function_name":"mca_coll_han_gather_intra_simple"},"8810":{"probe_name":"mpi","function_name":"mca_coll_han_gather_lg_task"},"8811":{"probe_name":"mpi","function_name":"mca_coll_han_gather_ug_task"},"8812":{"probe_name":"mpi","function_name":"mca_coll_han_get_all_coll_modules"},"8813":{"probe_name":"mpi","function_name":"mca_coll_han_init_algorithms"},"8814":{"probe_name":"mpi","function_name":"mca_coll_han_init_dynamic_rules"},"8815":{"probe_name":"mpi","function_name":"mca_coll_han_init_query"},"8816":{"probe_name":"mpi","function_name":"mca_coll_han_is_coll_dynamic_implemented"},"8817":{"probe_name":"mpi","function_name":"mca_coll_han_module_construct"},"8818":{"probe_name":"mpi","function_name":"mca_coll_han_module_destruct"},"8819":{"probe_name":"mpi","function_name":"mca_coll_han_module_disable"},"8820":{"probe_name":"mpi","function_name":"mca_coll_han_reduce_intra"},"8821":{"probe_name":"mpi","function_name":"mca_coll_han_reduce_intra_dynamic"},"8822":{"probe_name":"mpi","function_name":"mca_coll_han_reduce_intra_simple"},"8823":{"probe_name":"mpi","function_name":"mca_coll_han_reduce_reproducible"},"8824":{"probe_name":"mpi","function_name":"mca_coll_han_reduce_reproducible_decision"},"8825":{"probe_name":"mpi","function_name":"mca_coll_han_reduce_t0_task"},"8826":{"probe_name":"mpi","function_name":"mca_coll_han_reduce_t1_task"},"8827":{"probe_name":"mpi","function_name":"mca_coll_han_scatter_intra"},"8828":{"probe_name":"mpi","function_name":"mca_coll_han_scatter_intra_dynamic"},"8829":{"probe_name":"mpi","function_name":"mca_coll_han_scatter_intra_simple"},"8830":{"probe_name":"mpi","function_name":"mca_coll_han_scatter_ls_task"},"8831":{"probe_name":"mpi","function_name":"mca_coll_han_scatter_us_task"},"8832":{"probe_name":"mpi","function_name":"mca_coll_han_topo_init"},"8833":{"probe_name":"mpi","function_name":"mca_coll_han_topo_lvl_name_to_id"},"8834":{"probe_name":"mpi","function_name":"mca_coll_han_topo_lvl_to_str"},"8835":{"probe_name":"mpi","function_name":"mca_coll_inter_allgather_inter"},"8836":{"probe_name":"mpi","function_name":"mca_coll_inter_allgatherv_inter"},"8837":{"probe_name":"mpi","function_name":"mca_coll_inter_allreduce_inter"},"8838":{"probe_name":"mpi","function_name":"mca_coll_inter_bcast_inter"},"8839":{"probe_name":"mpi","function_name":"mca_coll_inter_comm_query"},"8840":{"probe_name":"mpi","function_name":"mca_coll_inter_gather_inter"},"8841":{"probe_name":"mpi","function_name":"mca_coll_inter_gatherv_inter"},"8842":{"probe_name":"mpi","function_name":"mca_coll_inter_init_query"},"8843":{"probe_name":"mpi","function_name":"mca_coll_inter_module_construct"},"8844":{"probe_name":"mpi","function_name":"mca_coll_inter_module_destruct"},"8845":{"probe_name":"mpi","function_name":"mca_coll_inter_module_enable"},"8846":{"probe_name":"mpi","function_name":"mca_coll_inter_reduce_inter"},"8847":{"probe_name":"mpi","function_name":"mca_coll_inter_scatter_inter"},"8848":{"probe_name":"mpi","function_name":"mca_coll_inter_scatterv_inter"},"8849":{"probe_name":"mpi","function_name":"mca_coll_monitoring_allgather"},"8850":{"probe_name":"mpi","function_name":"mca_coll_monitoring_allgatherv"},"8851":{"probe_name":"mpi","function_name":"mca_coll_monitoring_allreduce"},"8852":{"probe_name":"mpi","function_name":"mca_coll_monitoring_alltoall"},"8853":{"probe_name":"mpi","function_name":"mca_coll_monitoring_alltoallv"},"8854":{"probe_name":"mpi","function_name":"mca_coll_monitoring_alltoallw"},"8855":{"probe_name":"mpi","function_name":"mca_coll_monitoring_barrier"},"8856":{"probe_name":"mpi","function_name":"mca_coll_monitoring_bcast"},"8857":{"probe_name":"mpi","function_name":"mca_coll_monitoring_component_close"},"8858":{"probe_name":"mpi","function_name":"mca_coll_monitoring_component_init"},"8859":{"probe_name":"mpi","function_name":"mca_coll_monitoring_component_open"},"8860":{"probe_name":"mpi","function_name":"mca_coll_monitoring_component_query"},"8861":{"probe_name":"mpi","function_name":"mca_coll_monitoring_component_register"},"8862":{"probe_name":"mpi","function_name":"mca_coll_monitoring_exscan"},"8863":{"probe_name":"mpi","function_name":"mca_coll_monitoring_gather"},"8864":{"probe_name":"mpi","function_name":"mca_coll_monitoring_gatherv"},"8865":{"probe_name":"mpi","function_name":"mca_coll_monitoring_iallgather"},"8866":{"probe_name":"mpi","function_name":"mca_coll_monitoring_iallgatherv"},"8867":{"probe_name":"mpi","function_name":"mca_coll_monitoring_iallreduce"},"8868":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ialltoall"},"8869":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ialltoallv"},"8870":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ialltoallw"},"8871":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ibarrier"},"8872":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ibcast"},"8873":{"probe_name":"mpi","function_name":"mca_coll_monitoring_iexscan"},"8874":{"probe_name":"mpi","function_name":"mca_coll_monitoring_igather"},"8875":{"probe_name":"mpi","function_name":"mca_coll_monitoring_igatherv"},"8876":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ineighbor_allgather"},"8877":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ineighbor_allgatherv"},"8878":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ineighbor_alltoall"},"8879":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ineighbor_alltoallv"},"8880":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ineighbor_alltoallw"},"8881":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ireduce"},"8882":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ireduce_scatter"},"8883":{"probe_name":"mpi","function_name":"mca_coll_monitoring_ireduce_scatter_block"},"8884":{"probe_name":"mpi","function_name":"mca_coll_monitoring_iscan"},"8885":{"probe_name":"mpi","function_name":"mca_coll_monitoring_iscatter"},"8886":{"probe_name":"mpi","function_name":"mca_coll_monitoring_iscatterv"},"8887":{"probe_name":"mpi","function_name":"mca_coll_monitoring_module_disable"},"8888":{"probe_name":"mpi","function_name":"mca_coll_monitoring_module_enable"},"8889":{"probe_name":"mpi","function_name":"mca_coll_monitoring_neighbor_allgather"},"8890":{"probe_name":"mpi","function_name":"mca_coll_monitoring_neighbor_allgatherv"},"8891":{"probe_name":"mpi","function_name":"mca_coll_monitoring_neighbor_alltoall"},"8892":{"probe_name":"mpi","function_name":"mca_coll_monitoring_neighbor_alltoallv"},"8893":{"probe_name":"mpi","function_name":"mca_coll_monitoring_neighbor_alltoallw"},"8894":{"probe_name":"mpi","function_name":"mca_coll_monitoring_reduce"},"8895":{"probe_name":"mpi","function_name":"mca_coll_monitoring_reduce_scatter"},"8896":{"probe_name":"mpi","function_name":"mca_coll_monitoring_reduce_scatter_block"},"8897":{"probe_name":"mpi","function_name":"mca_coll_monitoring_scan"},"8898":{"probe_name":"mpi","function_name":"mca_coll_monitoring_scatter"},"8899":{"probe_name":"mpi","function_name":"mca_coll_monitoring_scatterv"},"8900":{"probe_name":"mpi","function_name":"mca_coll_self_allgather_intra"},"8901":{"probe_name":"mpi","function_name":"mca_coll_self_allgatherv_intra"},"8902":{"probe_name":"mpi","function_name":"mca_coll_self_allreduce_intra"},"8903":{"probe_name":"mpi","function_name":"mca_coll_self_alltoall_intra"},"8904":{"probe_name":"mpi","function_name":"mca_coll_self_alltoallv_intra"},"8905":{"probe_name":"mpi","function_name":"mca_coll_self_alltoallw_intra"},"8906":{"probe_name":"mpi","function_name":"mca_coll_self_barrier_intra"},"8907":{"probe_name":"mpi","function_name":"mca_coll_self_bcast_intra"},"8908":{"probe_name":"mpi","function_name":"mca_coll_self_comm_query"},"8909":{"probe_name":"mpi","function_name":"mca_coll_self_exscan_intra"},"8910":{"probe_name":"mpi","function_name":"mca_coll_self_gather_intra"},"8911":{"probe_name":"mpi","function_name":"mca_coll_self_gatherv_intra"},"8912":{"probe_name":"mpi","function_name":"mca_coll_self_init_query"},"8913":{"probe_name":"mpi","function_name":"mca_coll_self_module_enable"},"8914":{"probe_name":"mpi","function_name":"mca_coll_self_reduce_intra"},"8915":{"probe_name":"mpi","function_name":"mca_coll_self_reduce_scatter_intra"},"8916":{"probe_name":"mpi","function_name":"mca_coll_self_scan_intra"},"8917":{"probe_name":"mpi","function_name":"mca_coll_self_scatter_intra"},"8918":{"probe_name":"mpi","function_name":"mca_coll_self_scatterv_intra"},"8919":{"probe_name":"mpi","function_name":"mca_coll_sm_allreduce_intra"},"8920":{"probe_name":"mpi","function_name":"mca_coll_sm_barrier_intra"},"8921":{"probe_name":"mpi","function_name":"mca_coll_sm_bcast_intra"},"8922":{"probe_name":"mpi","function_name":"mca_coll_sm_comm_query"},"8923":{"probe_name":"mpi","function_name":"mca_coll_sm_init_query"},"8924":{"probe_name":"mpi","function_name":"mca_coll_sm_module_construct"},"8925":{"probe_name":"mpi","function_name":"mca_coll_sm_module_destruct"},"8926":{"probe_name":"mpi","function_name":"mca_coll_sm_module_disable"},"8927":{"probe_name":"mpi","function_name":"mca_coll_sm_reduce_intra"},"8928":{"probe_name":"mpi","function_name":"mca_coll_sync_bcast"},"8929":{"probe_name":"mpi","function_name":"mca_coll_sync_comm_query"},"8930":{"probe_name":"mpi","function_name":"mca_coll_sync_exscan"},"8931":{"probe_name":"mpi","function_name":"mca_coll_sync_gather"},"8932":{"probe_name":"mpi","function_name":"mca_coll_sync_gatherv"},"8933":{"probe_name":"mpi","function_name":"mca_coll_sync_init_query"},"8934":{"probe_name":"mpi","function_name":"mca_coll_sync_module_construct"},"8935":{"probe_name":"mpi","function_name":"mca_coll_sync_module_destruct"},"8936":{"probe_name":"mpi","function_name":"mca_coll_sync_module_enable"},"8937":{"probe_name":"mpi","function_name":"mca_coll_sync_reduce"},"8938":{"probe_name":"mpi","function_name":"mca_coll_sync_reduce_scatter"},"8939":{"probe_name":"mpi","function_name":"mca_coll_sync_scan"},"8940":{"probe_name":"mpi","function_name":"mca_coll_sync_scatter"},"8941":{"probe_name":"mpi","function_name":"mca_coll_sync_scatterv"},"8942":{"probe_name":"mpi","function_name":"mca_coll_task_constructor"},"8943":{"probe_name":"mpi","function_name":"mca_coll_task_destructor"},"8944":{"probe_name":"mpi","function_name":"mca_coll_tuned_module_construct"},"8945":{"probe_name":"mpi","function_name":"mca_comm_cid_context_alloc"},"8946":{"probe_name":"mpi","function_name":"mca_comm_cid_context_construct"},"8947":{"probe_name":"mpi","function_name":"mca_comm_cid_context_destruct"},"8948":{"probe_name":"mpi","function_name":"mca_common_monitoring_add_procs"},"8949":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_a2a"},"8950":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_a2o"},"8951":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_cache_name"},"8952":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_cond_release"},"8953":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_finalize"},"8954":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_flush"},"8955":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_flush_all"},"8956":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_get_a2a_count"},"8957":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_get_a2a_size"},"8958":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_get_a2o_count"},"8959":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_get_a2o_size"},"8960":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_get_o2a_count"},"8961":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_get_o2a_size"},"8962":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_messages_notify"},"8963":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_new"},"8964":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_o2a"},"8965":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_release"},"8966":{"probe_name":"mpi","function_name":"mca_common_monitoring_coll_reset"},"8967":{"probe_name":"mpi","function_name":"mca_common_monitoring_comm_size_notify"},"8968":{"probe_name":"mpi","function_name":"mca_common_monitoring_finalize"},"8969":{"probe_name":"mpi","function_name":"mca_common_monitoring_flush.part.0"},"8970":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_coll_count"},"8971":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_coll_size"},"8972":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_flush"},"8973":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_osc_recv_count"},"8974":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_osc_recv_size"},"8975":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_osc_sent_count"},"8976":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_osc_sent_size"},"8977":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_pml_count"},"8978":{"probe_name":"mpi","function_name":"mca_common_monitoring_get_pml_size"},"8979":{"probe_name":"mpi","function_name":"mca_common_monitoring_init"},"8980":{"probe_name":"mpi","function_name":"mca_common_monitoring_notify_flush"},"8981":{"probe_name":"mpi","function_name":"mca_common_monitoring_output"},"8982":{"probe_name":"mpi","function_name":"mca_common_monitoring_record_coll"},"8983":{"probe_name":"mpi","function_name":"mca_common_monitoring_record_osc"},"8984":{"probe_name":"mpi","function_name":"mca_common_monitoring_record_pml"},"8985":{"probe_name":"mpi","function_name":"mca_common_monitoring_register"},"8986":{"probe_name":"mpi","function_name":"mca_common_monitoring_set_flush"},"8987":{"probe_name":"mpi","function_name":"mca_common_ompio_alloc_buf"},"8988":{"probe_name":"mpi","function_name":"mca_common_ompio_base_file_read_all"},"8989":{"probe_name":"mpi","function_name":"mca_common_ompio_buffer_alloc_fini"},"8990":{"probe_name":"mpi","function_name":"mca_common_ompio_buffer_alloc_init"},"8991":{"probe_name":"mpi","function_name":"mca_common_ompio_buffer_alloc_seg"},"8992":{"probe_name":"mpi","function_name":"mca_common_ompio_buffer_free_seg"},"8993":{"probe_name":"mpi","function_name":"mca_common_ompio_build_io_array"},"8994":{"probe_name":"mpi","function_name":"mca_common_ompio_cart_based_grouping"},"8995":{"probe_name":"mpi","function_name":"mca_common_ompio_check_gpu_buf"},"8996":{"probe_name":"mpi","function_name":"mca_common_ompio_create_groups"},"8997":{"probe_name":"mpi","function_name":"mca_common_ompio_create_incomplete_file_handle"},"8998":{"probe_name":"mpi","function_name":"mca_common_ompio_decode_datatype"},"8999":{"probe_name":"mpi","function_name":"mca_common_ompio_empty_print_queue"},"9000":{"probe_name":"mpi","function_name":"mca_common_ompio_file_close"},"9001":{"probe_name":"mpi","function_name":"mca_common_ompio_file_delete"},"9002":{"probe_name":"mpi","function_name":"mca_common_ompio_file_get_position"},"9003":{"probe_name":"mpi","function_name":"mca_common_ompio_file_get_size"},"9004":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iread"},"9005":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iread_all"},"9006":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iread_at"},"9007":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iread_at_all"},"9008":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iwrite"},"9009":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iwrite_all"},"9010":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iwrite_at"},"9011":{"probe_name":"mpi","function_name":"mca_common_ompio_file_iwrite_at_all"},"9012":{"probe_name":"mpi","function_name":"mca_common_ompio_file_open"},"9013":{"probe_name":"mpi","function_name":"mca_common_ompio_file_read"},"9014":{"probe_name":"mpi","function_name":"mca_common_ompio_file_read_all"},"9015":{"probe_name":"mpi","function_name":"mca_common_ompio_file_read_all.part.0"},"9016":{"probe_name":"mpi","function_name":"mca_common_ompio_file_read_at"},"9017":{"probe_name":"mpi","function_name":"mca_common_ompio_file_read_at_all"},"9018":{"probe_name":"mpi","function_name":"mca_common_ompio_file_read_pipelined"},"9019":{"probe_name":"mpi","function_name":"mca_common_ompio_file_write"},"9020":{"probe_name":"mpi","function_name":"mca_common_ompio_file_write_all"},"9021":{"probe_name":"mpi","function_name":"mca_common_ompio_file_write_all.part.0"},"9022":{"probe_name":"mpi","function_name":"mca_common_ompio_file_write_at"},"9023":{"probe_name":"mpi","function_name":"mca_common_ompio_file_write_at_all"},"9024":{"probe_name":"mpi","function_name":"mca_common_ompio_file_write_pipelined"},"9025":{"probe_name":"mpi","function_name":"mca_common_ompio_finalize_initial_grouping"},"9026":{"probe_name":"mpi","function_name":"mca_common_ompio_finalize_split"},"9027":{"probe_name":"mpi","function_name":"mca_common_ompio_forced_grouping"},"9028":{"probe_name":"mpi","function_name":"mca_common_ompio_full_print_queue"},"9029":{"probe_name":"mpi","function_name":"mca_common_ompio_fview_based_grouping"},"9030":{"probe_name":"mpi","function_name":"mca_common_ompio_initialize_print_queue"},"9031":{"probe_name":"mpi","function_name":"mca_common_ompio_merge_groups"},"9032":{"probe_name":"mpi","function_name":"mca_common_ompio_merge_initial_groups"},"9033":{"probe_name":"mpi","function_name":"mca_common_ompio_prepare_to_group"},"9034":{"probe_name":"mpi","function_name":"mca_common_ompio_print_time_info"},"9035":{"probe_name":"mpi","function_name":"mca_common_ompio_progress"},"9036":{"probe_name":"mpi","function_name":"mca_common_ompio_register_print_entry"},"9037":{"probe_name":"mpi","function_name":"mca_common_ompio_register_progress"},"9038":{"probe_name":"mpi","function_name":"mca_common_ompio_release_buf"},"9039":{"probe_name":"mpi","function_name":"mca_common_ompio_request_alloc"},"9040":{"probe_name":"mpi","function_name":"mca_common_ompio_request_cancel"},"9041":{"probe_name":"mpi","function_name":"mca_common_ompio_request_construct"},"9042":{"probe_name":"mpi","function_name":"mca_common_ompio_request_destruct"},"9043":{"probe_name":"mpi","function_name":"mca_common_ompio_request_fini"},"9044":{"probe_name":"mpi","function_name":"mca_common_ompio_request_free"},"9045":{"probe_name":"mpi","function_name":"mca_common_ompio_request_init"},"9046":{"probe_name":"mpi","function_name":"mca_common_ompio_retain_initial_groups"},"9047":{"probe_name":"mpi","function_name":"mca_common_ompio_set_aggregator_props"},"9048":{"probe_name":"mpi","function_name":"mca_common_ompio_set_callbacks"},"9049":{"probe_name":"mpi","function_name":"mca_common_ompio_set_explicit_offset"},"9050":{"probe_name":"mpi","function_name":"mca_common_ompio_set_file_defaults"},"9051":{"probe_name":"mpi","function_name":"mca_common_ompio_set_view"},"9052":{"probe_name":"mpi","function_name":"mca_common_ompio_simple_grouping"},"9053":{"probe_name":"mpi","function_name":"mca_common_ompio_split_a_group"},"9054":{"probe_name":"mpi","function_name":"mca_common_ompio_split_initial_groups"},"9055":{"probe_name":"mpi","function_name":"mca_common_ompio_unregister_print_entry"},"9056":{"probe_name":"mpi","function_name":"mca_fbtl_base_check_atomicity"},"9057":{"probe_name":"mpi","function_name":"mca_fbtl_base_file_select"},"9058":{"probe_name":"mpi","function_name":"mca_fbtl_base_file_unselect"},"9059":{"probe_name":"mpi","function_name":"mca_fbtl_base_find_available"},"9060":{"probe_name":"mpi","function_name":"mca_fbtl_posix_check_atomicity"},"9061":{"probe_name":"mpi","function_name":"mca_fbtl_posix_component_file_query"},"9062":{"probe_name":"mpi","function_name":"mca_fbtl_posix_component_file_unquery"},"9063":{"probe_name":"mpi","function_name":"mca_fbtl_posix_component_init_query"},"9064":{"probe_name":"mpi","function_name":"mca_fbtl_posix_ipreadv"},"9065":{"probe_name":"mpi","function_name":"mca_fbtl_posix_ipwritev"},"9066":{"probe_name":"mpi","function_name":"mca_fbtl_posix_lock"},"9067":{"probe_name":"mpi","function_name":"mca_fbtl_posix_module_finalize"},"9068":{"probe_name":"mpi","function_name":"mca_fbtl_posix_module_init"},"9069":{"probe_name":"mpi","function_name":"mca_fbtl_posix_preadv"},"9070":{"probe_name":"mpi","function_name":"mca_fbtl_posix_progress"},"9071":{"probe_name":"mpi","function_name":"mca_fbtl_posix_pwritev"},"9072":{"probe_name":"mpi","function_name":"mca_fbtl_posix_request_free"},"9073":{"probe_name":"mpi","function_name":"mca_fbtl_posix_unlock"},"9074":{"probe_name":"mpi","function_name":"mca_fcoll_base_component_lookup"},"9075":{"probe_name":"mpi","function_name":"mca_fcoll_base_file_select"},"9076":{"probe_name":"mpi","function_name":"mca_fcoll_base_file_unselect"},"9077":{"probe_name":"mpi","function_name":"mca_fcoll_base_find_available"},"9078":{"probe_name":"mpi","function_name":"mca_fcoll_base_query_table"},"9079":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_component_file_query"},"9080":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_component_file_unquery"},"9081":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_component_init_query"},"9082":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_file_read_all"},"9083":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_file_write_all"},"9084":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_break_file_view"},"9085":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_component_file_query"},"9086":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_component_file_unquery"},"9087":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_component_init_query"},"9088":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_file_read_all"},"9089":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_file_write_all"},"9090":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_get_configuration"},"9091":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_module_finalize"},"9092":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_module_init"},"9093":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_gen2_split_iov_array"},"9094":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_module_finalize"},"9095":{"probe_name":"mpi","function_name":"mca_fcoll_dynamic_module_init"},"9096":{"probe_name":"mpi","function_name":"mca_fcoll_individual_component_file_query"},"9097":{"probe_name":"mpi","function_name":"mca_fcoll_individual_component_file_unquery"},"9098":{"probe_name":"mpi","function_name":"mca_fcoll_individual_component_init_query"},"9099":{"probe_name":"mpi","function_name":"mca_fcoll_individual_file_read_all"},"9100":{"probe_name":"mpi","function_name":"mca_fcoll_individual_file_write_all"},"9101":{"probe_name":"mpi","function_name":"mca_fcoll_individual_module_finalize"},"9102":{"probe_name":"mpi","function_name":"mca_fcoll_individual_module_init"},"9103":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_break_file_view"},"9104":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_component_file_query"},"9105":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_component_file_unquery"},"9106":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_component_init_query"},"9107":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_file_read_all"},"9108":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_file_write_all"},"9109":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_get_configuration"},"9110":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_module_finalize"},"9111":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_module_init"},"9112":{"probe_name":"mpi","function_name":"mca_fcoll_vulcan_split_iov_array"},"9113":{"probe_name":"mpi","function_name":"mca_fs_base_file_close"},"9114":{"probe_name":"mpi","function_name":"mca_fs_base_file_delete"},"9115":{"probe_name":"mpi","function_name":"mca_fs_base_file_get_size"},"9116":{"probe_name":"mpi","function_name":"mca_fs_base_file_select"},"9117":{"probe_name":"mpi","function_name":"mca_fs_base_file_set_size"},"9118":{"probe_name":"mpi","function_name":"mca_fs_base_file_sync"},"9119":{"probe_name":"mpi","function_name":"mca_fs_base_file_unselect"},"9120":{"probe_name":"mpi","function_name":"mca_fs_base_find_available"},"9121":{"probe_name":"mpi","function_name":"mca_fs_base_get_file_amode"},"9122":{"probe_name":"mpi","function_name":"mca_fs_base_get_file_perm"},"9123":{"probe_name":"mpi","function_name":"mca_fs_base_get_fstype"},"9124":{"probe_name":"mpi","function_name":"mca_fs_base_get_mpi_err"},"9125":{"probe_name":"mpi","function_name":"mca_fs_base_get_parent_dir"},"9126":{"probe_name":"mpi","function_name":"mca_fs_base_get_real_filename.constprop.0"},"9127":{"probe_name":"mpi","function_name":"mca_fs_ufs_component_file_query"},"9128":{"probe_name":"mpi","function_name":"mca_fs_ufs_component_file_unquery"},"9129":{"probe_name":"mpi","function_name":"mca_fs_ufs_component_init_query"},"9130":{"probe_name":"mpi","function_name":"mca_fs_ufs_file_open"},"9131":{"probe_name":"mpi","function_name":"mca_fs_ufs_module_finalize"},"9132":{"probe_name":"mpi","function_name":"mca_fs_ufs_module_init"},"9133":{"probe_name":"mpi","function_name":"mca_io_base_delete"},"9134":{"probe_name":"mpi","function_name":"mca_io_base_delete.cold"},"9135":{"probe_name":"mpi","function_name":"mca_io_base_file_select"},"9136":{"probe_name":"mpi","function_name":"mca_io_base_file_select.cold"},"9137":{"probe_name":"mpi","function_name":"mca_io_base_file_select.localalias"},"9138":{"probe_name":"mpi","function_name":"mca_io_base_find_available"},"9139":{"probe_name":"mpi","function_name":"mca_io_base_open"},"9140":{"probe_name":"mpi","function_name":"mca_io_base_register_datarep"},"9141":{"probe_name":"mpi","function_name":"mca_io_ompio_file_close"},"9142":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_amode"},"9143":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_atomicity"},"9144":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_byte_offset"},"9145":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_position"},"9146":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_position_shared"},"9147":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_size"},"9148":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_type_extent"},"9149":{"probe_name":"mpi","function_name":"mca_io_ompio_file_get_view"},"9150":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iread"},"9151":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iread_all"},"9152":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iread_at"},"9153":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iread_at_all"},"9154":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iread_shared"},"9155":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iwrite"},"9156":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iwrite_all"},"9157":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iwrite_at"},"9158":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iwrite_at_all"},"9159":{"probe_name":"mpi","function_name":"mca_io_ompio_file_iwrite_shared"},"9160":{"probe_name":"mpi","function_name":"mca_io_ompio_file_open"},"9161":{"probe_name":"mpi","function_name":"mca_io_ompio_file_preallocate"},"9162":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read"},"9163":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_all"},"9164":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_all_begin"},"9165":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_all_end"},"9166":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_at"},"9167":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_at_all"},"9168":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_at_all_begin"},"9169":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_at_all_end"},"9170":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_ordered"},"9171":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_ordered_begin"},"9172":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_ordered_end"},"9173":{"probe_name":"mpi","function_name":"mca_io_ompio_file_read_shared"},"9174":{"probe_name":"mpi","function_name":"mca_io_ompio_file_seek"},"9175":{"probe_name":"mpi","function_name":"mca_io_ompio_file_seek_shared"},"9176":{"probe_name":"mpi","function_name":"mca_io_ompio_file_set_atomicity"},"9177":{"probe_name":"mpi","function_name":"mca_io_ompio_file_set_size"},"9178":{"probe_name":"mpi","function_name":"mca_io_ompio_file_set_view"},"9179":{"probe_name":"mpi","function_name":"mca_io_ompio_file_sync"},"9180":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write"},"9181":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_all"},"9182":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_all_begin"},"9183":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_all_end"},"9184":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_at"},"9185":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_at_all"},"9186":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_at_all_begin"},"9187":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_at_all_end"},"9188":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_ordered"},"9189":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_ordered_begin"},"9190":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_ordered_end"},"9191":{"probe_name":"mpi","function_name":"mca_io_ompio_file_write_shared"},"9192":{"probe_name":"mpi","function_name":"mca_io_ompio_get_mca_parameter_value"},"9193":{"probe_name":"mpi","function_name":"mca_monitoring_coll_construct"},"9194":{"probe_name":"mpi","function_name":"mca_monitoring_coll_destruct"},"9195":{"probe_name":"mpi","function_name":"mca_osc_monitoring_component_finish"},"9196":{"probe_name":"mpi","function_name":"mca_osc_monitoring_component_init"},"9197":{"probe_name":"mpi","function_name":"mca_osc_monitoring_component_query"},"9198":{"probe_name":"mpi","function_name":"mca_osc_monitoring_component_register"},"9199":{"probe_name":"mpi","function_name":"mca_osc_monitoring_component_select"},"9200":{"probe_name":"mpi","function_name":"mca_part_base_close"},"9201":{"probe_name":"mpi","function_name":"mca_part_base_finalize"},"9202":{"probe_name":"mpi","function_name":"mca_part_base_open"},"9203":{"probe_name":"mpi","function_name":"mca_part_base_precv_request_construct"},"9204":{"probe_name":"mpi","function_name":"mca_part_base_prequest_construct"},"9205":{"probe_name":"mpi","function_name":"mca_part_base_progress"},"9206":{"probe_name":"mpi","function_name":"mca_part_base_psend_request_construct"},"9207":{"probe_name":"mpi","function_name":"mca_part_base_register"},"9208":{"probe_name":"mpi","function_name":"mca_part_base_select"},"9209":{"probe_name":"mpi","function_name":"mca_part_base_select.cold"},"9210":{"probe_name":"mpi","function_name":"mca_part_persist_component_close"},"9211":{"probe_name":"mpi","function_name":"mca_part_persist_component_fini"},"9212":{"probe_name":"mpi","function_name":"mca_part_persist_component_init"},"9213":{"probe_name":"mpi","function_name":"mca_part_persist_component_open"},"9214":{"probe_name":"mpi","function_name":"mca_part_persist_component_register"},"9215":{"probe_name":"mpi","function_name":"mca_part_persist_free:0x1ee0d0"},"9216":{"probe_name":"mpi","function_name":"mca_part_persist_free:0x1ee3e0"},"9217":{"probe_name":"mpi","function_name":"mca_part_persist_parrived"},"9218":{"probe_name":"mpi","function_name":"mca_part_persist_pready"},"9219":{"probe_name":"mpi","function_name":"mca_part_persist_precv_init"},"9220":{"probe_name":"mpi","function_name":"mca_part_persist_precv_request_construct"},"9221":{"probe_name":"mpi","function_name":"mca_part_persist_progress"},"9222":{"probe_name":"mpi","function_name":"mca_part_persist_psend_init"},"9223":{"probe_name":"mpi","function_name":"mca_part_persist_psend_request_construct"},"9224":{"probe_name":"mpi","function_name":"mca_part_persist_request_construct"},"9225":{"probe_name":"mpi","function_name":"mca_part_persist_request_destruct"},"9226":{"probe_name":"mpi","function_name":"mca_part_persist_start:0x1ed610"},"9227":{"probe_name":"mpi","function_name":"mca_part_persist_start:0x1edf30"},"9228":{"probe_name":"mpi","function_name":"mca_part_persist_start:0x1ee240"},"9229":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_attach"},"9230":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_detach"},"9231":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_fini"},"9232":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_init"},"9233":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_request_alloc"},"9234":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_request_alloc_buf"},"9235":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_request_fini"},"9236":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_request_free"},"9237":{"probe_name":"mpi","function_name":"mca_pml_base_bsend_request_start"},"9238":{"probe_name":"mpi","function_name":"mca_pml_base_close"},"9239":{"probe_name":"mpi","function_name":"mca_pml_base_finalize"},"9240":{"probe_name":"mpi","function_name":"mca_pml_base_open"},"9241":{"probe_name":"mpi","function_name":"mca_pml_base_pml_check_selected"},"9242":{"probe_name":"mpi","function_name":"mca_pml_base_pml_check_selected_impl"},"9243":{"probe_name":"mpi","function_name":"mca_pml_base_pml_selected"},"9244":{"probe_name":"mpi","function_name":"mca_pml_base_progress"},"9245":{"probe_name":"mpi","function_name":"mca_pml_base_recv_request_construct"},"9246":{"probe_name":"mpi","function_name":"mca_pml_base_recv_request_destruct"},"9247":{"probe_name":"mpi","function_name":"mca_pml_base_register"},"9248":{"probe_name":"mpi","function_name":"mca_pml_base_request_construct"},"9249":{"probe_name":"mpi","function_name":"mca_pml_base_revoke_comm"},"9250":{"probe_name":"mpi","function_name":"mca_pml_base_select"},"9251":{"probe_name":"mpi","function_name":"mca_pml_base_select.cold"},"9252":{"probe_name":"mpi","function_name":"mca_pml_base_send_request_construct"},"9253":{"probe_name":"mpi","function_name":"mca_pml_base_send_request_destruct"},"9254":{"probe_name":"mpi","function_name":"mca_pml_bsend_alloc_segment"},"9255":{"probe_name":"mpi","function_name":"mca_pml_cm_add_comm"},"9256":{"probe_name":"mpi","function_name":"mca_pml_cm_add_procs"},"9257":{"probe_name":"mpi","function_name":"mca_pml_cm_cancel"},"9258":{"probe_name":"mpi","function_name":"mca_pml_cm_component_close"},"9259":{"probe_name":"mpi","function_name":"mca_pml_cm_component_fini"},"9260":{"probe_name":"mpi","function_name":"mca_pml_cm_component_init"},"9261":{"probe_name":"mpi","function_name":"mca_pml_cm_component_open"},"9262":{"probe_name":"mpi","function_name":"mca_pml_cm_component_register"},"9263":{"probe_name":"mpi","function_name":"mca_pml_cm_del_comm"},"9264":{"probe_name":"mpi","function_name":"mca_pml_cm_del_procs"},"9265":{"probe_name":"mpi","function_name":"mca_pml_cm_dump"},"9266":{"probe_name":"mpi","function_name":"mca_pml_cm_enable"},"9267":{"probe_name":"mpi","function_name":"mca_pml_cm_improbe"},"9268":{"probe_name":"mpi","function_name":"mca_pml_cm_imrecv"},"9269":{"probe_name":"mpi","function_name":"mca_pml_cm_iprobe"},"9270":{"probe_name":"mpi","function_name":"mca_pml_cm_irecv"},"9271":{"probe_name":"mpi","function_name":"mca_pml_cm_irecv_init"},"9272":{"probe_name":"mpi","function_name":"mca_pml_cm_isend"},"9273":{"probe_name":"mpi","function_name":"mca_pml_cm_isend_init"},"9274":{"probe_name":"mpi","function_name":"mca_pml_cm_mprobe"},"9275":{"probe_name":"mpi","function_name":"mca_pml_cm_mrecv"},"9276":{"probe_name":"mpi","function_name":"mca_pml_cm_probe"},"9277":{"probe_name":"mpi","function_name":"mca_pml_cm_recv"},"9278":{"probe_name":"mpi","function_name":"mca_pml_cm_recv_fast_completion"},"9279":{"probe_name":"mpi","function_name":"mca_pml_cm_recv_request_completion"},"9280":{"probe_name":"mpi","function_name":"mca_pml_cm_recv_request_construct"},"9281":{"probe_name":"mpi","function_name":"mca_pml_cm_recv_request_free"},"9282":{"probe_name":"mpi","function_name":"mca_pml_cm_request_construct"},"9283":{"probe_name":"mpi","function_name":"mca_pml_cm_request_destruct"},"9284":{"probe_name":"mpi","function_name":"mca_pml_cm_send"},"9285":{"probe_name":"mpi","function_name":"mca_pml_cm_send_request_completion"},"9286":{"probe_name":"mpi","function_name":"mca_pml_cm_send_request_construct"},"9287":{"probe_name":"mpi","function_name":"mca_pml_cm_send_request_free"},"9288":{"probe_name":"mpi","function_name":"mca_pml_cm_start"},"9289":{"probe_name":"mpi","function_name":"mca_pml_monitoring_add_comm"},"9290":{"probe_name":"mpi","function_name":"mca_pml_monitoring_add_procs"},"9291":{"probe_name":"mpi","function_name":"mca_pml_monitoring_component_finish"},"9292":{"probe_name":"mpi","function_name":"mca_pml_monitoring_component_init"},"9293":{"probe_name":"mpi","function_name":"mca_pml_monitoring_component_open"},"9294":{"probe_name":"mpi","function_name":"mca_pml_monitoring_del_comm"},"9295":{"probe_name":"mpi","function_name":"mca_pml_monitoring_del_procs"},"9296":{"probe_name":"mpi","function_name":"mca_pml_monitoring_dump"},"9297":{"probe_name":"mpi","function_name":"mca_pml_monitoring_enable"},"9298":{"probe_name":"mpi","function_name":"mca_pml_monitoring_improbe"},"9299":{"probe_name":"mpi","function_name":"mca_pml_monitoring_imrecv"},"9300":{"probe_name":"mpi","function_name":"mca_pml_monitoring_iprobe"},"9301":{"probe_name":"mpi","function_name":"mca_pml_monitoring_irecv"},"9302":{"probe_name":"mpi","function_name":"mca_pml_monitoring_irecv_init"},"9303":{"probe_name":"mpi","function_name":"mca_pml_monitoring_isend"},"9304":{"probe_name":"mpi","function_name":"mca_pml_monitoring_isend_init"},"9305":{"probe_name":"mpi","function_name":"mca_pml_monitoring_mprobe"},"9306":{"probe_name":"mpi","function_name":"mca_pml_monitoring_mrecv"},"9307":{"probe_name":"mpi","function_name":"mca_pml_monitoring_probe"},"9308":{"probe_name":"mpi","function_name":"mca_pml_monitoring_recv"},"9309":{"probe_name":"mpi","function_name":"mca_pml_monitoring_revoke_comm"},"9310":{"probe_name":"mpi","function_name":"mca_pml_monitoring_send"},"9311":{"probe_name":"mpi","function_name":"mca_pml_monitoring_start"},"9312":{"probe_name":"mpi","function_name":"mca_pml_ob1_accelerator_add_ipc_support"},"9313":{"probe_name":"mpi","function_name":"mca_pml_ob1_accelerator_fini"},"9314":{"probe_name":"mpi","function_name":"mca_pml_ob1_accelerator_init"},"9315":{"probe_name":"mpi","function_name":"mca_pml_ob1_accelerator_need_buffers"},"9316":{"probe_name":"mpi","function_name":"mca_pml_ob1_add_comm"},"9317":{"probe_name":"mpi","function_name":"mca_pml_ob1_add_procs"},"9318":{"probe_name":"mpi","function_name":"mca_pml_ob1_com_btl_comp"},"9319":{"probe_name":"mpi","function_name":"mca_pml_ob1_comm_construct"},"9320":{"probe_name":"mpi","function_name":"mca_pml_ob1_comm_destruct"},"9321":{"probe_name":"mpi","function_name":"mca_pml_ob1_comm_init_size"},"9322":{"probe_name":"mpi","function_name":"mca_pml_ob1_comm_proc_construct"},"9323":{"probe_name":"mpi","function_name":"mca_pml_ob1_comm_proc_destruct"},"9324":{"probe_name":"mpi","function_name":"mca_pml_ob1_comm_size_notify"},"9325":{"probe_name":"mpi","function_name":"mca_pml_ob1_component_close"},"9326":{"probe_name":"mpi","function_name":"mca_pml_ob1_component_fini"},"9327":{"probe_name":"mpi","function_name":"mca_pml_ob1_component_init"},"9328":{"probe_name":"mpi","function_name":"mca_pml_ob1_component_open"},"9329":{"probe_name":"mpi","function_name":"mca_pml_ob1_component_register"},"9330":{"probe_name":"mpi","function_name":"mca_pml_ob1_control_completion"},"9331":{"probe_name":"mpi","function_name":"mca_pml_ob1_copy_frag_completion"},"9332":{"probe_name":"mpi","function_name":"mca_pml_ob1_del_comm"},"9333":{"probe_name":"mpi","function_name":"mca_pml_ob1_del_procs"},"9334":{"probe_name":"mpi","function_name":"mca_pml_ob1_dump"},"9335":{"probe_name":"mpi","function_name":"mca_pml_ob1_dump_cant_match"},"9336":{"probe_name":"mpi","function_name":"mca_pml_ob1_dump_frag_list"},"9337":{"probe_name":"mpi","function_name":"mca_pml_ob1_dump_hdr"},"9338":{"probe_name":"mpi","function_name":"mca_pml_ob1_enable"},"9339":{"probe_name":"mpi","function_name":"mca_pml_ob1_enable_progress"},"9340":{"probe_name":"mpi","function_name":"mca_pml_ob1_error_handler"},"9341":{"probe_name":"mpi","function_name":"mca_pml_ob1_frag_completion"},"9342":{"probe_name":"mpi","function_name":"mca_pml_ob1_get_dtoh_stream"},"9343":{"probe_name":"mpi","function_name":"mca_pml_ob1_get_htod_stream"},"9344":{"probe_name":"mpi","function_name":"mca_pml_ob1_get_posted_recvq_size"},"9345":{"probe_name":"mpi","function_name":"mca_pml_ob1_get_unex_msgq_size"},"9346":{"probe_name":"mpi","function_name":"mca_pml_ob1_handle_cid"},"9347":{"probe_name":"mpi","function_name":"mca_pml_ob1_improbe"},"9348":{"probe_name":"mpi","function_name":"mca_pml_ob1_imrecv"},"9349":{"probe_name":"mpi","function_name":"mca_pml_ob1_imrecv.cold"},"9350":{"probe_name":"mpi","function_name":"mca_pml_ob1_iprobe"},"9351":{"probe_name":"mpi","function_name":"mca_pml_ob1_irecv"},"9352":{"probe_name":"mpi","function_name":"mca_pml_ob1_irecv_init"},"9353":{"probe_name":"mpi","function_name":"mca_pml_ob1_isend"},"9354":{"probe_name":"mpi","function_name":"mca_pml_ob1_isend_init"},"9355":{"probe_name":"mpi","function_name":"mca_pml_ob1_match_completion_free"},"9356":{"probe_name":"mpi","function_name":"mca_pml_ob1_merge_cant_match"},"9357":{"probe_name":"mpi","function_name":"mca_pml_ob1_mprobe"},"9358":{"probe_name":"mpi","function_name":"mca_pml_ob1_mrecv"},"9359":{"probe_name":"mpi","function_name":"mca_pml_ob1_mrecv.cold"},"9360":{"probe_name":"mpi","function_name":"mca_pml_ob1_peer_create"},"9361":{"probe_name":"mpi","function_name":"mca_pml_ob1_probe"},"9362":{"probe_name":"mpi","function_name":"mca_pml_ob1_process_pending_packets"},"9363":{"probe_name":"mpi","function_name":"mca_pml_ob1_process_pending_rdma"},"9364":{"probe_name":"mpi","function_name":"mca_pml_ob1_progress"},"9365":{"probe_name":"mpi","function_name":"mca_pml_ob1_progress_one_htod_event"},"9366":{"probe_name":"mpi","function_name":"mca_pml_ob1_put_completion:0x2057a0"},"9367":{"probe_name":"mpi","function_name":"mca_pml_ob1_put_completion:0x20bf00"},"9368":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_btls"},"9369":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_btls.cold"},"9370":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_cuda_btls"},"9371":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_cuda_btls.cold"},"9372":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_frag_constructor"},"9373":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_pipeline_btls"},"9374":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_pipeline_btls.cold"},"9375":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_pipeline_btls_count"},"9376":{"probe_name":"mpi","function_name":"mca_pml_ob1_rdma_pipeline_btls_count.cold"},"9377":{"probe_name":"mpi","function_name":"mca_pml_ob1_record_htod_event"},"9378":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv"},"9379":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_ctl_completion"},"9380":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_ack"},"9381":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_cid"},"9382":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_fin"},"9383":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_frag"},"9384":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_match"},"9385":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_put"},"9386":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_rget"},"9387":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_callback_rndv"},"9388":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_match.isra.0"},"9389":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_frag_match_proc.isra.0"},"9390":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_req_start"},"9391":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_ack.isra.0"},"9392":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_ack_send_btl"},"9393":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_cancel"},"9394":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_construct"},"9395":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_destruct"},"9396":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_frag_copy_finished"},"9397":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_frag_copy_start"},"9398":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_free"},"9399":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_get_frag"},"9400":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_get_frag_failed"},"9401":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_matched_probe"},"9402":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_process_pending"},"9403":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_progress_frag"},"9404":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_progress_match"},"9405":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_progress_rget"},"9406":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_progress_rget.cold"},"9407":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_progress_rndv"},"9408":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_put_frag"},"9409":{"probe_name":"mpi","function_name":"mca_pml_ob1_recv_request_schedule_once"},"9410":{"probe_name":"mpi","function_name":"mca_pml_ob1_revoke_comm"},"9411":{"probe_name":"mpi","function_name":"mca_pml_ob1_revoke_comm.localalias"},"9412":{"probe_name":"mpi","function_name":"mca_pml_ob1_rget_completion:0x204ec0"},"9413":{"probe_name":"mpi","function_name":"mca_pml_ob1_rget_completion:0x209c10"},"9414":{"probe_name":"mpi","function_name":"mca_pml_ob1_rndv_completion"},"9415":{"probe_name":"mpi","function_name":"mca_pml_ob1_seg_alloc"},"9416":{"probe_name":"mpi","function_name":"mca_pml_ob1_seg_free"},"9417":{"probe_name":"mpi","function_name":"mca_pml_ob1_send"},"9418":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_cid"},"9419":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_control_any"},"9420":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_control_btl"},"9421":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_ctl_completion"},"9422":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_fin"},"9423":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_inline.constprop.0"},"9424":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_cancel"},"9425":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_construct"},"9426":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_copy_in_out"},"9427":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_destruct"},"9428":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_free"},"9429":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_process_pending"},"9430":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_put"},"9431":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_put_frag"},"9432":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_put_frag_failed"},"9433":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_schedule_once"},"9434":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_start_accelerator"},"9435":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_start_buffered"},"9436":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_start_copy"},"9437":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_start_prepare"},"9438":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_start_rdma"},"9439":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_start_rndv"},"9440":{"probe_name":"mpi","function_name":"mca_pml_ob1_send_request_start_seq.constprop.0"},"9441":{"probe_name":"mpi","function_name":"mca_pml_ob1_set_allow_overtake"},"9442":{"probe_name":"mpi","function_name":"mca_pml_ob1_start"},"9443":{"probe_name":"mpi","function_name":"mca_pml_v_component_close"},"9444":{"probe_name":"mpi","function_name":"mca_pml_v_component_finalize"},"9445":{"probe_name":"mpi","function_name":"mca_pml_v_component_init"},"9446":{"probe_name":"mpi","function_name":"mca_pml_v_component_open"},"9447":{"probe_name":"mpi","function_name":"mca_pml_v_component_parasite_close"},"9448":{"probe_name":"mpi","function_name":"mca_pml_v_component_parasite_finalize"},"9449":{"probe_name":"mpi","function_name":"mca_pml_v_component_register"},"9450":{"probe_name":"mpi","function_name":"mca_pml_v_enable"},"9451":{"probe_name":"mpi","function_name":"mca_sharedfp_base_close"},"9452":{"probe_name":"mpi","function_name":"mca_sharedfp_base_file_select"},"9453":{"probe_name":"mpi","function_name":"mca_sharedfp_base_file_unselect"},"9454":{"probe_name":"mpi","function_name":"mca_sharedfp_base_find_available"},"9455":{"probe_name":"mpi","function_name":"mca_sharedfp_base_open"},"9456":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_assign_globaloffset"},"9457":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_collaborate_data"},"9458":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_component_file_query"},"9459":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_component_file_unquery"},"9460":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_component_init_query"},"9461":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_create_buff"},"9462":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_file_close"},"9463":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_file_open"},"9464":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_get_position"},"9465":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_get_timestamps_and_reclengths"},"9466":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_getoffset"},"9467":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_gettime"},"9468":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_insert_headnode"},"9469":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_insert_metadata"},"9470":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_iread"},"9471":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_iwrite"},"9472":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_module_finalize"},"9473":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_module_init"},"9474":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_read"},"9475":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_read_ordered"},"9476":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_read_ordered_begin"},"9477":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_read_ordered_end"},"9478":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_seek"},"9479":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_sort_timestamps"},"9480":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_write"},"9481":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_write_metadata_file"},"9482":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_write_ordered"},"9483":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_write_ordered_begin"},"9484":{"probe_name":"mpi","function_name":"mca_sharedfp_individual_write_ordered_end"},"9485":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_component_file_query"},"9486":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_component_file_unquery"},"9487":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_component_init_query"},"9488":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_file_close"},"9489":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_file_open"},"9490":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_get_position"},"9491":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_iread"},"9492":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_iwrite"},"9493":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_module_finalize"},"9494":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_module_init"},"9495":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_read"},"9496":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_read_ordered"},"9497":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_read_ordered.cold"},"9498":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_read_ordered_begin"},"9499":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_read_ordered_begin.cold"},"9500":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_read_ordered_end"},"9501":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_request_position"},"9502":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_seek"},"9503":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_write"},"9504":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_write_ordered"},"9505":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_write_ordered.cold"},"9506":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_write_ordered_begin"},"9507":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_write_ordered_begin.cold"},"9508":{"probe_name":"mpi","function_name":"mca_sharedfp_lockedfile_write_ordered_end"},"9509":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_component_file_query"},"9510":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_component_file_unquery"},"9511":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_component_init_query"},"9512":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_file_close"},"9513":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_file_open"},"9514":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_get_position"},"9515":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_iread"},"9516":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_iwrite"},"9517":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_module_finalize"},"9518":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_module_init"},"9519":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_read"},"9520":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_read_ordered"},"9521":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_read_ordered.cold"},"9522":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_read_ordered_begin"},"9523":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_read_ordered_begin.cold"},"9524":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_read_ordered_end"},"9525":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_request_position"},"9526":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_seek"},"9527":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_write"},"9528":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_write_ordered"},"9529":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_write_ordered.cold"},"9530":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_write_ordered_begin"},"9531":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_write_ordered_begin.cold"},"9532":{"probe_name":"mpi","function_name":"mca_sharedfp_sm_write_ordered_end"},"9533":{"probe_name":"mpi","function_name":"mca_topo_base_cart_coords"},"9534":{"probe_name":"mpi","function_name":"mca_topo_base_cart_create"},"9535":{"probe_name":"mpi","function_name":"mca_topo_base_cart_get"},"9536":{"probe_name":"mpi","function_name":"mca_topo_base_cart_map"},"9537":{"probe_name":"mpi","function_name":"mca_topo_base_cart_rank"},"9538":{"probe_name":"mpi","function_name":"mca_topo_base_cart_shift"},"9539":{"probe_name":"mpi","function_name":"mca_topo_base_cart_sub"},"9540":{"probe_name":"mpi","function_name":"mca_topo_base_cartdim_get"},"9541":{"probe_name":"mpi","function_name":"mca_topo_base_close"},"9542":{"probe_name":"mpi","function_name":"mca_topo_base_comm_cart_2_2_0_construct"},"9543":{"probe_name":"mpi","function_name":"mca_topo_base_comm_cart_2_2_0_destruct"},"9544":{"probe_name":"mpi","function_name":"mca_topo_base_comm_dist_graph_2_2_0_construct"},"9545":{"probe_name":"mpi","function_name":"mca_topo_base_comm_dist_graph_2_2_0_destruct"},"9546":{"probe_name":"mpi","function_name":"mca_topo_base_comm_graph_2_2_0_construct"},"9547":{"probe_name":"mpi","function_name":"mca_topo_base_comm_graph_2_2_0_destruct"},"9548":{"probe_name":"mpi","function_name":"mca_topo_base_comm_select"},"9549":{"probe_name":"mpi","function_name":"mca_topo_base_dist_graph_create"},"9550":{"probe_name":"mpi","function_name":"mca_topo_base_dist_graph_create_adjacent"},"9551":{"probe_name":"mpi","function_name":"mca_topo_base_dist_graph_distribute"},"9552":{"probe_name":"mpi","function_name":"mca_topo_base_dist_graph_neighbors"},"9553":{"probe_name":"mpi","function_name":"mca_topo_base_dist_graph_neighbors_count"},"9554":{"probe_name":"mpi","function_name":"mca_topo_base_find_available"},"9555":{"probe_name":"mpi","function_name":"mca_topo_base_graph_create"},"9556":{"probe_name":"mpi","function_name":"mca_topo_base_graph_get"},"9557":{"probe_name":"mpi","function_name":"mca_topo_base_graph_map"},"9558":{"probe_name":"mpi","function_name":"mca_topo_base_graph_neighbors"},"9559":{"probe_name":"mpi","function_name":"mca_topo_base_graph_neighbors_count"},"9560":{"probe_name":"mpi","function_name":"mca_topo_base_graphdims_get"},"9561":{"probe_name":"mpi","function_name":"mca_topo_base_group_select"},"9562":{"probe_name":"mpi","function_name":"mca_topo_base_lazy_init"},"9563":{"probe_name":"mpi","function_name":"mca_topo_base_module_construct"},"9564":{"probe_name":"mpi","function_name":"mca_topo_base_module_destruct"},"9565":{"probe_name":"mpi","function_name":"mca_topo_base_neighbor_count"},"9566":{"probe_name":"mpi","function_name":"mca_topo_base_open"},"9567":{"probe_name":"mpi","function_name":"mca_topo_basic_query"},"9568":{"probe_name":"mpi","function_name":"mca_topo_treematch_component_register"},"9569":{"probe_name":"mpi","function_name":"mca_topo_treematch_dist_graph_create"},"9570":{"probe_name":"mpi","function_name":"mca_topo_treematch_dist_graph_create.cold"},"9571":{"probe_name":"mpi","function_name":"mca_topo_treematch_query"},"9572":{"probe_name":"mpi","function_name":"mca_vprotocol_base_close"},"9573":{"probe_name":"mpi","function_name":"mca_vprotocol_base_open"},"9574":{"probe_name":"mpi","function_name":"mca_vprotocol_base_parasite"},"9575":{"probe_name":"mpi","function_name":"mca_vprotocol_base_request_parasite"},"9576":{"probe_name":"mpi","function_name":"mca_vprotocol_base_select"},"9577":{"probe_name":"mpi","function_name":"mca_vprotocol_base_set_include_list"},"9578":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_add_comm"},"9579":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_add_procs"},"9580":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_component_close"},"9581":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_component_finalize"},"9582":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_component_init"},"9583":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_component_open"},"9584":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_component_register"},"9585":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_del_comm"},"9586":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_del_procs"},"9587":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_dump"},"9588":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_enable"},"9589":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_iprobe"},"9590":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_irecv"},"9591":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_isend"},"9592":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_isend.cold"},"9593":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_probe"},"9594":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_recv"},"9595":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_request_free"},"9596":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_send"},"9597":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_send.cold"},"9598":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_start"},"9599":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_test"},"9600":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_test_all"},"9601":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_test_any"},"9602":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_test_some"},"9603":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_wait_any"},"9604":{"probe_name":"mpi","function_name":"mca_vprotocol_pessimist_wait_some"},"9605":{"probe_name":"mpi","function_name":"model_callback"},"9606":{"probe_name":"mpi","function_name":"module_constructor"},"9607":{"probe_name":"mpi","function_name":"module_constructor_1_0_0"},"9608":{"probe_name":"mpi","function_name":"mpi_aint_add_f90"},"9609":{"probe_name":"mpi","function_name":"mpi_aint_add_f90_"},"9610":{"probe_name":"mpi","function_name":"mpi_aint_add_f90__"},"9611":{"probe_name":"mpi","function_name":"mpi_aint_diff_f90"},"9612":{"probe_name":"mpi","function_name":"mpi_aint_diff_f90_"},"9613":{"probe_name":"mpi","function_name":"mpi_aint_diff_f90__"},"9614":{"probe_name":"mpi","function_name":"mpi_comm_dup_fn"},"9615":{"probe_name":"mpi","function_name":"mpi_comm_dup_fn_"},"9616":{"probe_name":"mpi","function_name":"mpi_comm_dup_fn__"},"9617":{"probe_name":"mpi","function_name":"mpi_comm_null_copy_fn"},"9618":{"probe_name":"mpi","function_name":"mpi_comm_null_copy_fn_"},"9619":{"probe_name":"mpi","function_name":"mpi_comm_null_copy_fn__"},"9620":{"probe_name":"mpi","function_name":"mpi_comm_null_delete_fn"},"9621":{"probe_name":"mpi","function_name":"mpi_comm_null_delete_fn_"},"9622":{"probe_name":"mpi","function_name":"mpi_comm_null_delete_fn__"},"9623":{"probe_name":"mpi","function_name":"mpi_conversion_fn_null"},"9624":{"probe_name":"mpi","function_name":"mpi_conversion_fn_null_"},"9625":{"probe_name":"mpi","function_name":"mpi_conversion_fn_null__"},"9626":{"probe_name":"mpi","function_name":"mpi_conversion_fn_null_f"},"9627":{"probe_name":"mpi","function_name":"mpi_dup_fn"},"9628":{"probe_name":"mpi","function_name":"mpi_dup_fn_"},"9629":{"probe_name":"mpi","function_name":"mpi_dup_fn__"},"9630":{"probe_name":"mpi","function_name":"mpi_null_copy_fn"},"9631":{"probe_name":"mpi","function_name":"mpi_null_copy_fn_"},"9632":{"probe_name":"mpi","function_name":"mpi_null_copy_fn__"},"9633":{"probe_name":"mpi","function_name":"mpi_null_delete_fn"},"9634":{"probe_name":"mpi","function_name":"mpi_null_delete_fn_"},"9635":{"probe_name":"mpi","function_name":"mpi_null_delete_fn__"},"9636":{"probe_name":"mpi","function_name":"mpi_type_dup_fn"},"9637":{"probe_name":"mpi","function_name":"mpi_type_dup_fn_"},"9638":{"probe_name":"mpi","function_name":"mpi_type_dup_fn__"},"9639":{"probe_name":"mpi","function_name":"mpi_type_null_copy_fn"},"9640":{"probe_name":"mpi","function_name":"mpi_type_null_copy_fn_"},"9641":{"probe_name":"mpi","function_name":"mpi_type_null_copy_fn__"},"9642":{"probe_name":"mpi","function_name":"mpi_type_null_delete_fn"},"9643":{"probe_name":"mpi","function_name":"mpi_type_null_delete_fn_"},"9644":{"probe_name":"mpi","function_name":"mpi_type_null_delete_fn__"},"9645":{"probe_name":"mpi","function_name":"mpi_win_dup_fn"},"9646":{"probe_name":"mpi","function_name":"mpi_win_dup_fn_"},"9647":{"probe_name":"mpi","function_name":"mpi_win_dup_fn__"},"9648":{"probe_name":"mpi","function_name":"mpi_win_null_copy_fn"},"9649":{"probe_name":"mpi","function_name":"mpi_win_null_copy_fn_"},"9650":{"probe_name":"mpi","function_name":"mpi_win_null_copy_fn__"},"9651":{"probe_name":"mpi","function_name":"mpi_win_null_delete_fn"},"9652":{"probe_name":"mpi","function_name":"mpi_win_null_delete_fn_"},"9653":{"probe_name":"mpi","function_name":"mpi_win_null_delete_fn__"},"9654":{"probe_name":"mpi","function_name":"mpi_wtick_f90"},"9655":{"probe_name":"mpi","function_name":"mpi_wtick_f90_"},"9656":{"probe_name":"mpi","function_name":"mpi_wtick_f90__"},"9657":{"probe_name":"mpi","function_name":"mpi_wtime_f90"},"9658":{"probe_name":"mpi","function_name":"mpi_wtime_f90_"},"9659":{"probe_name":"mpi","function_name":"mpi_wtime_f90__"},"9660":{"probe_name":"mpi","function_name":"msg_down"},"9661":{"probe_name":"mpi","function_name":"msg_down.cold"},"9662":{"probe_name":"mpi","function_name":"msg_up"},"9663":{"probe_name":"mpi","function_name":"mycompar"},"9664":{"probe_name":"mpi","function_name":"myfn"},"9665":{"probe_name":"mpi","function_name":"nb_leaves"},"9666":{"probe_name":"mpi","function_name":"nb_lines"},"9667":{"probe_name":"mpi","function_name":"nbc_allgather_init"},"9668":{"probe_name":"mpi","function_name":"nbc_allgather_inter_init"},"9669":{"probe_name":"mpi","function_name":"nbc_allgatherv_init"},"9670":{"probe_name":"mpi","function_name":"nbc_allgatherv_inter_init"},"9671":{"probe_name":"mpi","function_name":"nbc_allreduce_init"},"9672":{"probe_name":"mpi","function_name":"nbc_allreduce_init.cold"},"9673":{"probe_name":"mpi","function_name":"nbc_allreduce_inter_init"},"9674":{"probe_name":"mpi","function_name":"nbc_alltoall_init"},"9675":{"probe_name":"mpi","function_name":"nbc_alltoall_inter_init"},"9676":{"probe_name":"mpi","function_name":"nbc_alltoallv_init"},"9677":{"probe_name":"mpi","function_name":"nbc_alltoallv_inter_init"},"9678":{"probe_name":"mpi","function_name":"nbc_alltoallw_init"},"9679":{"probe_name":"mpi","function_name":"nbc_alltoallw_inter_init"},"9680":{"probe_name":"mpi","function_name":"nbc_barrier_init"},"9681":{"probe_name":"mpi","function_name":"nbc_barrier_inter_init"},"9682":{"probe_name":"mpi","function_name":"nbc_bcast_init"},"9683":{"probe_name":"mpi","function_name":"nbc_bcast_inter_init"},"9684":{"probe_name":"mpi","function_name":"nbc_exscan_init"},"9685":{"probe_name":"mpi","function_name":"nbc_gather_init"},"9686":{"probe_name":"mpi","function_name":"nbc_gather_inter_init"},"9687":{"probe_name":"mpi","function_name":"nbc_gatherv_init"},"9688":{"probe_name":"mpi","function_name":"nbc_gatherv_inter_init"},"9689":{"probe_name":"mpi","function_name":"nbc_neighbor_allgather_init"},"9690":{"probe_name":"mpi","function_name":"nbc_neighbor_allgatherv_init"},"9691":{"probe_name":"mpi","function_name":"nbc_neighbor_alltoall_init"},"9692":{"probe_name":"mpi","function_name":"nbc_neighbor_alltoallv_init"},"9693":{"probe_name":"mpi","function_name":"nbc_neighbor_alltoallw_init"},"9694":{"probe_name":"mpi","function_name":"nbc_reduce_init"},"9695":{"probe_name":"mpi","function_name":"nbc_reduce_inter_init"},"9696":{"probe_name":"mpi","function_name":"nbc_reduce_scatter_block_init"},"9697":{"probe_name":"mpi","function_name":"nbc_reduce_scatter_block_inter_init"},"9698":{"probe_name":"mpi","function_name":"nbc_reduce_scatter_init"},"9699":{"probe_name":"mpi","function_name":"nbc_reduce_scatter_inter_init"},"9700":{"probe_name":"mpi","function_name":"nbc_req_constructor"},"9701":{"probe_name":"mpi","function_name":"nbc_scan_init"},"9702":{"probe_name":"mpi","function_name":"nbc_scatter_init"},"9703":{"probe_name":"mpi","function_name":"nbc_scatter_inter_init"},"9704":{"probe_name":"mpi","function_name":"nbc_scatterv_init"},"9705":{"probe_name":"mpi","function_name":"nbc_scatterv_inter_init"},"9706":{"probe_name":"mpi","function_name":"nbc_schedule_constructor"},"9707":{"probe_name":"mpi","function_name":"nbc_schedule_destructor"},"9708":{"probe_name":"mpi","function_name":"next_bucket_elem"},"9709":{"probe_name":"mpi","function_name":"node_height"},"9710":{"probe_name":"mpi","function_name":"node_mheight"},"9711":{"probe_name":"mpi","function_name":"node_pathlen"},"9712":{"probe_name":"mpi","function_name":"ompi_attr_copy_all"},"9713":{"probe_name":"mpi","function_name":"ompi_attr_create_keyval"},"9714":{"probe_name":"mpi","function_name":"ompi_attr_create_keyval_aint"},"9715":{"probe_name":"mpi","function_name":"ompi_attr_create_keyval_fint"},"9716":{"probe_name":"mpi","function_name":"ompi_attr_create_keyval_impl"},"9717":{"probe_name":"mpi","function_name":"ompi_attr_create_predefined_keyvals"},"9718":{"probe_name":"mpi","function_name":"ompi_attr_delete"},"9719":{"probe_name":"mpi","function_name":"ompi_attr_delete_all"},"9720":{"probe_name":"mpi","function_name":"ompi_attr_delete_impl"},"9721":{"probe_name":"mpi","function_name":"ompi_attr_delete_predefined_keyvals_for_wm"},"9722":{"probe_name":"mpi","function_name":"ompi_attr_free_keyval"},"9723":{"probe_name":"mpi","function_name":"ompi_attr_free_predefined"},"9724":{"probe_name":"mpi","function_name":"ompi_attr_get_aint"},"9725":{"probe_name":"mpi","function_name":"ompi_attr_get_aint.cold"},"9726":{"probe_name":"mpi","function_name":"ompi_attr_get_c"},"9727":{"probe_name":"mpi","function_name":"ompi_attr_get_c.cold"},"9728":{"probe_name":"mpi","function_name":"ompi_attr_get_fint"},"9729":{"probe_name":"mpi","function_name":"ompi_attr_get_fint.cold"},"9730":{"probe_name":"mpi","function_name":"ompi_attr_get_ref"},"9731":{"probe_name":"mpi","function_name":"ompi_attr_put_ref"},"9732":{"probe_name":"mpi","function_name":"ompi_attr_set_aint"},"9733":{"probe_name":"mpi","function_name":"ompi_attr_set_c"},"9734":{"probe_name":"mpi","function_name":"ompi_attr_set_fint"},"9735":{"probe_name":"mpi","function_name":"ompi_attr_set_int"},"9736":{"probe_name":"mpi","function_name":"ompi_attr_set_predefined_keyvals_for_wm"},"9737":{"probe_name":"mpi","function_name":"ompi_attribute_keyval_construct"},"9738":{"probe_name":"mpi","function_name":"ompi_attribute_keyval_destruct"},"9739":{"probe_name":"mpi","function_name":"ompi_coll_adapt_bcast"},"9740":{"probe_name":"mpi","function_name":"ompi_coll_adapt_comm_query"},"9741":{"probe_name":"mpi","function_name":"ompi_coll_adapt_ibcast"},"9742":{"probe_name":"mpi","function_name":"ompi_coll_adapt_ibcast_fini"},"9743":{"probe_name":"mpi","function_name":"ompi_coll_adapt_ibcast_register"},"9744":{"probe_name":"mpi","function_name":"ompi_coll_adapt_init_query"},"9745":{"probe_name":"mpi","function_name":"ompi_coll_adapt_ireduce"},"9746":{"probe_name":"mpi","function_name":"ompi_coll_adapt_ireduce_fini"},"9747":{"probe_name":"mpi","function_name":"ompi_coll_adapt_ireduce_register"},"9748":{"probe_name":"mpi","function_name":"ompi_coll_adapt_module_cached_topology"},"9749":{"probe_name":"mpi","function_name":"ompi_coll_adapt_reduce"},"9750":{"probe_name":"mpi","function_name":"ompi_coll_adapt_request_free"},"9751":{"probe_name":"mpi","function_name":"ompi_coll_base_agree_noft"},"9752":{"probe_name":"mpi","function_name":"ompi_coll_base_allgather_intra_basic_linear"},"9753":{"probe_name":"mpi","function_name":"ompi_coll_base_allgather_intra_bruck"},"9754":{"probe_name":"mpi","function_name":"ompi_coll_base_allgather_intra_neighborexchange"},"9755":{"probe_name":"mpi","function_name":"ompi_coll_base_allgather_intra_recursivedoubling"},"9756":{"probe_name":"mpi","function_name":"ompi_coll_base_allgather_intra_ring"},"9757":{"probe_name":"mpi","function_name":"ompi_coll_base_allgather_intra_sparbit"},"9758":{"probe_name":"mpi","function_name":"ompi_coll_base_allgather_intra_two_procs"},"9759":{"probe_name":"mpi","function_name":"ompi_coll_base_allgatherv_intra_basic_default"},"9760":{"probe_name":"mpi","function_name":"ompi_coll_base_allgatherv_intra_bruck"},"9761":{"probe_name":"mpi","function_name":"ompi_coll_base_allgatherv_intra_neighborexchange"},"9762":{"probe_name":"mpi","function_name":"ompi_coll_base_allgatherv_intra_ring"},"9763":{"probe_name":"mpi","function_name":"ompi_coll_base_allgatherv_intra_sparbit"},"9764":{"probe_name":"mpi","function_name":"ompi_coll_base_allgatherv_intra_two_procs"},"9765":{"probe_name":"mpi","function_name":"ompi_coll_base_allreduce_intra_basic_linear"},"9766":{"probe_name":"mpi","function_name":"ompi_coll_base_allreduce_intra_nonoverlapping"},"9767":{"probe_name":"mpi","function_name":"ompi_coll_base_allreduce_intra_recursivedoubling"},"9768":{"probe_name":"mpi","function_name":"ompi_coll_base_allreduce_intra_redscat_allgather"},"9769":{"probe_name":"mpi","function_name":"ompi_coll_base_allreduce_intra_ring"},"9770":{"probe_name":"mpi","function_name":"ompi_coll_base_allreduce_intra_ring_segmented"},"9771":{"probe_name":"mpi","function_name":"ompi_coll_base_alltoall_intra_basic_linear"},"9772":{"probe_name":"mpi","function_name":"ompi_coll_base_alltoall_intra_bruck"},"9773":{"probe_name":"mpi","function_name":"ompi_coll_base_alltoall_intra_linear_sync"},"9774":{"probe_name":"mpi","function_name":"ompi_coll_base_alltoall_intra_pairwise"},"9775":{"probe_name":"mpi","function_name":"ompi_coll_base_alltoall_intra_two_procs"},"9776":{"probe_name":"mpi","function_name":"ompi_coll_base_alltoallv_intra_basic_linear"},"9777":{"probe_name":"mpi","function_name":"ompi_coll_base_alltoallv_intra_pairwise"},"9778":{"probe_name":"mpi","function_name":"ompi_coll_base_barrier_intra_basic_linear"},"9779":{"probe_name":"mpi","function_name":"ompi_coll_base_barrier_intra_bruck"},"9780":{"probe_name":"mpi","function_name":"ompi_coll_base_barrier_intra_doublering"},"9781":{"probe_name":"mpi","function_name":"ompi_coll_base_barrier_intra_recursivedoubling"},"9782":{"probe_name":"mpi","function_name":"ompi_coll_base_barrier_intra_tree"},"9783":{"probe_name":"mpi","function_name":"ompi_coll_base_barrier_intra_two_procs"},"9784":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_basic_linear"},"9785":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_binomial"},"9786":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_bintree"},"9787":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_chain"},"9788":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_generic"},"9789":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_knomial"},"9790":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_pipeline"},"9791":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_scatter_allgather"},"9792":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_scatter_allgather_ring"},"9793":{"probe_name":"mpi","function_name":"ompi_coll_base_bcast_intra_split_bintree"},"9794":{"probe_name":"mpi","function_name":"ompi_coll_base_comm_get_reqs"},"9795":{"probe_name":"mpi","function_name":"ompi_coll_base_exscan_intra_linear"},"9796":{"probe_name":"mpi","function_name":"ompi_coll_base_exscan_intra_recursivedoubling"},"9797":{"probe_name":"mpi","function_name":"ompi_coll_base_file_getnext_long"},"9798":{"probe_name":"mpi","function_name":"ompi_coll_base_file_getnext_size_t"},"9799":{"probe_name":"mpi","function_name":"ompi_coll_base_file_getnext_string"},"9800":{"probe_name":"mpi","function_name":"ompi_coll_base_file_peek_next_char_is"},"9801":{"probe_name":"mpi","function_name":"ompi_coll_base_file_peek_next_char_isdigit"},"9802":{"probe_name":"mpi","function_name":"ompi_coll_base_gather_intra_basic_linear"},"9803":{"probe_name":"mpi","function_name":"ompi_coll_base_gather_intra_binomial"},"9804":{"probe_name":"mpi","function_name":"ompi_coll_base_gather_intra_linear_sync"},"9805":{"probe_name":"mpi","function_name":"ompi_coll_base_iagree_noft"},"9806":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_generic"},"9807":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_intra_basic_linear"},"9808":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_intra_binary"},"9809":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_intra_binomial"},"9810":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_intra_chain"},"9811":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_intra_in_order_binary"},"9812":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_intra_pipeline"},"9813":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_intra_redscat_gather"},"9814":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_block_basic_linear"},"9815":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_block_intra_butterfly"},"9816":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_block_intra_recursivedoubling"},"9817":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_block_intra_recursivehalving"},"9818":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_intra_basic_recursivehalving"},"9819":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_intra_butterfly"},"9820":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_intra_nonoverlapping"},"9821":{"probe_name":"mpi","function_name":"ompi_coll_base_reduce_scatter_intra_ring"},"9822":{"probe_name":"mpi","function_name":"ompi_coll_base_retain_datatypes"},"9823":{"probe_name":"mpi","function_name":"ompi_coll_base_retain_datatypes_w"},"9824":{"probe_name":"mpi","function_name":"ompi_coll_base_retain_op"},"9825":{"probe_name":"mpi","function_name":"ompi_coll_base_scan_intra_linear"},"9826":{"probe_name":"mpi","function_name":"ompi_coll_base_scan_intra_recursivedoubling"},"9827":{"probe_name":"mpi","function_name":"ompi_coll_base_scatter_intra_basic_linear"},"9828":{"probe_name":"mpi","function_name":"ompi_coll_base_scatter_intra_binomial"},"9829":{"probe_name":"mpi","function_name":"ompi_coll_base_scatter_intra_linear_nb"},"9830":{"probe_name":"mpi","function_name":"ompi_coll_base_sendrecv_actual"},"9831":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_build_bmtree"},"9832":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_build_chain"},"9833":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_build_in_order_bintree"},"9834":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_build_in_order_bmtree"},"9835":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_build_kmtree"},"9836":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_build_tree"},"9837":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_destroy_tree"},"9838":{"probe_name":"mpi","function_name":"ompi_coll_base_topo_dump_tree"},"9839":{"probe_name":"mpi","function_name":"ompi_coll_han_reorder_gather"},"9840":{"probe_name":"mpi","function_name":"ompi_coll_han_request_free"},"9841":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_allgather_init"},"9842":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_allgather_inter_init"},"9843":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_allgatherv_init"},"9844":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_allgatherv_inter_init"},"9845":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_allreduce_init"},"9846":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_allreduce_inter_init"},"9847":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_alltoall_init"},"9848":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_alltoall_inter_init"},"9849":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_alltoallv_init"},"9850":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_alltoallv_inter_init"},"9851":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_alltoallw_init"},"9852":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_alltoallw_inter_init"},"9853":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_barrier_init"},"9854":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_barrier_inter_init"},"9855":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_bcast_init"},"9856":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_bcast_inter_init"},"9857":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_dict_destroy"},"9858":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_dict_itor_destroy"},"9859":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_dict_long_cmp"},"9860":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_dict_ptr_cmp"},"9861":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_dict_str_cmp"},"9862":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_dict_uint_cmp"},"9863":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_dict_ulong_cmp"},"9864":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_exscan_init"},"9865":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_gather_init"},"9866":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_gather_inter_init"},"9867":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_gatherv_init"},"9868":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_gatherv_inter_init"},"9869":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_dict_itor_new"},"9870":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_dict_new"},"9871":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_cdata"},"9872":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_data"},"9873":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_destroy"},"9874":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_first"},"9875":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_invalidate"},"9876":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_key"},"9877":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_last"},"9878":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_new"},"9879":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_next"},"9880":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_nextn"},"9881":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_prev"},"9882":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_prevn"},"9883":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_set_data"},"9884":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_itor_valid"},"9885":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_count"},"9886":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_destroy"},"9887":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_empty"},"9888":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_height"},"9889":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_insert"},"9890":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_max"},"9891":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_mheight"},"9892":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_min"},"9893":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_new"},"9894":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_pathlen"},"9895":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_probe"},"9896":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_remove"},"9897":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_search"},"9898":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_hb_tree_walk"},"9899":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iallgather"},"9900":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iallgather_inter"},"9901":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iallgatherv"},"9902":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iallgatherv_inter"},"9903":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iallreduce"},"9904":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iallreduce_inter"},"9905":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ialltoall"},"9906":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ialltoall_inter"},"9907":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ialltoallv"},"9908":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ialltoallv_inter"},"9909":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ialltoallw"},"9910":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ialltoallw_inter"},"9911":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ibarrier"},"9912":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ibarrier_inter"},"9913":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ibcast"},"9914":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ibcast_inter"},"9915":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iexscan"},"9916":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_igather"},"9917":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_igather_inter"},"9918":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_igatherv"},"9919":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_igatherv_inter"},"9920":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ineighbor_allgather"},"9921":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ineighbor_allgatherv"},"9922":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ineighbor_alltoall"},"9923":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ineighbor_alltoallv"},"9924":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ineighbor_alltoallw"},"9925":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ireduce"},"9926":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ireduce_inter"},"9927":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ireduce_scatter"},"9928":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ireduce_scatter_block"},"9929":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ireduce_scatter_block_inter"},"9930":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_ireduce_scatter_inter"},"9931":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iscan"},"9932":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iscatter"},"9933":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iscatter_inter"},"9934":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iscatterv"},"9935":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_iscatterv_inter"},"9936":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_neighbor_allgather_init"},"9937":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_neighbor_allgatherv_init"},"9938":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_neighbor_alltoall_init"},"9939":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_neighbor_alltoallv_init"},"9940":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_neighbor_alltoallw_init"},"9941":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_progress"},"9942":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_reduce_init"},"9943":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_reduce_inter_init"},"9944":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_reduce_scatter_block_init"},"9945":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_reduce_scatter_block_inter_init"},"9946":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_reduce_scatter_init"},"9947":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_reduce_scatter_inter_init"},"9948":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_scan_init"},"9949":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_scatter_init"},"9950":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_scatter_inter_init"},"9951":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_scatterv_init"},"9952":{"probe_name":"mpi","function_name":"ompi_coll_libnbc_scatterv_inter_init"},"9953":{"probe_name":"mpi","function_name":"ompi_coll_sm_lazy_enable"},"9954":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgather_intra_check_forced_init"},"9955":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgather_intra_dec_dynamic"},"9956":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgather_intra_dec_fixed"},"9957":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgather_intra_do_this"},"9958":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgatherv_intra_check_forced_init"},"9959":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgatherv_intra_dec_dynamic"},"9960":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgatherv_intra_dec_fixed"},"9961":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allgatherv_intra_do_this"},"9962":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allreduce_intra_check_forced_init"},"9963":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allreduce_intra_dec_dynamic"},"9964":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allreduce_intra_dec_fixed"},"9965":{"probe_name":"mpi","function_name":"ompi_coll_tuned_allreduce_intra_do_this"},"9966":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoall_intra_check_forced_init"},"9967":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoall_intra_dec_dynamic"},"9968":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoall_intra_dec_fixed"},"9969":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoall_intra_do_this"},"9970":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoallv_intra_check_forced_init"},"9971":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoallv_intra_dec_dynamic"},"9972":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoallv_intra_dec_fixed"},"9973":{"probe_name":"mpi","function_name":"ompi_coll_tuned_alltoallv_intra_do_this"},"9974":{"probe_name":"mpi","function_name":"ompi_coll_tuned_barrier_intra_check_forced_init"},"9975":{"probe_name":"mpi","function_name":"ompi_coll_tuned_barrier_intra_dec_dynamic"},"9976":{"probe_name":"mpi","function_name":"ompi_coll_tuned_barrier_intra_dec_fixed"},"9977":{"probe_name":"mpi","function_name":"ompi_coll_tuned_barrier_intra_do_this"},"9978":{"probe_name":"mpi","function_name":"ompi_coll_tuned_bcast_intra_check_forced_init"},"9979":{"probe_name":"mpi","function_name":"ompi_coll_tuned_bcast_intra_dec_dynamic"},"9980":{"probe_name":"mpi","function_name":"ompi_coll_tuned_bcast_intra_dec_fixed"},"9981":{"probe_name":"mpi","function_name":"ompi_coll_tuned_bcast_intra_do_this"},"9982":{"probe_name":"mpi","function_name":"ompi_coll_tuned_comm_query"},"9983":{"probe_name":"mpi","function_name":"ompi_coll_tuned_dump_alg_rule"},"9984":{"probe_name":"mpi","function_name":"ompi_coll_tuned_dump_all_rules"},"9985":{"probe_name":"mpi","function_name":"ompi_coll_tuned_dump_com_rule"},"9986":{"probe_name":"mpi","function_name":"ompi_coll_tuned_dump_msg_rule"},"9987":{"probe_name":"mpi","function_name":"ompi_coll_tuned_exscan_intra_check_forced_init"},"9988":{"probe_name":"mpi","function_name":"ompi_coll_tuned_exscan_intra_dec_dynamic"},"9989":{"probe_name":"mpi","function_name":"ompi_coll_tuned_exscan_intra_do_this"},"9990":{"probe_name":"mpi","function_name":"ompi_coll_tuned_forced_getvalues.isra.0"},"9991":{"probe_name":"mpi","function_name":"ompi_coll_tuned_free_all_rules"},"9992":{"probe_name":"mpi","function_name":"ompi_coll_tuned_free_coms_in_alg_rule"},"9993":{"probe_name":"mpi","function_name":"ompi_coll_tuned_free_msg_rules_in_com_rule"},"9994":{"probe_name":"mpi","function_name":"ompi_coll_tuned_gather_intra_check_forced_init"},"9995":{"probe_name":"mpi","function_name":"ompi_coll_tuned_gather_intra_dec_dynamic"},"9996":{"probe_name":"mpi","function_name":"ompi_coll_tuned_gather_intra_dec_fixed"},"9997":{"probe_name":"mpi","function_name":"ompi_coll_tuned_gather_intra_do_this"},"9998":{"probe_name":"mpi","function_name":"ompi_coll_tuned_get_com_rule_ptr"},"9999":{"probe_name":"mpi","function_name":"ompi_coll_tuned_get_target_method_params"},"10000":{"probe_name":"mpi","function_name":"ompi_coll_tuned_init_query"},"10001":{"probe_name":"mpi","function_name":"ompi_coll_tuned_mk_alg_rules"},"10002":{"probe_name":"mpi","function_name":"ompi_coll_tuned_mk_com_rules"},"10003":{"probe_name":"mpi","function_name":"ompi_coll_tuned_mk_msg_rules"},"10004":{"probe_name":"mpi","function_name":"ompi_coll_tuned_read_rules_config_file"},"10005":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_intra_check_forced_init"},"10006":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_intra_dec_dynamic"},"10007":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_intra_dec_fixed"},"10008":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_intra_do_this"},"10009":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_block_intra_check_forced_init"},"10010":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_block_intra_dec_dynamic"},"10011":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_block_intra_dec_fixed"},"10012":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_block_intra_do_this"},"10013":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_intra_check_forced_init"},"10014":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_intra_dec_dynamic"},"10015":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_intra_dec_fixed"},"10016":{"probe_name":"mpi","function_name":"ompi_coll_tuned_reduce_scatter_intra_do_this"},"10017":{"probe_name":"mpi","function_name":"ompi_coll_tuned_scan_intra_check_forced_init"},"10018":{"probe_name":"mpi","function_name":"ompi_coll_tuned_scan_intra_dec_dynamic"},"10019":{"probe_name":"mpi","function_name":"ompi_coll_tuned_scan_intra_do_this"},"10020":{"probe_name":"mpi","function_name":"ompi_coll_tuned_scatter_intra_check_forced_init"},"10021":{"probe_name":"mpi","function_name":"ompi_coll_tuned_scatter_intra_dec_dynamic"},"10022":{"probe_name":"mpi","function_name":"ompi_coll_tuned_scatter_intra_dec_fixed"},"10023":{"probe_name":"mpi","function_name":"ompi_coll_tuned_scatter_intra_do_this"},"10024":{"probe_name":"mpi","function_name":"ompi_comm_ack_failed_internal"},"10025":{"probe_name":"mpi","function_name":"ompi_comm_activate"},"10026":{"probe_name":"mpi","function_name":"ompi_comm_activate_nb"},"10027":{"probe_name":"mpi","function_name":"ompi_comm_activate_nb_complete"},"10028":{"probe_name":"mpi","function_name":"ompi_comm_allgather_emulate_intra"},"10029":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_bridged_reduce_complete"},"10030":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_bridged_xchng_complete"},"10031":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_context_construct"},"10032":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_context_destruct"},"10033":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_getnextcid"},"10034":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_group_broadcast"},"10035":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_group_nb"},"10036":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_group_recv_complete"},"10037":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_inter_bcast"},"10038":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_inter_leader_exchange"},"10039":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_inter_leader_reduce"},"10040":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_inter_nb"},"10041":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_intra_bridge_nb"},"10042":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_intra_nb"},"10043":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_intra_pmix_nb"},"10044":{"probe_name":"mpi","function_name":"ompi_comm_allreduce_pmix_reduce_complete"},"10045":{"probe_name":"mpi","function_name":"ompi_comm_assert_subscribe"},"10046":{"probe_name":"mpi","function_name":"ompi_comm_checkcid"},"10047":{"probe_name":"mpi","function_name":"ompi_comm_cid_init"},"10048":{"probe_name":"mpi","function_name":"ompi_comm_compare"},"10049":{"probe_name":"mpi","function_name":"ompi_comm_construct"},"10050":{"probe_name":"mpi","function_name":"ompi_comm_create"},"10051":{"probe_name":"mpi","function_name":"ompi_comm_create_from_group"},"10052":{"probe_name":"mpi","function_name":"ompi_comm_create_group"},"10053":{"probe_name":"mpi","function_name":"ompi_comm_create_w_info"},"10054":{"probe_name":"mpi","function_name":"ompi_comm_destruct"},"10055":{"probe_name":"mpi","function_name":"ompi_comm_determine_first"},"10056":{"probe_name":"mpi","function_name":"ompi_comm_determine_first_auto"},"10057":{"probe_name":"mpi","function_name":"ompi_comm_dump"},"10058":{"probe_name":"mpi","function_name":"ompi_comm_dup"},"10059":{"probe_name":"mpi","function_name":"ompi_comm_dup_fn_f"},"10060":{"probe_name":"mpi","function_name":"ompi_comm_dup_with_info"},"10061":{"probe_name":"mpi","function_name":"ompi_comm_enable"},"10062":{"probe_name":"mpi","function_name":"ompi_comm_failure_ack_internal"},"10063":{"probe_name":"mpi","function_name":"ompi_comm_failure_detector_finalize"},"10064":{"probe_name":"mpi","function_name":"ompi_comm_failure_detector_init"},"10065":{"probe_name":"mpi","function_name":"ompi_comm_failure_detector_register_params"},"10066":{"probe_name":"mpi","function_name":"ompi_comm_failure_detector_start"},"10067":{"probe_name":"mpi","function_name":"ompi_comm_failure_get_acked_internal"},"10068":{"probe_name":"mpi","function_name":"ompi_comm_failure_propagate"},"10069":{"probe_name":"mpi","function_name":"ompi_comm_failure_propagator_finalize"},"10070":{"probe_name":"mpi","function_name":"ompi_comm_failure_propagator_init"},"10071":{"probe_name":"mpi","function_name":"ompi_comm_failure_propagator_local"},"10072":{"probe_name":"mpi","function_name":"ompi_comm_failure_propagator_register_params"},"10073":{"probe_name":"mpi","function_name":"ompi_comm_finalize"},"10074":{"probe_name":"mpi","function_name":"ompi_comm_free"},"10075":{"probe_name":"mpi","function_name":"ompi_comm_free.localalias"},"10076":{"probe_name":"mpi","function_name":"ompi_comm_ft_allreduce_agree_completion"},"10077":{"probe_name":"mpi","function_name":"ompi_comm_ft_allreduce_inter_nb"},"10078":{"probe_name":"mpi","function_name":"ompi_comm_ft_allreduce_intra_nb"},"10079":{"probe_name":"mpi","function_name":"ompi_comm_ft_allreduce_intra_pmix_nb"},"10080":{"probe_name":"mpi","function_name":"ompi_comm_get_failed_internal"},"10081":{"probe_name":"mpi","function_name":"ompi_comm_get_remote_cid_from_pmix"},"10082":{"probe_name":"mpi","function_name":"ompi_comm_get_rprocs"},"10083":{"probe_name":"mpi","function_name":"ompi_comm_group"},"10084":{"probe_name":"mpi","function_name":"ompi_comm_idup"},"10085":{"probe_name":"mpi","function_name":"ompi_comm_idup_getcid"},"10086":{"probe_name":"mpi","function_name":"ompi_comm_idup_with_info"},"10087":{"probe_name":"mpi","function_name":"ompi_comm_idup_with_info_activate"},"10088":{"probe_name":"mpi","function_name":"ompi_comm_idup_with_info_finish"},"10089":{"probe_name":"mpi","function_name":"ompi_comm_init"},"10090":{"probe_name":"mpi","function_name":"ompi_comm_init_mpi3"},"10091":{"probe_name":"mpi","function_name":"ompi_comm_is_proc_active"},"10092":{"probe_name":"mpi","function_name":"ompi_comm_ishrink_check_activate"},"10093":{"probe_name":"mpi","function_name":"ompi_comm_ishrink_check_agree"},"10094":{"probe_name":"mpi","function_name":"ompi_comm_ishrink_check_cid"},"10095":{"probe_name":"mpi","function_name":"ompi_comm_ishrink_check_setrank"},"10096":{"probe_name":"mpi","function_name":"ompi_comm_ishrink_internal"},"10097":{"probe_name":"mpi","function_name":"ompi_comm_nextcid"},"10098":{"probe_name":"mpi","function_name":"ompi_comm_nextcid_check_flag"},"10099":{"probe_name":"mpi","function_name":"ompi_comm_nextcid_nb"},"10100":{"probe_name":"mpi","function_name":"ompi_comm_null_copy_fn_f"},"10101":{"probe_name":"mpi","function_name":"ompi_comm_null_delete_fn_f"},"10102":{"probe_name":"mpi","function_name":"ompi_comm_print_cid"},"10103":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_bmg"},"10104":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_bml_recv_cb"},"10105":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_finalize"},"10106":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_init"},"10107":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_n2"},"10108":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_null"},"10109":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_register_cb_type"},"10110":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_register_params"},"10111":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_send_msg"},"10112":{"probe_name":"mpi","function_name":"ompi_comm_rbcast_unregister_cb_type"},"10113":{"probe_name":"mpi","function_name":"ompi_comm_request_cancel"},"10114":{"probe_name":"mpi","function_name":"ompi_comm_request_construct"},"10115":{"probe_name":"mpi","function_name":"ompi_comm_request_destruct"},"10116":{"probe_name":"mpi","function_name":"ompi_comm_request_fini"},"10117":{"probe_name":"mpi","function_name":"ompi_comm_request_free"},"10118":{"probe_name":"mpi","function_name":"ompi_comm_request_get"},"10119":{"probe_name":"mpi","function_name":"ompi_comm_request_init"},"10120":{"probe_name":"mpi","function_name":"ompi_comm_request_progress"},"10121":{"probe_name":"mpi","function_name":"ompi_comm_request_progress.cold"},"10122":{"probe_name":"mpi","function_name":"ompi_comm_request_return"},"10123":{"probe_name":"mpi","function_name":"ompi_comm_request_schedule_append"},"10124":{"probe_name":"mpi","function_name":"ompi_comm_request_schedule_append_w_flags"},"10125":{"probe_name":"mpi","function_name":"ompi_comm_request_start"},"10126":{"probe_name":"mpi","function_name":"ompi_comm_revoke_finalize"},"10127":{"probe_name":"mpi","function_name":"ompi_comm_revoke_init"},"10128":{"probe_name":"mpi","function_name":"ompi_comm_revoke_internal"},"10129":{"probe_name":"mpi","function_name":"ompi_comm_revoke_local"},"10130":{"probe_name":"mpi","function_name":"ompi_comm_set"},"10131":{"probe_name":"mpi","function_name":"ompi_comm_set_active_poll"},"10132":{"probe_name":"mpi","function_name":"ompi_comm_set_allow_overtake"},"10133":{"probe_name":"mpi","function_name":"ompi_comm_set_exact_length"},"10134":{"probe_name":"mpi","function_name":"ompi_comm_set_lazy_barrier"},"10135":{"probe_name":"mpi","function_name":"ompi_comm_set_name"},"10136":{"probe_name":"mpi","function_name":"ompi_comm_set_nb"},"10137":{"probe_name":"mpi","function_name":"ompi_comm_set_no_any_source"},"10138":{"probe_name":"mpi","function_name":"ompi_comm_set_no_any_tag"},"10139":{"probe_name":"mpi","function_name":"ompi_comm_set_rank_failed"},"10140":{"probe_name":"mpi","function_name":"ompi_comm_shrink_internal"},"10141":{"probe_name":"mpi","function_name":"ompi_comm_split"},"10142":{"probe_name":"mpi","function_name":"ompi_comm_split_type"},"10143":{"probe_name":"mpi","function_name":"ompi_comm_split_type_core"},"10144":{"probe_name":"mpi","function_name":"ompi_comm_split_type_get_part.constprop.0"},"10145":{"probe_name":"mpi","function_name":"ompi_comm_split_verify"},"10146":{"probe_name":"mpi","function_name":"ompi_comm_split_with_info"},"10147":{"probe_name":"mpi","function_name":"ompi_comm_start_detector"},"10148":{"probe_name":"mpi","function_name":"ompi_datatype_copy_args"},"10149":{"probe_name":"mpi","function_name":"ompi_datatype_create"},"10150":{"probe_name":"mpi","function_name":"ompi_datatype_create_contiguous"},"10151":{"probe_name":"mpi","function_name":"ompi_datatype_create_darray"},"10152":{"probe_name":"mpi","function_name":"ompi_datatype_create_from_packed_description"},"10153":{"probe_name":"mpi","function_name":"ompi_datatype_create_hindexed"},"10154":{"probe_name":"mpi","function_name":"ompi_datatype_create_hindexed_block"},"10155":{"probe_name":"mpi","function_name":"ompi_datatype_create_hvector"},"10156":{"probe_name":"mpi","function_name":"ompi_datatype_create_indexed"},"10157":{"probe_name":"mpi","function_name":"ompi_datatype_create_indexed_block"},"10158":{"probe_name":"mpi","function_name":"ompi_datatype_create_struct"},"10159":{"probe_name":"mpi","function_name":"ompi_datatype_create_subarray"},"10160":{"probe_name":"mpi","function_name":"ompi_datatype_create_vector"},"10161":{"probe_name":"mpi","function_name":"ompi_datatype_default_convertors_fini"},"10162":{"probe_name":"mpi","function_name":"ompi_datatype_default_convertors_init"},"10163":{"probe_name":"mpi","function_name":"ompi_datatype_destroy"},"10164":{"probe_name":"mpi","function_name":"ompi_datatype_dump"},"10165":{"probe_name":"mpi","function_name":"ompi_datatype_duplicate"},"10166":{"probe_name":"mpi","function_name":"ompi_datatype_finalize"},"10167":{"probe_name":"mpi","function_name":"ompi_datatype_get_args"},"10168":{"probe_name":"mpi","function_name":"ompi_datatype_get_elements"},"10169":{"probe_name":"mpi","function_name":"ompi_datatype_get_pack_description"},"10170":{"probe_name":"mpi","function_name":"ompi_datatype_get_single_predefined_type_from_args"},"10171":{"probe_name":"mpi","function_name":"ompi_datatype_get_single_predefined_type_from_args.localalias"},"10172":{"probe_name":"mpi","function_name":"ompi_datatype_init"},"10173":{"probe_name":"mpi","function_name":"ompi_datatype_init.cold"},"10174":{"probe_name":"mpi","function_name":"ompi_datatype_match_size"},"10175":{"probe_name":"mpi","function_name":"ompi_datatype_match_size.cold"},"10176":{"probe_name":"mpi","function_name":"ompi_datatype_pack_description_length"},"10177":{"probe_name":"mpi","function_name":"ompi_datatype_pack_external"},"10178":{"probe_name":"mpi","function_name":"ompi_datatype_pack_external_size"},"10179":{"probe_name":"mpi","function_name":"ompi_datatype_print_args"},"10180":{"probe_name":"mpi","function_name":"ompi_datatype_release_args"},"10181":{"probe_name":"mpi","function_name":"ompi_datatype_set_args"},"10182":{"probe_name":"mpi","function_name":"ompi_datatype_sndrcv"},"10183":{"probe_name":"mpi","function_name":"ompi_datatype_unpack_external"},"10184":{"probe_name":"mpi","function_name":"ompi_debugger_setup_dlls"},"10185":{"probe_name":"mpi","function_name":"ompi_dpm_close_port"},"10186":{"probe_name":"mpi","function_name":"ompi_dpm_connect_accept"},"10187":{"probe_name":"mpi","function_name":"ompi_dpm_disconnect"},"10188":{"probe_name":"mpi","function_name":"ompi_dpm_dyn_finalize"},"10189":{"probe_name":"mpi","function_name":"ompi_dpm_dyn_init"},"10190":{"probe_name":"mpi","function_name":"ompi_dpm_init"},"10191":{"probe_name":"mpi","function_name":"ompi_dpm_mark_dyncomm"},"10192":{"probe_name":"mpi","function_name":"ompi_dpm_open_port"},"10193":{"probe_name":"mpi","function_name":"ompi_dpm_spawn"},"10194":{"probe_name":"mpi","function_name":"ompi_dup_fn_f"},"10195":{"probe_name":"mpi","function_name":"ompi_errcode_get_mpi_code.part.0"},"10196":{"probe_name":"mpi","function_name":"ompi_errcode_get_mpi_code.part.0.cold"},"10197":{"probe_name":"mpi","function_name":"ompi_errcode_intern_construct"},"10198":{"probe_name":"mpi","function_name":"ompi_errcode_intern_destruct"},"10199":{"probe_name":"mpi","function_name":"ompi_errcode_intern_finalize"},"10200":{"probe_name":"mpi","function_name":"ompi_errcode_intern_init"},"10201":{"probe_name":"mpi","function_name":"ompi_errhandler_callback"},"10202":{"probe_name":"mpi","function_name":"ompi_errhandler_construct"},"10203":{"probe_name":"mpi","function_name":"ompi_errhandler_create"},"10204":{"probe_name":"mpi","function_name":"ompi_errhandler_destruct"},"10205":{"probe_name":"mpi","function_name":"ompi_errhandler_event_cb"},"10206":{"probe_name":"mpi","function_name":"ompi_errhandler_finalize"},"10207":{"probe_name":"mpi","function_name":"ompi_errhandler_free"},"10208":{"probe_name":"mpi","function_name":"ompi_errhandler_init"},"10209":{"probe_name":"mpi","function_name":"ompi_errhandler_invoke"},"10210":{"probe_name":"mpi","function_name":"ompi_errhandler_proc_failed_internal"},"10211":{"probe_name":"mpi","function_name":"ompi_errhandler_registration_callback"},"10212":{"probe_name":"mpi","function_name":"ompi_errhandler_request_invoke"},"10213":{"probe_name":"mpi","function_name":"ompi_errhandler_request_invoke.cold"},"10214":{"probe_name":"mpi","function_name":"ompi_fcoll_base_coll_allgather_array"},"10215":{"probe_name":"mpi","function_name":"ompi_fcoll_base_coll_allgatherv_array"},"10216":{"probe_name":"mpi","function_name":"ompi_fcoll_base_coll_bcast_array"},"10217":{"probe_name":"mpi","function_name":"ompi_fcoll_base_coll_gather_array"},"10218":{"probe_name":"mpi","function_name":"ompi_fcoll_base_coll_gatherv_array"},"10219":{"probe_name":"mpi","function_name":"ompi_fcoll_base_coll_scatterv_array"},"10220":{"probe_name":"mpi","function_name":"ompi_fcoll_base_sort_iovec"},"10221":{"probe_name":"mpi","function_name":"ompi_file_close"},"10222":{"probe_name":"mpi","function_name":"ompi_file_finalize"},"10223":{"probe_name":"mpi","function_name":"ompi_file_init"},"10224":{"probe_name":"mpi","function_name":"ompi_file_open"},"10225":{"probe_name":"mpi","function_name":"ompi_fortran_argv_blank_f2c"},"10226":{"probe_name":"mpi","function_name":"ompi_fortran_argv_count_f2c"},"10227":{"probe_name":"mpi","function_name":"ompi_fortran_multiple_argvs_f2c"},"10228":{"probe_name":"mpi","function_name":"ompi_fortran_string_c2f"},"10229":{"probe_name":"mpi","function_name":"ompi_fortran_string_f2c"},"10230":{"probe_name":"mpi","function_name":"ompi_grequest_cancel"},"10231":{"probe_name":"mpi","function_name":"ompi_grequest_complete"},"10232":{"probe_name":"mpi","function_name":"ompi_grequest_construct"},"10233":{"probe_name":"mpi","function_name":"ompi_grequest_destruct"},"10234":{"probe_name":"mpi","function_name":"ompi_grequest_free"},"10235":{"probe_name":"mpi","function_name":"ompi_grequest_invoke_query"},"10236":{"probe_name":"mpi","function_name":"ompi_grequest_start"},"10237":{"probe_name":"mpi","function_name":"ompi_group_allocate"},"10238":{"probe_name":"mpi","function_name":"ompi_group_allocate_bmap"},"10239":{"probe_name":"mpi","function_name":"ompi_group_allocate_plist_w_procs"},"10240":{"probe_name":"mpi","function_name":"ompi_group_allocate_sporadic"},"10241":{"probe_name":"mpi","function_name":"ompi_group_allocate_strided"},"10242":{"probe_name":"mpi","function_name":"ompi_group_calc_bmap"},"10243":{"probe_name":"mpi","function_name":"ompi_group_calc_plist"},"10244":{"probe_name":"mpi","function_name":"ompi_group_calc_sporadic"},"10245":{"probe_name":"mpi","function_name":"ompi_group_calc_strided"},"10246":{"probe_name":"mpi","function_name":"ompi_group_compare"},"10247":{"probe_name":"mpi","function_name":"ompi_group_construct"},"10248":{"probe_name":"mpi","function_name":"ompi_group_count_local_peers"},"10249":{"probe_name":"mpi","function_name":"ompi_group_decrement_proc_count"},"10250":{"probe_name":"mpi","function_name":"ompi_group_dense_overlap"},"10251":{"probe_name":"mpi","function_name":"ompi_group_destruct"},"10252":{"probe_name":"mpi","function_name":"ompi_group_difference"},"10253":{"probe_name":"mpi","function_name":"ompi_group_div_ceil"},"10254":{"probe_name":"mpi","function_name":"ompi_group_dump"},"10255":{"probe_name":"mpi","function_name":"ompi_group_excl"},"10256":{"probe_name":"mpi","function_name":"ompi_group_finalize"},"10257":{"probe_name":"mpi","function_name":"ompi_group_flatten"},"10258":{"probe_name":"mpi","function_name":"ompi_group_free"},"10259":{"probe_name":"mpi","function_name":"ompi_group_from_pset"},"10260":{"probe_name":"mpi","function_name":"ompi_group_have_remote_peers"},"10261":{"probe_name":"mpi","function_name":"ompi_group_incl"},"10262":{"probe_name":"mpi","function_name":"ompi_group_incl_bmap"},"10263":{"probe_name":"mpi","function_name":"ompi_group_incl_plist"},"10264":{"probe_name":"mpi","function_name":"ompi_group_incl_spor"},"10265":{"probe_name":"mpi","function_name":"ompi_group_incl_strided"},"10266":{"probe_name":"mpi","function_name":"ompi_group_increment_proc_count"},"10267":{"probe_name":"mpi","function_name":"ompi_group_init"},"10268":{"probe_name":"mpi","function_name":"ompi_group_intersection"},"10269":{"probe_name":"mpi","function_name":"ompi_group_minloc"},"10270":{"probe_name":"mpi","function_name":"ompi_group_overlap"},"10271":{"probe_name":"mpi","function_name":"ompi_group_range_excl"},"10272":{"probe_name":"mpi","function_name":"ompi_group_range_incl"},"10274":{"probe_name":"mpi","function_name":"ompi_group_translate_ranks"},"10275":{"probe_name":"mpi","function_name":"ompi_group_translate_ranks_bmap"},"10276":{"probe_name":"mpi","function_name":"ompi_group_translate_ranks_bmap_reverse"},"10277":{"probe_name":"mpi","function_name":"ompi_group_translate_ranks_sporadic"},"10278":{"probe_name":"mpi","function_name":"ompi_group_translate_ranks_sporadic_reverse"},"10279":{"probe_name":"mpi","function_name":"ompi_group_translate_ranks_strided"},"10280":{"probe_name":"mpi","function_name":"ompi_group_translate_ranks_strided_reverse"},"10281":{"probe_name":"mpi","function_name":"ompi_group_union"},"10282":{"probe_name":"mpi","function_name":"ompi_hook_base_close"},"10283":{"probe_name":"mpi","function_name":"ompi_hook_base_deregister_callbacks"},"10284":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_finalize_bottom"},"10285":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_finalize_top"},"10286":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_finalized_bottom"},"10287":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_finalized_top"},"10288":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_init_bottom"},"10289":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_init_error"},"10290":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_init_thread_bottom"},"10291":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_init_thread_top"},"10292":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_init_top"},"10293":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_init_top_post_opal"},"10294":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_initialized_bottom"},"10295":{"probe_name":"mpi","function_name":"ompi_hook_base_mpi_initialized_top"},"10296":{"probe_name":"mpi","function_name":"ompi_hook_base_open"},"10297":{"probe_name":"mpi","function_name":"ompi_hook_base_register"},"10298":{"probe_name":"mpi","function_name":"ompi_hook_base_register_callbacks"},"10299":{"probe_name":"mpi","function_name":"ompi_hook_comm_method_component_close"},"10300":{"probe_name":"mpi","function_name":"ompi_hook_comm_method_component_open"},"10301":{"probe_name":"mpi","function_name":"ompi_hook_comm_method_component_register"},"10302":{"probe_name":"mpi","function_name":"ompi_hook_comm_method_mpi_finalize_top"},"10303":{"probe_name":"mpi","function_name":"ompi_hook_comm_method_mpi_init_bottom"},"10304":{"probe_name":"mpi","function_name":"ompi_info_allocate"},"10305":{"probe_name":"mpi","function_name":"ompi_info_close_components"},"10306":{"probe_name":"mpi","function_name":"ompi_info_delete"},"10307":{"probe_name":"mpi","function_name":"ompi_info_dup"},"10308":{"probe_name":"mpi","function_name":"ompi_info_free"},"10309":{"probe_name":"mpi","function_name":"ompi_info_get"},"10310":{"probe_name":"mpi","function_name":"ompi_info_get_bool"},"10311":{"probe_name":"mpi","function_name":"ompi_info_get_nkeys"},"10312":{"probe_name":"mpi","function_name":"ompi_info_get_nthkey"},"10313":{"probe_name":"mpi","function_name":"ompi_info_get_value_enum"},"10314":{"probe_name":"mpi","function_name":"ompi_info_get_valuelen"},"10315":{"probe_name":"mpi","function_name":"ompi_info_register_framework_params"},"10316":{"probe_name":"mpi","function_name":"ompi_info_register_types"},"10317":{"probe_name":"mpi","function_name":"ompi_info_set"},"10318":{"probe_name":"mpi","function_name":"ompi_info_set_value_enum"},"10319":{"probe_name":"mpi","function_name":"ompi_info_show_ompi_version"},"10320":{"probe_name":"mpi","function_name":"ompi_init_preconnect_mpi"},"10321":{"probe_name":"mpi","function_name":"ompi_initial_errhandler_init"},"10322":{"probe_name":"mpi","function_name":"ompi_instance_construct"},"10323":{"probe_name":"mpi","function_name":"ompi_instance_destruct"},"10324":{"probe_name":"mpi","function_name":"ompi_instance_get_nth_pset"},"10325":{"probe_name":"mpi","function_name":"ompi_instance_get_num_psets"},"10326":{"probe_name":"mpi","function_name":"ompi_instance_get_num_psets_complete"},"10327":{"probe_name":"mpi","function_name":"ompi_instance_get_pset_info"},"10328":{"probe_name":"mpi","function_name":"ompi_instance_group_pmix_pset"},"10329":{"probe_name":"mpi","function_name":"ompi_instance_group_shared"},"10330":{"probe_name":"mpi","function_name":"ompi_instance_print_error.part.0"},"10331":{"probe_name":"mpi","function_name":"ompi_instance_refresh_pmix_psets"},"10332":{"probe_name":"mpi","function_name":"ompi_intercomm_create"},"10333":{"probe_name":"mpi","function_name":"ompi_intercomm_create_from_groups"},"10334":{"probe_name":"mpi","function_name":"ompi_interlib_declare"},"10335":{"probe_name":"mpi","function_name":"ompi_io_ompio_generate_current_file_view"},"10336":{"probe_name":"mpi","function_name":"ompi_io_ompio_generate_current_file_view.cold"},"10337":{"probe_name":"mpi","function_name":"ompi_io_ompio_sort_offlen"},"10338":{"probe_name":"mpi","function_name":"ompi_isendrecv_complete_func"},"10339":{"probe_name":"mpi","function_name":"ompi_isendrecv_context_constructor"},"10340":{"probe_name":"mpi","function_name":"ompi_isendrecv_context_destructor"},"10341":{"probe_name":"mpi","function_name":"ompi_isendrecv_replace_complete_func"},"10342":{"probe_name":"mpi","function_name":"ompi_message_constructor"},"10343":{"probe_name":"mpi","function_name":"ompi_message_finalize"},"10344":{"probe_name":"mpi","function_name":"ompi_message_init"},"10345":{"probe_name":"mpi","function_name":"ompi_mirror_perm"},"10346":{"probe_name":"mpi","function_name":"ompi_mpi_abort"},"10347":{"probe_name":"mpi","function_name":"ompi_mpi_dynamics_disable"},"10348":{"probe_name":"mpi","function_name":"ompi_mpi_dynamics_finalize"},"10349":{"probe_name":"mpi","function_name":"ompi_mpi_dynamics_is_enabled"},"10350":{"probe_name":"mpi","function_name":"ompi_mpi_errclass_add"},"10351":{"probe_name":"mpi","function_name":"ompi_mpi_errcode_add"},"10352":{"probe_name":"mpi","function_name":"ompi_mpi_errcode_construct"},"10353":{"probe_name":"mpi","function_name":"ompi_mpi_errcode_destruct"},"10354":{"probe_name":"mpi","function_name":"ompi_mpi_errcode_finalize"},"10355":{"probe_name":"mpi","function_name":"ompi_mpi_errcode_init"},"10356":{"probe_name":"mpi","function_name":"ompi_mpi_errnum_add_string"},"10357":{"probe_name":"mpi","function_name":"ompi_mpi_errors_abort_comm_handler"},"10358":{"probe_name":"mpi","function_name":"ompi_mpi_errors_abort_file_handler"},"10359":{"probe_name":"mpi","function_name":"ompi_mpi_errors_abort_win_handler"},"10360":{"probe_name":"mpi","function_name":"ompi_mpi_errors_are_fatal_comm_handler"},"10361":{"probe_name":"mpi","function_name":"ompi_mpi_errors_are_fatal_file_handler"},"10362":{"probe_name":"mpi","function_name":"ompi_mpi_errors_are_fatal_instance_handler"},"10363":{"probe_name":"mpi","function_name":"ompi_mpi_errors_are_fatal_win_handler"},"10364":{"probe_name":"mpi","function_name":"ompi_mpi_errors_return_comm_handler"},"10365":{"probe_name":"mpi","function_name":"ompi_mpi_errors_return_file_handler"},"10366":{"probe_name":"mpi","function_name":"ompi_mpi_errors_return_instance_handler"},"10367":{"probe_name":"mpi","function_name":"ompi_mpi_errors_return_win_handler"},"10368":{"probe_name":"mpi","function_name":"ompi_mpi_finalize"},"10369":{"probe_name":"mpi","function_name":"ompi_mpi_init"},"10370":{"probe_name":"mpi","function_name":"ompi_mpi_instance_cleanup_pml"},"10371":{"probe_name":"mpi","function_name":"ompi_mpi_instance_finalize"},"10372":{"probe_name":"mpi","function_name":"ompi_mpi_instance_finalize_common"},"10373":{"probe_name":"mpi","function_name":"ompi_mpi_instance_init"},"10374":{"probe_name":"mpi","function_name":"ompi_mpi_instance_init_common"},"10375":{"probe_name":"mpi","function_name":"ompi_mpi_instance_release"},"10376":{"probe_name":"mpi","function_name":"ompi_mpi_instance_retain"},"10377":{"probe_name":"mpi","function_name":"ompi_mpi_register_params"},"10378":{"probe_name":"mpi","function_name":"ompi_mpi_thread_level"},"10379":{"probe_name":"mpi","function_name":"ompi_mpiext_fini"},"10380":{"probe_name":"mpi","function_name":"ompi_mpiext_init"},"10381":{"probe_name":"mpi","function_name":"ompi_mpiinfo_finalize"},"10382":{"probe_name":"mpi","function_name":"ompi_mpiinfo_init"},"10383":{"probe_name":"mpi","function_name":"ompi_mpiinfo_init_env"},"10384":{"probe_name":"mpi","function_name":"ompi_mpit_lock"},"10385":{"probe_name":"mpi","function_name":"ompi_mpit_unlock"},"10386":{"probe_name":"mpi","function_name":"ompi_mtl_base_close"},"10387":{"probe_name":"mpi","function_name":"ompi_mtl_base_select"},"10388":{"probe_name":"mpi","function_name":"ompi_null_copy_fn_f"},"10389":{"probe_name":"mpi","function_name":"ompi_null_delete_fn_f"},"10390":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_add_double_avx"},"10391":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_add_double_avx2"},"10392":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_add_double_avx512"},"10393":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_add_float_avx"},"10394":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_add_float_avx2"},"10395":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_add_float_avx512"},"10396":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int16_t_avx"},"10397":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int16_t_avx2"},"10398":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int16_t_avx512"},"10399":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int32_t_avx"},"10400":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int32_t_avx2"},"10401":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int32_t_avx512"},"10402":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int64_t_avx"},"10403":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int64_t_avx2"},"10404":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int64_t_avx512"},"10405":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int8_t_avx"},"10406":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int8_t_avx2"},"10407":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_int8_t_avx512"},"10408":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint16_t_avx"},"10409":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint16_t_avx2"},"10410":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint16_t_avx512"},"10411":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint32_t_avx"},"10412":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint32_t_avx2"},"10413":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint32_t_avx512"},"10414":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint64_t_avx"},"10415":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint64_t_avx2"},"10416":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint64_t_avx512"},"10417":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint8_t_avx"},"10418":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint8_t_avx2"},"10419":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_band_uint8_t_avx512"},"10420":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int16_t_avx"},"10421":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int16_t_avx2"},"10422":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int16_t_avx512"},"10423":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int32_t_avx"},"10424":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int32_t_avx2"},"10425":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int32_t_avx512"},"10426":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int64_t_avx"},"10427":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int64_t_avx2"},"10428":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int64_t_avx512"},"10429":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int8_t_avx"},"10430":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int8_t_avx2"},"10431":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_int8_t_avx512"},"10432":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint16_t_avx"},"10433":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint16_t_avx2"},"10434":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint16_t_avx512"},"10435":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint32_t_avx"},"10436":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint32_t_avx2"},"10437":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint32_t_avx512"},"10438":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint64_t_avx"},"10439":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint64_t_avx2"},"10440":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint64_t_avx512"},"10441":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint8_t_avx"},"10442":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint8_t_avx2"},"10443":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bor_uint8_t_avx512"},"10444":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int16_t_avx"},"10445":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int16_t_avx2"},"10446":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int16_t_avx512"},"10447":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int32_t_avx"},"10448":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int32_t_avx2"},"10449":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int32_t_avx512"},"10450":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int64_t_avx"},"10451":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int64_t_avx2"},"10452":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int64_t_avx512"},"10453":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int8_t_avx"},"10454":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int8_t_avx2"},"10455":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_int8_t_avx512"},"10456":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint16_t_avx"},"10457":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint16_t_avx2"},"10458":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint16_t_avx512"},"10459":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint32_t_avx"},"10460":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint32_t_avx2"},"10461":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint32_t_avx512"},"10462":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint64_t_avx"},"10463":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint64_t_avx2"},"10464":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint64_t_avx512"},"10465":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint8_t_avx"},"10466":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint8_t_avx2"},"10467":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_bxor_uint8_t_avx512"},"10468":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_double_avx"},"10469":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_double_avx2"},"10470":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_double_avx512"},"10471":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_float_avx"},"10472":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_float_avx2"},"10473":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_float_avx512"},"10474":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int16_t_avx"},"10475":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int16_t_avx2"},"10476":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int16_t_avx512"},"10477":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int32_t_avx"},"10478":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int32_t_avx2"},"10479":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int32_t_avx512"},"10480":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int64_t_avx512"},"10481":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int8_t_avx"},"10482":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int8_t_avx2"},"10483":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_int8_t_avx512"},"10484":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint16_t_avx"},"10485":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint16_t_avx2"},"10486":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint16_t_avx512"},"10487":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint32_t_avx"},"10488":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint32_t_avx2"},"10489":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint32_t_avx512"},"10490":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint64_t_avx512"},"10491":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint8_t_avx"},"10492":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint8_t_avx2"},"10493":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_max_uint8_t_avx512"},"10494":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_double_avx"},"10495":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_double_avx2"},"10496":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_double_avx512"},"10497":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_float_avx"},"10498":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_float_avx2"},"10499":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_float_avx512"},"10500":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int16_t_avx"},"10501":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int16_t_avx2"},"10502":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int16_t_avx512"},"10503":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int32_t_avx"},"10504":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int32_t_avx2"},"10505":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int32_t_avx512"},"10506":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int64_t_avx512"},"10507":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int8_t_avx"},"10508":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int8_t_avx2"},"10509":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_int8_t_avx512"},"10510":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint16_t_avx"},"10511":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint16_t_avx2"},"10512":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint16_t_avx512"},"10513":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint32_t_avx"},"10514":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint32_t_avx2"},"10515":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint32_t_avx512"},"10516":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint64_t_avx512"},"10517":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint8_t_avx"},"10518":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint8_t_avx2"},"10519":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_min_uint8_t_avx512"},"10520":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_mul_double_avx"},"10521":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_mul_double_avx2"},"10522":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_mul_double_avx512"},"10523":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_mul_float_avx"},"10524":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_mul_float_avx2"},"10525":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_mul_float_avx512"},"10526":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int16_t_avx"},"10527":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int16_t_avx2"},"10528":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int16_t_avx512"},"10529":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int32_t_avx"},"10530":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int32_t_avx2"},"10531":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int32_t_avx512"},"10532":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int64_t_avx512"},"10533":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int8_t_avx"},"10534":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int8_t_avx2"},"10535":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_int8_t_avx512"},"10536":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint16_t_avx"},"10537":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint16_t_avx2"},"10538":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint16_t_avx512"},"10539":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint32_t_avx"},"10540":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint32_t_avx2"},"10541":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint32_t_avx512"},"10542":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint64_t_avx512"},"10543":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint8_t_avx"},"10544":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint8_t_avx2"},"10545":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_prod_uint8_t_avx512"},"10546":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int16_t_avx"},"10547":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int16_t_avx2"},"10548":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int16_t_avx512"},"10549":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int32_t_avx"},"10550":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int32_t_avx2"},"10551":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int32_t_avx512"},"10552":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int64_t_avx"},"10553":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int64_t_avx2"},"10554":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int64_t_avx512"},"10555":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int8_t_avx"},"10556":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int8_t_avx2"},"10557":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_int8_t_avx512"},"10558":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint16_t_avx"},"10559":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint16_t_avx2"},"10560":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint16_t_avx512"},"10561":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint32_t_avx"},"10562":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint32_t_avx2"},"10563":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint32_t_avx512"},"10564":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint64_t_avx"},"10565":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint64_t_avx2"},"10566":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint64_t_avx512"},"10567":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint8_t_avx"},"10568":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint8_t_avx2"},"10569":{"probe_name":"mpi","function_name":"ompi_op_avx_2buff_sum_uint8_t_avx512"},"10570":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_add_double_avx"},"10571":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_add_double_avx2"},"10572":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_add_double_avx512"},"10573":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_add_float_avx"},"10574":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_add_float_avx2"},"10575":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_add_float_avx512"},"10576":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int16_t_avx"},"10577":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int16_t_avx2"},"10578":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int16_t_avx512"},"10579":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int32_t_avx"},"10580":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int32_t_avx2"},"10581":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int32_t_avx512"},"10582":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int64_t_avx"},"10583":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int64_t_avx2"},"10584":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int64_t_avx512"},"10585":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int8_t_avx"},"10586":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int8_t_avx2"},"10587":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_int8_t_avx512"},"10588":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint16_t_avx"},"10589":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint16_t_avx2"},"10590":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint16_t_avx512"},"10591":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint32_t_avx"},"10592":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint32_t_avx2"},"10593":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint32_t_avx512"},"10594":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint64_t_avx"},"10595":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint64_t_avx2"},"10596":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint64_t_avx512"},"10597":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint8_t_avx"},"10598":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint8_t_avx2"},"10599":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_and_uint8_t_avx512"},"10600":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_double_avx"},"10601":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_double_avx2"},"10602":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_double_avx512"},"10603":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_float_avx"},"10604":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_float_avx2"},"10605":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_float_avx512"},"10606":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int16_t_avx"},"10607":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int16_t_avx2"},"10608":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int16_t_avx512"},"10609":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int32_t_avx"},"10610":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int32_t_avx2"},"10611":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int32_t_avx512"},"10612":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int64_t_avx512"},"10613":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int8_t_avx"},"10614":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int8_t_avx2"},"10615":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_int8_t_avx512"},"10616":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint16_t_avx"},"10617":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint16_t_avx2"},"10618":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint16_t_avx512"},"10619":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint32_t_avx"},"10620":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint32_t_avx2"},"10621":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint32_t_avx512"},"10622":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint64_t_avx512"},"10623":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint8_t_avx"},"10624":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint8_t_avx2"},"10625":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_max_uint8_t_avx512"},"10626":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_double_avx"},"10627":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_double_avx2"},"10628":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_double_avx512"},"10629":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_float_avx"},"10630":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_float_avx2"},"10631":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_float_avx512"},"10632":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int16_t_avx"},"10633":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int16_t_avx2"},"10634":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int16_t_avx512"},"10635":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int32_t_avx"},"10636":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int32_t_avx2"},"10637":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int32_t_avx512"},"10638":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int64_t_avx512"},"10639":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int8_t_avx"},"10640":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int8_t_avx2"},"10641":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_int8_t_avx512"},"10642":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint16_t_avx"},"10643":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint16_t_avx2"},"10644":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint16_t_avx512"},"10645":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint32_t_avx"},"10646":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint32_t_avx2"},"10647":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint32_t_avx512"},"10648":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint64_t_avx512"},"10649":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint8_t_avx"},"10650":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint8_t_avx2"},"10651":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_min_uint8_t_avx512"},"10652":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_mul_double_avx"},"10653":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_mul_double_avx2"},"10654":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_mul_double_avx512"},"10655":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_mul_float_avx"},"10656":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_mul_float_avx2"},"10657":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_mul_float_avx512"},"10658":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int16_t_avx"},"10659":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int16_t_avx2"},"10660":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int16_t_avx512"},"10661":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int32_t_avx"},"10662":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int32_t_avx2"},"10663":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int32_t_avx512"},"10664":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int64_t_avx"},"10665":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int64_t_avx2"},"10666":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int64_t_avx512"},"10667":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int8_t_avx"},"10668":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int8_t_avx2"},"10669":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_int8_t_avx512"},"10670":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint16_t_avx"},"10671":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint16_t_avx2"},"10672":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint16_t_avx512"},"10673":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint32_t_avx"},"10674":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint32_t_avx2"},"10675":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint32_t_avx512"},"10676":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint64_t_avx"},"10677":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint64_t_avx2"},"10678":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint64_t_avx512"},"10679":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint8_t_avx"},"10680":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint8_t_avx2"},"10681":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_or_uint8_t_avx512"},"10682":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int16_t_avx"},"10683":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int16_t_avx2"},"10684":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int16_t_avx512"},"10685":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int32_t_avx"},"10686":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int32_t_avx2"},"10687":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int32_t_avx512"},"10688":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int64_t_avx512"},"10689":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int8_t_avx"},"10690":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int8_t_avx2"},"10691":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_int8_t_avx512"},"10692":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint16_t_avx"},"10693":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint16_t_avx2"},"10694":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint16_t_avx512"},"10695":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint32_t_avx"},"10696":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint32_t_avx2"},"10697":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint32_t_avx512"},"10698":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint64_t_avx512"},"10699":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint8_t_avx"},"10700":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint8_t_avx2"},"10701":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_prod_uint8_t_avx512"},"10702":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int16_t_avx"},"10703":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int16_t_avx2"},"10704":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int16_t_avx512"},"10705":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int32_t_avx"},"10706":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int32_t_avx2"},"10707":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int32_t_avx512"},"10708":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int64_t_avx"},"10709":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int64_t_avx2"},"10710":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int64_t_avx512"},"10711":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int8_t_avx"},"10712":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int8_t_avx2"},"10713":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_int8_t_avx512"},"10714":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint16_t_avx"},"10715":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint16_t_avx2"},"10716":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint16_t_avx512"},"10717":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint32_t_avx"},"10718":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint32_t_avx2"},"10719":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint32_t_avx512"},"10720":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint64_t_avx"},"10721":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint64_t_avx2"},"10722":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint64_t_avx512"},"10723":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint8_t_avx"},"10724":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint8_t_avx2"},"10725":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_sum_uint8_t_avx512"},"10726":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int16_t_avx"},"10727":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int16_t_avx2"},"10728":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int16_t_avx512"},"10729":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int32_t_avx"},"10730":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int32_t_avx2"},"10731":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int32_t_avx512"},"10732":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int64_t_avx"},"10733":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int64_t_avx2"},"10734":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int64_t_avx512"},"10735":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int8_t_avx"},"10736":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int8_t_avx2"},"10737":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_int8_t_avx512"},"10738":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint16_t_avx"},"10739":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint16_t_avx2"},"10740":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint16_t_avx512"},"10741":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint32_t_avx"},"10742":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint32_t_avx2"},"10743":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint32_t_avx512"},"10744":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint64_t_avx"},"10745":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint64_t_avx2"},"10746":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint64_t_avx512"},"10747":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint8_t_avx"},"10748":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint8_t_avx2"},"10749":{"probe_name":"mpi","function_name":"ompi_op_avx_3buff_xor_uint8_t_avx512"},"10750":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_byte"},"10751":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_fortran_integer"},"10752":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_fortran_integer1"},"10753":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_fortran_integer2"},"10754":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_fortran_integer4"},"10755":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_fortran_integer8"},"10756":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_int16_t"},"10757":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_int32_t"},"10758":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_int64_t"},"10759":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_int8_t"},"10760":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_long"},"10761":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_uint16_t"},"10762":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_uint32_t"},"10763":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_uint64_t"},"10764":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_uint8_t"},"10765":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_band_unsigned_long"},"10766":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_byte"},"10767":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_fortran_integer"},"10768":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_fortran_integer1"},"10769":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_fortran_integer2"},"10770":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_fortran_integer4"},"10771":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_fortran_integer8"},"10772":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_int16_t"},"10773":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_int32_t"},"10774":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_int64_t"},"10775":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_int8_t"},"10776":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_long"},"10777":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_uint16_t"},"10778":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_uint32_t"},"10779":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_uint64_t"},"10780":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_uint8_t"},"10781":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bor_unsigned_long"},"10782":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_byte"},"10783":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_fortran_integer"},"10784":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_fortran_integer1"},"10785":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_fortran_integer2"},"10786":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_fortran_integer4"},"10787":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_fortran_integer8"},"10788":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_int16_t"},"10789":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_int32_t"},"10790":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_int64_t"},"10791":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_int8_t"},"10792":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_long"},"10793":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_uint16_t"},"10794":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_uint32_t"},"10795":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_uint64_t"},"10796":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_uint8_t"},"10797":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_bxor_unsigned_long"},"10798":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_bool"},"10799":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_fortran_logical"},"10800":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_int16_t"},"10801":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_int32_t"},"10802":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_int64_t"},"10803":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_int8_t"},"10804":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_long"},"10805":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_uint16_t"},"10806":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_uint32_t"},"10807":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_uint64_t"},"10808":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_uint8_t"},"10809":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_land_unsigned_long"},"10810":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_bool"},"10811":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_fortran_logical"},"10812":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_int16_t"},"10813":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_int32_t"},"10814":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_int64_t"},"10815":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_int8_t"},"10816":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_long"},"10817":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_uint16_t"},"10818":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_uint32_t"},"10819":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_uint64_t"},"10820":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_uint8_t"},"10821":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lor_unsigned_long"},"10822":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_bool"},"10823":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_fortran_logical"},"10824":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_int16_t"},"10825":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_int32_t"},"10826":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_int64_t"},"10827":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_int8_t"},"10828":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_long"},"10829":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_uint16_t"},"10830":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_uint32_t"},"10831":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_uint64_t"},"10832":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_uint8_t"},"10833":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_lxor_unsigned_long"},"10834":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_double"},"10835":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_float"},"10836":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_double_precision"},"10837":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_integer"},"10838":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_integer1"},"10839":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_integer2"},"10840":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_integer4"},"10841":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_integer8"},"10842":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_real"},"10843":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_real16"},"10844":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_real4"},"10845":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_fortran_real8"},"10846":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_int16_t"},"10847":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_int32_t"},"10848":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_int64_t"},"10849":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_int8_t"},"10850":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_long"},"10851":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_long_double"},"10852":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_uint16_t"},"10853":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_uint32_t"},"10854":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_uint64_t"},"10855":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_uint8_t"},"10856":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_max_unsigned_long"},"10857":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_2double_precision"},"10858":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_2int"},"10859":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_2integer"},"10860":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_2real"},"10861":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_double_int"},"10862":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_float_int"},"10863":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_long_double_int"},"10864":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_long_int"},"10865":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_maxloc_short_int"},"10866":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_double"},"10867":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_float"},"10868":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_double_precision"},"10869":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_integer"},"10870":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_integer1"},"10871":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_integer2"},"10872":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_integer4"},"10873":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_integer8"},"10874":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_real"},"10875":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_real16"},"10876":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_real4"},"10877":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_fortran_real8"},"10878":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_int16_t"},"10879":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_int32_t"},"10880":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_int64_t"},"10881":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_int8_t"},"10882":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_long"},"10883":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_long_double"},"10884":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_uint16_t"},"10885":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_uint32_t"},"10886":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_uint64_t"},"10887":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_uint8_t"},"10888":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_min_unsigned_long"},"10889":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_2double_precision"},"10890":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_2int"},"10891":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_2integer"},"10892":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_2real"},"10893":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_double_int"},"10894":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_float_int"},"10895":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_long_double_int"},"10896":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_long_int"},"10897":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_minloc_short_int"},"10898":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_c_double_complex"},"10899":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_c_float_complex"},"10900":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_c_long_double_complex"},"10901":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_double"},"10902":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_float"},"10903":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_double_precision"},"10904":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_integer"},"10905":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_integer1"},"10906":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_integer2"},"10907":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_integer4"},"10908":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_integer8"},"10909":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_real"},"10910":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_real16"},"10911":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_real4"},"10912":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_fortran_real8"},"10913":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_int16_t"},"10914":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_int32_t"},"10915":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_int64_t"},"10916":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_int8_t"},"10917":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_long"},"10918":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_long_double"},"10919":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_uint16_t"},"10920":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_uint32_t"},"10921":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_uint64_t"},"10922":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_uint8_t"},"10923":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_prod_unsigned_long"},"10924":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_c_double_complex"},"10925":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_c_float_complex"},"10926":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_c_long_double_complex"},"10927":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_double"},"10928":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_float"},"10929":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_double_precision"},"10930":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_integer"},"10931":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_integer1"},"10932":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_integer2"},"10933":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_integer4"},"10934":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_integer8"},"10935":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_real"},"10936":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_real16"},"10937":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_real4"},"10938":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_fortran_real8"},"10939":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_int16_t"},"10940":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_int32_t"},"10941":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_int64_t"},"10942":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_int8_t"},"10943":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_long"},"10944":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_long_double"},"10945":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_uint16_t"},"10946":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_uint32_t"},"10947":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_uint64_t"},"10948":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_uint8_t"},"10949":{"probe_name":"mpi","function_name":"ompi_op_base_2buff_sum_unsigned_long"},"10950":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_byte"},"10951":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_fortran_integer"},"10952":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_fortran_integer1"},"10953":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_fortran_integer2"},"10954":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_fortran_integer4"},"10955":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_fortran_integer8"},"10956":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_int16_t"},"10957":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_int32_t"},"10958":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_int64_t"},"10959":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_int8_t"},"10960":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_long"},"10961":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_uint16_t"},"10962":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_uint32_t"},"10963":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_uint64_t"},"10964":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_uint8_t"},"10965":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_band_unsigned_long"},"10966":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_byte"},"10967":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_fortran_integer"},"10968":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_fortran_integer1"},"10969":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_fortran_integer2"},"10970":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_fortran_integer4"},"10971":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_fortran_integer8"},"10972":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_int16_t"},"10973":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_int32_t"},"10974":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_int64_t"},"10975":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_int8_t"},"10976":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_long"},"10977":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_uint16_t"},"10978":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_uint32_t"},"10979":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_uint64_t"},"10980":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_uint8_t"},"10981":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bor_unsigned_long"},"10982":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_byte"},"10983":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_fortran_integer"},"10984":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_fortran_integer1"},"10985":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_fortran_integer2"},"10986":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_fortran_integer4"},"10987":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_fortran_integer8"},"10988":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_int16_t"},"10989":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_int32_t"},"10990":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_int64_t"},"10991":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_int8_t"},"10992":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_long"},"10993":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_uint16_t"},"10994":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_uint32_t"},"10995":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_uint64_t"},"10996":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_uint8_t"},"10997":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_bxor_unsigned_long"},"10998":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_bool"},"10999":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_fortran_logical"},"11000":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_int16_t"},"11001":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_int32_t"},"11002":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_int64_t"},"11003":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_int8_t"},"11004":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_long"},"11005":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_uint16_t"},"11006":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_uint32_t"},"11007":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_uint64_t"},"11008":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_uint8_t"},"11009":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_land_unsigned_long"},"11010":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_bool"},"11011":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_fortran_logical"},"11012":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_int16_t"},"11013":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_int32_t"},"11014":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_int64_t"},"11015":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_int8_t"},"11016":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_long"},"11017":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_uint16_t"},"11018":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_uint32_t"},"11019":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_uint64_t"},"11020":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_uint8_t"},"11021":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lor_unsigned_long"},"11022":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_bool"},"11023":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_fortran_logical"},"11024":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_int16_t"},"11025":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_int32_t"},"11026":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_int64_t"},"11027":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_int8_t"},"11028":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_long"},"11029":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_uint16_t"},"11030":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_uint32_t"},"11031":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_uint64_t"},"11032":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_uint8_t"},"11033":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_lxor_unsigned_long"},"11034":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_double"},"11035":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_float"},"11036":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_double_precision"},"11037":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_integer"},"11038":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_integer1"},"11039":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_integer2"},"11040":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_integer4"},"11041":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_integer8"},"11042":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_real"},"11043":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_real16"},"11044":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_real4"},"11045":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_fortran_real8"},"11046":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_int16_t"},"11047":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_int32_t"},"11048":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_int64_t"},"11049":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_int8_t"},"11050":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_long"},"11051":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_long_double"},"11052":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_uint16_t"},"11053":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_uint32_t"},"11054":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_uint64_t"},"11055":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_uint8_t"},"11056":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_max_unsigned_long"},"11057":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_2double_precision"},"11058":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_2int"},"11059":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_2integer"},"11060":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_2real"},"11061":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_double_int"},"11062":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_float_int"},"11063":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_long_double_int"},"11064":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_long_int"},"11065":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_maxloc_short_int"},"11066":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_double"},"11067":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_float"},"11068":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_double_precision"},"11069":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_integer"},"11070":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_integer1"},"11071":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_integer2"},"11072":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_integer4"},"11073":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_integer8"},"11074":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_real"},"11075":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_real16"},"11076":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_real4"},"11077":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_fortran_real8"},"11078":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_int16_t"},"11079":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_int32_t"},"11080":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_int64_t"},"11081":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_int8_t"},"11082":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_long"},"11083":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_long_double"},"11084":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_uint16_t"},"11085":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_uint32_t"},"11086":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_uint64_t"},"11087":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_uint8_t"},"11088":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_min_unsigned_long"},"11089":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_2double_precision"},"11090":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_2int"},"11091":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_2integer"},"11092":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_2real"},"11093":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_double_int"},"11094":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_float_int"},"11095":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_long_double_int"},"11096":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_long_int"},"11097":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_minloc_short_int"},"11098":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_c_double_complex"},"11099":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_c_float_complex"},"11100":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_c_long_double_complex"},"11101":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_double"},"11102":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_float"},"11103":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_double_precision"},"11104":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_integer"},"11105":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_integer1"},"11106":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_integer2"},"11107":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_integer4"},"11108":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_integer8"},"11109":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_real"},"11110":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_real16"},"11111":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_real4"},"11112":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_fortran_real8"},"11113":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_int16_t"},"11114":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_int32_t"},"11115":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_int64_t"},"11116":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_int8_t"},"11117":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_long"},"11118":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_long_double"},"11119":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_uint16_t"},"11120":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_uint32_t"},"11121":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_uint64_t"},"11122":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_uint8_t"},"11123":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_prod_unsigned_long"},"11124":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_c_double_complex"},"11125":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_c_float_complex"},"11126":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_c_long_double_complex"},"11127":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_double"},"11128":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_float"},"11129":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_double_precision"},"11130":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_integer"},"11131":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_integer1"},"11132":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_integer2"},"11133":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_integer4"},"11134":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_integer8"},"11135":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_real"},"11136":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_real16"},"11137":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_real4"},"11138":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_fortran_real8"},"11139":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_int16_t"},"11140":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_int32_t"},"11141":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_int64_t"},"11142":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_int8_t"},"11143":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_long"},"11144":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_long_double"},"11145":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_uint16_t"},"11146":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_uint32_t"},"11147":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_uint64_t"},"11148":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_uint8_t"},"11149":{"probe_name":"mpi","function_name":"ompi_op_base_3buff_sum_unsigned_long"},"11150":{"probe_name":"mpi","function_name":"ompi_op_base_find_available"},"11151":{"probe_name":"mpi","function_name":"ompi_op_base_op_select"},"11152":{"probe_name":"mpi","function_name":"ompi_op_construct"},"11153":{"probe_name":"mpi","function_name":"ompi_op_create_user"},"11154":{"probe_name":"mpi","function_name":"ompi_op_destruct"},"11155":{"probe_name":"mpi","function_name":"ompi_op_finalize"},"11156":{"probe_name":"mpi","function_name":"ompi_op_init"},"11157":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x103bf0"},"11158":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x105a40"},"11159":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x109a40"},"11160":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x11a690"},"11161":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x11d440"},"11162":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x128cd0"},"11163":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x153a70"},"11164":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x15a800"},"11165":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x15ce80"},"11166":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x15ed30"},"11167":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x1642a0"},"11168":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x1c2ff0"},"11169":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x1ce8e0"},"11170":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x1e8750"},"11171":{"probe_name":"mpi","function_name":"ompi_op_reduce:0x5eb80"},"11172":{"probe_name":"mpi","function_name":"ompi_op_reduce:0xef780"},"11173":{"probe_name":"mpi","function_name":"ompi_op_reduce:0xf6ab0"},"11174":{"probe_name":"mpi","function_name":"ompi_op_reduce:0xfc2b0"},"11175":{"probe_name":"mpi","function_name":"ompi_op_reduce:0xff940"},"11176":{"probe_name":"mpi","function_name":"ompi_op_set_java_callback"},"11177":{"probe_name":"mpi","function_name":"ompi_osc_base_finalize"},"11178":{"probe_name":"mpi","function_name":"ompi_osc_base_find_available"},"11179":{"probe_name":"mpi","function_name":"ompi_osc_base_get_primitive_type_info"},"11180":{"probe_name":"mpi","function_name":"ompi_osc_base_process_op"},"11181":{"probe_name":"mpi","function_name":"ompi_osc_base_select"},"11182":{"probe_name":"mpi","function_name":"ompi_osc_base_set_memory_alignment"},"11183":{"probe_name":"mpi","function_name":"ompi_osc_base_sndrcv_op"},"11184":{"probe_name":"mpi","function_name":"ompi_osc_get_data_blocking"},"11185":{"probe_name":"mpi","function_name":"ompi_osc_get_data_complete"},"11186":{"probe_name":"mpi","function_name":"ompi_osc_module_add_peer"},"11187":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_accumulate"},"11188":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_attach"},"11189":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_compare_and_swap"},"11190":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_complete"},"11191":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_detach"},"11192":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_fence"},"11193":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_fetch_and_op"},"11194":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_flush"},"11195":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_flush_all"},"11196":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_flush_local"},"11197":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_flush_local_all"},"11198":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_free"},"11199":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_get"},"11200":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_get_accumulate"},"11201":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_lock"},"11202":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_lock_all"},"11203":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_post"},"11204":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_put"},"11205":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_raccumulate"},"11206":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_rget"},"11207":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_rget_accumulate"},"11208":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_rput"},"11209":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_set_template"},"11210":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_start"},"11211":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_sync"},"11212":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_test"},"11213":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_unlock"},"11214":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_unlock_all"},"11215":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_portals4_wait"},"11216":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_accumulate"},"11217":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_attach"},"11218":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_compare_and_swap"},"11219":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_complete"},"11220":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_detach"},"11221":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_fence"},"11222":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_fetch_and_op"},"11223":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_flush"},"11224":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_flush_all"},"11225":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_flush_local"},"11226":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_flush_local_all"},"11227":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_free"},"11228":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_get"},"11229":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_get_accumulate"},"11230":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_lock"},"11231":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_lock_all"},"11232":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_post"},"11233":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_put"},"11234":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_raccumulate"},"11235":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_rget"},"11236":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_rget_accumulate"},"11237":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_rput"},"11238":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_set_template"},"11239":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_start"},"11240":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_sync"},"11241":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_test"},"11242":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_unlock"},"11243":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_unlock_all"},"11244":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_rdma_wait"},"11245":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_accumulate"},"11246":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_attach"},"11247":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_compare_and_swap"},"11248":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_complete"},"11249":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_detach"},"11250":{"probe_name":"mpi","function_name":"ompi_osc_monitoring_sm_fence"}} diff --git a/etc/datacrumbs/data/categories-haridev-tuolumne-mpiio.json b/etc/datacrumbs/data/categories-haridev-tuolumne-mpiio.json deleted file mode 100644 index 2827b603..00000000 --- a/etc/datacrumbs/data/categories-haridev-tuolumne-mpiio.json +++ /dev/null @@ -1 +0,0 @@ -{"9267":{"probe_name":"mpi-rest","function_name":"xpmem_seglist_lookup"},"9266":{"probe_name":"mpi-rest","function_name":"xorshift_rand"},"9265":{"probe_name":"mpi-rest","function_name":"win_unlock_proc"},"9264":{"probe_name":"mpi-rest","function_name":"win_unlock_done"},"9263":{"probe_name":"mpi-rest","function_name":"win_shm_alloc_impl.isra.0"},"9262":{"probe_name":"mpi-rest","function_name":"win_set_per_win_sync"},"9261":{"probe_name":"mpi-rest","function_name":"win_set_info.constprop.0"},"9260":{"probe_name":"mpi-rest","function_name":"win_lock_req_proc"},"9259":{"probe_name":"mpi-rest","function_name":"win_lock_advance"},"9258":{"probe_name":"mpi-rest","function_name":"win_init.constprop.0"},"9257":{"probe_name":"mpi-rest","function_name":"win_init"},"9256":{"probe_name":"mpi-rest","function_name":"win_finalize.isra.0.cold"},"9255":{"probe_name":"mpi-rest","function_name":"win_finalize.isra.0"},"9254":{"probe_name":"mpi-rest","function_name":"win_allgather"},"9253":{"probe_name":"mpi-rest","function_name":"wildmat"},"9252":{"probe_name":"mpi-rest","function_name":"waitall_enqueue_cb.cold"},"9251":{"probe_name":"mpi-rest","function_name":"waitall_enqueue_cb"},"9250":{"probe_name":"mpi-rest","function_name":"wait_enqueue_cb"},"9249":{"probe_name":"mpi-rest","function_name":"vtx_issue.constprop.0"},"9248":{"probe_name":"mpi-rest","function_name":"view_state_get_next_len"},"9247":{"probe_name":"mpi-rest","function_name":"view_state_get_cur_sz"},"9246":{"probe_name":"mpi-rest","function_name":"view_state_add_region"},"9245":{"probe_name":"mpi-rest","function_name":"vector_pack_to_iov"},"9244":{"probe_name":"mpi-rest","function_name":"vector_m2m.cold"},"9243":{"probe_name":"mpi-rest","function_name":"vector_m2m"},"9242":{"probe_name":"mpi-rest","function_name":"validate_tree"},"9241":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7bc36c"},"9240":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7b84bf"},"9239":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7b80b1"},"9238":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7b6da7"},"9237":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7b2c94"},"9236":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7af591"},"9235":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7aee8a"},"9234":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7ad10b"},"9233":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7a948e"},"9232":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7a1dbc"},"9231":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7a0d2d"},"9230":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7a08c1"},"9229":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x79f0d7"},"9228":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x79dc0f"},"9227":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x796b65"},"9226":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x793501"},"9225":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x78469d"},"9224":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x783be4"},"9223":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x781eaa"},"9222":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x77ac2d"},"9221":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x777c7e"},"9220":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7753aa"},"9219":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x77131c"},"9218":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x76e324"},"9217":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x76c9ab"},"9216":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x761f57"},"9215":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x75e632"},"9214":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x75d51e"},"9213":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x75a474"},"9212":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x758f9e"},"9211":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x758e6b"},"9210":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x756b22"},"9209":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x75047a"},"9208":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x74057a"},"9207":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x73e237"},"9206":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x73c070"},"9205":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x739ca9"},"9204":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x737b67"},"9203":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7354b6"},"9202":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x731334"},"9201":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x72f583"},"9200":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x72d421"},"9199":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x72af50"},"9198":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x728d5b"},"9197":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7265f4"},"9196":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x72362f"},"9195":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x7213ac"},"9194":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x71ef5c"},"9193":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x71cbbf"},"9192":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x71a841"},"9191":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x718361"},"9190":{"probe_name":"mpi-rest","function_name":"utarray_str_dtor:0x716bad"},"9189":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7bc314"},"9188":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7b8467"},"9187":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7b8059"},"9186":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7b6d4f"},"9185":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7b2c3c"},"9184":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7af539"},"9183":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7aee32"},"9182":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7ad0b3"},"9181":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7a9436"},"9180":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7a1d64"},"9179":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7a0cd5"},"9178":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7a0869"},"9177":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x79f07f"},"9176":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x79dbb7"},"9175":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x796b0d"},"9174":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7934a9"},"9173":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x784645"},"9172":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x783b8c"},"9171":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x781e52"},"9170":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x77abd5"},"9169":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x777c26"},"9168":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x775352"},"9167":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7712c4"},"9166":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x76e2cc"},"9165":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x76c953"},"9164":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x761eff"},"9163":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x75e5da"},"9162":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x75d4c6"},"9161":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x75a41c"},"9160":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x758f46"},"9159":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x758e13"},"9158":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x756aca"},"9157":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x750422"},"9156":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x740522"},"9155":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x73e1df"},"9154":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x73c018"},"9153":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x739c51"},"9152":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x737b0f"},"9151":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x73545e"},"9150":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7312dc"},"9149":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x72f52b"},"9148":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x72d3c9"},"9147":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x72aef8"},"9146":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x728d03"},"9145":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x72659c"},"9144":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x7235d7"},"9143":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x721354"},"9142":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x71ef04"},"9141":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x71cb67"},"9140":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x71a7e9"},"9139":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x718309"},"9138":{"probe_name":"mpi-rest","function_name":"utarray_str_cpy:0x716b55"},"9137":{"probe_name":"mpi-rest","function_name":"uses_generic_write"},"9136":{"probe_name":"mpi-rest","function_name":"uses_generic_read"},"9135":{"probe_name":"mpi-rest","function_name":"update_type_vector.cold"},"9134":{"probe_name":"mpi-rest","function_name":"update_type_vector"},"9133":{"probe_name":"mpi-rest","function_name":"update_type_indexed.cold"},"9132":{"probe_name":"mpi-rest","function_name":"update_type_indexed"},"9131":{"probe_name":"mpi-rest","function_name":"update_type_blockindexed.cold"},"9130":{"probe_name":"mpi-rest","function_name":"update_type_blockindexed"},"9129":{"probe_name":"mpi-rest","function_name":"update_nic_preferences.part.0"},"9128":{"probe_name":"mpi-rest","function_name":"update_multi_nic_hints.part.0"},"9127":{"probe_name":"mpi-rest","function_name":"ull_maxloc_op_func"},"9126":{"probe_name":"mpi-rest","function_name":"type_struct.part.0"},"9125":{"probe_name":"mpi-rest","function_name":"type_size_is_zero.cold"},"9124":{"probe_name":"mpi-rest","function_name":"type_size_is_zero"},"9123":{"probe_name":"mpi-rest","function_name":"type_cyclic"},"9122":{"probe_name":"mpi-rest","function_name":"type_create_contiguous_x"},"9121":{"probe_name":"mpi-rest","function_name":"type_block"},"9120":{"probe_name":"mpi-rest","function_name":"trvalid"},"9119":{"probe_name":"mpi-rest","function_name":"trstrdup"},"9118":{"probe_name":"mpi-rest","function_name":"trrealloc"},"9117":{"probe_name":"mpi-rest","function_name":"trmunmap"},"9116":{"probe_name":"mpi-rest","function_name":"trmmap"},"9115":{"probe_name":"mpi-rest","function_name":"trmalloc"},"9114":{"probe_name":"mpi-rest","function_name":"trfree"},"9113":{"probe_name":"mpi-rest","function_name":"tree_add_child"},"9112":{"probe_name":"mpi-rest","function_name":"trdump"},"9111":{"probe_name":"mpi-rest","function_name":"trcalloc"},"9110":{"probe_name":"mpi-rest","function_name":"trace_write"},"9109":{"probe_name":"mpi-rest","function_name":"trace_read"},"9108":{"probe_name":"mpi-rest","function_name":"trace_misc"},"9107":{"probe_name":"mpi-rest","function_name":"token_copy"},"9106":{"probe_name":"mpi-rest","function_name":"string_replace_all_occurrences_with_char"},"9105":{"probe_name":"mpi-rest","function_name":"str_to_uint64"},"9104":{"probe_name":"mpi-rest","function_name":"str_to_int"},"9103":{"probe_name":"mpi-rest","function_name":"stat"},"9102":{"probe_name":"mpi-rest","function_name":"src_mlut_to_mlut.isra.0"},"9101":{"probe_name":"mpi-rest","function_name":"src_map_to_lut.isra.0"},"9100":{"probe_name":"mpi-rest","function_name":"sprintbuf"},"9099":{"probe_name":"mpi-rest","function_name":"sorttype_compare"},"9098":{"probe_name":"mpi-rest","function_name":"shared_mem_coll_dump_dir"},"9097":{"probe_name":"mpi-rest","function_name":"setup_single_nic"},"9096":{"probe_name":"mpi-rest","function_name":"setstripe_args_init"},"9095":{"probe_name":"mpi-rest","function_name":"set_rma_fi_info"},"9094":{"probe_name":"mpi-rest","function_name":"set_map.isra.0"},"9093":{"probe_name":"mpi-rest","function_name":"send_enqueue_cb:0x5dde10"},"9092":{"probe_name":"mpi-rest","function_name":"send_enqueue_cb:0x576130"},"9091":{"probe_name":"mpi-rest","function_name":"sched_test_length"},"9090":{"probe_name":"mpi-rest","function_name":"sched_get_cid_nonblock"},"9089":{"probe_name":"mpi-rest","function_name":"sched_dump"},"9088":{"probe_name":"mpi-rest","function_name":"sched_cb_gcn_copy_mask"},"9087":{"probe_name":"mpi-rest","function_name":"sched_cb_gcn_bcast"},"9086":{"probe_name":"mpi-rest","function_name":"sched_cb_gcn_allocate_cid.cold"},"9085":{"probe_name":"mpi-rest","function_name":"sched_cb_gcn_allocate_cid"},"9084":{"probe_name":"mpi-rest","function_name":"sched_cb_commit_comm"},"9083":{"probe_name":"mpi-rest","function_name":"sched_add_ref"},"9082":{"probe_name":"mpi-rest","function_name":"romio_statfs"},"9081":{"probe_name":"mpi-rest","function_name":"right"},"9080":{"probe_name":"mpi-rest","function_name":"reset_shared_state"},"9079":{"probe_name":"mpi-rest","function_name":"release_temp_buffer"},"9078":{"probe_name":"mpi-rest","function_name":"register_tm_clones"},"9077":{"probe_name":"mpi-rest","function_name":"recv_target_cmpl_cb.cold"},"9076":{"probe_name":"mpi-rest","function_name":"recv_target_cmpl_cb"},"9075":{"probe_name":"mpi-rest","function_name":"recv_stream_cleanup_cb"},"9074":{"probe_name":"mpi-rest","function_name":"recv_enqueue_cb:0x5d6da0"},"9073":{"probe_name":"mpi-rest","function_name":"recv_enqueue_cb:0x56ef40"},"9072":{"probe_name":"mpi-rest","function_name":"read_config_files.constprop.0"},"9071":{"probe_name":"mpi-rest","function_name":"quoted_printf"},"9070":{"probe_name":"mpi-rest","function_name":"put_target_cmpl_cb.cold"},"9069":{"probe_name":"mpi-rest","function_name":"put_target_cmpl_cb"},"9068":{"probe_name":"mpi-rest","function_name":"put_ex"},"9067":{"probe_name":"mpi-rest","function_name":"put_dt_target_cmpl_cb"},"9066":{"probe_name":"mpi-rest","function_name":"prune_tree"},"9065":{"probe_name":"mpi-rest","function_name":"progress_fn"},"9064":{"probe_name":"mpi-rest","function_name":"process_pre_req"},"9063":{"probe_name":"mpi-rest","function_name":"printbuf_reset"},"9062":{"probe_name":"mpi-rest","function_name":"printbuf_new"},"9061":{"probe_name":"mpi-rest","function_name":"printbuf_memset"},"9060":{"probe_name":"mpi-rest","function_name":"printbuf_memappend"},"9059":{"probe_name":"mpi-rest","function_name":"printbuf_free"},"9058":{"probe_name":"mpi-rest","function_name":"printbuf_extend"},"9057":{"probe_name":"mpi-rest","function_name":"print_heap"},"9056":{"probe_name":"mpi-rest","function_name":"post_client_comm"},"9055":{"probe_name":"mpi-rest","function_name":"post_aggregator_comm"},"9054":{"probe_name":"mpi-rest","function_name":"part_send_data_target_cmpl_cb"},"9053":{"probe_name":"mpi-rest","function_name":"part_req_create.cold"},"9052":{"probe_name":"mpi-rest","function_name":"part_req_create"},"9051":{"probe_name":"mpi-rest","function_name":"parse_targets"},"9050":{"probe_name":"mpi-rest","function_name":"parse_json_tree"},"9049":{"probe_name":"mpi-rest","function_name":"parent"},"9048":{"probe_name":"mpi-rest","function_name":"pairtypes_finalize_cb"},"9047":{"probe_name":"mpi-rest","function_name":"optimized_get.part.0"},"9046":{"probe_name":"mpi-rest","function_name":"optbalance"},"9045":{"probe_name":"mpi-rest","function_name":"ofi_am_post_recv.part.0.constprop.0.isra.0"},"9044":{"probe_name":"mpi-rest","function_name":"num_children.cold"},"9043":{"probe_name":"mpi-rest","function_name":"num_children"},"9042":{"probe_name":"mpi-rest","function_name":"nonContigSourceDataBufferAdvance"},"9041":{"probe_name":"mpi-rest","function_name":"nid_compare"},"9040":{"probe_name":"mpi-rest","function_name":"next_token"},"9039":{"probe_name":"mpi-rest","function_name":"network_split_by_minsize"},"9038":{"probe_name":"mpi-rest","function_name":"my_consensus"},"9037":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x7b5bb3"},"9036":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x79f6cd"},"9035":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x79dee3"},"9034":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x795971"},"9033":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x776a8a"},"9032":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x76d130"},"9031":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x760d84"},"9030":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x74f286"},"9029":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x73f386"},"9028":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x73d043"},"9027":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x73ae7c"},"9026":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x738ab5"},"9025":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x736973"},"9024":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x7342c2"},"9023":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x730140"},"9022":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x72e38f"},"9021":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x72c22d"},"9020":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x729d5c"},"9019":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x727b67"},"9018":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x725400"},"9017":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x72243b"},"9016":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x7201b8"},"9015":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x71dd68"},"9014":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x71b9cb"},"9013":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x71964d"},"9012":{"probe_name":"mpi-rest","function_name":"mpiio_cray_interval_stats_flush_NEW:0x71716d"},"9011":{"probe_name":"mpi-rest","function_name":"mpidi_cray_ofi_hwcoll_hndl_create"},"9010":{"probe_name":"mpi-rest","function_name":"mpid_cray_pmi_init"},"9009":{"probe_name":"mpi-rest","function_name":"mpid_cray_pmi_get_numpes_on_smp"},"9008":{"probe_name":"mpi-rest","function_name":"mpid_cray_pmi_get_nidlist_ptr.part.0"},"9007":{"probe_name":"mpi-rest","function_name":"mpid_cray_pmi_get_nidlist_ptr"},"9006":{"probe_name":"mpi-rest","function_name":"mpid_cray_pmi_finalize"},"9005":{"probe_name":"mpi-rest","function_name":"mpi_to_pmi_keyvals"},"9004":{"probe_name":"mpi-rest","function_name":"mlut_update_avt_reference"},"9003":{"probe_name":"mpi-rest","function_name":"mergesort_lpidarray"},"9002":{"probe_name":"mpi-rest","function_name":"mc_set_syslog"},"9001":{"probe_name":"mpi-rest","function_name":"mc_set_debug"},"9000":{"probe_name":"mpi-rest","function_name":"mc_info"},"8999":{"probe_name":"mpi-rest","function_name":"mc_get_debug"},"8998":{"probe_name":"mpi-rest","function_name":"mc_error"},"8997":{"probe_name":"mpi-rest","function_name":"mc_debug"},"8996":{"probe_name":"mpi-rest","function_name":"match_this_proc"},"8995":{"probe_name":"mpi-rest","function_name":"match_procs"},"8994":{"probe_name":"mpi-rest","function_name":"make_stats_type"},"8993":{"probe_name":"mpi-rest","function_name":"lstat"},"8992":{"probe_name":"mpi-rest","function_name":"locate_context_bit"},"8991":{"probe_name":"mpi-rest","function_name":"load_acc_hint"},"8990":{"probe_name":"mpi-rest","function_name":"llapi_ladvise_lock"},"8989":{"probe_name":"mpi-rest","function_name":"lh_table_resize"},"8988":{"probe_name":"mpi-rest","function_name":"lh_table_new"},"8987":{"probe_name":"mpi-rest","function_name":"lh_table_lookup_ex"},"8986":{"probe_name":"mpi-rest","function_name":"lh_table_lookup_entry_w_hash"},"8985":{"probe_name":"mpi-rest","function_name":"lh_table_lookup_entry"},"8984":{"probe_name":"mpi-rest","function_name":"lh_table_length"},"8983":{"probe_name":"mpi-rest","function_name":"lh_table_insert_w_hash"},"8982":{"probe_name":"mpi-rest","function_name":"lh_table_insert"},"8981":{"probe_name":"mpi-rest","function_name":"lh_table_free"},"8980":{"probe_name":"mpi-rest","function_name":"lh_table_delete_entry"},"8979":{"probe_name":"mpi-rest","function_name":"lh_table_delete"},"8978":{"probe_name":"mpi-rest","function_name":"lh_ptr_hash"},"8977":{"probe_name":"mpi-rest","function_name":"lh_ptr_equal"},"8976":{"probe_name":"mpi-rest","function_name":"lh_perllike_str_hash"},"8975":{"probe_name":"mpi-rest","function_name":"lh_kptr_table_new"},"8974":{"probe_name":"mpi-rest","function_name":"lh_kchar_table_new"},"8973":{"probe_name":"mpi-rest","function_name":"lh_get_hash:0x7137ab"},"8972":{"probe_name":"mpi-rest","function_name":"lh_get_hash:0x70a4c5"},"8971":{"probe_name":"mpi-rest","function_name":"lh_char_hash"},"8970":{"probe_name":"mpi-rest","function_name":"lh_char_equal"},"8969":{"probe_name":"mpi-rest","function_name":"left"},"8968":{"probe_name":"mpi-rest","function_name":"leaf_vector_mpi_flatten.cold"},"8967":{"probe_name":"mpi-rest","function_name":"leaf_vector_mpi_flatten"},"8966":{"probe_name":"mpi-rest","function_name":"leaf_vector_count_block.cold"},"8965":{"probe_name":"mpi-rest","function_name":"leaf_vector_count_block"},"8964":{"probe_name":"mpi-rest","function_name":"leaf_index_mpi_flatten.cold"},"8963":{"probe_name":"mpi-rest","function_name":"leaf_index_mpi_flatten"},"8962":{"probe_name":"mpi-rest","function_name":"leaf_index_count_block.cold"},"8961":{"probe_name":"mpi-rest","function_name":"leaf_index_count_block"},"8960":{"probe_name":"mpi-rest","function_name":"leaf_contig_mpi_flatten.cold"},"8959":{"probe_name":"mpi-rest","function_name":"leaf_contig_mpi_flatten"},"8958":{"probe_name":"mpi-rest","function_name":"leaf_contig_count_block.cold"},"8957":{"probe_name":"mpi-rest","function_name":"leaf_contig_count_block"},"8956":{"probe_name":"mpi-rest","function_name":"leaf_blkidx_mpi_flatten.cold"},"8955":{"probe_name":"mpi-rest","function_name":"leaf_blkidx_mpi_flatten"},"8954":{"probe_name":"mpi-rest","function_name":"leaf_blkidx_count_block.cold"},"8953":{"probe_name":"mpi-rest","function_name":"leaf_blkidx_count_block"},"8952":{"probe_name":"mpi-rest","function_name":"json_vasprintf:0x714d37"},"8951":{"probe_name":"mpi-rest","function_name":"json_vasprintf:0x70d5e4"},"8950":{"probe_name":"mpi-rest","function_name":"json_util_get_last_err"},"8949":{"probe_name":"mpi-rest","function_name":"json_type_to_name"},"8948":{"probe_name":"mpi-rest","function_name":"json_tokener_validate_utf8"},"8947":{"probe_name":"mpi-rest","function_name":"json_tokener_set_flags"},"8946":{"probe_name":"mpi-rest","function_name":"json_tokener_reset_level"},"8945":{"probe_name":"mpi-rest","function_name":"json_tokener_reset"},"8944":{"probe_name":"mpi-rest","function_name":"json_tokener_parse_verbose"},"8943":{"probe_name":"mpi-rest","function_name":"json_tokener_parse_ex"},"8942":{"probe_name":"mpi-rest","function_name":"json_tokener_parse"},"8941":{"probe_name":"mpi-rest","function_name":"json_tokener_new_ex"},"8940":{"probe_name":"mpi-rest","function_name":"json_tokener_new"},"8939":{"probe_name":"mpi-rest","function_name":"json_tokener_get_parse_end"},"8938":{"probe_name":"mpi-rest","function_name":"json_tokener_get_error"},"8937":{"probe_name":"mpi-rest","function_name":"json_tokener_free"},"8936":{"probe_name":"mpi-rest","function_name":"json_tokener_error_desc"},"8935":{"probe_name":"mpi-rest","function_name":"json_pointer_setf"},"8934":{"probe_name":"mpi-rest","function_name":"json_pointer_set_single_path"},"8933":{"probe_name":"mpi-rest","function_name":"json_pointer_set"},"8932":{"probe_name":"mpi-rest","function_name":"json_pointer_getf"},"8931":{"probe_name":"mpi-rest","function_name":"json_pointer_get_single_path"},"8930":{"probe_name":"mpi-rest","function_name":"json_pointer_get_recursive"},"8929":{"probe_name":"mpi-rest","function_name":"json_pointer_get"},"8928":{"probe_name":"mpi-rest","function_name":"json_parse_int64"},"8927":{"probe_name":"mpi-rest","function_name":"json_parse_double"},"8926":{"probe_name":"mpi-rest","function_name":"json_object_userdata_to_json_string"},"8925":{"probe_name":"mpi-rest","function_name":"json_object_to_json_string_length"},"8924":{"probe_name":"mpi-rest","function_name":"json_object_to_json_string_ext"},"8923":{"probe_name":"mpi-rest","function_name":"json_object_to_json_string"},"8922":{"probe_name":"mpi-rest","function_name":"json_object_to_file_ext"},"8921":{"probe_name":"mpi-rest","function_name":"json_object_to_file"},"8920":{"probe_name":"mpi-rest","function_name":"json_object_to_fd"},"8919":{"probe_name":"mpi-rest","function_name":"json_object_string_to_json_string"},"8918":{"probe_name":"mpi-rest","function_name":"json_object_string_delete"},"8917":{"probe_name":"mpi-rest","function_name":"json_object_set_userdata"},"8916":{"probe_name":"mpi-rest","function_name":"json_object_set_string_len"},"8915":{"probe_name":"mpi-rest","function_name":"json_object_set_string"},"8914":{"probe_name":"mpi-rest","function_name":"json_object_set_serializer"},"8913":{"probe_name":"mpi-rest","function_name":"json_object_set_int64"},"8912":{"probe_name":"mpi-rest","function_name":"json_object_set_int"},"8911":{"probe_name":"mpi-rest","function_name":"json_object_set_double"},"8910":{"probe_name":"mpi-rest","function_name":"json_object_set_boolean"},"8909":{"probe_name":"mpi-rest","function_name":"json_object_put"},"8908":{"probe_name":"mpi-rest","function_name":"json_object_object_to_json_string"},"8907":{"probe_name":"mpi-rest","function_name":"json_object_object_length"},"8906":{"probe_name":"mpi-rest","function_name":"json_object_object_get_ex"},"8905":{"probe_name":"mpi-rest","function_name":"json_object_object_get"},"8904":{"probe_name":"mpi-rest","function_name":"json_object_object_delete"},"8903":{"probe_name":"mpi-rest","function_name":"json_object_object_del"},"8902":{"probe_name":"mpi-rest","function_name":"json_object_object_add_ex"},"8901":{"probe_name":"mpi-rest","function_name":"json_object_object_add"},"8900":{"probe_name":"mpi-rest","function_name":"json_object_new_string_len"},"8899":{"probe_name":"mpi-rest","function_name":"json_object_new_string"},"8898":{"probe_name":"mpi-rest","function_name":"json_object_new_object"},"8897":{"probe_name":"mpi-rest","function_name":"json_object_new_null"},"8896":{"probe_name":"mpi-rest","function_name":"json_object_new_int64"},"8895":{"probe_name":"mpi-rest","function_name":"json_object_new_int"},"8894":{"probe_name":"mpi-rest","function_name":"json_object_new_double_s"},"8893":{"probe_name":"mpi-rest","function_name":"json_object_new_double"},"8892":{"probe_name":"mpi-rest","function_name":"json_object_new_boolean"},"8891":{"probe_name":"mpi-rest","function_name":"json_object_new_array"},"8890":{"probe_name":"mpi-rest","function_name":"json_object_new"},"8889":{"probe_name":"mpi-rest","function_name":"json_object_lh_entry_free"},"8888":{"probe_name":"mpi-rest","function_name":"json_object_iter_peek_value"},"8887":{"probe_name":"mpi-rest","function_name":"json_object_iter_peek_name"},"8886":{"probe_name":"mpi-rest","function_name":"json_object_iter_next"},"8885":{"probe_name":"mpi-rest","function_name":"json_object_iter_init_default"},"8884":{"probe_name":"mpi-rest","function_name":"json_object_iter_equal"},"8883":{"probe_name":"mpi-rest","function_name":"json_object_iter_end"},"8882":{"probe_name":"mpi-rest","function_name":"json_object_iter_begin"},"8881":{"probe_name":"mpi-rest","function_name":"json_object_is_type"},"8880":{"probe_name":"mpi-rest","function_name":"json_object_int_to_json_string"},"8879":{"probe_name":"mpi-rest","function_name":"json_object_int_inc"},"8878":{"probe_name":"mpi-rest","function_name":"json_object_get_userdata"},"8877":{"probe_name":"mpi-rest","function_name":"json_object_get_type"},"8876":{"probe_name":"mpi-rest","function_name":"json_object_get_string_len"},"8875":{"probe_name":"mpi-rest","function_name":"json_object_get_string"},"8874":{"probe_name":"mpi-rest","function_name":"json_object_get_object"},"8873":{"probe_name":"mpi-rest","function_name":"json_object_get_int64"},"8872":{"probe_name":"mpi-rest","function_name":"json_object_get_int"},"8871":{"probe_name":"mpi-rest","function_name":"json_object_get_double"},"8870":{"probe_name":"mpi-rest","function_name":"json_object_get_boolean"},"8869":{"probe_name":"mpi-rest","function_name":"json_object_get_array"},"8868":{"probe_name":"mpi-rest","function_name":"json_object_get"},"8867":{"probe_name":"mpi-rest","function_name":"json_object_generic_delete"},"8866":{"probe_name":"mpi-rest","function_name":"json_object_from_file"},"8865":{"probe_name":"mpi-rest","function_name":"json_object_from_fd_ex"},"8864":{"probe_name":"mpi-rest","function_name":"json_object_from_fd"},"8863":{"probe_name":"mpi-rest","function_name":"json_object_free_userdata"},"8862":{"probe_name":"mpi-rest","function_name":"json_object_equal"},"8861":{"probe_name":"mpi-rest","function_name":"json_object_double_to_json_string_format"},"8860":{"probe_name":"mpi-rest","function_name":"json_object_double_to_json_string_default"},"8859":{"probe_name":"mpi-rest","function_name":"json_object_double_to_json_string"},"8858":{"probe_name":"mpi-rest","function_name":"json_object_deep_copy_recursive"},"8857":{"probe_name":"mpi-rest","function_name":"json_object_deep_copy"},"8856":{"probe_name":"mpi-rest","function_name":"json_object_copy_serializer_data"},"8855":{"probe_name":"mpi-rest","function_name":"json_object_boolean_to_json_string"},"8854":{"probe_name":"mpi-rest","function_name":"json_object_array_to_json_string"},"8853":{"probe_name":"mpi-rest","function_name":"json_object_array_sort"},"8852":{"probe_name":"mpi-rest","function_name":"json_object_array_put_idx"},"8851":{"probe_name":"mpi-rest","function_name":"json_object_array_length"},"8850":{"probe_name":"mpi-rest","function_name":"json_object_array_get_idx"},"8849":{"probe_name":"mpi-rest","function_name":"json_object_array_entry_free"},"8848":{"probe_name":"mpi-rest","function_name":"json_object_array_delete"},"8847":{"probe_name":"mpi-rest","function_name":"json_object_array_del_idx"},"8846":{"probe_name":"mpi-rest","function_name":"json_object_array_bsearch"},"8845":{"probe_name":"mpi-rest","function_name":"json_object_array_add"},"8844":{"probe_name":"mpi-rest","function_name":"json_object_all_values_equal"},"8843":{"probe_name":"mpi-rest","function_name":"json_global_set_string_hash"},"8842":{"probe_name":"mpi-rest","function_name":"json_escape_str"},"8841":{"probe_name":"mpi-rest","function_name":"json_c_visit"},"8840":{"probe_name":"mpi-rest","function_name":"json_c_version_num"},"8839":{"probe_name":"mpi-rest","function_name":"json_c_version"},"8838":{"probe_name":"mpi-rest","function_name":"json_c_shallow_copy_default"},"8837":{"probe_name":"mpi-rest","function_name":"json_c_set_serialization_double_format"},"8836":{"probe_name":"mpi-rest","function_name":"json_c_object_sizeof"},"8835":{"probe_name":"mpi-rest","function_name":"json_c_get_random_seed"},"8834":{"probe_name":"mpi-rest","function_name":"json_array_equal"},"8833":{"probe_name":"mpi-rest","function_name":"issue_packed_put"},"8832":{"probe_name":"mpi-rest","function_name":"issue_packed_get"},"8831":{"probe_name":"mpi-rest","function_name":"isend_enqueue_cb:0x5ddd70"},"8830":{"probe_name":"mpi-rest","function_name":"isend_enqueue_cb:0x576020"},"8829":{"probe_name":"mpi-rest","function_name":"is_valid_index"},"8828":{"probe_name":"mpi-rest","function_name":"is_valid_alignment"},"8827":{"probe_name":"mpi-rest","function_name":"is_localhost"},"8826":{"probe_name":"mpi-rest","function_name":"is_aggregator"},"8825":{"probe_name":"mpi-rest","function_name":"irecv_enqueue_cb:0x5d6d00"},"8824":{"probe_name":"mpi-rest","function_name":"irecv_enqueue_cb:0x56ee70"},"8823":{"probe_name":"mpi-rest","function_name":"internal_Waitsome"},"8822":{"probe_name":"mpi-rest","function_name":"internal_Waitany"},"8821":{"probe_name":"mpi-rest","function_name":"internal_Testsome"},"8820":{"probe_name":"mpi-rest","function_name":"internal_Testany"},"8819":{"probe_name":"mpi-rest","function_name":"internal_Startall"},"8818":{"probe_name":"mpi-rest","function_name":"internal_Pcontrol"},"8817":{"probe_name":"mpi-rest","function_name":"init_wtick"},"8816":{"probe_name":"mpi-rest","function_name":"init_send_recv_list"},"8815":{"probe_name":"mpi-rest","function_name":"init_lustre_lib_syms"},"8814":{"probe_name":"mpi-rest","function_name":"init_lhost_list"},"8813":{"probe_name":"mpi-rest","function_name":"init_classes"},"8812":{"probe_name":"mpi-rest","function_name":"index_m2m.cold"},"8811":{"probe_name":"mpi-rest","function_name":"index_m2m"},"8810":{"probe_name":"mpi-rest","function_name":"indent"},"8809":{"probe_name":"mpi-rest","function_name":"host_free_registered"},"8808":{"probe_name":"mpi-rest","function_name":"host_free_buffer_registered"},"8807":{"probe_name":"mpi-rest","function_name":"host_free:0x6af910"},"8806":{"probe_name":"mpi-rest","function_name":"host_free:0x64e760"},"8805":{"probe_name":"mpi-rest","function_name":"host_free:0x5df1a0"},"8804":{"probe_name":"mpi-rest","function_name":"host_alloc_registered"},"8803":{"probe_name":"mpi-rest","function_name":"host_alloc_buffer_registered"},"8802":{"probe_name":"mpi-rest","function_name":"host_alloc:0x6af8e0"},"8801":{"probe_name":"mpi-rest","function_name":"host_alloc:0x64e730"},"8800":{"probe_name":"mpi-rest","function_name":"host_alloc:0x5df170"},"8799":{"probe_name":"mpi-rest","function_name":"hint_get_uint64"},"8798":{"probe_name":"mpi-rest","function_name":"hint_get_str"},"8797":{"probe_name":"mpi-rest","function_name":"hint_get_key"},"8796":{"probe_name":"mpi-rest","function_name":"hint_get_int"},"8795":{"probe_name":"mpi-rest","function_name":"heapify"},"8794":{"probe_name":"mpi-rest","function_name":"hashlittle"},"8793":{"probe_name":"mpi-rest","function_name":"has_dev_urandom"},"8792":{"probe_name":"mpi-rest","function_name":"handle_acc_data.constprop.0"},"8791":{"probe_name":"mpi-rest","function_name":"gpfs_wr_access_start"},"8790":{"probe_name":"mpi-rest","function_name":"gpfs_wr_access_end"},"8789":{"probe_name":"mpi-rest","function_name":"get_tree_type"},"8788":{"probe_name":"mpi-rest","function_name":"get_total_msgsize.cold"},"8787":{"probe_name":"mpi-rest","function_name":"get_total_msgsize"},"8786":{"probe_name":"mpi-rest","function_name":"get_timer_time_in_double"},"8785":{"probe_name":"mpi-rest","function_name":"get_time_seed"},"8784":{"probe_name":"mpi-rest","function_name":"get_target_cmpl_cb"},"8783":{"probe_name":"mpi-rest","function_name":"get_tag_from_stringtag"},"8782":{"probe_name":"mpi-rest","function_name":"get_tag_from_port.part.0"},"8781":{"probe_name":"mpi-rest","function_name":"get_string_component"},"8780":{"probe_name":"mpi-rest","function_name":"get_rankmap_range"},"8779":{"probe_name":"mpi-rest","function_name":"get_next_fr_off"},"8778":{"probe_name":"mpi-rest","function_name":"get_next_avtid"},"8777":{"probe_name":"mpi-rest","function_name":"get_max_procs"},"8776":{"probe_name":"mpi-rest","function_name":"get_huge_complete.cold"},"8775":{"probe_name":"mpi-rest","function_name":"get_huge_complete"},"8774":{"probe_name":"mpi-rest","function_name":"get_huge"},"8773":{"probe_name":"mpi-rest","function_name":"get_ex"},"8772":{"probe_name":"mpi-rest","function_name":"get_dynerr_string"},"8771":{"probe_name":"mpi-rest","function_name":"get_dev_random_seed"},"8770":{"probe_name":"mpi-rest","function_name":"get_count:0x3f7b70"},"8769":{"probe_name":"mpi-rest","function_name":"get_count:0x3c0210"},"8768":{"probe_name":"mpi-rest","function_name":"get_avg_msgsize.cold"},"8767":{"probe_name":"mpi-rest","function_name":"get_avg_msgsize"},"8766":{"probe_name":"mpi-rest","function_name":"get_ack_target_cmpl_cb.cold"},"8765":{"probe_name":"mpi-rest","function_name":"get_ack_target_cmpl_cb"},"8764":{"probe_name":"mpi-rest","function_name":"get_acc_target_cmpl_cb.cold"},"8763":{"probe_name":"mpi-rest","function_name":"get_acc_target_cmpl_cb"},"8762":{"probe_name":"mpi-rest","function_name":"get_acc_dt_target_cmpl_cb"},"8761":{"probe_name":"mpi-rest","function_name":"get_acc_ack_target_cmpl_cb.cold"},"8760":{"probe_name":"mpi-rest","function_name":"get_acc_ack_target_cmpl_cb"},"8759":{"probe_name":"mpi-rest","function_name":"generate_random_addr"},"8758":{"probe_name":"mpi-rest","function_name":"gavl_update_node_info"},"8757":{"probe_name":"mpi-rest","function_name":"gavl_tree_search_internal"},"8756":{"probe_name":"mpi-rest","function_name":"gavl_tree_remove_nodes"},"8755":{"probe_name":"mpi-rest","function_name":"gavl_tree_remove_node_internal"},"8754":{"probe_name":"mpi-rest","function_name":"gavl_tree_rebalance"},"8753":{"probe_name":"mpi-rest","function_name":"gavl_tree_delete_removed_nodes"},"8752":{"probe_name":"mpi-rest","function_name":"gavl_right_rotation"},"8751":{"probe_name":"mpi-rest","function_name":"gavl_right_left_rotation"},"8750":{"probe_name":"mpi-rest","function_name":"gavl_left_rotation"},"8749":{"probe_name":"mpi-rest","function_name":"gavl_left_right_rotation"},"8748":{"probe_name":"mpi-rest","function_name":"fstat"},"8747":{"probe_name":"mpi-rest","function_name":"free_tree"},"8746":{"probe_name":"mpi-rest","function_name":"free_data:0x3f4d60"},"8745":{"probe_name":"mpi-rest","function_name":"free_data:0x3d0160"},"8744":{"probe_name":"mpi-rest","function_name":"frame_dummy"},"8743":{"probe_name":"mpi-rest","function_name":"first_token"},"8742":{"probe_name":"mpi-rest","function_name":"find_provider"},"8741":{"probe_name":"mpi-rest","function_name":"find_next_off"},"8740":{"probe_name":"mpi-rest","function_name":"find_name"},"8739":{"probe_name":"mpi-rest","function_name":"find_file"},"8738":{"probe_name":"mpi-rest","function_name":"find_async_thread"},"8737":{"probe_name":"mpi-rest","function_name":"find_and_allocate_context_id"},"8736":{"probe_name":"mpi-rest","function_name":"finalize_builtin_comm"},"8735":{"probe_name":"mpi-rest","function_name":"fill_iov_vector.constprop.0"},"8734":{"probe_name":"mpi-rest","function_name":"file_to_info_all"},"8733":{"probe_name":"mpi-rest","function_name":"external32_float_convert.isra.0"},"8732":{"probe_name":"mpi-rest","function_name":"external32_basic_convert.isra.0"},"8731":{"probe_name":"mpi-rest","function_name":"establishAggregationConn"},"8730":{"probe_name":"mpi-rest","function_name":"encode_buffer"},"8729":{"probe_name":"mpi-rest","function_name":"dynamic_intercomm_create.constprop.0"},"8728":{"probe_name":"mpi-rest","function_name":"dwin_free_target_mr"},"8727":{"probe_name":"mpi-rest","function_name":"dwin_close_mr"},"8726":{"probe_name":"mpi-rest","function_name":"ds_write_allowed"},"8725":{"probe_name":"mpi-rest","function_name":"dot_printf.constprop.0.isra.0"},"8724":{"probe_name":"mpi-rest","function_name":"do_reduce"},"8723":{"probe_name":"mpi-rest","function_name":"do_long_am_recv_unpack.part.0:0x66b430"},"8722":{"probe_name":"mpi-rest","function_name":"do_long_am_recv_unpack.part.0:0x65e380"},"8721":{"probe_name":"mpi-rest","function_name":"do_localcopy.cold"},"8720":{"probe_name":"mpi-rest","function_name":"do_localcopy"},"8719":{"probe_name":"mpi-rest","function_name":"dma_pool_free"},"8718":{"probe_name":"mpi-rest","function_name":"dma_pool_alloc"},"8717":{"probe_name":"mpi-rest","function_name":"dloop_copy"},"8716":{"probe_name":"mpi-rest","function_name":"direct_of_src_rmap"},"8715":{"probe_name":"mpi-rest","function_name":"detect_regular_model.part.0"},"8714":{"probe_name":"mpi-rest","function_name":"deregister_tm_clones"},"8713":{"probe_name":"mpi-rest","function_name":"delete_attr"},"8712":{"probe_name":"mpi-rest","function_name":"decode_buffer"},"8711":{"probe_name":"mpi-rest","function_name":"decode"},"8710":{"probe_name":"mpi-rest","function_name":"datatype_attr_finalize_cb"},"8709":{"probe_name":"mpi-rest","function_name":"cswap_target_cmpl_cb"},"8708":{"probe_name":"mpi-rest","function_name":"cswap_ack_target_cmpl_cb"},"8707":{"probe_name":"mpi-rest","function_name":"create_vni_context"},"8706":{"probe_name":"mpi-rest","function_name":"create_tclass_ep"},"8705":{"probe_name":"mpi-rest","function_name":"create_dt_map.cold"},"8704":{"probe_name":"mpi-rest","function_name":"create_dt_map"},"8703":{"probe_name":"mpi-rest","function_name":"create_container:0x6af940"},"8702":{"probe_name":"mpi-rest","function_name":"create_container:0x5bc670"},"8701":{"probe_name":"mpi-rest","function_name":"create_and_map.constprop.0"},"8700":{"probe_name":"mpi-rest","function_name":"cray_trshmget"},"8699":{"probe_name":"mpi-rest","function_name":"cray_trshmctl"},"8698":{"probe_name":"mpi-rest","function_name":"cray_trshm_inc"},"8697":{"probe_name":"mpi-rest","function_name":"cray_trshm_dec"},"8696":{"probe_name":"mpi-rest","function_name":"cray_trmaxmem"},"8695":{"probe_name":"mpi-rest","function_name":"cray_trInitBytesOn"},"8694":{"probe_name":"mpi-rest","function_name":"cray_trExit"},"8693":{"probe_name":"mpi-rest","function_name":"cray_ofi_hwcoll_get_datatype.constprop.0"},"8692":{"probe_name":"mpi-rest","function_name":"copy_to_hmem_iov"},"8691":{"probe_name":"mpi-rest","function_name":"copy_from_hmem_iov"},"8690":{"probe_name":"mpi-rest","function_name":"contig_unpack_external32_to_buf"},"8689":{"probe_name":"mpi-rest","function_name":"contig_pack_to_iov"},"8688":{"probe_name":"mpi-rest","function_name":"contig_pack_external32_to_buf"},"8687":{"probe_name":"mpi-rest","function_name":"contig_m2m.cold"},"8686":{"probe_name":"mpi-rest","function_name":"contig_m2m"},"8685":{"probe_name":"mpi-rest","function_name":"contents_printf.isra.0.cold"},"8684":{"probe_name":"mpi-rest","function_name":"contents_printf.isra.0"},"8683":{"probe_name":"mpi-rest","function_name":"compute_pfl_components"},"8682":{"probe_name":"mpi-rest","function_name":"compare_token"},"8681":{"probe_name":"mpi-rest","function_name":"compare_nics"},"8680":{"probe_name":"mpi-rest","function_name":"compare_nic_names"},"8679":{"probe_name":"mpi-rest","function_name":"comp_args_to_layout"},"8678":{"probe_name":"mpi-rest","function_name":"comm_split_filesystem_heuristic"},"8677":{"probe_name":"mpi-rest","function_name":"comm_split_filesystem_exhaustive"},"8676":{"probe_name":"mpi-rest","function_name":"comm_abort_target_msg_cb"},"8675":{"probe_name":"mpi-rest","function_name":"comm_abort_origin_cb"},"8674":{"probe_name":"mpi-rest","function_name":"check_xpmem_support"},"8673":{"probe_name":"mpi-rest","function_name":"check_type"},"8672":{"probe_name":"mpi-rest","function_name":"check_repeats"},"8671":{"probe_name":"mpi-rest","function_name":"check_maprange_ok"},"8670":{"probe_name":"mpi-rest","function_name":"check_convert_mlut_to_lut.isra.0"},"8669":{"probe_name":"mpi-rest","function_name":"check_convert_lut_to_regular.part.0"},"8668":{"probe_name":"mpi-rest","function_name":"checkValidErrcode"},"8667":{"probe_name":"mpi-rest","function_name":"checkForUserErrcode"},"8666":{"probe_name":"mpi-rest","function_name":"cb_nidlist_assign_one"},"8665":{"probe_name":"mpi-rest","function_name":"cb_config_list_lex:0x7c0581"},"8664":{"probe_name":"mpi-rest","function_name":"cb_config_list_lex:0x75953b"},"8663":{"probe_name":"mpi-rest","function_name":"call_errhandler"},"8662":{"probe_name":"mpi-rest","function_name":"calculate_norm_graph_costs"},"8661":{"probe_name":"mpi-rest","function_name":"calc_send_count_root"},"8660":{"probe_name":"mpi-rest","function_name":"calc_send_count_non_root"},"8659":{"probe_name":"mpi-rest","function_name":"calc_curr_count"},"8658":{"probe_name":"mpi-rest","function_name":"build_nodemap_pmi2"},"8657":{"probe_name":"mpi-rest","function_name":"build_heap"},"8656":{"probe_name":"mpi-rest","function_name":"build_cb_config_list"},"8655":{"probe_name":"mpi-rest","function_name":"brucks_sched_pup:0x3d3960"},"8654":{"probe_name":"mpi-rest","function_name":"brucks_sched_pup:0x39ff80"},"8653":{"probe_name":"mpi-rest","function_name":"brucks_sched_pup.cold:0x3bfe8"},"8652":{"probe_name":"mpi-rest","function_name":"brucks_sched_pup.cold:0x3b6c4"},"8651":{"probe_name":"mpi-rest","function_name":"blkidx_m2m.cold"},"8650":{"probe_name":"mpi-rest","function_name":"blkidx_m2m"},"8649":{"probe_name":"mpi-rest","function_name":"array_list_sort"},"8648":{"probe_name":"mpi-rest","function_name":"array_list_put_idx"},"8647":{"probe_name":"mpi-rest","function_name":"array_list_new"},"8646":{"probe_name":"mpi-rest","function_name":"array_list_length"},"8645":{"probe_name":"mpi-rest","function_name":"array_list_get_idx"},"8644":{"probe_name":"mpi-rest","function_name":"array_list_free"},"8643":{"probe_name":"mpi-rest","function_name":"array_list_expand_internal"},"8642":{"probe_name":"mpi-rest","function_name":"array_list_del_idx"},"8641":{"probe_name":"mpi-rest","function_name":"array_list_bsearch"},"8640":{"probe_name":"mpi-rest","function_name":"array_list_add"},"8639":{"probe_name":"mpi-rest","function_name":"arg_is_eof"},"8638":{"probe_name":"mpi-rest","function_name":"append_lhost"},"8637":{"probe_name":"mpi-rest","function_name":"am_recv_event.constprop.0.isra.0.cold"},"8636":{"probe_name":"mpi-rest","function_name":"am_recv_event.constprop.0.isra.0"},"8635":{"probe_name":"mpi-rest","function_name":"allreduce_enqueue_cb"},"8634":{"probe_name":"mpi-rest","function_name":"allred_stream_cleanup_cb.cold"},"8633":{"probe_name":"mpi-rest","function_name":"allred_stream_cleanup_cb"},"8632":{"probe_name":"mpi-rest","function_name":"align_fr"},"8631":{"probe_name":"mpi-rest","function_name":"aio_request_complete"},"8630":{"probe_name":"mpi-rest","function_name":"adio_cray_pvar_init"},"8629":{"probe_name":"mpi-rest","function_name":"add_gcn_to_list.constprop.0"},"8628":{"probe_name":"mpi-rest","function_name":"add_failed_proc"},"8627":{"probe_name":"mpi-rest","function_name":"ad_gpfs_timing_crw_report"},"8626":{"probe_name":"mpi-rest","function_name":"ad_gpfs_get_env_vars"},"8625":{"probe_name":"mpi-rest","function_name":"ad_get_env_vars"},"8624":{"probe_name":"mpi-rest","function_name":"ad_cray_hints_init"},"8623":{"probe_name":"mpi-rest","function_name":"acc_target_cmpl_cb.cold"},"8622":{"probe_name":"mpi-rest","function_name":"acc_target_cmpl_cb"},"8621":{"probe_name":"mpi-rest","function_name":"acc_dt_target_cmpl_cb"},"8620":{"probe_name":"mpi-rest","function_name":"_mpiio_timers_init"},"8619":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x7b7ee5"},"8618":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x7b5a3f"},"8617":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x7af3c5"},"8616":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x7aecbe"},"8615":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x7957fd"},"8614":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x783a18"},"8613":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x77aa24"},"8612":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x776916"},"8611":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x771113"},"8610":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x76cfbc"},"8609":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x75e466"},"8608":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x756956"},"8607":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x74f112"},"8606":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x7367ff"},"8605":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x73414e"},"8604":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x7279f3"},"8603":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_stop:0x72528c"},"8602":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x7b7d77"},"8601":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x7b58d1"},"8600":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x7af257"},"8599":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x7aeb50"},"8598":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x79568f"},"8597":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x7838aa"},"8596":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x77a8b6"},"8595":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x7767a8"},"8594":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x770fa5"},"8593":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x76ce4e"},"8592":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x75e2f8"},"8591":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x7567e8"},"8590":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x74efa4"},"8589":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x736691"},"8588":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x733fe0"},"8587":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x727885"},"8586":{"probe_name":"mpi-rest","function_name":"_mpiio_timer_start:0x72511e"},"8585":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x7b7d55"},"8584":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x7b58af"},"8583":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x7af235"},"8582":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x7aeb2e"},"8581":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x79f6ab"},"8580":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x79dec1"},"8579":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x79566d"},"8578":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x783888"},"8577":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x77a894"},"8576":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x776786"},"8575":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x770f83"},"8574":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x76ce2c"},"8573":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x760d62"},"8572":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x75e2d6"},"8571":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x75d4a4"},"8570":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x7567c6"},"8569":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x74ef82"},"8568":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x73f364"},"8567":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x73d021"},"8566":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x73ae5a"},"8565":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x738a93"},"8564":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x73666f"},"8563":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x733fbe"},"8562":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x73011e"},"8561":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x72e36d"},"8560":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x72c20b"},"8559":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x729d3a"},"8558":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x727863"},"8557":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x7250fc"},"8556":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x722419"},"8555":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x720196"},"8554":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x71dd46"},"8553":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x71b9a9"},"8552":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x71962b"},"8551":{"probe_name":"mpi-rest","function_name":"_mpiio_rtc:0x71714b"},"8550":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x7b5c44"},"8549":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x79f75e"},"8548":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x79df74"},"8547":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x795a02"},"8546":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x776b1b"},"8545":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x76d1c1"},"8544":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x760e15"},"8543":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x74f317"},"8542":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x73f417"},"8541":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x73d0d4"},"8540":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x73af0d"},"8539":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x738b46"},"8538":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x736a04"},"8537":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x734353"},"8536":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x7301d1"},"8535":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x72e420"},"8534":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x72c2be"},"8533":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x729ded"},"8532":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x727bf8"},"8531":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x725491"},"8530":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x7224cc"},"8529":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x720249"},"8528":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x71ddf9"},"8527":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x71ba5c"},"8526":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x7196de"},"8525":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_write:0x7171fe"},"8524":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7b6b25"},"8523":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7a063f"},"8522":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x79ee55"},"8521":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7968e3"},"8520":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7779fc"},"8519":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x76e0a2"},"8518":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x761cea"},"8517":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7501f8"},"8516":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7402f8"},"8515":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x73dfb5"},"8514":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x73bdee"},"8513":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x739a27"},"8512":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7378e5"},"8511":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x735234"},"8510":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7310b2"},"8509":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x72f301"},"8508":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x72d19f"},"8507":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x72acce"},"8506":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x728ad9"},"8505":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x726372"},"8504":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7233ad"},"8503":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x72112a"},"8502":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x71ecda"},"8501":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x71c93d"},"8500":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x71a5bf"},"8499":{"probe_name":"mpi-rest","function_name":"_mpiio_cray_interval_stats_flush_NEW:0x7180df"},"8498":{"probe_name":"mpi-rest","function_name":"_mpiio_clock_rate_mhz"},"8497":{"probe_name":"mpi-rest","function_name":"_mpiio_clock_rate"},"8496":{"probe_name":"mpi-rest","function_name":"_mpidi_cray_pmi_allgather"},"8495":{"probe_name":"mpi-rest","function_name":"_json_object_userdata_to_json_string"},"8494":{"probe_name":"mpi-rest","function_name":"_json_object_to_fd"},"8493":{"probe_name":"mpi-rest","function_name":"_json_c_visit"},"8492":{"probe_name":"mpi-rest","function_name":"_json_c_strerror"},"8491":{"probe_name":"mpi-rest","function_name":"_json_c_set_last_err"},"8490":{"probe_name":"mpi-rest","function_name":"_dummy_touch_tls"},"8489":{"probe_name":"mpi-rest","function_name":"_cxi_init_counter"},"8488":{"probe_name":"mpi-rest","function_name":"_cxi_global_counters_report"},"8487":{"probe_name":"mpi-rest","function_name":"_cxi_global_counters_init"},"8486":{"probe_name":"mpi-rest","function_name":"_cxi_counter_sample"},"8485":{"probe_name":"mpi-rest","function_name":"_cray_ofi_parse_num_nics_str"},"8484":{"probe_name":"mpi-rest","function_name":"_cray_ofi_get_numa_node_distances"},"8483":{"probe_name":"mpi-rest","function_name":"_cray_ofi_get_nic_numa_node"},"8482":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_string"},"8481":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_snb"},"8480":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_skx"},"8479":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_rome"},"8478":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_npl"},"8477":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_knl"},"8476":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_int"},"8475":{"probe_name":"mpi-rest","function_name":"_cray_mpi_memcpy_hsw"},"8474":{"probe_name":"mpi-rest","function_name":"_cray_get_clock_rate_mhz"},"8473":{"probe_name":"mpi-rest","function_name":"__stat"},"8472":{"probe_name":"mpi-rest","function_name":"__sfp_handle_exceptions"},"8471":{"probe_name":"mpi-rest","function_name":"__popcountdi2"},"8470":{"probe_name":"mpi-rest","function_name":"__multf3"},"8469":{"probe_name":"mpi-rest","function_name":"__mulsc3"},"8468":{"probe_name":"mpi-rest","function_name":"__muldc3"},"8467":{"probe_name":"mpi-rest","function_name":"__lttf2"},"8466":{"probe_name":"mpi-rest","function_name":"__lstat"},"8465":{"probe_name":"mpi-rest","function_name":"__letf2"},"8464":{"probe_name":"mpi-rest","function_name":"__gttf2"},"8463":{"probe_name":"mpi-rest","function_name":"__getf2"},"8462":{"probe_name":"mpi-rest","function_name":"__fstat"},"8461":{"probe_name":"mpi-rest","function_name":"__do_global_dtors_aux"},"8460":{"probe_name":"mpi-rest","function_name":"__cray_dummy_zcopy_SKX"},"8459":{"probe_name":"mpi-rest","function_name":"__cray_dummy_scopy_SKX"},"8458":{"probe_name":"mpi-rest","function_name":"__cray_dummy_dcopy_SKX"},"8457":{"probe_name":"mpi-rest","function_name":"__cray_dummy_ccopy_SKX"},"8456":{"probe_name":"mpi-rest","function_name":"__addtf3"},"8455":{"probe_name":"mpi-rest","function_name":"VALGRIND_PRINTF_BACKTRACE"},"8454":{"probe_name":"mpi-rest","function_name":"VALGRIND_PRINTF"},"8453":{"probe_name":"mpi-rest","function_name":"Star"},"8452":{"probe_name":"mpi-rest","function_name":"QMPI_Register_tool_storage"},"8451":{"probe_name":"mpi-rest","function_name":"QMPI_Register_tool_name"},"8450":{"probe_name":"mpi-rest","function_name":"QMPI_Register_function"},"8449":{"probe_name":"mpi-rest","function_name":"QMPI_Get_tool_storage"},"8448":{"probe_name":"mpi-rest","function_name":"QMPI_Get_function"},"8447":{"probe_name":"mpi-rest","function_name":"QMPI_Get_calling_address"},"8446":{"probe_name":"mpi-rest","function_name":"MPL_wtime_touint"},"8445":{"probe_name":"mpi-rest","function_name":"MPL_wtime_todouble"},"8444":{"probe_name":"mpi-rest","function_name":"MPL_wtime_to_ticks"},"8443":{"probe_name":"mpi-rest","function_name":"MPL_wtime_init"},"8442":{"probe_name":"mpi-rest","function_name":"MPL_wtime_diff"},"8441":{"probe_name":"mpi-rest","function_name":"MPL_wtime_acc"},"8440":{"probe_name":"mpi-rest","function_name":"MPL_wtime"},"8439":{"probe_name":"mpi-rest","function_name":"MPL_wtick"},"8438":{"probe_name":"mpi-rest","function_name":"MPL_usage_printf"},"8437":{"probe_name":"mpi-rest","function_name":"MPL_trvalid2"},"8436":{"probe_name":"mpi-rest","function_name":"MPL_trvalid"},"8435":{"probe_name":"mpi-rest","function_name":"MPL_trstrdup"},"8434":{"probe_name":"mpi-rest","function_name":"MPL_trrealloc"},"8433":{"probe_name":"mpi-rest","function_name":"MPL_trmunmap"},"8432":{"probe_name":"mpi-rest","function_name":"MPL_trmmap"},"8431":{"probe_name":"mpi-rest","function_name":"MPL_trmalloc"},"8430":{"probe_name":"mpi-rest","function_name":"MPL_trinit"},"8429":{"probe_name":"mpi-rest","function_name":"MPL_trfree"},"8428":{"probe_name":"mpi-rest","function_name":"MPL_trdump"},"8427":{"probe_name":"mpi-rest","function_name":"MPL_trconfig"},"8426":{"probe_name":"mpi-rest","function_name":"MPL_trcategorydump"},"8425":{"probe_name":"mpi-rest","function_name":"MPL_trcalloc"},"8424":{"probe_name":"mpi-rest","function_name":"MPL_traligned_alloc"},"8423":{"probe_name":"mpi-rest","function_name":"MPL_ticks_per_second"},"8422":{"probe_name":"mpi-rest","function_name":"MPL_thread_set_affinity"},"8421":{"probe_name":"mpi-rest","function_name":"MPL_thread_create"},"8420":{"probe_name":"mpi-rest","function_name":"MPL_strsep"},"8419":{"probe_name":"mpi-rest","function_name":"MPL_strncpy"},"8418":{"probe_name":"mpi-rest","function_name":"MPL_strnapp"},"8417":{"probe_name":"mpi-rest","function_name":"MPL_stricmp"},"8416":{"probe_name":"mpi-rest","function_name":"MPL_strdup_no_spaces"},"8415":{"probe_name":"mpi-rest","function_name":"MPL_str_get_string_arg"},"8414":{"probe_name":"mpi-rest","function_name":"MPL_str_get_string"},"8413":{"probe_name":"mpi-rest","function_name":"MPL_str_get_int_arg"},"8412":{"probe_name":"mpi-rest","function_name":"MPL_str_get_binary_arg"},"8411":{"probe_name":"mpi-rest","function_name":"MPL_str_add_string_arg"},"8410":{"probe_name":"mpi-rest","function_name":"MPL_str_add_string"},"8409":{"probe_name":"mpi-rest","function_name":"MPL_str_add_int_arg"},"8408":{"probe_name":"mpi-rest","function_name":"MPL_str_add_binary_arg"},"8407":{"probe_name":"mpi-rest","function_name":"MPL_socket"},"8406":{"probe_name":"mpi-rest","function_name":"MPL_sockaddr_to_str"},"8405":{"probe_name":"mpi-rest","function_name":"MPL_sockaddr_set_aftype"},"8404":{"probe_name":"mpi-rest","function_name":"MPL_sockaddr_port"},"8403":{"probe_name":"mpi-rest","function_name":"MPL_shm_seg_remove"},"8402":{"probe_name":"mpi-rest","function_name":"MPL_shm_seg_open"},"8401":{"probe_name":"mpi-rest","function_name":"MPL_shm_seg_detach"},"8400":{"probe_name":"mpi-rest","function_name":"MPL_shm_seg_create_attach_templ"},"8399":{"probe_name":"mpi-rest","function_name":"MPL_shm_seg_create_and_attach"},"8398":{"probe_name":"mpi-rest","function_name":"MPL_shm_seg_create"},"8397":{"probe_name":"mpi-rest","function_name":"MPL_shm_seg_attach"},"8396":{"probe_name":"mpi-rest","function_name":"MPL_shm_hnd_serialize"},"8395":{"probe_name":"mpi-rest","function_name":"MPL_shm_hnd_init"},"8394":{"probe_name":"mpi-rest","function_name":"MPL_shm_hnd_get_serialized_by_ref"},"8393":{"probe_name":"mpi-rest","function_name":"MPL_shm_hnd_finalize"},"8392":{"probe_name":"mpi-rest","function_name":"MPL_shm_hnd_deserialize_by_ref"},"8391":{"probe_name":"mpi-rest","function_name":"MPL_shm_hnd_deserialize"},"8390":{"probe_name":"mpi-rest","function_name":"MPL_shm_fixed_seg_create_and_attach"},"8389":{"probe_name":"mpi-rest","function_name":"MPL_shm_fixed_seg_attach"},"8388":{"probe_name":"mpi-rest","function_name":"MPL_set_listen_attr"},"8387":{"probe_name":"mpi-rest","function_name":"MPL_rankmap_str_to_array"},"8386":{"probe_name":"mpi-rest","function_name":"MPL_rankmap_array_to_str"},"8385":{"probe_name":"mpi-rest","function_name":"MPL_putenv"},"8384":{"probe_name":"mpi-rest","function_name":"MPL_msg_printf"},"8383":{"probe_name":"mpi-rest","function_name":"MPL_listen_portrange"},"8382":{"probe_name":"mpi-rest","function_name":"MPL_listen_anyport"},"8381":{"probe_name":"mpi-rest","function_name":"MPL_listen"},"8380":{"probe_name":"mpi-rest","function_name":"MPL_large_writev"},"8379":{"probe_name":"mpi-rest","function_name":"MPL_large_readv"},"8378":{"probe_name":"mpi-rest","function_name":"MPL_internal_sys_error_printf"},"8377":{"probe_name":"mpi-rest","function_name":"MPL_internal_error_printf"},"8376":{"probe_name":"mpi-rest","function_name":"MPL_initlock_unlock.part.0:0x5b91b0"},"8375":{"probe_name":"mpi-rest","function_name":"MPL_initlock_unlock.part.0:0x4f36f0"},"8374":{"probe_name":"mpi-rest","function_name":"MPL_initlock_unlock.part.0:0x46ef30"},"8373":{"probe_name":"mpi-rest","function_name":"MPL_initlock_lock.part.0:0x5b9180"},"8372":{"probe_name":"mpi-rest","function_name":"MPL_initlock_lock.part.0:0x4f36c0"},"8371":{"probe_name":"mpi-rest","function_name":"MPL_initlock_lock.part.0:0x46ef00"},"8370":{"probe_name":"mpi-rest","function_name":"MPL_host_is_local"},"8369":{"probe_name":"mpi-rest","function_name":"MPL_gpu_unregister_host"},"8368":{"probe_name":"mpi-rest","function_name":"MPL_gpu_stream_is_valid"},"8367":{"probe_name":"mpi-rest","function_name":"MPL_gpu_register_host"},"8366":{"probe_name":"mpi-rest","function_name":"MPL_gpu_query_support"},"8365":{"probe_name":"mpi-rest","function_name":"MPL_gpu_malloc_host"},"8364":{"probe_name":"mpi-rest","function_name":"MPL_gpu_malloc"},"8363":{"probe_name":"mpi-rest","function_name":"MPL_gpu_local_to_global_dev_id"},"8362":{"probe_name":"mpi-rest","function_name":"MPL_gpu_launch_hostfn"},"8361":{"probe_name":"mpi-rest","function_name":"MPL_gpu_ipc_handle_unmap"},"8360":{"probe_name":"mpi-rest","function_name":"MPL_gpu_ipc_handle_map"},"8359":{"probe_name":"mpi-rest","function_name":"MPL_gpu_ipc_handle_create"},"8358":{"probe_name":"mpi-rest","function_name":"MPL_gpu_init"},"8357":{"probe_name":"mpi-rest","function_name":"MPL_gpu_global_to_local_dev_id"},"8356":{"probe_name":"mpi-rest","function_name":"MPL_gpu_get_dev_list"},"8355":{"probe_name":"mpi-rest","function_name":"MPL_gpu_get_dev_id_from_attr"},"8354":{"probe_name":"mpi-rest","function_name":"MPL_gpu_get_dev_count"},"8353":{"probe_name":"mpi-rest","function_name":"MPL_gpu_get_buffer_bounds"},"8352":{"probe_name":"mpi-rest","function_name":"MPL_gpu_free_host"},"8351":{"probe_name":"mpi-rest","function_name":"MPL_gpu_free_hook_register"},"8350":{"probe_name":"mpi-rest","function_name":"MPL_gpu_free"},"8349":{"probe_name":"mpi-rest","function_name":"MPL_gpu_finalize"},"8348":{"probe_name":"mpi-rest","function_name":"MPL_gpu_event_is_complete"},"8347":{"probe_name":"mpi-rest","function_name":"MPL_gpu_event_init_count"},"8346":{"probe_name":"mpi-rest","function_name":"MPL_gpu_event_complete"},"8345":{"probe_name":"mpi-rest","function_name":"MPL_gpu_enqueue_wait"},"8344":{"probe_name":"mpi-rest","function_name":"MPL_gpu_enqueue_trigger"},"8343":{"probe_name":"mpi-rest","function_name":"MPL_gpu_dev_affinity_to_env"},"8342":{"probe_name":"mpi-rest","function_name":"MPL_get_sockaddr_iface"},"8341":{"probe_name":"mpi-rest","function_name":"MPL_get_sockaddr_direct"},"8340":{"probe_name":"mpi-rest","function_name":"MPL_get_sockaddr"},"8339":{"probe_name":"mpi-rest","function_name":"MPL_get_nprocs"},"8338":{"probe_name":"mpi-rest","function_name":"MPL_gavl_tree_insert"},"8337":{"probe_name":"mpi-rest","function_name":"MPL_gavl_tree_destory"},"8336":{"probe_name":"mpi-rest","function_name":"MPL_gavl_tree_delete_start_addr"},"8335":{"probe_name":"mpi-rest","function_name":"MPL_gavl_tree_delete_range"},"8334":{"probe_name":"mpi-rest","function_name":"MPL_gavl_tree_create"},"8333":{"probe_name":"mpi-rest","function_name":"MPL_external_free"},"8332":{"probe_name":"mpi-rest","function_name":"MPL_exit"},"8331":{"probe_name":"mpi-rest","function_name":"MPL_env2unsignedlong"},"8330":{"probe_name":"mpi-rest","function_name":"MPL_env2str"},"8329":{"probe_name":"mpi-rest","function_name":"MPL_env2range"},"8328":{"probe_name":"mpi-rest","function_name":"MPL_env2long"},"8327":{"probe_name":"mpi-rest","function_name":"MPL_env2int"},"8326":{"probe_name":"mpi-rest","function_name":"MPL_env2double"},"8325":{"probe_name":"mpi-rest","function_name":"MPL_env2bool"},"8324":{"probe_name":"mpi-rest","function_name":"MPL_direct_strdup"},"8323":{"probe_name":"mpi-rest","function_name":"MPL_direct_realloc"},"8322":{"probe_name":"mpi-rest","function_name":"MPL_direct_malloc"},"8321":{"probe_name":"mpi-rest","function_name":"MPL_direct_free"},"8320":{"probe_name":"mpi-rest","function_name":"MPL_direct_calloc"},"8319":{"probe_name":"mpi-rest","function_name":"MPL_create_pathname"},"8318":{"probe_name":"mpi-rest","function_name":"MPL_cray_trshmget"},"8317":{"probe_name":"mpi-rest","function_name":"MPL_cray_trshmctl"},"8316":{"probe_name":"mpi-rest","function_name":"MPL_cray_trshm_inc"},"8315":{"probe_name":"mpi-rest","function_name":"MPL_cray_trshm_dec"},"8314":{"probe_name":"mpi-rest","function_name":"MPL_cray_tron"},"8313":{"probe_name":"mpi-rest","function_name":"MPL_cray_trmaxmem"},"8312":{"probe_name":"mpi-rest","function_name":"MPL_cray_trconfig"},"8311":{"probe_name":"mpi-rest","function_name":"MPL_cray_trSummary"},"8310":{"probe_name":"mpi-rest","function_name":"MPL_cray_trInitBytesOn"},"8309":{"probe_name":"mpi-rest","function_name":"MPL_cray_trHWMSummaryOn"},"8308":{"probe_name":"mpi-rest","function_name":"MPL_cray_trExit"},"8307":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7bc277"},"8306":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7b83ca"},"8305":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7b7cb8"},"8304":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7b5812"},"8303":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7b2b9f"},"8302":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7af198"},"8301":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7aea91"},"8300":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7ad016"},"8299":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7a9399"},"8298":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7a1cc7"},"8297":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7a0c38"},"8296":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x79f60e"},"8295":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x79de24"},"8294":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x79db1a"},"8293":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7955d0"},"8292":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x79340c"},"8291":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7845a8"},"8290":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7837eb"},"8289":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x781db5"},"8288":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x77a7f7"},"8287":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7766e9"},"8286":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7752b5"},"8285":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x770ee6"},"8284":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x76cd8f"},"8283":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x76c8b6"},"8282":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x760cc5"},"8281":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x75e239"},"8280":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x75d407"},"8279":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x75a37f"},"8278":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x758ea9"},"8277":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x758d76"},"8276":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x756729"},"8275":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x74eee5"},"8274":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x73f2c7"},"8273":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x73cf84"},"8272":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x73adbd"},"8271":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7389f6"},"8270":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7365d2"},"8269":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x733f21"},"8268":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x730081"},"8267":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x72e2d0"},"8266":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x72c16e"},"8265":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x729c9d"},"8264":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7277c6"},"8263":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x72505f"},"8262":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x72237c"},"8261":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7200f9"},"8260":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x71dca9"},"8259":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x71b90c"},"8258":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x71958e"},"8257":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x7170ae"},"8256":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup:0x716ab8"},"8255":{"probe_name":"mpi-rest","function_name":"MPL_cray_strdup.constprop.0"},"8254":{"probe_name":"mpi-rest","function_name":"MPL_cray_realloc:0x7c1ef2"},"8253":{"probe_name":"mpi-rest","function_name":"MPL_cray_realloc:0x6fdb37"},"8252":{"probe_name":"mpi-rest","function_name":"MPL_cray_realloc.constprop.0"},"8251":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x7c1ded"},"8250":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x742223"},"8249":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x708933"},"8248":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x708457"},"8247":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x70806f"},"8246":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x707929"},"8245":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x70742d"},"8244":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x6ffa3f"},"8243":{"probe_name":"mpi-rest","function_name":"MPL_cray_malloc:0x6fda96"},"8242":{"probe_name":"mpi-rest","function_name":"MPL_cray_in_shmget"},"8241":{"probe_name":"mpi-rest","function_name":"MPL_cray_in_shmctl"},"8240":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7c1ea3"},"8239":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7bc2c5"},"8238":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7b8418"},"8237":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7b7d06"},"8236":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7b5860"},"8235":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7b2bed"},"8234":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7af1e6"},"8233":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7aeadf"},"8232":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7ad064"},"8231":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7a93e7"},"8230":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7a1d15"},"8229":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7a0c86"},"8228":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x79f65c"},"8227":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x79de72"},"8226":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x79db68"},"8225":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x79561e"},"8224":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x79345a"},"8223":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7845f6"},"8222":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x783839"},"8221":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x781e03"},"8220":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x77a845"},"8219":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x776737"},"8218":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x775303"},"8217":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x770f34"},"8216":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x76cddd"},"8215":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x76c904"},"8214":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x760d13"},"8213":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x75e287"},"8212":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x75d455"},"8211":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x75a3cd"},"8210":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x758ef7"},"8209":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x758dc4"},"8208":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x756777"},"8207":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x74ef33"},"8206":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7422d9"},"8205":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x73f315"},"8204":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x73cfd2"},"8203":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x73ae0b"},"8202":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x738a44"},"8201":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x736620"},"8200":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x733f6f"},"8199":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7300cf"},"8198":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x72e31e"},"8197":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x72c1bc"},"8196":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x729ceb"},"8195":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x727814"},"8194":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7250ad"},"8193":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7223ca"},"8192":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x720147"},"8191":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x71dcf7"},"8190":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x71b95a"},"8189":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7195dc"},"8188":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7170fc"},"8187":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x716b06"},"8186":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x708ce2"},"8185":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x708985"},"8184":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x7080c1"},"8183":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x70797b"},"8182":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x70747f"},"8181":{"probe_name":"mpi-rest","function_name":"MPL_cray_free:0x6fdae8"},"8180":{"probe_name":"mpi-rest","function_name":"MPL_cray_free.constprop.0"},"8179":{"probe_name":"mpi-rest","function_name":"MPL_cray_calloc:0x7c1e3f"},"8178":{"probe_name":"mpi-rest","function_name":"MPL_cray_calloc:0x742275"},"8177":{"probe_name":"mpi-rest","function_name":"MPL_cray_calloc:0x708c7e"},"8176":{"probe_name":"mpi-rest","function_name":"MPL_connect"},"8175":{"probe_name":"mpi-rest","function_name":"MPL_backtrace_show"},"8174":{"probe_name":"mpi-rest","function_name":"MPL_args_serialize"},"8173":{"probe_name":"mpi-rest","function_name":"MPL_args_deserialize"},"8172":{"probe_name":"mpi-rest","function_name":"MPLI_thread_start"},"8171":{"probe_name":"mpi-rest","function_name":"MPLI_shm_hnd_reset_val"},"8170":{"probe_name":"mpi-rest","function_name":"MPLI_shm_hnd_free"},"8169":{"probe_name":"mpi-rest","function_name":"MPLI_shm_hnd_alloc"},"8168":{"probe_name":"mpi-rest","function_name":"MPLI_shm_ghnd_alloc:0x70856c"},"8167":{"probe_name":"mpi-rest","function_name":"MPLI_shm_ghnd_alloc:0x708110"},"8166":{"probe_name":"mpi-rest","function_name":"MPLI_gavl_subset_cmp_func"},"8165":{"probe_name":"mpi-rest","function_name":"MPLI_gavl_start_addr_cmp_func"},"8164":{"probe_name":"mpi-rest","function_name":"MPLI_gavl_intersect_cmp_func"},"8163":{"probe_name":"mpi-rest","function_name":"MPI_Wtime"},"8162":{"probe_name":"mpi-rest","function_name":"MPI_Wtick"},"8161":{"probe_name":"mpi-rest","function_name":"MPI_Win_wait"},"8160":{"probe_name":"mpi-rest","function_name":"MPI_Win_unlock_all"},"8159":{"probe_name":"mpi-rest","function_name":"MPI_Win_unlock"},"8158":{"probe_name":"mpi-rest","function_name":"MPI_Win_test"},"8157":{"probe_name":"mpi-rest","function_name":"MPI_Win_sync"},"8156":{"probe_name":"mpi-rest","function_name":"MPI_Win_start"},"8155":{"probe_name":"mpi-rest","function_name":"MPI_Win_shared_query_c"},"8154":{"probe_name":"mpi-rest","function_name":"MPI_Win_shared_query"},"8153":{"probe_name":"mpi-rest","function_name":"MPI_Win_set_name"},"8152":{"probe_name":"mpi-rest","function_name":"MPI_Win_set_info"},"8151":{"probe_name":"mpi-rest","function_name":"MPI_Win_set_errhandler"},"8150":{"probe_name":"mpi-rest","function_name":"MPI_Win_set_attr"},"8149":{"probe_name":"mpi-rest","function_name":"MPI_Win_post"},"8148":{"probe_name":"mpi-rest","function_name":"MPI_Win_lock_all"},"8147":{"probe_name":"mpi-rest","function_name":"MPI_Win_lock"},"8146":{"probe_name":"mpi-rest","function_name":"MPI_Win_get_name"},"8145":{"probe_name":"mpi-rest","function_name":"MPI_Win_get_info"},"8144":{"probe_name":"mpi-rest","function_name":"MPI_Win_get_group"},"8143":{"probe_name":"mpi-rest","function_name":"MPI_Win_get_errhandler"},"8142":{"probe_name":"mpi-rest","function_name":"MPI_Win_get_attr"},"8141":{"probe_name":"mpi-rest","function_name":"MPI_Win_free_keyval"},"8140":{"probe_name":"mpi-rest","function_name":"MPI_Win_free"},"8139":{"probe_name":"mpi-rest","function_name":"MPI_Win_flush_local_all"},"8138":{"probe_name":"mpi-rest","function_name":"MPI_Win_flush_local"},"8137":{"probe_name":"mpi-rest","function_name":"MPI_Win_flush_all"},"8136":{"probe_name":"mpi-rest","function_name":"MPI_Win_flush"},"8135":{"probe_name":"mpi-rest","function_name":"MPI_Win_fence"},"8134":{"probe_name":"mpi-rest","function_name":"MPI_Win_detach"},"8133":{"probe_name":"mpi-rest","function_name":"MPI_Win_delete_attr"},"8132":{"probe_name":"mpi-rest","function_name":"MPI_Win_create_keyval"},"8131":{"probe_name":"mpi-rest","function_name":"MPI_Win_create_errhandler"},"8130":{"probe_name":"mpi-rest","function_name":"MPI_Win_create_dynamic"},"8129":{"probe_name":"mpi-rest","function_name":"MPI_Win_create_c"},"8128":{"probe_name":"mpi-rest","function_name":"MPI_Win_create"},"8127":{"probe_name":"mpi-rest","function_name":"MPI_Win_complete"},"8126":{"probe_name":"mpi-rest","function_name":"MPI_Win_call_errhandler"},"8125":{"probe_name":"mpi-rest","function_name":"MPI_Win_attach"},"8124":{"probe_name":"mpi-rest","function_name":"MPI_Win_allocate_shared_c"},"8123":{"probe_name":"mpi-rest","function_name":"MPI_Win_allocate_shared"},"8122":{"probe_name":"mpi-rest","function_name":"MPI_Win_allocate_c"},"8121":{"probe_name":"mpi-rest","function_name":"MPI_Win_allocate"},"8120":{"probe_name":"mpi-rest","function_name":"MPI_Waitsome"},"8119":{"probe_name":"mpi-rest","function_name":"MPI_Waitany"},"8118":{"probe_name":"mpi-rest","function_name":"MPI_Waitall"},"8117":{"probe_name":"mpi-rest","function_name":"MPI_Wait"},"8116":{"probe_name":"mpi-rest","function_name":"MPI_Unpublish_name"},"8115":{"probe_name":"mpi-rest","function_name":"MPI_Unpack_external_c"},"8114":{"probe_name":"mpi-rest","function_name":"MPI_Unpack_external"},"8113":{"probe_name":"mpi-rest","function_name":"MPI_Unpack_c"},"8112":{"probe_name":"mpi-rest","function_name":"MPI_Unpack"},"8111":{"probe_name":"mpi-rest","function_name":"MPI_Type_vector_c"},"8110":{"probe_name":"mpi-rest","function_name":"MPI_Type_vector"},"8109":{"probe_name":"mpi-rest","function_name":"MPI_Type_ub"},"8108":{"probe_name":"mpi-rest","function_name":"MPI_Type_struct"},"8107":{"probe_name":"mpi-rest","function_name":"MPI_Type_size_x"},"8106":{"probe_name":"mpi-rest","function_name":"MPI_Type_size_c"},"8105":{"probe_name":"mpi-rest","function_name":"MPI_Type_size"},"8104":{"probe_name":"mpi-rest","function_name":"MPI_Type_set_name"},"8103":{"probe_name":"mpi-rest","function_name":"MPI_Type_set_attr"},"8102":{"probe_name":"mpi-rest","function_name":"MPI_Type_match_size"},"8101":{"probe_name":"mpi-rest","function_name":"MPI_Type_lb"},"8100":{"probe_name":"mpi-rest","function_name":"MPI_Type_indexed_c"},"8099":{"probe_name":"mpi-rest","function_name":"MPI_Type_indexed"},"8098":{"probe_name":"mpi-rest","function_name":"MPI_Type_hvector"},"8097":{"probe_name":"mpi-rest","function_name":"MPI_Type_hindexed"},"8096":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_true_extent_x"},"8095":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_true_extent_c"},"8094":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_true_extent"},"8093":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_name"},"8092":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_extent_x"},"8091":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_extent_c"},"8090":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_extent"},"8089":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_envelope_c"},"8088":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_envelope"},"8087":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_contents_c"},"8086":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_contents"},"8085":{"probe_name":"mpi-rest","function_name":"MPI_Type_get_attr"},"8084":{"probe_name":"mpi-rest","function_name":"MPI_Type_free_keyval"},"8083":{"probe_name":"mpi-rest","function_name":"MPI_Type_free"},"8082":{"probe_name":"mpi-rest","function_name":"MPI_Type_extent"},"8081":{"probe_name":"mpi-rest","function_name":"MPI_Type_dup"},"8080":{"probe_name":"mpi-rest","function_name":"MPI_Type_delete_attr"},"8079":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_subarray_c"},"8078":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_subarray"},"8077":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_struct_c"},"8076":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_struct"},"8075":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_resized_c"},"8074":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_resized"},"8073":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_keyval"},"8072":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_indexed_block_c"},"8071":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_indexed_block"},"8070":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_hvector_c"},"8069":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_hvector"},"8068":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_hindexed_c"},"8067":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_hindexed_block_c"},"8066":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_hindexed_block"},"8065":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_hindexed"},"8064":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_f90_real"},"8063":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_f90_integer"},"8062":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_f90_complex"},"8061":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_darray_c"},"8060":{"probe_name":"mpi-rest","function_name":"MPI_Type_create_darray"},"8059":{"probe_name":"mpi-rest","function_name":"MPI_Type_contiguous_c"},"8058":{"probe_name":"mpi-rest","function_name":"MPI_Type_contiguous"},"8057":{"probe_name":"mpi-rest","function_name":"MPI_Type_commit"},"8056":{"probe_name":"mpi-rest","function_name":"MPI_Topo_test"},"8055":{"probe_name":"mpi-rest","function_name":"MPI_Testsome"},"8054":{"probe_name":"mpi-rest","function_name":"MPI_Testany"},"8053":{"probe_name":"mpi-rest","function_name":"MPI_Testall"},"8052":{"probe_name":"mpi-rest","function_name":"MPI_Test_cancelled"},"8051":{"probe_name":"mpi-rest","function_name":"MPI_Test"},"8050":{"probe_name":"mpi-rest","function_name":"MPI_T_source_get_timestamp"},"8049":{"probe_name":"mpi-rest","function_name":"MPI_T_source_get_num"},"8048":{"probe_name":"mpi-rest","function_name":"MPI_T_source_get_info"},"8047":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_write"},"8046":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_stop"},"8045":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_start"},"8044":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_session_free"},"8043":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_session_create"},"8042":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_reset"},"8041":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_readreset"},"8040":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_read"},"8039":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_handle_free"},"8038":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_handle_alloc"},"8037":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_get_num"},"8036":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_get_info"},"8035":{"probe_name":"mpi-rest","function_name":"MPI_T_pvar_get_index"},"8034":{"probe_name":"mpi-rest","function_name":"MPI_T_init_thread"},"8033":{"probe_name":"mpi-rest","function_name":"MPI_T_finalize"},"8032":{"probe_name":"mpi-rest","function_name":"MPI_T_event_set_dropped_handler"},"8031":{"probe_name":"mpi-rest","function_name":"MPI_T_event_register_callback"},"8030":{"probe_name":"mpi-rest","function_name":"MPI_T_event_read"},"8029":{"probe_name":"mpi-rest","function_name":"MPI_T_event_handle_set_info"},"8028":{"probe_name":"mpi-rest","function_name":"MPI_T_event_handle_get_info"},"8027":{"probe_name":"mpi-rest","function_name":"MPI_T_event_handle_free"},"8026":{"probe_name":"mpi-rest","function_name":"MPI_T_event_handle_alloc"},"8025":{"probe_name":"mpi-rest","function_name":"MPI_T_event_get_timestamp"},"8024":{"probe_name":"mpi-rest","function_name":"MPI_T_event_get_source"},"8023":{"probe_name":"mpi-rest","function_name":"MPI_T_event_get_num"},"8022":{"probe_name":"mpi-rest","function_name":"MPI_T_event_get_info"},"8021":{"probe_name":"mpi-rest","function_name":"MPI_T_event_get_index"},"8020":{"probe_name":"mpi-rest","function_name":"MPI_T_event_copy"},"8019":{"probe_name":"mpi-rest","function_name":"MPI_T_event_callback_set_info"},"8018":{"probe_name":"mpi-rest","function_name":"MPI_T_event_callback_get_info"},"8017":{"probe_name":"mpi-rest","function_name":"MPI_T_enum_get_item"},"8016":{"probe_name":"mpi-rest","function_name":"MPI_T_enum_get_info"},"8015":{"probe_name":"mpi-rest","function_name":"MPI_T_cvar_write"},"8014":{"probe_name":"mpi-rest","function_name":"MPI_T_cvar_read"},"8013":{"probe_name":"mpi-rest","function_name":"MPI_T_cvar_handle_free"},"8012":{"probe_name":"mpi-rest","function_name":"MPI_T_cvar_handle_alloc"},"8011":{"probe_name":"mpi-rest","function_name":"MPI_T_cvar_get_num"},"8010":{"probe_name":"mpi-rest","function_name":"MPI_T_cvar_get_info"},"8009":{"probe_name":"mpi-rest","function_name":"MPI_T_cvar_get_index"},"8008":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_pvars"},"8007":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_num_events"},"8006":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_num"},"8005":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_info"},"8004":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_index"},"8003":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_events"},"8002":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_cvars"},"8001":{"probe_name":"mpi-rest","function_name":"MPI_T_category_get_categories"},"8000":{"probe_name":"mpi-rest","function_name":"MPI_T_category_changed"},"7999":{"probe_name":"mpi-rest","function_name":"MPI_Status_set_elements_x"},"7998":{"probe_name":"mpi-rest","function_name":"MPI_Status_set_elements_c"},"7997":{"probe_name":"mpi-rest","function_name":"MPI_Status_set_elements"},"7996":{"probe_name":"mpi-rest","function_name":"MPI_Status_set_cancelled"},"7995":{"probe_name":"mpi-rest","function_name":"MPI_Status_f2c"},"7994":{"probe_name":"mpi-rest","function_name":"MPI_Status_c2f"},"7993":{"probe_name":"mpi-rest","function_name":"MPI_Startall"},"7992":{"probe_name":"mpi-rest","function_name":"MPI_Start"},"7991":{"probe_name":"mpi-rest","function_name":"MPI_Ssend_init_c"},"7990":{"probe_name":"mpi-rest","function_name":"MPI_Ssend_init"},"7989":{"probe_name":"mpi-rest","function_name":"MPI_Ssend_c"},"7988":{"probe_name":"mpi-rest","function_name":"MPI_Ssend"},"7987":{"probe_name":"mpi-rest","function_name":"MPI_Session_set_errhandler"},"7986":{"probe_name":"mpi-rest","function_name":"MPI_Session_init"},"7985":{"probe_name":"mpi-rest","function_name":"MPI_Session_get_pset_info"},"7984":{"probe_name":"mpi-rest","function_name":"MPI_Session_get_num_psets"},"7983":{"probe_name":"mpi-rest","function_name":"MPI_Session_get_nth_pset"},"7982":{"probe_name":"mpi-rest","function_name":"MPI_Session_get_info"},"7981":{"probe_name":"mpi-rest","function_name":"MPI_Session_get_errhandler"},"7980":{"probe_name":"mpi-rest","function_name":"MPI_Session_finalize"},"7979":{"probe_name":"mpi-rest","function_name":"MPI_Session_create_errhandler"},"7978":{"probe_name":"mpi-rest","function_name":"MPI_Session_call_errhandler"},"7977":{"probe_name":"mpi-rest","function_name":"MPI_Sendrecv_replace_c"},"7976":{"probe_name":"mpi-rest","function_name":"MPI_Sendrecv_replace"},"7975":{"probe_name":"mpi-rest","function_name":"MPI_Sendrecv_c"},"7974":{"probe_name":"mpi-rest","function_name":"MPI_Sendrecv"},"7973":{"probe_name":"mpi-rest","function_name":"MPI_Send_init_c"},"7972":{"probe_name":"mpi-rest","function_name":"MPI_Send_init"},"7971":{"probe_name":"mpi-rest","function_name":"MPI_Send_c"},"7970":{"probe_name":"mpi-rest","function_name":"MPI_Send"},"7969":{"probe_name":"mpi-rest","function_name":"MPI_Scatterv_init_c"},"7968":{"probe_name":"mpi-rest","function_name":"MPI_Scatterv_init"},"7967":{"probe_name":"mpi-rest","function_name":"MPI_Scatterv_c"},"7966":{"probe_name":"mpi-rest","function_name":"MPI_Scatterv"},"7965":{"probe_name":"mpi-rest","function_name":"MPI_Scatter_init_c"},"7964":{"probe_name":"mpi-rest","function_name":"MPI_Scatter_init"},"7963":{"probe_name":"mpi-rest","function_name":"MPI_Scatter_c"},"7962":{"probe_name":"mpi-rest","function_name":"MPI_Scatter"},"7961":{"probe_name":"mpi-rest","function_name":"MPI_Scan_init_c"},"7960":{"probe_name":"mpi-rest","function_name":"MPI_Scan_init"},"7959":{"probe_name":"mpi-rest","function_name":"MPI_Scan_c"},"7958":{"probe_name":"mpi-rest","function_name":"MPI_Scan"},"7957":{"probe_name":"mpi-rest","function_name":"MPI_Rsend_init_c"},"7956":{"probe_name":"mpi-rest","function_name":"MPI_Rsend_init"},"7955":{"probe_name":"mpi-rest","function_name":"MPI_Rsend_c"},"7954":{"probe_name":"mpi-rest","function_name":"MPI_Rsend"},"7953":{"probe_name":"mpi-rest","function_name":"MPI_Rput_c"},"7952":{"probe_name":"mpi-rest","function_name":"MPI_Rput"},"7951":{"probe_name":"mpi-rest","function_name":"MPI_Rget_c"},"7950":{"probe_name":"mpi-rest","function_name":"MPI_Rget_accumulate_c"},"7949":{"probe_name":"mpi-rest","function_name":"MPI_Rget_accumulate"},"7948":{"probe_name":"mpi-rest","function_name":"MPI_Rget"},"7947":{"probe_name":"mpi-rest","function_name":"MPI_Request_get_status"},"7946":{"probe_name":"mpi-rest","function_name":"MPI_Request_free"},"7945":{"probe_name":"mpi-rest","function_name":"MPI_Register_datarep_c"},"7944":{"probe_name":"mpi-rest","function_name":"MPI_Register_datarep"},"7943":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter_init_c"},"7942":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter_init"},"7941":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter_c"},"7940":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter_block_init_c"},"7939":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter_block_init"},"7938":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter_block_c"},"7937":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter_block"},"7936":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_scatter"},"7935":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_local_c"},"7934":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_local"},"7933":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_init_c"},"7932":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_init"},"7931":{"probe_name":"mpi-rest","function_name":"MPI_Reduce_c"},"7930":{"probe_name":"mpi-rest","function_name":"MPI_Reduce"},"7929":{"probe_name":"mpi-rest","function_name":"MPI_Recv_init_c"},"7928":{"probe_name":"mpi-rest","function_name":"MPI_Recv_init"},"7927":{"probe_name":"mpi-rest","function_name":"MPI_Recv_c"},"7926":{"probe_name":"mpi-rest","function_name":"MPI_Recv"},"7925":{"probe_name":"mpi-rest","function_name":"MPI_Raccumulate_c"},"7924":{"probe_name":"mpi-rest","function_name":"MPI_Raccumulate"},"7923":{"probe_name":"mpi-rest","function_name":"MPI_Query_thread"},"7922":{"probe_name":"mpi-rest","function_name":"MPI_Put_c"},"7921":{"probe_name":"mpi-rest","function_name":"MPI_Put"},"7920":{"probe_name":"mpi-rest","function_name":"MPI_Publish_name"},"7919":{"probe_name":"mpi-rest","function_name":"MPI_Psend_init"},"7918":{"probe_name":"mpi-rest","function_name":"MPI_Probe"},"7917":{"probe_name":"mpi-rest","function_name":"MPI_Precv_init"},"7916":{"probe_name":"mpi-rest","function_name":"MPI_Pready_range"},"7915":{"probe_name":"mpi-rest","function_name":"MPI_Pready_list"},"7914":{"probe_name":"mpi-rest","function_name":"MPI_Pready"},"7913":{"probe_name":"mpi-rest","function_name":"MPI_Pcontrol"},"7912":{"probe_name":"mpi-rest","function_name":"MPI_Parrived"},"7911":{"probe_name":"mpi-rest","function_name":"MPI_Pack_size_c"},"7910":{"probe_name":"mpi-rest","function_name":"MPI_Pack_size"},"7909":{"probe_name":"mpi-rest","function_name":"MPI_Pack_external_size_c"},"7908":{"probe_name":"mpi-rest","function_name":"MPI_Pack_external_size"},"7907":{"probe_name":"mpi-rest","function_name":"MPI_Pack_external_c"},"7906":{"probe_name":"mpi-rest","function_name":"MPI_Pack_external"},"7905":{"probe_name":"mpi-rest","function_name":"MPI_Pack_c"},"7904":{"probe_name":"mpi-rest","function_name":"MPI_Pack"},"7903":{"probe_name":"mpi-rest","function_name":"MPI_Open_port"},"7902":{"probe_name":"mpi-rest","function_name":"MPI_Op_free"},"7901":{"probe_name":"mpi-rest","function_name":"MPI_Op_create_c"},"7900":{"probe_name":"mpi-rest","function_name":"MPI_Op_create"},"7899":{"probe_name":"mpi-rest","function_name":"MPI_Op_commutative"},"7898":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallw_init_c"},"7897":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallw_init"},"7896":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallw_c"},"7895":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallw"},"7894":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallv_init_c"},"7893":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallv_init"},"7892":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallv_c"},"7891":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoallv"},"7890":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoall_init_c"},"7889":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoall_init"},"7888":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoall_c"},"7887":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_alltoall"},"7886":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgatherv_init_c"},"7885":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgatherv_init"},"7884":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgatherv_c"},"7883":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgatherv"},"7882":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgather_init_c"},"7881":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgather_init"},"7880":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgather_c"},"7879":{"probe_name":"mpi-rest","function_name":"MPI_Neighbor_allgather"},"7878":{"probe_name":"mpi-rest","function_name":"MPI_Mrecv_c"},"7877":{"probe_name":"mpi-rest","function_name":"MPI_Mrecv"},"7876":{"probe_name":"mpi-rest","function_name":"MPI_Mprobe"},"7875":{"probe_name":"mpi-rest","function_name":"MPI_Lookup_name"},"7874":{"probe_name":"mpi-rest","function_name":"MPI_Keyval_free"},"7873":{"probe_name":"mpi-rest","function_name":"MPI_Keyval_create"},"7872":{"probe_name":"mpi-rest","function_name":"MPI_Issend_c"},"7871":{"probe_name":"mpi-rest","function_name":"MPI_Issend"},"7870":{"probe_name":"mpi-rest","function_name":"MPI_Isendrecv_replace_c"},"7869":{"probe_name":"mpi-rest","function_name":"MPI_Isendrecv_replace"},"7868":{"probe_name":"mpi-rest","function_name":"MPI_Isendrecv_c"},"7867":{"probe_name":"mpi-rest","function_name":"MPI_Isendrecv"},"7866":{"probe_name":"mpi-rest","function_name":"MPI_Isend_c"},"7865":{"probe_name":"mpi-rest","function_name":"MPI_Isend"},"7864":{"probe_name":"mpi-rest","function_name":"MPI_Iscatterv_c"},"7863":{"probe_name":"mpi-rest","function_name":"MPI_Iscatterv"},"7862":{"probe_name":"mpi-rest","function_name":"MPI_Iscatter_c"},"7861":{"probe_name":"mpi-rest","function_name":"MPI_Iscatter"},"7860":{"probe_name":"mpi-rest","function_name":"MPI_Iscan_c"},"7859":{"probe_name":"mpi-rest","function_name":"MPI_Iscan"},"7858":{"probe_name":"mpi-rest","function_name":"MPI_Is_thread_main"},"7857":{"probe_name":"mpi-rest","function_name":"MPI_Irsend_c"},"7856":{"probe_name":"mpi-rest","function_name":"MPI_Irsend"},"7855":{"probe_name":"mpi-rest","function_name":"MPI_Ireduce_scatter_c"},"7854":{"probe_name":"mpi-rest","function_name":"MPI_Ireduce_scatter_block_c"},"7853":{"probe_name":"mpi-rest","function_name":"MPI_Ireduce_scatter_block"},"7852":{"probe_name":"mpi-rest","function_name":"MPI_Ireduce_scatter"},"7851":{"probe_name":"mpi-rest","function_name":"MPI_Ireduce_c"},"7850":{"probe_name":"mpi-rest","function_name":"MPI_Ireduce"},"7849":{"probe_name":"mpi-rest","function_name":"MPI_Irecv_c"},"7848":{"probe_name":"mpi-rest","function_name":"MPI_Irecv"},"7847":{"probe_name":"mpi-rest","function_name":"MPI_Iprobe"},"7846":{"probe_name":"mpi-rest","function_name":"MPI_Intercomm_merge"},"7845":{"probe_name":"mpi-rest","function_name":"MPI_Intercomm_create_from_groups"},"7844":{"probe_name":"mpi-rest","function_name":"MPI_Intercomm_create"},"7843":{"probe_name":"mpi-rest","function_name":"MPI_Initialized"},"7842":{"probe_name":"mpi-rest","function_name":"MPI_Init_thread"},"7841":{"probe_name":"mpi-rest","function_name":"MPI_Init"},"7840":{"probe_name":"mpi-rest","function_name":"MPI_Info_val_str_to_int"},"7839":{"probe_name":"mpi-rest","function_name":"MPI_Info_val_int_to_str"},"7838":{"probe_name":"mpi-rest","function_name":"MPI_Info_set"},"7837":{"probe_name":"mpi-rest","function_name":"MPI_Info_get_valuelen"},"7836":{"probe_name":"mpi-rest","function_name":"MPI_Info_get_string"},"7835":{"probe_name":"mpi-rest","function_name":"MPI_Info_get_nthkey"},"7834":{"probe_name":"mpi-rest","function_name":"MPI_Info_get_nkeys"},"7833":{"probe_name":"mpi-rest","function_name":"MPI_Info_get"},"7832":{"probe_name":"mpi-rest","function_name":"MPI_Info_free"},"7831":{"probe_name":"mpi-rest","function_name":"MPI_Info_dup"},"7830":{"probe_name":"mpi-rest","function_name":"MPI_Info_delete"},"7829":{"probe_name":"mpi-rest","function_name":"MPI_Info_create_env"},"7828":{"probe_name":"mpi-rest","function_name":"MPI_Info_create"},"7827":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_alltoallw_c"},"7826":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_alltoallw"},"7825":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_alltoallv_c"},"7824":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_alltoallv"},"7823":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_alltoall_c"},"7822":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_alltoall"},"7821":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_allgatherv_c"},"7820":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_allgatherv"},"7819":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_allgather_c"},"7818":{"probe_name":"mpi-rest","function_name":"MPI_Ineighbor_allgather"},"7817":{"probe_name":"mpi-rest","function_name":"MPI_Imrecv_c"},"7816":{"probe_name":"mpi-rest","function_name":"MPI_Imrecv"},"7815":{"probe_name":"mpi-rest","function_name":"MPI_Improbe"},"7814":{"probe_name":"mpi-rest","function_name":"MPI_Igatherv_c"},"7813":{"probe_name":"mpi-rest","function_name":"MPI_Igatherv"},"7812":{"probe_name":"mpi-rest","function_name":"MPI_Igather_c"},"7811":{"probe_name":"mpi-rest","function_name":"MPI_Igather"},"7810":{"probe_name":"mpi-rest","function_name":"MPI_Iexscan_c"},"7809":{"probe_name":"mpi-rest","function_name":"MPI_Iexscan"},"7808":{"probe_name":"mpi-rest","function_name":"MPI_Ibsend_c"},"7807":{"probe_name":"mpi-rest","function_name":"MPI_Ibsend"},"7806":{"probe_name":"mpi-rest","function_name":"MPI_Ibcast_c"},"7805":{"probe_name":"mpi-rest","function_name":"MPI_Ibcast"},"7804":{"probe_name":"mpi-rest","function_name":"MPI_Ibarrier"},"7803":{"probe_name":"mpi-rest","function_name":"MPI_Ialltoallw_c"},"7802":{"probe_name":"mpi-rest","function_name":"MPI_Ialltoallw"},"7801":{"probe_name":"mpi-rest","function_name":"MPI_Ialltoallv_c"},"7800":{"probe_name":"mpi-rest","function_name":"MPI_Ialltoallv"},"7799":{"probe_name":"mpi-rest","function_name":"MPI_Ialltoall_c"},"7798":{"probe_name":"mpi-rest","function_name":"MPI_Ialltoall"},"7797":{"probe_name":"mpi-rest","function_name":"MPI_Iallreduce_c"},"7796":{"probe_name":"mpi-rest","function_name":"MPI_Iallreduce"},"7795":{"probe_name":"mpi-rest","function_name":"MPI_Iallgatherv_c"},"7794":{"probe_name":"mpi-rest","function_name":"MPI_Iallgatherv"},"7793":{"probe_name":"mpi-rest","function_name":"MPI_Iallgather_c"},"7792":{"probe_name":"mpi-rest","function_name":"MPI_Iallgather"},"7791":{"probe_name":"mpi-rest","function_name":"MPI_Group_union"},"7790":{"probe_name":"mpi-rest","function_name":"MPI_Group_translate_ranks"},"7789":{"probe_name":"mpi-rest","function_name":"MPI_Group_size"},"7788":{"probe_name":"mpi-rest","function_name":"MPI_Group_rank"},"7787":{"probe_name":"mpi-rest","function_name":"MPI_Group_range_incl"},"7786":{"probe_name":"mpi-rest","function_name":"MPI_Group_range_excl"},"7785":{"probe_name":"mpi-rest","function_name":"MPI_Group_intersection"},"7784":{"probe_name":"mpi-rest","function_name":"MPI_Group_incl"},"7783":{"probe_name":"mpi-rest","function_name":"MPI_Group_from_session_pset"},"7782":{"probe_name":"mpi-rest","function_name":"MPI_Group_free"},"7781":{"probe_name":"mpi-rest","function_name":"MPI_Group_excl"},"7780":{"probe_name":"mpi-rest","function_name":"MPI_Group_difference"},"7779":{"probe_name":"mpi-rest","function_name":"MPI_Group_compare"},"7778":{"probe_name":"mpi-rest","function_name":"MPI_Grequest_start"},"7777":{"probe_name":"mpi-rest","function_name":"MPI_Grequest_complete"},"7776":{"probe_name":"mpi-rest","function_name":"MPI_Graphdims_get"},"7775":{"probe_name":"mpi-rest","function_name":"MPI_Graph_neighbors_count"},"7774":{"probe_name":"mpi-rest","function_name":"MPI_Graph_neighbors"},"7773":{"probe_name":"mpi-rest","function_name":"MPI_Graph_map"},"7772":{"probe_name":"mpi-rest","function_name":"MPI_Graph_get"},"7771":{"probe_name":"mpi-rest","function_name":"MPI_Graph_create"},"7770":{"probe_name":"mpi-rest","function_name":"MPI_Get_version"},"7769":{"probe_name":"mpi-rest","function_name":"MPI_Get_processor_name"},"7768":{"probe_name":"mpi-rest","function_name":"MPI_Get_library_version"},"7767":{"probe_name":"mpi-rest","function_name":"MPI_Get_elements_x"},"7766":{"probe_name":"mpi-rest","function_name":"MPI_Get_elements_c"},"7765":{"probe_name":"mpi-rest","function_name":"MPI_Get_elements"},"7764":{"probe_name":"mpi-rest","function_name":"MPI_Get_count_c"},"7763":{"probe_name":"mpi-rest","function_name":"MPI_Get_count"},"7762":{"probe_name":"mpi-rest","function_name":"MPI_Get_c"},"7761":{"probe_name":"mpi-rest","function_name":"MPI_Get_address"},"7760":{"probe_name":"mpi-rest","function_name":"MPI_Get_accumulate_c"},"7759":{"probe_name":"mpi-rest","function_name":"MPI_Get_accumulate"},"7758":{"probe_name":"mpi-rest","function_name":"MPI_Get"},"7757":{"probe_name":"mpi-rest","function_name":"MPI_Gatherv_init_c"},"7756":{"probe_name":"mpi-rest","function_name":"MPI_Gatherv_init"},"7755":{"probe_name":"mpi-rest","function_name":"MPI_Gatherv_c"},"7754":{"probe_name":"mpi-rest","function_name":"MPI_Gatherv"},"7753":{"probe_name":"mpi-rest","function_name":"MPI_Gather_init_c"},"7752":{"probe_name":"mpi-rest","function_name":"MPI_Gather_init"},"7751":{"probe_name":"mpi-rest","function_name":"MPI_Gather_c"},"7750":{"probe_name":"mpi-rest","function_name":"MPI_Gather"},"7749":{"probe_name":"mpi-rest","function_name":"MPI_Free_mem"},"7748":{"probe_name":"mpi-rest","function_name":"MPI_Finalized"},"7747":{"probe_name":"mpi-rest","function_name":"MPI_Finalize"},"7746":{"probe_name":"mpi-rest","function_name":"MPI_File_write_shared_c"},"7745":{"probe_name":"mpi-rest","function_name":"MPI_File_write_shared"},"7744":{"probe_name":"mpi-rest","function_name":"MPI_File_write_ordered_end"},"7743":{"probe_name":"mpi-rest","function_name":"MPI_File_write_ordered_c"},"7742":{"probe_name":"mpi-rest","function_name":"MPI_File_write_ordered_begin_c"},"7741":{"probe_name":"mpi-rest","function_name":"MPI_File_write_ordered_begin"},"7740":{"probe_name":"mpi-rest","function_name":"MPI_File_write_ordered"},"7739":{"probe_name":"mpi-rest","function_name":"MPI_File_write_c"},"7738":{"probe_name":"mpi-rest","function_name":"MPI_File_write_at_c"},"7737":{"probe_name":"mpi-rest","function_name":"MPI_File_write_at_all_end"},"7736":{"probe_name":"mpi-rest","function_name":"MPI_File_write_at_all_c"},"7735":{"probe_name":"mpi-rest","function_name":"MPI_File_write_at_all_begin_c"},"7734":{"probe_name":"mpi-rest","function_name":"MPI_File_write_at_all_begin"},"7733":{"probe_name":"mpi-rest","function_name":"MPI_File_write_at_all"},"7732":{"probe_name":"mpi-rest","function_name":"MPI_File_write_at"},"7731":{"probe_name":"mpi-rest","function_name":"MPI_File_write_all_end"},"7730":{"probe_name":"mpi-rest","function_name":"MPI_File_write_all_c"},"7729":{"probe_name":"mpi-rest","function_name":"MPI_File_write_all_begin_c"},"7728":{"probe_name":"mpi-rest","function_name":"MPI_File_write_all_begin"},"7727":{"probe_name":"mpi-rest","function_name":"MPI_File_write_all"},"7726":{"probe_name":"mpi-rest","function_name":"MPI_File_write"},"7725":{"probe_name":"mpi-rest","function_name":"MPI_File_sync"},"7724":{"probe_name":"mpi-rest","function_name":"MPI_File_set_view"},"7723":{"probe_name":"mpi-rest","function_name":"MPI_File_set_size"},"7722":{"probe_name":"mpi-rest","function_name":"MPI_File_set_info"},"7721":{"probe_name":"mpi-rest","function_name":"MPI_File_set_errhandler"},"7720":{"probe_name":"mpi-rest","function_name":"MPI_File_set_atomicity"},"7719":{"probe_name":"mpi-rest","function_name":"MPI_File_seek_shared"},"7718":{"probe_name":"mpi-rest","function_name":"MPI_File_seek"},"7717":{"probe_name":"mpi-rest","function_name":"MPI_File_read_shared_c"},"7716":{"probe_name":"mpi-rest","function_name":"MPI_File_read_shared"},"7715":{"probe_name":"mpi-rest","function_name":"MPI_File_read_ordered_end"},"7714":{"probe_name":"mpi-rest","function_name":"MPI_File_read_ordered_c"},"7713":{"probe_name":"mpi-rest","function_name":"MPI_File_read_ordered_begin_c"},"7712":{"probe_name":"mpi-rest","function_name":"MPI_File_read_ordered_begin"},"7711":{"probe_name":"mpi-rest","function_name":"MPI_File_read_ordered"},"7710":{"probe_name":"mpi-rest","function_name":"MPI_File_read_c"},"7709":{"probe_name":"mpi-rest","function_name":"MPI_File_read_at_c"},"7708":{"probe_name":"mpi-rest","function_name":"MPI_File_read_at_all_end"},"7707":{"probe_name":"mpi-rest","function_name":"MPI_File_read_at_all_c"},"7706":{"probe_name":"mpi-rest","function_name":"MPI_File_read_at_all_begin_c"},"7705":{"probe_name":"mpi-rest","function_name":"MPI_File_read_at_all_begin"},"7704":{"probe_name":"mpi-rest","function_name":"MPI_File_read_at_all"},"7703":{"probe_name":"mpi-rest","function_name":"MPI_File_read_at"},"7702":{"probe_name":"mpi-rest","function_name":"MPI_File_read_all_end"},"7701":{"probe_name":"mpi-rest","function_name":"MPI_File_read_all_c"},"7700":{"probe_name":"mpi-rest","function_name":"MPI_File_read_all_begin_c"},"7699":{"probe_name":"mpi-rest","function_name":"MPI_File_read_all_begin"},"7698":{"probe_name":"mpi-rest","function_name":"MPI_File_read_all"},"7697":{"probe_name":"mpi-rest","function_name":"MPI_File_read"},"7696":{"probe_name":"mpi-rest","function_name":"MPI_File_preallocate"},"7695":{"probe_name":"mpi-rest","function_name":"MPI_File_open"},"7694":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_shared_c"},"7693":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_shared"},"7692":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_c"},"7691":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_at_c"},"7690":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_at_all_c"},"7689":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_at_all"},"7688":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_at"},"7687":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_all_c"},"7686":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite_all"},"7685":{"probe_name":"mpi-rest","function_name":"MPI_File_iwrite"},"7684":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_shared_c"},"7683":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_shared"},"7682":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_c"},"7681":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_at_c"},"7680":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_at_all_c"},"7679":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_at_all"},"7678":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_at"},"7677":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_all_c"},"7676":{"probe_name":"mpi-rest","function_name":"MPI_File_iread_all"},"7675":{"probe_name":"mpi-rest","function_name":"MPI_File_iread"},"7674":{"probe_name":"mpi-rest","function_name":"MPI_File_get_view"},"7673":{"probe_name":"mpi-rest","function_name":"MPI_File_get_type_extent_c"},"7672":{"probe_name":"mpi-rest","function_name":"MPI_File_get_type_extent"},"7671":{"probe_name":"mpi-rest","function_name":"MPI_File_get_size"},"7670":{"probe_name":"mpi-rest","function_name":"MPI_File_get_position_shared"},"7669":{"probe_name":"mpi-rest","function_name":"MPI_File_get_position"},"7668":{"probe_name":"mpi-rest","function_name":"MPI_File_get_info"},"7667":{"probe_name":"mpi-rest","function_name":"MPI_File_get_group"},"7666":{"probe_name":"mpi-rest","function_name":"MPI_File_get_errhandler"},"7665":{"probe_name":"mpi-rest","function_name":"MPI_File_get_byte_offset"},"7664":{"probe_name":"mpi-rest","function_name":"MPI_File_get_atomicity"},"7663":{"probe_name":"mpi-rest","function_name":"MPI_File_get_amode"},"7662":{"probe_name":"mpi-rest","function_name":"MPI_File_f2c"},"7661":{"probe_name":"mpi-rest","function_name":"MPI_File_delete"},"7660":{"probe_name":"mpi-rest","function_name":"MPI_File_create_errhandler"},"7659":{"probe_name":"mpi-rest","function_name":"MPI_File_close"},"7658":{"probe_name":"mpi-rest","function_name":"MPI_File_call_errhandler"},"7657":{"probe_name":"mpi-rest","function_name":"MPI_File_c2f"},"7656":{"probe_name":"mpi-rest","function_name":"MPI_Fetch_and_op"},"7655":{"probe_name":"mpi-rest","function_name":"MPI_Exscan_init_c"},"7654":{"probe_name":"mpi-rest","function_name":"MPI_Exscan_init"},"7653":{"probe_name":"mpi-rest","function_name":"MPI_Exscan_c"},"7652":{"probe_name":"mpi-rest","function_name":"MPI_Exscan"},"7651":{"probe_name":"mpi-rest","function_name":"MPI_Error_string"},"7650":{"probe_name":"mpi-rest","function_name":"MPI_Error_class"},"7649":{"probe_name":"mpi-rest","function_name":"MPI_Errhandler_set"},"7648":{"probe_name":"mpi-rest","function_name":"MPI_Errhandler_get"},"7647":{"probe_name":"mpi-rest","function_name":"MPI_Errhandler_free"},"7646":{"probe_name":"mpi-rest","function_name":"MPI_Errhandler_create"},"7645":{"probe_name":"mpi-rest","function_name":"MPI_Dist_graph_neighbors_count"},"7644":{"probe_name":"mpi-rest","function_name":"MPI_Dist_graph_neighbors"},"7643":{"probe_name":"mpi-rest","function_name":"MPI_Dist_graph_create_adjacent"},"7642":{"probe_name":"mpi-rest","function_name":"MPI_Dist_graph_create"},"7641":{"probe_name":"mpi-rest","function_name":"MPI_Dims_create"},"7640":{"probe_name":"mpi-rest","function_name":"MPI_Compare_and_swap"},"7639":{"probe_name":"mpi-rest","function_name":"MPI_Comm_test_inter"},"7638":{"probe_name":"mpi-rest","function_name":"MPI_Comm_split_type"},"7637":{"probe_name":"mpi-rest","function_name":"MPI_Comm_split"},"7636":{"probe_name":"mpi-rest","function_name":"MPI_Comm_spawn_multiple"},"7635":{"probe_name":"mpi-rest","function_name":"MPI_Comm_spawn"},"7634":{"probe_name":"mpi-rest","function_name":"MPI_Comm_size"},"7633":{"probe_name":"mpi-rest","function_name":"MPI_Comm_set_name"},"7632":{"probe_name":"mpi-rest","function_name":"MPI_Comm_set_info"},"7631":{"probe_name":"mpi-rest","function_name":"MPI_Comm_set_errhandler"},"7630":{"probe_name":"mpi-rest","function_name":"MPI_Comm_set_attr"},"7629":{"probe_name":"mpi-rest","function_name":"MPI_Comm_remote_size"},"7628":{"probe_name":"mpi-rest","function_name":"MPI_Comm_remote_group"},"7627":{"probe_name":"mpi-rest","function_name":"MPI_Comm_rank"},"7626":{"probe_name":"mpi-rest","function_name":"MPI_Comm_join"},"7625":{"probe_name":"mpi-rest","function_name":"MPI_Comm_idup_with_info"},"7624":{"probe_name":"mpi-rest","function_name":"MPI_Comm_idup"},"7623":{"probe_name":"mpi-rest","function_name":"MPI_Comm_group"},"7622":{"probe_name":"mpi-rest","function_name":"MPI_Comm_get_parent"},"7621":{"probe_name":"mpi-rest","function_name":"MPI_Comm_get_name"},"7620":{"probe_name":"mpi-rest","function_name":"MPI_Comm_get_info"},"7619":{"probe_name":"mpi-rest","function_name":"MPI_Comm_get_errhandler"},"7618":{"probe_name":"mpi-rest","function_name":"MPI_Comm_get_attr"},"7617":{"probe_name":"mpi-rest","function_name":"MPI_Comm_free_keyval"},"7616":{"probe_name":"mpi-rest","function_name":"MPI_Comm_free"},"7615":{"probe_name":"mpi-rest","function_name":"MPI_Comm_dup_with_info"},"7614":{"probe_name":"mpi-rest","function_name":"MPI_Comm_dup"},"7613":{"probe_name":"mpi-rest","function_name":"MPI_Comm_disconnect"},"7612":{"probe_name":"mpi-rest","function_name":"MPI_Comm_delete_attr"},"7611":{"probe_name":"mpi-rest","function_name":"MPI_Comm_create_keyval"},"7610":{"probe_name":"mpi-rest","function_name":"MPI_Comm_create_group"},"7609":{"probe_name":"mpi-rest","function_name":"MPI_Comm_create_from_group"},"7608":{"probe_name":"mpi-rest","function_name":"MPI_Comm_create_errhandler"},"7607":{"probe_name":"mpi-rest","function_name":"MPI_Comm_create"},"7606":{"probe_name":"mpi-rest","function_name":"MPI_Comm_connect"},"7605":{"probe_name":"mpi-rest","function_name":"MPI_Comm_compare"},"7604":{"probe_name":"mpi-rest","function_name":"MPI_Comm_call_errhandler"},"7603":{"probe_name":"mpi-rest","function_name":"MPI_Comm_accept"},"7602":{"probe_name":"mpi-rest","function_name":"MPI_Close_port"},"7601":{"probe_name":"mpi-rest","function_name":"MPI_Cartdim_get"},"7600":{"probe_name":"mpi-rest","function_name":"MPI_Cart_sub"},"7599":{"probe_name":"mpi-rest","function_name":"MPI_Cart_shift"},"7598":{"probe_name":"mpi-rest","function_name":"MPI_Cart_rank"},"7597":{"probe_name":"mpi-rest","function_name":"MPI_Cart_map"},"7596":{"probe_name":"mpi-rest","function_name":"MPI_Cart_get"},"7595":{"probe_name":"mpi-rest","function_name":"MPI_Cart_create"},"7594":{"probe_name":"mpi-rest","function_name":"MPI_Cart_coords"},"7593":{"probe_name":"mpi-rest","function_name":"MPI_Cancel"},"7592":{"probe_name":"mpi-rest","function_name":"MPI_CRAY_get_version"},"7591":{"probe_name":"mpi-rest","function_name":"MPI_Buffer_detach_c"},"7590":{"probe_name":"mpi-rest","function_name":"MPI_Buffer_detach"},"7589":{"probe_name":"mpi-rest","function_name":"MPI_Buffer_attach_c"},"7588":{"probe_name":"mpi-rest","function_name":"MPI_Buffer_attach"},"7587":{"probe_name":"mpi-rest","function_name":"MPI_Bsend_init_c"},"7586":{"probe_name":"mpi-rest","function_name":"MPI_Bsend_init"},"7585":{"probe_name":"mpi-rest","function_name":"MPI_Bsend_c"},"7584":{"probe_name":"mpi-rest","function_name":"MPI_Bsend"},"7583":{"probe_name":"mpi-rest","function_name":"MPI_Bcast_init_c"},"7582":{"probe_name":"mpi-rest","function_name":"MPI_Bcast_init"},"7581":{"probe_name":"mpi-rest","function_name":"MPI_Bcast_c"},"7580":{"probe_name":"mpi-rest","function_name":"MPI_Bcast"},"7579":{"probe_name":"mpi-rest","function_name":"MPI_Barrier_init"},"7578":{"probe_name":"mpi-rest","function_name":"MPI_Barrier"},"7577":{"probe_name":"mpi-rest","function_name":"MPI_Attr_put"},"7576":{"probe_name":"mpi-rest","function_name":"MPI_Attr_get"},"7575":{"probe_name":"mpi-rest","function_name":"MPI_Attr_delete"},"7574":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallw_init_c"},"7573":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallw_init"},"7572":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallw_c"},"7571":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallw"},"7570":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallv_init_c"},"7569":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallv_init"},"7568":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallv_c"},"7567":{"probe_name":"mpi-rest","function_name":"MPI_Alltoallv"},"7566":{"probe_name":"mpi-rest","function_name":"MPI_Alltoall_init_c"},"7565":{"probe_name":"mpi-rest","function_name":"MPI_Alltoall_init"},"7564":{"probe_name":"mpi-rest","function_name":"MPI_Alltoall_c"},"7563":{"probe_name":"mpi-rest","function_name":"MPI_Alltoall"},"7562":{"probe_name":"mpi-rest","function_name":"MPI_Allreduce_init_c"},"7561":{"probe_name":"mpi-rest","function_name":"MPI_Allreduce_init"},"7560":{"probe_name":"mpi-rest","function_name":"MPI_Allreduce_c"},"7559":{"probe_name":"mpi-rest","function_name":"MPI_Allreduce"},"7558":{"probe_name":"mpi-rest","function_name":"MPI_Alloc_mem"},"7557":{"probe_name":"mpi-rest","function_name":"MPI_Allgatherv_init_c"},"7556":{"probe_name":"mpi-rest","function_name":"MPI_Allgatherv_init"},"7555":{"probe_name":"mpi-rest","function_name":"MPI_Allgatherv_c"},"7554":{"probe_name":"mpi-rest","function_name":"MPI_Allgatherv"},"7553":{"probe_name":"mpi-rest","function_name":"MPI_Allgather_init_c"},"7552":{"probe_name":"mpi-rest","function_name":"MPI_Allgather_init"},"7551":{"probe_name":"mpi-rest","function_name":"MPI_Allgather_c"},"7550":{"probe_name":"mpi-rest","function_name":"MPI_Allgather"},"7549":{"probe_name":"mpi-rest","function_name":"MPI_Aint_diff"},"7548":{"probe_name":"mpi-rest","function_name":"MPI_Aint_add"},"7547":{"probe_name":"mpi-rest","function_name":"MPI_Address"},"7546":{"probe_name":"mpi-rest","function_name":"MPI_Add_error_string"},"7545":{"probe_name":"mpi-rest","function_name":"MPI_Add_error_code"},"7544":{"probe_name":"mpi-rest","function_name":"MPI_Add_error_class"},"7543":{"probe_name":"mpi-rest","function_name":"MPI_Accumulate_c"},"7542":{"probe_name":"mpi-rest","function_name":"MPI_Accumulate"},"7541":{"probe_name":"mpi-rest","function_name":"MPI_Abort"},"7540":{"probe_name":"mpi-rest","function_name":"MPIX_Win_wait_stream"},"7539":{"probe_name":"mpi-rest","function_name":"MPIX_Win_progress_stream"},"7538":{"probe_name":"mpi-rest","function_name":"MPIX_Win_post_stream"},"7537":{"probe_name":"mpi-rest","function_name":"MPIX_Win_complete_stream"},"7536":{"probe_name":"mpi-rest","function_name":"MPIX_Type_iov_len"},"7535":{"probe_name":"mpi-rest","function_name":"MPIX_Type_iov"},"7534":{"probe_name":"mpi-rest","function_name":"MPIX_Query_ze_support"},"7533":{"probe_name":"mpi-rest","function_name":"MPIX_Query_hip_support"},"7532":{"probe_name":"mpi-rest","function_name":"MPIX_Query_cuda_support"},"7531":{"probe_name":"mpi-rest","function_name":"MPIX_KT_Get_dreq"},"7530":{"probe_name":"mpi-rest","function_name":"MPIX_Info_set_hex"},"7529":{"probe_name":"mpi-rest","function_name":"MPIX_Grequest_start"},"7528":{"probe_name":"mpi-rest","function_name":"MPIX_Grequest_class_create"},"7527":{"probe_name":"mpi-rest","function_name":"MPIX_Grequest_class_allocate"},"7526":{"probe_name":"mpi-rest","function_name":"MPIX_GPU_query_support"},"7525":{"probe_name":"mpi-rest","function_name":"MPIX_Free_queue"},"7524":{"probe_name":"mpi-rest","function_name":"MPIX_Enqueue_wait"},"7523":{"probe_name":"mpi-rest","function_name":"MPIX_Enqueue_start"},"7522":{"probe_name":"mpi-rest","function_name":"MPIX_Enqueue_send"},"7521":{"probe_name":"mpi-rest","function_name":"MPIX_Enqueue_recv"},"7520":{"probe_name":"mpi-rest","function_name":"MPIX_Delete_error_string"},"7519":{"probe_name":"mpi-rest","function_name":"MPIX_Delete_error_code"},"7518":{"probe_name":"mpi-rest","function_name":"MPIX_Delete_error_class"},"7517":{"probe_name":"mpi-rest","function_name":"MPIX_Create_queue"},"7516":{"probe_name":"mpi-rest","function_name":"MPIX_Comm_shrink"},"7515":{"probe_name":"mpi-rest","function_name":"MPIX_Comm_revoke"},"7514":{"probe_name":"mpi-rest","function_name":"MPIX_Comm_get_failed"},"7513":{"probe_name":"mpi-rest","function_name":"MPIX_Comm_failure_get_acked"},"7512":{"probe_name":"mpi-rest","function_name":"MPIX_Comm_failure_ack"},"7511":{"probe_name":"mpi-rest","function_name":"MPIX_Comm_agree"},"7510":{"probe_name":"mpi-rest","function_name":"MPIU_write_external32_conversion_fn"},"7509":{"probe_name":"mpi-rest","function_name":"MPIU_read_external32_conversion_fn"},"7508":{"probe_name":"mpi-rest","function_name":"MPIU_get_randomized_sendto_rank"},"7507":{"probe_name":"mpi-rest","function_name":"MPIU_external32_buffer_setup"},"7506":{"probe_name":"mpi-rest","function_name":"MPIU_datatype_full_size"},"7505":{"probe_name":"mpi-rest","function_name":"MPIU_cray_ReduceSummary"},"7504":{"probe_name":"mpi-rest","function_name":"MPIU_Thread_safety_str"},"7503":{"probe_name":"mpi-rest","function_name":"MPIU_Sort_inttable"},"7502":{"probe_name":"mpi-rest","function_name":"MPIU_MPIDI_CRAY_mem_dbg.isra.0"},"7501":{"probe_name":"mpi-rest","function_name":"MPIU_Greq_query_fn"},"7500":{"probe_name":"mpi-rest","function_name":"MPIU_Greq_free_fn"},"7499":{"probe_name":"mpi-rest","function_name":"MPIU_Greq_cancel_fn"},"7498":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_printf_init"},"7497":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_printf"},"7496":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_gettid"},"7495":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env_process_unsigned_long"},"7494":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env_process_long"},"7493":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env_process_int"},"7492":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env_process_bool"},"7491":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env2unsignedlong"},"7490":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env2long"},"7489":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env2int"},"7488":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env2crayboolean"},"7487":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_env"},"7486":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_cvar_process_unsigned_long"},"7485":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_cvar_process_long"},"7484":{"probe_name":"mpi-rest","function_name":"MPIU_Cray_cvar_process_int"},"7483":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_random_gen"},"7482":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_process_num_range.part.0"},"7481":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_process_num_range"},"7480":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_get_number"},"7479":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_get_num_numa_nodes"},"7478":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_get_my_rank_numa_node"},"7477":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_get_cpulist_for_numa_node"},"7476":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_get_cname"},"7475":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_free_world_group"},"7474":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_free_send_recv_list"},"7473":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_exchange_lrank_numas"},"7472":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_err_printf_wcname"},"7471":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_create_world_group"},"7470":{"probe_name":"mpi-rest","function_name":"MPIU_CRAY_Check_env_vars"},"7469":{"probe_name":"mpi-rest","function_name":"MPIR_stream_comm_init"},"7468":{"probe_name":"mpi-rest","function_name":"MPIR_stream_comm_free"},"7467":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_unpublish"},"7466":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_spawn_multiple"},"7465":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_set_threaded"},"7464":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_publish"},"7463":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_max_val_size"},"7462":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_max_key_size"},"7461":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_lookup"},"7460":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_kvs_put"},"7459":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_kvs_get"},"7458":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_job_id"},"7457":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_init"},"7456":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_has_local_cliques"},"7455":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_get_universe_size"},"7454":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_get_hwloc_xmlfile"},"7453":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_get_failed_procs"},"7452":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_finalize"},"7451":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_bcast"},"7450":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_barrier_local"},"7449":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_barrier"},"7448":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_allgather_shm"},"7447":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_allgather"},"7446":{"probe_name":"mpi-rest","function_name":"MPIR_pmi_abort"},"7445":{"probe_name":"mpi-rest","function_name":"MPIR_peer_intercomm_create"},"7444":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_tree_get_switches_at_level"},"7443":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_tree_get_node_levels"},"7442":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_tree_get_hostnode_index"},"7441":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_torus_get_node_index"},"7440":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_torus_get_geometry"},"7439":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_torus_get_dimension"},"7438":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_get_type"},"7437":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_get_num_nodes"},"7436":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_get_node_uid"},"7435":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_get_node_type"},"7434":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_get_endpoint"},"7433":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_get_edge_dest_node"},"7432":{"probe_name":"mpi-rest","function_name":"MPIR_nettopo_get_all_edges"},"7431":{"probe_name":"mpi-rest","function_name":"MPIR_init_comm_world"},"7430":{"probe_name":"mpi-rest","function_name":"MPIR_init_comm_self"},"7429":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_mem_bind"},"7428":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_is_initialized"},"7427":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_is_dev_close_by_pci"},"7426":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_is_dev_close_by_name"},"7425":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_type_id"},"7424":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_obj_by_type"},"7423":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_obj_by_name"},"7422":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_node_mem"},"7421":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_lid"},"7420":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_leaf"},"7419":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_dev_parent_by_pci"},"7418":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_depth"},"7417":{"probe_name":"mpi-rest","function_name":"MPIR_hwtopo_get_ancestor"},"7416":{"probe_name":"mpi-rest","function_name":"MPIR_gpu_reduce_get_op_and_type"},"7415":{"probe_name":"mpi-rest","function_name":"MPIR_gpu_post_init"},"7414":{"probe_name":"mpi-rest","function_name":"MPIR_gpu_memcpy_to_host"},"7413":{"probe_name":"mpi-rest","function_name":"MPIR_gpu_memcpy_to_device"},"7412":{"probe_name":"mpi-rest","function_name":"MPIR_gpu_memcpy_device_to_device"},"7411":{"probe_name":"mpi-rest","function_name":"MPIR_gpu_memcpy"},"7410":{"probe_name":"mpi-rest","function_name":"MPIR_gpu_can_use_reduce_kernel"},"7409":{"probe_name":"mpi-rest","function_name":"MPIR_get_local_gpu_stream"},"7408":{"probe_name":"mpi-rest","function_name":"MPIR_free_keyval.part.0"},"7407":{"probe_name":"mpi-rest","function_name":"MPIR_free_keyval"},"7406":{"probe_name":"mpi-rest","function_name":"MPIR_finalize_builtin_comms"},"7405":{"probe_name":"mpi-rest","function_name":"MPIR_allocate_enqueue_request.cold"},"7404":{"probe_name":"mpi-rest","function_name":"MPIR_allocate_enqueue_request"},"7403":{"probe_name":"mpi-rest","function_name":"MPIR_Win_shared_query_impl"},"7402":{"probe_name":"mpi-rest","function_name":"MPIR_Win_set_name_impl"},"7401":{"probe_name":"mpi-rest","function_name":"MPIR_Win_set_errhandler_impl"},"7400":{"probe_name":"mpi-rest","function_name":"MPIR_Win_set_attr_impl"},"7399":{"probe_name":"mpi-rest","function_name":"MPIR_Win_get_name_impl"},"7398":{"probe_name":"mpi-rest","function_name":"MPIR_Win_get_errhandler_impl"},"7397":{"probe_name":"mpi-rest","function_name":"MPIR_Win_get_attr_impl"},"7396":{"probe_name":"mpi-rest","function_name":"MPIR_Win_free_keyval_impl"},"7395":{"probe_name":"mpi-rest","function_name":"MPIR_Win_delete_attr_impl"},"7394":{"probe_name":"mpi-rest","function_name":"MPIR_Win_create_keyval_impl"},"7393":{"probe_name":"mpi-rest","function_name":"MPIR_Win_create_errhandler_impl"},"7392":{"probe_name":"mpi-rest","function_name":"MPIR_Win_call_errhandler_impl"},"7391":{"probe_name":"mpi-rest","function_name":"MPIR_Waitsome_state"},"7390":{"probe_name":"mpi-rest","function_name":"MPIR_Waitsome_impl"},"7389":{"probe_name":"mpi-rest","function_name":"MPIR_Waitsome"},"7388":{"probe_name":"mpi-rest","function_name":"MPIR_Waitany_state"},"7387":{"probe_name":"mpi-rest","function_name":"MPIR_Waitany_impl"},"7386":{"probe_name":"mpi-rest","function_name":"MPIR_Waitany"},"7385":{"probe_name":"mpi-rest","function_name":"MPIR_Waitall_state"},"7384":{"probe_name":"mpi-rest","function_name":"MPIR_Waitall_impl"},"7383":{"probe_name":"mpi-rest","function_name":"MPIR_Waitall_enqueue_impl.cold"},"7382":{"probe_name":"mpi-rest","function_name":"MPIR_Waitall_enqueue_impl"},"7381":{"probe_name":"mpi-rest","function_name":"MPIR_Waitall"},"7380":{"probe_name":"mpi-rest","function_name":"MPIR_Wait_state"},"7379":{"probe_name":"mpi-rest","function_name":"MPIR_Wait_impl"},"7378":{"probe_name":"mpi-rest","function_name":"MPIR_Wait_enqueue_impl"},"7377":{"probe_name":"mpi-rest","function_name":"MPIR_Wait"},"7376":{"probe_name":"mpi-rest","function_name":"MPIR_Unpublish_name_impl"},"7375":{"probe_name":"mpi-rest","function_name":"MPIR_Unpack_impl"},"7374":{"probe_name":"mpi-rest","function_name":"MPIR_Unpack_external_impl"},"7373":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_wait"},"7372":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_unpack_stream"},"7371":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_unpack_external"},"7370":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_unpack"},"7369":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_unflatten"},"7368":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_to_iov_offset.cold"},"7367":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_to_iov_offset"},"7366":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_to_iov"},"7365":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_size_external32"},"7364":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_reduce_is_supported"},"7363":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_reduce"},"7362":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_pack_stream"},"7361":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_pack_external"},"7360":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_pack"},"7359":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_op"},"7358":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_iunpack.part.0.cold"},"7357":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_iunpack.part.0"},"7356":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_iunpack"},"7355":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_ipack.part.0.cold"},"7354":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_ipack.part.0"},"7353":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_ipack"},"7352":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_iov_len.cold"},"7351":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_iov_len"},"7350":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_init"},"7349":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_icopy"},"7348":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_free"},"7347":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_flatten_size"},"7346":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_flatten"},"7345":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_finalize"},"7344":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_debug"},"7343":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_vector"},"7342":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_struct.cold"},"7341":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_struct"},"7340":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_resized.cold"},"7339":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_resized"},"7338":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_pairtype"},"7337":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_indexed_block"},"7336":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_indexed"},"7335":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_hvector"},"7334":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_hindexed_block"},"7333":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_hindexed"},"7332":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_dup.cold"},"7331":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_dup"},"7330":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_contig.cold"},"7329":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_create_contig"},"7328":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_copy"},"7327":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_commit.cold"},"7326":{"probe_name":"mpi-rest","function_name":"MPIR_Typerep_commit"},"7325":{"probe_name":"mpi-rest","function_name":"MPIR_Type_vector_large_impl"},"7324":{"probe_name":"mpi-rest","function_name":"MPIR_Type_vector_impl"},"7323":{"probe_name":"mpi-rest","function_name":"MPIR_Type_vector"},"7322":{"probe_name":"mpi-rest","function_name":"MPIR_Type_struct.cold"},"7321":{"probe_name":"mpi-rest","function_name":"MPIR_Type_struct"},"7320":{"probe_name":"mpi-rest","function_name":"MPIR_Type_size_x_impl.cold"},"7319":{"probe_name":"mpi-rest","function_name":"MPIR_Type_size_x_impl"},"7318":{"probe_name":"mpi-rest","function_name":"MPIR_Type_size_impl.cold"},"7317":{"probe_name":"mpi-rest","function_name":"MPIR_Type_size_impl"},"7316":{"probe_name":"mpi-rest","function_name":"MPIR_Type_set_name_impl"},"7315":{"probe_name":"mpi-rest","function_name":"MPIR_Type_set_attr_impl"},"7314":{"probe_name":"mpi-rest","function_name":"MPIR_Type_match_size_impl.cold"},"7313":{"probe_name":"mpi-rest","function_name":"MPIR_Type_match_size_impl"},"7312":{"probe_name":"mpi-rest","function_name":"MPIR_Type_is_rma_atomic"},"7311":{"probe_name":"mpi-rest","function_name":"MPIR_Type_indexed_large_impl"},"7310":{"probe_name":"mpi-rest","function_name":"MPIR_Type_indexed_impl"},"7309":{"probe_name":"mpi-rest","function_name":"MPIR_Type_indexed.part.0"},"7308":{"probe_name":"mpi-rest","function_name":"MPIR_Type_indexed"},"7307":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_true_extent_x_impl.cold"},"7306":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_true_extent_x_impl"},"7305":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_true_extent_impl"},"7304":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_name_impl"},"7303":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_extent_x_impl.cold"},"7302":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_extent_x_impl"},"7301":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_extent_impl"},"7300":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_envelope_large_impl"},"7299":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_envelope_impl"},"7298":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_envelope.cold"},"7297":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_envelope"},"7296":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_elements.cold"},"7295":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_elements"},"7294":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_contents_large_impl.cold"},"7293":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_contents_large_impl"},"7292":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_contents_impl.cold"},"7291":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_contents_impl"},"7290":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_basic_type_elements.part.0"},"7289":{"probe_name":"mpi-rest","function_name":"MPIR_Type_get_attr_impl"},"7288":{"probe_name":"mpi-rest","function_name":"MPIR_Type_free_keyval_impl"},"7287":{"probe_name":"mpi-rest","function_name":"MPIR_Type_free_impl.cold"},"7286":{"probe_name":"mpi-rest","function_name":"MPIR_Type_free_impl"},"7285":{"probe_name":"mpi-rest","function_name":"MPIR_Type_dup_impl.cold"},"7284":{"probe_name":"mpi-rest","function_name":"MPIR_Type_dup_impl"},"7283":{"probe_name":"mpi-rest","function_name":"MPIR_Type_dup"},"7282":{"probe_name":"mpi-rest","function_name":"MPIR_Type_delete_attr_impl"},"7281":{"probe_name":"mpi-rest","function_name":"MPIR_Type_cyclic.cold"},"7280":{"probe_name":"mpi-rest","function_name":"MPIR_Type_cyclic"},"7279":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_subarray_large_impl"},"7278":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_subarray_impl"},"7277":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_subarray.cold"},"7276":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_subarray"},"7275":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_struct_large_impl"},"7274":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_struct_impl"},"7273":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_resized_large_impl"},"7272":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_resized_impl"},"7271":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_resized"},"7270":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_pairtype"},"7269":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_keyval_impl"},"7268":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_indexed_block_large_impl"},"7267":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_indexed_block_impl"},"7266":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_hvector_large_impl"},"7265":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_hvector_impl"},"7264":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_hindexed_large_impl"},"7263":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_hindexed_impl"},"7262":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_hindexed_block_large_impl"},"7261":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_hindexed_block_impl"},"7260":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_darray_large_impl"},"7259":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_darray_impl"},"7258":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_darray.cold"},"7257":{"probe_name":"mpi-rest","function_name":"MPIR_Type_create_darray"},"7256":{"probe_name":"mpi-rest","function_name":"MPIR_Type_contiguous_x_impl"},"7255":{"probe_name":"mpi-rest","function_name":"MPIR_Type_contiguous_large_impl"},"7254":{"probe_name":"mpi-rest","function_name":"MPIR_Type_contiguous_impl"},"7253":{"probe_name":"mpi-rest","function_name":"MPIR_Type_contiguous"},"7252":{"probe_name":"mpi-rest","function_name":"MPIR_Type_commit_impl.cold"},"7251":{"probe_name":"mpi-rest","function_name":"MPIR_Type_commit_impl"},"7250":{"probe_name":"mpi-rest","function_name":"MPIR_Type_blockindexed"},"7249":{"probe_name":"mpi-rest","function_name":"MPIR_Type_block.cold"},"7248":{"probe_name":"mpi-rest","function_name":"MPIR_Type_block"},"7247":{"probe_name":"mpi-rest","function_name":"MPIR_Treealgo_tree_free"},"7246":{"probe_name":"mpi-rest","function_name":"MPIR_Treealgo_tree_create"},"7245":{"probe_name":"mpi-rest","function_name":"MPIR_Topology_put"},"7244":{"probe_name":"mpi-rest","function_name":"MPIR_Topology_get"},"7243":{"probe_name":"mpi-rest","function_name":"MPIR_Topology_finalize"},"7242":{"probe_name":"mpi-rest","function_name":"MPIR_Topology_delete_fn"},"7241":{"probe_name":"mpi-rest","function_name":"MPIR_Topology_copy_fn"},"7240":{"probe_name":"mpi-rest","function_name":"MPIR_Topo_test_impl"},"7239":{"probe_name":"mpi-rest","function_name":"MPIR_Topo_canon_nhb_count"},"7238":{"probe_name":"mpi-rest","function_name":"MPIR_Topo_canon_nhb"},"7237":{"probe_name":"mpi-rest","function_name":"MPIR_Testsome_state"},"7236":{"probe_name":"mpi-rest","function_name":"MPIR_Testsome_impl"},"7235":{"probe_name":"mpi-rest","function_name":"MPIR_Testsome"},"7234":{"probe_name":"mpi-rest","function_name":"MPIR_Testany_state"},"7233":{"probe_name":"mpi-rest","function_name":"MPIR_Testany_impl"},"7232":{"probe_name":"mpi-rest","function_name":"MPIR_Testany"},"7231":{"probe_name":"mpi-rest","function_name":"MPIR_Testall_state"},"7230":{"probe_name":"mpi-rest","function_name":"MPIR_Testall_impl"},"7229":{"probe_name":"mpi-rest","function_name":"MPIR_Testall"},"7228":{"probe_name":"mpi-rest","function_name":"MPIR_Test_state"},"7227":{"probe_name":"mpi-rest","function_name":"MPIR_Test_impl"},"7226":{"probe_name":"mpi-rest","function_name":"MPIR_Test_cancelled_impl"},"7225":{"probe_name":"mpi-rest","function_name":"MPIR_Test"},"7224":{"probe_name":"mpi-rest","function_name":"MPIR_T_strncpy"},"7223":{"probe_name":"mpi-rest","function_name":"MPIR_T_source_get_timestamp_impl"},"7222":{"probe_name":"mpi-rest","function_name":"MPIR_T_source_get_num_impl"},"7221":{"probe_name":"mpi-rest","function_name":"MPIR_T_source_get_info_impl"},"7220":{"probe_name":"mpi-rest","function_name":"MPIR_T_register_source"},"7219":{"probe_name":"mpi-rest","function_name":"MPIR_T_register_event"},"7218":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_write_impl"},"7217":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_stop_impl"},"7216":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_start_impl"},"7215":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_session_free_impl"},"7214":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_session_create_impl"},"7213":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_reset_impl"},"7212":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_readreset_impl"},"7211":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_read_impl"},"7210":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_handle_free_impl"},"7209":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_handle_alloc_impl.cold"},"7208":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_handle_alloc_impl"},"7207":{"probe_name":"mpi-rest","function_name":"MPIR_T_pvar_env_init"},"7206":{"probe_name":"mpi-rest","function_name":"MPIR_T_events_finalize"},"7205":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_set_dropped_handler_impl"},"7204":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_register_callback_impl"},"7203":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_read_impl"},"7202":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_instance"},"7201":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_handle_set_info_impl"},"7200":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_handle_get_info_impl"},"7199":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_handle_free_impl"},"7198":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_handle_alloc_impl"},"7197":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_get_timestamp_impl"},"7196":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_get_source_impl"},"7195":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_get_num_impl"},"7194":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_get_info_impl"},"7193":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_get_index_impl"},"7192":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_copy_impl"},"7191":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_callback_set_info_impl"},"7190":{"probe_name":"mpi-rest","function_name":"MPIR_T_event_callback_get_info_impl"},"7189":{"probe_name":"mpi-rest","function_name":"MPIR_T_env_init"},"7188":{"probe_name":"mpi-rest","function_name":"MPIR_T_env_finalize"},"7187":{"probe_name":"mpi-rest","function_name":"MPIR_T_enum_create"},"7186":{"probe_name":"mpi-rest","function_name":"MPIR_T_enum_add_item"},"7185":{"probe_name":"mpi-rest","function_name":"MPIR_T_cvar_write_impl"},"7184":{"probe_name":"mpi-rest","function_name":"MPIR_T_cvar_read_impl"},"7183":{"probe_name":"mpi-rest","function_name":"MPIR_T_cvar_init"},"7182":{"probe_name":"mpi-rest","function_name":"MPIR_T_cvar_handle_alloc_impl"},"7181":{"probe_name":"mpi-rest","function_name":"MPIR_T_cvar_finalize"},"7180":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_pvars_impl.cold"},"7179":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_pvars_impl"},"7178":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_num_events_impl"},"7177":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_events_impl.cold"},"7176":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_events_impl"},"7175":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_cvars_impl.cold"},"7174":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_cvars_impl"},"7173":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_categories_impl.cold"},"7172":{"probe_name":"mpi-rest","function_name":"MPIR_T_category_get_categories_impl"},"7171":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_create"},"7170":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_subcat.cold"},"7169":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_subcat"},"7168":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_pvar.cold"},"7167":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_pvar"},"7166":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_event.cold"},"7165":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_event"},"7164":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_desc.cold"},"7163":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_desc"},"7162":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_cvar.cold"},"7161":{"probe_name":"mpi-rest","function_name":"MPIR_T_cat_add_cvar"},"7160":{"probe_name":"mpi-rest","function_name":"MPIR_T_PVAR_REGISTER_impl.cold"},"7159":{"probe_name":"mpi-rest","function_name":"MPIR_T_PVAR_REGISTER_impl"},"7158":{"probe_name":"mpi-rest","function_name":"MPIR_T_CVAR_REGISTER_impl.cold"},"7157":{"probe_name":"mpi-rest","function_name":"MPIR_T_CVAR_REGISTER_impl"},"7156":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_sub_sched"},"7155":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_start"},"7154":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_sink"},"7153":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_selective_sink"},"7152":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_reset"},"7151":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_reduce_local.cold"},"7150":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_reduce_local"},"7149":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_new_type.cold"},"7148":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_new_type"},"7147":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_malloc"},"7146":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_localcopy.cold"},"7145":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_localcopy"},"7144":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_issend.cold"},"7143":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_issend"},"7142":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_isend.cold"},"7141":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_isend"},"7140":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_irecv_status.cold"},"7139":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_irecv_status"},"7138":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_irecv.cold"},"7137":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_irecv"},"7136":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_imcast.cold"},"7135":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_imcast"},"7134":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_generic"},"7133":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_free.cold"},"7132":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_free"},"7131":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_fence"},"7130":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_create"},"7129":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_sched_cb"},"7128":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iscatterv_sched_allcomm_linear.cold"},"7127":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iscatterv_sched_allcomm_linear"},"7126":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iscatter_sched_intra_tree.cold"},"7125":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iscatter_sched_intra_tree"},"7124":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iscan_sched_intra_recursive_doubling.cold"},"7123":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iscan_sched_intra_recursive_doubling"},"7122":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_sched_intra_tsp_auto"},"7121":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_sched_intra_tree.cold"},"7120":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_sched_intra_tree"},"7119":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_scatter_sched_intra_recexch_step2"},"7118":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_scatter_sched_intra_recexch.cold"},"7117":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_scatter_sched_intra_recexch"},"7116":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_scatter_block_sched_intra_recexch.cold"},"7115":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ireduce_scatter_block_sched_intra_recexch"},"7114":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_alltoallw_sched_allcomm_linear"},"7113":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_alltoallv_sched_allcomm_linear.cold"},"7112":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_alltoallv_sched_allcomm_linear"},"7111":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_alltoall_sched_allcomm_linear.cold"},"7110":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_alltoall_sched_allcomm_linear"},"7109":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_allgatherv_sched_allcomm_linear.cold"},"7108":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_allgatherv_sched_allcomm_linear"},"7107":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_allgather_sched_allcomm_linear.cold"},"7106":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ineighbor_allgather_sched_allcomm_linear"},"7105":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Igatherv_sched_allcomm_linear.cold"},"7104":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Igatherv_sched_allcomm_linear"},"7103":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Igather_sched_intra_tree.cold"},"7102":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Igather_sched_intra_tree"},"7101":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibcast_sched_intra_tsp_auto.cold"},"7100":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibcast_sched_intra_tsp_auto"},"7099":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibcast_sched_intra_tree"},"7098":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibcast_sched_intra_scatterv_ring_allgatherv"},"7097":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibcast_sched_intra_scatterv_allgatherv.cold"},"7096":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibcast_sched_intra_scatterv_allgatherv"},"7095":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibarrier_sched_intra_tsp_auto"},"7094":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibarrier_sched_intra_recexch"},"7093":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ibarrier_sched_intra_k_dissemination"},"7092":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallw_sched_intra_inplace.cold"},"7091":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallw_sched_intra_inplace"},"7090":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallw_sched_intra_blocked.cold"},"7089":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallw_sched_intra_blocked"},"7088":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallv_sched_intra_scattered.cold"},"7087":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallv_sched_intra_scattered"},"7086":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallv_sched_intra_inplace.cold"},"7085":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallv_sched_intra_inplace"},"7084":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallv_sched_intra_blocked.cold"},"7083":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoallv_sched_intra_blocked"},"7082":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoall_sched_intra_scattered.cold"},"7081":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoall_sched_intra_scattered"},"7080":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoall_sched_intra_ring.cold"},"7079":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoall_sched_intra_ring"},"7078":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoall_sched_intra_brucks.cold"},"7077":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Ialltoall_sched_intra_brucks"},"7076":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_tsp_auto"},"7075":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_tree.cold"},"7074":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_tree"},"7073":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_ring.cold"},"7072":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_ring"},"7071":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_recexch_step1"},"7070":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_recexch_reduce_scatter_recexch_allgatherv.cold"},"7069":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_recexch_reduce_scatter_recexch_allgatherv"},"7068":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_recexch.cold"},"7067":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallreduce_sched_intra_recexch"},"7066":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgatherv_sched_intra_ring.cold"},"7065":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgatherv_sched_intra_ring"},"7064":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgatherv_sched_intra_recexch_step2"},"7063":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgatherv_sched_intra_recexch.cold"},"7062":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgatherv_sched_intra_recexch"},"7061":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgatherv_sched_intra_brucks.cold"},"7060":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgatherv_sched_intra_brucks"},"7059":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgather_sched_intra_ring.cold"},"7058":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgather_sched_intra_ring"},"7057":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgather_sched_intra_recexch.cold"},"7056":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgather_sched_intra_recexch"},"7055":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgather_sched_intra_brucks.cold"},"7054":{"probe_name":"mpi-rest","function_name":"MPIR_TSP_Iallgather_sched_intra_brucks"},"7053":{"probe_name":"mpi-rest","function_name":"MPIR_Strerror"},"7052":{"probe_name":"mpi-rest","function_name":"MPIR_Stream_free_impl"},"7051":{"probe_name":"mpi-rest","function_name":"MPIR_Stream_create_impl"},"7050":{"probe_name":"mpi-rest","function_name":"MPIR_Stream_comm_create_multiplex_impl"},"7049":{"probe_name":"mpi-rest","function_name":"MPIR_Stream_comm_create_impl"},"7048":{"probe_name":"mpi-rest","function_name":"MPIR_Stop_progress_thread_impl"},"7047":{"probe_name":"mpi-rest","function_name":"MPIR_Status_set_elements_x_impl.cold"},"7046":{"probe_name":"mpi-rest","function_name":"MPIR_Status_set_elements_x_impl"},"7045":{"probe_name":"mpi-rest","function_name":"MPIR_Status_set_cancelled_impl"},"7044":{"probe_name":"mpi-rest","function_name":"MPIR_Status_set_bytes"},"7043":{"probe_name":"mpi-rest","function_name":"MPIR_Start_progress_thread_impl.cold"},"7042":{"probe_name":"mpi-rest","function_name":"MPIR_Start_progress_thread_impl"},"7041":{"probe_name":"mpi-rest","function_name":"MPIR_Session_set_errhandler_impl"},"7040":{"probe_name":"mpi-rest","function_name":"MPIR_Session_init_impl"},"7039":{"probe_name":"mpi-rest","function_name":"MPIR_Session_get_pset_info_impl"},"7038":{"probe_name":"mpi-rest","function_name":"MPIR_Session_get_num_psets_impl"},"7037":{"probe_name":"mpi-rest","function_name":"MPIR_Session_get_nth_pset_impl"},"7036":{"probe_name":"mpi-rest","function_name":"MPIR_Session_get_info_impl"},"7035":{"probe_name":"mpi-rest","function_name":"MPIR_Session_get_errhandler_impl"},"7034":{"probe_name":"mpi-rest","function_name":"MPIR_Session_finalize_impl"},"7033":{"probe_name":"mpi-rest","function_name":"MPIR_Session_create_errhandler_impl"},"7032":{"probe_name":"mpi-rest","function_name":"MPIR_Session_call_errhandler_impl"},"7031":{"probe_name":"mpi-rest","function_name":"MPIR_Sendrecv_replace_impl"},"7030":{"probe_name":"mpi-rest","function_name":"MPIR_Sendrecv_impl"},"7029":{"probe_name":"mpi-rest","function_name":"MPIR_Send_enqueue_impl"},"7028":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_unpack_external32"},"7027":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_unpack"},"7026":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_to_iov"},"7025":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_pack_external32"},"7024":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_pack"},"7023":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_free"},"7022":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_count_contig_blocks"},"7021":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_alloc.cold"},"7020":{"probe_name":"mpi-rest","function_name":"MPIR_Segment_alloc"},"7019":{"probe_name":"mpi-rest","function_name":"MPIR_Sched_free_counter"},"7018":{"probe_name":"mpi-rest","function_name":"MPIR_Sched_dt_and_op_allowed"},"7017":{"probe_name":"mpi-rest","function_name":"MPIR_Sched_cb_free_buf"},"7016":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv_init_impl"},"7015":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv_init"},"7014":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv_impl"},"7013":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv_allcomm_nb"},"7012":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv_allcomm_linear.cold"},"7011":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv_allcomm_linear"},"7010":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv_allcomm_auto"},"7009":{"probe_name":"mpi-rest","function_name":"MPIR_Scatterv"},"7008":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_intra_binomial.cold"},"7007":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_intra_binomial"},"7006":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_inter_remote_send_local_scatter.cold"},"7005":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_inter_remote_send_local_scatter"},"7004":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_inter_linear.cold"},"7003":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_inter_linear"},"7002":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_init_impl"},"7001":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_init"},"7000":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_impl"},"6999":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_allcomm_nb"},"6998":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter_allcomm_auto"},"6997":{"probe_name":"mpi-rest","function_name":"MPIR_Scatter"},"6996":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_intra_smp.cold"},"6995":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_intra_smp"},"6994":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_intra_recursive_doubling.cold"},"6993":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_intra_recursive_doubling"},"6992":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_init_impl"},"6991":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_init"},"6990":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_impl"},"6989":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_allcomm_nb"},"6988":{"probe_name":"mpi-rest","function_name":"MPIR_Scan_allcomm_auto"},"6987":{"probe_name":"mpi-rest","function_name":"MPIR_Scan.cold"},"6986":{"probe_name":"mpi-rest","function_name":"MPIR_Scan"},"6985":{"probe_name":"mpi-rest","function_name":"MPIR_SUM_check_dtype"},"6984":{"probe_name":"mpi-rest","function_name":"MPIR_SUM"},"6983":{"probe_name":"mpi-rest","function_name":"MPIR_Request_handle_proc_failed"},"6982":{"probe_name":"mpi-rest","function_name":"MPIR_Request_get_status_impl"},"6981":{"probe_name":"mpi-rest","function_name":"MPIR_Request_get_error"},"6980":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x6bb910"},"6979":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x562cb0"},"6978":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x543ae0"},"6977":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x52f800"},"6976":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x51d3e0"},"6975":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x5066d0"},"6974":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x457140"},"6973":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x1d2ff0"},"6972":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x1b6110"},"6971":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x1a9b20"},"6970":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x1a0040"},"6969":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety:0x18b320"},"6968":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x69e1d0"},"6967":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x68d0f0"},"6966":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x671000"},"6965":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x667af0"},"6964":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x664140"},"6963":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x65eae0"},"6962":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x64f220"},"6961":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x6450f0"},"6960":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x62fab0"},"6959":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x617970"},"6958":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x60d070"},"6957":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x5fba70"},"6956":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x5e9850"},"6955":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x5e1230"},"6954":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x5ca1d0"},"6953":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x5c4960"},"6952":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x547940"},"6951":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x4f6cc0"},"6950":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x4b7240"},"6949":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x4933d0"},"6948":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x47fe70"},"6947":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x41b280"},"6946":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x410c90"},"6945":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x375c80"},"6944":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x365c00"},"6943":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x355530"},"6942":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x347350"},"6941":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x3387b0"},"6940":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x325ea0"},"6939":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x317160"},"6938":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x306660"},"6937":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x2f6eb0"},"6936":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x2e7750"},"6935":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x2d7f30"},"6934":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x2c87e0"},"6933":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x2b6850"},"6932":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x2a8b90"},"6931":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x294d80"},"6930":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x28b3b0"},"6929":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x278590"},"6928":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x26dc00"},"6927":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x25a940"},"6926":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x251000"},"6925":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x240250"},"6924":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x22fc50"},"6923":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x21c730"},"6922":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x200c40"},"6921":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x1ea280"},"6920":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x1c8860"},"6919":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x191d30"},"6918":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x17cf00"},"6917":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x1695f0"},"6916":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x152a30"},"6915":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x1476d0"},"6914":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x140a80"},"6913":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x1331d0"},"6912":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x12c640"},"6911":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_with_safety.constprop.0:0x11ecd0"},"6910":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_impl.cold"},"6909":{"probe_name":"mpi-rest","function_name":"MPIR_Request_free_impl"},"6908":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x6bab30"},"6907":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x68c840"},"6906":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x66e9a0"},"6905":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x62efc0"},"6904":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x616e80"},"6903":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x5e0780"},"6902":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x5c96e0"},"6901":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x560b00"},"6900":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x51c920"},"6899":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x505ba0"},"6898":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x456490"},"6897":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x41a9d0"},"6896":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x364e40"},"6895":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x354770"},"6894":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x3253e0"},"6893":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x3166a0"},"6892":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x2b55f0"},"6891":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x200150"},"6890":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x1e9790"},"6889":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x1d2530"},"6888":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x1b5650"},"6887":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x19f890"},"6886":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x17c670"},"6885":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x168b30"},"6884":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x151f70"},"6883":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x1405e0"},"6882":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool:0x11e440"},"6881":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x69d950"},"6880":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x60c920"},"6879":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x60a1b0"},"6878":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x5c44d0"},"6877":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x5470c0"},"6876":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x52ed00"},"6875":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x4f6440"},"6874":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x4b69c0"},"6873":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x492b50"},"6872":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x375400"},"6871":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x346ad0"},"6870":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x337f30"},"6869":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x305ae0"},"6868":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x2f6330"},"6867":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x2e6bd0"},"6866":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x2d73b0"},"6865":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x2c7c60"},"6864":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x2a83f0"},"6863":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x294200"},"6862":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x28ac10"},"6861":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x277a10"},"6860":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x259dc0"},"6859":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x23f6d0"},"6858":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x22f0d0"},"6857":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x21bbb0"},"6856":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x1a84f0"},"6855":{"probe_name":"mpi-rest","function_name":"MPIR_Request_create_from_pool.constprop.0:0x146c90"},"6854":{"probe_name":"mpi-rest","function_name":"MPIR_Request_completion_processing.cold"},"6853":{"probe_name":"mpi-rest","function_name":"MPIR_Request_completion_processing"},"6852":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_intra_recursive_halving.cold"},"6851":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_intra_recursive_halving"},"6850":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_intra_recursive_doubling.cold"},"6849":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_intra_recursive_doubling"},"6848":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_intra_pairwise.cold"},"6847":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_intra_pairwise"},"6846":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_intra_noncommutative"},"6845":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_inter_remote_reduce_local_scatter.cold"},"6844":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_inter_remote_reduce_local_scatter"},"6843":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_init_impl"},"6842":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_init"},"6841":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_impl"},"6840":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_recursive_halving.cold"},"6839":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_recursive_halving"},"6838":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_recursive_doubling.cold"},"6837":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_recursive_doubling"},"6836":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_pairwise.cold"},"6835":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_pairwise"},"6834":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_noncommutative.cold"},"6833":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_intra_noncommutative"},"6832":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_inter_remote_reduce_local_scatter.cold"},"6831":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_inter_remote_reduce_local_scatter"},"6830":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_init_impl"},"6829":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_init"},"6828":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_impl"},"6827":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_allcomm_nb"},"6826":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block_allcomm_auto"},"6825":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_block"},"6824":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_allcomm_nb"},"6823":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter_allcomm_auto"},"6822":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_scatter"},"6821":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_local.cold"},"6820":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_local"},"6819":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_intra_smp.cold"},"6818":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_intra_smp"},"6817":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_intra_reduce_scatter_gather.cold"},"6816":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_intra_reduce_scatter_gather"},"6815":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_intra_binomial.cold"},"6814":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_intra_binomial"},"6813":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_inter_local_reduce_remote_send.cold"},"6812":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_inter_local_reduce_remote_send"},"6811":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_init_impl"},"6810":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_init"},"6809":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_impl"},"6808":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_allcomm_nb"},"6807":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce_allcomm_auto"},"6806":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce.cold"},"6805":{"probe_name":"mpi-rest","function_name":"MPIR_Reduce"},"6804":{"probe_name":"mpi-rest","function_name":"MPIR_Recv_enqueue_impl"},"6803":{"probe_name":"mpi-rest","function_name":"MPIR_ROMIO_Set_file_errhand"},"6802":{"probe_name":"mpi-rest","function_name":"MPIR_ROMIO_Get_file_errhand"},"6801":{"probe_name":"mpi-rest","function_name":"MPIR_REPLACE_check_dtype"},"6800":{"probe_name":"mpi-rest","function_name":"MPIR_REPLACE"},"6799":{"probe_name":"mpi-rest","function_name":"MPIR_Query_thread_impl"},"6798":{"probe_name":"mpi-rest","function_name":"MPIR_Publish_name_impl"},"6797":{"probe_name":"mpi-rest","function_name":"MPIR_Progress_hook_register"},"6796":{"probe_name":"mpi-rest","function_name":"MPIR_Progress_hook_exec_all"},"6795":{"probe_name":"mpi-rest","function_name":"MPIR_Progress_hook_deregister"},"6794":{"probe_name":"mpi-rest","function_name":"MPIR_Progress_hook_deactivate"},"6793":{"probe_name":"mpi-rest","function_name":"MPIR_Progress_hook_activate"},"6792":{"probe_name":"mpi-rest","function_name":"MPIR_Persist_coll_start"},"6791":{"probe_name":"mpi-rest","function_name":"MPIR_Persist_coll_free_cb.cold"},"6790":{"probe_name":"mpi-rest","function_name":"MPIR_Persist_coll_free_cb"},"6789":{"probe_name":"mpi-rest","function_name":"MPIR_Parrived"},"6788":{"probe_name":"mpi-rest","function_name":"MPIR_Pack_size_impl"},"6787":{"probe_name":"mpi-rest","function_name":"MPIR_Pack_size.cold"},"6786":{"probe_name":"mpi-rest","function_name":"MPIR_Pack_size"},"6785":{"probe_name":"mpi-rest","function_name":"MPIR_Pack_impl"},"6784":{"probe_name":"mpi-rest","function_name":"MPIR_Pack_external_size_impl"},"6783":{"probe_name":"mpi-rest","function_name":"MPIR_Pack_external_impl"},"6782":{"probe_name":"mpi-rest","function_name":"MPIR_PROD_check_dtype"},"6781":{"probe_name":"mpi-rest","function_name":"MPIR_PROD"},"6780":{"probe_name":"mpi-rest","function_name":"MPIR_Open_port_impl"},"6779":{"probe_name":"mpi-rest","function_name":"MPIR_Op_is_commutative.cold"},"6778":{"probe_name":"mpi-rest","function_name":"MPIR_Op_is_commutative"},"6777":{"probe_name":"mpi-rest","function_name":"MPIR_Op_get_alt_datatype"},"6776":{"probe_name":"mpi-rest","function_name":"MPIR_Op_free_impl"},"6775":{"probe_name":"mpi-rest","function_name":"MPIR_Op_create_large_impl"},"6774":{"probe_name":"mpi-rest","function_name":"MPIR_Op_create_impl"},"6773":{"probe_name":"mpi-rest","function_name":"MPIR_Op_commutative_impl"},"6772":{"probe_name":"mpi-rest","function_name":"MPIR_Op_builtin_search_by_shortname"},"6771":{"probe_name":"mpi-rest","function_name":"MPIR_Op_builtin_get_shortname"},"6770":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallw_init_impl"},"6769":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallw_init"},"6768":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallw_impl"},"6767":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallw_allcomm_nb"},"6766":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallw_allcomm_auto"},"6765":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallw"},"6764":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallv_init_impl"},"6763":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallv_init"},"6762":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallv_impl"},"6761":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallv_allcomm_nb"},"6760":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallv_allcomm_auto"},"6759":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoallv"},"6758":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoall_init_impl"},"6757":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoall_init"},"6756":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoall_impl"},"6755":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoall_allcomm_nb"},"6754":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoall_allcomm_auto"},"6753":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_alltoall"},"6752":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgatherv_init_impl"},"6751":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgatherv_init"},"6750":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgatherv_impl"},"6749":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgatherv_allcomm_nb"},"6748":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgatherv_allcomm_auto"},"6747":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgatherv"},"6746":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgather_init_impl"},"6745":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgather_init"},"6744":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgather_impl"},"6743":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgather_allcomm_nb"},"6742":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgather_allcomm_auto"},"6741":{"probe_name":"mpi-rest","function_name":"MPIR_Neighbor_allgather"},"6740":{"probe_name":"mpi-rest","function_name":"MPIR_NO_OP_check_dtype"},"6739":{"probe_name":"mpi-rest","function_name":"MPIR_NO_OP"},"6738":{"probe_name":"mpi-rest","function_name":"MPIR_Multi_threaded"},"6737":{"probe_name":"mpi-rest","function_name":"MPIR_MPIR_CVAR_GROUP_COLL_ALGO_from_str"},"6736":{"probe_name":"mpi-rest","function_name":"MPIR_MPIOInit"},"6735":{"probe_name":"mpi-rest","function_name":"MPIR_MINLOC_check_dtype"},"6734":{"probe_name":"mpi-rest","function_name":"MPIR_MINLOC"},"6733":{"probe_name":"mpi-rest","function_name":"MPIR_MINF_check_dtype"},"6732":{"probe_name":"mpi-rest","function_name":"MPIR_MINF"},"6731":{"probe_name":"mpi-rest","function_name":"MPIR_MAXLOC_check_dtype"},"6730":{"probe_name":"mpi-rest","function_name":"MPIR_MAXLOC"},"6729":{"probe_name":"mpi-rest","function_name":"MPIR_MAXF_check_dtype"},"6728":{"probe_name":"mpi-rest","function_name":"MPIR_MAXF"},"6727":{"probe_name":"mpi-rest","function_name":"MPIR_Lookup_name_impl"},"6726":{"probe_name":"mpi-rest","function_name":"MPIR_Localcopy_stream"},"6725":{"probe_name":"mpi-rest","function_name":"MPIR_Localcopy"},"6724":{"probe_name":"mpi-rest","function_name":"MPIR_LXOR_check_dtype"},"6723":{"probe_name":"mpi-rest","function_name":"MPIR_LXOR"},"6722":{"probe_name":"mpi-rest","function_name":"MPIR_LOR_check_dtype"},"6721":{"probe_name":"mpi-rest","function_name":"MPIR_LOR"},"6720":{"probe_name":"mpi-rest","function_name":"MPIR_LAND_check_dtype"},"6719":{"probe_name":"mpi-rest","function_name":"MPIR_LAND"},"6718":{"probe_name":"mpi-rest","function_name":"MPIR_Isendrecv_replace_impl"},"6717":{"probe_name":"mpi-rest","function_name":"MPIR_Isendrecv_impl"},"6716":{"probe_name":"mpi-rest","function_name":"MPIR_Isend_enqueue_impl"},"6715":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv_sched_impl"},"6714":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv_intra_sched_auto"},"6713":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv_inter_sched_auto"},"6712":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv_impl"},"6711":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv_allcomm_sched_linear.cold"},"6710":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv_allcomm_sched_linear"},"6709":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv_allcomm_sched_auto"},"6708":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatterv"},"6707":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_sched_impl"},"6706":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_intra_sched_binomial.cold"},"6705":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_intra_sched_binomial"},"6704":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_intra_sched_auto"},"6703":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_intra_cxi_trgrd.cold"},"6702":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_intra_cxi_trgrd"},"6701":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_inter_sched_remote_send_local_scatter.cold"},"6700":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_inter_sched_remote_send_local_scatter"},"6699":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_inter_sched_linear.cold"},"6698":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_inter_sched_linear"},"6697":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_inter_sched_auto.cold"},"6696":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_inter_sched_auto"},"6695":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_impl"},"6694":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter_allcomm_sched_auto"},"6693":{"probe_name":"mpi-rest","function_name":"MPIR_Iscatter"},"6692":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_sched_impl"},"6691":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_intra_sched_smp.cold"},"6690":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_intra_sched_smp"},"6689":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_intra_sched_recursive_doubling.cold"},"6688":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_intra_sched_recursive_doubling"},"6687":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_intra_sched_auto"},"6686":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_impl"},"6685":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan_allcomm_sched_auto"},"6684":{"probe_name":"mpi-rest","function_name":"MPIR_Iscan"},"6683":{"probe_name":"mpi-rest","function_name":"MPIR_Is_thread_main_impl"},"6682":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_sched_impl"},"6681":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_sched_impl"},"6680":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_recursive_halving.cold"},"6679":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_recursive_halving"},"6678":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_recursive_doubling.cold"},"6677":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_recursive_doubling"},"6676":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_pairwise.cold"},"6675":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_pairwise"},"6674":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_noncommutative"},"6673":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_auto.cold"},"6672":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_intra_sched_auto"},"6671":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_inter_sched_remote_reduce_local_scatterv.cold"},"6670":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_inter_sched_remote_reduce_local_scatterv"},"6669":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_inter_sched_auto"},"6668":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_impl"},"6667":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_sched_impl"},"6666":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_recursive_halving.cold"},"6665":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_recursive_halving"},"6664":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_recursive_doubling.cold"},"6663":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_recursive_doubling"},"6662":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_pairwise.cold"},"6661":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_pairwise"},"6660":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_noncommutative"},"6659":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_auto.cold"},"6658":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_intra_sched_auto"},"6657":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_inter_sched_remote_reduce_local_scatterv.cold"},"6656":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_inter_sched_remote_reduce_local_scatterv"},"6655":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_inter_sched_auto"},"6654":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_impl"},"6653":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block_allcomm_sched_auto"},"6652":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_block"},"6651":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter_allcomm_sched_auto"},"6650":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_scatter"},"6649":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_smp.cold"},"6648":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_smp"},"6647":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_reduce_scatter_gather.cold"},"6646":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_reduce_scatter_gather"},"6645":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_binomial.cold"},"6644":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_binomial"},"6643":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_auto.cold"},"6642":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_sched_auto"},"6641":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_intra_cxi_trgrd"},"6640":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_inter_sched_local_reduce_remote_send.cold"},"6639":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_inter_sched_local_reduce_remote_send"},"6638":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_inter_sched_auto"},"6637":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_impl"},"6636":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce_allcomm_sched_auto"},"6635":{"probe_name":"mpi-rest","function_name":"MPIR_Ireduce"},"6634":{"probe_name":"mpi-rest","function_name":"MPIR_Irecv_enqueue_impl"},"6633":{"probe_name":"mpi-rest","function_name":"MPIR_Intercomm_merge_impl"},"6632":{"probe_name":"mpi-rest","function_name":"MPIR_Intercomm_create_impl"},"6631":{"probe_name":"mpi-rest","function_name":"MPIR_Intercomm_create_from_groups_impl"},"6630":{"probe_name":"mpi-rest","function_name":"MPIR_Initialized_impl"},"6629":{"probe_name":"mpi-rest","function_name":"MPIR_Init_thread_impl"},"6628":{"probe_name":"mpi-rest","function_name":"MPIR_Init_impl"},"6627":{"probe_name":"mpi-rest","function_name":"MPIR_Init_err_dyncodes"},"6626":{"probe_name":"mpi-rest","function_name":"MPIR_Info_setup_env"},"6625":{"probe_name":"mpi-rest","function_name":"MPIR_Info_set_impl"},"6624":{"probe_name":"mpi-rest","function_name":"MPIR_Info_set_hex_impl"},"6623":{"probe_name":"mpi-rest","function_name":"MPIR_Info_push"},"6622":{"probe_name":"mpi-rest","function_name":"MPIR_Info_lookup"},"6621":{"probe_name":"mpi-rest","function_name":"MPIR_Info_handle_obj_free"},"6620":{"probe_name":"mpi-rest","function_name":"MPIR_Info_handle_obj_alloc"},"6619":{"probe_name":"mpi-rest","function_name":"MPIR_Info_get_valuelen_impl"},"6618":{"probe_name":"mpi-rest","function_name":"MPIR_Info_get_string_impl"},"6617":{"probe_name":"mpi-rest","function_name":"MPIR_Info_get_nthkey_impl"},"6616":{"probe_name":"mpi-rest","function_name":"MPIR_Info_get_nkeys_impl"},"6615":{"probe_name":"mpi-rest","function_name":"MPIR_Info_get_impl"},"6614":{"probe_name":"mpi-rest","function_name":"MPIR_Info_free_impl"},"6613":{"probe_name":"mpi-rest","function_name":"MPIR_Info_dup_impl"},"6612":{"probe_name":"mpi-rest","function_name":"MPIR_Info_delete_impl"},"6611":{"probe_name":"mpi-rest","function_name":"MPIR_Info_decode_hex"},"6610":{"probe_name":"mpi-rest","function_name":"MPIR_Info_create_env_impl"},"6609":{"probe_name":"mpi-rest","function_name":"MPIR_Info_alloc"},"6608":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallw_sched_impl"},"6607":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallw_intra_sched_auto"},"6606":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallw_impl"},"6605":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallw_allcomm_sched_linear"},"6604":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallw_allcomm_sched_auto"},"6603":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallw"},"6602":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallv_sched_impl"},"6601":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallv_intra_sched_auto"},"6600":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallv_impl"},"6599":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallv_allcomm_sched_linear.cold"},"6598":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallv_allcomm_sched_linear"},"6597":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallv_allcomm_sched_auto"},"6596":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoallv"},"6595":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoall_sched_impl"},"6594":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoall_intra_sched_auto"},"6593":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoall_impl"},"6592":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoall_allcomm_sched_linear.cold"},"6591":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoall_allcomm_sched_linear"},"6590":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoall_allcomm_sched_auto"},"6589":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_alltoall"},"6588":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgatherv_sched_impl"},"6587":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgatherv_intra_sched_auto"},"6586":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgatherv_impl"},"6585":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgatherv_allcomm_sched_linear.cold"},"6584":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgatherv_allcomm_sched_linear"},"6583":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgatherv_allcomm_sched_auto"},"6582":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgatherv"},"6581":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgather_sched_impl"},"6580":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgather_intra_sched_auto"},"6579":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgather_impl"},"6578":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgather_allcomm_sched_linear.cold"},"6577":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgather_allcomm_sched_linear"},"6576":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgather_allcomm_sched_auto"},"6575":{"probe_name":"mpi-rest","function_name":"MPIR_Ineighbor_allgather"},"6574":{"probe_name":"mpi-rest","function_name":"MPIR_Ilocalcopy"},"6573":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv_sched_impl"},"6572":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv_intra_sched_auto"},"6571":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv_inter_sched_auto"},"6570":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv_impl"},"6569":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv_allcomm_sched_linear.cold"},"6568":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv_allcomm_sched_linear"},"6567":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv_allcomm_sched_auto"},"6566":{"probe_name":"mpi-rest","function_name":"MPIR_Igatherv"},"6565":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_sched_impl"},"6564":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_intra_sched_binomial.cold"},"6563":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_intra_sched_binomial"},"6562":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_intra_sched_auto"},"6561":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_intra_cxi_trgrd.cold"},"6560":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_intra_cxi_trgrd"},"6559":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_inter_sched_short.cold"},"6558":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_inter_sched_short"},"6557":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_inter_sched_long.cold"},"6556":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_inter_sched_long"},"6555":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_inter_sched_auto.cold"},"6554":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_inter_sched_auto"},"6553":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_impl"},"6552":{"probe_name":"mpi-rest","function_name":"MPIR_Igather_allcomm_sched_auto"},"6551":{"probe_name":"mpi-rest","function_name":"MPIR_Igather"},"6550":{"probe_name":"mpi-rest","function_name":"MPIR_Iexscan_sched_impl"},"6549":{"probe_name":"mpi-rest","function_name":"MPIR_Iexscan_intra_sched_recursive_doubling.cold"},"6548":{"probe_name":"mpi-rest","function_name":"MPIR_Iexscan_intra_sched_recursive_doubling"},"6547":{"probe_name":"mpi-rest","function_name":"MPIR_Iexscan_intra_sched_auto"},"6546":{"probe_name":"mpi-rest","function_name":"MPIR_Iexscan_impl"},"6545":{"probe_name":"mpi-rest","function_name":"MPIR_Iexscan_allcomm_sched_auto"},"6544":{"probe_name":"mpi-rest","function_name":"MPIR_Iexscan"},"6543":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_sched_impl"},"6542":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_sched_smp.cold"},"6541":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_sched_smp"},"6540":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_sched_scatter_ring_allgather"},"6539":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_sched_scatter_recursive_doubling_allgather"},"6538":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_sched_binomial"},"6537":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_sched_auto.cold"},"6536":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_sched_auto"},"6535":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_cxi_trgrd.cold"},"6534":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_intra_cxi_trgrd"},"6533":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_inter_sched_flat"},"6532":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_inter_sched_auto"},"6531":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_impl"},"6530":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast_allcomm_sched_auto"},"6529":{"probe_name":"mpi-rest","function_name":"MPIR_Ibcast"},"6528":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier_sched_impl"},"6527":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier_intra_sched_recursive_doubling"},"6526":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier_intra_sched_auto"},"6525":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier_inter_sched_bcast"},"6524":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier_inter_sched_auto"},"6523":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier_impl"},"6522":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier_allcomm_sched_auto"},"6521":{"probe_name":"mpi-rest","function_name":"MPIR_Ibarrier"},"6520":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_sched_impl"},"6519":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_intra_sched_inplace.cold"},"6518":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_intra_sched_inplace"},"6517":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_intra_sched_blocked.cold"},"6516":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_intra_sched_blocked"},"6515":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_intra_sched_auto"},"6514":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_inter_sched_pairwise_exchange"},"6513":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_inter_sched_auto"},"6512":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_impl"},"6511":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw_allcomm_sched_auto"},"6510":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallw"},"6509":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_sched_impl"},"6508":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_intra_sched_inplace.cold"},"6507":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_intra_sched_inplace"},"6506":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_intra_sched_blocked.cold"},"6505":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_intra_sched_blocked"},"6504":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_intra_sched_auto"},"6503":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_inter_sched_pairwise_exchange.cold"},"6502":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_inter_sched_pairwise_exchange"},"6501":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_inter_sched_auto"},"6500":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_impl"},"6499":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv_allcomm_sched_auto"},"6498":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoallv"},"6497":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_sched_impl"},"6496":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_permuted_sendrecv.cold"},"6495":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_permuted_sendrecv"},"6494":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_pairwise.cold"},"6493":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_pairwise"},"6492":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_inplace"},"6491":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_brucks.cold"},"6490":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_brucks"},"6489":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_auto.cold"},"6488":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_intra_sched_auto"},"6487":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_inter_sched_pairwise_exchange.cold"},"6486":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_inter_sched_pairwise_exchange"},"6485":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_inter_sched_auto"},"6484":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_impl"},"6483":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall_allcomm_sched_auto"},"6482":{"probe_name":"mpi-rest","function_name":"MPIR_Ialltoall"},"6481":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_sched_impl"},"6480":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_smp"},"6479":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_reduce_scatter_allgather.cold"},"6478":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_reduce_scatter_allgather"},"6477":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_recursive_doubling.cold"},"6476":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_recursive_doubling"},"6475":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_naive"},"6474":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_auto.cold"},"6473":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_sched_auto"},"6472":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_cxi_trgrd.cold"},"6471":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_intra_cxi_trgrd"},"6470":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_inter_sched_remote_reduce_local_bcast"},"6469":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_inter_sched_auto"},"6468":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_impl"},"6467":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce_allcomm_sched_auto"},"6466":{"probe_name":"mpi-rest","function_name":"MPIR_Iallreduce"},"6465":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_sched_impl"},"6464":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_throttled.cold"},"6463":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_throttled"},"6462":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_sched_ring.cold"},"6461":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_sched_ring"},"6460":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_sched_recursive_doubling"},"6459":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_sched_brucks.cold"},"6458":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_sched_brucks"},"6457":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_sched_auto.cold"},"6456":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_intra_sched_auto"},"6455":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_inter_sched_remote_gather_local_bcast"},"6454":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_inter_sched_auto"},"6453":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_impl"},"6452":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv_allcomm_sched_auto"},"6451":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgatherv"},"6450":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_sched_impl"},"6449":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_ring.cold"},"6448":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_ring"},"6447":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_recursive_doubling.cold"},"6446":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_recursive_doubling"},"6445":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_brucks.cold"},"6444":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_brucks"},"6443":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_auto.cold"},"6442":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_intra_sched_auto"},"6441":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_inter_sched_local_gather_remote_bcast.cold"},"6440":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_inter_sched_local_gather_remote_bcast"},"6439":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_inter_sched_auto"},"6438":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_impl"},"6437":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather_allcomm_sched_auto"},"6436":{"probe_name":"mpi-rest","function_name":"MPIR_Iallgather"},"6435":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_obj_alloc_unsafe.constprop.0:0x5e8f60"},"6434":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_obj_alloc_unsafe.constprop.0:0x477a80"},"6433":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_indirect_init.constprop.0:0x5f9d40"},"6432":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_indirect_init.constprop.0:0x542d40"},"6431":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_indirect_init.constprop.0:0x4e90b0"},"6430":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_indirect_init.constprop.0:0x4de510"},"6429":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_indirect_init.constprop.0:0x4db6d0"},"6428":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_indirect_init.constprop.0:0x38f440"},"6427":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xc8b50"},"6426":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xc6740"},"6425":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xc44b0"},"6424":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xc2420"},"6423":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xc04e0"},"6422":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xbe900"},"6421":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xbc840"},"6420":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xba900"},"6419":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xb8cb0"},"6418":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xb6ed0"},"6417":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xb3d80"},"6416":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xb1fa0"},"6415":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xab410"},"6414":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xa9600"},"6413":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xa7810"},"6412":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xa3c60"},"6411":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0xa0230"},"6410":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x9c5a0"},"6409":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x9a600"},"6408":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x98b40"},"6407":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x97000"},"6406":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x95320"},"6405":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x936b0"},"6404":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x8f5e0"},"6403":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x8dc10"},"6402":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x8a4f0"},"6401":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x88290"},"6400":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x863c0"},"6399":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x84900"},"6398":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x834e0"},"6397":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x7b310"},"6396":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x79020"},"6395":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x771e0"},"6394":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x74b70"},"6393":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x72780"},"6392":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x704a0"},"6391":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x6e4c0"},"6390":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x6c580"},"6389":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x6b97a0"},"6388":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x6a9a0"},"6387":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x69170"},"6386":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x67c20"},"6385":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x5b770"},"6384":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x57b10"},"6383":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x55ee0"},"6382":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x53970"},"6381":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x51560"},"6380":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x4f460"},"6379":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x4d550"},"6378":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x4b5a80"},"6377":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x491c70"},"6376":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x455490"},"6375":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x374520"},"6374":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x363f00"},"6373":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x353830"},"6372":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x345bf0"},"6371":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x337050"},"6370":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x324500"},"6369":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x3157c0"},"6368":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x304ba0"},"6367":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x2f53f0"},"6366":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x2e5c90"},"6365":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x2d6470"},"6364":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x2c6d20"},"6363":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x2b46b0"},"6362":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x293290"},"6361":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x276aa0"},"6360":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x258e80"},"6359":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x23e760"},"6358":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x22e1c0"},"6357":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x21ac70"},"6356":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x1d1590"},"6355":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x1ce3c0"},"6354":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x1b46b0"},"6353":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x190340"},"6352":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x17b570"},"6351":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x167c20"},"6350":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x164990"},"6349":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x151060"},"6348":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x1317e0"},"6347":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x11d340"},"6346":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x117160"},"6345":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect:0x116490"},"6344":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x69d660"},"6343":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x68c550"},"6342":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x66e6b0"},"6341":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x62ecd0"},"6340":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x616b00"},"6339":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x5f9a50"},"6338":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x5c93f0"},"6337":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x560810"},"6336":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x546dd0"},"6335":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x52ea10"},"6334":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x51c630"},"6333":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x5058b0"},"6332":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x4f6150"},"6331":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x4a4710"},"6330":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x477790"},"6329":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x41a6e0"},"6328":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x1ffe60"},"6327":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_ptr_indirect.constprop.0:0x1e94a0"},"6326":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_get_kind_str"},"6325":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x6bb660"},"6324":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x6b3cb0"},"6323":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x69dfe0"},"6322":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x68cf00"},"6321":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x66f650"},"6320":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x664030"},"6319":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x65e3b0"},"6318":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x656650"},"6317":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x62f9a0"},"6316":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x617860"},"6315":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x612d50"},"6314":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x60cf60"},"6313":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x60aa20"},"6312":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x5fa530"},"6311":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x5e9740"},"6310":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x5e0e20"},"6309":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x5c9ec0"},"6308":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x5c4c00"},"6307":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x5b91e0"},"6306":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x577680"},"6305":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x561590"},"6304":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x55e100"},"6303":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x547750"},"6302":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x542ec0"},"6301":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x52f390"},"6300":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x51cfe0"},"6299":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x5065c0"},"6298":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4f6ad0"},"6297":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4f3720"},"6296":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4f1050"},"6295":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4e9cb0"},"6294":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4e9250"},"6293":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4de6b0"},"6292":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4db8a0"},"6291":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4b7050"},"6290":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4b3290"},"6289":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4af4c0"},"6288":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4ac2a0"},"6287":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4932c0"},"6286":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x478390"},"6285":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x457030"},"6284":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x43ee0"},"6283":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x42ce0"},"6282":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x41b170"},"6281":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x412780"},"6280":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x4004b0"},"6279":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x390a50"},"6278":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x38f5e0"},"6277":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x375a90"},"6276":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x365af0"},"6275":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x355420"},"6274":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x347160"},"6273":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x3385c0"},"6272":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x333450"},"6271":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x325aa0"},"6270":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x316d60"},"6269":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x306470"},"6268":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x2f6cc0"},"6267":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x2e7560"},"6266":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x2d7d40"},"6265":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x2c85f0"},"6264":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x2b62a0"},"6263":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x2a8880"},"6262":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x294b90"},"6261":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x28b0a0"},"6260":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x2783a0"},"6259":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x26d8f0"},"6258":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x25a750"},"6257":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x250cf0"},"6256":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x240060"},"6255":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x22fa60"},"6254":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x21c540"},"6253":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x200b30"},"6252":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1ea170"},"6251":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1e5020"},"6250":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1d2bf0"},"6249":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1c8750"},"6248":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1b5d10"},"6247":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1b2950"},"6246":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1a8980"},"6245":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1a5cd0"},"6244":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x19ff30"},"6243":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x191b40"},"6242":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x18b210"},"6241":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x17cd10"},"6240":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1691f0"},"6239":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x152630"},"6238":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x147120"},"6237":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1410a0"},"6236":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x132fe0"},"6235":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x12cae0"},"6234":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x11eae0"},"6233":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x119220"},"6232":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x1118a0"},"6231":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x10c4e0"},"6230":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_finalize:0x107260"},"6229":{"probe_name":"mpi-rest","function_name":"MPIR_Handle_fatal_error"},"6228":{"probe_name":"mpi-rest","function_name":"MPIR_Group_union_impl"},"6227":{"probe_name":"mpi-rest","function_name":"MPIR_Group_translate_ranks_impl"},"6226":{"probe_name":"mpi-rest","function_name":"MPIR_Group_size_impl"},"6225":{"probe_name":"mpi-rest","function_name":"MPIR_Group_setup_lpid_pairs"},"6224":{"probe_name":"mpi-rest","function_name":"MPIR_Group_release"},"6223":{"probe_name":"mpi-rest","function_name":"MPIR_Group_rank_impl"},"6222":{"probe_name":"mpi-rest","function_name":"MPIR_Group_range_incl_impl"},"6221":{"probe_name":"mpi-rest","function_name":"MPIR_Group_range_excl_impl"},"6220":{"probe_name":"mpi-rest","function_name":"MPIR_Group_intersection_impl"},"6219":{"probe_name":"mpi-rest","function_name":"MPIR_Group_init"},"6218":{"probe_name":"mpi-rest","function_name":"MPIR_Group_incl_impl"},"6217":{"probe_name":"mpi-rest","function_name":"MPIR_Group_from_session_pset_impl"},"6216":{"probe_name":"mpi-rest","function_name":"MPIR_Group_free_impl"},"6215":{"probe_name":"mpi-rest","function_name":"MPIR_Group_excl_impl"},"6214":{"probe_name":"mpi-rest","function_name":"MPIR_Group_difference_impl"},"6213":{"probe_name":"mpi-rest","function_name":"MPIR_Group_create"},"6212":{"probe_name":"mpi-rest","function_name":"MPIR_Group_compare_impl"},"6211":{"probe_name":"mpi-rest","function_name":"MPIR_Group_check_valid_ranks"},"6210":{"probe_name":"mpi-rest","function_name":"MPIR_Group_check_valid_ranges"},"6209":{"probe_name":"mpi-rest","function_name":"MPIR_Group_check_subset"},"6208":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_start_impl"},"6207":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_query"},"6206":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_poll"},"6205":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_free_classes_on_finalize"},"6204":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_free"},"6203":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_complete_impl"},"6202":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_class_create_impl"},"6201":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_class_allocate_impl.cold"},"6200":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_class_allocate_impl"},"6199":{"probe_name":"mpi-rest","function_name":"MPIR_Grequest_cancel"},"6198":{"probe_name":"mpi-rest","function_name":"MPIR_Graphdims_get_impl"},"6197":{"probe_name":"mpi-rest","function_name":"MPIR_Graph_optimized"},"6196":{"probe_name":"mpi-rest","function_name":"MPIR_Graph_neighbors_impl"},"6195":{"probe_name":"mpi-rest","function_name":"MPIR_Graph_neighbors_count_impl"},"6194":{"probe_name":"mpi-rest","function_name":"MPIR_Graph_map_impl"},"6193":{"probe_name":"mpi-rest","function_name":"MPIR_Graph_get_impl"},"6192":{"probe_name":"mpi-rest","function_name":"MPIR_Graph_create_impl"},"6191":{"probe_name":"mpi-rest","function_name":"MPIR_Get_version_impl"},"6190":{"probe_name":"mpi-rest","function_name":"MPIR_Get_node_id"},"6189":{"probe_name":"mpi-rest","function_name":"MPIR_Get_library_version_impl"},"6188":{"probe_name":"mpi-rest","function_name":"MPIR_Get_intranode_rank.cold"},"6187":{"probe_name":"mpi-rest","function_name":"MPIR_Get_intranode_rank"},"6186":{"probe_name":"mpi-rest","function_name":"MPIR_Get_internode_rank.cold"},"6185":{"probe_name":"mpi-rest","function_name":"MPIR_Get_internode_rank"},"6184":{"probe_name":"mpi-rest","function_name":"MPIR_Get_intercomm_contextid_nonblock"},"6183":{"probe_name":"mpi-rest","function_name":"MPIR_Get_intercomm_contextid"},"6182":{"probe_name":"mpi-rest","function_name":"MPIR_Get_file_error_routine"},"6181":{"probe_name":"mpi-rest","function_name":"MPIR_Get_elements_x_impl.cold"},"6180":{"probe_name":"mpi-rest","function_name":"MPIR_Get_elements_x_impl"},"6179":{"probe_name":"mpi-rest","function_name":"MPIR_Get_count_impl.cold"},"6178":{"probe_name":"mpi-rest","function_name":"MPIR_Get_count_impl"},"6177":{"probe_name":"mpi-rest","function_name":"MPIR_Get_contextid_sparse_group"},"6176":{"probe_name":"mpi-rest","function_name":"MPIR_Get_contextid_sparse"},"6175":{"probe_name":"mpi-rest","function_name":"MPIR_Get_contextid_nonblock"},"6174":{"probe_name":"mpi-rest","function_name":"MPIR_Get_address_impl"},"6173":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv_init_impl"},"6172":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv_init"},"6171":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv_impl"},"6170":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv_allcomm_nb"},"6169":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv_allcomm_linear.cold"},"6168":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv_allcomm_linear"},"6167":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv_allcomm_auto"},"6166":{"probe_name":"mpi-rest","function_name":"MPIR_Gatherv"},"6165":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_intra_binomial.cold"},"6164":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_intra_binomial"},"6163":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_inter_local_gather_remote_send.cold"},"6162":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_inter_local_gather_remote_send"},"6161":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_inter_linear.cold"},"6160":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_inter_linear"},"6159":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_init_impl"},"6158":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_init"},"6157":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_impl"},"6156":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_allcomm_nb"},"6155":{"probe_name":"mpi-rest","function_name":"MPIR_Gather_allcomm_auto"},"6154":{"probe_name":"mpi-rest","function_name":"MPIR_Gather"},"6153":{"probe_name":"mpi-rest","function_name":"MPIR_Free_contextid"},"6152":{"probe_name":"mpi-rest","function_name":"MPIR_FreeF90Datatypes"},"6151":{"probe_name":"mpi-rest","function_name":"MPIR_Find_local"},"6150":{"probe_name":"mpi-rest","function_name":"MPIR_Find_external"},"6149":{"probe_name":"mpi-rest","function_name":"MPIR_Finalized_impl"},"6148":{"probe_name":"mpi-rest","function_name":"MPIR_Finalize_impl"},"6147":{"probe_name":"mpi-rest","function_name":"MPIR_File_set_errhandler_impl"},"6146":{"probe_name":"mpi-rest","function_name":"MPIR_File_get_errhandler_impl.cold"},"6145":{"probe_name":"mpi-rest","function_name":"MPIR_File_get_errhandler_impl"},"6144":{"probe_name":"mpi-rest","function_name":"MPIR_File_create_errhandler_impl"},"6143":{"probe_name":"mpi-rest","function_name":"MPIR_File_call_errhandler_impl.cold"},"6142":{"probe_name":"mpi-rest","function_name":"MPIR_File_call_errhandler_impl"},"6141":{"probe_name":"mpi-rest","function_name":"MPIR_File_call_cxx_errhandler"},"6140":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_mutex_init"},"6139":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_mutex_finalize"},"6138":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_init"},"6137":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_datatype_iscommitted.cold"},"6136":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_datatype_iscommitted"},"6135":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_cs_yield"},"6134":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_cs_exit"},"6133":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_cs_enter"},"6132":{"probe_name":"mpi-rest","function_name":"MPIR_Ext_assert_fail"},"6131":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan_intra_recursive_doubling.cold"},"6130":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan_intra_recursive_doubling"},"6129":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan_init_impl"},"6128":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan_init"},"6127":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan_impl"},"6126":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan_allcomm_nb"},"6125":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan_allcomm_auto"},"6124":{"probe_name":"mpi-rest","function_name":"MPIR_Exscan"},"6123":{"probe_name":"mpi-rest","function_name":"MPIR_Errutil_is_initialized"},"6122":{"probe_name":"mpi-rest","function_name":"MPIR_Error_string_impl"},"6121":{"probe_name":"mpi-rest","function_name":"MPIR_Error_class_impl"},"6120":{"probe_name":"mpi-rest","function_name":"MPIR_Errhandler_free_impl.part.0"},"6119":{"probe_name":"mpi-rest","function_name":"MPIR_Errhandler_free_impl"},"6118":{"probe_name":"mpi-rest","function_name":"MPIR_Err_return_win"},"6117":{"probe_name":"mpi-rest","function_name":"MPIR_Err_return_comm.cold"},"6116":{"probe_name":"mpi-rest","function_name":"MPIR_Err_return_comm"},"6115":{"probe_name":"mpi-rest","function_name":"MPIR_Err_is_fatal"},"6114":{"probe_name":"mpi-rest","function_name":"MPIR_Err_init"},"6113":{"probe_name":"mpi-rest","function_name":"MPIR_Err_get_string"},"6112":{"probe_name":"mpi-rest","function_name":"MPIR_Err_create_code_valist.cold"},"6111":{"probe_name":"mpi-rest","function_name":"MPIR_Err_create_code_valist"},"6110":{"probe_name":"mpi-rest","function_name":"MPIR_Err_create_code"},"6109":{"probe_name":"mpi-rest","function_name":"MPIR_Err_combine_codes"},"6108":{"probe_name":"mpi-rest","function_name":"MPIR_Err_Uninitialized"},"6107":{"probe_name":"mpi-rest","function_name":"MPIR_Dynerrcodes_finalize"},"6106":{"probe_name":"mpi-rest","function_name":"MPIR_Dup_fn"},"6105":{"probe_name":"mpi-rest","function_name":"MPIR_Dist_graph_neighbors_impl"},"6104":{"probe_name":"mpi-rest","function_name":"MPIR_Dist_graph_neighbors_count_impl"},"6103":{"probe_name":"mpi-rest","function_name":"MPIR_Dist_graph_create_impl"},"6102":{"probe_name":"mpi-rest","function_name":"MPIR_Dist_graph_create_adjacent_impl"},"6101":{"probe_name":"mpi-rest","function_name":"MPIR_Dims_create_impl"},"6100":{"probe_name":"mpi-rest","function_name":"MPIR_Delete_error_string_impl"},"6099":{"probe_name":"mpi-rest","function_name":"MPIR_Delete_error_code_impl"},"6098":{"probe_name":"mpi-rest","function_name":"MPIR_Delete_error_class_impl"},"6097":{"probe_name":"mpi-rest","function_name":"MPIR_Debugger_set_aborting"},"6096":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_set_contents.constprop.0:0x4e6f20"},"6095":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_set_contents.constprop.0:0x4e4d10"},"6094":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_set_contents.constprop.0.cold:0x3ed8b"},"6093":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_set_contents.constprop.0.cold:0x3ed1c"},"6092":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_set_contents.cold"},"6091":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_set_contents"},"6090":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_iscontig.cold"},"6089":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_iscontig"},"6088":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_init_predefined.cold"},"6087":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_init_predefined"},"6086":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_get_flattened.cold"},"6085":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_get_flattened"},"6084":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_free.cold"},"3353":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1e94e0"},"3352":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1d2280"},"3351":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1b53a0"},"3350":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x19f750"},"3349":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x190f70"},"3348":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x17c3c0"},"3347":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x168880"},"3346":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x151cc0"},"3345":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1404a0"},"3344":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x132410"},"3343":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x11e190"},"3342":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x6b97e0"},"3341":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x69ca70"},"3340":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x68b700"},"3339":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x66d780"},"3338":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x663b50"},"3337":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x65dc20"},"3336":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x6448b0"},"3335":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x62e020"},"3334":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x615df0"},"3333":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x612590"},"3332":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x60c1f0"},"3331":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x609ed0"},"3330":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x5f90a0"},"3329":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x5e8320"},"3328":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x5c8770"},"3327":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x5c3ff0"},"3326":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x55fb00"},"3325":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x5461e0"},"3324":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x52d730"},"3323":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x51ba10"},"3322":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x504ba0"},"3321":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x4f5560"},"3320":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x4b5ac0"},"3319":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x4b2fb0"},"3318":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x491cb0"},"3317":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x476b40"},"3316":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x4554d0"},"3315":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x419850"},"3314":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x374560"},"3313":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x363f40"},"3312":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x353870"},"3311":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x345c30"},"3310":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x337090"},"3309":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x333170"},"3308":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x324540"},"3307":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x315800"},"3306":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x304be0"},"3305":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x2f5430"},"3304":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x2e5cd0"},"3303":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x2d64b0"},"3302":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x2c6d60"},"3301":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x2b46f0"},"3300":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x2a7a20"},"3299":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x2932d0"},"3298":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x28a250"},"3297":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x276ae0"},"3296":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x26cf50"},"3295":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x258ec0"},"3294":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x250360"},"3293":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x23e7a0"},"3292":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x22e200"},"3291":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x21acb0"},"3290":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1ff1b0"},"3289":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1e87f0"},"3288":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1d15d0"},"3287":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1c80f0"},"3286":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1b46f0"},"3285":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1a7cb0"},"3284":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1a5850"},"3283":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x19f380"},"3282":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x190380"},"3281":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x18aca0"},"3280":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x17b5b0"},"3279":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x167c60"},"3278":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1510a0"},"3277":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1464e0"},"3276":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x140160"},"3275":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x131820"},"3274":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x12c330"},"3273":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x11d380"},"3272":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x1110e0"},"3271":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x10bd20"},"3270":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av:0x106aa0"},"3269":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x41b69"},"3268":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x4189a"},"3267":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x4169c"},"3266":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x41468"},"3265":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x413a7"},"3264":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x412b1"},"3263":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x410d1"},"3262":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x40dbb"},"3261":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x40aa5"},"3260":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x40a7d"},"3259":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x40a0b"},"3258":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x40998"},"3257":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x40778"},"3256":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x40536"},"3255":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x400a5"},"3254":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3fec1"},"3253":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3fa60"},"3252":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3f862"},"3251":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3f5aa"},"3250":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3f3ac"},"3249":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3f096"},"3248":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3ee08"},"3247":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3e229"},"3246":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3e1d5"},"3245":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3dcc2"},"3244":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3da98"},"3243":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3d72e"},"3242":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3d34d"},"3241":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3b16d"},"3240":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3af18"},"3239":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3ace4"},"3238":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3aae6"},"3237":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3a8c7"},"3236":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3a876"},"3235":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3a678"},"3234":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3a47a"},"3233":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3a225"},"3232":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x39ff1"},"3231":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x39d9c"},"3230":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x39b68"},"3229":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x39934"},"3228":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x396df"},"3227":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x39566"},"3226":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x391ea"},"3225":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x39092"},"3224":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x38d2f"},"3223":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x38bb6"},"3222":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x38837"},"3221":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x386df"},"3220":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x38429"},"3219":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x381bc"},"3218":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x37e61"},"3217":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x37b4b"},"3216":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x37835"},"3215":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x37486"},"3214":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x37219"},"3213":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x36f11"},"3212":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x36ce8"},"3211":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x36bf8"},"3210":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x36ab6"},"3209":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x368b8"},"3208":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x36719"},"3207":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3651b"},"3206":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x36213"},"3205":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x35df1"},"3204":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x35c6f"},"3203":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x35b2d"},"3202":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3592f"},"3201":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x35790"},"3200":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x35592"},"3199":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x3532b"},"3198":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x352b9"},"3197":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_av.cold:0x35247"},"3196":{"probe_name":"mpi-rest","function_name":"MPIDIU_avt_release_ref"},"3195":{"probe_name":"mpi-rest","function_name":"MPIDIU_avt_init"},"3194":{"probe_name":"mpi-rest","function_name":"MPIDIU_avt_destroy"},"3193":{"probe_name":"mpi-rest","function_name":"MPIDIU_avt_add_ref"},"3192":{"probe_name":"mpi-rest","function_name":"MPIDIU_alloc_mlut"},"3191":{"probe_name":"mpi-rest","function_name":"MPIDIU_alloc_lut"},"3190":{"probe_name":"mpi-rest","function_name":"MPIDIU_Intercomm_map_bcast_intra"},"3189":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_unlockall_target_msg_cb"},"3188":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_unlockall_ack_target_msg_cb"},"3187":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_unlock_target_msg_cb"},"3186":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_unlock_ack_target_msg_cb"},"3185":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x6b9db0"},"3184":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x69d040"},"3183":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x68bcd0"},"3182":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x66dd10"},"3181":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x62e5f0"},"3180":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x6163c0"},"3179":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x5f8fb0"},"3178":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x5e8600"},"3177":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x5c8ba0"},"3176":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x55ff30"},"3175":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x5467b0"},"3174":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x52dd00"},"3173":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x51bfe0"},"3172":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x504fd0"},"3171":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x4f5b30"},"3170":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x4b6090"},"3169":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x492280"},"3168":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x476f70"},"3167":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x455aa0"},"3166":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x419e20"},"3165":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x374840"},"3164":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x364510"},"3163":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x353b50"},"3162":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x346200"},"3161":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x337370"},"3160":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x324970"},"3159":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x315ae0"},"3158":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x304ec0"},"3157":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2f5710"},"3156":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2e5fb0"},"3155":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2d6790"},"3154":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2c7040"},"3153":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2b49d0"},"3152":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2a7d00"},"3151":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2935b0"},"3150":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x28a530"},"3149":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x276dc0"},"3148":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x26d230"},"3147":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x2591a0"},"3146":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x250640"},"3145":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x23ea80"},"3144":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x22e4e0"},"3143":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x21af90"},"3142":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x1ff780"},"3141":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x1e8dc0"},"3140":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x1d1a00"},"3139":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x1b4b20"},"3138":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x190950"},"3137":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x17bb80"},"3136":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x168090"},"3135":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x1514d0"},"3134":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x131df0"},"3133":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_find:0x11d950"},"3132":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x6bbd40"},"3131":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x69e5f0"},"3130":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x68d510"},"3129":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x66ff70"},"3128":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x62fed0"},"3127":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x617d90"},"3126":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x5fa640"},"3125":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x5ca8e0"},"3124":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x561c20"},"3123":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x547d60"},"3122":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x52fc30"},"3121":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x51df40"},"3120":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x506b00"},"3119":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x4f70e0"},"3118":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x4b7660"},"3117":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x4937f0"},"3116":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x4784a0"},"3115":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x457570"},"3114":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x41b6a0"},"3113":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x3760a0"},"3112":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x366020"},"3111":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x355950"},"3110":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x347770"},"3109":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x338bd0"},"3108":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x3262c0"},"3107":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x317580"},"3106":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x306a80"},"3105":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x2f72d0"},"3104":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x2e7b70"},"3103":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x2d8350"},"3102":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x2c8c00"},"3101":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x2b63b0"},"3100":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x2951a0"},"3099":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x2789b0"},"3098":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x25ad60"},"3097":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x240670"},"3096":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x230070"},"3095":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x21cb50"},"3094":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x201060"},"3093":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x1ea6a0"},"3092":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x1d3420"},"3091":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x1b6540"},"3090":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x192150"},"3089":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x17d320"},"3088":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x169a10"},"3087":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x152e50"},"3086":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x1335f0"},"3085":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_target_add:0x11f0f0"},"3084":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_post_target_msg_cb"},"3083":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_lockall_target_msg_cb"},"3082":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_lockall_ack_target_msg_cb"},"3081":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_lock_target_msg_cb"},"3080":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_lock_ack_target_msg_cb"},"3079":{"probe_name":"mpi-rest","function_name":"MPIDIG_win_complete_target_msg_cb"},"3078":{"probe_name":"mpi-rest","function_name":"MPIDIG_ssend_ack_target_msg_cb"},"3077":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_target_msg_cb.cold"},"3076":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_target_msg_cb"},"3075":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_origin_cb"},"3074":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_data_target_msg_cb"},"3073":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_data_origin_cb.cold"},"3072":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_data_origin_cb"},"3071":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_cts_target_msg_cb.cold"},"3070":{"probe_name":"mpi-rest","function_name":"MPIDIG_send_cts_target_msg_cb"},"3069":{"probe_name":"mpi-rest","function_name":"MPIDIG_request_create.constprop.0:0x5fa1a0"},"3068":{"probe_name":"mpi-rest","function_name":"MPIDIG_request_create.constprop.0:0x191220"},"3067":{"probe_name":"mpi-rest","function_name":"MPIDIG_request_create.constprop.0:0x1326c0"},"3066":{"probe_name":"mpi-rest","function_name":"MPIDIG_reply_ssend.part.0"},"3065":{"probe_name":"mpi-rest","function_name":"MPIDIG_recvq_init"},"3064":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x6bcdd0"},"3063":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x630f60"},"3062":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x618e20"},"3061":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x5ca5f0"},"3060":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x5630e0"},"3059":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x507b90"},"3058":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x480110"},"3057":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x458600"},"3056":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x2020f0"},"3055":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x1eb730"},"3054":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x1a0470"},"3053":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init:0x1411b0"},"3052":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0:0x5eb530"},"3051":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0:0x5e2240"},"3050":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0:0x18b5c0"},"3049":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0:0x12cbf0"},"3048":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0.cold:0x4053d"},"3047":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0.cold:0x403c2"},"3046":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0.cold:0x36720"},"3045":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.isra.0.cold:0x35797"},"3044":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x41b77"},"3043":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x40dc9"},"3042":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x40ab3"},"3041":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x400b3"},"3040":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x3fa90"},"3039":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x3f0a4"},"3038":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x3dac7"},"3037":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x3d73c"},"3036":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x37b59"},"3035":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x37843"},"3034":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x36abd"},"3033":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_type_init.cold:0x35b34"},"3032":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_setup:0x66b2e0"},"3031":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_setup:0x65df00"},"3030":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_copy_seg"},"3029":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_copy:0x5e8920"},"3028":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_copy:0x5dfe60"},"3027":{"probe_name":"mpi-rest","function_name":"MPIDIG_recv_check_rndv_cb.part.0"},"3026":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_target_msg_cb"},"3025":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_origin_cb"},"3024":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_dt_target_msg_cb"},"3023":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_dt_origin_cb.cold"},"3022":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_dt_origin_cb"},"3021":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_dt_ack_target_msg_cb"},"3020":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_data_target_msg_cb"},"3019":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_data_origin_cb.cold"},"3018":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_data_origin_cb"},"3017":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_ack_target_msg_cb"},"3016":{"probe_name":"mpi-rest","function_name":"MPIDIG_put_ack_origin_cb"},"3015":{"probe_name":"mpi-rest","function_name":"MPIDIG_precv_matched.cold"},"3014":{"probe_name":"mpi-rest","function_name":"MPIDIG_precv_matched"},"3013":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_send_init_target_msg_cb"},"3012":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_send_data_target_msg_cb.cold"},"3011":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_send_data_target_msg_cb"},"3010":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_send_data_origin_cb"},"3009":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_issue_data.constprop.0:0x114750"},"3008":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_issue_data.constprop.0:0x10f390"},"3007":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_issue_data.constprop.0:0x10a110"},"3006":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_issue_data.constprop.0.cold:0x35353"},"3005":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_issue_data.constprop.0.cold:0x352e1"},"3004":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_issue_data.constprop.0.cold:0x3526f"},"3003":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_cts_target_msg_cb.cold"},"3002":{"probe_name":"mpi-rest","function_name":"MPIDIG_part_cts_target_msg_cb"},"3001":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_set_info"},"3000":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_get_info"},"2999":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_free"},"2998":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_detach"},"2997":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_create_dynamic"},"2996":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_create"},"2995":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_attach"},"2994":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_allocate_shared"},"2993":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_win_allocate"},"2992":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_rput.part.0"},"2991":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_rget_accumulate.part.0"},"2990":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_rget.part.0"},"2989":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_raccumulate.part.0"},"2988":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_put.part.0"},"2987":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_psend_init.cold"},"2986":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_psend_init"},"2985":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_precv_init"},"2984":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_parrived.constprop.0.isra.0"},"2983":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x6ba320"},"2982":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x62e770"},"2981":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x6165a0"},"2980":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x5c8e90"},"2979":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x560220"},"2978":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x505290"},"2977":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x477230"},"2976":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x455bf0"},"2975":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x1ff8d0"},"2974":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x1e8f40"},"2973":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x19f660"},"2972":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_irecv.part.0:0x140440"},"2971":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_imrecv:0x18b8a0"},"2970":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_imrecv:0x12ced0"},"2969":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_imrecv.cold:0x36742"},"2968":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_imrecv.cold:0x357b9"},"2967":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_improbe.constprop.0:0x17c1a0"},"2966":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_improbe.constprop.0:0x11df70"},"2965":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_get_accumulate.part.0:0x2939f0"},"2964":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_get_accumulate.part.0:0x2595b0"},"2963":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_get_accumulate.part.0:0x23ee90"},"2962":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_get.part.0"},"2961":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_free_mem"},"2960":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_fetch_and_op.part.0"},"2959":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_compare_and_swap"},"2958":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x6bf210"},"2957":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x6a06d0"},"2956":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x690150"},"2955":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x673590"},"2954":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x668530"},"2953":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x6643e0"},"2952":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x65f040"},"2951":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x64f640"},"2950":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x645b30"},"2949":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x633390"},"2948":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x61b250"},"2947":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x5ff160"},"2946":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x5e4e00"},"2945":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x5cdab0"},"2944":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x565c00"},"2943":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x54a9a0"},"2942":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x543d70"},"2941":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x5329a0"},"2940":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x521110"},"2939":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x509fd0"},"2938":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x4f9d20"},"2937":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x4ba2a0"},"2936":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x496430"},"2935":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x488270"},"2934":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x45aa40"},"2933":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x41e2e0"},"2932":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x378ce0"},"2931":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x368c60"},"2930":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x358590"},"2929":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x34a3b0"},"2928":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x33b810"},"2927":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x328f00"},"2926":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x31a1c0"},"2925":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x3096c0"},"2924":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x2f9f10"},"2923":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x2ea7b0"},"2922":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x2daf90"},"2921":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x2cb840"},"2920":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x2b9410"},"2919":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x297de0"},"2918":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x27b5f0"},"2917":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x25d9a0"},"2916":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x2432b0"},"2915":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x232cb0"},"2914":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x21f790"},"2913":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x204520"},"2912":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x1edb60"},"2911":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x1d65f0"},"2910":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x1c99d0"},"2909":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x1b9710"},"2908":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x194d90"},"2907":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x17ff60"},"2906":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x16cbe0"},"2905":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x156020"},"2904":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x136230"},"2903":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0:0x121d30"},"2902":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x41bba"},"2901":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x418eb"},"2900":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x416cb"},"2899":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x41497"},"2898":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x4141f"},"2897":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x413ae"},"2896":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x412d9"},"2895":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x41163"},"2894":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x410f9"},"2893":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x40e0c"},"2892":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x40af6"},"2891":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x407a7"},"2890":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x40405"},"2889":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x400f6"},"2888":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3fae7"},"2887":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3f891"},"2886":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3f7f4"},"2885":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3f5fa"},"2884":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3f3db"},"2883":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3f0e7"},"2882":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3ee37"},"2881":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3e258"},"2880":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3dcf1"},"2879":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3dc6c"},"2878":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3d77f"},"2877":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3d37c"},"2876":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3b19c"},"2875":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3af47"},"2874":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3ad13"},"2873":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3ab15"},"2872":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3a8f6"},"2871":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3a6a7"},"2870":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3a4a9"},"2869":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3a254"},"2868":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3a020"},"2867":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x39dcb"},"2866":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x39b97"},"2865":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x39963"},"2864":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3970e"},"2863":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x39219"},"2862":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x38d5e"},"2861":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x38866"},"2860":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x38458"},"2859":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x381eb"},"2858":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x37e90"},"2857":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x37b9c"},"2856":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x37886"},"2855":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x374b5"},"2854":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x37262"},"2853":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x36f40"},"2852":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x368e7"},"2851":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3654a"},"2850":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x36242"},"2849":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x35e20"},"2848":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x3595e"},"2847":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_cancel_recv.part.0.cold:0x355c1"},"2846":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_alloc_mem"},"2845":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_accumulate.part.0:0x277200"},"2844":{"probe_name":"mpi-rest","function_name":"MPIDIG_mpi_accumulate.part.0:0x21b3a0"},"2843":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl:0x637070"},"2842":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl:0x61ef30"},"2841":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl:0x45f180"},"2840":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl:0x208200"},"2839":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl:0x1f1840"},"2838":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x6c34e0"},"2837":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x5d1680"},"2836":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x5697e0"},"2835":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x523a50"},"2834":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x50dbb0"},"2833":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x1da1d0"},"2832":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x1bd2f0"},"2831":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x1ac700"},"2830":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x1707b0"},"2829":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x159bf0"},"2828":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0:0x14ba40"},"2827":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x41cc8"},"2826":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x401dd"},"2825":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x3fbce"},"2824":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x3f1ce"},"2823":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x3759c"},"2822":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x37027"},"2821":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x36d17"},"2820":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x36329"},"2819":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x35f07"},"2818":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.constprop.0.cold:0x35ce0"},"2817":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.cold:0x40ef3"},"2816":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.cold:0x40bdd"},"2815":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.cold:0x3d866"},"2814":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.cold:0x37c83"},"2813":{"probe_name":"mpi-rest","function_name":"MPIDIG_isend_impl.cold:0x3796d"},"2812":{"probe_name":"mpi-rest","function_name":"MPIDIG_init_comm"},"2811":{"probe_name":"mpi-rest","function_name":"MPIDIG_handle_unexpected.cold"},"2810":{"probe_name":"mpi-rest","function_name":"MPIDIG_handle_unexpected"},"2809":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_target_msg_cb"},"2808":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_origin_cb"},"2807":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_context_index"},"2806":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_ack_target_msg_cb"},"2805":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_ack_origin_cb.cold"},"2804":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_ack_origin_cb"},"2803":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_target_msg_cb"},"2802":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_origin_cb"},"2801":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_dt_target_msg_cb"},"2800":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_dt_origin_cb.cold"},"2799":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_dt_origin_cb"},"2798":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_dt_ack_target_msg_cb"},"2797":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_data_target_msg_cb"},"2796":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_data_origin_cb.cold"},"2795":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_data_origin_cb"},"2794":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_ack_target_msg_cb"},"2793":{"probe_name":"mpi-rest","function_name":"MPIDIG_get_acc_ack_origin_cb"},"2792":{"probe_name":"mpi-rest","function_name":"MPIDIG_generate_win_id"},"2791":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x6cba00"},"2790":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x6a42d0"},"2789":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x696740"},"2788":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x67bb30"},"2787":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x63f800"},"2786":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x6276c0"},"2785":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x605620"},"2784":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x5da4e0"},"2783":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x572790"},"2782":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x550f70"},"2781":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x539270"},"2780":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x527f00"},"2779":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x5168e0"},"2778":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x5002f0"},"2777":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x4c0880"},"2776":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x49ca10"},"2775":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x484c20"},"2774":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x467ee0"},"2773":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x4248d0"},"2772":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x37f2c0"},"2771":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x370030"},"2770":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x35f960"},"2769":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x350990"},"2768":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x341df0"},"2767":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x32f510"},"2766":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x3207d0"},"2765":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x310a60"},"2764":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x3012b0"},"2763":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x2f1b50"},"2762":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x2e2330"},"2761":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x2d2be0"},"2760":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x2c07e0"},"2759":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x2aca60"},"2758":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x29f180"},"2757":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x282990"},"2756":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x271b30"},"2755":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x264d40"},"2754":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x24a650"},"2753":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x23a760"},"2752":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x226b30"},"2751":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x210990"},"2750":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x1f9fd0"},"2749":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x1e0200"},"2748":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x1c3320"},"2747":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x19bcb0"},"2746":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x186e00"},"2745":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x1767e0"},"2744":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x15fc20"},"2743":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x13d150"},"2742":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put:0x128bd0"},"2741":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x41e49"},"2740":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x4196f"},"2739":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x4183d"},"2738":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x4163f"},"2737":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x41074"},"2736":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x40d5e"},"2735":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x40919"},"2734":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x4035e"},"2733":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3fd4f"},"2732":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3fa03"},"2731":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3f76c"},"2730":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3f54d"},"2729":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3f34f"},"2728":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3efa9"},"2727":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3e3ca"},"2726":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3de63"},"2725":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3dbf8"},"2724":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3d9e7"},"2723":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3d4ee"},"2722":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3b30e"},"2721":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3b0ef"},"2720":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3aebb"},"2719":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3ac87"},"2718":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3aa68"},"2717":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3a819"},"2716":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3a61b"},"2715":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3a3fc"},"2714":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x3a1c8"},"2713":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x39f73"},"2712":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x39d3f"},"2711":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x39b0b"},"2710":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x398b6"},"2709":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x395d7"},"2708":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x393c1"},"2707":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x38f06"},"2706":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x38c27"},"2705":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x38a0e"},"2704":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x38600"},"2703":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x38393"},"2702":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x38038"},"2701":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x37e04"},"2700":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x37aee"},"2699":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x376ab"},"2698":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x37136"},"2697":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x36a59"},"2696":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x366bc"},"2695":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x36438"},"2694":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x36016"},"2693":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x35ad0"},"2692":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_put.cold:0x35733"},"2691":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x6c5e60"},"2690":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x639a10"},"2689":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x6218d0"},"2688":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x5d4000"},"2687":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x56c160"},"2686":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x510530"},"2685":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x486060"},"2684":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x461b20"},"2683":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x20aba0"},"2682":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x1f41e0"},"2681":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x1a0770"},"2680":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0:0x1414a0"},"2679":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x41d0a"},"2678":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x40f35"},"2677":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x40c1f"},"2676":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x4021f"},"2675":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x3fc10"},"2674":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x3f210"},"2673":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x3d8a8"},"2672":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x37cc5"},"2671":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x379af"},"2670":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x36adf"},"2669":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_irecv.constprop.0.cold:0x35b56"},"2668":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x6ca440"},"2667":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x6a76e0"},"2666":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x695190"},"2665":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x67a580"},"2664":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x63e250"},"2663":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x626110"},"2662":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x604160"},"2661":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x5d8f30"},"2660":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x5711e0"},"2659":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x54f9d0"},"2658":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x537cd0"},"2657":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x526950"},"2656":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x515330"},"2655":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x4fed50"},"2654":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x4bf2d0"},"2653":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x49b460"},"2652":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x483610"},"2651":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x466920"},"2650":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x423320"},"2649":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x37dd10"},"2648":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x36ea70"},"2647":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x35e3a0"},"2646":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x34f3e0"},"2645":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x340840"},"2644":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x32df50"},"2643":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x31f210"},"2642":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x30f4b0"},"2641":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2ffd00"},"2640":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2f05a0"},"2639":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2e0d80"},"2638":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2d1630"},"2637":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2bf220"},"2636":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x29dbd0"},"2635":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2813e0"},"2634":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x263790"},"2633":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2490a0"},"2632":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x2391b0"},"2631":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x225580"},"2630":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x20f3e0"},"2629":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x1f8a20"},"2628":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x1dec40"},"2627":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x1c1d60"},"2626":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x19a7f0"},"2625":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x185840"},"2624":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x175220"},"2623":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x15e660"},"2622":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x13bc90"},"2621":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate:0x127610"},"2620":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x41df8"},"2619":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x41a3e"},"2618":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x417ec"},"2617":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x415ee"},"2616":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x41023"},"2615":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x40d0d"},"2614":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x408c8"},"2613":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x4030d"},"2612":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3fcfe"},"2611":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3f9b2"},"2610":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3f71b"},"2609":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3f4fc"},"2608":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3f2fe"},"2607":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3ef58"},"2606":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3e379"},"2605":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3de12"},"2604":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3dba7"},"2603":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3d996"},"2602":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3d49d"},"2601":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3b2bd"},"2600":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3b09e"},"2599":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3ae6a"},"2598":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3ac36"},"2597":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3aa17"},"2596":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3a7c8"},"2595":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3a5ca"},"2594":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3a3ab"},"2593":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3a177"},"2592":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x39f22"},"2591":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x39cee"},"2590":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x39aba"},"2589":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x39865"},"2588":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x39370"},"2587":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x38eb5"},"2586":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x389bd"},"2585":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x385af"},"2584":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x38342"},"2583":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x37fe7"},"2582":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x37db3"},"2581":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x37a9d"},"2580":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3765a"},"2579":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x370e5"},"2578":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x36a08"},"2577":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x3666b"},"2576":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x363e7"},"2575":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x35fc5"},"2574":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x35a7f"},"2573":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get_accumulate.cold:0x356e2"},"2572":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x6c95f0"},"2571":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x6a5600"},"2570":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x694340"},"2569":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x679730"},"2568":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x63d400"},"2567":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x6252c0"},"2566":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x603360"},"2565":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x5d80e0"},"2564":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x570390"},"2563":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x54eb90"},"2562":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x536e90"},"2561":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x525b00"},"2560":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x5144e0"},"2559":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x4fdf10"},"2558":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x4be490"},"2557":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x49a620"},"2556":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x4826d0"},"2555":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x465ad0"},"2554":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x4224d0"},"2553":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x37ced0"},"2552":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x36dc20"},"2551":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x35d550"},"2550":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x34e5a0"},"2549":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x33fa00"},"2548":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x32d100"},"2547":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x31e3c0"},"2546":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x30e670"},"2545":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x2feec0"},"2544":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x2ef760"},"2543":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x2dff40"},"2542":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x2d07f0"},"2541":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x2be3d0"},"2540":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x29cd90"},"2539":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x28ea20"},"2538":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x2805a0"},"2537":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x262950"},"2536":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x254660"},"2535":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x248260"},"2534":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x238370"},"2533":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x224740"},"2532":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x20e590"},"2531":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x1f7bd0"},"2530":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x1dddf0"},"2529":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x1c0f10"},"2528":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x1999f0"},"2527":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x1849f0"},"2526":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x1743d0"},"2525":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x15d810"},"2524":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x13ae90"},"2523":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get:0x1267c0"},"2522":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x41dc6"},"2521":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x419c2"},"2520":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x417ba"},"2519":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x415bc"},"2518":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x40ff1"},"2517":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x40cdb"},"2516":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x40896"},"2515":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x402db"},"2514":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3fccc"},"2513":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3f980"},"2512":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3f6e9"},"2511":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3f4ca"},"2510":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3f2cc"},"2509":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3ef26"},"2508":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3e347"},"2507":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3dde0"},"2506":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3db75"},"2505":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3d964"},"2504":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3d46b"},"2503":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3b28b"},"2502":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3b06c"},"2501":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3ae38"},"2500":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3ac04"},"2499":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3a9e5"},"2498":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3a796"},"2497":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3a598"},"2496":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3a379"},"2495":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3a145"},"2494":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x39ef0"},"2493":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x39cbc"},"2492":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x39a88"},"2491":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x39833"},"2490":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3933e"},"2489":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x39103"},"2488":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x38e83"},"2487":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3898b"},"2486":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x38750"},"2485":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x3857d"},"2484":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x38310"},"2483":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x37fb5"},"2482":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x37d81"},"2481":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x37a6b"},"2480":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x37628"},"2479":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x370b3"},"2478":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x369d6"},"2477":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x36639"},"2476":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x363b5"},"2475":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x35f93"},"2474":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x35a4d"},"2473":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_get.cold:0x356b0"},"2472":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_cts"},"2471":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x6c8350"},"2470":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x6a6440"},"2469":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x6930a0"},"2468":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x678490"},"2467":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x63c160"},"2466":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x624020"},"2465":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x6020b0"},"2464":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x5d6e40"},"2463":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x56f0f0"},"2462":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x54d8f0"},"2461":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x535bf0"},"2460":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x524860"},"2459":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x513240"},"2458":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x4fcc70"},"2457":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x4bd1f0"},"2456":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x499380"},"2455":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x481340"},"2454":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x464830"},"2453":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x421230"},"2452":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x37bc30"},"2451":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x36c980"},"2450":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x35c2b0"},"2449":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x34d300"},"2448":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x33e760"},"2447":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x32be60"},"2446":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x31d120"},"2445":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x30d3d0"},"2444":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2fdc20"},"2443":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2ee4c0"},"2442":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2deca0"},"2441":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2cf550"},"2440":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2bd130"},"2439":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x29baf0"},"2438":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x27f300"},"2437":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2616b0"},"2436":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x246fc0"},"2435":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2370d0"},"2434":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x2234a0"},"2433":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x20d2f0"},"2432":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x1f6930"},"2431":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x1dcb50"},"2430":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x1bfc70"},"2429":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x198730"},"2428":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x183750"},"2427":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x173130"},"2426":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x15c570"},"2425":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x139bd0"},"2424":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate:0x125520"},"2423":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x41d7c"},"2422":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x419f4"},"2421":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x41770"},"2420":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x41572"},"2419":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x40fa7"},"2418":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x40c91"},"2417":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x4084c"},"2416":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x40291"},"2415":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3fc82"},"2414":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3f936"},"2413":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3f69f"},"2412":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3f480"},"2411":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3f282"},"2410":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3eedc"},"2409":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3e2fd"},"2408":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3dd96"},"2407":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3db2b"},"2406":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3d91a"},"2405":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3d421"},"2404":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3b241"},"2403":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3b022"},"2402":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3adee"},"2401":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3abba"},"2400":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3a99b"},"2399":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3a74c"},"2398":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3a54e"},"2397":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3a32f"},"2396":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3a0fb"},"2395":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x39ea6"},"2394":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x39c72"},"2393":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x39a3e"},"2392":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x397e9"},"2391":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x392f4"},"2390":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x38e39"},"2389":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x38941"},"2388":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x38533"},"2387":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x382c6"},"2386":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x37f6b"},"2385":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x37d37"},"2384":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x37a21"},"2383":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x375de"},"2382":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x37069"},"2381":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3698c"},"2380":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x365ef"},"2379":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x3636b"},"2378":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x35f49"},"2377":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x35a03"},"2376":{"probe_name":"mpi-rest","function_name":"MPIDIG_do_accumulate.cold:0x35666"},"2375":{"probe_name":"mpi-rest","function_name":"MPIDIG_destroy_comm"},"2374":{"probe_name":"mpi-rest","function_name":"MPIDIG_cswap_target_msg_cb"},"2373":{"probe_name":"mpi-rest","function_name":"MPIDIG_cswap_origin_cb"},"2372":{"probe_name":"mpi-rest","function_name":"MPIDIG_cswap_ack_target_msg_cb"},"2371":{"probe_name":"mpi-rest","function_name":"MPIDIG_cswap_ack_origin_cb"},"2370":{"probe_name":"mpi-rest","function_name":"MPIDIG_compute_acc_op.constprop.0.cold"},"2369":{"probe_name":"mpi-rest","function_name":"MPIDIG_compute_acc_op.constprop.0"},"2368":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_send_async_init.isra.0:0x111fd0"},"2367":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_send_async_init.isra.0:0x10cc10"},"2366":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_send_async_init.isra.0:0x107990"},"2365":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_send_async_init.isra.0.cold:0x35332"},"2364":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_send_async_init.isra.0.cold:0x352c0"},"2363":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_send_async_init.isra.0.cold:0x3524e"},"2362":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_rndv_reg_cb"},"2361":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_reg_cb_dynamic"},"2360":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_reg_cb"},"2356":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_comm_abort"},"2355":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_check_init"},"2354":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_target_msg_cb"},"2353":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_origin_cb"},"2352":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_dt_target_msg_cb"},"2351":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_dt_origin_cb.cold"},"2350":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_dt_origin_cb"},"2349":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_dt_ack_target_msg_cb"},"2348":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_data_target_msg_cb"},"2347":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_data_origin_cb.cold"},"2346":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_data_origin_cb"},"2345":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_ack_target_msg_cb"},"2344":{"probe_name":"mpi-rest","function_name":"MPIDIG_acc_ack_origin_cb"},"2343":{"probe_name":"mpi-rest","function_name":"MPIDIG_RMA_Init_targetcb_pvars"},"2342":{"probe_name":"mpi-rest","function_name":"MPIDIG_RMA_Init_sync_pvars"},"2341":{"probe_name":"mpi-rest","function_name":"MPIC_Waitall"},"2340":{"probe_name":"mpi-rest","function_name":"MPIC_Wait"},"2339":{"probe_name":"mpi-rest","function_name":"MPIC_Ssend"},"2338":{"probe_name":"mpi-rest","function_name":"MPIC_Sendrecv_replace"},"2337":{"probe_name":"mpi-rest","function_name":"MPIC_Sendrecv"},"2336":{"probe_name":"mpi-rest","function_name":"MPIC_Send"},"2335":{"probe_name":"mpi-rest","function_name":"MPIC_Recv"},"2334":{"probe_name":"mpi-rest","function_name":"MPIC_Probe.cold"},"2333":{"probe_name":"mpi-rest","function_name":"MPIC_Probe"},"2332":{"probe_name":"mpi-rest","function_name":"MPIC_Issend"},"2331":{"probe_name":"mpi-rest","function_name":"MPIC_Isend"},"2330":{"probe_name":"mpi-rest","function_name":"MPIC_Irecv"},"2329":{"probe_name":"mpi-rest","function_name":"LOOKUP_CVAR_BY_NAME.cold"},"2328":{"probe_name":"mpi-rest","function_name":"LOOKUP_CVAR_BY_NAME"},"2327":{"probe_name":"mpi-rest","function_name":"Init_shm_barrier"},"2326":{"probe_name":"mpi-rest","function_name":"FindSpecificMsgIndex"},"2325":{"probe_name":"mpi-rest","function_name":"Exch_data_amounts"},"2324":{"probe_name":"mpi-rest","function_name":"DebugqFreePool"},"2323":{"probe_name":"mpi-rest","function_name":"ADIO_Type_create_subarray"},"2322":{"probe_name":"mpi-rest","function_name":"ADIO_Type_create_darray"},"2321":{"probe_name":"mpi-rest","function_name":"ADIO_Set_view"},"2320":{"probe_name":"mpi-rest","function_name":"ADIO_Set_shared_fp"},"2319":{"probe_name":"mpi-rest","function_name":"ADIO_ResolveFileType"},"2318":{"probe_name":"mpi-rest","function_name":"ADIO_Open"},"2317":{"probe_name":"mpi-rest","function_name":"ADIO_Init"},"2316":{"probe_name":"mpi-rest","function_name":"ADIO_ImmediateOpen"},"2315":{"probe_name":"mpi-rest","function_name":"ADIO_Get_shared_fp"},"2314":{"probe_name":"mpi-rest","function_name":"ADIO_FileSysType_prefix"},"2313":{"probe_name":"mpi-rest","function_name":"ADIO_FileSysType_parentdir"},"2312":{"probe_name":"mpi-rest","function_name":"ADIO_FileSysType_fncall_scalable"},"2311":{"probe_name":"mpi-rest","function_name":"ADIO_FileSysType_fncall"},"2310":{"probe_name":"mpi-rest","function_name":"ADIO_End"},"2309":{"probe_name":"mpi-rest","function_name":"ADIO_Close"},"2308":{"probe_name":"mpi-rest","function_name":"ADIOI_process_system_hints"},"2307":{"probe_name":"mpi-rest","function_name":"ADIOI_no_requests:0x77ab98"},"2306":{"probe_name":"mpi-rest","function_name":"ADIOI_no_requests:0x771287"},"2305":{"probe_name":"mpi-rest","function_name":"ADIOI_init_view_state"},"2304":{"probe_name":"mpi-rest","function_name":"ADIOI_incorporate_system_hints"},"2303":{"probe_name":"mpi-rest","function_name":"ADIOI_compute_offsets"},"2302":{"probe_name":"mpi-rest","function_name":"ADIOI_cb_gather_name_array"},"2301":{"probe_name":"mpi-rest","function_name":"ADIOI_cb_delete_name_array"},"2300":{"probe_name":"mpi-rest","function_name":"ADIOI_cb_copy_name_array"},"2299":{"probe_name":"mpi-rest","function_name":"ADIOI_cb_config_list_parse"},"2298":{"probe_name":"mpi-rest","function_name":"ADIOI_cb_bcast_rank_map"},"2297":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Iexchange_data_wait"},"2296":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Iexchange_data_send"},"2295":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Iexchange_data_hole"},"2294":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Iexchange_data_fini"},"2293":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Iexchange_data"},"2292":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Exchange_data_alltoallv"},"2291":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Exchange_data:0x7b9ad9"},"2290":{"probe_name":"mpi-rest","function_name":"ADIOI_W_Exchange_data:0x74c0d0"},"2289":{"probe_name":"mpi-rest","function_name":"ADIOI_Verify_fr"},"2288":{"probe_name":"mpi-rest","function_name":"ADIOI_UFS_Open"},"2287":{"probe_name":"mpi-rest","function_name":"ADIOI_Type_ispredef"},"2286":{"probe_name":"mpi-rest","function_name":"ADIOI_Type_get_combiner"},"2285":{"probe_name":"mpi-rest","function_name":"ADIOI_Type_dispose"},"2284":{"probe_name":"mpi-rest","function_name":"ADIOI_Type_create_hindexed_x"},"2283":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_WriteStridedColl"},"2282":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_WriteStrided"},"2281":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_WriteDone"},"2280":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_WriteContig"},"2279":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_WriteComplete"},"2278":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_SetInfo"},"2277":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_SeekIndividual"},"2276":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_Resize"},"2275":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_ReadStridedColl"},"2274":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_ReadStrided"},"2273":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_ReadDone"},"2272":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_ReadContig"},"2271":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_ReadComplete"},"2270":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_Open"},"2269":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_IwriteStrided"},"2268":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_IwriteContig"},"2267":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_IreadStrided"},"2266":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_IreadContig"},"2265":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_Flush"},"2264":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_Fcntl"},"2263":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_Delete"},"2262":{"probe_name":"mpi-rest","function_name":"ADIOI_TESTFS_Close"},"2261":{"probe_name":"mpi-rest","function_name":"ADIOI_Strncpy"},"2260":{"probe_name":"mpi-rest","function_name":"ADIOI_Strdup"},"2259":{"probe_name":"mpi-rest","function_name":"ADIOI_Shfp_fname"},"2258":{"probe_name":"mpi-rest","function_name":"ADIOI_SCALEABLE_OpenColl"},"2257":{"probe_name":"mpi-rest","function_name":"ADIOI_Realloc_fn"},"2256":{"probe_name":"mpi-rest","function_name":"ADIOI_Read_and_exch:0x7b0676"},"2255":{"probe_name":"mpi-rest","function_name":"ADIOI_Read_and_exch:0x746ad2"},"2254":{"probe_name":"mpi-rest","function_name":"ADIOI_R_Iexchange_data_recv"},"2253":{"probe_name":"mpi-rest","function_name":"ADIOI_R_Iexchange_data_fini"},"2252":{"probe_name":"mpi-rest","function_name":"ADIOI_R_Iexchange_data_fill"},"2251":{"probe_name":"mpi-rest","function_name":"ADIOI_R_Iexchange_data"},"2250":{"probe_name":"mpi-rest","function_name":"ADIOI_R_Exchange_data_alltoallv"},"2249":{"probe_name":"mpi-rest","function_name":"ADIOI_R_Exchange_data:0x7b1751"},"2248":{"probe_name":"mpi-rest","function_name":"ADIOI_R_Exchange_data:0x747b00"},"2247":{"probe_name":"mpi-rest","function_name":"ADIOI_Print_flatlist_node"},"2246":{"probe_name":"mpi-rest","function_name":"ADIOI_P2PContigWriteAggregation"},"2245":{"probe_name":"mpi-rest","function_name":"ADIOI_P2PContigReadAggregation"},"2244":{"probe_name":"mpi-rest","function_name":"ADIOI_OneSidedWriteAggregation"},"2243":{"probe_name":"mpi-rest","function_name":"ADIOI_OneSidedSetup"},"2242":{"probe_name":"mpi-rest","function_name":"ADIOI_OneSidedReadAggregation"},"2241":{"probe_name":"mpi-rest","function_name":"ADIOI_OneSidedCleanup"},"2240":{"probe_name":"mpi-rest","function_name":"ADIOI_NOLOCK_WriteStrided"},"2239":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_aio"},"2238":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_WriteStrided"},"2237":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_WriteDone"},"2236":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_WriteContig"},"2235":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_WriteComplete"},"2234":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_Set_shared_fp"},"2233":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_SetInfo"},"2232":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_Resize"},"2231":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_ReadStrided"},"2230":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_ReadDone"},"2229":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_ReadContig"},"2228":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_ReadComplete"},"2227":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_Open"},"2226":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_IwriteContig"},"2225":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_IreadContig"},"2224":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_Get_shared_fp"},"2223":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_Feature"},"2222":{"probe_name":"mpi-rest","function_name":"ADIOI_NFS_Fcntl"},"2221":{"probe_name":"mpi-rest","function_name":"ADIOI_Malloc_fn"},"2220":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_request_only_lock_ioctl"},"2219":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_lock_ahead_ioctl"},"2218":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_clear_locks"},"2217":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_WriteStridedColl"},"2216":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_WriteStrided"},"2215":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_WriteContig"},"2214":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_W_Exchange_data"},"2213":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_SetInfo"},"2212":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_ReadContig"},"2211":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Open"},"2210":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_IterateOneSided"},"2209":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_IOContig"},"2208":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Get_striping_info"},"2207":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Free_my_req"},"2206":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Fill_send_buffer"},"2205":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Exch_and_write"},"2204":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Docollect"},"2203":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Directio"},"2202":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Calc_my_req"},"2201":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Calc_aggregator"},"2200":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Aligned_Mem_File_Write"},"2199":{"probe_name":"mpi-rest","function_name":"ADIOI_LUSTRE_Aligned_Mem_File_Read"},"2198":{"probe_name":"mpi-rest","function_name":"ADIOI_Iread_and_exch_reset"},"2197":{"probe_name":"mpi-rest","function_name":"ADIOI_Iread_and_exch_l2_end"},"2196":{"probe_name":"mpi-rest","function_name":"ADIOI_Iread_and_exch_l2_begin"},"2195":{"probe_name":"mpi-rest","function_name":"ADIOI_Iread_and_exch_l1_end"},"2194":{"probe_name":"mpi-rest","function_name":"ADIOI_Iread_and_exch_l1_begin"},"2193":{"probe_name":"mpi-rest","function_name":"ADIOI_Iread_and_exch_fini"},"2192":{"probe_name":"mpi-rest","function_name":"ADIOI_Iread_and_exch"},"2191":{"probe_name":"mpi-rest","function_name":"ADIOI_Info_print_keyvals"},"2190":{"probe_name":"mpi-rest","function_name":"ADIOI_Info_check_and_install_true"},"2189":{"probe_name":"mpi-rest","function_name":"ADIOI_Info_check_and_install_str"},"2188":{"probe_name":"mpi-rest","function_name":"ADIOI_Info_check_and_install_int"},"2187":{"probe_name":"mpi-rest","function_name":"ADIOI_Info_check_and_install_enabled"},"2186":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write_reset"},"2185":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write_l2_end"},"2184":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write_l2_begin"},"2183":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write_l1_end"},"2182":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write_l1_body"},"2181":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write_l1_begin"},"2180":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write_fini"},"2179":{"probe_name":"mpi-rest","function_name":"ADIOI_Iexch_and_write"},"2178":{"probe_name":"mpi-rest","function_name":"ADIOI_Icalc_others_req_main"},"2177":{"probe_name":"mpi-rest","function_name":"ADIOI_Icalc_others_req_fini"},"2176":{"probe_name":"mpi-rest","function_name":"ADIOI_Icalc_others_req"},"2175":{"probe_name":"mpi-rest","function_name":"ADIOI_IO_Thread_Func"},"2174":{"probe_name":"mpi-rest","function_name":"ADIOI_IOStridedColl"},"2173":{"probe_name":"mpi-rest","function_name":"ADIOI_IOFiletype"},"2172":{"probe_name":"mpi-rest","function_name":"ADIOI_Heap_merge"},"2171":{"probe_name":"mpi-rest","function_name":"ADIOI_Heap_insert"},"2170":{"probe_name":"mpi-rest","function_name":"ADIOI_Heap_free"},"2169":{"probe_name":"mpi-rest","function_name":"ADIOI_Heap_extract_min"},"2168":{"probe_name":"mpi-rest","function_name":"ADIOI_Heap_create"},"2167":{"probe_name":"mpi-rest","function_name":"ADIOI_Get_position"},"2166":{"probe_name":"mpi-rest","function_name":"ADIOI_Get_eof_offset"},"2165":{"probe_name":"mpi-rest","function_name":"ADIOI_Get_byte_offset"},"2164":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_WriteStridedColl"},"2163":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_SetInfo"},"2162":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_ReadStridedColl"},"2161":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Open"},"2160":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Free_others_req"},"2159":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Free_my_req"},"2158":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Flush"},"2157":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Close"},"2156":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Calc_others_req"},"2155":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Calc_my_req"},"2154":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Calc_file_domains"},"2153":{"probe_name":"mpi-rest","function_name":"ADIOI_GPFS_Calc_aggregator"},"2152":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_iwc_wait_fn"},"2151":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_iwc_query_fn"},"2150":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_iwc_poll_fn"},"2149":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_iwc_free_fn"},"2148":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_irc_wait_fn"},"2147":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_irc_query_fn"},"2146":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_irc_poll_fn"},"2145":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_irc_free_fn"},"2144":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_flock_type_to_string"},"2143":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_flock_cmd_to_string"},"2142":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_aio_wait_fn"},"2141":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_aio_query_fn"},"2140":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_aio_poll_fn"},"2139":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_aio_free_fn"},"2138":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_aio"},"2137":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_WriteStrided_naive"},"2136":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_WriteStridedColl"},"2135":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_WriteStrided"},"2134":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_WriteContig"},"2133":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_SetLock64"},"2132":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_SetLock"},"2131":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_SetInfo"},"2130":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_SeekIndividual"},"2129":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_Resize"},"2128":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_ReadStrided_naive"},"2127":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_ReadStridedColl"},"2126":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_ReadStrided"},"2125":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_ReadContig"},"2124":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_Prealloc"},"2123":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_OpenColl"},"2122":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStridedColl_inter"},"2121":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStridedColl_indio"},"2120":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStridedColl_free"},"2119":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStridedColl_fini"},"2118":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStridedColl_exch"},"2117":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStridedColl_bcast"},"2116":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStridedColl"},"2115":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteStrided"},"2114":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IwriteContig"},"2113":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadStridedColl_read"},"2112":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadStridedColl_inter"},"2111":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadStridedColl_indio"},"2110":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadStridedColl_free"},"2109":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadStridedColl_fini"},"2108":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadStridedColl"},"2107":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadStrided"},"2106":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IreadContig"},"1537":{"probe_name":"mpi-api","function_name":"PMPI_Op_create"},"1536":{"probe_name":"mpi-api","function_name":"PMPI_Op_commutative"},"1535":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw_init_c.cold"},"1534":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw_init_c"},"1533":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw_init.cold"},"1532":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw_init"},"1531":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw_c.cold"},"1530":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw_c"},"1529":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw.cold"},"1528":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallw"},"1527":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv_init_c.cold"},"1526":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv_init_c"},"1525":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv_init.cold"},"1524":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv_init"},"1523":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv_c.cold"},"1522":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv_c"},"1521":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv.cold"},"1520":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoallv"},"1519":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall_init_c.cold"},"1518":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall_init_c"},"1517":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall_init.cold"},"1516":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall_init"},"1515":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall_c.cold"},"1514":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall_c"},"1513":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall.cold"},"1512":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_alltoall"},"1511":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv_init_c.cold"},"1510":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv_init_c"},"1509":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv_init.cold"},"1508":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv_init"},"1507":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv_c.cold"},"1506":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv_c"},"1505":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv.cold"},"1504":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgatherv"},"1503":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather_init_c.cold"},"1502":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather_init_c"},"1501":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather_init.cold"},"1500":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather_init"},"1499":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather_c.cold"},"1498":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather_c"},"1497":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather.cold"},"1496":{"probe_name":"mpi-api","function_name":"PMPI_Neighbor_allgather"},"1495":{"probe_name":"mpi-api","function_name":"PMPI_Mrecv_c.cold"},"1494":{"probe_name":"mpi-api","function_name":"PMPI_Mrecv_c"},"1493":{"probe_name":"mpi-api","function_name":"PMPI_Mrecv.cold"},"1492":{"probe_name":"mpi-api","function_name":"PMPI_Mrecv"},"1491":{"probe_name":"mpi-api","function_name":"PMPI_Mprobe"},"1490":{"probe_name":"mpi-api","function_name":"PMPI_Lookup_name"},"1489":{"probe_name":"mpi-api","function_name":"PMPI_Keyval_free"},"1488":{"probe_name":"mpi-api","function_name":"PMPI_Keyval_create"},"1487":{"probe_name":"mpi-api","function_name":"PMPI_Issend_c.cold"},"1486":{"probe_name":"mpi-api","function_name":"PMPI_Issend_c"},"1485":{"probe_name":"mpi-api","function_name":"PMPI_Issend.cold"},"1484":{"probe_name":"mpi-api","function_name":"PMPI_Issend"},"1483":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv_replace_c.cold"},"1482":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv_replace_c"},"1481":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv_replace.cold"},"1480":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv_replace"},"1479":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv_c.cold"},"1478":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv_c"},"1477":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv.cold"},"1476":{"probe_name":"mpi-api","function_name":"PMPI_Isendrecv"},"1475":{"probe_name":"mpi-api","function_name":"PMPI_Isend_c.cold"},"1474":{"probe_name":"mpi-api","function_name":"PMPI_Isend_c"},"1473":{"probe_name":"mpi-api","function_name":"PMPI_Isend.cold"},"1472":{"probe_name":"mpi-api","function_name":"PMPI_Isend"},"1471":{"probe_name":"mpi-api","function_name":"PMPI_Iscatterv_c.cold"},"1470":{"probe_name":"mpi-api","function_name":"PMPI_Iscatterv_c"},"1469":{"probe_name":"mpi-api","function_name":"PMPI_Iscatterv.cold"},"1468":{"probe_name":"mpi-api","function_name":"PMPI_Iscatterv"},"1467":{"probe_name":"mpi-api","function_name":"PMPI_Iscatter_c.cold"},"1466":{"probe_name":"mpi-api","function_name":"PMPI_Iscatter_c"},"1465":{"probe_name":"mpi-api","function_name":"PMPI_Iscatter.cold"},"1464":{"probe_name":"mpi-api","function_name":"PMPI_Iscatter"},"1463":{"probe_name":"mpi-api","function_name":"PMPI_Iscan_c.cold"},"1462":{"probe_name":"mpi-api","function_name":"PMPI_Iscan_c"},"1461":{"probe_name":"mpi-api","function_name":"PMPI_Iscan.cold"},"1460":{"probe_name":"mpi-api","function_name":"PMPI_Iscan"},"1459":{"probe_name":"mpi-api","function_name":"PMPI_Is_thread_main"},"1458":{"probe_name":"mpi-api","function_name":"PMPI_Irsend_c.cold"},"1457":{"probe_name":"mpi-api","function_name":"PMPI_Irsend_c"},"1456":{"probe_name":"mpi-api","function_name":"PMPI_Irsend.cold"},"1455":{"probe_name":"mpi-api","function_name":"PMPI_Irsend"},"1454":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter_c.cold"},"1453":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter_c"},"1452":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter_block_c.cold"},"1451":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter_block_c"},"1450":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter_block.cold"},"1449":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter_block"},"1448":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter.cold"},"1447":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_scatter"},"1446":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_c.cold"},"1445":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce_c"},"1444":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce.cold"},"1443":{"probe_name":"mpi-api","function_name":"PMPI_Ireduce"},"1442":{"probe_name":"mpi-api","function_name":"PMPI_Irecv_c.cold"},"1441":{"probe_name":"mpi-api","function_name":"PMPI_Irecv_c"},"1440":{"probe_name":"mpi-api","function_name":"PMPI_Irecv.cold"},"1439":{"probe_name":"mpi-api","function_name":"PMPI_Irecv"},"1438":{"probe_name":"mpi-api","function_name":"PMPI_Iprobe"},"1437":{"probe_name":"mpi-api","function_name":"PMPI_Intercomm_merge.cold"},"1436":{"probe_name":"mpi-api","function_name":"PMPI_Intercomm_merge"},"1435":{"probe_name":"mpi-api","function_name":"PMPI_Intercomm_create_from_groups"},"1434":{"probe_name":"mpi-api","function_name":"PMPI_Intercomm_create.cold"},"1433":{"probe_name":"mpi-api","function_name":"PMPI_Intercomm_create"},"1432":{"probe_name":"mpi-api","function_name":"PMPI_Initialized"},"1431":{"probe_name":"mpi-api","function_name":"PMPI_Init_thread"},"1430":{"probe_name":"mpi-api","function_name":"PMPI_Init"},"1429":{"probe_name":"mpi-api","function_name":"PMPI_Info_set"},"1428":{"probe_name":"mpi-api","function_name":"PMPI_Info_get_valuelen"},"1427":{"probe_name":"mpi-api","function_name":"PMPI_Info_get_string"},"1426":{"probe_name":"mpi-api","function_name":"PMPI_Info_get_nthkey"},"1425":{"probe_name":"mpi-api","function_name":"PMPI_Info_get_nkeys"},"1424":{"probe_name":"mpi-api","function_name":"PMPI_Info_get"},"1423":{"probe_name":"mpi-api","function_name":"PMPI_Info_free"},"1422":{"probe_name":"mpi-api","function_name":"PMPI_Info_dup"},"1421":{"probe_name":"mpi-api","function_name":"PMPI_Info_delete"},"1420":{"probe_name":"mpi-api","function_name":"PMPI_Info_create_env"},"1419":{"probe_name":"mpi-api","function_name":"PMPI_Info_create"},"1418":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallw_c.cold"},"1417":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallw_c"},"1416":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallw.cold"},"1415":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallw"},"1414":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallv_c.cold"},"1413":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallv_c"},"1412":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallv.cold"},"1411":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoallv"},"1410":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoall_c.cold"},"1409":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoall_c"},"1408":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoall.cold"},"1407":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_alltoall"},"1406":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgatherv_c.cold"},"1405":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgatherv_c"},"1404":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgatherv.cold"},"1403":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgatherv"},"1402":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgather_c.cold"},"1401":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgather_c"},"1400":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgather.cold"},"1399":{"probe_name":"mpi-api","function_name":"PMPI_Ineighbor_allgather"},"1398":{"probe_name":"mpi-api","function_name":"PMPI_Imrecv_c.cold"},"1397":{"probe_name":"mpi-api","function_name":"PMPI_Imrecv_c"},"1396":{"probe_name":"mpi-api","function_name":"PMPI_Imrecv.cold"},"1395":{"probe_name":"mpi-api","function_name":"PMPI_Imrecv"},"1394":{"probe_name":"mpi-api","function_name":"PMPI_Improbe"},"1393":{"probe_name":"mpi-api","function_name":"PMPI_Igatherv_c.cold"},"1392":{"probe_name":"mpi-api","function_name":"PMPI_Igatherv_c"},"1391":{"probe_name":"mpi-api","function_name":"PMPI_Igatherv.cold"},"1390":{"probe_name":"mpi-api","function_name":"PMPI_Igatherv"},"1389":{"probe_name":"mpi-api","function_name":"PMPI_Igather_c.cold"},"1388":{"probe_name":"mpi-api","function_name":"PMPI_Igather_c"},"1387":{"probe_name":"mpi-api","function_name":"PMPI_Igather.cold"},"1386":{"probe_name":"mpi-api","function_name":"PMPI_Igather"},"1385":{"probe_name":"mpi-api","function_name":"PMPI_Iexscan_c.cold"},"1384":{"probe_name":"mpi-api","function_name":"PMPI_Iexscan_c"},"1383":{"probe_name":"mpi-api","function_name":"PMPI_Iexscan.cold"},"1382":{"probe_name":"mpi-api","function_name":"PMPI_Iexscan"},"1381":{"probe_name":"mpi-api","function_name":"PMPI_Ibsend_c.cold"},"1380":{"probe_name":"mpi-api","function_name":"PMPI_Ibsend_c"},"1379":{"probe_name":"mpi-api","function_name":"PMPI_Ibsend.cold"},"1378":{"probe_name":"mpi-api","function_name":"PMPI_Ibsend"},"1377":{"probe_name":"mpi-api","function_name":"PMPI_Ibcast_c.cold"},"1376":{"probe_name":"mpi-api","function_name":"PMPI_Ibcast_c"},"1375":{"probe_name":"mpi-api","function_name":"PMPI_Ibcast.cold"},"1374":{"probe_name":"mpi-api","function_name":"PMPI_Ibcast"},"1373":{"probe_name":"mpi-api","function_name":"PMPI_Ibarrier"},"1372":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallw_c.cold"},"1371":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallw_c"},"1370":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallw.cold"},"1369":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallw"},"1368":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallv_c.cold"},"1367":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallv_c"},"1366":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallv.cold"},"1365":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoallv"},"1364":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoall_c.cold"},"1363":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoall_c"},"1362":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoall.cold"},"1361":{"probe_name":"mpi-api","function_name":"PMPI_Ialltoall"},"1360":{"probe_name":"mpi-api","function_name":"PMPI_Iallreduce_c.cold"},"1359":{"probe_name":"mpi-api","function_name":"PMPI_Iallreduce_c"},"1358":{"probe_name":"mpi-api","function_name":"PMPI_Iallreduce.cold"},"1357":{"probe_name":"mpi-api","function_name":"PMPI_Iallreduce"},"1356":{"probe_name":"mpi-api","function_name":"PMPI_Iallgatherv_c.cold"},"1355":{"probe_name":"mpi-api","function_name":"PMPI_Iallgatherv_c"},"1354":{"probe_name":"mpi-api","function_name":"PMPI_Iallgatherv.cold"},"1353":{"probe_name":"mpi-api","function_name":"PMPI_Iallgatherv"},"1352":{"probe_name":"mpi-api","function_name":"PMPI_Iallgather_c.cold"},"1351":{"probe_name":"mpi-api","function_name":"PMPI_Iallgather_c"},"1350":{"probe_name":"mpi-api","function_name":"PMPI_Iallgather.cold"},"1349":{"probe_name":"mpi-api","function_name":"PMPI_Iallgather"},"1348":{"probe_name":"mpi-api","function_name":"PMPI_Group_union"},"1347":{"probe_name":"mpi-api","function_name":"PMPI_Group_translate_ranks"},"1346":{"probe_name":"mpi-api","function_name":"PMPI_Group_size"},"1345":{"probe_name":"mpi-api","function_name":"PMPI_Group_rank"},"1344":{"probe_name":"mpi-api","function_name":"PMPI_Group_range_incl"},"1343":{"probe_name":"mpi-api","function_name":"PMPI_Group_range_excl"},"1342":{"probe_name":"mpi-api","function_name":"PMPI_Group_intersection"},"1341":{"probe_name":"mpi-api","function_name":"PMPI_Group_incl"},"1340":{"probe_name":"mpi-api","function_name":"PMPI_Group_from_session_pset"},"1339":{"probe_name":"mpi-api","function_name":"PMPI_Group_free"},"1338":{"probe_name":"mpi-api","function_name":"PMPI_Group_excl.cold"},"1337":{"probe_name":"mpi-api","function_name":"PMPI_Group_excl"},"1336":{"probe_name":"mpi-api","function_name":"PMPI_Group_difference"},"1335":{"probe_name":"mpi-api","function_name":"PMPI_Group_compare"},"1334":{"probe_name":"mpi-api","function_name":"PMPI_Grequest_start"},"1333":{"probe_name":"mpi-api","function_name":"PMPI_Grequest_complete"},"1332":{"probe_name":"mpi-api","function_name":"PMPI_Graphdims_get"},"1331":{"probe_name":"mpi-api","function_name":"PMPI_Graph_neighbors_count"},"1330":{"probe_name":"mpi-api","function_name":"PMPI_Graph_neighbors"},"1329":{"probe_name":"mpi-api","function_name":"PMPI_Graph_map"},"1328":{"probe_name":"mpi-api","function_name":"PMPI_Graph_get"},"1327":{"probe_name":"mpi-api","function_name":"PMPI_Graph_create.cold"},"1326":{"probe_name":"mpi-api","function_name":"PMPI_Graph_create"},"1325":{"probe_name":"mpi-api","function_name":"PMPI_Get_version"},"1324":{"probe_name":"mpi-api","function_name":"PMPI_Get_processor_name"},"1323":{"probe_name":"mpi-api","function_name":"PMPI_Get_library_version"},"1322":{"probe_name":"mpi-api","function_name":"PMPI_Get_elements_x.cold"},"1321":{"probe_name":"mpi-api","function_name":"PMPI_Get_elements_x"},"1320":{"probe_name":"mpi-api","function_name":"PMPI_Get_elements_c.cold"},"1319":{"probe_name":"mpi-api","function_name":"PMPI_Get_elements_c"},"1318":{"probe_name":"mpi-api","function_name":"PMPI_Get_elements.cold"},"1317":{"probe_name":"mpi-api","function_name":"PMPI_Get_elements"},"1316":{"probe_name":"mpi-api","function_name":"PMPI_Get_count_c"},"1315":{"probe_name":"mpi-api","function_name":"PMPI_Get_count"},"1314":{"probe_name":"mpi-api","function_name":"PMPI_Get_c.cold"},"1313":{"probe_name":"mpi-api","function_name":"PMPI_Get_c"},"1312":{"probe_name":"mpi-api","function_name":"PMPI_Get_address"},"1311":{"probe_name":"mpi-api","function_name":"PMPI_Get_accumulate_c.cold"},"1310":{"probe_name":"mpi-api","function_name":"PMPI_Get_accumulate_c"},"1309":{"probe_name":"mpi-api","function_name":"PMPI_Get_accumulate.cold"},"1308":{"probe_name":"mpi-api","function_name":"PMPI_Get_accumulate"},"1307":{"probe_name":"mpi-api","function_name":"PMPI_Get.cold"},"1306":{"probe_name":"mpi-api","function_name":"PMPI_Get"},"1305":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv_init_c.cold"},"1304":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv_init_c"},"1303":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv_init.cold"},"1302":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv_init"},"1301":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv_c.cold"},"1300":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv_c"},"1299":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv.cold"},"1298":{"probe_name":"mpi-api","function_name":"PMPI_Gatherv"},"1297":{"probe_name":"mpi-api","function_name":"PMPI_Gather_init_c.cold"},"1296":{"probe_name":"mpi-api","function_name":"PMPI_Gather_init_c"},"1295":{"probe_name":"mpi-api","function_name":"PMPI_Gather_init.cold"},"1294":{"probe_name":"mpi-api","function_name":"PMPI_Gather_init"},"1293":{"probe_name":"mpi-api","function_name":"PMPI_Gather_c.cold"},"1292":{"probe_name":"mpi-api","function_name":"PMPI_Gather_c"},"1291":{"probe_name":"mpi-api","function_name":"PMPI_Gather.cold"},"1290":{"probe_name":"mpi-api","function_name":"PMPI_Gather"},"1289":{"probe_name":"mpi-api","function_name":"PMPI_Free_mem"},"1288":{"probe_name":"mpi-api","function_name":"PMPI_Finalized"},"1287":{"probe_name":"mpi-api","function_name":"PMPI_Finalize"},"1286":{"probe_name":"mpi-api","function_name":"PMPI_File_write_shared_c"},"1285":{"probe_name":"mpi-api","function_name":"PMPI_File_write_shared"},"1284":{"probe_name":"mpi-api","function_name":"PMPI_File_write_ordered_end"},"1283":{"probe_name":"mpi-api","function_name":"PMPI_File_write_ordered_c"},"1282":{"probe_name":"mpi-api","function_name":"PMPI_File_write_ordered_begin_c"},"1281":{"probe_name":"mpi-api","function_name":"PMPI_File_write_ordered_begin"},"1280":{"probe_name":"mpi-api","function_name":"PMPI_File_write_ordered"},"1279":{"probe_name":"mpi-api","function_name":"PMPI_File_write_c"},"1278":{"probe_name":"mpi-api","function_name":"PMPI_File_write_at_c"},"1277":{"probe_name":"mpi-api","function_name":"PMPI_File_write_at_all_end"},"1276":{"probe_name":"mpi-api","function_name":"PMPI_File_write_at_all_c"},"1275":{"probe_name":"mpi-api","function_name":"PMPI_File_write_at_all_begin_c"},"1274":{"probe_name":"mpi-api","function_name":"PMPI_File_write_at_all_begin"},"1273":{"probe_name":"mpi-api","function_name":"PMPI_File_write_at_all"},"1272":{"probe_name":"mpi-api","function_name":"PMPI_File_write_at"},"1271":{"probe_name":"mpi-api","function_name":"PMPI_File_write_all_end"},"1270":{"probe_name":"mpi-api","function_name":"PMPI_File_write_all_c"},"1269":{"probe_name":"mpi-api","function_name":"PMPI_File_write_all_begin_c"},"1268":{"probe_name":"mpi-api","function_name":"PMPI_File_write_all_begin"},"1267":{"probe_name":"mpi-api","function_name":"PMPI_File_write_all"},"1266":{"probe_name":"mpi-api","function_name":"PMPI_File_write"},"1265":{"probe_name":"mpi-api","function_name":"PMPI_File_sync"},"1264":{"probe_name":"mpi-api","function_name":"PMPI_File_set_view"},"1263":{"probe_name":"mpi-api","function_name":"PMPI_File_set_size"},"1262":{"probe_name":"mpi-api","function_name":"PMPI_File_set_info"},"1261":{"probe_name":"mpi-api","function_name":"PMPI_File_set_errhandler"},"1260":{"probe_name":"mpi-api","function_name":"PMPI_File_set_atomicity"},"1259":{"probe_name":"mpi-api","function_name":"PMPI_File_seek_shared"},"1258":{"probe_name":"mpi-api","function_name":"PMPI_File_seek"},"1257":{"probe_name":"mpi-api","function_name":"PMPI_File_read_shared_c"},"1256":{"probe_name":"mpi-api","function_name":"PMPI_File_read_shared"},"1255":{"probe_name":"mpi-api","function_name":"PMPI_File_read_ordered_end"},"1254":{"probe_name":"mpi-api","function_name":"PMPI_File_read_ordered_c"},"1123":{"probe_name":"mpi-api","function_name":"PMPI_Cart_create"},"1122":{"probe_name":"mpi-api","function_name":"PMPI_Cart_coords"},"1121":{"probe_name":"mpi-api","function_name":"PMPI_Cancel"},"1120":{"probe_name":"mpi-api","function_name":"PMPI_Buffer_detach_c"},"1119":{"probe_name":"mpi-api","function_name":"PMPI_Buffer_detach"},"1118":{"probe_name":"mpi-api","function_name":"PMPI_Buffer_attach_c"},"1117":{"probe_name":"mpi-api","function_name":"PMPI_Buffer_attach"},"1116":{"probe_name":"mpi-api","function_name":"PMPI_Bsend_init_c.cold"},"1115":{"probe_name":"mpi-api","function_name":"PMPI_Bsend_init_c"},"1114":{"probe_name":"mpi-api","function_name":"PMPI_Bsend_init.cold"},"1113":{"probe_name":"mpi-api","function_name":"PMPI_Bsend_init"},"1112":{"probe_name":"mpi-api","function_name":"PMPI_Bsend_c.cold"},"1111":{"probe_name":"mpi-api","function_name":"PMPI_Bsend_c"},"2359":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_init"},"2":{"probe_name":"DC","function_name":"end"},"5089":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_iprobe.constprop.0:0x477d60"},"1110":{"probe_name":"mpi-api","function_name":"PMPI_Bsend.cold"},"2358":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_finalize"},"1":{"probe_name":"DC","function_name":"start"},"5088":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_iprobe.constprop.0:0x456980"},"1109":{"probe_name":"mpi-api","function_name":"PMPI_Bsend"},"2357":{"probe_name":"mpi-rest","function_name":"MPIDIG_am_comm_abort_init"},"0":{"probe_name":"M","function_name":"SH"},"5087":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_iprobe.constprop.0:0x191780"},"1108":{"probe_name":"mpi-api","function_name":"PMPI_Bcast_init_c.cold"},"1107":{"probe_name":"mpi-api","function_name":"PMPI_Bcast_init_c"},"1106":{"probe_name":"mpi-api","function_name":"PMPI_Bcast_init.cold"},"1105":{"probe_name":"mpi-api","function_name":"PMPI_Bcast_init"},"1104":{"probe_name":"mpi-api","function_name":"PMPI_Bcast_c.cold"},"1103":{"probe_name":"mpi-api","function_name":"PMPI_Bcast_c"},"1102":{"probe_name":"mpi-api","function_name":"PMPI_Bcast.cold"},"1101":{"probe_name":"mpi-api","function_name":"PMPI_Bcast"},"1100":{"probe_name":"mpi-api","function_name":"PMPI_Barrier_init"},"1099":{"probe_name":"mpi-api","function_name":"PMPI_Barrier.cold"},"1098":{"probe_name":"mpi-api","function_name":"PMPI_Barrier"},"1097":{"probe_name":"mpi-api","function_name":"PMPI_Attr_put"},"1096":{"probe_name":"mpi-api","function_name":"PMPI_Attr_get"},"1095":{"probe_name":"mpi-api","function_name":"PMPI_Attr_delete"},"1094":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw_init_c.cold"},"1093":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw_init_c"},"1092":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw_init.cold"},"1091":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw_init"},"1090":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw_c.cold"},"1089":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw_c"},"1088":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw.cold"},"1087":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallw"},"1086":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv_init_c.cold"},"1085":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv_init_c"},"1081":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv_c"},"1080":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv.cold"},"1079":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv"},"1078":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall_init_c.cold"},"1077":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall_init_c"},"1076":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall_init.cold"},"1075":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall_init"},"1074":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall_c.cold"},"1073":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall_c"},"1072":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall.cold"},"1071":{"probe_name":"mpi-api","function_name":"PMPI_Alltoall"},"1070":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce_init_c.cold"},"1069":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce_init_c"},"1068":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce_init.cold"},"1067":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce_init"},"1066":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce_c.cold"},"1065":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce_c"},"1064":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce.cold"},"1063":{"probe_name":"mpi-api","function_name":"PMPI_Allreduce"},"1062":{"probe_name":"mpi-api","function_name":"PMPI_Alloc_mem"},"1061":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv_init_c.cold"},"1060":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv_init_c"},"1059":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv_init.cold"},"1058":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv_init"},"1057":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv_c.cold"},"1056":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv_c"},"1025":{"probe_name":"mpi-api","function_name":"PMPIX_Query_hip_support"},"1024":{"probe_name":"mpi-api","function_name":"PMPIX_Query_cuda_support"},"1023":{"probe_name":"mpi-api","function_name":"PMPIX_KT_Get_dreq.cold"},"1022":{"probe_name":"mpi-api","function_name":"PMPIX_KT_Get_dreq"},"1021":{"probe_name":"mpi-api","function_name":"PMPIX_Info_set_hex"},"1020":{"probe_name":"mpi-api","function_name":"PMPIX_Grequest_start"},"1019":{"probe_name":"mpi-api","function_name":"PMPIX_Grequest_class_create"},"1014":{"probe_name":"mpi-api","function_name":"PMPIX_Enqueue_start"},"1013":{"probe_name":"mpi-api","function_name":"PMPIX_Enqueue_send.cold"},"1012":{"probe_name":"mpi-api","function_name":"PMPIX_Enqueue_send"},"1011":{"probe_name":"mpi-api","function_name":"PMPIX_Enqueue_recv.cold"},"1010":{"probe_name":"mpi-api","function_name":"PMPIX_Enqueue_recv"},"1015":{"probe_name":"mpi-api","function_name":"PMPIX_Enqueue_wait"},"1003":{"probe_name":"mpi-api","function_name":"PMPIX_Comm_get_failed"},"1001":{"probe_name":"mpi-api","function_name":"PMPIX_Comm_failure_ack"},"1082":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv_c.cold"},"1028":{"probe_name":"mpi-api","function_name":"PMPIX_Type_iov.cold"},"1016":{"probe_name":"mpi-api","function_name":"PMPIX_Free_queue"},"1004":{"probe_name":"mpi-api","function_name":"PMPIX_Comm_revoke"},"1002":{"probe_name":"mpi-api","function_name":"PMPIX_Comm_failure_get_acked"},"1083":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv_init"},"1029":{"probe_name":"mpi-api","function_name":"PMPIX_Type_iov_len"},"1017":{"probe_name":"mpi-api","function_name":"PMPIX_GPU_query_support"},"1018":{"probe_name":"mpi-api","function_name":"PMPIX_Grequest_class_allocate"},"1084":{"probe_name":"mpi-api","function_name":"PMPI_Alltoallv_init.cold"},"1030":{"probe_name":"mpi-api","function_name":"PMPIX_Type_iov_len.cold"},"1005":{"probe_name":"mpi-api","function_name":"PMPIX_Comm_shrink"},"1000":{"probe_name":"mpi-api","function_name":"PMPIX_Comm_agree"},"1006":{"probe_name":"mpi-api","function_name":"PMPIX_Create_queue"},"1007":{"probe_name":"mpi-api","function_name":"PMPIX_Delete_error_class"},"1008":{"probe_name":"mpi-api","function_name":"PMPIX_Delete_error_code"},"1009":{"probe_name":"mpi-api","function_name":"PMPIX_Delete_error_string"},"1026":{"probe_name":"mpi-api","function_name":"PMPIX_Query_ze_support"},"1027":{"probe_name":"mpi-api","function_name":"PMPIX_Type_iov"},"1031":{"probe_name":"mpi-api","function_name":"PMPIX_Win_complete_stream"},"1032":{"probe_name":"mpi-api","function_name":"PMPIX_Win_post_stream"},"1033":{"probe_name":"mpi-api","function_name":"PMPIX_Win_progress_stream"},"1034":{"probe_name":"mpi-api","function_name":"PMPIX_Win_wait_stream"},"1035":{"probe_name":"mpi-api","function_name":"PMPI_Abort"},"1036":{"probe_name":"mpi-api","function_name":"PMPI_Accumulate"},"1037":{"probe_name":"mpi-api","function_name":"PMPI_Accumulate.cold"},"1038":{"probe_name":"mpi-api","function_name":"PMPI_Accumulate_c"},"1039":{"probe_name":"mpi-api","function_name":"PMPI_Accumulate_c.cold"},"1040":{"probe_name":"mpi-api","function_name":"PMPI_Add_error_class"},"1041":{"probe_name":"mpi-api","function_name":"PMPI_Add_error_code"},"1042":{"probe_name":"mpi-api","function_name":"PMPI_Add_error_string"},"1043":{"probe_name":"mpi-api","function_name":"PMPI_Address"},"1044":{"probe_name":"mpi-api","function_name":"PMPI_Aint_add"},"1045":{"probe_name":"mpi-api","function_name":"PMPI_Aint_diff"},"1046":{"probe_name":"mpi-api","function_name":"PMPI_Allgather"},"1047":{"probe_name":"mpi-api","function_name":"PMPI_Allgather.cold"},"1048":{"probe_name":"mpi-api","function_name":"PMPI_Allgather_c"},"1049":{"probe_name":"mpi-api","function_name":"PMPI_Allgather_c.cold"},"1050":{"probe_name":"mpi-api","function_name":"PMPI_Allgather_init"},"1051":{"probe_name":"mpi-api","function_name":"PMPI_Allgather_init.cold"},"1052":{"probe_name":"mpi-api","function_name":"PMPI_Allgather_init_c"},"1053":{"probe_name":"mpi-api","function_name":"PMPI_Allgather_init_c.cold"},"1054":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv"},"1055":{"probe_name":"mpi-api","function_name":"PMPI_Allgatherv.cold"},"1124":{"probe_name":"mpi-api","function_name":"PMPI_Cart_create.cold"},"1125":{"probe_name":"mpi-api","function_name":"PMPI_Cart_get"},"1126":{"probe_name":"mpi-api","function_name":"PMPI_Cart_map"},"1127":{"probe_name":"mpi-api","function_name":"PMPI_Cart_rank"},"1128":{"probe_name":"mpi-api","function_name":"PMPI_Cart_shift"},"1129":{"probe_name":"mpi-api","function_name":"PMPI_Cart_sub"},"1130":{"probe_name":"mpi-api","function_name":"PMPI_Cartdim_get"},"1131":{"probe_name":"mpi-api","function_name":"PMPI_Close_port"},"1132":{"probe_name":"mpi-api","function_name":"PMPI_Comm_accept"},"1133":{"probe_name":"mpi-api","function_name":"PMPI_Comm_call_errhandler"},"1134":{"probe_name":"mpi-api","function_name":"PMPI_Comm_compare"},"1135":{"probe_name":"mpi-api","function_name":"PMPI_Comm_connect"},"1136":{"probe_name":"mpi-api","function_name":"PMPI_Comm_create"},"1137":{"probe_name":"mpi-api","function_name":"PMPI_Comm_create_errhandler"},"1138":{"probe_name":"mpi-api","function_name":"PMPI_Comm_create_from_group"},"1139":{"probe_name":"mpi-api","function_name":"PMPI_Comm_create_group"},"1140":{"probe_name":"mpi-api","function_name":"PMPI_Comm_create_group.cold"},"1141":{"probe_name":"mpi-api","function_name":"PMPI_Comm_create_keyval"},"1142":{"probe_name":"mpi-api","function_name":"PMPI_Comm_delete_attr"},"1143":{"probe_name":"mpi-api","function_name":"PMPI_Comm_disconnect"},"1144":{"probe_name":"mpi-api","function_name":"PMPI_Comm_dup"},"1145":{"probe_name":"mpi-api","function_name":"PMPI_Comm_dup_with_info"},"1146":{"probe_name":"mpi-api","function_name":"PMPI_Comm_free"},"1147":{"probe_name":"mpi-api","function_name":"PMPI_Comm_free_keyval"},"1148":{"probe_name":"mpi-api","function_name":"PMPI_Comm_get_attr"},"1149":{"probe_name":"mpi-api","function_name":"PMPI_Comm_get_errhandler"},"1150":{"probe_name":"mpi-api","function_name":"PMPI_Comm_get_info"},"1151":{"probe_name":"mpi-api","function_name":"PMPI_Comm_get_name"},"1152":{"probe_name":"mpi-api","function_name":"PMPI_Comm_get_parent"},"1153":{"probe_name":"mpi-api","function_name":"PMPI_Comm_group"},"1154":{"probe_name":"mpi-api","function_name":"PMPI_Comm_idup"},"1155":{"probe_name":"mpi-api","function_name":"PMPI_Comm_idup_with_info"},"1156":{"probe_name":"mpi-api","function_name":"PMPI_Comm_join"},"1157":{"probe_name":"mpi-api","function_name":"PMPI_Comm_rank"},"1158":{"probe_name":"mpi-api","function_name":"PMPI_Comm_remote_group"},"1159":{"probe_name":"mpi-api","function_name":"PMPI_Comm_remote_size"},"1160":{"probe_name":"mpi-api","function_name":"PMPI_Comm_set_attr"},"1161":{"probe_name":"mpi-api","function_name":"PMPI_Comm_set_errhandler"},"1162":{"probe_name":"mpi-api","function_name":"PMPI_Comm_set_info"},"1163":{"probe_name":"mpi-api","function_name":"PMPI_Comm_set_name"},"1164":{"probe_name":"mpi-api","function_name":"PMPI_Comm_size"},"1165":{"probe_name":"mpi-api","function_name":"PMPI_Comm_spawn"},"1166":{"probe_name":"mpi-api","function_name":"PMPI_Comm_spawn.cold"},"1167":{"probe_name":"mpi-api","function_name":"PMPI_Comm_spawn_multiple"},"1168":{"probe_name":"mpi-api","function_name":"PMPI_Comm_spawn_multiple.cold"},"1169":{"probe_name":"mpi-api","function_name":"PMPI_Comm_split"},"1170":{"probe_name":"mpi-api","function_name":"PMPI_Comm_split_type"},"1171":{"probe_name":"mpi-api","function_name":"PMPI_Comm_test_inter"},"1172":{"probe_name":"mpi-api","function_name":"PMPI_Compare_and_swap"},"1173":{"probe_name":"mpi-api","function_name":"PMPI_Compare_and_swap.cold"},"1174":{"probe_name":"mpi-api","function_name":"PMPI_Dims_create"},"1175":{"probe_name":"mpi-api","function_name":"PMPI_Dist_graph_create"},"1176":{"probe_name":"mpi-api","function_name":"PMPI_Dist_graph_create.cold"},"1177":{"probe_name":"mpi-api","function_name":"PMPI_Dist_graph_create_adjacent"},"1178":{"probe_name":"mpi-api","function_name":"PMPI_Dist_graph_create_adjacent.cold"},"1179":{"probe_name":"mpi-api","function_name":"PMPI_Dist_graph_neighbors"},"1180":{"probe_name":"mpi-api","function_name":"PMPI_Dist_graph_neighbors_count"},"1181":{"probe_name":"mpi-api","function_name":"PMPI_Errhandler_create"},"1182":{"probe_name":"mpi-api","function_name":"PMPI_Errhandler_free"},"1183":{"probe_name":"mpi-api","function_name":"PMPI_Errhandler_get"},"1184":{"probe_name":"mpi-api","function_name":"PMPI_Errhandler_set"},"1185":{"probe_name":"mpi-api","function_name":"PMPI_Error_class"},"1186":{"probe_name":"mpi-api","function_name":"PMPI_Error_string"},"1187":{"probe_name":"mpi-api","function_name":"PMPI_Exscan"},"1188":{"probe_name":"mpi-api","function_name":"PMPI_Exscan.cold"},"1189":{"probe_name":"mpi-api","function_name":"PMPI_Exscan_c"},"1190":{"probe_name":"mpi-api","function_name":"PMPI_Exscan_c.cold"},"1191":{"probe_name":"mpi-api","function_name":"PMPI_Exscan_init"},"1192":{"probe_name":"mpi-api","function_name":"PMPI_Exscan_init.cold"},"1193":{"probe_name":"mpi-api","function_name":"PMPI_Exscan_init_c"},"1194":{"probe_name":"mpi-api","function_name":"PMPI_Exscan_init_c.cold"},"1195":{"probe_name":"mpi-api","function_name":"PMPI_Fetch_and_op"},"1196":{"probe_name":"mpi-api","function_name":"PMPI_Fetch_and_op.cold"},"1197":{"probe_name":"mpi-api","function_name":"PMPI_File_c2f"},"1198":{"probe_name":"mpi-api","function_name":"PMPI_File_call_errhandler"},"1199":{"probe_name":"mpi-api","function_name":"PMPI_File_close"},"1200":{"probe_name":"mpi-api","function_name":"PMPI_File_create_errhandler"},"1201":{"probe_name":"mpi-api","function_name":"PMPI_File_delete"},"1202":{"probe_name":"mpi-api","function_name":"PMPI_File_f2c"},"1203":{"probe_name":"mpi-api","function_name":"PMPI_File_get_amode"},"1204":{"probe_name":"mpi-api","function_name":"PMPI_File_get_atomicity"},"1205":{"probe_name":"mpi-api","function_name":"PMPI_File_get_byte_offset"},"1206":{"probe_name":"mpi-api","function_name":"PMPI_File_get_errhandler"},"1207":{"probe_name":"mpi-api","function_name":"PMPI_File_get_group"},"1208":{"probe_name":"mpi-api","function_name":"PMPI_File_get_info"},"1209":{"probe_name":"mpi-api","function_name":"PMPI_File_get_position"},"1210":{"probe_name":"mpi-api","function_name":"PMPI_File_get_position_shared"},"1211":{"probe_name":"mpi-api","function_name":"PMPI_File_get_size"},"1212":{"probe_name":"mpi-api","function_name":"PMPI_File_get_type_extent"},"1213":{"probe_name":"mpi-api","function_name":"PMPI_File_get_type_extent_c"},"1214":{"probe_name":"mpi-api","function_name":"PMPI_File_get_view"},"1215":{"probe_name":"mpi-api","function_name":"PMPI_File_iread"},"1216":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_all"},"1217":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_all_c"},"1218":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_at"},"1219":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_at_all"},"1220":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_at_all_c"},"1221":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_at_c"},"1222":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_c"},"1223":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_shared"},"1224":{"probe_name":"mpi-api","function_name":"PMPI_File_iread_shared_c"},"1225":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite"},"1226":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_all"},"1227":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_all_c"},"1228":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_at"},"1229":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_at_all"},"1230":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_at_all_c"},"1231":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_at_c"},"1232":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_c"},"1233":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_shared"},"1234":{"probe_name":"mpi-api","function_name":"PMPI_File_iwrite_shared_c"},"1235":{"probe_name":"mpi-api","function_name":"PMPI_File_open"},"1236":{"probe_name":"mpi-api","function_name":"PMPI_File_preallocate"},"1237":{"probe_name":"mpi-api","function_name":"PMPI_File_read"},"1238":{"probe_name":"mpi-api","function_name":"PMPI_File_read_all"},"1239":{"probe_name":"mpi-api","function_name":"PMPI_File_read_all_begin"},"1240":{"probe_name":"mpi-api","function_name":"PMPI_File_read_all_begin_c"},"1241":{"probe_name":"mpi-api","function_name":"PMPI_File_read_all_c"},"1242":{"probe_name":"mpi-api","function_name":"PMPI_File_read_all_end"},"1243":{"probe_name":"mpi-api","function_name":"PMPI_File_read_at"},"1244":{"probe_name":"mpi-api","function_name":"PMPI_File_read_at_all"},"1245":{"probe_name":"mpi-api","function_name":"PMPI_File_read_at_all_begin"},"1246":{"probe_name":"mpi-api","function_name":"PMPI_File_read_at_all_begin_c"},"1247":{"probe_name":"mpi-api","function_name":"PMPI_File_read_at_all_c"},"1248":{"probe_name":"mpi-api","function_name":"PMPI_File_read_at_all_end"},"1249":{"probe_name":"mpi-api","function_name":"PMPI_File_read_at_c"},"1250":{"probe_name":"mpi-api","function_name":"PMPI_File_read_c"},"1251":{"probe_name":"mpi-api","function_name":"PMPI_File_read_ordered"},"1252":{"probe_name":"mpi-api","function_name":"PMPI_File_read_ordered_begin"},"1253":{"probe_name":"mpi-api","function_name":"PMPI_File_read_ordered_begin_c"},"1538":{"probe_name":"mpi-api","function_name":"PMPI_Op_create_c"},"1539":{"probe_name":"mpi-api","function_name":"PMPI_Op_free"},"1540":{"probe_name":"mpi-api","function_name":"PMPI_Open_port"},"1541":{"probe_name":"mpi-api","function_name":"PMPI_Pack"},"1542":{"probe_name":"mpi-api","function_name":"PMPI_Pack.cold"},"1543":{"probe_name":"mpi-api","function_name":"PMPI_Pack_c"},"1544":{"probe_name":"mpi-api","function_name":"PMPI_Pack_c.cold"},"1545":{"probe_name":"mpi-api","function_name":"PMPI_Pack_external"},"1546":{"probe_name":"mpi-api","function_name":"PMPI_Pack_external.cold"},"1547":{"probe_name":"mpi-api","function_name":"PMPI_Pack_external_c"},"1548":{"probe_name":"mpi-api","function_name":"PMPI_Pack_external_c.cold"},"1549":{"probe_name":"mpi-api","function_name":"PMPI_Pack_external_size"},"1550":{"probe_name":"mpi-api","function_name":"PMPI_Pack_external_size_c"},"1551":{"probe_name":"mpi-api","function_name":"PMPI_Pack_size"},"1552":{"probe_name":"mpi-api","function_name":"PMPI_Pack_size.cold"},"1553":{"probe_name":"mpi-api","function_name":"PMPI_Pack_size_c"},"1554":{"probe_name":"mpi-api","function_name":"PMPI_Pack_size_c.cold"},"1555":{"probe_name":"mpi-api","function_name":"PMPI_Parrived"},"1556":{"probe_name":"mpi-api","function_name":"PMPI_Parrived.cold"},"1557":{"probe_name":"mpi-api","function_name":"PMPI_Pcontrol"},"1558":{"probe_name":"mpi-api","function_name":"PMPI_Pready"},"1559":{"probe_name":"mpi-api","function_name":"PMPI_Pready.cold"},"1560":{"probe_name":"mpi-api","function_name":"PMPI_Pready_list"},"1561":{"probe_name":"mpi-api","function_name":"PMPI_Pready_list.cold"},"1562":{"probe_name":"mpi-api","function_name":"PMPI_Pready_range"},"1563":{"probe_name":"mpi-api","function_name":"PMPI_Pready_range.cold"},"1564":{"probe_name":"mpi-api","function_name":"PMPI_Precv_init"},"1565":{"probe_name":"mpi-api","function_name":"PMPI_Precv_init.cold"},"1566":{"probe_name":"mpi-api","function_name":"PMPI_Probe"},"1567":{"probe_name":"mpi-api","function_name":"PMPI_Psend_init"},"1568":{"probe_name":"mpi-api","function_name":"PMPI_Psend_init.cold"},"1569":{"probe_name":"mpi-api","function_name":"PMPI_Publish_name"},"1570":{"probe_name":"mpi-api","function_name":"PMPI_Put"},"1571":{"probe_name":"mpi-api","function_name":"PMPI_Put.cold"},"1572":{"probe_name":"mpi-api","function_name":"PMPI_Put_c"},"1573":{"probe_name":"mpi-api","function_name":"PMPI_Put_c.cold"},"1574":{"probe_name":"mpi-api","function_name":"PMPI_Query_thread"},"1575":{"probe_name":"mpi-api","function_name":"PMPI_Raccumulate"},"1576":{"probe_name":"mpi-api","function_name":"PMPI_Raccumulate.cold"},"1577":{"probe_name":"mpi-api","function_name":"PMPI_Raccumulate_c"},"1578":{"probe_name":"mpi-api","function_name":"PMPI_Raccumulate_c.cold"},"1579":{"probe_name":"mpi-api","function_name":"PMPI_Recv"},"1580":{"probe_name":"mpi-api","function_name":"PMPI_Recv.cold"},"1581":{"probe_name":"mpi-api","function_name":"PMPI_Recv_c"},"1582":{"probe_name":"mpi-api","function_name":"PMPI_Recv_c.cold"},"1583":{"probe_name":"mpi-api","function_name":"PMPI_Recv_init"},"1584":{"probe_name":"mpi-api","function_name":"PMPI_Recv_init.cold"},"1585":{"probe_name":"mpi-api","function_name":"PMPI_Recv_init_c"},"1586":{"probe_name":"mpi-api","function_name":"PMPI_Recv_init_c.cold"},"1587":{"probe_name":"mpi-api","function_name":"PMPI_Reduce"},"1588":{"probe_name":"mpi-api","function_name":"PMPI_Reduce.cold"},"1589":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_c"},"1590":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_c.cold"},"1591":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_init"},"1592":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_init.cold"},"1593":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_init_c"},"1594":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_init_c.cold"},"1595":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_local"},"1596":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_local.cold"},"1597":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_local_c"},"1598":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_local_c.cold"},"1599":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter"},"1600":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter.cold"},"1601":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block"},"1602":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block.cold"},"1603":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block_c"},"1604":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block_c.cold"},"1605":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block_init"},"1606":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block_init.cold"},"1607":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block_init_c"},"1608":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_block_init_c.cold"},"1609":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_c"},"1610":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_c.cold"},"1611":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_init"},"1612":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_init.cold"},"1613":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_init_c"},"1614":{"probe_name":"mpi-api","function_name":"PMPI_Reduce_scatter_init_c.cold"},"1615":{"probe_name":"mpi-api","function_name":"PMPI_Register_datarep"},"1616":{"probe_name":"mpi-api","function_name":"PMPI_Register_datarep_c"},"1617":{"probe_name":"mpi-api","function_name":"PMPI_Request_free"},"1618":{"probe_name":"mpi-api","function_name":"PMPI_Request_get_status"},"1619":{"probe_name":"mpi-api","function_name":"PMPI_Rget"},"1620":{"probe_name":"mpi-api","function_name":"PMPI_Rget.cold"},"1621":{"probe_name":"mpi-api","function_name":"PMPI_Rget_accumulate"},"1622":{"probe_name":"mpi-api","function_name":"PMPI_Rget_accumulate.cold"},"1623":{"probe_name":"mpi-api","function_name":"PMPI_Rget_accumulate_c"},"1624":{"probe_name":"mpi-api","function_name":"PMPI_Rget_accumulate_c.cold"},"1625":{"probe_name":"mpi-api","function_name":"PMPI_Rget_c"},"1626":{"probe_name":"mpi-api","function_name":"PMPI_Rget_c.cold"},"1627":{"probe_name":"mpi-api","function_name":"PMPI_Rput"},"1628":{"probe_name":"mpi-api","function_name":"PMPI_Rput.cold"},"1629":{"probe_name":"mpi-api","function_name":"PMPI_Rput_c"},"1630":{"probe_name":"mpi-api","function_name":"PMPI_Rput_c.cold"},"1631":{"probe_name":"mpi-api","function_name":"PMPI_Rsend"},"1632":{"probe_name":"mpi-api","function_name":"PMPI_Rsend.cold"},"1633":{"probe_name":"mpi-api","function_name":"PMPI_Rsend_c"},"1634":{"probe_name":"mpi-api","function_name":"PMPI_Rsend_c.cold"},"1635":{"probe_name":"mpi-api","function_name":"PMPI_Rsend_init"},"1636":{"probe_name":"mpi-api","function_name":"PMPI_Rsend_init.cold"},"1637":{"probe_name":"mpi-api","function_name":"PMPI_Rsend_init_c"},"1638":{"probe_name":"mpi-api","function_name":"PMPI_Rsend_init_c.cold"},"1639":{"probe_name":"mpi-api","function_name":"PMPI_Scan"},"1640":{"probe_name":"mpi-api","function_name":"PMPI_Scan.cold"},"1641":{"probe_name":"mpi-api","function_name":"PMPI_Scan_c"},"1642":{"probe_name":"mpi-api","function_name":"PMPI_Scan_c.cold"},"1643":{"probe_name":"mpi-api","function_name":"PMPI_Scan_init"},"1644":{"probe_name":"mpi-api","function_name":"PMPI_Scan_init.cold"},"1645":{"probe_name":"mpi-api","function_name":"PMPI_Scan_init_c"},"1646":{"probe_name":"mpi-api","function_name":"PMPI_Scan_init_c.cold"},"1647":{"probe_name":"mpi-api","function_name":"PMPI_Scatter"},"1648":{"probe_name":"mpi-api","function_name":"PMPI_Scatter.cold"},"1649":{"probe_name":"mpi-api","function_name":"PMPI_Scatter_c"},"1650":{"probe_name":"mpi-api","function_name":"PMPI_Scatter_c.cold"},"1651":{"probe_name":"mpi-api","function_name":"PMPI_Scatter_init"},"1652":{"probe_name":"mpi-api","function_name":"PMPI_Scatter_init.cold"},"1653":{"probe_name":"mpi-api","function_name":"PMPI_Scatter_init_c"},"1654":{"probe_name":"mpi-api","function_name":"PMPI_Scatter_init_c.cold"},"1655":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv"},"1656":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv.cold"},"1657":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv_c"},"1658":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv_c.cold"},"1659":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv_init"},"1660":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv_init.cold"},"1661":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv_init_c"},"1662":{"probe_name":"mpi-api","function_name":"PMPI_Scatterv_init_c.cold"},"1663":{"probe_name":"mpi-api","function_name":"PMPI_Send"},"1664":{"probe_name":"mpi-api","function_name":"PMPI_Send.cold"},"1665":{"probe_name":"mpi-api","function_name":"PMPI_Send_c"},"1666":{"probe_name":"mpi-api","function_name":"PMPI_Send_c.cold"},"1667":{"probe_name":"mpi-api","function_name":"PMPI_Send_init"},"1668":{"probe_name":"mpi-api","function_name":"PMPI_Send_init.cold"},"1669":{"probe_name":"mpi-api","function_name":"PMPI_Send_init_c"},"1670":{"probe_name":"mpi-api","function_name":"PMPI_Send_init_c.cold"},"1671":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv"},"1672":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv.cold"},"1673":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv_c"},"1674":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv_c.cold"},"1675":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv_replace"},"1676":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv_replace.cold"},"1677":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv_replace_c"},"1678":{"probe_name":"mpi-api","function_name":"PMPI_Sendrecv_replace_c.cold"},"1679":{"probe_name":"mpi-api","function_name":"PMPI_Session_call_errhandler"},"1680":{"probe_name":"mpi-api","function_name":"PMPI_Session_create_errhandler"},"1681":{"probe_name":"mpi-api","function_name":"PMPI_Session_finalize"},"1682":{"probe_name":"mpi-api","function_name":"PMPI_Session_get_errhandler"},"1683":{"probe_name":"mpi-api","function_name":"PMPI_Session_get_info"},"1684":{"probe_name":"mpi-api","function_name":"PMPI_Session_get_nth_pset"},"1685":{"probe_name":"mpi-api","function_name":"PMPI_Session_get_num_psets"},"1686":{"probe_name":"mpi-api","function_name":"PMPI_Session_get_pset_info"},"1687":{"probe_name":"mpi-api","function_name":"PMPI_Session_init"},"1688":{"probe_name":"mpi-api","function_name":"PMPI_Session_set_errhandler"},"1689":{"probe_name":"mpi-api","function_name":"PMPI_Ssend"},"1690":{"probe_name":"mpi-api","function_name":"PMPI_Ssend.cold"},"1691":{"probe_name":"mpi-api","function_name":"PMPI_Ssend_c"},"1692":{"probe_name":"mpi-api","function_name":"PMPI_Ssend_c.cold"},"1693":{"probe_name":"mpi-api","function_name":"PMPI_Ssend_init"},"1694":{"probe_name":"mpi-api","function_name":"PMPI_Ssend_init.cold"},"1695":{"probe_name":"mpi-api","function_name":"PMPI_Ssend_init_c"},"1696":{"probe_name":"mpi-api","function_name":"PMPI_Ssend_init_c.cold"},"1697":{"probe_name":"mpi-api","function_name":"PMPI_Start"},"1698":{"probe_name":"mpi-api","function_name":"PMPI_Startall"},"1699":{"probe_name":"mpi-api","function_name":"PMPI_Status_c2f"},"1700":{"probe_name":"mpi-api","function_name":"PMPI_Status_f2c"},"1701":{"probe_name":"mpi-api","function_name":"PMPI_Status_set_cancelled"},"1702":{"probe_name":"mpi-api","function_name":"PMPI_Status_set_elements"},"1703":{"probe_name":"mpi-api","function_name":"PMPI_Status_set_elements_c"},"1704":{"probe_name":"mpi-api","function_name":"PMPI_Status_set_elements_x"},"1705":{"probe_name":"mpi-api","function_name":"PMPI_T_category_changed"},"1706":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_categories"},"1707":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_cvars"},"1708":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_events"},"1709":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_index"},"1710":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_info"},"1711":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_num"},"1712":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_num_events"},"1713":{"probe_name":"mpi-api","function_name":"PMPI_T_category_get_pvars"},"1714":{"probe_name":"mpi-api","function_name":"PMPI_T_cvar_get_index"},"1715":{"probe_name":"mpi-api","function_name":"PMPI_T_cvar_get_info"},"1716":{"probe_name":"mpi-api","function_name":"PMPI_T_cvar_get_num"},"1717":{"probe_name":"mpi-api","function_name":"PMPI_T_cvar_handle_alloc"},"1718":{"probe_name":"mpi-api","function_name":"PMPI_T_cvar_handle_free"},"1719":{"probe_name":"mpi-api","function_name":"PMPI_T_cvar_read"},"1720":{"probe_name":"mpi-api","function_name":"PMPI_T_cvar_write"},"1721":{"probe_name":"mpi-api","function_name":"PMPI_T_enum_get_info"},"1722":{"probe_name":"mpi-api","function_name":"PMPI_T_enum_get_item"},"1723":{"probe_name":"mpi-api","function_name":"PMPI_T_event_callback_get_info"},"1724":{"probe_name":"mpi-api","function_name":"PMPI_T_event_callback_set_info"},"1725":{"probe_name":"mpi-api","function_name":"PMPI_T_event_copy"},"1726":{"probe_name":"mpi-api","function_name":"PMPI_T_event_get_index"},"1727":{"probe_name":"mpi-api","function_name":"PMPI_T_event_get_info"},"1728":{"probe_name":"mpi-api","function_name":"PMPI_T_event_get_num"},"1729":{"probe_name":"mpi-api","function_name":"PMPI_T_event_get_source"},"1730":{"probe_name":"mpi-api","function_name":"PMPI_T_event_get_timestamp"},"1731":{"probe_name":"mpi-api","function_name":"PMPI_T_event_handle_alloc"},"1732":{"probe_name":"mpi-api","function_name":"PMPI_T_event_handle_free"},"1733":{"probe_name":"mpi-api","function_name":"PMPI_T_event_handle_get_info"},"1734":{"probe_name":"mpi-api","function_name":"PMPI_T_event_handle_set_info"},"1735":{"probe_name":"mpi-api","function_name":"PMPI_T_event_read"},"1736":{"probe_name":"mpi-api","function_name":"PMPI_T_event_register_callback"},"1737":{"probe_name":"mpi-api","function_name":"PMPI_T_event_set_dropped_handler"},"1738":{"probe_name":"mpi-api","function_name":"PMPI_T_finalize"},"1739":{"probe_name":"mpi-api","function_name":"PMPI_T_init_thread"},"1740":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_get_index"},"1741":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_get_info"},"1742":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_get_info.cold"},"1743":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_get_num"},"1744":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_handle_alloc"},"1745":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_handle_alloc.cold"},"1746":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_handle_free"},"1747":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_read"},"1748":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_readreset"},"1749":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_reset"},"1750":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_session_create"},"1751":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_session_free"},"1752":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_start"},"1753":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_stop"},"1754":{"probe_name":"mpi-api","function_name":"PMPI_T_pvar_write"},"1755":{"probe_name":"mpi-api","function_name":"PMPI_T_source_get_info"},"1756":{"probe_name":"mpi-api","function_name":"PMPI_T_source_get_num"},"1757":{"probe_name":"mpi-api","function_name":"PMPI_T_source_get_timestamp"},"1758":{"probe_name":"mpi-api","function_name":"PMPI_Test"},"1759":{"probe_name":"mpi-api","function_name":"PMPI_Test_cancelled"},"1760":{"probe_name":"mpi-api","function_name":"PMPI_Testall"},"1761":{"probe_name":"mpi-api","function_name":"PMPI_Testany"},"1762":{"probe_name":"mpi-api","function_name":"PMPI_Testsome"},"1763":{"probe_name":"mpi-api","function_name":"PMPI_Topo_test"},"1764":{"probe_name":"mpi-api","function_name":"PMPI_Type_commit"},"1765":{"probe_name":"mpi-api","function_name":"PMPI_Type_contiguous"},"1766":{"probe_name":"mpi-api","function_name":"PMPI_Type_contiguous_c"},"1767":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_darray"},"1768":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_darray_c"},"1769":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_f90_complex"},"1770":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_f90_integer"},"1771":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_f90_real"},"1772":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_hindexed"},"1773":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_hindexed_block"},"1774":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_hindexed_block_c"},"1775":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_hindexed_c"},"1776":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_hvector"},"1777":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_hvector_c"},"1778":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_indexed_block"},"1779":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_indexed_block_c"},"1780":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_keyval"},"1781":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_resized"},"1782":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_resized_c"},"1783":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_struct"},"1784":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_struct_c"},"1785":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_subarray"},"1786":{"probe_name":"mpi-api","function_name":"PMPI_Type_create_subarray_c"},"1787":{"probe_name":"mpi-api","function_name":"PMPI_Type_delete_attr"},"1788":{"probe_name":"mpi-api","function_name":"PMPI_Type_dup"},"1789":{"probe_name":"mpi-api","function_name":"PMPI_Type_extent"},"1790":{"probe_name":"mpi-api","function_name":"PMPI_Type_free"},"1791":{"probe_name":"mpi-api","function_name":"PMPI_Type_free_keyval"},"1792":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_attr"},"1793":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_contents"},"1794":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_contents_c"},"1795":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_envelope"},"1796":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_envelope_c"},"1797":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_extent"},"1798":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_extent_c"},"1799":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_extent_x"},"1800":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_name"},"1801":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_true_extent"},"1802":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_true_extent_c"},"1803":{"probe_name":"mpi-api","function_name":"PMPI_Type_get_true_extent_x"},"1804":{"probe_name":"mpi-api","function_name":"PMPI_Type_hindexed"},"1805":{"probe_name":"mpi-api","function_name":"PMPI_Type_hvector"},"1806":{"probe_name":"mpi-api","function_name":"PMPI_Type_indexed"},"1807":{"probe_name":"mpi-api","function_name":"PMPI_Type_indexed_c"},"1808":{"probe_name":"mpi-api","function_name":"PMPI_Type_lb"},"1809":{"probe_name":"mpi-api","function_name":"PMPI_Type_match_size"},"1810":{"probe_name":"mpi-api","function_name":"PMPI_Type_set_attr"},"1811":{"probe_name":"mpi-api","function_name":"PMPI_Type_set_name"},"1812":{"probe_name":"mpi-api","function_name":"PMPI_Type_size"},"1813":{"probe_name":"mpi-api","function_name":"PMPI_Type_size_c"},"1814":{"probe_name":"mpi-api","function_name":"PMPI_Type_size_x"},"1815":{"probe_name":"mpi-api","function_name":"PMPI_Type_struct"},"1816":{"probe_name":"mpi-api","function_name":"PMPI_Type_ub"},"1817":{"probe_name":"mpi-api","function_name":"PMPI_Type_vector"},"1818":{"probe_name":"mpi-api","function_name":"PMPI_Type_vector_c"},"1819":{"probe_name":"mpi-api","function_name":"PMPI_Unpack"},"1820":{"probe_name":"mpi-api","function_name":"PMPI_Unpack.cold"},"1821":{"probe_name":"mpi-api","function_name":"PMPI_Unpack_c"},"1822":{"probe_name":"mpi-api","function_name":"PMPI_Unpack_c.cold"},"1823":{"probe_name":"mpi-api","function_name":"PMPI_Unpack_external"},"1824":{"probe_name":"mpi-api","function_name":"PMPI_Unpack_external.cold"},"1825":{"probe_name":"mpi-api","function_name":"PMPI_Unpack_external_c"},"1826":{"probe_name":"mpi-api","function_name":"PMPI_Unpack_external_c.cold"},"1827":{"probe_name":"mpi-api","function_name":"PMPI_Unpublish_name"},"1828":{"probe_name":"mpi-api","function_name":"PMPI_Wait"},"1829":{"probe_name":"mpi-api","function_name":"PMPI_Waitall"},"1830":{"probe_name":"mpi-api","function_name":"PMPI_Waitany"},"1831":{"probe_name":"mpi-api","function_name":"PMPI_Waitsome"},"1832":{"probe_name":"mpi-api","function_name":"PMPI_Win_allocate"},"1833":{"probe_name":"mpi-api","function_name":"PMPI_Win_allocate_c"},"1834":{"probe_name":"mpi-api","function_name":"PMPI_Win_allocate_shared"},"1835":{"probe_name":"mpi-api","function_name":"PMPI_Win_allocate_shared_c"},"1836":{"probe_name":"mpi-api","function_name":"PMPI_Win_attach"},"1837":{"probe_name":"mpi-api","function_name":"PMPI_Win_call_errhandler"},"1838":{"probe_name":"mpi-api","function_name":"PMPI_Win_complete"},"1839":{"probe_name":"mpi-api","function_name":"PMPI_Win_complete.cold"},"1840":{"probe_name":"mpi-api","function_name":"PMPI_Win_create"},"1841":{"probe_name":"mpi-api","function_name":"PMPI_Win_create_c"},"1842":{"probe_name":"mpi-api","function_name":"PMPI_Win_create_dynamic"},"1843":{"probe_name":"mpi-api","function_name":"PMPI_Win_create_errhandler"},"1844":{"probe_name":"mpi-api","function_name":"PMPI_Win_create_keyval"},"1845":{"probe_name":"mpi-api","function_name":"PMPI_Win_delete_attr"},"1846":{"probe_name":"mpi-api","function_name":"PMPI_Win_detach"},"1847":{"probe_name":"mpi-api","function_name":"PMPI_Win_fence"},"1848":{"probe_name":"mpi-api","function_name":"PMPI_Win_flush"},"1849":{"probe_name":"mpi-api","function_name":"PMPI_Win_flush_all"},"1850":{"probe_name":"mpi-api","function_name":"PMPI_Win_flush_all.cold"},"1851":{"probe_name":"mpi-api","function_name":"PMPI_Win_flush_local"},"1852":{"probe_name":"mpi-api","function_name":"PMPI_Win_flush_local_all"},"1853":{"probe_name":"mpi-api","function_name":"PMPI_Win_flush_local_all.cold"},"1854":{"probe_name":"mpi-api","function_name":"PMPI_Win_free"},"1855":{"probe_name":"mpi-api","function_name":"PMPI_Win_free_keyval"},"1856":{"probe_name":"mpi-api","function_name":"PMPI_Win_get_attr"},"1857":{"probe_name":"mpi-api","function_name":"PMPI_Win_get_errhandler"},"1858":{"probe_name":"mpi-api","function_name":"PMPI_Win_get_group"},"1859":{"probe_name":"mpi-api","function_name":"PMPI_Win_get_info"},"1860":{"probe_name":"mpi-api","function_name":"PMPI_Win_get_name"},"1861":{"probe_name":"mpi-api","function_name":"PMPI_Win_lock"},"1862":{"probe_name":"mpi-api","function_name":"PMPI_Win_lock_all"},"1863":{"probe_name":"mpi-api","function_name":"PMPI_Win_post"},"1864":{"probe_name":"mpi-api","function_name":"PMPI_Win_post.cold"},"1865":{"probe_name":"mpi-api","function_name":"PMPI_Win_set_attr"},"1866":{"probe_name":"mpi-api","function_name":"PMPI_Win_set_errhandler"},"1867":{"probe_name":"mpi-api","function_name":"PMPI_Win_set_info"},"1868":{"probe_name":"mpi-api","function_name":"PMPI_Win_set_name"},"1869":{"probe_name":"mpi-api","function_name":"PMPI_Win_shared_query"},"1870":{"probe_name":"mpi-api","function_name":"PMPI_Win_shared_query.cold"},"1871":{"probe_name":"mpi-api","function_name":"PMPI_Win_shared_query_c"},"1872":{"probe_name":"mpi-api","function_name":"PMPI_Win_shared_query_c.cold"},"1873":{"probe_name":"mpi-api","function_name":"PMPI_Win_start"},"1874":{"probe_name":"mpi-api","function_name":"PMPI_Win_sync"},"1875":{"probe_name":"mpi-api","function_name":"PMPI_Win_sync.cold"},"1876":{"probe_name":"mpi-api","function_name":"PMPI_Win_test"},"1877":{"probe_name":"mpi-api","function_name":"PMPI_Win_unlock"},"1878":{"probe_name":"mpi-api","function_name":"PMPI_Win_unlock_all"},"1879":{"probe_name":"mpi-api","function_name":"PMPI_Win_unlock_all.cold"},"1880":{"probe_name":"mpi-api","function_name":"PMPI_Win_wait"},"1881":{"probe_name":"mpi-api","function_name":"PMPI_Win_wait.cold"},"1882":{"probe_name":"mpi-api","function_name":"PMPI_Wtick"},"1883":{"probe_name":"mpi-api","function_name":"PMPI_Wtime"},"1884":{"probe_name":"mpii","function_name":"MPII_Algo_compare_int"},"1885":{"probe_name":"mpii","function_name":"MPII_Allreduce_group"},"1886":{"probe_name":"mpii","function_name":"MPII_Allreduce_group_intra"},"1887":{"probe_name":"mpii","function_name":"MPII_Allreduce_group_intra.cold"},"1888":{"probe_name":"mpii","function_name":"MPII_Attr_copy_c_proxy"},"1889":{"probe_name":"mpii","function_name":"MPII_Attr_delete_c_proxy"},"1890":{"probe_name":"mpii","function_name":"MPII_Call_finalize_callbacks"},"1891":{"probe_name":"mpii","function_name":"MPII_Coll_comm_cleanup"},"1892":{"probe_name":"mpii","function_name":"MPII_Coll_finalize"},"1893":{"probe_name":"mpii","function_name":"MPII_Coll_init"},"1894":{"probe_name":"mpii","function_name":"MPII_CommL_forget"},"1895":{"probe_name":"mpii","function_name":"MPII_CommL_remember"},"1896":{"probe_name":"mpii","function_name":"MPII_Comm_check_hints"},"1897":{"probe_name":"mpii","function_name":"MPII_Comm_copy"},"1898":{"probe_name":"mpii","function_name":"MPII_Comm_copy_data"},"1899":{"probe_name":"mpii","function_name":"MPII_Comm_create_calculate_mapping"},"1900":{"probe_name":"mpii","function_name":"MPII_Comm_create_local_group"},"1901":{"probe_name":"mpii","function_name":"MPII_Comm_create_map"},"1902":{"probe_name":"mpii","function_name":"MPII_Comm_dup"},"1903":{"probe_name":"mpii","function_name":"MPII_Comm_get_attr"},"1904":{"probe_name":"mpii","function_name":"MPII_Comm_get_hints"},"1905":{"probe_name":"mpii","function_name":"MPII_Comm_init"},"1906":{"probe_name":"mpii","function_name":"MPII_Comm_is_node_balanced"},"1907":{"probe_name":"mpii","function_name":"MPII_Comm_is_node_consecutive"},"1908":{"probe_name":"mpii","function_name":"MPII_Comm_set_attr"},"1909":{"probe_name":"mpii","function_name":"MPII_Comm_set_hints"},"1910":{"probe_name":"mpii","function_name":"MPII_Create_container"},"1911":{"probe_name":"mpii","function_name":"MPII_Dataloop_alloc"},"1912":{"probe_name":"mpii","function_name":"MPII_Dataloop_alloc_and_copy"},"1913":{"probe_name":"mpii","function_name":"MPII_Dataloop_segment_flatten"},"1914":{"probe_name":"mpii","function_name":"MPII_Dataloop_stackelm_blocksize"},"1915":{"probe_name":"mpii","function_name":"MPII_Dataloop_stackelm_load"},"1916":{"probe_name":"mpii","function_name":"MPII_Dataloop_stackelm_offset"},"1917":{"probe_name":"mpii","function_name":"MPII_Dataloop_stream_size"},"1918":{"probe_name":"mpii","function_name":"MPII_Dataloop_update"},"1919":{"probe_name":"mpii","function_name":"MPII_Datatype_attr_finalize"},"1920":{"probe_name":"mpii","function_name":"MPII_Datatype_blockindexed_count_contig"},"1921":{"probe_name":"mpii","function_name":"MPII_Datatype_indexed_count_contig"},"1922":{"probe_name":"mpii","function_name":"MPII_Datatype_printf"},"1923":{"probe_name":"mpii","function_name":"MPII_Debugq_forget"},"1924":{"probe_name":"mpii","function_name":"MPII_Debugq_remember"},"1925":{"probe_name":"mpii","function_name":"MPII_Debugq_remember.cold"},"1926":{"probe_name":"mpii","function_name":"MPII_Finalize"},"1927":{"probe_name":"mpii","function_name":"MPII_Genutil_progress_hook"},"1928":{"probe_name":"mpii","function_name":"MPII_Genutil_sched_poke"},"1929":{"probe_name":"mpii","function_name":"MPII_Genutil_vtx_add_dependencies"},"1930":{"probe_name":"mpii","function_name":"MPII_Genutil_vtx_add_dependencies.cold"},"1931":{"probe_name":"mpii","function_name":"MPII_Genutil_vtx_copy"},"1932":{"probe_name":"mpii","function_name":"MPII_Genutil_vtx_create"},"1933":{"probe_name":"mpii","function_name":"MPII_Genutil_vtx_create.cold"},"1934":{"probe_name":"mpii","function_name":"MPII_Genutil_vtx_dtor"},"1935":{"probe_name":"mpii","function_name":"MPII_Grequest_set_lang_f77"},"1936":{"probe_name":"mpii","function_name":"MPII_Grequest_set_lang_f77.cold"},"1937":{"probe_name":"mpii","function_name":"MPII_Group_setup_lpid_list"},"1938":{"probe_name":"mpii","function_name":"MPII_Iallgatherv_is_displs_ordered"},"1939":{"probe_name":"mpii","function_name":"MPII_Ibcast_sched_add_length"},"1940":{"probe_name":"mpii","function_name":"MPII_Ibcast_sched_init_length"},"1941":{"probe_name":"mpii","function_name":"MPII_Ibcast_sched_test_curr_length"},"1942":{"probe_name":"mpii","function_name":"MPII_Ibcast_sched_test_length"},"1943":{"probe_name":"mpii","function_name":"MPII_Init_thread"},"1944":{"probe_name":"mpii","function_name":"MPII_Iscatter_for_bcast_sched"},"1945":{"probe_name":"mpii","function_name":"MPII_Keyval_set_proxy"},"1946":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_comm_cleanup"},"1947":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_comm_init"},"1948":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_get_count_and_offset"},"1949":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_get_neighbors"},"1950":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_init"},"1951":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_origrank_to_step2rank"},"1952":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_reverse_digits_step2"},"1953":{"probe_name":"mpii","function_name":"MPII_Recexchalgo_step2rank_to_origrank"},"1954":{"probe_name":"mpii","function_name":"MPII_Scatter_for_bcast"},"1955":{"probe_name":"mpii","function_name":"MPII_Segment_manipulate"},"1956":{"probe_name":"mpii","function_name":"MPII_Segment_manipulate.cold"},"1957":{"probe_name":"mpii","function_name":"MPII_Setup_intercomm_localcomm"},"1958":{"probe_name":"mpii","function_name":"MPII_Stubalgo_comm_cleanup"},"1959":{"probe_name":"mpii","function_name":"MPII_Stubalgo_comm_init"},"1960":{"probe_name":"mpii","function_name":"MPII_Stubalgo_init"},"1961":{"probe_name":"mpii","function_name":"MPII_TSP_comm_cleanup"},"1962":{"probe_name":"mpii","function_name":"MPII_TSP_comm_init"},"1963":{"probe_name":"mpii","function_name":"MPII_TSP_finalize"},"1964":{"probe_name":"mpii","function_name":"MPII_TSP_init"},"1965":{"probe_name":"mpii","function_name":"MPII_TSP_scheds_are_pending"},"1966":{"probe_name":"mpii","function_name":"MPII_Treealgo_comm_cleanup"},"1967":{"probe_name":"mpii","function_name":"MPII_Treealgo_comm_init"},"1968":{"probe_name":"mpii","function_name":"MPII_Treealgo_init"},"1969":{"probe_name":"mpii","function_name":"MPII_Treeutil_tree_kary_init"},"1970":{"probe_name":"mpii","function_name":"MPII_Treeutil_tree_knomial_1_init"},"1971":{"probe_name":"mpii","function_name":"MPII_Treeutil_tree_knomial_2_init"},"1972":{"probe_name":"mpii","function_name":"MPII_Type_get_attr"},"1973":{"probe_name":"mpii","function_name":"MPII_Type_set_attr"},"1974":{"probe_name":"mpii","function_name":"MPII_Type_zerolen"},"1975":{"probe_name":"mpii","function_name":"MPII_Typerep_basic_type_is_complex"},"1976":{"probe_name":"mpii","function_name":"MPII_Typerep_basic_type_is_unsigned"},"1977":{"probe_name":"mpii","function_name":"MPII_Typerep_convert_darray"},"1978":{"probe_name":"mpii","function_name":"MPII_Typerep_convert_darray.cold"},"1979":{"probe_name":"mpii","function_name":"MPII_Typerep_convert_subarray"},"1980":{"probe_name":"mpii","function_name":"MPII_Typerep_convert_subarray.cold"},"1981":{"probe_name":"mpii","function_name":"MPII_Typerep_get_basic_size_external32"},"1982":{"probe_name":"mpii","function_name":"MPII_Typerep_op_fallback"},"1983":{"probe_name":"mpii","function_name":"MPII_Typerep_op_fallback.cold"},"1984":{"probe_name":"mpii","function_name":"MPII_Wait_for_debugger"},"1985":{"probe_name":"mpii","function_name":"MPII_Win_get_attr"},"1986":{"probe_name":"mpii","function_name":"MPII_Win_set_attr"},"1987":{"probe_name":"mpii","function_name":"MPII_compare_info_hint"},"1988":{"probe_name":"mpii","function_name":"MPII_dump_debug_summary"},"1989":{"probe_name":"mpii","function_name":"MPII_finalize_async"},"1990":{"probe_name":"mpii","function_name":"MPII_finalize_builtin_infos"},"1991":{"probe_name":"mpii","function_name":"MPII_hwtopo_finalize"},"1992":{"probe_name":"mpii","function_name":"MPII_hwtopo_init"},"1993":{"probe_name":"mpii","function_name":"MPII_init_async"},"1994":{"probe_name":"mpii","function_name":"MPII_init_binding_cxx"},"1995":{"probe_name":"mpii","function_name":"MPII_init_builtin_infos"},"1996":{"probe_name":"mpii","function_name":"MPII_init_dbg_logging"},"1997":{"probe_name":"mpii","function_name":"MPII_init_local_proc_attrs"},"1998":{"probe_name":"mpii","function_name":"MPII_init_request"},"1999":{"probe_name":"mpii","function_name":"MPII_init_tag_ub"},"2000":{"probe_name":"mpii","function_name":"MPII_init_windows"},"2001":{"probe_name":"mpii","function_name":"MPII_nettopo_finalize"},"2002":{"probe_name":"mpii","function_name":"MPII_nettopo_init"},"2003":{"probe_name":"mpii","function_name":"MPII_pre_init_dbg_logging"},"2004":{"probe_name":"mpii","function_name":"MPII_thread_mutex_create"},"2005":{"probe_name":"mpii","function_name":"MPII_thread_mutex_destroy"},"2006":{"probe_name":"mpi-rest","function_name":"ADIOI_Agg_idx"},"2007":{"probe_name":"mpi-rest","function_name":"ADIOI_Build_agg_reqs"},"2008":{"probe_name":"mpi-rest","function_name":"ADIOI_Build_client_pre_req"},"2009":{"probe_name":"mpi-rest","function_name":"ADIOI_Build_client_req"},"2010":{"probe_name":"mpi-rest","function_name":"ADIOI_Build_client_reqs"},"2011":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_ADIO_Open"},"2012":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Calc_aggregator_pfl"},"2013":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Calc_my_req"},"2014":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Calc_others_req"},"2015":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Exch_and_write"},"2016":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Fill_send_buffer"},"2017":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Fill_user_buffer"},"2018":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Get_last_stripe_size"},"2019":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Heap_merge"},"2020":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Open"},"2021":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Parse_comp_layout_opt"},"2022":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_R_Exchange_data"},"2023":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_ReadContig"},"2024":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_ReadContig_async"},"2025":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_ReadStridedColl"},"2026":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_ReadStrided_naive"},"2027":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Read_and_exch"},"2028":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_SetInfo"},"2029":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_Sort_off_len"},"2030":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_W_Exchange_data"},"2031":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_WriteContig"},"2032":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_WriteContig_async"},"2033":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_WriteStridedColl"},"2034":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_WriteStrided_naive"},"2035":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_aio_init"},"2036":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_aio_request_find"},"2037":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_aio_request_release"},"2038":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_aio_request_wait"},"2039":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_aio_request_wait_1"},"2040":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_aio_request_wrapup"},"2041":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_cb_nidlist_assign"},"2042":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_cb_nidlist_init"},"2043":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_cb_ranklist_build"},"2044":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_dump_keys"},"2045":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_dvs_real_fstype"},"2046":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_getenv_mpiio_hints"},"2047":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_getrtc"},"2048":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_group_lock_ioctl"},"2049":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_group_lock_unlock_ioctl_noreduce"},"2050":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_group_unlock_ioctl"},"2051":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_io_trace"},"2052":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_is_aggregator"},"2053":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_llapi_ladvise"},"2054":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_llapi_ladvise_noexpand"},"2055":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_lock_ahead"},"2056":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_prepend_fs"},"2057":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_request_only_lock_ioctl"},"2058":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_stats_report"},"2059":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_test_ladvise"},"2060":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_timers_read_report"},"2061":{"probe_name":"mpi-rest","function_name":"ADIOI_CRAY_timers_write_report"},"2062":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_aggregator"},"2063":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_bounds"},"2064":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_file_domains"},"2065":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_file_realms"},"2066":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_file_realms_aar"},"2067":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_file_realms_fsize"},"2068":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_file_realms_user_size"},"2069":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_my_off_len"},"2070":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_my_req"},"2071":{"probe_name":"mpi-rest","function_name":"ADIOI_Calc_others_req"},"2072":{"probe_name":"mpi-rest","function_name":"ADIOI_Calloc_fn"},"2073":{"probe_name":"mpi-rest","function_name":"ADIOI_Create_fr_simpletype"},"2074":{"probe_name":"mpi-rest","function_name":"ADIOI_Datatype_iscontig"},"2075":{"probe_name":"mpi-rest","function_name":"ADIOI_End_call"},"2076":{"probe_name":"mpi-rest","function_name":"ADIOI_Err_create_code"},"2077":{"probe_name":"mpi-rest","function_name":"ADIOI_Exch_and_write:0x74adc8"},"2078":{"probe_name":"mpi-rest","function_name":"ADIOI_Exch_and_write:0x7b8d5d"},"2079":{"probe_name":"mpi-rest","function_name":"ADIOI_Exch_file_views"},"2080":{"probe_name":"mpi-rest","function_name":"ADIOI_FAILSAFE_OpenColl"},"2081":{"probe_name":"mpi-rest","function_name":"ADIOI_FAKE_IOComplete"},"2082":{"probe_name":"mpi-rest","function_name":"ADIOI_FAKE_IODone"},"2083":{"probe_name":"mpi-rest","function_name":"ADIOI_FAKE_IreadContig"},"2084":{"probe_name":"mpi-rest","function_name":"ADIOI_FAKE_IreadStrided"},"2085":{"probe_name":"mpi-rest","function_name":"ADIOI_FAKE_IwriteContig"},"2086":{"probe_name":"mpi-rest","function_name":"ADIOI_FAKE_IwriteStrided"},"2087":{"probe_name":"mpi-rest","function_name":"ADIOI_Fill_send_buffer:0x74cceb"},"2088":{"probe_name":"mpi-rest","function_name":"ADIOI_Fill_send_buffer:0x7ba6d4"},"2089":{"probe_name":"mpi-rest","function_name":"ADIOI_Fill_send_buffer_nosend"},"2090":{"probe_name":"mpi-rest","function_name":"ADIOI_Fill_user_buffer:0x74824a"},"2091":{"probe_name":"mpi-rest","function_name":"ADIOI_Fill_user_buffer:0x7b1fcf"},"2092":{"probe_name":"mpi-rest","function_name":"ADIOI_Flatten_and_find"},"2093":{"probe_name":"mpi-rest","function_name":"ADIOI_Flatten_datatype"},"2094":{"probe_name":"mpi-rest","function_name":"ADIOI_Flattened_type_copy"},"2095":{"probe_name":"mpi-rest","function_name":"ADIOI_Flattened_type_delete"},"2096":{"probe_name":"mpi-rest","function_name":"ADIOI_Free_fn"},"2097":{"probe_name":"mpi-rest","function_name":"ADIOI_Free_my_req"},"2098":{"probe_name":"mpi-rest","function_name":"ADIOI_Free_others_req"},"2099":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_Close"},"2100":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_Delete"},"2101":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_Fcntl"},"2102":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_Feature"},"2103":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_Flush"},"2104":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IOComplete"},"2105":{"probe_name":"mpi-rest","function_name":"ADIOI_GEN_IODone"},"3354":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1ffea0"},"3355":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x21b900"},"3356":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x22ee20"},"3357":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x23f420"},"3358":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x250a40"},"3359":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x259b10"},"3360":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x26d640"},"3361":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x277760"},"3362":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x28a960"},"3363":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x293f50"},"3364":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2a8140"},"3365":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2b5340"},"3366":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2c79b0"},"3367":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2d7100"},"3368":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2e6920"},"3369":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2f6080"},"3370":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x305830"},"3371":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x3163f0"},"3372":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x325130"},"3373":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x337c80"},"3374":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x346820"},"3375":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x3544c0"},"3376":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x364b90"},"3377":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x375150"},"3378":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x41a720"},"3379":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4561e0"},"3380":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4777d0"},"3381":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4928a0"},"3382":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4b6710"},"3383":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4f6190"},"3384":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5058f0"},"3385":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x51c670"},"3386":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x52ea50"},"3387":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x546e10"},"3388":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x560850"},"3389":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5bc490"},"3390":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5c9430"},"3391":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5e0640"},"3392":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5e8e20"},"3393":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5f9a90"},"3394":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x60c7e0"},"3395":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x616b40"},"3396":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x62ed10"},"3397":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x66e6f0"},"3398":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x68c590"},"3399":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x69d6a0"},"3400":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x6b6e70"},"3401":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x6ba880"},"3402":{"probe_name":"mpi-rest","function_name":"MPIDIU_comm_rank_to_pid.isra.0"},"3403":{"probe_name":"mpi-rest","function_name":"MPIDIU_free_avt"},"3404":{"probe_name":"mpi-rest","function_name":"MPIDIU_get_avt_size"},"3405":{"probe_name":"mpi-rest","function_name":"MPIDIU_get_n_avts"},"3406":{"probe_name":"mpi-rest","function_name":"MPIDIU_get_node_id"},"3407":{"probe_name":"mpi-rest","function_name":"MPIDIU_get_node_id.cold"},"3408":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_destroy"},"3409":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x106f10"},"3410":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x10c190"},"3411":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x111550"},"3412":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x11d800"},"3413":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x131ca0"},"3414":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x1467c0"},"3415":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x151380"},"3416":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x167f40"},"3417":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x17ba30"},"3418":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x190800"},"3419":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x1a7f90"},"3420":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x1b49d0"},"3421":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x1c83d0"},"3422":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x1d18b0"},"3423":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x1e8c70"},"3424":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x1ff630"},"3425":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x21b080"},"3426":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x22e5d0"},"3427":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x23eb70"},"3428":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x250730"},"3429":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x259290"},"3430":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x26d320"},"3431":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x276eb0"},"3432":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x28a620"},"3433":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x2936a0"},"3434":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x2a7df0"},"3435":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x2b4ac0"},"3436":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x2c7130"},"3437":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x2d6880"},"3438":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x2e60a0"},"3439":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x2f5800"},"3440":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x304fb0"},"3441":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x315bd0"},"3442":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x324820"},"3443":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x337460"},"3444":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x3460b0"},"3445":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x353c40"},"3446":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x3643c0"},"3447":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x374930"},"3448":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x419cd0"},"3449":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x455950"},"3450":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x476e20"},"3451":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x492130"},"3452":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x4b5f40"},"3453":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x4f59e0"},"3454":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x504e80"},"3455":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x51be90"},"3456":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x52dbb0"},"3457":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x546660"},"3458":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x55fde0"},"3459":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x5c8a50"},"3460":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x5dfd10"},"3461":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x5e87d0"},"3462":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x5f8e60"},"3463":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x60c4d0"},"3464":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x612a00"},"3465":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x616270"},"3466":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x62e4a0"},"3467":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x644b90"},"3468":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x64c8c0"},"3469":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x65e050"},"3470":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x6674c0"},"3471":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x66de00"},"3472":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x68bb80"},"3473":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x69cef0"},"3474":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_lookup:0x6b9c60"},"3475":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_set_unsafe"},"3476":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_set_unsafe.constprop.0"},"3477":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x107370"},"3478":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x10c5f0"},"3479":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1119b0"},"3480":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x11f590"},"3481":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x133a90"},"3482":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x147970"},"3483":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1532f0"},"3484":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x169eb0"},"3485":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x17d7c0"},"3486":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1925f0"},"3487":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1a8f30"},"3488":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1b69e0"},"3489":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1c8b00"},"3490":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1d38c0"},"3491":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x1eab40"},"3492":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x201500"},"3493":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x21cff0"},"3494":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x230510"},"3495":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x240b10"},"3496":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x2512a0"},"3497":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x25b200"},"3498":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x26dea0"},"3499":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x278e50"},"3500":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x28b7d0"},"3501":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x295640"},"3502":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x2a8fb0"},"3503":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x2b6c70"},"3504":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x2c90a0"},"3505":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x2d87f0"},"3506":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x2e8010"},"3507":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x2f7770"},"3508":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x306f20"},"3509":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x317a20"},"3510":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x326760"},"3511":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x339070"},"3512":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x347c10"},"3513":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x355df0"},"3514":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x3664c0"},"3515":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x376540"},"3516":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x41bb40"},"3517":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x457a10"},"3518":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x478940"},"3519":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x493c90"},"3520":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x4b7b00"},"3521":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x4f7580"},"3522":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x506fa0"},"3523":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x51e3e0"},"3524":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x5300d0"},"3525":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x548200"},"3526":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x5620c0"},"3527":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x5cad80"},"3528":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x5e1650"},"3529":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x5e9fc0"},"3530":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x5fb910"},"3531":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x60d520"},"3532":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x613260"},"3533":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x618230"},"3534":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x630370"},"3535":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x645390"},"3536":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x64ec00"},"3537":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x65e990"},"3538":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x667d90"},"3539":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x670410"},"3540":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x68d9b0"},"3541":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x69ea90"},"3542":{"probe_name":"mpi-rest","function_name":"MPIDIU_map_update.constprop.0.isra.0:0x6bc1e0"},"3543":{"probe_name":"mpi-rest","function_name":"MPIDIU_new_avt"},"3544":{"probe_name":"mpi-rest","function_name":"MPIDIU_rank_to_lpid.cold:0x35c76"},"3545":{"probe_name":"mpi-rest","function_name":"MPIDIU_rank_to_lpid.cold:0x36cef"},"3546":{"probe_name":"mpi-rest","function_name":"MPIDIU_rank_to_lpid:0x146b00"},"3547":{"probe_name":"mpi-rest","function_name":"MPIDIU_rank_to_lpid:0x1a8360"},"3548":{"probe_name":"mpi-rest","function_name":"MPIDIU_release_lut"},"3549":{"probe_name":"mpi-rest","function_name":"MPIDIU_release_mlut"},"3550":{"probe_name":"mpi-rest","function_name":"MPIDIU_upids_to_gpids"},"3551":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x35599"},"3552":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x35936"},"3553":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x35df8"},"3554":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3621a"},"3555":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x36522"},"3556":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x368bf"},"3557":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x36f18"},"3558":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3748d"},"3559":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3783c"},"3560":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x37b52"},"3561":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x37e68"},"3562":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x381c3"},"3563":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x38430"},"3564":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x386e6"},"3565":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3883e"},"3566":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x38bbd"},"3567":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x38d36"},"3568":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x39099"},"3569":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x391f1"},"3570":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3956d"},"3571":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x396e6"},"3572":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3993b"},"3573":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x39b6f"},"3574":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x39da3"},"3575":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x39ff8"},"3576":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3a22c"},"3577":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3a481"},"3578":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3a67f"},"3579":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3a8ce"},"3580":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3aaed"},"3581":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3aceb"},"3582":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3af1f"},"3583":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3b174"},"3584":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3d354"},"3585":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3d735"},"3586":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3da9f"},"3587":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3dcc9"},"3588":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3e230"},"3589":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3ee0f"},"3590":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3f09d"},"3591":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3f3b3"},"3592":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3f5b1"},"3593":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3f869"},"3594":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x3fa67"},"3595":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x400ac"},"3596":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x4077f"},"3597":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x40aac"},"3598":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x40dc2"},"3599":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x4146f"},"3600":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x416a3"},"3601":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x418a1"},"3602":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank.cold:0x41b70"},"3603":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x11e2d0"},"3604":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x132550"},"3605":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x151e00"},"3606":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x1689c0"},"3607":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x17c500"},"3608":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x1910b0"},"3609":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x1b54e0"},"3610":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x1d23c0"},"3611":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x1e9620"},"3612":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x1fffe0"},"3613":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x21ba40"},"3614":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x22ef60"},"3615":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x23f560"},"3616":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x250b80"},"3617":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x259c50"},"3618":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x26d780"},"3619":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x2778a0"},"3620":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x28aaa0"},"3621":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x294090"},"3622":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x2a8280"},"3623":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x2b5480"},"3624":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x2c7af0"},"3625":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x2d7240"},"3626":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x2e6a60"},"3627":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x2f61c0"},"3628":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x305970"},"3629":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x316530"},"3630":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x325270"},"3631":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x337dc0"},"3632":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x346960"},"3633":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x354600"},"3634":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x364cd0"},"3635":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x375290"},"3636":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x41a860"},"3637":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x456320"},"3638":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x477910"},"3639":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x4929e0"},"3640":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x4b6850"},"3641":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x4f62d0"},"3642":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x505a30"},"3643":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x51c7b0"},"3644":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x52eb90"},"3645":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x546f50"},"3646":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x560990"},"3647":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x5c9570"},"3648":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x5f9bd0"},"3649":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x616c80"},"3650":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x62ee50"},"3651":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x66e830"},"3652":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x68c6d0"},"3653":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x69d7e0"},"3654":{"probe_name":"mpi-rest","function_name":"MPIDIU_valid_group_rank:0x6ba9c0"},"3655":{"probe_name":"mpi-rest","function_name":"MPIDI_Allgather_intra_composition_alpha"},"3656":{"probe_name":"mpi-rest","function_name":"MPIDI_Allgather_intra_composition_alpha.cold"},"3657":{"probe_name":"mpi-rest","function_name":"MPIDI_Allgather_intra_composition_beta.part.0"},"3658":{"probe_name":"mpi-rest","function_name":"MPIDI_Allreduce_intra_composition_alpha"},"3659":{"probe_name":"mpi-rest","function_name":"MPIDI_Allreduce_intra_composition_beta.part.0"},"3660":{"probe_name":"mpi-rest","function_name":"MPIDI_Allreduce_intra_composition_delta"},"3661":{"probe_name":"mpi-rest","function_name":"MPIDI_Allreduce_intra_composition_gamma.part.0"},"3662":{"probe_name":"mpi-rest","function_name":"MPIDI_Alltoall_intra_composition_alpha"},"3663":{"probe_name":"mpi-rest","function_name":"MPIDI_Alltoall_intra_composition_alpha.cold"},"3664":{"probe_name":"mpi-rest","function_name":"MPIDI_Alltoall_intra_composition_beta.part.0"},"3665":{"probe_name":"mpi-rest","function_name":"MPIDI_Barrier_intra_composition_beta.part.0"},"3666":{"probe_name":"mpi-rest","function_name":"MPIDI_Bcast_intra_composition_alpha"},"3667":{"probe_name":"mpi-rest","function_name":"MPIDI_Bcast_intra_composition_alpha.cold"},"3668":{"probe_name":"mpi-rest","function_name":"MPIDI_Bcast_intra_composition_beta"},"3669":{"probe_name":"mpi-rest","function_name":"MPIDI_Bcast_intra_composition_gamma.part.0"},"3670":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_COMMON_mpi_finalize_hook"},"3671":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_COMMON_mpi_init_hook"},"3672":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Clear_Bcast_Opt"},"3673":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Comm_create_hook"},"3674":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Comm_destroy_hook"},"3675":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_complete_recv"},"3676":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_complete_recv.cold"},"3677":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_ctrl_send_fin_cb"},"3678":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_ctrl_send_fin_cb.cold"},"3679":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_ctrl_send_rts_cb"},"3680":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_export_mem"},"3681":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_get_size"},"3682":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_import_mem"},"3683":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x35c7d"},"3684":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x35e62"},"3685":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x36284"},"3686":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x36da2"},"3687":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x36f82"},"3688":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x374f7"},"3689":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x3f129"},"3690":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x3fb29"},"3691":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x40138"},"3692":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x41bfc"},"3693":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x14a340"},"3694":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x156b10"},"3695":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x16d6d0"},"3696":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x1af980"},"3697":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x1ba210"},"3698":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x1d70f0"},"3699":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x50aad0"},"3700":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x51d810"},"3701":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x566700"},"3702":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x5ce5a0"},"3703":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x6bfd10"},"3704":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x378c8"},"3705":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x37bde"},"3706":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x3d7c1"},"3707":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x40b38"},"3708":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x40e4e"},"3709":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0:0x1ee650"},"3710":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0:0x205010"},"3711":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0:0x45b540"},"3712":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0:0x61bd40"},"3713":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_isend.isra.0:0x633e80"},"3714":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_progress"},"3715":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Common_lmt_unpack"},"3716":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Construct_Bcast_Tree"},"3717":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Detect_cpuid"},"3718":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Initialize_GPU_Coll_staging_buffers"},"3719":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_Setup_Shared_Mem_Coll"},"3720":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_XPMEM_do_attach"},"3721":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_XPMEM_mpi_finalize_hook"},"3722":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_XPMEM_mpi_init_hook"},"3723":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_alloc_mem_debug_info"},"3724":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_check_transparent_hp_status"},"3725":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_clr_numa_affinity"},"3726":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_collopt_process_env"},"3727":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_collopt_register_pvar_stats"},"3728":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_collopt_set_ANL_defaults"},"3729":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_collopt_set_defaults"},"3730":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_collopt_set_func_ptrs"},"3731":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_dump_hugetlb_dir"},"3732":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_dump_proc_buddyinfo.isra.0"},"3733":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_dump_proc_meminfo.isra.0"},"3734":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_dump_proc_slabinfo.isra.0"},"3735":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_edge_color"},"3736":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_finalize"},"3737":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_free_memory"},"3738":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_get_buddyinfo_info"},"3739":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_get_memory"},"3740":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_get_min_required_ofi_version"},"3741":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_get_mm_hugepages_info"},"3742":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_get_thread_mempolicy.constprop.0"},"3743":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_init"},"3744":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_init_memcpy"},"3745":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_local_get_freemem_info"},"3746":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_mem_dbg_finalize"},"3747":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_mpiio_init"},"3748":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_TC_str_to_mpich_val"},"3749":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_TC_str_to_ofi_val"},"3750":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_TC_val_mpich_to_ofi"},"3751":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_TC_val_ofi_to_mpich"},"3752":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_check_nic_symmetry"},"3753":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_create_connections"},"3754":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_create_global_connections"},"3755":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_create_nic_cache"},"3756":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_create_special_eps"},"3757":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_create_tclass_eps"},"3758":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_display_nic_info"},"3759":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_display_provider_envs"},"3760":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_free_nic_cache"},"3761":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_gather_cxi_counters"},"3762":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_get_cxi_version"},"3763":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_get_default_provider"},"3764":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_get_nic_index"},"3765":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_get_vni"},"3766":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_allreduce_join"},"3767":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_barrier_join"},"3768":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_bcast_join"},"3769":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_comm_add"},"3770":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_comm_free_all"},"3771":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_comm_remove"},"3772":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_data_promote_dn"},"3773":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_data_promote_up"},"3774":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_finalize"},"3775":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_hndl_comm_create"},"3776":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_hndl_destroy"},"3777":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_hndl_first_use"},"3778":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_init"},"3779":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_query"},"3780":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_hwcoll_wait"},"3781":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_init_cxi_counters"},"3782":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_nic_assign_policy"},"3783":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_nic_in_use"},"3784":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_nicaddr_to_str"},"3785":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_pmi_create_nic_cache"},"3786":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_pmi_get_local_nics"},"3787":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_scalable_startup"},"3788":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_select_nic_provider"},"3789":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_set_provider_defaults"},"3790":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_set_provider_overrides"},"3791":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_update_mr_flags"},"3792":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_ofi_win_set_tclass"},"3793":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_post_init"},"3794":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_print_pvar_stats"},"3795":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_rma_generic_register_pvar_stats"},"3796":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_set_numa_affinity"},"3797":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_set_thread_mempolicy.constprop.0"},"3798":{"probe_name":"mpi-rest","function_name":"MPIDI_CRAY_transparent_hp_update_stats"},"3799":{"probe_name":"mpi-rest","function_name":"MPIDI_CXI_choose_vni"},"3800":{"probe_name":"mpi-rest","function_name":"MPIDI_CXI_get_pid"},"3801":{"probe_name":"mpi-rest","function_name":"MPIDI_CXI_get_vni"},"3802":{"probe_name":"mpi-rest","function_name":"MPIDI_CXI_normal_free"},"3803":{"probe_name":"mpi-rest","function_name":"MPIDI_CXI_normal_malloc"},"3804":{"probe_name":"mpi-rest","function_name":"MPIDI_Comm_create_multi_leader_subcomms"},"3805":{"probe_name":"mpi-rest","function_name":"MPIDI_Comm_create_multi_leaders"},"3806":{"probe_name":"mpi-rest","function_name":"MPIDI_Comm_split_type"},"3807":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_coll_finalize"},"3808":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_coll_init"},"3809":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_barrier"},"3810":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_barrier_gather"},"3811":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_bcast"},"3812":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_bcast.cold"},"3813":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_check"},"3814":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_cleanup"},"3815":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_opt_cleanup"},"3816":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_opt_init"},"3817":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_reduce"},"3818":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_reduce.cold"},"3819":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_setup"},"3820":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_tree_reduce"},"3821":{"probe_name":"mpi-rest","function_name":"MPIDI_Cray_shared_mem_coll_tree_reduce.cold"},"3822":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_KT_Progress"},"3823":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_get_ipc_attr"},"3824":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_init_local"},"3825":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_init_world"},"3826":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_ipc_get_map_dev"},"3827":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_ipc_handle_cache_insert"},"3828":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_ipc_handle_map"},"3829":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_ipc_handle_unmap"},"3830":{"probe_name":"mpi-rest","function_name":"MPIDI_GPU_mpi_finalize_hook"},"3831":{"probe_name":"mpi-rest","function_name":"MPIDI_IPCI_copy_data"},"3832":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_ack_target_msg_cb"},"3833":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_ack_target_msg_cb.cold"},"3834":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_init_local"},"3835":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_init_world"},"3836":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_mpi_finalize_hook"},"3837":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_mpi_win_create_hook"},"3838":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_mpi_win_free_hook"},"3839":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_rndv_cb"},"3840":{"probe_name":"mpi-rest","function_name":"MPIDI_IPC_rndv_cb.cold"},"3841":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend.constprop.0:0x254470"},"3842":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend.constprop.0:0x28e830"},"3843":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x1251e0"},"3844":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x139890"},"3845":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x159200"},"3846":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x16fdc0"},"3847":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x183410"},"3848":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x1983f0"},"3849":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x1bc900"},"3850":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x1d97e0"},"3851":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x1f1500"},"3852":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x207ec0"},"3853":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x221d70"},"3854":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x235290"},"3855":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x245890"},"3856":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x25ff80"},"3857":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x2717b0"},"3858":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x27dbd0"},"3859":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x29a3c0"},"3860":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x2ac6e0"},"3861":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x2bba00"},"3862":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x2cde20"},"3863":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x2dd570"},"3864":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x2ecd90"},"3865":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x2fc4f0"},"3866":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x30bca0"},"3867":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x31c7b0"},"3868":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x32b4f0"},"3869":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x33ddf0"},"3870":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x34cfc0"},"3871":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x35b1b0"},"3872":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x36b880"},"3873":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x37b2c0"},"3874":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x420ef0"},"3875":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x45ee40"},"3876":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x47bca0"},"3877":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x499040"},"3878":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x4bceb0"},"3879":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x4fc930"},"3880":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x50d1c0"},"3881":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x523710"},"3882":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x5358b0"},"3883":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x54d5b0"},"3884":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x568df0"},"3885":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x5d0c90"},"3886":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x5ef980"},"3887":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x601d70"},"3888":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x61ebf0"},"3889":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x636d30"},"3890":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x676d60"},"3891":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x692d60"},"3892":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x6a3f90"},"3893":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_isend:0x6c2400"},"3894":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x146ad0"},"3895":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x151790"},"3896":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x168350"},"3897":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x1a82a0"},"3898":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x1b4de0"},"3899":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x1d1cc0"},"3900":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x1e8f10"},"3901":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x1ff930"},"3902":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x455b90"},"3903":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x5052f0"},"3904":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x51c100"},"3905":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x5601f0"},"3906":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x5c8e60"},"3907":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x616570"},"3908":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x62e740"},"3909":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x66e120"},"3910":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr.part.0:0x6ba2f0"},"3911":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr_reply.part.0:0x1e8ee0"},"3912":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr_reply.part.0:0x1ff8a0"},"3913":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr_reply.part.0:0x5e0300"},"3914":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr_reply.part.0:0x5e8df0"},"3915":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr_reply.part.0:0x616540"},"3916":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_am_send_hdr_reply.part.0:0x62e710"},"3917":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_allgather.part.0"},"3918":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_allreduce.part.0"},"3919":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_alltoall.part.0"},"3920":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_barrier.part.0"},"3921":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_bcast.part.0"},"3922":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_cancel_recv"},"3923":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_cancel_recv.constprop.0"},"3924":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_compare_and_swap"},"3925":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_compare_and_swap.cold"},"3926":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_fetch_and_op"},"3927":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_fetch_and_op.cold"},"3928":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_host_alloc_tcntr_buffer.constprop.0.isra.0"},"3929":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_iprobe.constprop.0:0x139670"},"3930":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_iprobe.constprop.0:0x1981d0"},"3931":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_iprobe.constprop.0:0x45ec20"},"3932":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_iprobe.constprop.0:0x48b1e0"},"3933":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x35ba7"},"3934":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x36b30"},"3935":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x37a00"},"3936":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x37d16"},"3937":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x3d8f9"},"3938":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x3f261"},"3939":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x3fc61"},"3940":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x40270"},"3941":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x40c70"},"3942":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x40f86"},"3943":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0.cold:0x41d5b"},"3944":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x1434f0"},"3945":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x1a27c0"},"3946":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x1f5450"},"3947":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x20be10"},"3948":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x462d70"},"3949":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x487230"},"3950":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x511780"},"3951":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x56d3b0"},"3952":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x5d5250"},"3953":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x622b40"},"3954":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x63ac80"},"3955":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_irecv.constprop.0:0x6c70b0"},"3956":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_reduce.part.0:0x41a0c0"},"3957":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_reduce.part.0:0x4b6180"},"3958":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_scan.part.0"},"3959":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_unsafe_free_tindex.part.0:0x2161c0"},"3960":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_unsafe_free_tindex.part.0:0x52e200"},"3961":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_mpi_wait_tcomplete"},"3962":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x124310"},"3963":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x138810"},"3964":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x159540"},"3965":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x170100"},"3966":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x182540"},"3967":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x197370"},"3968":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x1bcc40"},"3969":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x1d9b20"},"3970":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x1f0e50"},"3971":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x207810"},"3972":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x2220b0"},"3973":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x235ce0"},"3974":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x245bd0"},"3975":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x2602c0"},"3976":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x27df10"},"3977":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x29a700"},"3978":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x2bbd40"},"3979":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x2ce160"},"3980":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x2dd8b0"},"3981":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x2ed0d0"},"3982":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x2fc830"},"3983":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x30bfe0"},"3984":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x31caf0"},"3985":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x32b830"},"3986":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x33e130"},"3987":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x34c990"},"3988":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x35ab80"},"3989":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x36b250"},"3990":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x37b600"},"3991":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x4208c0"},"3992":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x45dd40"},"3993":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x488d60"},"3994":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x498a10"},"3995":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x4bc880"},"3996":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x4fc300"},"3997":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x50d500"},"3998":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x5241b0"},"3999":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x535270"},"4000":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x54cf80"},"4001":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x569130"},"4002":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x5d0fd0"},"4003":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x601740"},"4004":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x61e540"},"4005":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x636680"},"4006":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x650290"},"4007":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x669210"},"4008":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x6770a0"},"4009":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x692730"},"4010":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x6aa940"},"4011":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_progress.part.0:0x6c2740"},"4012":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_target_cmpl_hook.part.0:0x2d6bd0"},"4013":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_target_cmpl_hook.part.0:0x353f60"},"4014":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_target_cmpl_hook.part.0:0x66e180"},"4015":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_target_local_cmpl_hook.part.0"},"4016":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_win_cmpl_hook.part.0:0x2b4e10"},"4017":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_win_cmpl_hook.part.0:0x2c7480"},"4018":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_win_cmpl_hook.part.0:0x2e63f0"},"4019":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_win_cmpl_hook.part.0:0x364630"},"4020":{"probe_name":"mpi-rest","function_name":"MPIDI_NM_rma_win_local_cmpl_hook.part.0"},"4021":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x21c040"},"4022":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x22f560"},"4023":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x23fb60"},"4024":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x25a250"},"4025":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x277ea0"},"4026":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x294690"},"4027":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x2b5ab0"},"4028":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x2c80f0"},"4029":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x2d7840"},"4030":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x2e7060"},"4031":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x2f67c0"},"4032":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x305f70"},"4033":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x354c30"},"4034":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x365300"},"4035":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_flush_nic:0x66ee60"},"4036":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x21b3d0"},"4037":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x22e8f0"},"4038":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x23eef0"},"4039":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x2595e0"},"4040":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x277230"},"4041":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x293a20"},"4042":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x2b4de0"},"4043":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x2c7450"},"4044":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x2d6ba0"},"4045":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x2e63c0"},"4046":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x2f5b20"},"4047":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x3052d0"},"4048":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x353f30"},"4049":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x364600"},"4050":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_CRAY_start_flushq.part.0:0x66e150"},"4051":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_addr_exchange_all_ctx"},"4052":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_addr_exchange_root_ctx"},"4053":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x106d80"},"4054":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x10c000"},"4055":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x1113c0"},"4056":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x11d660"},"4057":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x131b00"},"4058":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x146910"},"4059":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x1515c0"},"4060":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x168180"},"4061":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x17b890"},"4062":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x190660"},"4063":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x1a80e0"},"4064":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x1b4c10"},"4065":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x1d1af0"},"4066":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x1e8ad0"},"4067":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x1ff490"},"4068":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x21b1d0"},"4069":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x22e720"},"4070":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x23ecc0"},"4071":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x250880"},"4072":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2593e0"},"4073":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x26d470"},"4074":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x277000"},"4075":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x28a770"},"4076":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2937f0"},"4077":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2a7f40"},"4078":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2b4c10"},"4079":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2c7280"},"4080":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2d69d0"},"4081":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2e61f0"},"4082":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x2f5950"},"4083":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x305100"},"4084":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x315d20"},"4085":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x324a60"},"4086":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x3375b0"},"4087":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x345f10"},"4088":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x353d90"},"4089":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x364220"},"4090":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x374a80"},"4091":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x419b30"},"4092":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x4557b0"},"4093":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x477060"},"4094":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x491f90"},"4095":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x4b5da0"},"4096":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x4f5840"},"4097":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x5050c0"},"4098":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x51bcf0"},"4099":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x52da10"},"4100":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x5464c0"},"4101":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x560020"},"4102":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x5c8c90"},"4103":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x5e0140"},"4104":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x5e8c00"},"4105":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x5f9380"},"4106":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x60c620"},"4107":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x612870"},"4108":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x6160d0"},"4109":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x62e300"},"4110":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x66df50"},"4111":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x68b9e0"},"4112":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x69cd50"},"4113":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_init_sreq:0x6b9ac0"},"4114":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_rdma_read_ack_handler"},"4115":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_rdma_read_recv_cb"},"4116":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_am_repost_buffer"},"4117":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_comm_set_hints"},"4118":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_comm_to_phys.constprop.0.cold:0x403bb"},"4119":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_comm_to_phys.constprop.0.cold:0x4113b"},"4120":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_comm_to_phys.constprop.0.cold:0x413f7"},"4121":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_comm_to_phys.constprop.0:0x5e0360"},"4122":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_comm_to_phys.constprop.0:0x64e140"},"4123":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_comm_to_phys.constprop.0:0x667610"},"4124":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_complete_chunks"},"4125":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_control_handler"},"4126":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_create_dt_map"},"4127":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_create_tput"},"4128":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_create_tsend"},"4129":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_dispatch_function"},"4130":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_dispatch_function.cold"},"4131":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_accumulate"},"4132":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_accumulate.cold"},"4133":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_accumulate.constprop.0"},"4134":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_accumulate.constprop.0.cold"},"4135":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x107aa0"},"4136":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x10cd20"},"4137":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x1120e0"},"4138":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x148560"},"4139":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x1a9dc0"},"4140":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x2518c0"},"4141":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x26e4c0"},"4142":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x28bdf0"},"4143":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x2a95d0"},"4144":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x5e2520"},"4145":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x5ec5e0"},"4146":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x60db40"},"4147":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager.constprop.0:0x6146c0"},"4148":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x11fd30"},"4149":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x134230"},"4150":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x154020"},"4151":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x16abe0"},"4152":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x17df60"},"4153":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x192d90"},"4154":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x1b7710"},"4155":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x1d45f0"},"4156":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x1ebb60"},"4157":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x202520"},"4158":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x21d790"},"4159":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x230cb0"},"4160":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x2412b0"},"4161":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x25b9a0"},"4162":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x2795f0"},"4163":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x295de0"},"4164":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x2b7410"},"4165":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x2c9840"},"4166":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x2d8f90"},"4167":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x2e87b0"},"4168":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x2f7f10"},"4169":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x3076c0"},"4170":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x3181c0"},"4171":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x326f00"},"4172":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x339810"},"4173":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x3483b0"},"4174":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x356590"},"4175":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x366c60"},"4176":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x376ce0"},"4177":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x41c2e0"},"4178":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x458a40"},"4179":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x478f60"},"4180":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x494430"},"4181":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x4b82a0"},"4182":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x4f7d20"},"4183":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x507fd0"},"4184":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x51f110"},"4185":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x5309a0"},"4186":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x5489a0"},"4187":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x563c00"},"4188":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x5cbab0"},"4189":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x5fd160"},"4190":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x619250"},"4191":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x631390"},"4192":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x6715a0"},"4193":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x68e150"},"4194":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x69fc10"},"4195":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_eager:0x6bd210"},"4196":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x35645"},"4197":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x359e2"},"4198":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x35ee6"},"4199":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x36308"},"4200":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x365ce"},"4201":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3696b"},"4202":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x37006"},"4203":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3757b"},"4204":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3794c"},"4205":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x37c62"},"4206":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x37f14"},"4207":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3826f"},"4208":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x384dc"},"4209":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x388ea"},"4210":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x38de2"},"4211":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3929d"},"4212":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x39792"},"4213":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x399e7"},"4214":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x39c1b"},"4215":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x39e4f"},"4216":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3a0a4"},"4217":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3a2d8"},"4218":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3a52d"},"4219":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3a72b"},"4220":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3a97a"},"4221":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3ab99"},"4222":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3ad97"},"4223":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3afcb"},"4224":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3b220"},"4225":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3d400"},"4226":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3d845"},"4227":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3daa6"},"4228":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3dd75"},"4229":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3e2dc"},"4230":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3eebb"},"4231":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3f1ad"},"4232":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3f45f"},"4233":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3f67e"},"4234":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3f915"},"4235":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x3fbad"},"4236":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x401bc"},"4237":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x4082b"},"4238":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x40bbc"},"4239":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x40ed2"},"4240":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x4151b"},"4241":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x4174f"},"4242":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x4194e"},"4243":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.cold:0x41c80"},"4244":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x35cbf"},"4245":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x36cf6"},"4246":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x3872f"},"4247":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x38c06"},"4248":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x390e2"},"4249":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x395b6"},"4250":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x403e4"},"4251":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x405ec"},"4252":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x40a12"},"4253":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x40a84"},"4254":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x108390"},"4255":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x10d610"},"4256":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x1129d0"},"4257":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x14aee0"},"4258":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x1abba0"},"4259":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x2539e0"},"4260":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x270c40"},"4261":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x28dda0"},"4262":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x2abb70"},"4263":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x5e2e40"},"4264":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x5ed9d0"},"4265":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x60e430"},"4266":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x614d60"},"4267":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x1235d0"},"4268":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x137ad0"},"4269":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x1584c0"},"4270":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x16f080"},"4271":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x181800"},"4272":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x196630"},"4273":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x1bbbc0"},"4274":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x1d8aa0"},"4275":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x1f0110"},"4276":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x206ad0"},"4277":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x221030"},"4278":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x234550"},"4279":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x244b50"},"4280":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x25f240"},"4281":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x27ce90"},"4282":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x299680"},"4283":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x2bacc0"},"4284":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x2cd0e0"},"4285":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x2dc830"},"4286":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x2ec050"},"4287":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x2fb7b0"},"4288":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x30af60"},"4289":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x31ba70"},"4290":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x32a7b0"},"4291":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x33d0b0"},"4292":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x34bc50"},"4293":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x359e40"},"4294":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x36a510"},"4295":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x37a580"},"4296":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x41fb80"},"4297":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x45d000"},"4298":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x47af60"},"4299":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x497cd0"},"4300":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x4bbb40"},"4301":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x4fb5c0"},"4302":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x50c480"},"4303":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x5229d0"},"4304":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x534530"},"4305":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x54c240"},"4306":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x5680b0"},"4307":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x5cff50"},"4308":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x600a00"},"4309":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x61d800"},"4310":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x635940"},"4311":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x676020"},"4312":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x6919f0"},"4313":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x6a1810"},"4314":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_pipeline:0x6c16c0"},"4315":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x108da0"},"4316":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x10e020"},"4317":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x1133e0"},"4318":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x148e90"},"4319":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x1aa6f0"},"4320":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x2520f0"},"4321":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x26ee00"},"4322":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x28c620"},"4323":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x2a9f10"},"4324":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x5e39a0"},"4325":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x5ee540"},"4326":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x60ef40"},"4327":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x613880"},"4328":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x1207f0"},"4329":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x134cf0"},"4330":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x154ae0"},"4331":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x16b6a0"},"4332":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x17ea20"},"4333":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x193850"},"4334":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x1b81d0"},"4335":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x1d50b0"},"4336":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x1ec620"},"4337":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x202fe0"},"4338":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x21e250"},"4339":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x231770"},"4340":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x241d70"},"4341":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x25c460"},"4342":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x27a0b0"},"4343":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x2968a0"},"4344":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x2b7ed0"},"4345":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x2ca300"},"4346":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x2d9a50"},"4347":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x2e9270"},"4348":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x2f89d0"},"4349":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x308180"},"4350":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x318c80"},"4351":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x3279c0"},"4352":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x33a2d0"},"4353":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x348e70"},"4354":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x357050"},"4355":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x367720"},"4356":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x3777a0"},"4357":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x41cda0"},"4358":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x459500"},"4359":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x479a20"},"4360":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x494ef0"},"4361":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x4b8d60"},"4362":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x4f87e0"},"4363":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x508a90"},"4364":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x51fbd0"},"4365":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x531460"},"4366":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x549460"},"4367":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x5646c0"},"4368":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x5cc570"},"4369":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x5fdc20"},"4370":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x619d10"},"4371":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x631e50"},"4372":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x672060"},"4373":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x68ec10"},"4374":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x6a2a50"},"4375":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_am_isend_rdma_read:0x6bdcd0"},"4376":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_get_accumulate"},"4377":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_get_accumulate.cold"},"4378":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_get_accumulate.constprop.0"},"4379":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_get_accumulate.constprop.0.cold"},"4380":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x147f90"},"4381":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x153910"},"4382":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x16a4d0"},"4383":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x1a9550"},"4384":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x1b7000"},"4385":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x1d3ee0"},"4386":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x1eb160"},"4387":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x201b20"},"4388":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x458030"},"4389":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x5075c0"},"4390":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x51ea00"},"4391":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x5626e0"},"4392":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x5cb3a0"},"4393":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x5e1c70"},"4394":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x5ea5e0"},"4395":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x618850"},"4396":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x630990"},"4397":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x670a30"},"4398":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_inject:0x6bc800"},"4399":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_iprobe.constprop.0:0x124940"},"4400":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_iprobe.constprop.0:0x138e40"},"4401":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_iprobe.constprop.0:0x182b70"},"4402":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_iprobe.constprop.0:0x1979a0"},"4403":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_iprobe.constprop.0:0x45e3f0"},"4404":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_iprobe.constprop.0:0x48aa00"},"4405":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_rdma_read.cold"},"4406":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_rdma_read:0x660ae0"},"4407":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_do_rdma_read:0x66b460"},"4408":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_dynamic_recv"},"4409":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_dynamic_send"},"4410":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_find_provider"},"4411":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_find_provider_cleanup"},"4412":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_get_local_upids"},"4413":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_get_local_upids.cold"},"4414":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_get_required_version"},"4415":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_handle_cq_error"},"4416":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_handle_cq_error.cold"},"4417":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_handle_eq_error"},"4418":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_huge_chunk_done_event"},"4419":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_index_datatypes"},"4420":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_init_hints"},"4421":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_init_local"},"4422":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_init_multi_nic"},"4423":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_init_settings"},"4424":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_init_world"},"4425":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_issue_deferred_rma"},"4426":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_match_provider"},"4427":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_alloc_mem"},"4428":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_comm_commit_post_hook"},"4429":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_comm_commit_pre_hook"},"4430":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_comm_free_hook"},"4431":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_finalize_hook"},"4432":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_free_mem"},"4433":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_op_commit_hook"},"4434":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_op_free_hook"},"4435":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_precv_init"},"4436":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_psend_init"},"4437":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_type_commit_hook"},"4438":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_type_free_hook"},"4439":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_allocate"},"4440":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_allocate_hook"},"4441":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_allocate_shared"},"4442":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_allocate_shared_hook"},"4443":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_attach"},"4444":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_attach_hook"},"4445":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_create"},"4446":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_create_dynamic"},"4447":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_create_dynamic_hook"},"4448":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_create_hook"},"4449":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_detach"},"4450":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_detach_hook"},"4451":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_free"},"4452":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_free_hook"},"4453":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_free_hook.cold"},"4454":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_get_info"},"4455":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mpi_win_set_info"},"4456":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mr_key_alloc"},"4457":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mr_key_allocator_destroy"},"4458":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mr_key_allocator_init"},"4459":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_mr_key_free"},"4460":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_nic_already_used"},"4461":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_nic_is_up"},"4462":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_nopack_putget"},"4463":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_pack_get"},"4464":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_pack_get.cold"},"4465":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_pack_put"},"4466":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_pack_put.cold"},"4467":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_peek_huge_event"},"4468":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_post_init"},"4469":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x107060"},"4470":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x10c2e0"},"4471":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x1116a0"},"4472":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x11e8e0"},"4473":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x12c8e0"},"4474":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x132de0"},"4475":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x140ea0"},"4476":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x147230"},"4477":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x152430"},"4478":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x168ff0"},"4479":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x17cb10"},"4480":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x18b010"},"4481":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x191940"},"4482":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x19fd30"},"4483":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x1a8a90"},"4484":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x1b5b10"},"4485":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x1c8550"},"4486":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x1d29f0"},"4487":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x1e9c80"},"4488":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x200930"},"4489":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x21c340"},"4490":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x22f860"},"4491":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x23fe60"},"4492":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x250e00"},"4493":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x25a550"},"4494":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x26da00"},"4495":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x2781a0"},"4496":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x28b1b0"},"4497":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x294990"},"4498":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x2a8990"},"4499":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x2b5db0"},"4500":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x2c83f0"},"4501":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x2d7b40"},"4502":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x2e7360"},"4503":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x2f6ac0"},"4504":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x306270"},"4505":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x316b60"},"4506":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x3258a0"},"4507":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x333560"},"4508":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x3383c0"},"4509":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x346f60"},"4510":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x354f30"},"4511":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x365600"},"4512":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x375890"},"4513":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x41ae90"},"4514":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x456e30"},"4515":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x478190"},"4516":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x492fe0"},"4517":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x4b6e50"},"4518":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x4f68d0"},"4519":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x5063c0"},"4520":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x51cde0"},"4521":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x52f190"},"4522":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x547550"},"4523":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x5612e0"},"4524":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x5c9fd0"},"4525":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x5e0c20"},"4526":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x5e9240"},"4527":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x5f9ec0"},"4528":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x60a820"},"4529":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x60cd60"},"4530":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x612b50"},"4531":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x617660"},"4532":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x62f4b0"},"4533":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x644ef0"},"4534":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x64e790"},"4535":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x6608e0"},"4536":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x663e30"},"4537":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x6678f0"},"4538":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x66f450"},"4539":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x68cd00"},"4540":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x69dde0"},"4541":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_do_queue.constprop.0:0x6bb460"},"4542":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_progress_uninlined"},"4543":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event"},"4544":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.cold"},"4545":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x355e2"},"4546":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3597f"},"4547":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x35e41"},"4548":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x36263"},"4549":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3656b"},"4550":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x36908"},"4551":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x36f61"},"4552":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x37283"},"4553":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x374d6"},"4554":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x378a7"},"4555":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x37bbd"},"4556":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x37eb1"},"4557":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3820c"},"4558":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x38479"},"4559":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x38887"},"4560":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x38d7f"},"4561":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3923a"},"4562":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3972f"},"4563":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x39984"},"4564":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x39bb8"},"4565":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x39dec"},"4566":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3a041"},"4567":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3a275"},"4568":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3a4ca"},"4569":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3a6c8"},"4570":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3a917"},"4571":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3ab36"},"4572":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3ad34"},"4573":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3af68"},"4574":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3b1bd"},"4575":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3d39d"},"4576":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3d7a0"},"4577":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3dc8d"},"4578":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3dd12"},"4579":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3e279"},"4580":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3ee58"},"4581":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3f108"},"4582":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3f3fc"},"4583":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3f61b"},"4584":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3f8b2"},"4585":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x3fb08"},"4586":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x40117"},"4587":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x407c8"},"4588":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x40b17"},"4589":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x40e2d"},"4590":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x4111a"},"4591":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x41184"},"4592":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x41440"},"4593":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x414b8"},"4594":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x416ec"},"4595":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x41a99"},"4596":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0.cold:0x41bdb"},"4597":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1220c0"},"4598":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1365c0"},"4599":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1563b0"},"4600":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x16cf70"},"4601":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1802f0"},"4602":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x195120"},"4603":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1b9aa0"},"4604":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1c9d60"},"4605":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1d6980"},"4606":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x1edef0"},"4607":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x2048b0"},"4608":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x21fb20"},"4609":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x233040"},"4610":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x243640"},"4611":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x25dd30"},"4612":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x27b980"},"4613":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x298170"},"4614":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x2b97a0"},"4615":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x2cbbd0"},"4616":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x2db320"},"4617":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x2eab40"},"4618":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x2fa2a0"},"4619":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x309a50"},"4620":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x31a550"},"4621":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x329290"},"4622":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x33bba0"},"4623":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x34a740"},"4624":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x358920"},"4625":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x368ff0"},"4626":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x379070"},"4627":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x41e670"},"4628":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x45add0"},"4629":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x488600"},"4630":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x4967c0"},"4631":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x4ba630"},"4632":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x4fa0b0"},"4633":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x50a360"},"4634":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x5214a0"},"4635":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x533130"},"4636":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x54ad30"},"4637":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x565f90"},"4638":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x5cde40"},"4639":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x5ff4f0"},"4640":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x61b5e0"},"4641":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x633720"},"4642":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x645ec0"},"4643":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x64f9d0"},"4644":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x6688c0"},"4645":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x673920"},"4646":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x6904e0"},"4647":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x6aa1e0"},"4648":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_event.constprop.0:0x6bf5a0"},"4649":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_huge_control"},"4650":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_recv_huge_event"},"4651":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_retry_progress"},"4652":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x35d29"},"4653":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x35f28"},"4654":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x3634a"},"4655":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x36d60"},"4656":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x37048"},"4657":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x375bd"},"4658":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x3798e"},"4659":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x37ca4"},"4660":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x3d887"},"4661":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x3f1ef"},"4662":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x3fbef"},"4663":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x401fe"},"4664":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x40bfe"},"4665":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x40f14"},"4666":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0.cold:0x41ce9"},"4667":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x14cbe0"},"4668":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x15a5e0"},"4669":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x1711a0"},"4670":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x1ad8a0"},"4671":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x1bdce0"},"4672":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x1dabc0"},"4673":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x1f2230"},"4674":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x208bf0"},"4675":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x45fb70"},"4676":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x50e5a0"},"4677":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x56a1d0"},"4678":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x5d2070"},"4679":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x61f920"},"4680":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x637a60"},"4681":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send.constprop.0:0x6c3ed0"},"4682":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x355a0"},"4683":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3593d"},"4684":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x36529"},"4685":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x368c6"},"4686":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x37220"},"4687":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x37e6f"},"4688":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x381ca"},"4689":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x38437"},"4690":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x38845"},"4691":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x38d3d"},"4692":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x391f8"},"4693":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x396ed"},"4694":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x39942"},"4695":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x39b76"},"4696":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x39daa"},"4697":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x39fff"},"4698":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3a233"},"4699":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3a488"},"4700":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3a686"},"4701":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3a8d5"},"4702":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3aaf4"},"4703":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3acf2"},"4704":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3af26"},"4705":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3b17b"},"4706":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3d35b"},"4707":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3dc4b"},"4708":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3dcd0"},"4709":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3e237"},"4710":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3ee16"},"4711":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3f5d9"},"4712":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x3f870"},"4713":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x40786"},"4714":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x410d8"},"4715":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x41142"},"4716":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x413fe"},"4717":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x41476"},"4718":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x416aa"},"4719":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0.cold:0x418ca"},"4720":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x11fbb0"},"4721":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x1340b0"},"4722":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x17dde0"},"4723":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x192c10"},"4724":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x1c9120"},"4725":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x21d610"},"4726":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x230b30"},"4727":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x241130"},"4728":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x25b820"},"4729":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x279470"},"4730":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x295c60"},"4731":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x2b7290"},"4732":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x2c96c0"},"4733":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x2d8e10"},"4734":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x2e8630"},"4735":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x2f7d90"},"4736":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x307540"},"4737":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x318040"},"4738":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x326d80"},"4739":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x339690"},"4740":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x348230"},"4741":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x356410"},"4742":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x366ae0"},"4743":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x376b60"},"4744":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x41c160"},"4745":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x4880f0"},"4746":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x4942b0"},"4747":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x4b8120"},"4748":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x4f7ba0"},"4749":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x530820"},"4750":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x548820"},"4751":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x5fcfe0"},"4752":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x6459b0"},"4753":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x64f4c0"},"4754":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x6683b0"},"4755":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x671420"},"4756":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x68dfd0"},"4757":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.constprop.0:0x69fa90"},"4758":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x35dff"},"4759":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x36221"},"4760":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x36f1f"},"4761":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x37494"},"4762":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x37865"},"4763":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x37b7b"},"4764":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x3d75e"},"4765":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x3f0c6"},"4766":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x3f3ba"},"4767":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x3fac6"},"4768":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x400d5"},"4769":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x40ad5"},"4770":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x40deb"},"4771":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x412b8"},"4772":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0.cold:0x41b99"},"4773":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x153ee0"},"4774":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x16aaa0"},"4775":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x1b75d0"},"4776":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x1d44b0"},"4777":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x1eba20"},"4778":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x2023e0"},"4779":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x458900"},"4780":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x507e90"},"4781":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x51efd0"},"4782":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x563ac0"},"4783":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x5cb970"},"4784":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x619110"},"4785":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x631250"},"4786":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x65ef00"},"4787":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_send_event.part.0:0x6bd0d0"},"4788":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_set_auto_progress"},"4789":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_tamo"},"4790":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_tamo.cold"},"4791":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_update_global_settings"},"4792":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_upids_to_gpids"},"4793":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x222bf0"},"4794":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x236820"},"4795":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x246710"},"4796":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x260e00"},"4797":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x27ea50"},"4798":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x29b240"},"4799":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x2bc880"},"4800":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x2ceca0"},"4801":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x2de3f0"},"4802":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x2edc10"},"4803":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x2fd370"},"4804":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x30cb20"},"4805":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x35ba00"},"4806":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x36c0d0"},"4807":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_do_progress:0x677be0"},"4808":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x37f35"},"4809":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x38290"},"4810":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x384fd"},"4811":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x3890b"},"4812":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x38e03"},"4813":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x392be"},"4814":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x397b3"},"4815":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x39a08"},"4816":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x39c3c"},"4817":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x39e70"},"4818":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x3a0c5"},"4819":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x3a2f9"},"4820":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x3adb8"},"4821":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x3afec"},"4822":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete.cold:0x4153c"},"4823":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x2226e0"},"4824":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x236310"},"4825":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x246200"},"4826":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x2608f0"},"4827":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x27e540"},"4828":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x29ad30"},"4829":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x2bc370"},"4830":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x2ce790"},"4831":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x2ddee0"},"4832":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x2ed700"},"4833":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x2fce60"},"4834":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x30c610"},"4835":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x35b4f0"},"4836":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x36bbc0"},"4837":{"probe_name":"mpi-rest","function_name":"MPIDI_OFI_win_request_complete:0x6776d0"},"4838":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x11da40"},"4839":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x131ee0"},"4840":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x146aa0"},"4841":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x151760"},"4842":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x168320"},"4843":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x17bc70"},"4844":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x190a40"},"4845":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x1a8270"},"4846":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x1b4db0"},"4847":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x1d1c90"},"4848":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x1e8eb0"},"4849":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x1ff870"},"4850":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x21b370"},"4851":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x22e8c0"},"4852":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x23ee60"},"4853":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x259580"},"4854":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x2771a0"},"4855":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x293990"},"4856":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x2b4db0"},"4857":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x2c7420"},"4858":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x2d6b70"},"4859":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x2e6390"},"4860":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x2f5af0"},"4861":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x3052a0"},"4862":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x315ec0"},"4863":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x324c00"},"4864":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x337750"},"4865":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x3462f0"},"4866":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x353f90"},"4867":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x364660"},"4868":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x374c20"},"4869":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x419f10"},"4870":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x455bc0"},"4871":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x477200"},"4872":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x492370"},"4873":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x4b61e0"},"4874":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x4f5c20"},"4875":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x505260"},"4876":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x51c0d0"},"4877":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x52e230"},"4878":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x5468a0"},"4879":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x5601c0"},"4880":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x5c8e30"},"4881":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x5e02d0"},"4882":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x5e8dc0"},"4883":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x5f9520"},"4884":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x60c7b0"},"4885":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x616510"},"4886":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x62e6e0"},"4887":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x66e0f0"},"4888":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x68bdc0"},"4889":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x69d130"},"4890":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_init_req_hdr.part.0:0x6ba2c0"},"4891":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_send_hdr.constprop.0:0x147430"},"4892":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_send_hdr.constprop.0:0x1a8c90"},"4893":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_send_hdr:0x5e0f30"},"4894":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_am_send_hdr:0x5e9440"},"4895":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_coll_finalize"},"4896":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_coll_init"},"4897":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_comm_set_hints"},"4898":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_cray_get_target_vaddr"},"4899":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_cray_get_target_vaddr.cold"},"4900":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_cray_rma_shm_finalize"},"4901":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_cray_rma_shm_init"},"4902":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_delay_shm_mutex_destroy"},"4903":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x35603"},"4904":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x359a0"},"4905":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x35ea4"},"4906":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x362c6"},"4907":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3658c"},"4908":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x36929"},"4909":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x36fc4"},"4910":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x37539"},"4911":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3790a"},"4912":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x37c20"},"4913":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x37ed2"},"4914":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3822d"},"4915":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3849a"},"4916":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x388a8"},"4917":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x38da0"},"4918":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3925b"},"4919":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x39750"},"4920":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x399a5"},"4921":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x39bd9"},"4922":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x39e0d"},"4923":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3a062"},"4924":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3a296"},"4925":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3a4eb"},"4926":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3a6e9"},"4927":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3a938"},"4928":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3ab57"},"4929":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3ad55"},"4930":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3af89"},"4931":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3b1de"},"4932":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3d3be"},"4933":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3d803"},"4934":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3dae9"},"4935":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3dd33"},"4936":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3e29a"},"4937":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3ee79"},"4938":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3f16b"},"4939":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3f41d"},"4940":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3f63c"},"4941":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3f8d3"},"4942":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x3fb6b"},"4943":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x4017a"},"4944":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x407e9"},"4945":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x40b7a"},"4946":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x40e90"},"4947":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x414d9"},"4948":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x4170d"},"4949":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x4190c"},"4950":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.cold:0x41c3e"},"4951":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0.cold:0x386ed"},"4952":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0.cold:0x38bc4"},"4953":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0.cold:0x390a0"},"4954":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0.cold:0x39574"},"4955":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0.cold:0x4062e"},"4956":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0:0x253190"},"4957":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0:0x270240"},"4958":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0:0x28d6c0"},"4959":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0:0x2ab350"},"4960":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend.constprop.0:0x5f05f0"},"4961":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x122820"},"4962":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x136d20"},"4963":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x157700"},"4964":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x16e2c0"},"4965":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x180a50"},"4966":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x195880"},"4967":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x1bae00"},"4968":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x1d7ce0"},"4969":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x1ef350"},"4970":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x205d10"},"4971":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x220280"},"4972":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x2337a0"},"4973":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x243da0"},"4974":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x25e490"},"4975":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x27c0e0"},"4976":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x2988d0"},"4977":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x2b9f00"},"4978":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x2cc330"},"4979":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x2dba80"},"4980":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x2eb2a0"},"4981":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x2faa00"},"4982":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x30a1b0"},"4983":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x31acb0"},"4984":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x3299f0"},"4985":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x33c300"},"4986":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x34aea0"},"4987":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x359080"},"4988":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x369750"},"4989":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x3797d0"},"4990":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x41edd0"},"4991":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x45c240"},"4992":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x480580"},"4993":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x496f20"},"4994":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x4bad90"},"4995":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x4fa810"},"4996":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x50b6c0"},"4997":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x521c10"},"4998":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x533780"},"4999":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x54b490"},"5000":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x5672f0"},"5001":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x5cf190"},"5002":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x5ffc50"},"5003":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x61ca40"},"5004":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x634b80"},"5005":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x674080"},"5006":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x690c40"},"5007":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x6a0a60"},"5008":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_isend:0x6c0900"},"5009":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x11ebf0"},"5010":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x1330f0"},"5011":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x17ce20"},"5012":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x191c50"},"5013":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x21c650"},"5014":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x22fb70"},"5015":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x240170"},"5016":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x25a860"},"5017":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2784b0"},"5018":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x294ca0"},"5019":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2c8700"},"5020":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2d7e50"},"5021":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2e7670"},"5022":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2f6dd0"},"5023":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x306580"},"5024":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x3386d0"},"5025":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x347270"},"5026":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x375ba0"},"5027":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x41b090"},"5028":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x4931e0"},"5029":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x4b7160"},"5030":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x4f6be0"},"5031":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x52f4a0"},"5032":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x547860"},"5033":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x5fa0c0"},"5034":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x68d010"},"5035":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr.constprop.0:0x69e0f0"},"5036":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x152740"},"5037":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x169300"},"5038":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x1b5e20"},"5039":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x1d2d00"},"5040":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x1e9e80"},"5041":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x200640"},"5042":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x2b5fb0"},"5043":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x316e70"},"5044":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x325bb0"},"5045":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x355130"},"5046":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x365800"},"5047":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x456b40"},"5048":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x477ea0"},"5049":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x5060d0"},"5050":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x51d0f0"},"5051":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x560ff0"},"5052":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x5c9bd0"},"5053":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x617370"},"5054":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x62f6b0"},"5055":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x66f160"},"5056":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_do_am_send_hdr:0x6bb170"},"5057":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_buf_limit"},"5058":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_finalize"},"5059":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_init"},"5060":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_payload_limit"},"5061":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_recv_begin"},"5062":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_recv_commit"},"5063":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_recv_completed_hook"},"5064":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_recv_memcpy"},"5065":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_recv_posted_hook"},"5066":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_send"},"5067":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_eager_send.cold"},"5068":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_init_local"},"5069":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_init_world"},"5070":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_iqueue_finalize"},"5071":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_iqueue_init"},"5072":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_alloc_mem"},"5073":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_allreduce"},"5074":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_allreduce_release_gather"},"5075":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_barrier"},"5076":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_barrier_release_gather"},"5077":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_barrier_release_gather.cold"},"5078":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_bcast"},"5079":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_bcast_release_gather.part.0"},"5080":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_bcast_release_gather.part.0.cold"},"5081":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_comm_commit_post_hook"},"5082":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_comm_commit_pre_hook"},"5083":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_comm_free_hook"},"5084":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_finalize_hook"},"5085":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_free_mem"},"5086":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_iprobe.constprop.0:0x132c20"},"5090":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_irecv.constprop.0:0x144790"},"5091":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_irecv.constprop.0:0x1a3a60"},"5092":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_irecv.constprop.0:0x1f6720"},"5093":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_irecv.constprop.0:0x20d0e0"},"5094":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_irecv.constprop.0:0x623e10"},"5095":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_irecv.constprop.0:0x63bf50"},"5096":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_op_commit_hook"},"5097":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_op_free_hook"},"5098":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_precv_init"},"5099":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_psend_init"},"5100":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_reduce:0x440ee0"},"5101":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_reduce:0x4c3f40"},"5102":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_reduce_release_gather.part.0.cold"},"5103":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_reduce_release_gather.part.0:0x440940"},"5104":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_reduce_release_gather.part.0:0x4c31a0"},"5105":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_release_gather_comm_free"},"5106":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_release_gather_comm_init"},"5107":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_release_gather_comm_init.cold"},"5108":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_release_gather_comm_init_null"},"5109":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_release_gather_gather"},"5110":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_release_gather_gather.cold"},"5111":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_release_gather_release"},"5112":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_type_commit_hook"},"5113":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_type_free_hook"},"5114":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_allocate"},"5115":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_allocate_hook"},"5116":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_allocate_shared"},"5117":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_allocate_shared_hook"},"5118":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_attach"},"5119":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_attach_hook"},"5120":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_create"},"5121":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_create_dynamic"},"5122":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_create_dynamic_hook"},"5123":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_create_hook"},"5124":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_detach"},"5125":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_detach_hook"},"5126":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_free"},"5127":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_free_hook"},"5128":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_get_info"},"5129":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_mpi_win_set_info"},"5130":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_nb_release_gather_comm_free"},"5131":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_nb_release_gather_comm_init"},"5132":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_nb_release_gather_comm_init.cold"},"5133":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x123210"},"5134":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x137710"},"5135":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x1580f0"},"5136":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x16ecb0"},"5137":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x181440"},"5138":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x196270"},"5139":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x1bb7f0"},"5140":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x1d86d0"},"5141":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x1efd40"},"5142":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x206700"},"5143":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x220c70"},"5144":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x234190"},"5145":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x244790"},"5146":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x25ee80"},"5147":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x27cad0"},"5148":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x2992c0"},"5149":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x2ba8f0"},"5150":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x2ccd20"},"5151":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x2dc470"},"5152":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x2ebc90"},"5153":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x2fb3f0"},"5154":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x30aba0"},"5155":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x31b6a0"},"5156":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x32a3e0"},"5157":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x33ccf0"},"5158":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x34b890"},"5159":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x359a70"},"5160":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x36a140"},"5161":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x37a1c0"},"5162":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x41f7c0"},"5163":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x45cc30"},"5164":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x480f70"},"5165":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x497910"},"5166":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x4bb780"},"5167":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x4fb200"},"5168":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x50c0b0"},"5169":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x522600"},"5170":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x534170"},"5171":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x54be80"},"5172":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x567ce0"},"5173":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x5cfb80"},"5174":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x600640"},"5175":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x61d430"},"5176":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x635570"},"5177":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x674a70"},"5178":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x691630"},"5179":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x6a1450"},"5180":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress.constprop.0:0x6c12f0"},"5181":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x11da70"},"5182":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x131f10"},"5183":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x1517c0"},"5184":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x168380"},"5185":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x17bca0"},"5186":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x190a70"},"5187":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x1b4ea0"},"5188":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x1d1d80"},"5189":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x1e8fa0"},"5190":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x1ff960"},"5191":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x21b400"},"5192":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x22e920"},"5193":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x23ef20"},"5194":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x259610"},"5195":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x277260"},"5196":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x293a50"},"5197":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x2b4e40"},"5198":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x2c74b0"},"5199":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x2d6c00"},"5200":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x2e6420"},"5201":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x2f5b80"},"5202":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x305330"},"5203":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x315ef0"},"5204":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x324c30"},"5205":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x337780"},"5206":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x346320"},"5207":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x353fc0"},"5208":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x364690"},"5209":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x374c50"},"5210":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x41a1e0"},"5211":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x455ce0"},"5212":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x477290"},"5213":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x4923a0"},"5214":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x4b6210"},"5215":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x4f5c50"},"5216":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x5053b0"},"5217":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x51c130"},"5218":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x52e510"},"5219":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x5468d0"},"5220":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x560310"},"5221":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x5c8ef0"},"5222":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x5f9550"},"5223":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x616600"},"5224":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x62e7d0"},"5225":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x66e1b0"},"5226":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x68c050"},"5227":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x69d160"},"5228":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_progress_recv.constprop.0:0x6ba380"},"5229":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_rma_target_cmpl_hook"},"5230":{"probe_name":"mpi-rest","function_name":"MPIDI_POSIX_shm_win_init_hook"},"5231":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_alpha.cold:0x3d684"},"5232":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_alpha.cold:0x3e452"},"5233":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_alpha:0x441340"},"5234":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_alpha:0x4c43a0"},"5235":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_beta.cold:0x3d6a6"},"5236":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_beta.cold:0x3e474"},"5237":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_beta:0x441880"},"5238":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_beta:0x4c48e0"},"5239":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_gamma.part.0:0x41a0f0"},"5240":{"probe_name":"mpi-rest","function_name":"MPIDI_Reduce_intra_composition_gamma.part.0:0x4b61b0"},"5241":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_comm_set_hints"},"5242":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_copy_tree"},"5243":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_create_template_tree"},"5244":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_gen_package_tree"},"5245":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_gen_tree"},"5246":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_gen_tree_sharedmemory"},"5247":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_init_local"},"5248":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_init_world"},"5249":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_alloc_mem"},"5250":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_comm_commit_post_hook"},"5251":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_comm_commit_pre_hook"},"5252":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_comm_free_hook"},"5253":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_finalize_hook"},"5254":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_free_mem"},"5255":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x140470"},"5256":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x19f690"},"5257":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x1e8f70"},"5258":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x1ff900"},"5259":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x455c20"},"5260":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x477260"},"5261":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x5052c0"},"5262":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x560250"},"5263":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x5c8ec0"},"5264":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x6165d0"},"5265":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x62e7a0"},"5266":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_irecv.part.0:0x6ba350"},"5267":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_op_commit_hook"},"5268":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_op_free_hook"},"5269":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_precv_init"},"5270":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_psend_init"},"5271":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_type_commit_hook"},"5272":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_type_free_hook"},"5273":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_allocate"},"5274":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_allocate_hook"},"5275":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_allocate_shared"},"5276":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_allocate_shared_hook"},"5277":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_attach"},"5278":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_attach_hook"},"5279":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_create"},"5280":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_create_dynamic"},"5281":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_create_dynamic_hook"},"5282":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_create_hook"},"5283":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_detach"},"5284":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_detach_hook"},"5285":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_free"},"5286":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_free_hook"},"5287":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_get_info"},"5288":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_mpi_win_set_info"},"5289":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_print_topotree"},"5290":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_print_topotree_file"},"5291":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_topology_tree_init"},"5292":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_topotree_allocate"},"5293":{"probe_name":"mpi-rest","function_name":"MPIDI_SHM_topotree_get_package_level"},"5294":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_alloc_queue_ptr"},"5295":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_free_queue"},"5296":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_progress_queue"},"5297":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_progress_start"},"5298":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_progress_tops_queue"},"5299":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_progress_tops_start"},"5300":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_progress_tops_wait"},"5301":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_progress_wait"},"5302":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_pull_fence_head"},"5303":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_pull_msg"},"5304":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_pull_msg_list"},"5305":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_pull_queue"},"5306":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_push_fence"},"5307":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_push_msg"},"5308":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_push_queue"},"5309":{"probe_name":"mpi-rest","function_name":"MPIDI_ST_release_tops_requests"},"5310":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_cancel"},"5311":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_cancel.cold"},"5312":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_finalize"},"5313":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_improbe"},"5314":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_improbe.cold"},"5315":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_imrecv"},"5316":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_imrecv.cold"},"5317":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_init"},"5318":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_iprobe"},"5319":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_iprobe.cold"},"5320":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_irecv"},"5321":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_irecv.cold"},"5322":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_isend"},"5323":{"probe_name":"mpi-rest","function_name":"MPIDI_Self_isend.cold"},"5324":{"probe_name":"mpi-rest","function_name":"MPIDI_XPMEM_init_local"},"5325":{"probe_name":"mpi-rest","function_name":"MPIDI_XPMEM_init_world"},"5326":{"probe_name":"mpi-rest","function_name":"MPIDI_XPMEM_ipc_handle_map"},"5327":{"probe_name":"mpi-rest","function_name":"MPIDI_XPMEM_mpi_finalize_hook"},"5328":{"probe_name":"mpi-rest","function_name":"MPIDI_anysrc_try_cancel_partner"},"5329":{"probe_name":"mpi-rest","function_name":"MPIDI_check_disjoint_gpids"},"5330":{"probe_name":"mpi-rest","function_name":"MPIDI_check_for_failed_procs"},"5331":{"probe_name":"mpi-rest","function_name":"MPIDI_comm_create_rank_map"},"5332":{"probe_name":"mpi-rest","function_name":"MPIDI_create_init_comm"},"5333":{"probe_name":"mpi-rest","function_name":"MPIDI_destroy_init_comm"},"5334":{"probe_name":"mpi-rest","function_name":"MPIDI_get"},"5335":{"probe_name":"mpi-rest","function_name":"MPIDI_get.cold"},"5336":{"probe_name":"mpi-rest","function_name":"MPIDI_get_comm_hint_tclass"},"5337":{"probe_name":"mpi-rest","function_name":"MPIDI_imrecv.cold:0x35846"},"5338":{"probe_name":"mpi-rest","function_name":"MPIDI_imrecv.cold:0x367cf"},"5339":{"probe_name":"mpi-rest","function_name":"MPIDI_imrecv:0x12ee30"},"5340":{"probe_name":"mpi-rest","function_name":"MPIDI_imrecv:0x18d810"},"5341":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.cold:0x3f3a2"},"5342":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.cold:0x3f7bf"},"5343":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.cold:0x3fa56"},"5344":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0"},"5345":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0.cold"},"5346":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0.isra.0.cold:0x3d541"},"5347":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0.isra.0.cold:0x3e41d"},"5348":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0.isra.0.cold:0x3effc"},"5349":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0.isra.0:0x425c00"},"5350":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0.isra.0:0x4c1bc0"},"5351":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test.constprop.0.isra.0:0x501620"},"5352":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test:0x517c10"},"5353":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test:0x53a5a0"},"5354":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test:0x5522a0"},"5355":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test_vci:0x362200"},"5356":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test_vci:0x3728d0"},"5357":{"probe_name":"mpi-rest","function_name":"MPIDI_progress_test_vci:0x67e3a0"},"5358":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0.cold:0x35465"},"5359":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0.cold:0x36e6a"},"5360":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0.cold:0x37241"},"5361":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0.cold:0x3778e"},"5362":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0:0x119330"},"5363":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0:0x1b2a60"},"5364":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0:0x1c92a0"},"5365":{"probe_name":"mpi-rest","function_name":"MPIDI_psend_init.constprop.0:0x1e5130"},"5366":{"probe_name":"mpi-rest","function_name":"MPIDI_put"},"5367":{"probe_name":"mpi-rest","function_name":"MPIDI_put.cold"},"5368":{"probe_name":"mpi-rest","function_name":"MPIDI_rget.constprop.0"},"5369":{"probe_name":"mpi-rest","function_name":"MPIDI_rget.constprop.0.cold"},"5370":{"probe_name":"mpi-rest","function_name":"MPIDI_rput.constprop.0"},"5371":{"probe_name":"mpi-rest","function_name":"MPIDI_rput.constprop.0.cold"},"5372":{"probe_name":"mpi-rest","function_name":"MPIDI_set_comm_hint_receiver_vci"},"5373":{"probe_name":"mpi-rest","function_name":"MPIDI_set_comm_hint_sender_vci"},"5374":{"probe_name":"mpi-rest","function_name":"MPIDI_set_comm_hint_tclass"},"5375":{"probe_name":"mpi-rest","function_name":"MPIDI_set_comm_hint_vci"},"5376":{"probe_name":"mpi-rest","function_name":"MPIDI_sigusr1_handler"},"5377":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_alloc"},"5378":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_barrier"},"5379":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_finalize"},"5380":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_free"},"5381":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_get"},"5382":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_init"},"5383":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_is_symm"},"5384":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_put"},"5385":{"probe_name":"mpi-rest","function_name":"MPIDU_Init_shm_query"},"5386":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_add_entry.constprop.0"},"5387":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_alloc_state"},"5388":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_are_pending"},"5389":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_barrier"},"5390":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_cb"},"5391":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_cb2"},"5392":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_clone"},"5393":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_continue"},"5394":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_continue.cold"},"5395":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_copy"},"5396":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_copy.cold"},"5397":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_create"},"5398":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_free"},"5399":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_free.cold"},"5400":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_next_tag"},"5401":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_progress"},"5402":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_progress.cold"},"5403":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_pt2pt_recv"},"5404":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_pt2pt_recv.cold"},"5405":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_pt2pt_send"},"5406":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_pt2pt_send.cold"},"5407":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_recv"},"5408":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_recv.cold"},"5409":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_recv_status"},"5410":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_recv_status.cold"},"5411":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_reduce"},"5412":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_reduce.cold"},"5413":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_reset"},"5414":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_send"},"5415":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_send.cold"},"5416":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_send_defer"},"5417":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_send_defer.cold"},"5418":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_set_tag"},"5419":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_ssend"},"5420":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_ssend.cold"},"5421":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_start"},"5422":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_tamo"},"5423":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_tamo.cold"},"5424":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_trecv"},"5425":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_trecv.cold"},"5426":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_tsend"},"5427":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_tsend.cold"},"5428":{"probe_name":"mpi-rest","function_name":"MPIDU_Sched_twait"},"5429":{"probe_name":"mpi-rest","function_name":"MPIDU_bc_allgather"},"5430":{"probe_name":"mpi-rest","function_name":"MPIDU_bc_table_create"},"5431":{"probe_name":"mpi-rest","function_name":"MPIDU_bc_table_destroy"},"5432":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_private_pool_alloc_cell"},"5433":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_private_pool_create"},"5434":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_private_pool_destroy"},"5435":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_private_pool_free_cell"},"5436":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_shmem_pool_create"},"5437":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_shmem_pool_destroy"},"5438":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_shmem_pool_gpu_mem_register"},"5439":{"probe_name":"mpi-rest","function_name":"MPIDU_genq_shmem_queue_init"},"5440":{"probe_name":"mpi-rest","function_name":"MPIDU_shm_alloc"},"5441":{"probe_name":"mpi-rest","function_name":"MPIDU_shm_alloc_symm_all"},"5442":{"probe_name":"mpi-rest","function_name":"MPIDU_shm_free"},"5443":{"probe_name":"mpi-rest","function_name":"MPIDU_shm_get_mapsize"},"5444":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_alloc"},"5445":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_alloc_event"},"5446":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_dealloc"},"5447":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_enqueue"},"5448":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_finalize"},"5449":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_free_event"},"5450":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_init"},"5451":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_progress_ops"},"5452":{"probe_name":"mpi-rest","function_name":"MPIDU_stream_workq_progress_wait_list"},"5453":{"probe_name":"mpi-rest","function_name":"MPID_Abort"},"5454":{"probe_name":"mpi-rest","function_name":"MPID_Abort.cold"},"5455":{"probe_name":"mpi-rest","function_name":"MPID_Accumulate"},"5456":{"probe_name":"mpi-rest","function_name":"MPID_Accumulate.cold"},"5457":{"probe_name":"mpi-rest","function_name":"MPID_Aint_add"},"5458":{"probe_name":"mpi-rest","function_name":"MPID_Aint_diff"},"5459":{"probe_name":"mpi-rest","function_name":"MPID_Alloc_mem"},"5460":{"probe_name":"mpi-rest","function_name":"MPID_Allocate_vci"},"5461":{"probe_name":"mpi-rest","function_name":"MPID_Attr_alloc"},"5462":{"probe_name":"mpi-rest","function_name":"MPID_Attr_alloc.cold"},"5463":{"probe_name":"mpi-rest","function_name":"MPID_Attr_free"},"5464":{"probe_name":"mpi-rest","function_name":"MPID_Bsend_init.part.0"},"5465":{"probe_name":"mpi-rest","function_name":"MPID_Cancel_recv"},"5466":{"probe_name":"mpi-rest","function_name":"MPID_Cancel_send.part.0"},"5467":{"probe_name":"mpi-rest","function_name":"MPID_Cleanup_treq"},"5468":{"probe_name":"mpi-rest","function_name":"MPID_Close_port"},"5469":{"probe_name":"mpi-rest","function_name":"MPID_Comm_accept"},"5470":{"probe_name":"mpi-rest","function_name":"MPID_Comm_commit_post_hook"},"5471":{"probe_name":"mpi-rest","function_name":"MPID_Comm_commit_pre_hook"},"5472":{"probe_name":"mpi-rest","function_name":"MPID_Comm_connect"},"5473":{"probe_name":"mpi-rest","function_name":"MPID_Comm_disconnect"},"5474":{"probe_name":"mpi-rest","function_name":"MPID_Comm_failure_ack"},"5475":{"probe_name":"mpi-rest","function_name":"MPID_Comm_failure_get_acked"},"5476":{"probe_name":"mpi-rest","function_name":"MPID_Comm_free_hook"},"5477":{"probe_name":"mpi-rest","function_name":"MPID_Comm_get_all_failed_procs"},"5478":{"probe_name":"mpi-rest","function_name":"MPID_Comm_get_lpid"},"5479":{"probe_name":"mpi-rest","function_name":"MPID_Comm_get_lpid.cold"},"5480":{"probe_name":"mpi-rest","function_name":"MPID_Comm_group_failed"},"5481":{"probe_name":"mpi-rest","function_name":"MPID_Comm_reenable_anysource"},"5482":{"probe_name":"mpi-rest","function_name":"MPID_Comm_remote_group_failed"},"5483":{"probe_name":"mpi-rest","function_name":"MPID_Comm_revoke"},"5484":{"probe_name":"mpi-rest","function_name":"MPID_Comm_set_hints"},"5485":{"probe_name":"mpi-rest","function_name":"MPID_Comm_spawn_multiple"},"5486":{"probe_name":"mpi-rest","function_name":"MPID_Create_intercomm_from_lpids"},"5487":{"probe_name":"mpi-rest","function_name":"MPID_Create_tput.part.0"},"5488":{"probe_name":"mpi-rest","function_name":"MPID_Create_tsend.constprop.0"},"5489":{"probe_name":"mpi-rest","function_name":"MPID_Deallocate_vci"},"5490":{"probe_name":"mpi-rest","function_name":"MPID_Finalize"},"5491":{"probe_name":"mpi-rest","function_name":"MPID_Free_mem"},"5492":{"probe_name":"mpi-rest","function_name":"MPID_Free_tindex.part.0"},"5493":{"probe_name":"mpi-rest","function_name":"MPID_Get_accumulate"},"5494":{"probe_name":"mpi-rest","function_name":"MPID_Get_accumulate.cold"},"5495":{"probe_name":"mpi-rest","function_name":"MPID_Get_max_node_id"},"5496":{"probe_name":"mpi-rest","function_name":"MPID_Get_node_id"},"5497":{"probe_name":"mpi-rest","function_name":"MPID_Get_processor_name"},"5498":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index"},"5499":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index_without_target.part.0:0x3d0130"},"5500":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index_without_target.part.0:0x3dfe20"},"5501":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index_without_target.part.0:0x3e4560"},"5502":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index_without_target.part.0:0x3f4f10"},"5503":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index_without_target.part.0:0x3fa2f0"},"5504":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index_without_target.part.0:0x6164b0"},"5505":{"probe_name":"mpi-rest","function_name":"MPID_Get_trgr_index_without_target.part.0:0x644ce0"},"5506":{"probe_name":"mpi-rest","function_name":"MPID_Get_universe_size"},"5507":{"probe_name":"mpi-rest","function_name":"MPID_Imrecv.part.0"},"5508":{"probe_name":"mpi-rest","function_name":"MPID_Init"},"5509":{"probe_name":"mpi-rest","function_name":"MPID_InitCompleted"},"5510":{"probe_name":"mpi-rest","function_name":"MPID_Intercomm_exchange_map"},"5511":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0.cold:0x35bc8"},"5512":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0.cold:0x36b51"},"5513":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0:0x144970"},"5514":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0:0x1a3c40"},"5515":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0:0x464010"},"5516":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0:0x512a20"},"5517":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0:0x56e650"},"5518":{"probe_name":"mpi-rest","function_name":"MPID_Irecv.constprop.0:0x5d64f0"},"5519":{"probe_name":"mpi-rest","function_name":"MPID_Irecv_enqueue"},"5520":{"probe_name":"mpi-rest","function_name":"MPID_Irsend.constprop.0:0x14ecc0"},"5521":{"probe_name":"mpi-rest","function_name":"MPID_Irsend.constprop.0:0x1b0520"},"5522":{"probe_name":"mpi-rest","function_name":"MPID_Isend.constprop.0:0x1624c0"},"5523":{"probe_name":"mpi-rest","function_name":"MPID_Isend.constprop.0:0x179080"},"5524":{"probe_name":"mpi-rest","function_name":"MPID_Isend.constprop.0:0x1c5bc0"},"5525":{"probe_name":"mpi-rest","function_name":"MPID_Isend.constprop.0:0x1e2aa0"},"5526":{"probe_name":"mpi-rest","function_name":"MPID_Isend.constprop.0:0x519390"},"5527":{"probe_name":"mpi-rest","function_name":"MPID_Isend.constprop.0:0x575020"},"5528":{"probe_name":"mpi-rest","function_name":"MPID_Isend.constprop.0:0x5dcd70"},"5529":{"probe_name":"mpi-rest","function_name":"MPID_Isend:0x1fc860"},"5530":{"probe_name":"mpi-rest","function_name":"MPID_Isend:0x213220"},"5531":{"probe_name":"mpi-rest","function_name":"MPID_Isend:0x46a780"},"5532":{"probe_name":"mpi-rest","function_name":"MPID_Isend:0x62bb80"},"5533":{"probe_name":"mpi-rest","function_name":"MPID_Isend:0x643750"},"5534":{"probe_name":"mpi-rest","function_name":"MPID_Isend_enqueue"},"5535":{"probe_name":"mpi-rest","function_name":"MPID_NS_Create"},"5536":{"probe_name":"mpi-rest","function_name":"MPID_NS_Free"},"5537":{"probe_name":"mpi-rest","function_name":"MPID_NS_Lookup"},"5538":{"probe_name":"mpi-rest","function_name":"MPID_NS_Publish"},"5539":{"probe_name":"mpi-rest","function_name":"MPID_NS_Unpublish"},"5540":{"probe_name":"mpi-rest","function_name":"MPID_Op_commit_hook"},"5541":{"probe_name":"mpi-rest","function_name":"MPID_Op_free_hook"},"5542":{"probe_name":"mpi-rest","function_name":"MPID_Open_port"},"5543":{"probe_name":"mpi-rest","function_name":"MPID_Precv_init"},"5544":{"probe_name":"mpi-rest","function_name":"MPID_Prequest_free_hook"},"5545":{"probe_name":"mpi-rest","function_name":"MPID_Prequest_free_hook.cold"},"5546":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x35786"},"5547":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x35b23"},"5548":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x36069"},"5549":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3648b"},"5550":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3670f"},"5551":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x36aac"},"5552":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x37189"},"5553":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x376fe"},"5554":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x37b41"},"5555":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x37e57"},"5556":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x39909"},"5557":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x39b5e"},"5558":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x39d92"},"5559":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x39fc6"},"5560":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3a21b"},"5561":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3a44f"},"5562":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3a66e"},"5563":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3a86c"},"5564":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3aabb"},"5565":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3acda"},"5566":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3af0e"},"5567":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3b142"},"5568":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3b361"},"5569":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3dcae"},"5570":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x3fda2"},"5571":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x403b1"},"5572":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x4096c"},"5573":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x40db1"},"5574":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x410c7"},"5575":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x41692"},"5576":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x41a8f"},"5577":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0.cold:0x41e9c"},"5578":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x129f10"},"5579":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x13e3a0"},"5580":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x160f60"},"5581":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x177b20"},"5582":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x188140"},"5583":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x19cf00"},"5584":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x1c4660"},"5585":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x1e1540"},"5586":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x1fb300"},"5587":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x211cc0"},"5588":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x2c1b20"},"5589":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x2d3f20"},"5590":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x2e3670"},"5591":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x2f2e90"},"5592":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x3025f0"},"5593":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x311da0"},"5594":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x321b10"},"5595":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x330850"},"5596":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x343130"},"5597":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x351cd0"},"5598":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x360ca0"},"5599":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x371370"},"5600":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x380600"},"5601":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x489390"},"5602":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x519310"},"5603":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x553990"},"5604":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x573ac0"},"5605":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x5db810"},"5606":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x606870"},"5607":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x62a620"},"5608":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x6421f0"},"5609":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x67ce60"},"5610":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x6a8c80"},"5611":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.constprop.0:0x6ccd40"},"5612":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0.cold:0x3da3a"},"5613":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0.cold:0x3f5a0"},"5614":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0.cold:0x41890"},"5615":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0.isra.0"},"5616":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0:0x469220"},"5617":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0:0x49f330"},"5618":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0:0x529230"},"5619":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0:0x53bc90"},"5620":{"probe_name":"mpi-rest","function_name":"MPID_Progress_test.part.0:0x697a70"},"5621":{"probe_name":"mpi-rest","function_name":"MPID_Progress_wait"},"5622":{"probe_name":"mpi-rest","function_name":"MPID_Psend_init"},"5623":{"probe_name":"mpi-rest","function_name":"MPID_Put_stream"},"5624":{"probe_name":"mpi-rest","function_name":"MPID_Raccumulate.constprop.0"},"5625":{"probe_name":"mpi-rest","function_name":"MPID_Raccumulate.constprop.0.cold"},"5626":{"probe_name":"mpi-rest","function_name":"MPID_Recv_enqueue"},"5627":{"probe_name":"mpi-rest","function_name":"MPID_Recv_init.constprop.0"},"5628":{"probe_name":"mpi-rest","function_name":"MPID_Recv_init.constprop.0.cold"},"5629":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x11ef70"},"5630":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x133470"},"5631":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x140d20"},"5632":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x152cd0"},"5633":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x169890"},"5634":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x17d1a0"},"5635":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x191fd0"},"5636":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x1a02e0"},"5637":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x1b63b0"},"5638":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x1d3290"},"5639":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x1ea520"},"5640":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x200ee0"},"5641":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x21c9d0"},"5642":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x22fef0"},"5643":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x2404f0"},"5644":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x25abe0"},"5645":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x278830"},"5646":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x28b650"},"5647":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x295020"},"5648":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x2a8e30"},"5649":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x2b6af0"},"5650":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x2c8a80"},"5651":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x2d81d0"},"5652":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x2e79f0"},"5653":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x2f7150"},"5654":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x306900"},"5655":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x317400"},"5656":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x326140"},"5657":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x338a50"},"5658":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x3475f0"},"5659":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x3557d0"},"5660":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x365ea0"},"5661":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x375f20"},"5662":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x41b520"},"5663":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x4573e0"},"5664":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x480400"},"5665":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x493670"},"5666":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x4b74e0"},"5667":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x4f6f60"},"5668":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x506970"},"5669":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x51d680"},"5670":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x52faa0"},"5671":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x547be0"},"5672":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x562f50"},"5673":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x5ca470"},"5674":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x5e14d0"},"5675":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x5e9af0"},"5676":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x5fbd10"},"5677":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x617c10"},"5678":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x62fd50"},"5679":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x65ed80"},"5680":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x6712a0"},"5681":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x68d390"},"5682":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x69e470"},"5683":{"probe_name":"mpi-rest","function_name":"MPID_Request_complete.isra.0:0x6bbbb0"},"5684":{"probe_name":"mpi-rest","function_name":"MPID_Rget.part.0"},"5685":{"probe_name":"mpi-rest","function_name":"MPID_Rget_accumulate.constprop.0"},"5686":{"probe_name":"mpi-rest","function_name":"MPID_Rget_accumulate.constprop.0.cold"},"5687":{"probe_name":"mpi-rest","function_name":"MPID_Rput.part.0"},"5688":{"probe_name":"mpi-rest","function_name":"MPID_Rsend_init.part.0"},"5689":{"probe_name":"mpi-rest","function_name":"MPID_ST_create_queue"},"5690":{"probe_name":"mpi-rest","function_name":"MPID_ST_enqueue_msg"},"5691":{"probe_name":"mpi-rest","function_name":"MPID_ST_enqueue_start"},"5692":{"probe_name":"mpi-rest","function_name":"MPID_ST_enqueue_wait"},"5693":{"probe_name":"mpi-rest","function_name":"MPID_ST_free_queue"},"5694":{"probe_name":"mpi-rest","function_name":"MPID_ST_get_queue_comm_ptr"},"5695":{"probe_name":"mpi-rest","function_name":"MPID_ST_init"},"5696":{"probe_name":"mpi-rest","function_name":"MPID_ST_initialized"},"5697":{"probe_name":"mpi-rest","function_name":"MPID_ST_progress_queue"},"5698":{"probe_name":"mpi-rest","function_name":"MPID_ST_used"},"5699":{"probe_name":"mpi-rest","function_name":"MPID_Send_enqueue"},"5700":{"probe_name":"mpi-rest","function_name":"MPID_Send_init.part.0"},"5701":{"probe_name":"mpi-rest","function_name":"MPID_Setup_trecv.constprop.0"},"5702":{"probe_name":"mpi-rest","function_name":"MPID_Ssend_init.part.0"},"5703":{"probe_name":"mpi-rest","function_name":"MPID_Startall.constprop.0"},"5704":{"probe_name":"mpi-rest","function_name":"MPID_Stream_create_hook"},"5705":{"probe_name":"mpi-rest","function_name":"MPID_Stream_free_hook"},"5706":{"probe_name":"mpi-rest","function_name":"MPID_Stream_progress.isra.0"},"5707":{"probe_name":"mpi-rest","function_name":"MPID_Test.constprop.0"},"5708":{"probe_name":"mpi-rest","function_name":"MPID_Test.constprop.0.isra.0"},"5709":{"probe_name":"mpi-rest","function_name":"MPID_Testany"},"5710":{"probe_name":"mpi-rest","function_name":"MPID_Testsome"},"5711":{"probe_name":"mpi-rest","function_name":"MPID_Type_commit_hook"},"5712":{"probe_name":"mpi-rest","function_name":"MPID_Type_free_hook"},"5713":{"probe_name":"mpi-rest","function_name":"MPID_Wait.constprop.0:0x19f6c0"},"5714":{"probe_name":"mpi-rest","function_name":"MPID_Wait.constprop.0:0x1a82d0"},"5715":{"probe_name":"mpi-rest","function_name":"MPID_Wait.constprop.0:0x1b4e10"},"5716":{"probe_name":"mpi-rest","function_name":"MPID_Wait.constprop.0:0x1d1cf0"},"5717":{"probe_name":"mpi-rest","function_name":"MPID_Wait.constprop.0:0x455c50"},"5718":{"probe_name":"mpi-rest","function_name":"MPID_Wait.constprop.0:0x505320"},"5719":{"probe_name":"mpi-rest","function_name":"MPID_Wait.constprop.0:0x560280"},"5720":{"probe_name":"mpi-rest","function_name":"MPID_Wait:0x18af80"},"5721":{"probe_name":"mpi-rest","function_name":"MPID_Wait:0x53f000"},"5722":{"probe_name":"mpi-rest","function_name":"MPID_Wait_enqueue"},"5723":{"probe_name":"mpi-rest","function_name":"MPID_Waitall_enqueue"},"5724":{"probe_name":"mpi-rest","function_name":"MPID_Waitany"},"5725":{"probe_name":"mpi-rest","function_name":"MPID_Waitsome"},"5726":{"probe_name":"mpi-rest","function_name":"MPID_Win_allocate"},"5727":{"probe_name":"mpi-rest","function_name":"MPID_Win_allocate_shared"},"5728":{"probe_name":"mpi-rest","function_name":"MPID_Win_attach"},"5729":{"probe_name":"mpi-rest","function_name":"MPID_Win_complete_stream"},"5730":{"probe_name":"mpi-rest","function_name":"MPID_Win_create"},"5731":{"probe_name":"mpi-rest","function_name":"MPID_Win_create_dynamic"},"5732":{"probe_name":"mpi-rest","function_name":"MPID_Win_create_stream"},"5733":{"probe_name":"mpi-rest","function_name":"MPID_Win_detach"},"5734":{"probe_name":"mpi-rest","function_name":"MPID_Win_free"},"5735":{"probe_name":"mpi-rest","function_name":"MPID_Win_get_info"},"5736":{"probe_name":"mpi-rest","function_name":"MPID_Win_post_stream"},"5737":{"probe_name":"mpi-rest","function_name":"MPID_Win_progress_stream"},"5738":{"probe_name":"mpi-rest","function_name":"MPID_Win_set_info"},"5739":{"probe_name":"mpi-rest","function_name":"MPID_Win_start_stream"},"5740":{"probe_name":"mpi-rest","function_name":"MPID_Win_stream"},"5741":{"probe_name":"mpi-rest","function_name":"MPID_Win_wait_stream"},"5742":{"probe_name":"mpi-rest","function_name":"MPIOI_File_iread"},"5743":{"probe_name":"mpi-rest","function_name":"MPIOI_File_iread_all"},"5744":{"probe_name":"mpi-rest","function_name":"MPIOI_File_iread_shared"},"5745":{"probe_name":"mpi-rest","function_name":"MPIOI_File_iwrite"},"5746":{"probe_name":"mpi-rest","function_name":"MPIOI_File_iwrite_all"},"5747":{"probe_name":"mpi-rest","function_name":"MPIOI_File_iwrite_shared"},"5748":{"probe_name":"mpi-rest","function_name":"MPIOI_File_read"},"5749":{"probe_name":"mpi-rest","function_name":"MPIOI_File_read_all"},"5750":{"probe_name":"mpi-rest","function_name":"MPIOI_File_read_all_begin"},"5751":{"probe_name":"mpi-rest","function_name":"MPIOI_File_read_all_end"},"5752":{"probe_name":"mpi-rest","function_name":"MPIOI_File_read_ordered"},"5753":{"probe_name":"mpi-rest","function_name":"MPIOI_File_read_ordered_begin"},"5754":{"probe_name":"mpi-rest","function_name":"MPIOI_File_read_shared"},"5755":{"probe_name":"mpi-rest","function_name":"MPIOI_File_write"},"5756":{"probe_name":"mpi-rest","function_name":"MPIOI_File_write_all"},"5757":{"probe_name":"mpi-rest","function_name":"MPIOI_File_write_all_begin"},"5758":{"probe_name":"mpi-rest","function_name":"MPIOI_File_write_all_end"},"5759":{"probe_name":"mpi-rest","function_name":"MPIOI_File_write_ordered"},"5760":{"probe_name":"mpi-rest","function_name":"MPIOI_File_write_ordered_begin"},"5761":{"probe_name":"mpi-rest","function_name":"MPIOI_File_write_shared"},"5762":{"probe_name":"mpi-rest","function_name":"MPIOI_Register_datarep"},"5763":{"probe_name":"mpi-rest","function_name":"MPIOI_Type_block"},"5764":{"probe_name":"mpi-rest","function_name":"MPIOI_Type_cyclic"},"5765":{"probe_name":"mpi-rest","function_name":"MPIO_Completed_request_create"},"5766":{"probe_name":"mpi-rest","function_name":"MPIO_Err_create_code"},"5767":{"probe_name":"mpi-rest","function_name":"MPIO_Err_return_comm"},"5768":{"probe_name":"mpi-rest","function_name":"MPIO_Err_return_file"},"5769":{"probe_name":"mpi-rest","function_name":"MPIO_File_c2f"},"5770":{"probe_name":"mpi-rest","function_name":"MPIO_File_create"},"5771":{"probe_name":"mpi-rest","function_name":"MPIO_File_f2c"},"5772":{"probe_name":"mpi-rest","function_name":"MPIO_File_free"},"5773":{"probe_name":"mpi-rest","function_name":"MPIO_File_resolve"},"5774":{"probe_name":"mpi-rest","function_name":"MPIR_Abort"},"5775":{"probe_name":"mpi-rest","function_name":"MPIR_Abort_impl"},"5776":{"probe_name":"mpi-rest","function_name":"MPIR_Add_error_class_impl"},"5777":{"probe_name":"mpi-rest","function_name":"MPIR_Add_error_code_impl"},"5778":{"probe_name":"mpi-rest","function_name":"MPIR_Add_error_string_impl"},"5779":{"probe_name":"mpi-rest","function_name":"MPIR_Add_finalize"},"5780":{"probe_name":"mpi-rest","function_name":"MPIR_All_romio_symbols"},"5781":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather"},"5782":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather.cold"},"5783":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_allcomm_auto"},"5784":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_allcomm_nb"},"5785":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_impl"},"5786":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_init"},"5787":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_init_impl"},"5788":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_inter_local_gather_remote_bcast"},"5789":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_inter_local_gather_remote_bcast.cold"},"5790":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_brucks"},"5791":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_brucks.cold"},"5792":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_k_brucks"},"5793":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_k_brucks.cold"},"5794":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_recursive_doubling"},"5795":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_recursive_doubling.cold"},"5796":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_ring"},"5797":{"probe_name":"mpi-rest","function_name":"MPIR_Allgather_intra_ring.cold"},"5798":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv"},"5799":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_allcomm_auto"},"5800":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_allcomm_nb"},"5801":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_impl"},"5802":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_init"},"5803":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_init_impl"},"5804":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_inter_remote_gather_local_bcast"},"5805":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_intra_brucks"},"5806":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_intra_brucks.cold"},"5807":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_intra_recursive_doubling"},"5808":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_intra_recursive_doubling.cold"},"5809":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_intra_ring"},"5810":{"probe_name":"mpi-rest","function_name":"MPIR_Allgatherv_intra_ring.cold"},"5811":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce"},"5812":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce.cold"},"5813":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_allcomm_auto"},"5814":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_allcomm_nb"},"5815":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_enqueue_impl"},"5816":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_enqueue_impl.cold"},"5817":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_impl"},"5818":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_init"},"5819":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_init_impl"},"5820":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_inter_reduce_exchange_bcast"},"5821":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_inter_reduce_exchange_bcast.cold"},"5822":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_k_reduce_scatter_allgather"},"5823":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_k_reduce_scatter_allgather.cold"},"5824":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_recexch"},"5825":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_recexch.cold"},"5826":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_recursive_doubling"},"5827":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_recursive_doubling.cold"},"5828":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_reduce_scatter_allgather"},"5829":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_reduce_scatter_allgather.cold"},"5830":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_ring"},"5831":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_ring.cold"},"5832":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_smp"},"5833":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_tree"},"5834":{"probe_name":"mpi-rest","function_name":"MPIR_Allreduce_intra_tree.cold"},"5835":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall"},"5836":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall.cold"},"5837":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_allcomm_auto"},"5838":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_allcomm_nb"},"5839":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_impl"},"5840":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_init"},"5841":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_init_impl"},"5842":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_inter_pairwise_exchange"},"5843":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_inter_pairwise_exchange.cold"},"5844":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_brucks"},"5845":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_brucks.cold"},"5846":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_k_brucks"},"5847":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_k_brucks.cold"},"5848":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_pairwise"},"5849":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_pairwise.cold"},"5850":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_pairwise_sendrecv_replace"},"5851":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_pairwise_sendrecv_replace.cold"},"5852":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_scattered"},"5853":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoall_intra_scattered.cold"},"5854":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv"},"5855":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_allcomm_auto"},"5856":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_allcomm_nb"},"5857":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_impl"},"5858":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_init"},"5859":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_init_impl"},"5860":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_inter_pairwise_exchange"},"5861":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_inter_pairwise_exchange.cold"},"5862":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_intra_pairwise_sendrecv_replace"},"5863":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_intra_pairwise_sendrecv_replace.cold"},"5864":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_intra_scattered"},"5865":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallv_intra_scattered.cold"},"5866":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw"},"5867":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_allcomm_auto"},"5868":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_allcomm_nb"},"5869":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_impl"},"5870":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_init"},"5871":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_init_impl"},"5872":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_inter_pairwise_exchange"},"5873":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_intra_pairwise_sendrecv_replace"},"5874":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_intra_scattered"},"5875":{"probe_name":"mpi-rest","function_name":"MPIR_Alltoallw_intra_scattered.cold"},"5876":{"probe_name":"mpi-rest","function_name":"MPIR_Assert_fail"},"5877":{"probe_name":"mpi-rest","function_name":"MPIR_Assert_fail_fmt"},"5878":{"probe_name":"mpi-rest","function_name":"MPIR_Attr_delete_list"},"5879":{"probe_name":"mpi-rest","function_name":"MPIR_Attr_dup_list"},"5880":{"probe_name":"mpi-rest","function_name":"MPIR_BAND"},"5881":{"probe_name":"mpi-rest","function_name":"MPIR_BAND_check_dtype"},"5882":{"probe_name":"mpi-rest","function_name":"MPIR_BOR"},"5883":{"probe_name":"mpi-rest","function_name":"MPIR_BOR_check_dtype"},"5884":{"probe_name":"mpi-rest","function_name":"MPIR_BXOR"},"5885":{"probe_name":"mpi-rest","function_name":"MPIR_BXOR_check_dtype"},"5886":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier"},"5887":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_allcomm_auto"},"5888":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_allcomm_nb"},"5889":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_impl"},"5890":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_init"},"5891":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_init_impl"},"5892":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_inter_bcast"},"5893":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_intra_dissemination"},"5894":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_intra_k_dissemination"},"5895":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_intra_recexch"},"5896":{"probe_name":"mpi-rest","function_name":"MPIR_Barrier_intra_smp"},"5897":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast"},"5898":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_allcomm_auto"},"5899":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_allcomm_nb"},"5900":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_impl"},"5901":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_init"},"5902":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_init_impl"},"5903":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_inter_remote_send_local_bcast"},"5904":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_binomial"},"5905":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_pipelined_tree"},"5906":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_pipelined_tree.cold"},"5907":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_scatter_recursive_doubling_allgather"},"5908":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_scatter_ring_allgather"},"5909":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_smp"},"5910":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_smp.cold"},"5911":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_tree"},"5912":{"probe_name":"mpi-rest","function_name":"MPIR_Bcast_intra_tree.cold"},"5913":{"probe_name":"mpi-rest","function_name":"MPIR_Bsend_attach"},"5914":{"probe_name":"mpi-rest","function_name":"MPIR_Bsend_check_active"},"5915":{"probe_name":"mpi-rest","function_name":"MPIR_Bsend_detach"},"5916":{"probe_name":"mpi-rest","function_name":"MPIR_Bsend_finalize"},"5917":{"probe_name":"mpi-rest","function_name":"MPIR_Bsend_free_req_seg"},"5918":{"probe_name":"mpi-rest","function_name":"MPIR_Bsend_free_segment"},"5919":{"probe_name":"mpi-rest","function_name":"MPIR_Bsend_isend"},"5920":{"probe_name":"mpi-rest","function_name":"MPIR_Buffer_detach_impl"},"5921":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allgather"},"5922":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allgather.cold"},"5923":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allgather_very_large_msg"},"5924":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allgather_very_large_msg.cold"},"5925":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allgatherv"},"5926":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allgatherv.cold"},"5927":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allreduce"},"5928":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allreduce.cold"},"5929":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allreduce_chunked"},"5930":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Allreduce_chunked.cold"},"5931":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Alltoall"},"5932":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Alltoall.cold"},"5933":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Alltoall_chunking"},"5934":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Alltoall_throttled"},"5935":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Alltoall_throttled.cold"},"5936":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Alltoallv"},"5937":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Alltoallv.cold"},"5938":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Barrier"},"5939":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Bcast"},"5940":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Bcast.cold"},"5941":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Bcast_Tree"},"5942":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_GPU_Allreduce_pipelined"},"5943":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_GPU_Allreduce_pipelined.cold"},"5944":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Gatherv"},"5945":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Gatherv.cold"},"5946":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Igatherv"},"5947":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Igatherv_sched_impl"},"5948":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Igatherv_sched_impl.cold"},"5949":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Reduce"},"5950":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Reduce.cold"},"5951":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Reduce_chunked"},"5952":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Reduce_chunked.cold"},"5953":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_SP_Gatherv"},"5954":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_SP_Gatherv.cold"},"5955":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Scatterv"},"5956":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_Scatterv.cold"},"5957":{"probe_name":"mpi-rest","function_name":"MPIR_CRAY_coll_sync_stats_print"},"5958":{"probe_name":"mpi-rest","function_name":"MPIR_Call_attr_copy"},"5959":{"probe_name":"mpi-rest","function_name":"MPIR_Call_attr_delete"},"5960":{"probe_name":"mpi-rest","function_name":"MPIR_Cancel_impl"},"5961":{"probe_name":"mpi-rest","function_name":"MPIR_Cart_coords_impl"},"5962":{"probe_name":"mpi-rest","function_name":"MPIR_Cart_create_impl"},"5963":{"probe_name":"mpi-rest","function_name":"MPIR_Cart_get_impl"},"5964":{"probe_name":"mpi-rest","function_name":"MPIR_Cart_map_impl"},"5965":{"probe_name":"mpi-rest","function_name":"MPIR_Cart_rank_impl"},"5966":{"probe_name":"mpi-rest","function_name":"MPIR_Cart_shift_impl"},"5967":{"probe_name":"mpi-rest","function_name":"MPIR_Cart_sub_impl"},"5968":{"probe_name":"mpi-rest","function_name":"MPIR_Cartdim_get_impl"},"5969":{"probe_name":"mpi-rest","function_name":"MPIR_Close_port_impl"},"5970":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_comm_init"},"5971":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_host_buffer_alloc"},"5972":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_host_buffer_free"},"5973":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_host_buffer_persist_set"},"5974":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_host_buffer_persist_set.cold"},"5975":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_host_buffer_swap_back"},"5976":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_host_buffer_swap_back.cold"},"5977":{"probe_name":"mpi-rest","function_name":"MPIR_Coll_safe_to_block"},"5978":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_accept_impl"},"5979":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_agree_impl"},"5980":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_call_errhandler_impl"},"5981":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_commit"},"5982":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_commit_internal"},"5983":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_compare_impl"},"5984":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_connect_impl"},"5985":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_copy_stream"},"5986":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create"},"5987":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_errhandler_impl"},"5988":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_from_group_impl"},"5989":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_group_impl"},"5990":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_impl"},"5991":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_inter"},"5992":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_intra"},"5993":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_keyval_impl"},"5994":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_create_subcomms"},"5995":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_delete_attr_impl"},"5996":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_delete_internal"},"5997":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_disconnect_impl"},"5998":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_dup_impl"},"5999":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_dup_with_info_impl"},"6000":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_free_impl"},"6001":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_free_keyval_impl"},"6002":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_get_attr_impl"},"6003":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_get_errhandler_impl"},"6004":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_get_failed_impl"},"6005":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_get_info_impl"},"6006":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_get_name_impl"},"6007":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_get_parent_impl"},"6008":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_get_stream_impl"},"6009":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_group_impl"},"6010":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_hint_init"},"6011":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_idup_impl"},"6012":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_idup_with_info_impl"},"6013":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_is_parent_comm"},"6014":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_join_impl"},"6015":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_map_dup"},"6016":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_map_free"},"6017":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_map_irregular"},"6018":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_rank_impl"},"6019":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_register_hint"},"6020":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_release_always"},"6021":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_remote_group_impl"},"6022":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_remote_size_impl"},"6023":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_set_attr_impl"},"6024":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_set_errhandler_impl"},"6025":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_set_info_impl"},"6026":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_set_name_impl"},"6027":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_shrink_impl"},"6028":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_size_impl"},"6029":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_spawn_impl"},"6030":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_spawn_multiple_impl"},"6031":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_filesystem"},"6032":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_impl"},"6033":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type"},"6034":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_by_node"},"6035":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_hw_guided"},"6036":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_hw_unguided"},"6037":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_impl"},"6038":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_nbhd_common_dir"},"6039":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_neighborhood"},"6040":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_network_topo"},"6041":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_node_topo"},"6042":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_split_type_self"},"6043":{"probe_name":"mpi-rest","function_name":"MPIR_Comm_test_inter_impl"},"6044":{"probe_name":"mpi-rest","function_name":"MPIR_Compare_equal"},"6045":{"probe_name":"mpi-rest","function_name":"MPIR_Copy_array"},"6046":{"probe_name":"mpi-rest","function_name":"MPIR_Cray_Memcpy_wrapper"},"6047":{"probe_name":"mpi-rest","function_name":"MPIR_Create_unnamed_predefined"},"6048":{"probe_name":"mpi-rest","function_name":"MPIR_Create_unnamed_predefined.cold"},"6049":{"probe_name":"mpi-rest","function_name":"MPIR_Csel_create_from_buf"},"6050":{"probe_name":"mpi-rest","function_name":"MPIR_Csel_create_from_file"},"6051":{"probe_name":"mpi-rest","function_name":"MPIR_Csel_free"},"6052":{"probe_name":"mpi-rest","function_name":"MPIR_Csel_prune"},"6053":{"probe_name":"mpi-rest","function_name":"MPIR_Csel_search"},"6054":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_blockindexed"},"6055":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_blockindexed.cold"},"6056":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_contiguous"},"6057":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_contiguous.cold"},"6058":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_indexed"},"6059":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_indexed.cold"},"6060":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_resized"},"6061":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_struct"},"6062":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_struct.cold"},"6063":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_vector"},"6064":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_create_vector.cold"},"6065":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_dup"},"6066":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_flatten"},"6067":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_flatten_size"},"6068":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_free"},"6069":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_get_contig"},"6070":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_iov"},"6071":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_iov_len"},"6072":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_printf"},"6073":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_printf.cold"},"6074":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_size_external32"},"6075":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_size_external32.cold"},"6076":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_unflatten"},"6077":{"probe_name":"mpi-rest","function_name":"MPIR_Dataloop_update_contig"},"6078":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_builtin_to_string"},"6079":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_builtintype_alignment"},"6080":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_combiner_to_string"},"6081":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_commit_pairtypes"},"6082":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_debug"},"6083":{"probe_name":"mpi-rest","function_name":"MPIR_Datatype_free"}} diff --git a/etc/datacrumbs/data/categories-haridev-tuolumne.json b/etc/datacrumbs/data/categories-haridev-tuolumne.json deleted file mode 100644 index fecb56cc..00000000 --- a/etc/datacrumbs/data/categories-haridev-tuolumne.json +++ /dev/null @@ -1 +0,0 @@ -{"1063":{"probe_name":"libc","function_name":"fwscanf"},"1062":{"probe_name":"libc","function_name":"fwrite"},"1061":{"probe_name":"libc","function_name":"fwprintf"},"1060":{"probe_name":"libc","function_name":"ftw64"},"1059":{"probe_name":"libc","function_name":"ftw"},"1058":{"probe_name":"libc","function_name":"ftruncate64"},"1057":{"probe_name":"libc","function_name":"ftruncate"},"1056":{"probe_name":"libc","function_name":"ftello64"},"1025":{"probe_name":"libc","function_name":"fcntl"},"1024":{"probe_name":"libc","function_name":"fcloseall"},"1023":{"probe_name":"libc","function_name":"fchownat"},"1022":{"probe_name":"libc","function_name":"fchown"},"1021":{"probe_name":"libc","function_name":"fchmodat"},"1020":{"probe_name":"libc","function_name":"fchmod"},"1019":{"probe_name":"libc","function_name":"fchdir"},"1014":{"probe_name":"libc","function_name":"euidaccess"},"1013":{"probe_name":"libc","function_name":"eaccess"},"1012":{"probe_name":"libc","function_name":"dup3"},"1011":{"probe_name":"libc","function_name":"dup2"},"1010":{"probe_name":"libc","function_name":"dup"},"1015":{"probe_name":"libc","function_name":"eventfd"},"1003":{"probe_name":"libc","function_name":"chown"},"1001":{"probe_name":"libc","function_name":"chdir"},"0":{"probe_name":"M","function_name":"SH"},"1016":{"probe_name":"libc","function_name":"faccessat"},"1004":{"probe_name":"libc","function_name":"close"},"1002":{"probe_name":"libc","function_name":"chmod"},"1":{"probe_name":"DC","function_name":"start"},"1017":{"probe_name":"libc","function_name":"fallocate"},"1018":{"probe_name":"libc","function_name":"fallocate64"},"2":{"probe_name":"DC","function_name":"end"},"1005":{"probe_name":"libc","function_name":"closedir"},"1000":{"probe_name":"libc","function_name":"access"},"1006":{"probe_name":"libc","function_name":"connect"},"1007":{"probe_name":"libc","function_name":"creat"},"1008":{"probe_name":"libc","function_name":"creat64"},"1009":{"probe_name":"libc","function_name":"dirfd"},"1026":{"probe_name":"libc","function_name":"fcntl64"},"1027":{"probe_name":"libc","function_name":"fdatasync"},"1028":{"probe_name":"libc","function_name":"fdopendir"},"1029":{"probe_name":"libc","function_name":"fflush"},"1030":{"probe_name":"libc","function_name":"fgetc"},"1031":{"probe_name":"libc","function_name":"fgets"},"1032":{"probe_name":"libc","function_name":"fgetwc"},"1033":{"probe_name":"libc","function_name":"fgetws"},"1034":{"probe_name":"libc","function_name":"fgetxattr"},"1035":{"probe_name":"libc","function_name":"fileno"},"1036":{"probe_name":"libc","function_name":"flistxattr"},"1037":{"probe_name":"libc","function_name":"flock"},"1038":{"probe_name":"libc","function_name":"fopen64"},"1039":{"probe_name":"libc","function_name":"fprintf"},"1040":{"probe_name":"libc","function_name":"fputc"},"1041":{"probe_name":"libc","function_name":"fputs"},"1042":{"probe_name":"libc","function_name":"fputwc"},"1043":{"probe_name":"libc","function_name":"fputws"},"1044":{"probe_name":"libc","function_name":"fread"},"1045":{"probe_name":"libc","function_name":"fremovexattr"},"1046":{"probe_name":"libc","function_name":"freopen"},"1047":{"probe_name":"libc","function_name":"freopen64"},"1048":{"probe_name":"libc","function_name":"fscanf"},"1049":{"probe_name":"libc","function_name":"fseek"},"1050":{"probe_name":"libc","function_name":"fseeko"},"1051":{"probe_name":"libc","function_name":"fseeko64"},"1052":{"probe_name":"libc","function_name":"fsetxattr"},"1053":{"probe_name":"libc","function_name":"fsync"},"1054":{"probe_name":"libc","function_name":"ftell"},"1055":{"probe_name":"libc","function_name":"ftello"}} diff --git a/etc/datacrumbs/data/categories-root-docker.json b/etc/datacrumbs/data/categories-root-docker.json deleted file mode 100644 index 35a9df9b..00000000 --- a/etc/datacrumbs/data/categories-root-docker.json +++ /dev/null @@ -1 +0,0 @@ -{"1079":{"probe_name":"iomap","function_name":"iomap_zero_range"},"1078":{"probe_name":"iomap","function_name":"iomap_writepages"},"1077":{"probe_name":"iomap","function_name":"iomap_writepage_end_bio"},"1076":{"probe_name":"iomap","function_name":"iomap_write_end"},"1075":{"probe_name":"iomap","function_name":"iomap_write_begin"},"1074":{"probe_name":"iomap","function_name":"iomap_truncate_page"},"1073":{"probe_name":"iomap","function_name":"iomap_to_fiemap"},"1072":{"probe_name":"iomap","function_name":"iomap_swapfile_fail"},"1071":{"probe_name":"iomap","function_name":"iomap_swapfile_add_extent"},"1070":{"probe_name":"iomap","function_name":"iomap_swapfile_activate"},"1069":{"probe_name":"iomap","function_name":"iomap_submit_ioend"},"1068":{"probe_name":"iomap","function_name":"iomap_sort_ioends"},"1067":{"probe_name":"iomap","function_name":"iomap_set_range_uptodate"},"1066":{"probe_name":"iomap","function_name":"iomap_seek_hole"},"1065":{"probe_name":"iomap","function_name":"iomap_seek_data"},"1064":{"probe_name":"iomap","function_name":"iomap_release_folio"},"1063":{"probe_name":"iomap","function_name":"iomap_readpage_iter"},"1062":{"probe_name":"iomap","function_name":"iomap_readahead"},"1061":{"probe_name":"iomap","function_name":"iomap_read_inline_data"},"1060":{"probe_name":"iomap","function_name":"iomap_read_folio_sync"},"1059":{"probe_name":"iomap","function_name":"iomap_read_folio"},"1058":{"probe_name":"iomap","function_name":"iomap_read_end_io"},"1057":{"probe_name":"iomap","function_name":"iomap_page_mkwrite"},"1056":{"probe_name":"iomap","function_name":"iomap_iter"},"1013":{"probe_name":"os_page_cache","function_name":"find_get_entries"},"100000":{"probe_name":"custom1","function_name":"openat"},"1012":{"probe_name":"os_page_cache","function_name":"end_page_writeback"},"1011":{"probe_name":"os_page_cache","function_name":"delete_from_page_cache_batch"},"1010":{"probe_name":"os_page_cache","function_name":"add_to_page_cache_lru"},"1009":{"probe_name":"python","function_name":"function__entry"},"1008":{"probe_name":"libc","function_name":"__unregister_atfork"},"100020":{"probe_name":"custom1","function_name":"openat2"},"1033":{"probe_name":"iomap","function_name":"iomap_bmap"},"1007":{"probe_name":"libc","function_name":"__run_fork_handlers"},"100019":{"probe_name":"custom1","function_name":"open"},"1032":{"probe_name":"iomap","function_name":"iomap_adjust_read_range"},"1006":{"probe_name":"libc","function_name":"__malloc_fork_unlock_parent"},"100018":{"probe_name":"custom1","function_name":"writev"},"1031":{"probe_name":"shm","function_name":"shmem_zero_setup"},"1005":{"probe_name":"libc","function_name":"__malloc_fork_unlock_child"},"100017":{"probe_name":"custom1","function_name":"readv"},"1030":{"probe_name":"shm","function_name":"shmem_unuse"},"1004":{"probe_name":"libc","function_name":"__malloc_fork_lock_parent"},"100016":{"probe_name":"custom1","function_name":"readahead"},"1029":{"probe_name":"shm","function_name":"shmem_unlock_mapping"},"1003":{"probe_name":"libc","function_name":"__libc_vfork"},"100015":{"probe_name":"custom1","function_name":"pwritev2"},"1028":{"probe_name":"shm","function_name":"shmem_uncharge"},"100004":{"probe_name":"custom1","function_name":"fallocate"},"1017":{"probe_name":"shm","function_name":"shmem_file_setup"},"100003":{"probe_name":"custom1","function_name":"close"},"1016":{"probe_name":"shm","function_name":"shmem_charge"},"100001":{"probe_name":"custom1","function_name":"read"},"1014":{"probe_name":"os_page_cache","function_name":"grab_cache_page_write_begin"},"100002":{"probe_name":"custom1","function_name":"write"},"1015":{"probe_name":"os_page_cache","function_name":"release_pages"},"100014":{"probe_name":"custom1","function_name":"pwritev"},"1027":{"probe_name":"shm","function_name":"shmem_truncate_range"},"100011":{"probe_name":"custom1","function_name":"preadv"},"1024":{"probe_name":"shm","function_name":"shmem_partial_swap_usage"},"100005":{"probe_name":"custom1","function_name":"fdatasync"},"1018":{"probe_name":"shm","function_name":"shmem_file_setup_with_mnt"},"100006":{"probe_name":"custom1","function_name":"flock"},"1019":{"probe_name":"shm","function_name":"shmem_get_unmapped_area"},"100007":{"probe_name":"custom1","function_name":"fsync"},"1020":{"probe_name":"shm","function_name":"shmem_init_fs_context"},"100008":{"probe_name":"custom1","function_name":"ftruncate"},"1021":{"probe_name":"shm","function_name":"shmem_kernel_file_setup"},"100009":{"probe_name":"custom1","function_name":"lseek"},"1022":{"probe_name":"shm","function_name":"shmem_lock"},"100010":{"probe_name":"custom1","function_name":"pread64"},"1023":{"probe_name":"shm","function_name":"shmem_mapping"},"1000":{"probe_name":"libc","function_name":"__GI___fork"},"100012":{"probe_name":"custom1","function_name":"preadv2"},"1025":{"probe_name":"shm","function_name":"shmem_read_mapping_page_gfp"},"1001":{"probe_name":"libc","function_name":"__GI___register_atfork"},"100013":{"probe_name":"custom1","function_name":"pwrite64"},"1026":{"probe_name":"shm","function_name":"shmem_swap_usage"},"0":{"probe_name":"M","function_name":"SH"},"1002":{"probe_name":"libc","function_name":"__GI___vfork"},"1034":{"probe_name":"iomap","function_name":"iomap_dio_alloc_bio.isra.0"},"1035":{"probe_name":"iomap","function_name":"iomap_dio_bio_end_io"},"1036":{"probe_name":"iomap","function_name":"iomap_dio_bio_iter"},"1037":{"probe_name":"iomap","function_name":"iomap_dio_complete"},"1038":{"probe_name":"iomap","function_name":"iomap_dio_complete_work"},"1039":{"probe_name":"iomap","function_name":"iomap_dio_deferred_complete"},"1040":{"probe_name":"iomap","function_name":"iomap_dio_hole_iter"},"1041":{"probe_name":"iomap","function_name":"iomap_dio_rw"},"1042":{"probe_name":"iomap","function_name":"iomap_dio_submit_bio"},"1043":{"probe_name":"iomap","function_name":"iomap_dio_zero"},"1044":{"probe_name":"iomap","function_name":"iomap_dirty_folio"},"1045":{"probe_name":"iomap","function_name":"iomap_fiemap"},"1046":{"probe_name":"iomap","function_name":"iomap_file_buffered_write"},"1047":{"probe_name":"iomap","function_name":"iomap_file_buffered_write_punch_delalloc"},"1048":{"probe_name":"iomap","function_name":"iomap_file_unshare"},"1049":{"probe_name":"iomap","function_name":"iomap_finish_ioend"},"1050":{"probe_name":"iomap","function_name":"iomap_finish_ioends"},"1051":{"probe_name":"iomap","function_name":"iomap_get_folio"},"1052":{"probe_name":"iomap","function_name":"iomap_invalidate_folio"},"1053":{"probe_name":"iomap","function_name":"iomap_ioend_compare"},"1054":{"probe_name":"iomap","function_name":"iomap_ioend_try_merge"},"1055":{"probe_name":"iomap","function_name":"iomap_is_partially_uptodate"}} diff --git a/etc/datacrumbs/data/compact.sh b/etc/datacrumbs/data/compact.sh deleted file mode 100755 index 84d580fb..00000000 --- a/etc/datacrumbs/data/compact.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -for file in *.json; do - [ -e "$file" ] || continue - jq -c . "$file" >"${file}.tmp" && mv "${file}.tmp" "$file" -done diff --git a/etc/datacrumbs/data/manual-probes-haridev-lead-us.json b/etc/datacrumbs/data/manual-probes-haridev-lead-us.json deleted file mode 100644 index 538d70c3..00000000 --- a/etc/datacrumbs/data/manual-probes-haridev-lead-us.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"libc","functions":["1010","1011","1051","1052","1567","1568","1569","1570","1928","1929","1930","1931"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] diff --git a/etc/datacrumbs/data/manual-probes-haridev-lead.json b/etc/datacrumbs/data/manual-probes-haridev-lead.json deleted file mode 100644 index 470ad516..00000000 --- a/etc/datacrumbs/data/manual-probes-haridev-lead.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"ior","functions":["2060","2061"],"binary_path":"/home/haridev/spack/opt/spack/linux-haswell/ior-3.3.0-ip47j26fw7xxfftdzjvy2h36phgcuypv/bin/ior","include_offsets":false}] diff --git a/etc/datacrumbs/data/manual-probes-haridev-tuolumne-mpiio.json b/etc/datacrumbs/data/manual-probes-haridev-tuolumne-mpiio.json deleted file mode 100644 index 59577fce..00000000 --- a/etc/datacrumbs/data/manual-probes-haridev-tuolumne-mpiio.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"mpi-rest","functions":["2077","2078","2087","2088","2090","2091","2248","2249","2255","2256","2290","2291","2306","2307","2363","2364","2365","2366","2367","2368","2376","2377","2378","2379","2380","2381","2382","2383","2384","2385","2386","2387","2388","2389","2390","2391","2392","2393","2394","2395","2396","2397","2398","2399","2400","2401","2402","2403","2404","2405","2406","2407","2408","2409","2410","2411","2412","2413","2414","2415","2416","2417","2418","2419","2420","2421","2422","2423","2424","2425","2426","2427","2428","2429","2430","2431","2432","2433","2434","2435","2436","2437","2438","2439","2440","2441","2442","2443","2444","2445","2446","2447","2448","2449","2450","2451","2452","2453","2454","2455","2456","2457","2458","2459","2460","2461","2462","2463","2464","2465","2466","2467","2468","2469","2470","2471","2473","2474","2475","2476","2477","2478","2479","2480","2481","2482","2483","2484","2485","2486","2487","2488","2489","2490","2491","2492","2493","2494","2495","2496","2497","2498","2499","2500","2501","2502","2503","2504","2505","2506","2507","2508","2509","2510","2511","2512","2513","2514","2515","2516","2517","2518","2519","2520","2521","2522","2523","2524","2525","2526","2527","2528","2529","2530","2531","2532","2533","2534","2535","2536","2537","2538","2539","2540","2541","2542","2543","2544","2545","2546","2547","2548","2549","2550","2551","2552","2553","2554","2555","2556","2557","2558","2559","2560","2561","2562","2563","2564","2565","2566","2567","2568","2569","2570","2571","2572","2573","2574","2575","2576","2577","2578","2579","2580","2581","2582","2583","2584","2585","2586","2587","2588","2589","2590","2591","2592","2593","2594","2595","2596","2597","2598","2599","2600","2601","2602","2603","2604","2605","2606","2607","2608","2609","2610","2611","2612","2613","2614","2615","2616","2617","2618","2619","2620","2621","2622","2623","2624","2625","2626","2627","2628","2629","2630","2631","2632","2633","2634","2635","2636","2637","2638","2639","2640","2641","2642","2643","2644","2645","2646","2647","2648","2649","2650","2651","2652","2653","2654","2655","2656","2657","2658","2659","2660","2661","2662","2663","2664","2665","2666","2667","2668","2669","2670","2671","2672","2673","2674","2675","2676","2677","2678","2679","2680","2681","2682","2683","2684","2685","2686","2687","2688","2689","2690","2691","2692","2693","2694","2695","2696","2697","2698","2699","2700","2701","2702","2703","2704","2705","2706","2707","2708","2709","2710","2711","2712","2713","2714","2715","2716","2717","2718","2719","2720","2721","2722","2723","2724","2725","2726","2727","2728","2729","2730","2731","2732","2733","2734","2735","2736","2737","2738","2739","2740","2741","2742","2743","2744","2745","2746","2747","2748","2749","2750","2751","2752","2753","2754","2755","2756","2757","2758","2759","2760","2761","2762","2763","2764","2765","2766","2767","2768","2769","2770","2771","2772","2773","2774","2775","2776","2777","2778","2779","2780","2781","2782","2783","2784","2785","2786","2787","2788","2789","2790","2791","2813","2814","2815","2816","2817","2818","2819","2820","2821","2822","2823","2824","2825","2826","2827","2828","2829","2830","2831","2832","2833","2834","2835","2836","2837","2838","2839","2840","2841","2842","2843","2844","2845","2847","2848","2849","2850","2851","2852","2853","2854","2855","2856","2857","2858","2859","2860","2861","2862","2863","2864","2865","2866","2867","2868","2869","2870","2871","2872","2873","2874","2875","2876","2877","2878","2879","2880","2881","2882","2883","2884","2885","2886","2887","2888","2889","2890","2891","2892","2893","2894","2895","2896","2897","2898","2899","2900","2901","2902","2903","2904","2905","2906","2907","2908","2909","2910","2911","2912","2913","2914","2915","2916","2917","2918","2919","2920","2921","2922","2923","2924","2925","2926","2927","2928","2929","2930","2931","2932","2933","2934","2935","2936","2937","2938","2939","2940","2941","2942","2943","2944","2945","2946","2947","2948","2949","2950","2951","2952","2953","2954","2955","2956","2957","2958","2963","2964","2965","2966","2967","2968","2969","2970","2971","2972","2973","2974","2975","2976","2977","2978","2979","2980","2981","2982","2983","3004","3005","3006","3007","3008","3009","3028","3029","3031","3032","3033","3034","3035","3036","3037","3038","3039","3040","3041","3042","3043","3044","3045","3046","3047","3048","3049","3050","3051","3052","3053","3054","3055","3056","3057","3058","3059","3060","3061","3062","3063","3064","3067","3068","3069","3085","3086","3087","3088","3089","3090","3091","3092","3093","3094","3095","3096","3097","3098","3099","3100","3101","3102","3103","3104","3105","3106","3107","3108","3109","3110","3111","3112","3113","3114","3115","3116","3117","3118","3119","3120","3121","3122","3123","3124","3125","3126","3127","3128","3129","3130","3131","3132","3133","3134","3135","3136","3137","3138","3139","3140","3141","3142","3143","3144","3145","3146","3147","3148","3149","3150","3151","3152","3153","3154","3155","3156","3157","3158","3159","3160","3161","3162","3163","3164","3165","3166","3167","3168","3169","3170","3171","3172","3173","3174","3175","3176","3177","3178","3179","3180","3181","3182","3183","3184","3185","3197","3198","3199","3200","3201","3202","3203","3204","3205","3206","3207","3208","3209","3210","3211","3212","3213","3214","3215","3216","3217","3218","3219","3220","3221","3222","3223","3224","3225","3226","3227","3228","3229","3230","3231","3232","3233","3234","3235","3236","3237","3238","3239","3240","3241","3242","3243","3244","3245","3246","3247","3248","3249","3250","3251","3252","3253","3254","3255","3256","3257","3258","3259","3260","3261","3262","3263","3264","3265","3266","3267","3268","3269","3270","3271","3272","3273","3274","3275","3276","3277","3278","3279","3280","3281","3282","3283","3284","3285","3286","3287","3288","3289","3290","3291","3292","3293","3294","3295","3296","3297","3298","3299","3300","3301","3302","3303","3304","3305","3306","3307","3308","3309","3310","3311","3312","3313","3314","3315","3316","3317","3318","3319","3320","3321","3322","3323","3324","3325","3326","3327","3328","3329","3330","3331","3332","3333","3334","3335","3336","3337","3338","3339","3340","3341","3342","3343","3344","3345","3346","3347","3348","3349","3350","3351","3352","3353","3354","3355","3356","3357","3358","3359","3360","3361","3362","3363","3364","3365","3366","3367","3368","3369","3370","3371","3372","3373","3374","3375","3376","3377","3378","3379","3380","3381","3382","3383","3384","3385","3386","3387","3388","3389","3390","3391","3392","3393","3394","3395","3396","3397","3398","3399","3400","3401","3409","3410","3411","3412","3413","3414","3415","3416","3417","3418","3419","3420","3421","3422","3423","3424","3425","3426","3427","3428","3429","3430","3431","3432","3433","3434","3435","3436","3437","3438","3439","3440","3441","3442","3443","3444","3445","3446","3447","3448","3449","3450","3451","3452","3453","3454","3455","3456","3457","3458","3459","3460","3461","3462","3463","3464","3465","3466","3467","3468","3469","3470","3471","3472","3473","3474","3477","3478","3479","3480","3481","3482","3483","3484","3485","3486","3487","3488","3489","3490","3491","3492","3493","3494","3495","3496","3497","3498","3499","3500","3501","3502","3503","3504","3505","3506","3507","3508","3509","3510","3511","3512","3513","3514","3515","3516","3517","3518","3519","3520","3521","3522","3523","3524","3525","3526","3527","3528","3529","3530","3531","3532","3533","3534","3535","3536","3537","3538","3539","3540","3541","3542","3544","3545","3546","3547","3551","3552","3553","3554","3555","3556","3557","3558","3559","3560","3561","3562","3563","3564","3565","3566","3567","3568","3569","3570","3571","3572","3573","3574","3575","3576","3577","3578","3579","3580","3581","3582","3583","3584","3585","3586","3587","3588","3589","3590","3591","3592","3593","3594","3595","3596","3597","3598","3599","3600","3601","3602","3603","3604","3605","3606","3607","3608","3609","3610","3611","3612","3613","3614","3615","3616","3617","3618","3619","3620","3621","3622","3623","3624","3625","3626","3627","3628","3629","3630","3631","3632","3633","3634","3635","3636","3637","3638","3639","3640","3641","3642","3643","3644","3645","3646","3647","3648","3649","3650","3651","3652","3653","3654","3683","3684","3685","3686","3687","3688","3689","3690","3691","3692","3693","3694","3695","3696","3697","3698","3699","3700","3701","3702","3703","3704","3705","3706","3707","3708","3709","3710","3711","3712","3713","3841","3842","3843","3844","3845","3846","3847","3848","3849","3850","3851","3852","3853","3854","3855","3856","3857","3858","3859","3860","3861","3862","3863","3864","3865","3866","3867","3868","3869","3870","3871","3872","3873","3874","3875","3876","3877","3878","3879","3880","3881","3882","3883","3884","3885","3886","3887","3888","3889","3890","3891","3892","3893","3894","3895","3896","3897","3898","3899","3900","3901","3902","3903","3904","3905","3906","3907","3908","3909","3910","3911","3912","3913","3914","3915","3916","3929","3930","3931","3932","3933","3934","3935","3936","3937","3938","3939","3940","3941","3942","3943","3944","3945","3946","3947","3948","3949","3950","3951","3952","3953","3954","3955","3956","3957","3959","3960","3962","3963","3964","3965","3966","3967","3968","3969","3970","3971","3972","3973","3974","3975","3976","3977","3978","3979","3980","3981","3982","3983","3984","3985","3986","3987","3988","3989","3990","3991","3992","3993","3994","3995","3996","3997","3998","3999","4000","4001","4002","4003","4004","4005","4006","4007","4008","4009","4010","4011","4012","4013","4014","4016","4017","4018","4019","4021","4022","4023","4024","4025","4026","4027","4028","4029","4030","4031","4032","4033","4034","4035","4036","4037","4038","4039","4040","4041","4042","4043","4044","4045","4046","4047","4048","4049","4050","4053","4054","4055","4056","4057","4058","4059","4060","4061","4062","4063","4064","4065","4066","4067","4068","4069","4070","4071","4072","4073","4074","4075","4076","4077","4078","4079","4080","4081","4082","4083","4084","4085","4086","4087","4088","4089","4090","4091","4092","4093","4094","4095","4096","4097","4098","4099","4100","4101","4102","4103","4104","4105","4106","4107","4108","4109","4110","4111","4112","4113","4118","4119","4120","4121","4122","4123","4135","4136","4137","4138","4139","4140","4141","4142","4143","4144","4145","4146","4147","4148","4149","4150","4151","4152","4153","4154","4155","4156","4157","4158","4159","4160","4161","4162","4163","4164","4165","4166","4167","4168","4169","4170","4171","4172","4173","4174","4175","4176","4177","4178","4179","4180","4181","4182","4183","4184","4185","4186","4187","4188","4189","4190","4191","4192","4193","4194","4195","4196","4197","4198","4199","4200","4201","4202","4203","4204","4205","4206","4207","4208","4209","4210","4211","4212","4213","4214","4215","4216","4217","4218","4219","4220","4221","4222","4223","4224","4225","4226","4227","4228","4229","4230","4231","4232","4233","4234","4235","4236","4237","4238","4239","4240","4241","4242","4243","4244","4245","4246","4247","4248","4249","4250","4251","4252","4253","4254","4255","4256","4257","4258","4259","4260","4261","4262","4263","4264","4265","4266","4267","4268","4269","4270","4271","4272","4273","4274","4275","4276","4277","4278","4279","4280","4281","4282","4283","4284","4285","4286","4287","4288","4289","4290","4291","4292","4293","4294","4295","4296","4297","4298","4299","4300","4301","4302","4303","4304","4305","4306","4307","4308","4309","4310","4311","4312","4313","4314","4315","4316","4317","4318","4319","4320","4321","4322","4323","4324","4325","4326","4327","4328","4329","4330","4331","4332","4333","4334","4335","4336","4337","4338","4339","4340","4341","4342","4343","4344","4345","4346","4347","4348","4349","4350","4351","4352","4353","4354","4355","4356","4357","4358","4359","4360","4361","4362","4363","4364","4365","4366","4367","4368","4369","4370","4371","4372","4373","4374","4375","4380","4381","4382","4383","4384","4385","4386","4387","4388","4389","4390","4391","4392","4393","4394","4395","4396","4397","4398","4399","4400","4401","4402","4403","4404","4406","4407","4469","4470","4471","4472","4473","4474","4475","4476","4477","4478","4479","4480","4481","4482","4483","4484","4485","4486","4487","4488","4489","4490","4491","4492","4493","4494","4495","4496","4497","4498","4499","4500","4501","4502","4503","4504","4505","4506","4507","4508","4509","4510","4511","4512","4513","4514","4515","4516","4517","4518","4519","4520","4521","4522","4523","4524","4525","4526","4527","4528","4529","4530","4531","4532","4533","4534","4535","4536","4537","4538","4539","4540","4541","4545","4546","4547","4548","4549","4550","4551","4552","4553","4554","4555","4556","4557","4558","4559","4560","4561","4562","4563","4564","4565","4566","4567","4568","4569","4570","4571","4572","4573","4574","4575","4576","4577","4578","4579","4580","4581","4582","4583","4584","4585","4586","4587","4588","4589","4590","4591","4592","4593","4594","4595","4596","4597","4598","4599","4600","4601","4602","4603","4604","4605","4606","4607","4608","4609","4610","4611","4612","4613","4614","4615","4616","4617","4618","4619","4620","4621","4622","4623","4624","4625","4626","4627","4628","4629","4630","4631","4632","4633","4634","4635","4636","4637","4638","4639","4640","4641","4642","4643","4644","4645","4646","4647","4648","4652","4653","4654","4655","4656","4657","4658","4659","4660","4661","4662","4663","4664","4665","4666","4667","4668","4669","4670","4671","4672","4673","4674","4675","4676","4677","4678","4679","4680","4681","4682","4683","4684","4685","4686","4687","4688","4689","4690","4691","4692","4693","4694","4695","4696","4697","4698","4699","4700","4701","4702","4703","4704","4705","4706","4707","4708","4709","4710","4711","4712","4713","4714","4715","4716","4717","4718","4719","4720","4721","4722","4723","4724","4725","4726","4727","4728","4729","4730","4731","4732","4733","4734","4735","4736","4737","4738","4739","4740","4741","4742","4743","4744","4745","4746","4747","4748","4749","4750","4751","4752","4753","4754","4755","4756","4757","4758","4759","4760","4761","4762","4763","4764","4765","4766","4767","4768","4769","4770","4771","4772","4773","4774","4775","4776","4777","4778","4779","4780","4781","4782","4783","4784","4785","4786","4787","4793","4794","4795","4796","4797","4798","4799","4800","4801","4802","4803","4804","4805","4806","4807","4808","4809","4810","4811","4812","4813","4814","4815","4816","4817","4818","4819","4820","4821","4822","4823","4824","4825","4826","4827","4828","4829","4830","4831","4832","4833","4834","4835","4836","4837","4838","4839","4840","4841","4842","4843","4844","4845","4846","4847","4848","4849","4850","4851","4852","4853","4854","4855","4856","4857","4858","4859","4860","4861","4862","4863","4864","4865","4866","4867","4868","4869","4870","4871","4872","4873","4874","4875","4876","4877","4878","4879","4880","4881","4882","4883","4884","4885","4886","4887","4888","4889","4890","4891","4892","4893","4894","4903","4904","4905","4906","4907","4908","4909","4910","4911","4912","4913","4914","4915","4916","4917","4918","4919","4920","4921","4922","4923","4924","4925","4926","4927","4928","4929","4930","4931","4932","4933","4934","4935","4936","4937","4938","4939","4940","4941","4942","4943","4944","4945","4946","4947","4948","4949","4950","4951","4952","4953","4954","4955","4956","4957","4958","4959","4960","4961","4962","4963","4964","4965","4966","4967","4968","4969","4970","4971","4972","4973","4974","4975","4976","4977","4978","4979","4980","4981","4982","4983","4984","4985","4986","4987","4988","4989","4990","4991","4992","4993","4994","4995","4996","4997","4998","4999","5000","5001","5002","5003","5004","5005","5006","5007","5008","5009","5010","5011","5012","5013","5014","5015","5016","5017","5018","5019","5020","5021","5022","5023","5024","5025","5026","5027","5028","5029","5030","5031","5032","5033","5034","5035","5036","5037","5038","5039","5040","5041","5042","5043","5044","5045","5046","5047","5048","5049","5050","5051","5052","5053","5054","5055","5056","5086","5087","5088","5089","5090","5091","5092","5093","5094","5095","5100","5101","5103","5104","5133","5134","5135","5136","5137","5138","5139","5140","5141","5142","5143","5144","5145","5146","5147","5148","5149","5150","5151","5152","5153","5154","5155","5156","5157","5158","5159","5160","5161","5162","5163","5164","5165","5166","5167","5168","5169","5170","5171","5172","5173","5174","5175","5176","5177","5178","5179","5180","5181","5182","5183","5184","5185","5186","5187","5188","5189","5190","5191","5192","5193","5194","5195","5196","5197","5198","5199","5200","5201","5202","5203","5204","5205","5206","5207","5208","5209","5210","5211","5212","5213","5214","5215","5216","5217","5218","5219","5220","5221","5222","5223","5224","5225","5226","5227","5228","5231","5232","5233","5234","5235","5236","5237","5238","5239","5240","5255","5256","5257","5258","5259","5260","5261","5262","5263","5264","5265","5266","5337","5338","5339","5340","5341","5342","5343","5346","5347","5348","5349","5350","5351","5352","5353","5354","5355","5356","5357","5358","5359","5360","5361","5362","5363","5364","5365","5499","5500","5501","5502","5503","5504","5505","5511","5512","5513","5514","5515","5516","5517","5518","5520","5521","5522","5523","5524","5525","5526","5527","5528","5529","5530","5531","5532","5533","5546","5547","5548","5549","5550","5551","5552","5553","5554","5555","5556","5557","5558","5559","5560","5561","5562","5563","5564","5565","5566","5567","5568","5569","5570","5571","5572","5573","5574","5575","5576","5577","5578","5579","5580","5581","5582","5583","5584","5585","5586","5587","5588","5589","5590","5591","5592","5593","5594","5595","5596","5597","5598","5599","5600","5601","5602","5603","5604","5605","5606","5607","5608","5609","5610","5611","5612","5613","5614","5616","5617","5618","5619","5620","5629","5630","5631","5632","5633","5634","5635","5636","5637","5638","5639","5640","5641","5642","5643","5644","5645","5646","5647","5648","5649","5650","5651","5652","5653","5654","5655","5656","5657","5658","5659","5660","5661","5662","5663","5664","5665","5666","5667","5668","5669","5670","5671","5672","5673","5674","5675","5676","5677","5678","5679","5680","5681","5682","5683","5713","5714","5715","5716","5717","5718","5719","5720","5721","6093","6094","6095","6096","6230","6231","6232","6233","6234","6235","6236","6237","6238","6239","6240","6241","6242","6243","6244","6245","6246","6247","6248","6249","6250","6251","6252","6253","6254","6255","6256","6257","6258","6259","6260","6261","6262","6263","6264","6265","6266","6267","6268","6269","6270","6271","6272","6273","6274","6275","6276","6277","6278","6279","6280","6281","6282","6283","6284","6285","6286","6287","6288","6289","6290","6291","6292","6293","6294","6295","6296","6297","6298","6299","6300","6301","6302","6303","6304","6305","6306","6307","6308","6309","6310","6311","6312","6313","6314","6315","6316","6317","6318","6319","6320","6321","6322","6323","6324","6325","6327","6328","6329","6330","6331","6332","6333","6334","6335","6336","6337","6338","6339","6340","6341","6342","6343","6344","6345","6346","6347","6348","6349","6350","6351","6352","6353","6354","6355","6356","6357","6358","6359","6360","6361","6362","6363","6364","6365","6366","6367","6368","6369","6370","6371","6372","6373","6374","6375","6376","6377","6378","6379","6380","6381","6382","6383","6384","6385","6386","6387","6388","6389","6390","6391","6392","6393","6394","6395","6396","6397","6398","6399","6400","6401","6402","6403","6404","6405","6406","6407","6408","6409","6410","6411","6412","6413","6414","6415","6416","6417","6418","6419","6420","6421","6422","6423","6424","6425","6426","6427","6428","6429","6430","6431","6432","6433","6434","6435","6855","6856","6857","6858","6859","6860","6861","6862","6863","6864","6865","6866","6867","6868","6869","6870","6871","6872","6873","6874","6875","6876","6877","6878","6879","6880","6881","6882","6883","6884","6885","6886","6887","6888","6889","6890","6891","6892","6893","6894","6895","6896","6897","6898","6899","6900","6901","6902","6903","6904","6905","6906","6907","6908","6911","6912","6913","6914","6915","6916","6917","6918","6919","6920","6921","6922","6923","6924","6925","6926","6927","6928","6929","6930","6931","6932","6933","6934","6935","6936","6937","6938","6939","6940","6941","6942","6943","6944","6945","6946","6947","6948","6949","6950","6951","6952","6953","6954","6955","6956","6957","6958","6959","6960","6961","6962","6963","6964","6965","6966","6967","6968","6969","6970","6971","6972","6973","6974","6975","6976","6977","6978","6979","6980","8167","8168","8177","8178","8179","8181","8182","8183","8184","8185","8186","8187","8188","8189","8190","8191","8192","8193","8194","8195","8196","8197","8198","8199","8200","8201","8202","8203","8204","8205","8206","8207","8208","8209","8210","8211","8212","8213","8214","8215","8216","8217","8218","8219","8220","8221","8222","8223","8224","8225","8226","8227","8228","8229","8230","8231","8232","8233","8234","8235","8236","8237","8238","8239","8240","8243","8244","8245","8246","8247","8248","8249","8250","8251","8253","8254","8256","8257","8258","8259","8260","8261","8262","8263","8264","8265","8266","8267","8268","8269","8270","8271","8272","8273","8274","8275","8276","8277","8278","8279","8280","8281","8282","8283","8284","8285","8286","8287","8288","8289","8290","8291","8292","8293","8294","8295","8296","8297","8298","8299","8300","8301","8302","8303","8304","8305","8306","8307","8371","8372","8373","8374","8375","8376","8499","8500","8501","8502","8503","8504","8505","8506","8507","8508","8509","8510","8511","8512","8513","8514","8515","8516","8517","8518","8519","8520","8521","8522","8523","8524","8525","8526","8527","8528","8529","8530","8531","8532","8533","8534","8535","8536","8537","8538","8539","8540","8541","8542","8543","8544","8545","8546","8547","8548","8549","8550","8551","8552","8553","8554","8555","8556","8557","8558","8559","8560","8561","8562","8563","8564","8565","8566","8567","8568","8569","8570","8571","8572","8573","8574","8575","8576","8577","8578","8579","8580","8581","8582","8583","8584","8585","8586","8587","8588","8589","8590","8591","8592","8593","8594","8595","8596","8597","8598","8599","8600","8601","8602","8603","8604","8605","8606","8607","8608","8609","8610","8611","8612","8613","8614","8615","8616","8617","8618","8619","8652","8653","8654","8655","8664","8665","8702","8703","8722","8723","8745","8746","8769","8770","8800","8801","8802","8805","8806","8807","8824","8825","8830","8831","8951","8952","8972","8973","9012","9013","9014","9015","9016","9017","9018","9019","9020","9021","9022","9023","9024","9025","9026","9027","9028","9029","9030","9031","9032","9033","9034","9035","9036","9037","9073","9074","9092","9093","9138","9139","9140","9141","9142","9143","9144","9145","9146","9147","9148","9149","9150","9151","9152","9153","9154","9155","9156","9157","9158","9159","9160","9161","9162","9163","9164","9165","9166","9167","9168","9169","9170","9171","9172","9173","9174","9175","9176","9177","9178","9179","9180","9181","9182","9183","9184","9185","9186","9187","9188","9189","9190","9191","9192","9193","9194","9195","9196","9197","9198","9199","9200","9201","9202","9203","9204","9205","9206","9207","9208","9209","9210","9211","9212","9213","9214","9215","9216","9217","9218","9219","9220","9221","9222","9223","9224","9225","9226","9227","9228","9229","9230","9231","9232","9233","9234","9235","9236","9237","9238","9239","9240","9241"],"binary_path":"/opt/cray/pe/lib64/libmpi_cray.so.12","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-cc-ebpf.json b/etc/datacrumbs/data/probes-cc-ebpf.json deleted file mode 100644 index c0d8ea5c..00000000 --- a/etc/datacrumbs/data/probes-cc-ebpf.json +++ /dev/null @@ -1 +0,0 @@ -[{"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/cc/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/home/cc/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2}] diff --git a/etc/datacrumbs/data/probes-dhari-quokka.json b/etc/datacrumbs/data/probes-dhari-quokka.json deleted file mode 100644 index 17f7eff9..00000000 --- a/etc/datacrumbs/data/probes-dhari-quokka.json +++ /dev/null @@ -1 +0,0 @@ -[{"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"]}] diff --git a/etc/datacrumbs/data/probes-exclusion-cc-ebpf.json b/etc/datacrumbs/data/probes-exclusion-cc-ebpf.json deleted file mode 100644 index 58c757fb..00000000 --- a/etc/datacrumbs/data/probes-exclusion-cc-ebpf.json +++ /dev/null @@ -1 +0,0 @@ -[{"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","ni_posix_timers","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":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"]}] diff --git a/etc/datacrumbs/data/probes-exclusion-dhari-quokka.json b/etc/datacrumbs/data/probes-exclusion-dhari-quokka.json deleted file mode 100644 index acb5f9ab..00000000 --- a/etc/datacrumbs/data/probes-exclusion-dhari-quokka.json +++ /dev/null @@ -1 +0,0 @@ -[{"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"]}] diff --git a/etc/datacrumbs/data/probes-exclusion-haridev-lead-us.json b/etc/datacrumbs/data/probes-exclusion-haridev-lead-us.json deleted file mode 100644 index 932983f3..00000000 --- a/etc/datacrumbs/data/probes-exclusion-haridev-lead-us.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"libc","functions":["getsgnam"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-exclusion-haridev-lead.json b/etc/datacrumbs/data/probes-exclusion-haridev-lead.json deleted file mode 100644 index f80a1fce..00000000 --- a/etc/datacrumbs/data/probes-exclusion-haridev-lead.json +++ /dev/null @@ -1 +0,0 @@ -[{"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-exclusion-haridev-tuolumne-mpiio.json b/etc/datacrumbs/data/probes-exclusion-haridev-tuolumne-mpiio.json deleted file mode 100644 index 18718b1a..00000000 --- a/etc/datacrumbs/data/probes-exclusion-haridev-tuolumne-mpiio.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"libc","functions":[""],"binary_path":"/opt/cray/pe/mpich/8.1.25/ofi/gnu/9.1/lib/libmpi.so","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-exclusion-haridev-tuolumne.json b/etc/datacrumbs/data/probes-exclusion-haridev-tuolumne.json deleted file mode 100644 index dbb87985..00000000 --- a/etc/datacrumbs/data/probes-exclusion-haridev-tuolumne.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"libc","functions":[""],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-exclusion-root-docker.json b/etc/datacrumbs/data/probes-exclusion-root-docker.json deleted file mode 100644 index 484fb5c4..00000000 --- a/etc/datacrumbs/data/probes-exclusion-root-docker.json +++ /dev/null @@ -1 +0,0 @@ -[{"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":["bdflush","fork","fstat","llseek","sys","ioctl","futimesat","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":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_attr_intent_init_cache","xfs_attr_check_namespace","xfs_attr3_rmt_buf_space","xfs_allocbt_init_cur_cache","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"]}] diff --git a/etc/datacrumbs/data/probes-haridev-corona.json b/etc/datacrumbs/data/probes-haridev-corona.json deleted file mode 100644 index 12d9b4a3..00000000 --- a/etc/datacrumbs/data/probes-haridev-corona.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":0,"name":"sys","functions":["accept","accept4","access","acct","add_key","adjtimex","alarm","bdflush","bind","bpf","brk","capget","capset","chdir","chmod","chown","chroot","clock_adjtime","clock_getres","clock_gettime","clock_nanosleep","clock_settime","clone","close","close_range","connect","copy_file_range","creat","delete_module","dup","dup2","dup3","epoll_create","epoll_create1","epoll_ctl","epoll_pwait","epoll_wait","eventfd","eventfd2","execve","execveat","exit","exit_group","faccessat","faccessat2","fadvise64","fadvise64_64","fallocate","fanotify_init","fanotify_mark","fchdir","fchmod","fchmodat","fchown","fchownat","fcntl","fdatasync","fgetxattr","finit_module","flistxattr","flock","fork","fremovexattr","fsconfig","fsetxattr","fsmount","fsopen","fspick","fstat","fstatfs","fstatfs64","fsync","ftruncate","futex","futimesat","get_mempolicy","get_robust_list","getcpu","getcwd","getdents","getdents64","getegid","geteuid","getgid","getgroups","gethostname","getitimer","getpeername","getpgid","getpgrp","getpid","getppid","getpriority","getrandom","getresgid","getresuid","getrlimit","getrusage","getsid","getsockname","getsockopt","gettid","gettimeofday","getuid","getxattr","init_module","inotify_add_watch","inotify_init","inotify_init1","inotify_rm_watch","io_cancel","io_destroy","io_getevents","io_pgetevents","io_setup","io_submit","io_uring_enter","io_uring_register","io_uring_setup","ioctl","ioperm","ioprio_get","ioprio_set","ipc","kcmp","kexec_file_load","kexec_load","keyctl","kill","lchown","lgetxattr","link","linkat","listen","listxattr","llistxattr","llseek","lookup_dcookie","lremovexattr","lseek","lsetxattr","lstat","madvise","mbind","membarrier","memfd_create","migrate_pages","mincore","mkdir","mkdirat","mknod","mknodat","mlock","mlock2","mlockall","mmap_pgoff","mount","move_mount","move_pages","mprotect","mq_getsetattr","mq_notify","mq_open","mq_timedreceive","mq_timedsend","mq_unlink","mremap","msgctl","msgget","msgrcv","msgsnd","msync","munlock","munlockall","munmap","name_to_handle_at","nanosleep","newfstat","newfstatat","newlstat","newstat","newuname","ni_syscall","nice","old_mmap","old_readdir","old_select","oldumount","olduname","open","open_by_handle_at","open_tree","openat","openat2","pause","pciconfig_iobase","pciconfig_read","pciconfig_write","perf_event_open","personality","pidfd_send_signal","pipe","pipe2","pivot_root","pkey_alloc","pkey_free","pkey_mprotect","poll","ppoll","prctl","pread64","preadv","preadv2","prlimit64","process_vm_readv","process_vm_writev","pselect6","ptrace","pwrite64","pwritev","pwritev2","quotactl","read","readahead","readlink","readlinkat","readv","reboot","recv","recvfrom","recvmmsg","recvmsg","remap_file_pages","removexattr","rename","renameat","renameat2","request_key","restart_syscall","rmdir","rseq","rt_sigaction","rt_sigpending","rt_sigprocmask","rt_sigqueueinfo","rt_sigsuspend","rt_sigtimedwait","rt_tgsigqueueinfo","sched_get_priority_max","sched_get_priority_min","sched_getaffinity","sched_getattr","sched_getparam","sched_getscheduler","sched_rr_get_interval","sched_setaffinity","sched_setattr","sched_setparam","sched_setscheduler","sched_yield","seccomp","select","semctl","semget","semop","semtimedop","send","sendfile","sendfile64","sendmmsg","sendmsg","sendto","set_mempolicy","set_robust_list","set_tid_address","setdomainname","setfsgid","setfsuid","setgid","setgroups","sethostname","setitimer","setns","setpgid","setpriority","setregid","setresgid","setresuid","setreuid","setrlimit","setsid","setsockopt","settimeofday","setuid","setxattr","sgetmask","shmat","shmctl","shmdt","shmget","shutdown","sigaltstack","signal","signalfd","signalfd4","sigpending","sigprocmask","socket","socketcall","socketpair","splice","spu_create","spu_run","ssetmask","stat","statfs","statfs64","statx","stime","swapoff","swapon","symlink","symlinkat","sync","sync_file_range","sync_file_range2","syncfs","sysctl","sysfs","sysinfo","syslog","tee","tgkill","time","timer_create","timer_delete","timer_getoverrun","timer_gettime","timer_settime","timerfd_create","timerfd_gettime","timerfd_settime","times","tkill","truncate","umask","umount","uname","unlink","unlinkat","unshare","uselib","userfaultfd","ustat","utime","utimensat","utimes","vfork","vhangup","vmsplice","wait4","waitid","waitpid","write","writev"]}] diff --git a/etc/datacrumbs/data/probes-haridev-lead-us.json b/etc/datacrumbs/data/probes-haridev-lead-us.json deleted file mode 100644 index 740fccd5..00000000 --- a/etc/datacrumbs/data/probes-haridev-lead-us.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"libc","functions":["a64l","abort","abs","accept","accept4","access","acct","addmntent","addseverity","alarm","allocate:0x105510","allocate:0x122220","alphasort","alphasort64","arg","asprintf","atof","atoi","atol","atoll","backtrace","basename","bcopy","bin2hex","bind","bindresvport","bindtextdomain","brk","bsearch","btowc","bzero","c16rtomb","c32rtomb","callback","calloc","capget","capset","catclose","catgets","catopen","cfgetispeed","cfgetospeed","cfmakeraw","cfsetispeed","cfsetospeed","cfsetspeed","chdir","chflags","chmod","chown","chroot","cleanup:0x8ba90","cleanup:0x943c0","clearenv","clearerr","clock","clone","clone3","close","closedir","closefrom","closelog","comma","confstr","connect","copysign","copysignf","copysignf128","copysignf32","copysignf32x","copysignf64","copysignf64x","copysignl","creat","creat64","ctermid","cuserid","daemon","dcgettext","dcngettext","deallocate","dgettext","dirfd","dirname","div","dngettext","dprintf","drand48","dup","dup2","dup3","duplocale","dysize","eaccess","ecvt","endaliasent","endfsent","endgrent","endhostent","endmntent","endnetent","endnetgrent","endprotoent","endpwent","endrpcent","endservent","endsgent","endspent","endttyent","endusershell","endutent","endutxent","erand48","err","error","errx","euidaccess","eventfd","exchange","execl","execle","execlp","execv","execve","execveat","execvp","execvpe","exit","faccessat","fallocate","fallocate64","fchdir","fchflags","fchmod","fchmodat","fchown","fchownat","fcloseall","fcntl","fcntl64","fcvt","fdatasync","fdopendir","feof","ferror","fexecve","fflush","ffs","ffsl","ffsll","fgetc","fgetgrent","fgetpwent","fgets","fgetsgent","fgetspent","fgetwc","fgetws","fgetxattr","fileno","fini","finite","finitef","finitel","flistxattr","flock","flockfile","fmtmsg","fopen64","fork","fpathconf","fprintf","fputc","fputs","fputwc","fputws","fread","free","freeaddrinfo","freecache","freeifaddrs","freelocale","freeres","fremovexattr","freopen","freopen64","frexp","frexpf","frexpf128","frexpf32","frexpf32x","frexpf64","frexpf64x","frexpl","fscanf","fseek","fseeko","fseeko64","fsetxattr","fstat","fstat64","fstatat","fstatat64","fstatfs","fstatfs64","fstatvfs","fstatvfs64","fsync","ftell","ftello","ftello64","ftok","ftruncate","ftruncate64","ftrylockfile","ftw","ftw64","funlockfile","fwide","fwprintf","fwrite","fwscanf","gcvt","getaddrinfo","getaliasbyname","getaliasent","getauxval","getc","getchar","getcontext","getcpu","getcwd","getdate","getdelim","getdents64","getdirentries","getdirentries64","getdomainname","getdtablesize","getegid","getentropy","getenv","geteuid","getfsent","getfsfile","getfsspec","getgid","getgrent","getgrgid","getgrnam","getgrouplist","getgroups","gethostbyaddr","gethostbyname","gethostbyname2","gethostent","gethostid","gethostname","gethosts","getifaddrs","getipv4sourcefilter","getline","getloadavg","getlogin","getmntent","getnameinfo","getnetbyaddr","getnetbyname","getnetent","getnetgrent","getopt","getpagesize","getpass","getpeername","getpgid","getpgrp","getpid","getppid","getpriority","getprotobyname","getprotobynumber","getprotoent","getpt","getpw","getpwent","getpwnam","getpwuid","getrandom","getresgid","getresuid","getrlimit","getrlimit64","getrpcbyname","getrpcbynumber","getrpcent","getrusage","gets","getservbyname","getservbyport","getservent","getsgent","getsid","getsockname","getsockopt","getsourcefilter","getspent","getspnam","getsubopt","gettext","gettid","getttyent","getttynam","getuid","getusershell","getutent","getutid","getutline","getutmp","getutmpx","getutxent","getutxid","getutxline","getw","getwc","getwchar","getwd","getxattr","globfree","globfree64","gtty","hcreate","hdestroy","herror","hex2bin","hsearch","hstrerror","htonl","htons","iconv","imaxabs","imaxdiv","in6aicmp","init","initgroups","initshells","initstate","innetgr","insert.part.0","insque","ioctl","ioperm","iopl","iruserfopen","iruserok","isalnum","isalpha","isascii","isatty","isblank","iscntrl","isctype","isdigit","isfdtype","isgraph","isinf","isinff","isinfl","islower","isnan","isnanf","isnanl","isprint","ispunct","isspace","isupper","iswalnum","iswalpha","iswblank","iswcntrl","iswctype","iswdigit","iswgraph","iswlower","iswprint","iswpunct","iswspace","iswupper","iswxdigit","isxdigit","jrand48","kill","killpg","klogctl","l64a","labs","lchmod","lchown","lckpwdf","lcong48","ldexp","ldexpf","ldexpf128","ldexpf32","ldexpf32x","ldexpf64","ldexpf64x","ldexpl","ldiv","lfind","lgetxattr","link","linkat","listen","listxattr","llabs","lldiv","llistxattr","lockf","lockf64","longjmp","lrand48","lremovexattr","lsearch","lseek","lseek64","lsetxattr","lstat","lstat64","madvise","makecontext","mallinfo","mallinfo2","malloc","mallopt","mblen","mbrlen","mbrtoc16","mbrtoc32","mbrtowc","mbsinit","mbsnrtowcs","mbsrtowcs","mbstowcs","mbtowc","mcheck","mcount","memalign","memccpy","memfrob","memmem","mincore","mkdir","mkdirat","mkdtemp","mkfifo","mkfifoat","mknod","mknodat","mkostemp","mkostemp64","mkostemps","mkostemps64","mkstemp","mkstemp64","mkstemps","mkstemps64","mktemp","mlock","mlock2","mlockall","mmap","mmap64","modf","modff","modff128","modff32","modff32x","modff64","modff64x","modfl","moncontrol","monstartup","mount","mprobe","mprotect","mrand48","mremap","msgget","msgrcv","msgsnd","msync","mtrace","munlock","munlockall","munmap","muntrace","nanosleep","newlocale","ngettext","nice","nrand48","ntohl","ntohs","open","open64","openat","openat64","opendir","openlog","pathconf","pause","pcmp","perror","personality","pipe","pipe2","prctl","pread","pread64","preadv","preadv2","preadv64","preadv64v2","prefixcmp","printf","prlimit","prlimit64","profil","pselect","psiginfo","ptrace","ptsname","putc","putchar","putenv","putgrent","putpwent","puts","putsgent","putspent","pututline","pututxline","putw","putwc","putwchar","pvalloc","pwrite","pwrite64","pwritev","pwritev2","pwritev64","pwritev64v2","qecvt","qfcvt","qgcvt","qsort","quotactl","raise","rand","random","rcmd","read","readahead","readdir","readdir64","readlink","readlinkat","readtcp:0x1497e0","readtcp:0x14cc30","readunix:0x146e50","readunix:0x147810","readv","realloc","reallocarray","reboot","recv","recvfrom","recvmmsg","recvmsg","regcomp","regerror","regfree","remove","removexattr","remque","rename","renameat","renameat2","reopen","revoke","rewind","rewinddir","rexec","rmdir","rpmatch","rresvport","ruserok","ruserpass","sbrk","scalbn","scalbnf","scalbnf128","scalbnf32","scalbnf32x","scalbnf64","scalbnf64x","scalbnl","scandir","scandir64","scandirat","scandirat64","scanf","scopecmp","seed48","seekdir","select","semget","semop","send","sendfile","sendfile64","sendmmsg","sendmsg","sendto","setaliasent","setbuf","setbuffer","setcontext","setdomainname","setegid","setenv","seteuid","setfsent","setfsgid","setfsuid","setgid","setgrent","setgroups","sethostent","sethostid","sethostname","setipv4sourcefilter","setjmp","setlinebuf","setlocale","setlogin","setlogmask","setmntent","setnetent","setnetgrent","setns","setpgid","setpgrp","setpriority","setprotoent","setpwent","setregid","setresgid","setresuid","setreuid","setrlimit","setrlimit64","setrpcent","setservent","setsgent","setsid","setsockopt","setsourcefilter","setspent","setstate","setttyent","setuid","setusershell","setutent","setutxent","setvbuf","setxattr","sgetsgent","sgetspent","shmat","shmdt","shmget","shutdown","sigaction","sigaddset","sigaltstack","sigandset","sigblock","sigdelset","sigemptyset","sigfillset","siggetmask","sighold","sigignore","siginterrupt","sigisemptyset","sigismember","siglongjmp","sigorset","sigpause","sigpending","sigprocmask","sigqueue","sigrelse","sigreturn","sigset","sigsetmask","sigstack","sigsuspend","sigwait","sigwaitinfo","skip","sleep","snprintf","sockatmark","socket","socketpair","space","splice","sprintf","sprofil","srand","srand48","srandom","sscanf","stat","stat64","statfs","statfs64","statvfs","statvfs64","statx","strcasestr","strcoll","strdup","strerror","strfmon","strfromd","strfromf","strfromf128","strfromf32","strfromf32x","strfromf64","strfromf64x","strfroml","strfry","strndup","strsep","strtod","strtof","strtof128","strtof32","strtof32x","strtof64","strtof64x","strtoimax","strtok","strtol","strtold","strtoll","strtoq","strtoul","strtoull","strtoumax","strtouq","strverscmp","strxfrm","stty","swab","swapcontext","swapoff","swapon","swprintf","swscanf","symlink","symlinkat","sync","syncfs","syscall","sysconf","sysinfo","syslog","sysmalloc","system","systrim.constprop.0","tcdrain","tcflow","tcflush","tcgetattr","tcgetpgrp","tcgetsid","tcsendbreak","tcsetattr","tcsetpgrp","tdelete","tdestroy","tee","telldir","tempnam","textdomain","tfind","tgkill","tmpfile64","tmpnam","toascii","token.part.0","tolower","toupper","towctrans","towlower","towupper","transcmp","trecurse","truncate","truncate64","try","tsearch","ttyname","ttyslot","twalk","tzset","ualarm","ulckpwdf","ulimit","umask","umount","umount2","uname","ungetc","ungetwc","universal","unlink","unlinkat","unlock","unlockpt","unsetenv","unshare","updwtmp","updwtmpx","uselocale","usleep","utmpname","utmpxname","valloc","vasprintf","vdprintf","verr","verrx","versionsort","versionsort64","vfork","vfprintf","vfscanf","vfwprintf","vfwscanf","vhangup","vlimit","vmsplice","vprintf","vscanf","vsnprintf","vsprintf","vsscanf","vswprintf","vswscanf","vsyslog","vwarn","vwarnx","vwprintf","vwscanf","wait","wait3","wait4","waitid","waitpid","walker","warn","warnx","wcpcpy","wcpncpy","wcrtomb","wcscasecmp","wcscat","wcschrnul","wcscoll","wcscspn","wcsdup","wcsncasecmp","wcsncat","wcsncpy","wcsnrtombs","wcspbrk","wcsrtombs","wcsspn","wcsstr","wcstod","wcstof","wcstof128","wcstof32","wcstof32x","wcstof64","wcstof64x","wcstoimax","wcstok","wcstol","wcstold","wcstoll","wcstombs","wcstoq","wcstoul","wcstoull","wcstoumax","wcstouq","wcswcs","wcswidth","wcsxfrm","wctob","wctomb","wctrans","wctype","wcwidth","wmemcpy","wmemmove","wmempcpy","wordexp","wordfree","wprintf","write","writetcp:0x149760","writetcp:0x14cbc0","writeunix:0x146dd0","writeunix:0x1476a0","writev","wscanf"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-haridev-lead.json b/etc/datacrumbs/data/probes-haridev-lead.json deleted file mode 100644 index 4f67dd3c..00000000 --- a/etc/datacrumbs/data/probes-haridev-lead.json +++ /dev/null @@ -1 +0,0 @@ -[{"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-haridev-tuolumne-mpiio.json b/etc/datacrumbs/data/probes-haridev-tuolumne-mpiio.json deleted file mode 100644 index 065b195e..00000000 --- a/etc/datacrumbs/data/probes-haridev-tuolumne-mpiio.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"mpi-api","functions":["PMPIX_Comm_agree","PMPIX_Comm_failure_ack","PMPIX_Comm_failure_get_acked","PMPIX_Comm_get_failed","PMPIX_Comm_revoke","PMPIX_Comm_shrink","PMPIX_Create_queue","PMPIX_Delete_error_class","PMPIX_Delete_error_code","PMPIX_Delete_error_string","PMPIX_Enqueue_recv","PMPIX_Enqueue_recv.cold","PMPIX_Enqueue_send","PMPIX_Enqueue_send.cold","PMPIX_Enqueue_start","PMPIX_Enqueue_wait","PMPIX_Free_queue","PMPIX_GPU_query_support","PMPIX_Grequest_class_allocate","PMPIX_Grequest_class_create","PMPIX_Grequest_start","PMPIX_Info_set_hex","PMPIX_KT_Get_dreq","PMPIX_KT_Get_dreq.cold","PMPIX_Query_cuda_support","PMPIX_Query_hip_support","PMPIX_Query_ze_support","PMPIX_Type_iov","PMPIX_Type_iov.cold","PMPIX_Type_iov_len","PMPIX_Type_iov_len.cold","PMPIX_Win_complete_stream","PMPIX_Win_post_stream","PMPIX_Win_progress_stream","PMPIX_Win_wait_stream","PMPI_Abort","PMPI_Accumulate","PMPI_Accumulate.cold","PMPI_Accumulate_c","PMPI_Accumulate_c.cold","PMPI_Add_error_class","PMPI_Add_error_code","PMPI_Add_error_string","PMPI_Address","PMPI_Aint_add","PMPI_Aint_diff","PMPI_Allgather","PMPI_Allgather.cold","PMPI_Allgather_c","PMPI_Allgather_c.cold","PMPI_Allgather_init","PMPI_Allgather_init.cold","PMPI_Allgather_init_c","PMPI_Allgather_init_c.cold","PMPI_Allgatherv","PMPI_Allgatherv.cold","PMPI_Allgatherv_c","PMPI_Allgatherv_c.cold","PMPI_Allgatherv_init","PMPI_Allgatherv_init.cold","PMPI_Allgatherv_init_c","PMPI_Allgatherv_init_c.cold","PMPI_Alloc_mem","PMPI_Allreduce","PMPI_Allreduce.cold","PMPI_Allreduce_c","PMPI_Allreduce_c.cold","PMPI_Allreduce_init","PMPI_Allreduce_init.cold","PMPI_Allreduce_init_c","PMPI_Allreduce_init_c.cold","PMPI_Alltoall","PMPI_Alltoall.cold","PMPI_Alltoall_c","PMPI_Alltoall_c.cold","PMPI_Alltoall_init","PMPI_Alltoall_init.cold","PMPI_Alltoall_init_c","PMPI_Alltoall_init_c.cold","PMPI_Alltoallv","PMPI_Alltoallv.cold","PMPI_Alltoallv_c","PMPI_Alltoallv_c.cold","PMPI_Alltoallv_init","PMPI_Alltoallv_init.cold","PMPI_Alltoallv_init_c","PMPI_Alltoallv_init_c.cold","PMPI_Alltoallw","PMPI_Alltoallw.cold","PMPI_Alltoallw_c","PMPI_Alltoallw_c.cold","PMPI_Alltoallw_init","PMPI_Alltoallw_init.cold","PMPI_Alltoallw_init_c","PMPI_Alltoallw_init_c.cold","PMPI_Attr_delete","PMPI_Attr_get","PMPI_Attr_put","PMPI_Barrier","PMPI_Barrier.cold","PMPI_Barrier_init","PMPI_Bcast","PMPI_Bcast.cold","PMPI_Bcast_c","PMPI_Bcast_c.cold","PMPI_Bcast_init","PMPI_Bcast_init.cold","PMPI_Bcast_init_c","PMPI_Bcast_init_c.cold","PMPI_Bsend","PMPI_Bsend.cold","PMPI_Bsend_c","PMPI_Bsend_c.cold","PMPI_Bsend_init","PMPI_Bsend_init.cold","PMPI_Bsend_init_c","PMPI_Bsend_init_c.cold","PMPI_Buffer_attach","PMPI_Buffer_attach_c","PMPI_Buffer_detach","PMPI_Buffer_detach_c","PMPI_Cancel","PMPI_Cart_coords","PMPI_Cart_create","PMPI_Cart_create.cold","PMPI_Cart_get","PMPI_Cart_map","PMPI_Cart_rank","PMPI_Cart_shift","PMPI_Cart_sub","PMPI_Cartdim_get","PMPI_Close_port","PMPI_Comm_accept","PMPI_Comm_call_errhandler","PMPI_Comm_compare","PMPI_Comm_connect","PMPI_Comm_create","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_with_info","PMPI_Comm_free","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_idup","PMPI_Comm_idup_with_info","PMPI_Comm_join","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_size","PMPI_Comm_spawn","PMPI_Comm_spawn.cold","PMPI_Comm_spawn_multiple","PMPI_Comm_spawn_multiple.cold","PMPI_Comm_split","PMPI_Comm_split_type","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_count","PMPI_Errhandler_create","PMPI_Errhandler_free","PMPI_Errhandler_get","PMPI_Errhandler_set","PMPI_Error_class","PMPI_Error_string","PMPI_Exscan","PMPI_Exscan.cold","PMPI_Exscan_c","PMPI_Exscan_c.cold","PMPI_Exscan_init","PMPI_Exscan_init.cold","PMPI_Exscan_init_c","PMPI_Exscan_init_c.cold","PMPI_Fetch_and_op","PMPI_Fetch_and_op.cold","PMPI_File_c2f","PMPI_File_call_errhandler","PMPI_File_close","PMPI_File_create_errhandler","PMPI_File_delete","PMPI_File_f2c","PMPI_File_get_amode","PMPI_File_get_atomicity","PMPI_File_get_byte_offset","PMPI_File_get_errhandler","PMPI_File_get_group","PMPI_File_get_info","PMPI_File_get_position","PMPI_File_get_position_shared","PMPI_File_get_size","PMPI_File_get_type_extent","PMPI_File_get_type_extent_c","PMPI_File_get_view","PMPI_File_iread","PMPI_File_iread_all","PMPI_File_iread_all_c","PMPI_File_iread_at","PMPI_File_iread_at_all","PMPI_File_iread_at_all_c","PMPI_File_iread_at_c","PMPI_File_iread_c","PMPI_File_iread_shared","PMPI_File_iread_shared_c","PMPI_File_iwrite","PMPI_File_iwrite_all","PMPI_File_iwrite_all_c","PMPI_File_iwrite_at","PMPI_File_iwrite_at_all","PMPI_File_iwrite_at_all_c","PMPI_File_iwrite_at_c","PMPI_File_iwrite_c","PMPI_File_iwrite_shared","PMPI_File_iwrite_shared_c","PMPI_File_open","PMPI_File_preallocate","PMPI_File_read","PMPI_File_read_all","PMPI_File_read_all_begin","PMPI_File_read_all_begin_c","PMPI_File_read_all_c","PMPI_File_read_all_end","PMPI_File_read_at","PMPI_File_read_at_all","PMPI_File_read_at_all_begin","PMPI_File_read_at_all_begin_c","PMPI_File_read_at_all_c","PMPI_File_read_at_all_end","PMPI_File_read_at_c","PMPI_File_read_c","PMPI_File_read_ordered","PMPI_File_read_ordered_begin","PMPI_File_read_ordered_begin_c","PMPI_File_read_ordered_c","PMPI_File_read_ordered_end","PMPI_File_read_shared","PMPI_File_read_shared_c","PMPI_File_seek","PMPI_File_seek_shared","PMPI_File_set_atomicity","PMPI_File_set_errhandler","PMPI_File_set_info","PMPI_File_set_size","PMPI_File_set_view","PMPI_File_sync","PMPI_File_write","PMPI_File_write_all","PMPI_File_write_all_begin","PMPI_File_write_all_begin_c","PMPI_File_write_all_c","PMPI_File_write_all_end","PMPI_File_write_at","PMPI_File_write_at_all","PMPI_File_write_at_all_begin","PMPI_File_write_at_all_begin_c","PMPI_File_write_at_all_c","PMPI_File_write_at_all_end","PMPI_File_write_at_c","PMPI_File_write_c","PMPI_File_write_ordered","PMPI_File_write_ordered_begin","PMPI_File_write_ordered_begin_c","PMPI_File_write_ordered_c","PMPI_File_write_ordered_end","PMPI_File_write_shared","PMPI_File_write_shared_c","PMPI_Finalize","PMPI_Finalized","PMPI_Free_mem","PMPI_Gather","PMPI_Gather.cold","PMPI_Gather_c","PMPI_Gather_c.cold","PMPI_Gather_init","PMPI_Gather_init.cold","PMPI_Gather_init_c","PMPI_Gather_init_c.cold","PMPI_Gatherv","PMPI_Gatherv.cold","PMPI_Gatherv_c","PMPI_Gatherv_c.cold","PMPI_Gatherv_init","PMPI_Gatherv_init.cold","PMPI_Gatherv_init_c","PMPI_Gatherv_init_c.cold","PMPI_Get","PMPI_Get.cold","PMPI_Get_accumulate","PMPI_Get_accumulate.cold","PMPI_Get_accumulate_c","PMPI_Get_accumulate_c.cold","PMPI_Get_address","PMPI_Get_c","PMPI_Get_c.cold","PMPI_Get_count","PMPI_Get_count_c","PMPI_Get_elements","PMPI_Get_elements.cold","PMPI_Get_elements_c","PMPI_Get_elements_c.cold","PMPI_Get_elements_x","PMPI_Get_elements_x.cold","PMPI_Get_library_version","PMPI_Get_processor_name","PMPI_Get_version","PMPI_Graph_create","PMPI_Graph_create.cold","PMPI_Graph_get","PMPI_Graph_map","PMPI_Graph_neighbors","PMPI_Graph_neighbors_count","PMPI_Graphdims_get","PMPI_Grequest_complete","PMPI_Grequest_start","PMPI_Group_compare","PMPI_Group_difference","PMPI_Group_excl","PMPI_Group_excl.cold","PMPI_Group_free","PMPI_Group_from_session_pset","PMPI_Group_incl","PMPI_Group_intersection","PMPI_Group_range_excl","PMPI_Group_range_incl","PMPI_Group_rank","PMPI_Group_size","PMPI_Group_translate_ranks","PMPI_Group_union","PMPI_Iallgather","PMPI_Iallgather.cold","PMPI_Iallgather_c","PMPI_Iallgather_c.cold","PMPI_Iallgatherv","PMPI_Iallgatherv.cold","PMPI_Iallgatherv_c","PMPI_Iallgatherv_c.cold","PMPI_Iallreduce","PMPI_Iallreduce.cold","PMPI_Iallreduce_c","PMPI_Iallreduce_c.cold","PMPI_Ialltoall","PMPI_Ialltoall.cold","PMPI_Ialltoall_c","PMPI_Ialltoall_c.cold","PMPI_Ialltoallv","PMPI_Ialltoallv.cold","PMPI_Ialltoallv_c","PMPI_Ialltoallv_c.cold","PMPI_Ialltoallw","PMPI_Ialltoallw.cold","PMPI_Ialltoallw_c","PMPI_Ialltoallw_c.cold","PMPI_Ibarrier","PMPI_Ibcast","PMPI_Ibcast.cold","PMPI_Ibcast_c","PMPI_Ibcast_c.cold","PMPI_Ibsend","PMPI_Ibsend.cold","PMPI_Ibsend_c","PMPI_Ibsend_c.cold","PMPI_Iexscan","PMPI_Iexscan.cold","PMPI_Iexscan_c","PMPI_Iexscan_c.cold","PMPI_Igather","PMPI_Igather.cold","PMPI_Igather_c","PMPI_Igather_c.cold","PMPI_Igatherv","PMPI_Igatherv.cold","PMPI_Igatherv_c","PMPI_Igatherv_c.cold","PMPI_Improbe","PMPI_Imrecv","PMPI_Imrecv.cold","PMPI_Imrecv_c","PMPI_Imrecv_c.cold","PMPI_Ineighbor_allgather","PMPI_Ineighbor_allgather.cold","PMPI_Ineighbor_allgather_c","PMPI_Ineighbor_allgather_c.cold","PMPI_Ineighbor_allgatherv","PMPI_Ineighbor_allgatherv.cold","PMPI_Ineighbor_allgatherv_c","PMPI_Ineighbor_allgatherv_c.cold","PMPI_Ineighbor_alltoall","PMPI_Ineighbor_alltoall.cold","PMPI_Ineighbor_alltoall_c","PMPI_Ineighbor_alltoall_c.cold","PMPI_Ineighbor_alltoallv","PMPI_Ineighbor_alltoallv.cold","PMPI_Ineighbor_alltoallv_c","PMPI_Ineighbor_alltoallv_c.cold","PMPI_Ineighbor_alltoallw","PMPI_Ineighbor_alltoallw.cold","PMPI_Ineighbor_alltoallw_c","PMPI_Ineighbor_alltoallw_c.cold","PMPI_Info_create","PMPI_Info_create_env","PMPI_Info_delete","PMPI_Info_dup","PMPI_Info_free","PMPI_Info_get","PMPI_Info_get_nkeys","PMPI_Info_get_nthkey","PMPI_Info_get_string","PMPI_Info_get_valuelen","PMPI_Info_set","PMPI_Init","PMPI_Init_thread","PMPI_Initialized","PMPI_Intercomm_create","PMPI_Intercomm_create.cold","PMPI_Intercomm_create_from_groups","PMPI_Intercomm_merge","PMPI_Intercomm_merge.cold","PMPI_Iprobe","PMPI_Irecv","PMPI_Irecv.cold","PMPI_Irecv_c","PMPI_Irecv_c.cold","PMPI_Ireduce","PMPI_Ireduce.cold","PMPI_Ireduce_c","PMPI_Ireduce_c.cold","PMPI_Ireduce_scatter","PMPI_Ireduce_scatter.cold","PMPI_Ireduce_scatter_block","PMPI_Ireduce_scatter_block.cold","PMPI_Ireduce_scatter_block_c","PMPI_Ireduce_scatter_block_c.cold","PMPI_Ireduce_scatter_c","PMPI_Ireduce_scatter_c.cold","PMPI_Irsend","PMPI_Irsend.cold","PMPI_Irsend_c","PMPI_Irsend_c.cold","PMPI_Is_thread_main","PMPI_Iscan","PMPI_Iscan.cold","PMPI_Iscan_c","PMPI_Iscan_c.cold","PMPI_Iscatter","PMPI_Iscatter.cold","PMPI_Iscatter_c","PMPI_Iscatter_c.cold","PMPI_Iscatterv","PMPI_Iscatterv.cold","PMPI_Iscatterv_c","PMPI_Iscatterv_c.cold","PMPI_Isend","PMPI_Isend.cold","PMPI_Isend_c","PMPI_Isend_c.cold","PMPI_Isendrecv","PMPI_Isendrecv.cold","PMPI_Isendrecv_c","PMPI_Isendrecv_c.cold","PMPI_Isendrecv_replace","PMPI_Isendrecv_replace.cold","PMPI_Isendrecv_replace_c","PMPI_Isendrecv_replace_c.cold","PMPI_Issend","PMPI_Issend.cold","PMPI_Issend_c","PMPI_Issend_c.cold","PMPI_Keyval_create","PMPI_Keyval_free","PMPI_Lookup_name","PMPI_Mprobe","PMPI_Mrecv","PMPI_Mrecv.cold","PMPI_Mrecv_c","PMPI_Mrecv_c.cold","PMPI_Neighbor_allgather","PMPI_Neighbor_allgather.cold","PMPI_Neighbor_allgather_c","PMPI_Neighbor_allgather_c.cold","PMPI_Neighbor_allgather_init","PMPI_Neighbor_allgather_init.cold","PMPI_Neighbor_allgather_init_c","PMPI_Neighbor_allgather_init_c.cold","PMPI_Neighbor_allgatherv","PMPI_Neighbor_allgatherv.cold","PMPI_Neighbor_allgatherv_c","PMPI_Neighbor_allgatherv_c.cold","PMPI_Neighbor_allgatherv_init","PMPI_Neighbor_allgatherv_init.cold","PMPI_Neighbor_allgatherv_init_c","PMPI_Neighbor_allgatherv_init_c.cold","PMPI_Neighbor_alltoall","PMPI_Neighbor_alltoall.cold","PMPI_Neighbor_alltoall_c","PMPI_Neighbor_alltoall_c.cold","PMPI_Neighbor_alltoall_init","PMPI_Neighbor_alltoall_init.cold","PMPI_Neighbor_alltoall_init_c","PMPI_Neighbor_alltoall_init_c.cold","PMPI_Neighbor_alltoallv","PMPI_Neighbor_alltoallv.cold","PMPI_Neighbor_alltoallv_c","PMPI_Neighbor_alltoallv_c.cold","PMPI_Neighbor_alltoallv_init","PMPI_Neighbor_alltoallv_init.cold","PMPI_Neighbor_alltoallv_init_c","PMPI_Neighbor_alltoallv_init_c.cold","PMPI_Neighbor_alltoallw","PMPI_Neighbor_alltoallw.cold","PMPI_Neighbor_alltoallw_c","PMPI_Neighbor_alltoallw_c.cold","PMPI_Neighbor_alltoallw_init","PMPI_Neighbor_alltoallw_init.cold","PMPI_Neighbor_alltoallw_init_c","PMPI_Neighbor_alltoallw_init_c.cold","PMPI_Op_commutative","PMPI_Op_create","PMPI_Op_create_c","PMPI_Op_free","PMPI_Open_port","PMPI_Pack","PMPI_Pack.cold","PMPI_Pack_c","PMPI_Pack_c.cold","PMPI_Pack_external","PMPI_Pack_external.cold","PMPI_Pack_external_c","PMPI_Pack_external_c.cold","PMPI_Pack_external_size","PMPI_Pack_external_size_c","PMPI_Pack_size","PMPI_Pack_size.cold","PMPI_Pack_size_c","PMPI_Pack_size_c.cold","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_Psend_init","PMPI_Psend_init.cold","PMPI_Publish_name","PMPI_Put","PMPI_Put.cold","PMPI_Put_c","PMPI_Put_c.cold","PMPI_Query_thread","PMPI_Raccumulate","PMPI_Raccumulate.cold","PMPI_Raccumulate_c","PMPI_Raccumulate_c.cold","PMPI_Recv","PMPI_Recv.cold","PMPI_Recv_c","PMPI_Recv_c.cold","PMPI_Recv_init","PMPI_Recv_init.cold","PMPI_Recv_init_c","PMPI_Recv_init_c.cold","PMPI_Reduce","PMPI_Reduce.cold","PMPI_Reduce_c","PMPI_Reduce_c.cold","PMPI_Reduce_init","PMPI_Reduce_init.cold","PMPI_Reduce_init_c","PMPI_Reduce_init_c.cold","PMPI_Reduce_local","PMPI_Reduce_local.cold","PMPI_Reduce_local_c","PMPI_Reduce_local_c.cold","PMPI_Reduce_scatter","PMPI_Reduce_scatter.cold","PMPI_Reduce_scatter_block","PMPI_Reduce_scatter_block.cold","PMPI_Reduce_scatter_block_c","PMPI_Reduce_scatter_block_c.cold","PMPI_Reduce_scatter_block_init","PMPI_Reduce_scatter_block_init.cold","PMPI_Reduce_scatter_block_init_c","PMPI_Reduce_scatter_block_init_c.cold","PMPI_Reduce_scatter_c","PMPI_Reduce_scatter_c.cold","PMPI_Reduce_scatter_init","PMPI_Reduce_scatter_init.cold","PMPI_Reduce_scatter_init_c","PMPI_Reduce_scatter_init_c.cold","PMPI_Register_datarep","PMPI_Register_datarep_c","PMPI_Request_free","PMPI_Request_get_status","PMPI_Rget","PMPI_Rget.cold","PMPI_Rget_accumulate","PMPI_Rget_accumulate.cold","PMPI_Rget_accumulate_c","PMPI_Rget_accumulate_c.cold","PMPI_Rget_c","PMPI_Rget_c.cold","PMPI_Rput","PMPI_Rput.cold","PMPI_Rput_c","PMPI_Rput_c.cold","PMPI_Rsend","PMPI_Rsend.cold","PMPI_Rsend_c","PMPI_Rsend_c.cold","PMPI_Rsend_init","PMPI_Rsend_init.cold","PMPI_Rsend_init_c","PMPI_Rsend_init_c.cold","PMPI_Scan","PMPI_Scan.cold","PMPI_Scan_c","PMPI_Scan_c.cold","PMPI_Scan_init","PMPI_Scan_init.cold","PMPI_Scan_init_c","PMPI_Scan_init_c.cold","PMPI_Scatter","PMPI_Scatter.cold","PMPI_Scatter_c","PMPI_Scatter_c.cold","PMPI_Scatter_init","PMPI_Scatter_init.cold","PMPI_Scatter_init_c","PMPI_Scatter_init_c.cold","PMPI_Scatterv","PMPI_Scatterv.cold","PMPI_Scatterv_c","PMPI_Scatterv_c.cold","PMPI_Scatterv_init","PMPI_Scatterv_init.cold","PMPI_Scatterv_init_c","PMPI_Scatterv_init_c.cold","PMPI_Send","PMPI_Send.cold","PMPI_Send_c","PMPI_Send_c.cold","PMPI_Send_init","PMPI_Send_init.cold","PMPI_Send_init_c","PMPI_Send_init_c.cold","PMPI_Sendrecv","PMPI_Sendrecv.cold","PMPI_Sendrecv_c","PMPI_Sendrecv_c.cold","PMPI_Sendrecv_replace","PMPI_Sendrecv_replace.cold","PMPI_Sendrecv_replace_c","PMPI_Sendrecv_replace_c.cold","PMPI_Session_call_errhandler","PMPI_Session_create_errhandler","PMPI_Session_finalize","PMPI_Session_get_errhandler","PMPI_Session_get_info","PMPI_Session_get_nth_pset","PMPI_Session_get_num_psets","PMPI_Session_get_pset_info","PMPI_Session_init","PMPI_Session_set_errhandler","PMPI_Ssend","PMPI_Ssend.cold","PMPI_Ssend_c","PMPI_Ssend_c.cold","PMPI_Ssend_init","PMPI_Ssend_init.cold","PMPI_Ssend_init_c","PMPI_Ssend_init_c.cold","PMPI_Start","PMPI_Startall","PMPI_Status_c2f","PMPI_Status_f2c","PMPI_Status_set_cancelled","PMPI_Status_set_elements","PMPI_Status_set_elements_c","PMPI_Status_set_elements_x","PMPI_T_category_changed","PMPI_T_category_get_categories","PMPI_T_category_get_cvars","PMPI_T_category_get_events","PMPI_T_category_get_index","PMPI_T_category_get_info","PMPI_T_category_get_num","PMPI_T_category_get_num_events","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_event_callback_get_info","PMPI_T_event_callback_set_info","PMPI_T_event_copy","PMPI_T_event_get_index","PMPI_T_event_get_info","PMPI_T_event_get_num","PMPI_T_event_get_source","PMPI_T_event_get_timestamp","PMPI_T_event_handle_alloc","PMPI_T_event_handle_free","PMPI_T_event_handle_get_info","PMPI_T_event_handle_set_info","PMPI_T_event_read","PMPI_T_event_register_callback","PMPI_T_event_set_dropped_handler","PMPI_T_finalize","PMPI_T_init_thread","PMPI_T_pvar_get_index","PMPI_T_pvar_get_info","PMPI_T_pvar_get_info.cold","PMPI_T_pvar_get_num","PMPI_T_pvar_handle_alloc","PMPI_T_pvar_handle_alloc.cold","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_T_source_get_info","PMPI_T_source_get_num","PMPI_T_source_get_timestamp","PMPI_Test","PMPI_Test_cancelled","PMPI_Testall","PMPI_Testany","PMPI_Testsome","PMPI_Topo_test","PMPI_Type_commit","PMPI_Type_contiguous","PMPI_Type_contiguous_c","PMPI_Type_create_darray","PMPI_Type_create_darray_c","PMPI_Type_create_f90_complex","PMPI_Type_create_f90_integer","PMPI_Type_create_f90_real","PMPI_Type_create_hindexed","PMPI_Type_create_hindexed_block","PMPI_Type_create_hindexed_block_c","PMPI_Type_create_hindexed_c","PMPI_Type_create_hvector","PMPI_Type_create_hvector_c","PMPI_Type_create_indexed_block","PMPI_Type_create_indexed_block_c","PMPI_Type_create_keyval","PMPI_Type_create_resized","PMPI_Type_create_resized_c","PMPI_Type_create_struct","PMPI_Type_create_struct_c","PMPI_Type_create_subarray","PMPI_Type_create_subarray_c","PMPI_Type_delete_attr","PMPI_Type_dup","PMPI_Type_extent","PMPI_Type_free","PMPI_Type_free_keyval","PMPI_Type_get_attr","PMPI_Type_get_contents","PMPI_Type_get_contents_c","PMPI_Type_get_envelope","PMPI_Type_get_envelope_c","PMPI_Type_get_extent","PMPI_Type_get_extent_c","PMPI_Type_get_extent_x","PMPI_Type_get_name","PMPI_Type_get_true_extent","PMPI_Type_get_true_extent_c","PMPI_Type_get_true_extent_x","PMPI_Type_hindexed","PMPI_Type_hvector","PMPI_Type_indexed","PMPI_Type_indexed_c","PMPI_Type_lb","PMPI_Type_match_size","PMPI_Type_set_attr","PMPI_Type_set_name","PMPI_Type_size","PMPI_Type_size_c","PMPI_Type_size_x","PMPI_Type_struct","PMPI_Type_ub","PMPI_Type_vector","PMPI_Type_vector_c","PMPI_Unpack","PMPI_Unpack.cold","PMPI_Unpack_c","PMPI_Unpack_c.cold","PMPI_Unpack_external","PMPI_Unpack_external.cold","PMPI_Unpack_external_c","PMPI_Unpack_external_c.cold","PMPI_Unpublish_name","PMPI_Wait","PMPI_Waitall","PMPI_Waitany","PMPI_Waitsome","PMPI_Win_allocate","PMPI_Win_allocate_c","PMPI_Win_allocate_shared","PMPI_Win_allocate_shared_c","PMPI_Win_attach","PMPI_Win_call_errhandler","PMPI_Win_complete","PMPI_Win_complete.cold","PMPI_Win_create","PMPI_Win_create_c","PMPI_Win_create_dynamic","PMPI_Win_create_errhandler","PMPI_Win_create_keyval","PMPI_Win_delete_attr","PMPI_Win_detach","PMPI_Win_fence","PMPI_Win_flush","PMPI_Win_flush_all","PMPI_Win_flush_all.cold","PMPI_Win_flush_local","PMPI_Win_flush_local_all","PMPI_Win_flush_local_all.cold","PMPI_Win_free","PMPI_Win_free_keyval","PMPI_Win_get_attr","PMPI_Win_get_errhandler","PMPI_Win_get_group","PMPI_Win_get_info","PMPI_Win_get_name","PMPI_Win_lock","PMPI_Win_lock_all","PMPI_Win_post","PMPI_Win_post.cold","PMPI_Win_set_attr","PMPI_Win_set_errhandler","PMPI_Win_set_info","PMPI_Win_set_name","PMPI_Win_shared_query","PMPI_Win_shared_query.cold","PMPI_Win_shared_query_c","PMPI_Win_shared_query_c.cold","PMPI_Win_start","PMPI_Win_sync","PMPI_Win_sync.cold","PMPI_Win_test","PMPI_Win_unlock","PMPI_Win_unlock_all","PMPI_Win_unlock_all.cold","PMPI_Win_wait","PMPI_Win_wait.cold","PMPI_Wtick","PMPI_Wtime"],"binary_path":"/opt/cray/pe/lib64/libmpi_cray.so.12","include_offsets":false},{"type":2,"name":"mpii","functions":["MPII_Algo_compare_int","MPII_Allreduce_group","MPII_Allreduce_group_intra","MPII_Allreduce_group_intra.cold","MPII_Attr_copy_c_proxy","MPII_Attr_delete_c_proxy","MPII_Call_finalize_callbacks","MPII_Coll_comm_cleanup","MPII_Coll_finalize","MPII_Coll_init","MPII_CommL_forget","MPII_CommL_remember","MPII_Comm_check_hints","MPII_Comm_copy","MPII_Comm_copy_data","MPII_Comm_create_calculate_mapping","MPII_Comm_create_local_group","MPII_Comm_create_map","MPII_Comm_dup","MPII_Comm_get_attr","MPII_Comm_get_hints","MPII_Comm_init","MPII_Comm_is_node_balanced","MPII_Comm_is_node_consecutive","MPII_Comm_set_attr","MPII_Comm_set_hints","MPII_Create_container","MPII_Dataloop_alloc","MPII_Dataloop_alloc_and_copy","MPII_Dataloop_segment_flatten","MPII_Dataloop_stackelm_blocksize","MPII_Dataloop_stackelm_load","MPII_Dataloop_stackelm_offset","MPII_Dataloop_stream_size","MPII_Dataloop_update","MPII_Datatype_attr_finalize","MPII_Datatype_blockindexed_count_contig","MPII_Datatype_indexed_count_contig","MPII_Datatype_printf","MPII_Debugq_forget","MPII_Debugq_remember","MPII_Debugq_remember.cold","MPII_Finalize","MPII_Genutil_progress_hook","MPII_Genutil_sched_poke","MPII_Genutil_vtx_add_dependencies","MPII_Genutil_vtx_add_dependencies.cold","MPII_Genutil_vtx_copy","MPII_Genutil_vtx_create","MPII_Genutil_vtx_create.cold","MPII_Genutil_vtx_dtor","MPII_Grequest_set_lang_f77","MPII_Grequest_set_lang_f77.cold","MPII_Group_setup_lpid_list","MPII_Iallgatherv_is_displs_ordered","MPII_Ibcast_sched_add_length","MPII_Ibcast_sched_init_length","MPII_Ibcast_sched_test_curr_length","MPII_Ibcast_sched_test_length","MPII_Init_thread","MPII_Iscatter_for_bcast_sched","MPII_Keyval_set_proxy","MPII_Recexchalgo_comm_cleanup","MPII_Recexchalgo_comm_init","MPII_Recexchalgo_get_count_and_offset","MPII_Recexchalgo_get_neighbors","MPII_Recexchalgo_init","MPII_Recexchalgo_origrank_to_step2rank","MPII_Recexchalgo_reverse_digits_step2","MPII_Recexchalgo_step2rank_to_origrank","MPII_Scatter_for_bcast","MPII_Segment_manipulate","MPII_Segment_manipulate.cold","MPII_Setup_intercomm_localcomm","MPII_Stubalgo_comm_cleanup","MPII_Stubalgo_comm_init","MPII_Stubalgo_init","MPII_TSP_comm_cleanup","MPII_TSP_comm_init","MPII_TSP_finalize","MPII_TSP_init","MPII_TSP_scheds_are_pending","MPII_Treealgo_comm_cleanup","MPII_Treealgo_comm_init","MPII_Treealgo_init","MPII_Treeutil_tree_kary_init","MPII_Treeutil_tree_knomial_1_init","MPII_Treeutil_tree_knomial_2_init","MPII_Type_get_attr","MPII_Type_set_attr","MPII_Type_zerolen","MPII_Typerep_basic_type_is_complex","MPII_Typerep_basic_type_is_unsigned","MPII_Typerep_convert_darray","MPII_Typerep_convert_darray.cold","MPII_Typerep_convert_subarray","MPII_Typerep_convert_subarray.cold","MPII_Typerep_get_basic_size_external32","MPII_Typerep_op_fallback","MPII_Typerep_op_fallback.cold","MPII_Wait_for_debugger","MPII_Win_get_attr","MPII_Win_set_attr","MPII_compare_info_hint","MPII_dump_debug_summary","MPII_finalize_async","MPII_finalize_builtin_infos","MPII_hwtopo_finalize","MPII_hwtopo_init","MPII_init_async","MPII_init_binding_cxx","MPII_init_builtin_infos","MPII_init_dbg_logging","MPII_init_local_proc_attrs","MPII_init_request","MPII_init_tag_ub","MPII_init_windows","MPII_nettopo_finalize","MPII_nettopo_init","MPII_pre_init_dbg_logging","MPII_thread_mutex_create","MPII_thread_mutex_destroy"],"binary_path":"/opt/cray/pe/lib64/libmpi_cray.so.12","include_offsets":false},{"type":2,"name":"mpi-rest","functions":["ADIOI_Agg_idx","ADIOI_Build_agg_reqs","ADIOI_Build_client_pre_req","ADIOI_Build_client_req","ADIOI_Build_client_reqs","ADIOI_CRAY_ADIO_Open","ADIOI_CRAY_Calc_aggregator_pfl","ADIOI_CRAY_Calc_my_req","ADIOI_CRAY_Calc_others_req","ADIOI_CRAY_Exch_and_write","ADIOI_CRAY_Fill_send_buffer","ADIOI_CRAY_Fill_user_buffer","ADIOI_CRAY_Get_last_stripe_size","ADIOI_CRAY_Heap_merge","ADIOI_CRAY_Open","ADIOI_CRAY_Parse_comp_layout_opt","ADIOI_CRAY_R_Exchange_data","ADIOI_CRAY_ReadContig","ADIOI_CRAY_ReadContig_async","ADIOI_CRAY_ReadStridedColl","ADIOI_CRAY_ReadStrided_naive","ADIOI_CRAY_Read_and_exch","ADIOI_CRAY_SetInfo","ADIOI_CRAY_Sort_off_len","ADIOI_CRAY_W_Exchange_data","ADIOI_CRAY_WriteContig","ADIOI_CRAY_WriteContig_async","ADIOI_CRAY_WriteStridedColl","ADIOI_CRAY_WriteStrided_naive","ADIOI_CRAY_aio_init","ADIOI_CRAY_aio_request_find","ADIOI_CRAY_aio_request_release","ADIOI_CRAY_aio_request_wait","ADIOI_CRAY_aio_request_wait_1","ADIOI_CRAY_aio_request_wrapup","ADIOI_CRAY_cb_nidlist_assign","ADIOI_CRAY_cb_nidlist_init","ADIOI_CRAY_cb_ranklist_build","ADIOI_CRAY_dump_keys","ADIOI_CRAY_dvs_real_fstype","ADIOI_CRAY_getenv_mpiio_hints","ADIOI_CRAY_getrtc","ADIOI_CRAY_group_lock_ioctl","ADIOI_CRAY_group_lock_unlock_ioctl_noreduce","ADIOI_CRAY_group_unlock_ioctl","ADIOI_CRAY_io_trace","ADIOI_CRAY_is_aggregator","ADIOI_CRAY_llapi_ladvise","ADIOI_CRAY_llapi_ladvise_noexpand","ADIOI_CRAY_lock_ahead","ADIOI_CRAY_prepend_fs","ADIOI_CRAY_request_only_lock_ioctl","ADIOI_CRAY_stats_report","ADIOI_CRAY_test_ladvise","ADIOI_CRAY_timers_read_report","ADIOI_CRAY_timers_write_report","ADIOI_Calc_aggregator","ADIOI_Calc_bounds","ADIOI_Calc_file_domains","ADIOI_Calc_file_realms","ADIOI_Calc_file_realms_aar","ADIOI_Calc_file_realms_fsize","ADIOI_Calc_file_realms_user_size","ADIOI_Calc_my_off_len","ADIOI_Calc_my_req","ADIOI_Calc_others_req","ADIOI_Calloc_fn","ADIOI_Create_fr_simpletype","ADIOI_Datatype_iscontig","ADIOI_End_call","ADIOI_Err_create_code","ADIOI_Exch_and_write:0x74adc8","ADIOI_Exch_and_write:0x7b8d5d","ADIOI_Exch_file_views","ADIOI_FAILSAFE_OpenColl","ADIOI_FAKE_IOComplete","ADIOI_FAKE_IODone","ADIOI_FAKE_IreadContig","ADIOI_FAKE_IreadStrided","ADIOI_FAKE_IwriteContig","ADIOI_FAKE_IwriteStrided","ADIOI_Fill_send_buffer:0x74cceb","ADIOI_Fill_send_buffer:0x7ba6d4","ADIOI_Fill_send_buffer_nosend","ADIOI_Fill_user_buffer:0x74824a","ADIOI_Fill_user_buffer:0x7b1fcf","ADIOI_Flatten_and_find","ADIOI_Flatten_datatype","ADIOI_Flattened_type_copy","ADIOI_Flattened_type_delete","ADIOI_Free_fn","ADIOI_Free_my_req","ADIOI_Free_others_req","ADIOI_GEN_Close","ADIOI_GEN_Delete","ADIOI_GEN_Fcntl","ADIOI_GEN_Feature","ADIOI_GEN_Flush","ADIOI_GEN_IOComplete","ADIOI_GEN_IODone","ADIOI_GEN_IreadContig","ADIOI_GEN_IreadStrided","ADIOI_GEN_IreadStridedColl","ADIOI_GEN_IreadStridedColl_fini","ADIOI_GEN_IreadStridedColl_free","ADIOI_GEN_IreadStridedColl_indio","ADIOI_GEN_IreadStridedColl_inter","ADIOI_GEN_IreadStridedColl_read","ADIOI_GEN_IwriteContig","ADIOI_GEN_IwriteStrided","ADIOI_GEN_IwriteStridedColl","ADIOI_GEN_IwriteStridedColl_bcast","ADIOI_GEN_IwriteStridedColl_exch","ADIOI_GEN_IwriteStridedColl_fini","ADIOI_GEN_IwriteStridedColl_free","ADIOI_GEN_IwriteStridedColl_indio","ADIOI_GEN_IwriteStridedColl_inter","ADIOI_GEN_OpenColl","ADIOI_GEN_Prealloc","ADIOI_GEN_ReadContig","ADIOI_GEN_ReadStrided","ADIOI_GEN_ReadStridedColl","ADIOI_GEN_ReadStrided_naive","ADIOI_GEN_Resize","ADIOI_GEN_SeekIndividual","ADIOI_GEN_SetInfo","ADIOI_GEN_SetLock","ADIOI_GEN_SetLock64","ADIOI_GEN_WriteContig","ADIOI_GEN_WriteStrided","ADIOI_GEN_WriteStridedColl","ADIOI_GEN_WriteStrided_naive","ADIOI_GEN_aio","ADIOI_GEN_aio_free_fn","ADIOI_GEN_aio_poll_fn","ADIOI_GEN_aio_query_fn","ADIOI_GEN_aio_wait_fn","ADIOI_GEN_flock_cmd_to_string","ADIOI_GEN_flock_type_to_string","ADIOI_GEN_irc_free_fn","ADIOI_GEN_irc_poll_fn","ADIOI_GEN_irc_query_fn","ADIOI_GEN_irc_wait_fn","ADIOI_GEN_iwc_free_fn","ADIOI_GEN_iwc_poll_fn","ADIOI_GEN_iwc_query_fn","ADIOI_GEN_iwc_wait_fn","ADIOI_GPFS_Calc_aggregator","ADIOI_GPFS_Calc_file_domains","ADIOI_GPFS_Calc_my_req","ADIOI_GPFS_Calc_others_req","ADIOI_GPFS_Close","ADIOI_GPFS_Flush","ADIOI_GPFS_Free_my_req","ADIOI_GPFS_Free_others_req","ADIOI_GPFS_Open","ADIOI_GPFS_ReadStridedColl","ADIOI_GPFS_SetInfo","ADIOI_GPFS_WriteStridedColl","ADIOI_Get_byte_offset","ADIOI_Get_eof_offset","ADIOI_Get_position","ADIOI_Heap_create","ADIOI_Heap_extract_min","ADIOI_Heap_free","ADIOI_Heap_insert","ADIOI_Heap_merge","ADIOI_IOFiletype","ADIOI_IOStridedColl","ADIOI_IO_Thread_Func","ADIOI_Icalc_others_req","ADIOI_Icalc_others_req_fini","ADIOI_Icalc_others_req_main","ADIOI_Iexch_and_write","ADIOI_Iexch_and_write_fini","ADIOI_Iexch_and_write_l1_begin","ADIOI_Iexch_and_write_l1_body","ADIOI_Iexch_and_write_l1_end","ADIOI_Iexch_and_write_l2_begin","ADIOI_Iexch_and_write_l2_end","ADIOI_Iexch_and_write_reset","ADIOI_Info_check_and_install_enabled","ADIOI_Info_check_and_install_int","ADIOI_Info_check_and_install_str","ADIOI_Info_check_and_install_true","ADIOI_Info_print_keyvals","ADIOI_Iread_and_exch","ADIOI_Iread_and_exch_fini","ADIOI_Iread_and_exch_l1_begin","ADIOI_Iread_and_exch_l1_end","ADIOI_Iread_and_exch_l2_begin","ADIOI_Iread_and_exch_l2_end","ADIOI_Iread_and_exch_reset","ADIOI_LUSTRE_Aligned_Mem_File_Read","ADIOI_LUSTRE_Aligned_Mem_File_Write","ADIOI_LUSTRE_Calc_aggregator","ADIOI_LUSTRE_Calc_my_req","ADIOI_LUSTRE_Directio","ADIOI_LUSTRE_Docollect","ADIOI_LUSTRE_Exch_and_write","ADIOI_LUSTRE_Fill_send_buffer","ADIOI_LUSTRE_Free_my_req","ADIOI_LUSTRE_Get_striping_info","ADIOI_LUSTRE_IOContig","ADIOI_LUSTRE_IterateOneSided","ADIOI_LUSTRE_Open","ADIOI_LUSTRE_ReadContig","ADIOI_LUSTRE_SetInfo","ADIOI_LUSTRE_W_Exchange_data","ADIOI_LUSTRE_WriteContig","ADIOI_LUSTRE_WriteStrided","ADIOI_LUSTRE_WriteStridedColl","ADIOI_LUSTRE_clear_locks","ADIOI_LUSTRE_lock_ahead_ioctl","ADIOI_LUSTRE_request_only_lock_ioctl","ADIOI_Malloc_fn","ADIOI_NFS_Fcntl","ADIOI_NFS_Feature","ADIOI_NFS_Get_shared_fp","ADIOI_NFS_IreadContig","ADIOI_NFS_IwriteContig","ADIOI_NFS_Open","ADIOI_NFS_ReadComplete","ADIOI_NFS_ReadContig","ADIOI_NFS_ReadDone","ADIOI_NFS_ReadStrided","ADIOI_NFS_Resize","ADIOI_NFS_SetInfo","ADIOI_NFS_Set_shared_fp","ADIOI_NFS_WriteComplete","ADIOI_NFS_WriteContig","ADIOI_NFS_WriteDone","ADIOI_NFS_WriteStrided","ADIOI_NFS_aio","ADIOI_NOLOCK_WriteStrided","ADIOI_OneSidedCleanup","ADIOI_OneSidedReadAggregation","ADIOI_OneSidedSetup","ADIOI_OneSidedWriteAggregation","ADIOI_P2PContigReadAggregation","ADIOI_P2PContigWriteAggregation","ADIOI_Print_flatlist_node","ADIOI_R_Exchange_data:0x747b00","ADIOI_R_Exchange_data:0x7b1751","ADIOI_R_Exchange_data_alltoallv","ADIOI_R_Iexchange_data","ADIOI_R_Iexchange_data_fill","ADIOI_R_Iexchange_data_fini","ADIOI_R_Iexchange_data_recv","ADIOI_Read_and_exch:0x746ad2","ADIOI_Read_and_exch:0x7b0676","ADIOI_Realloc_fn","ADIOI_SCALEABLE_OpenColl","ADIOI_Shfp_fname","ADIOI_Strdup","ADIOI_Strncpy","ADIOI_TESTFS_Close","ADIOI_TESTFS_Delete","ADIOI_TESTFS_Fcntl","ADIOI_TESTFS_Flush","ADIOI_TESTFS_IreadContig","ADIOI_TESTFS_IreadStrided","ADIOI_TESTFS_IwriteContig","ADIOI_TESTFS_IwriteStrided","ADIOI_TESTFS_Open","ADIOI_TESTFS_ReadComplete","ADIOI_TESTFS_ReadContig","ADIOI_TESTFS_ReadDone","ADIOI_TESTFS_ReadStrided","ADIOI_TESTFS_ReadStridedColl","ADIOI_TESTFS_Resize","ADIOI_TESTFS_SeekIndividual","ADIOI_TESTFS_SetInfo","ADIOI_TESTFS_WriteComplete","ADIOI_TESTFS_WriteContig","ADIOI_TESTFS_WriteDone","ADIOI_TESTFS_WriteStrided","ADIOI_TESTFS_WriteStridedColl","ADIOI_Type_create_hindexed_x","ADIOI_Type_dispose","ADIOI_Type_get_combiner","ADIOI_Type_ispredef","ADIOI_UFS_Open","ADIOI_Verify_fr","ADIOI_W_Exchange_data:0x74c0d0","ADIOI_W_Exchange_data:0x7b9ad9","ADIOI_W_Exchange_data_alltoallv","ADIOI_W_Iexchange_data","ADIOI_W_Iexchange_data_fini","ADIOI_W_Iexchange_data_hole","ADIOI_W_Iexchange_data_send","ADIOI_W_Iexchange_data_wait","ADIOI_cb_bcast_rank_map","ADIOI_cb_config_list_parse","ADIOI_cb_copy_name_array","ADIOI_cb_delete_name_array","ADIOI_cb_gather_name_array","ADIOI_compute_offsets","ADIOI_incorporate_system_hints","ADIOI_init_view_state","ADIOI_no_requests:0x771287","ADIOI_no_requests:0x77ab98","ADIOI_process_system_hints","ADIO_Close","ADIO_End","ADIO_FileSysType_fncall","ADIO_FileSysType_fncall_scalable","ADIO_FileSysType_parentdir","ADIO_FileSysType_prefix","ADIO_Get_shared_fp","ADIO_ImmediateOpen","ADIO_Init","ADIO_Open","ADIO_ResolveFileType","ADIO_Set_shared_fp","ADIO_Set_view","ADIO_Type_create_darray","ADIO_Type_create_subarray","DebugqFreePool","Exch_data_amounts","FindSpecificMsgIndex","Init_shm_barrier","LOOKUP_CVAR_BY_NAME","LOOKUP_CVAR_BY_NAME.cold","MPIC_Irecv","MPIC_Isend","MPIC_Issend","MPIC_Probe","MPIC_Probe.cold","MPIC_Recv","MPIC_Send","MPIC_Sendrecv","MPIC_Sendrecv_replace","MPIC_Ssend","MPIC_Wait","MPIC_Waitall","MPIDIG_RMA_Init_sync_pvars","MPIDIG_RMA_Init_targetcb_pvars","MPIDIG_acc_ack_origin_cb","MPIDIG_acc_ack_target_msg_cb","MPIDIG_acc_data_origin_cb","MPIDIG_acc_data_origin_cb.cold","MPIDIG_acc_data_target_msg_cb","MPIDIG_acc_dt_ack_target_msg_cb","MPIDIG_acc_dt_origin_cb","MPIDIG_acc_dt_origin_cb.cold","MPIDIG_acc_dt_target_msg_cb","MPIDIG_acc_origin_cb","MPIDIG_acc_target_msg_cb","MPIDIG_am_check_init","MPIDIG_am_comm_abort","MPIDIG_am_comm_abort_init","MPIDIG_am_finalize","MPIDIG_am_init","MPIDIG_am_reg_cb","MPIDIG_am_reg_cb_dynamic","MPIDIG_am_rndv_reg_cb","MPIDIG_am_send_async_init.isra.0.cold:0x3524e","MPIDIG_am_send_async_init.isra.0.cold:0x352c0","MPIDIG_am_send_async_init.isra.0.cold:0x35332","MPIDIG_am_send_async_init.isra.0:0x107990","MPIDIG_am_send_async_init.isra.0:0x10cc10","MPIDIG_am_send_async_init.isra.0:0x111fd0","MPIDIG_compute_acc_op.constprop.0","MPIDIG_compute_acc_op.constprop.0.cold","MPIDIG_cswap_ack_origin_cb","MPIDIG_cswap_ack_target_msg_cb","MPIDIG_cswap_origin_cb","MPIDIG_cswap_target_msg_cb","MPIDIG_destroy_comm","MPIDIG_do_accumulate.cold:0x35666","MPIDIG_do_accumulate.cold:0x35a03","MPIDIG_do_accumulate.cold:0x35f49","MPIDIG_do_accumulate.cold:0x3636b","MPIDIG_do_accumulate.cold:0x365ef","MPIDIG_do_accumulate.cold:0x3698c","MPIDIG_do_accumulate.cold:0x37069","MPIDIG_do_accumulate.cold:0x375de","MPIDIG_do_accumulate.cold:0x37a21","MPIDIG_do_accumulate.cold:0x37d37","MPIDIG_do_accumulate.cold:0x37f6b","MPIDIG_do_accumulate.cold:0x382c6","MPIDIG_do_accumulate.cold:0x38533","MPIDIG_do_accumulate.cold:0x38941","MPIDIG_do_accumulate.cold:0x38e39","MPIDIG_do_accumulate.cold:0x392f4","MPIDIG_do_accumulate.cold:0x397e9","MPIDIG_do_accumulate.cold:0x39a3e","MPIDIG_do_accumulate.cold:0x39c72","MPIDIG_do_accumulate.cold:0x39ea6","MPIDIG_do_accumulate.cold:0x3a0fb","MPIDIG_do_accumulate.cold:0x3a32f","MPIDIG_do_accumulate.cold:0x3a54e","MPIDIG_do_accumulate.cold:0x3a74c","MPIDIG_do_accumulate.cold:0x3a99b","MPIDIG_do_accumulate.cold:0x3abba","MPIDIG_do_accumulate.cold:0x3adee","MPIDIG_do_accumulate.cold:0x3b022","MPIDIG_do_accumulate.cold:0x3b241","MPIDIG_do_accumulate.cold:0x3d421","MPIDIG_do_accumulate.cold:0x3d91a","MPIDIG_do_accumulate.cold:0x3db2b","MPIDIG_do_accumulate.cold:0x3dd96","MPIDIG_do_accumulate.cold:0x3e2fd","MPIDIG_do_accumulate.cold:0x3eedc","MPIDIG_do_accumulate.cold:0x3f282","MPIDIG_do_accumulate.cold:0x3f480","MPIDIG_do_accumulate.cold:0x3f69f","MPIDIG_do_accumulate.cold:0x3f936","MPIDIG_do_accumulate.cold:0x3fc82","MPIDIG_do_accumulate.cold:0x40291","MPIDIG_do_accumulate.cold:0x4084c","MPIDIG_do_accumulate.cold:0x40c91","MPIDIG_do_accumulate.cold:0x40fa7","MPIDIG_do_accumulate.cold:0x41572","MPIDIG_do_accumulate.cold:0x41770","MPIDIG_do_accumulate.cold:0x419f4","MPIDIG_do_accumulate.cold:0x41d7c","MPIDIG_do_accumulate:0x125520","MPIDIG_do_accumulate:0x139bd0","MPIDIG_do_accumulate:0x15c570","MPIDIG_do_accumulate:0x173130","MPIDIG_do_accumulate:0x183750","MPIDIG_do_accumulate:0x198730","MPIDIG_do_accumulate:0x1bfc70","MPIDIG_do_accumulate:0x1dcb50","MPIDIG_do_accumulate:0x1f6930","MPIDIG_do_accumulate:0x20d2f0","MPIDIG_do_accumulate:0x2234a0","MPIDIG_do_accumulate:0x2370d0","MPIDIG_do_accumulate:0x246fc0","MPIDIG_do_accumulate:0x2616b0","MPIDIG_do_accumulate:0x27f300","MPIDIG_do_accumulate:0x29baf0","MPIDIG_do_accumulate:0x2bd130","MPIDIG_do_accumulate:0x2cf550","MPIDIG_do_accumulate:0x2deca0","MPIDIG_do_accumulate:0x2ee4c0","MPIDIG_do_accumulate:0x2fdc20","MPIDIG_do_accumulate:0x30d3d0","MPIDIG_do_accumulate:0x31d120","MPIDIG_do_accumulate:0x32be60","MPIDIG_do_accumulate:0x33e760","MPIDIG_do_accumulate:0x34d300","MPIDIG_do_accumulate:0x35c2b0","MPIDIG_do_accumulate:0x36c980","MPIDIG_do_accumulate:0x37bc30","MPIDIG_do_accumulate:0x421230","MPIDIG_do_accumulate:0x464830","MPIDIG_do_accumulate:0x481340","MPIDIG_do_accumulate:0x499380","MPIDIG_do_accumulate:0x4bd1f0","MPIDIG_do_accumulate:0x4fcc70","MPIDIG_do_accumulate:0x513240","MPIDIG_do_accumulate:0x524860","MPIDIG_do_accumulate:0x535bf0","MPIDIG_do_accumulate:0x54d8f0","MPIDIG_do_accumulate:0x56f0f0","MPIDIG_do_accumulate:0x5d6e40","MPIDIG_do_accumulate:0x6020b0","MPIDIG_do_accumulate:0x624020","MPIDIG_do_accumulate:0x63c160","MPIDIG_do_accumulate:0x678490","MPIDIG_do_accumulate:0x6930a0","MPIDIG_do_accumulate:0x6a6440","MPIDIG_do_accumulate:0x6c8350","MPIDIG_do_cts","MPIDIG_do_get.cold:0x356b0","MPIDIG_do_get.cold:0x35a4d","MPIDIG_do_get.cold:0x35f93","MPIDIG_do_get.cold:0x363b5","MPIDIG_do_get.cold:0x36639","MPIDIG_do_get.cold:0x369d6","MPIDIG_do_get.cold:0x370b3","MPIDIG_do_get.cold:0x37628","MPIDIG_do_get.cold:0x37a6b","MPIDIG_do_get.cold:0x37d81","MPIDIG_do_get.cold:0x37fb5","MPIDIG_do_get.cold:0x38310","MPIDIG_do_get.cold:0x3857d","MPIDIG_do_get.cold:0x38750","MPIDIG_do_get.cold:0x3898b","MPIDIG_do_get.cold:0x38e83","MPIDIG_do_get.cold:0x39103","MPIDIG_do_get.cold:0x3933e","MPIDIG_do_get.cold:0x39833","MPIDIG_do_get.cold:0x39a88","MPIDIG_do_get.cold:0x39cbc","MPIDIG_do_get.cold:0x39ef0","MPIDIG_do_get.cold:0x3a145","MPIDIG_do_get.cold:0x3a379","MPIDIG_do_get.cold:0x3a598","MPIDIG_do_get.cold:0x3a796","MPIDIG_do_get.cold:0x3a9e5","MPIDIG_do_get.cold:0x3ac04","MPIDIG_do_get.cold:0x3ae38","MPIDIG_do_get.cold:0x3b06c","MPIDIG_do_get.cold:0x3b28b","MPIDIG_do_get.cold:0x3d46b","MPIDIG_do_get.cold:0x3d964","MPIDIG_do_get.cold:0x3db75","MPIDIG_do_get.cold:0x3dde0","MPIDIG_do_get.cold:0x3e347","MPIDIG_do_get.cold:0x3ef26","MPIDIG_do_get.cold:0x3f2cc","MPIDIG_do_get.cold:0x3f4ca","MPIDIG_do_get.cold:0x3f6e9","MPIDIG_do_get.cold:0x3f980","MPIDIG_do_get.cold:0x3fccc","MPIDIG_do_get.cold:0x402db","MPIDIG_do_get.cold:0x40896","MPIDIG_do_get.cold:0x40cdb","MPIDIG_do_get.cold:0x40ff1","MPIDIG_do_get.cold:0x415bc","MPIDIG_do_get.cold:0x417ba","MPIDIG_do_get.cold:0x419c2","MPIDIG_do_get.cold:0x41dc6","MPIDIG_do_get:0x1267c0","MPIDIG_do_get:0x13ae90","MPIDIG_do_get:0x15d810","MPIDIG_do_get:0x1743d0","MPIDIG_do_get:0x1849f0","MPIDIG_do_get:0x1999f0","MPIDIG_do_get:0x1c0f10","MPIDIG_do_get:0x1dddf0","MPIDIG_do_get:0x1f7bd0","MPIDIG_do_get:0x20e590","MPIDIG_do_get:0x224740","MPIDIG_do_get:0x238370","MPIDIG_do_get:0x248260","MPIDIG_do_get:0x254660","MPIDIG_do_get:0x262950","MPIDIG_do_get:0x2805a0","MPIDIG_do_get:0x28ea20","MPIDIG_do_get:0x29cd90","MPIDIG_do_get:0x2be3d0","MPIDIG_do_get:0x2d07f0","MPIDIG_do_get:0x2dff40","MPIDIG_do_get:0x2ef760","MPIDIG_do_get:0x2feec0","MPIDIG_do_get:0x30e670","MPIDIG_do_get:0x31e3c0","MPIDIG_do_get:0x32d100","MPIDIG_do_get:0x33fa00","MPIDIG_do_get:0x34e5a0","MPIDIG_do_get:0x35d550","MPIDIG_do_get:0x36dc20","MPIDIG_do_get:0x37ced0","MPIDIG_do_get:0x4224d0","MPIDIG_do_get:0x465ad0","MPIDIG_do_get:0x4826d0","MPIDIG_do_get:0x49a620","MPIDIG_do_get:0x4be490","MPIDIG_do_get:0x4fdf10","MPIDIG_do_get:0x5144e0","MPIDIG_do_get:0x525b00","MPIDIG_do_get:0x536e90","MPIDIG_do_get:0x54eb90","MPIDIG_do_get:0x570390","MPIDIG_do_get:0x5d80e0","MPIDIG_do_get:0x603360","MPIDIG_do_get:0x6252c0","MPIDIG_do_get:0x63d400","MPIDIG_do_get:0x679730","MPIDIG_do_get:0x694340","MPIDIG_do_get:0x6a5600","MPIDIG_do_get:0x6c95f0","MPIDIG_do_get_accumulate.cold:0x356e2","MPIDIG_do_get_accumulate.cold:0x35a7f","MPIDIG_do_get_accumulate.cold:0x35fc5","MPIDIG_do_get_accumulate.cold:0x363e7","MPIDIG_do_get_accumulate.cold:0x3666b","MPIDIG_do_get_accumulate.cold:0x36a08","MPIDIG_do_get_accumulate.cold:0x370e5","MPIDIG_do_get_accumulate.cold:0x3765a","MPIDIG_do_get_accumulate.cold:0x37a9d","MPIDIG_do_get_accumulate.cold:0x37db3","MPIDIG_do_get_accumulate.cold:0x37fe7","MPIDIG_do_get_accumulate.cold:0x38342","MPIDIG_do_get_accumulate.cold:0x385af","MPIDIG_do_get_accumulate.cold:0x389bd","MPIDIG_do_get_accumulate.cold:0x38eb5","MPIDIG_do_get_accumulate.cold:0x39370","MPIDIG_do_get_accumulate.cold:0x39865","MPIDIG_do_get_accumulate.cold:0x39aba","MPIDIG_do_get_accumulate.cold:0x39cee","MPIDIG_do_get_accumulate.cold:0x39f22","MPIDIG_do_get_accumulate.cold:0x3a177","MPIDIG_do_get_accumulate.cold:0x3a3ab","MPIDIG_do_get_accumulate.cold:0x3a5ca","MPIDIG_do_get_accumulate.cold:0x3a7c8","MPIDIG_do_get_accumulate.cold:0x3aa17","MPIDIG_do_get_accumulate.cold:0x3ac36","MPIDIG_do_get_accumulate.cold:0x3ae6a","MPIDIG_do_get_accumulate.cold:0x3b09e","MPIDIG_do_get_accumulate.cold:0x3b2bd","MPIDIG_do_get_accumulate.cold:0x3d49d","MPIDIG_do_get_accumulate.cold:0x3d996","MPIDIG_do_get_accumulate.cold:0x3dba7","MPIDIG_do_get_accumulate.cold:0x3de12","MPIDIG_do_get_accumulate.cold:0x3e379","MPIDIG_do_get_accumulate.cold:0x3ef58","MPIDIG_do_get_accumulate.cold:0x3f2fe","MPIDIG_do_get_accumulate.cold:0x3f4fc","MPIDIG_do_get_accumulate.cold:0x3f71b","MPIDIG_do_get_accumulate.cold:0x3f9b2","MPIDIG_do_get_accumulate.cold:0x3fcfe","MPIDIG_do_get_accumulate.cold:0x4030d","MPIDIG_do_get_accumulate.cold:0x408c8","MPIDIG_do_get_accumulate.cold:0x40d0d","MPIDIG_do_get_accumulate.cold:0x41023","MPIDIG_do_get_accumulate.cold:0x415ee","MPIDIG_do_get_accumulate.cold:0x417ec","MPIDIG_do_get_accumulate.cold:0x41a3e","MPIDIG_do_get_accumulate.cold:0x41df8","MPIDIG_do_get_accumulate:0x127610","MPIDIG_do_get_accumulate:0x13bc90","MPIDIG_do_get_accumulate:0x15e660","MPIDIG_do_get_accumulate:0x175220","MPIDIG_do_get_accumulate:0x185840","MPIDIG_do_get_accumulate:0x19a7f0","MPIDIG_do_get_accumulate:0x1c1d60","MPIDIG_do_get_accumulate:0x1dec40","MPIDIG_do_get_accumulate:0x1f8a20","MPIDIG_do_get_accumulate:0x20f3e0","MPIDIG_do_get_accumulate:0x225580","MPIDIG_do_get_accumulate:0x2391b0","MPIDIG_do_get_accumulate:0x2490a0","MPIDIG_do_get_accumulate:0x263790","MPIDIG_do_get_accumulate:0x2813e0","MPIDIG_do_get_accumulate:0x29dbd0","MPIDIG_do_get_accumulate:0x2bf220","MPIDIG_do_get_accumulate:0x2d1630","MPIDIG_do_get_accumulate:0x2e0d80","MPIDIG_do_get_accumulate:0x2f05a0","MPIDIG_do_get_accumulate:0x2ffd00","MPIDIG_do_get_accumulate:0x30f4b0","MPIDIG_do_get_accumulate:0x31f210","MPIDIG_do_get_accumulate:0x32df50","MPIDIG_do_get_accumulate:0x340840","MPIDIG_do_get_accumulate:0x34f3e0","MPIDIG_do_get_accumulate:0x35e3a0","MPIDIG_do_get_accumulate:0x36ea70","MPIDIG_do_get_accumulate:0x37dd10","MPIDIG_do_get_accumulate:0x423320","MPIDIG_do_get_accumulate:0x466920","MPIDIG_do_get_accumulate:0x483610","MPIDIG_do_get_accumulate:0x49b460","MPIDIG_do_get_accumulate:0x4bf2d0","MPIDIG_do_get_accumulate:0x4fed50","MPIDIG_do_get_accumulate:0x515330","MPIDIG_do_get_accumulate:0x526950","MPIDIG_do_get_accumulate:0x537cd0","MPIDIG_do_get_accumulate:0x54f9d0","MPIDIG_do_get_accumulate:0x5711e0","MPIDIG_do_get_accumulate:0x5d8f30","MPIDIG_do_get_accumulate:0x604160","MPIDIG_do_get_accumulate:0x626110","MPIDIG_do_get_accumulate:0x63e250","MPIDIG_do_get_accumulate:0x67a580","MPIDIG_do_get_accumulate:0x695190","MPIDIG_do_get_accumulate:0x6a76e0","MPIDIG_do_get_accumulate:0x6ca440","MPIDIG_do_irecv.constprop.0.cold:0x35b56","MPIDIG_do_irecv.constprop.0.cold:0x36adf","MPIDIG_do_irecv.constprop.0.cold:0x379af","MPIDIG_do_irecv.constprop.0.cold:0x37cc5","MPIDIG_do_irecv.constprop.0.cold:0x3d8a8","MPIDIG_do_irecv.constprop.0.cold:0x3f210","MPIDIG_do_irecv.constprop.0.cold:0x3fc10","MPIDIG_do_irecv.constprop.0.cold:0x4021f","MPIDIG_do_irecv.constprop.0.cold:0x40c1f","MPIDIG_do_irecv.constprop.0.cold:0x40f35","MPIDIG_do_irecv.constprop.0.cold:0x41d0a","MPIDIG_do_irecv.constprop.0:0x1414a0","MPIDIG_do_irecv.constprop.0:0x1a0770","MPIDIG_do_irecv.constprop.0:0x1f41e0","MPIDIG_do_irecv.constprop.0:0x20aba0","MPIDIG_do_irecv.constprop.0:0x461b20","MPIDIG_do_irecv.constprop.0:0x486060","MPIDIG_do_irecv.constprop.0:0x510530","MPIDIG_do_irecv.constprop.0:0x56c160","MPIDIG_do_irecv.constprop.0:0x5d4000","MPIDIG_do_irecv.constprop.0:0x6218d0","MPIDIG_do_irecv.constprop.0:0x639a10","MPIDIG_do_irecv.constprop.0:0x6c5e60","MPIDIG_do_put.cold:0x35733","MPIDIG_do_put.cold:0x35ad0","MPIDIG_do_put.cold:0x36016","MPIDIG_do_put.cold:0x36438","MPIDIG_do_put.cold:0x366bc","MPIDIG_do_put.cold:0x36a59","MPIDIG_do_put.cold:0x37136","MPIDIG_do_put.cold:0x376ab","MPIDIG_do_put.cold:0x37aee","MPIDIG_do_put.cold:0x37e04","MPIDIG_do_put.cold:0x38038","MPIDIG_do_put.cold:0x38393","MPIDIG_do_put.cold:0x38600","MPIDIG_do_put.cold:0x38a0e","MPIDIG_do_put.cold:0x38c27","MPIDIG_do_put.cold:0x38f06","MPIDIG_do_put.cold:0x393c1","MPIDIG_do_put.cold:0x395d7","MPIDIG_do_put.cold:0x398b6","MPIDIG_do_put.cold:0x39b0b","MPIDIG_do_put.cold:0x39d3f","MPIDIG_do_put.cold:0x39f73","MPIDIG_do_put.cold:0x3a1c8","MPIDIG_do_put.cold:0x3a3fc","MPIDIG_do_put.cold:0x3a61b","MPIDIG_do_put.cold:0x3a819","MPIDIG_do_put.cold:0x3aa68","MPIDIG_do_put.cold:0x3ac87","MPIDIG_do_put.cold:0x3aebb","MPIDIG_do_put.cold:0x3b0ef","MPIDIG_do_put.cold:0x3b30e","MPIDIG_do_put.cold:0x3d4ee","MPIDIG_do_put.cold:0x3d9e7","MPIDIG_do_put.cold:0x3dbf8","MPIDIG_do_put.cold:0x3de63","MPIDIG_do_put.cold:0x3e3ca","MPIDIG_do_put.cold:0x3efa9","MPIDIG_do_put.cold:0x3f34f","MPIDIG_do_put.cold:0x3f54d","MPIDIG_do_put.cold:0x3f76c","MPIDIG_do_put.cold:0x3fa03","MPIDIG_do_put.cold:0x3fd4f","MPIDIG_do_put.cold:0x4035e","MPIDIG_do_put.cold:0x40919","MPIDIG_do_put.cold:0x40d5e","MPIDIG_do_put.cold:0x41074","MPIDIG_do_put.cold:0x4163f","MPIDIG_do_put.cold:0x4183d","MPIDIG_do_put.cold:0x4196f","MPIDIG_do_put.cold:0x41e49","MPIDIG_do_put:0x128bd0","MPIDIG_do_put:0x13d150","MPIDIG_do_put:0x15fc20","MPIDIG_do_put:0x1767e0","MPIDIG_do_put:0x186e00","MPIDIG_do_put:0x19bcb0","MPIDIG_do_put:0x1c3320","MPIDIG_do_put:0x1e0200","MPIDIG_do_put:0x1f9fd0","MPIDIG_do_put:0x210990","MPIDIG_do_put:0x226b30","MPIDIG_do_put:0x23a760","MPIDIG_do_put:0x24a650","MPIDIG_do_put:0x264d40","MPIDIG_do_put:0x271b30","MPIDIG_do_put:0x282990","MPIDIG_do_put:0x29f180","MPIDIG_do_put:0x2aca60","MPIDIG_do_put:0x2c07e0","MPIDIG_do_put:0x2d2be0","MPIDIG_do_put:0x2e2330","MPIDIG_do_put:0x2f1b50","MPIDIG_do_put:0x3012b0","MPIDIG_do_put:0x310a60","MPIDIG_do_put:0x3207d0","MPIDIG_do_put:0x32f510","MPIDIG_do_put:0x341df0","MPIDIG_do_put:0x350990","MPIDIG_do_put:0x35f960","MPIDIG_do_put:0x370030","MPIDIG_do_put:0x37f2c0","MPIDIG_do_put:0x4248d0","MPIDIG_do_put:0x467ee0","MPIDIG_do_put:0x484c20","MPIDIG_do_put:0x49ca10","MPIDIG_do_put:0x4c0880","MPIDIG_do_put:0x5002f0","MPIDIG_do_put:0x5168e0","MPIDIG_do_put:0x527f00","MPIDIG_do_put:0x539270","MPIDIG_do_put:0x550f70","MPIDIG_do_put:0x572790","MPIDIG_do_put:0x5da4e0","MPIDIG_do_put:0x605620","MPIDIG_do_put:0x6276c0","MPIDIG_do_put:0x63f800","MPIDIG_do_put:0x67bb30","MPIDIG_do_put:0x696740","MPIDIG_do_put:0x6a42d0","MPIDIG_do_put:0x6cba00","MPIDIG_generate_win_id","MPIDIG_get_acc_ack_origin_cb","MPIDIG_get_acc_ack_target_msg_cb","MPIDIG_get_acc_data_origin_cb","MPIDIG_get_acc_data_origin_cb.cold","MPIDIG_get_acc_data_target_msg_cb","MPIDIG_get_acc_dt_ack_target_msg_cb","MPIDIG_get_acc_dt_origin_cb","MPIDIG_get_acc_dt_origin_cb.cold","MPIDIG_get_acc_dt_target_msg_cb","MPIDIG_get_acc_origin_cb","MPIDIG_get_acc_target_msg_cb","MPIDIG_get_ack_origin_cb","MPIDIG_get_ack_origin_cb.cold","MPIDIG_get_ack_target_msg_cb","MPIDIG_get_context_index","MPIDIG_get_origin_cb","MPIDIG_get_target_msg_cb","MPIDIG_handle_unexpected","MPIDIG_handle_unexpected.cold","MPIDIG_init_comm","MPIDIG_isend_impl.cold:0x3796d","MPIDIG_isend_impl.cold:0x37c83","MPIDIG_isend_impl.cold:0x3d866","MPIDIG_isend_impl.cold:0x40bdd","MPIDIG_isend_impl.cold:0x40ef3","MPIDIG_isend_impl.constprop.0.cold:0x35ce0","MPIDIG_isend_impl.constprop.0.cold:0x35f07","MPIDIG_isend_impl.constprop.0.cold:0x36329","MPIDIG_isend_impl.constprop.0.cold:0x36d17","MPIDIG_isend_impl.constprop.0.cold:0x37027","MPIDIG_isend_impl.constprop.0.cold:0x3759c","MPIDIG_isend_impl.constprop.0.cold:0x3f1ce","MPIDIG_isend_impl.constprop.0.cold:0x3fbce","MPIDIG_isend_impl.constprop.0.cold:0x401dd","MPIDIG_isend_impl.constprop.0.cold:0x41cc8","MPIDIG_isend_impl.constprop.0:0x14ba40","MPIDIG_isend_impl.constprop.0:0x159bf0","MPIDIG_isend_impl.constprop.0:0x1707b0","MPIDIG_isend_impl.constprop.0:0x1ac700","MPIDIG_isend_impl.constprop.0:0x1bd2f0","MPIDIG_isend_impl.constprop.0:0x1da1d0","MPIDIG_isend_impl.constprop.0:0x50dbb0","MPIDIG_isend_impl.constprop.0:0x523a50","MPIDIG_isend_impl.constprop.0:0x5697e0","MPIDIG_isend_impl.constprop.0:0x5d1680","MPIDIG_isend_impl.constprop.0:0x6c34e0","MPIDIG_isend_impl:0x1f1840","MPIDIG_isend_impl:0x208200","MPIDIG_isend_impl:0x45f180","MPIDIG_isend_impl:0x61ef30","MPIDIG_isend_impl:0x637070","MPIDIG_mpi_accumulate.part.0:0x21b3a0","MPIDIG_mpi_accumulate.part.0:0x277200","MPIDIG_mpi_alloc_mem","MPIDIG_mpi_cancel_recv.part.0.cold:0x355c1","MPIDIG_mpi_cancel_recv.part.0.cold:0x3595e","MPIDIG_mpi_cancel_recv.part.0.cold:0x35e20","MPIDIG_mpi_cancel_recv.part.0.cold:0x36242","MPIDIG_mpi_cancel_recv.part.0.cold:0x3654a","MPIDIG_mpi_cancel_recv.part.0.cold:0x368e7","MPIDIG_mpi_cancel_recv.part.0.cold:0x36f40","MPIDIG_mpi_cancel_recv.part.0.cold:0x37262","MPIDIG_mpi_cancel_recv.part.0.cold:0x374b5","MPIDIG_mpi_cancel_recv.part.0.cold:0x37886","MPIDIG_mpi_cancel_recv.part.0.cold:0x37b9c","MPIDIG_mpi_cancel_recv.part.0.cold:0x37e90","MPIDIG_mpi_cancel_recv.part.0.cold:0x381eb","MPIDIG_mpi_cancel_recv.part.0.cold:0x38458","MPIDIG_mpi_cancel_recv.part.0.cold:0x38866","MPIDIG_mpi_cancel_recv.part.0.cold:0x38d5e","MPIDIG_mpi_cancel_recv.part.0.cold:0x39219","MPIDIG_mpi_cancel_recv.part.0.cold:0x3970e","MPIDIG_mpi_cancel_recv.part.0.cold:0x39963","MPIDIG_mpi_cancel_recv.part.0.cold:0x39b97","MPIDIG_mpi_cancel_recv.part.0.cold:0x39dcb","MPIDIG_mpi_cancel_recv.part.0.cold:0x3a020","MPIDIG_mpi_cancel_recv.part.0.cold:0x3a254","MPIDIG_mpi_cancel_recv.part.0.cold:0x3a4a9","MPIDIG_mpi_cancel_recv.part.0.cold:0x3a6a7","MPIDIG_mpi_cancel_recv.part.0.cold:0x3a8f6","MPIDIG_mpi_cancel_recv.part.0.cold:0x3ab15","MPIDIG_mpi_cancel_recv.part.0.cold:0x3ad13","MPIDIG_mpi_cancel_recv.part.0.cold:0x3af47","MPIDIG_mpi_cancel_recv.part.0.cold:0x3b19c","MPIDIG_mpi_cancel_recv.part.0.cold:0x3d37c","MPIDIG_mpi_cancel_recv.part.0.cold:0x3d77f","MPIDIG_mpi_cancel_recv.part.0.cold:0x3dc6c","MPIDIG_mpi_cancel_recv.part.0.cold:0x3dcf1","MPIDIG_mpi_cancel_recv.part.0.cold:0x3e258","MPIDIG_mpi_cancel_recv.part.0.cold:0x3ee37","MPIDIG_mpi_cancel_recv.part.0.cold:0x3f0e7","MPIDIG_mpi_cancel_recv.part.0.cold:0x3f3db","MPIDIG_mpi_cancel_recv.part.0.cold:0x3f5fa","MPIDIG_mpi_cancel_recv.part.0.cold:0x3f7f4","MPIDIG_mpi_cancel_recv.part.0.cold:0x3f891","MPIDIG_mpi_cancel_recv.part.0.cold:0x3fae7","MPIDIG_mpi_cancel_recv.part.0.cold:0x400f6","MPIDIG_mpi_cancel_recv.part.0.cold:0x40405","MPIDIG_mpi_cancel_recv.part.0.cold:0x407a7","MPIDIG_mpi_cancel_recv.part.0.cold:0x40af6","MPIDIG_mpi_cancel_recv.part.0.cold:0x40e0c","MPIDIG_mpi_cancel_recv.part.0.cold:0x410f9","MPIDIG_mpi_cancel_recv.part.0.cold:0x41163","MPIDIG_mpi_cancel_recv.part.0.cold:0x412d9","MPIDIG_mpi_cancel_recv.part.0.cold:0x413ae","MPIDIG_mpi_cancel_recv.part.0.cold:0x4141f","MPIDIG_mpi_cancel_recv.part.0.cold:0x41497","MPIDIG_mpi_cancel_recv.part.0.cold:0x416cb","MPIDIG_mpi_cancel_recv.part.0.cold:0x418eb","MPIDIG_mpi_cancel_recv.part.0.cold:0x41bba","MPIDIG_mpi_cancel_recv.part.0:0x121d30","MPIDIG_mpi_cancel_recv.part.0:0x136230","MPIDIG_mpi_cancel_recv.part.0:0x156020","MPIDIG_mpi_cancel_recv.part.0:0x16cbe0","MPIDIG_mpi_cancel_recv.part.0:0x17ff60","MPIDIG_mpi_cancel_recv.part.0:0x194d90","MPIDIG_mpi_cancel_recv.part.0:0x1b9710","MPIDIG_mpi_cancel_recv.part.0:0x1c99d0","MPIDIG_mpi_cancel_recv.part.0:0x1d65f0","MPIDIG_mpi_cancel_recv.part.0:0x1edb60","MPIDIG_mpi_cancel_recv.part.0:0x204520","MPIDIG_mpi_cancel_recv.part.0:0x21f790","MPIDIG_mpi_cancel_recv.part.0:0x232cb0","MPIDIG_mpi_cancel_recv.part.0:0x2432b0","MPIDIG_mpi_cancel_recv.part.0:0x25d9a0","MPIDIG_mpi_cancel_recv.part.0:0x27b5f0","MPIDIG_mpi_cancel_recv.part.0:0x297de0","MPIDIG_mpi_cancel_recv.part.0:0x2b9410","MPIDIG_mpi_cancel_recv.part.0:0x2cb840","MPIDIG_mpi_cancel_recv.part.0:0x2daf90","MPIDIG_mpi_cancel_recv.part.0:0x2ea7b0","MPIDIG_mpi_cancel_recv.part.0:0x2f9f10","MPIDIG_mpi_cancel_recv.part.0:0x3096c0","MPIDIG_mpi_cancel_recv.part.0:0x31a1c0","MPIDIG_mpi_cancel_recv.part.0:0x328f00","MPIDIG_mpi_cancel_recv.part.0:0x33b810","MPIDIG_mpi_cancel_recv.part.0:0x34a3b0","MPIDIG_mpi_cancel_recv.part.0:0x358590","MPIDIG_mpi_cancel_recv.part.0:0x368c60","MPIDIG_mpi_cancel_recv.part.0:0x378ce0","MPIDIG_mpi_cancel_recv.part.0:0x41e2e0","MPIDIG_mpi_cancel_recv.part.0:0x45aa40","MPIDIG_mpi_cancel_recv.part.0:0x488270","MPIDIG_mpi_cancel_recv.part.0:0x496430","MPIDIG_mpi_cancel_recv.part.0:0x4ba2a0","MPIDIG_mpi_cancel_recv.part.0:0x4f9d20","MPIDIG_mpi_cancel_recv.part.0:0x509fd0","MPIDIG_mpi_cancel_recv.part.0:0x521110","MPIDIG_mpi_cancel_recv.part.0:0x5329a0","MPIDIG_mpi_cancel_recv.part.0:0x543d70","MPIDIG_mpi_cancel_recv.part.0:0x54a9a0","MPIDIG_mpi_cancel_recv.part.0:0x565c00","MPIDIG_mpi_cancel_recv.part.0:0x5cdab0","MPIDIG_mpi_cancel_recv.part.0:0x5e4e00","MPIDIG_mpi_cancel_recv.part.0:0x5ff160","MPIDIG_mpi_cancel_recv.part.0:0x61b250","MPIDIG_mpi_cancel_recv.part.0:0x633390","MPIDIG_mpi_cancel_recv.part.0:0x645b30","MPIDIG_mpi_cancel_recv.part.0:0x64f640","MPIDIG_mpi_cancel_recv.part.0:0x65f040","MPIDIG_mpi_cancel_recv.part.0:0x6643e0","MPIDIG_mpi_cancel_recv.part.0:0x668530","MPIDIG_mpi_cancel_recv.part.0:0x673590","MPIDIG_mpi_cancel_recv.part.0:0x690150","MPIDIG_mpi_cancel_recv.part.0:0x6a06d0","MPIDIG_mpi_cancel_recv.part.0:0x6bf210","MPIDIG_mpi_compare_and_swap","MPIDIG_mpi_fetch_and_op.part.0","MPIDIG_mpi_free_mem","MPIDIG_mpi_get.part.0","MPIDIG_mpi_get_accumulate.part.0:0x23ee90","MPIDIG_mpi_get_accumulate.part.0:0x2595b0","MPIDIG_mpi_get_accumulate.part.0:0x2939f0","MPIDIG_mpi_improbe.constprop.0:0x11df70","MPIDIG_mpi_improbe.constprop.0:0x17c1a0","MPIDIG_mpi_imrecv.cold:0x357b9","MPIDIG_mpi_imrecv.cold:0x36742","MPIDIG_mpi_imrecv:0x12ced0","MPIDIG_mpi_imrecv:0x18b8a0","MPIDIG_mpi_irecv.part.0:0x140440","MPIDIG_mpi_irecv.part.0:0x19f660","MPIDIG_mpi_irecv.part.0:0x1e8f40","MPIDIG_mpi_irecv.part.0:0x1ff8d0","MPIDIG_mpi_irecv.part.0:0x455bf0","MPIDIG_mpi_irecv.part.0:0x477230","MPIDIG_mpi_irecv.part.0:0x505290","MPIDIG_mpi_irecv.part.0:0x560220","MPIDIG_mpi_irecv.part.0:0x5c8e90","MPIDIG_mpi_irecv.part.0:0x6165a0","MPIDIG_mpi_irecv.part.0:0x62e770","MPIDIG_mpi_irecv.part.0:0x6ba320","MPIDIG_mpi_parrived.constprop.0.isra.0","MPIDIG_mpi_precv_init","MPIDIG_mpi_psend_init","MPIDIG_mpi_psend_init.cold","MPIDIG_mpi_put.part.0","MPIDIG_mpi_raccumulate.part.0","MPIDIG_mpi_rget.part.0","MPIDIG_mpi_rget_accumulate.part.0","MPIDIG_mpi_rput.part.0","MPIDIG_mpi_win_allocate","MPIDIG_mpi_win_allocate_shared","MPIDIG_mpi_win_attach","MPIDIG_mpi_win_create","MPIDIG_mpi_win_create_dynamic","MPIDIG_mpi_win_detach","MPIDIG_mpi_win_free","MPIDIG_mpi_win_get_info","MPIDIG_mpi_win_set_info","MPIDIG_part_cts_target_msg_cb","MPIDIG_part_cts_target_msg_cb.cold","MPIDIG_part_issue_data.constprop.0.cold:0x3526f","MPIDIG_part_issue_data.constprop.0.cold:0x352e1","MPIDIG_part_issue_data.constprop.0.cold:0x35353","MPIDIG_part_issue_data.constprop.0:0x10a110","MPIDIG_part_issue_data.constprop.0:0x10f390","MPIDIG_part_issue_data.constprop.0:0x114750","MPIDIG_part_send_data_origin_cb","MPIDIG_part_send_data_target_msg_cb","MPIDIG_part_send_data_target_msg_cb.cold","MPIDIG_part_send_init_target_msg_cb","MPIDIG_precv_matched","MPIDIG_precv_matched.cold","MPIDIG_put_ack_origin_cb","MPIDIG_put_ack_target_msg_cb","MPIDIG_put_data_origin_cb","MPIDIG_put_data_origin_cb.cold","MPIDIG_put_data_target_msg_cb","MPIDIG_put_dt_ack_target_msg_cb","MPIDIG_put_dt_origin_cb","MPIDIG_put_dt_origin_cb.cold","MPIDIG_put_dt_target_msg_cb","MPIDIG_put_origin_cb","MPIDIG_put_target_msg_cb","MPIDIG_recv_check_rndv_cb.part.0","MPIDIG_recv_copy:0x5dfe60","MPIDIG_recv_copy:0x5e8920","MPIDIG_recv_copy_seg","MPIDIG_recv_setup:0x65df00","MPIDIG_recv_setup:0x66b2e0","MPIDIG_recv_type_init.cold:0x35b34","MPIDIG_recv_type_init.cold:0x36abd","MPIDIG_recv_type_init.cold:0x37843","MPIDIG_recv_type_init.cold:0x37b59","MPIDIG_recv_type_init.cold:0x3d73c","MPIDIG_recv_type_init.cold:0x3dac7","MPIDIG_recv_type_init.cold:0x3f0a4","MPIDIG_recv_type_init.cold:0x3fa90","MPIDIG_recv_type_init.cold:0x400b3","MPIDIG_recv_type_init.cold:0x40ab3","MPIDIG_recv_type_init.cold:0x40dc9","MPIDIG_recv_type_init.cold:0x41b77","MPIDIG_recv_type_init.isra.0.cold:0x35797","MPIDIG_recv_type_init.isra.0.cold:0x36720","MPIDIG_recv_type_init.isra.0.cold:0x403c2","MPIDIG_recv_type_init.isra.0.cold:0x4053d","MPIDIG_recv_type_init.isra.0:0x12cbf0","MPIDIG_recv_type_init.isra.0:0x18b5c0","MPIDIG_recv_type_init.isra.0:0x5e2240","MPIDIG_recv_type_init.isra.0:0x5eb530","MPIDIG_recv_type_init:0x1411b0","MPIDIG_recv_type_init:0x1a0470","MPIDIG_recv_type_init:0x1eb730","MPIDIG_recv_type_init:0x2020f0","MPIDIG_recv_type_init:0x458600","MPIDIG_recv_type_init:0x480110","MPIDIG_recv_type_init:0x507b90","MPIDIG_recv_type_init:0x5630e0","MPIDIG_recv_type_init:0x5ca5f0","MPIDIG_recv_type_init:0x618e20","MPIDIG_recv_type_init:0x630f60","MPIDIG_recv_type_init:0x6bcdd0","MPIDIG_recvq_init","MPIDIG_reply_ssend.part.0","MPIDIG_request_create.constprop.0:0x1326c0","MPIDIG_request_create.constprop.0:0x191220","MPIDIG_request_create.constprop.0:0x5fa1a0","MPIDIG_send_cts_target_msg_cb","MPIDIG_send_cts_target_msg_cb.cold","MPIDIG_send_data_origin_cb","MPIDIG_send_data_origin_cb.cold","MPIDIG_send_data_target_msg_cb","MPIDIG_send_origin_cb","MPIDIG_send_target_msg_cb","MPIDIG_send_target_msg_cb.cold","MPIDIG_ssend_ack_target_msg_cb","MPIDIG_win_complete_target_msg_cb","MPIDIG_win_lock_ack_target_msg_cb","MPIDIG_win_lock_target_msg_cb","MPIDIG_win_lockall_ack_target_msg_cb","MPIDIG_win_lockall_target_msg_cb","MPIDIG_win_post_target_msg_cb","MPIDIG_win_target_add:0x11f0f0","MPIDIG_win_target_add:0x1335f0","MPIDIG_win_target_add:0x152e50","MPIDIG_win_target_add:0x169a10","MPIDIG_win_target_add:0x17d320","MPIDIG_win_target_add:0x192150","MPIDIG_win_target_add:0x1b6540","MPIDIG_win_target_add:0x1d3420","MPIDIG_win_target_add:0x1ea6a0","MPIDIG_win_target_add:0x201060","MPIDIG_win_target_add:0x21cb50","MPIDIG_win_target_add:0x230070","MPIDIG_win_target_add:0x240670","MPIDIG_win_target_add:0x25ad60","MPIDIG_win_target_add:0x2789b0","MPIDIG_win_target_add:0x2951a0","MPIDIG_win_target_add:0x2b63b0","MPIDIG_win_target_add:0x2c8c00","MPIDIG_win_target_add:0x2d8350","MPIDIG_win_target_add:0x2e7b70","MPIDIG_win_target_add:0x2f72d0","MPIDIG_win_target_add:0x306a80","MPIDIG_win_target_add:0x317580","MPIDIG_win_target_add:0x3262c0","MPIDIG_win_target_add:0x338bd0","MPIDIG_win_target_add:0x347770","MPIDIG_win_target_add:0x355950","MPIDIG_win_target_add:0x366020","MPIDIG_win_target_add:0x3760a0","MPIDIG_win_target_add:0x41b6a0","MPIDIG_win_target_add:0x457570","MPIDIG_win_target_add:0x4784a0","MPIDIG_win_target_add:0x4937f0","MPIDIG_win_target_add:0x4b7660","MPIDIG_win_target_add:0x4f70e0","MPIDIG_win_target_add:0x506b00","MPIDIG_win_target_add:0x51df40","MPIDIG_win_target_add:0x52fc30","MPIDIG_win_target_add:0x547d60","MPIDIG_win_target_add:0x561c20","MPIDIG_win_target_add:0x5ca8e0","MPIDIG_win_target_add:0x5fa640","MPIDIG_win_target_add:0x617d90","MPIDIG_win_target_add:0x62fed0","MPIDIG_win_target_add:0x66ff70","MPIDIG_win_target_add:0x68d510","MPIDIG_win_target_add:0x69e5f0","MPIDIG_win_target_add:0x6bbd40","MPIDIG_win_target_find:0x11d950","MPIDIG_win_target_find:0x131df0","MPIDIG_win_target_find:0x1514d0","MPIDIG_win_target_find:0x168090","MPIDIG_win_target_find:0x17bb80","MPIDIG_win_target_find:0x190950","MPIDIG_win_target_find:0x1b4b20","MPIDIG_win_target_find:0x1d1a00","MPIDIG_win_target_find:0x1e8dc0","MPIDIG_win_target_find:0x1ff780","MPIDIG_win_target_find:0x21af90","MPIDIG_win_target_find:0x22e4e0","MPIDIG_win_target_find:0x23ea80","MPIDIG_win_target_find:0x250640","MPIDIG_win_target_find:0x2591a0","MPIDIG_win_target_find:0x26d230","MPIDIG_win_target_find:0x276dc0","MPIDIG_win_target_find:0x28a530","MPIDIG_win_target_find:0x2935b0","MPIDIG_win_target_find:0x2a7d00","MPIDIG_win_target_find:0x2b49d0","MPIDIG_win_target_find:0x2c7040","MPIDIG_win_target_find:0x2d6790","MPIDIG_win_target_find:0x2e5fb0","MPIDIG_win_target_find:0x2f5710","MPIDIG_win_target_find:0x304ec0","MPIDIG_win_target_find:0x315ae0","MPIDIG_win_target_find:0x324970","MPIDIG_win_target_find:0x337370","MPIDIG_win_target_find:0x346200","MPIDIG_win_target_find:0x353b50","MPIDIG_win_target_find:0x364510","MPIDIG_win_target_find:0x374840","MPIDIG_win_target_find:0x419e20","MPIDIG_win_target_find:0x455aa0","MPIDIG_win_target_find:0x476f70","MPIDIG_win_target_find:0x492280","MPIDIG_win_target_find:0x4b6090","MPIDIG_win_target_find:0x4f5b30","MPIDIG_win_target_find:0x504fd0","MPIDIG_win_target_find:0x51bfe0","MPIDIG_win_target_find:0x52dd00","MPIDIG_win_target_find:0x5467b0","MPIDIG_win_target_find:0x55ff30","MPIDIG_win_target_find:0x5c8ba0","MPIDIG_win_target_find:0x5e8600","MPIDIG_win_target_find:0x5f8fb0","MPIDIG_win_target_find:0x6163c0","MPIDIG_win_target_find:0x62e5f0","MPIDIG_win_target_find:0x66dd10","MPIDIG_win_target_find:0x68bcd0","MPIDIG_win_target_find:0x69d040","MPIDIG_win_target_find:0x6b9db0","MPIDIG_win_unlock_ack_target_msg_cb","MPIDIG_win_unlock_target_msg_cb","MPIDIG_win_unlockall_ack_target_msg_cb","MPIDIG_win_unlockall_target_msg_cb","MPIDIU_Intercomm_map_bcast_intra","MPIDIU_alloc_lut","MPIDIU_alloc_mlut","MPIDIU_avt_add_ref","MPIDIU_avt_destroy","MPIDIU_avt_init","MPIDIU_avt_release_ref","MPIDIU_comm_rank_to_av.cold:0x35247","MPIDIU_comm_rank_to_av.cold:0x352b9","MPIDIU_comm_rank_to_av.cold:0x3532b","MPIDIU_comm_rank_to_av.cold:0x35592","MPIDIU_comm_rank_to_av.cold:0x35790","MPIDIU_comm_rank_to_av.cold:0x3592f","MPIDIU_comm_rank_to_av.cold:0x35b2d","MPIDIU_comm_rank_to_av.cold:0x35c6f","MPIDIU_comm_rank_to_av.cold:0x35df1","MPIDIU_comm_rank_to_av.cold:0x36213","MPIDIU_comm_rank_to_av.cold:0x3651b","MPIDIU_comm_rank_to_av.cold:0x36719","MPIDIU_comm_rank_to_av.cold:0x368b8","MPIDIU_comm_rank_to_av.cold:0x36ab6","MPIDIU_comm_rank_to_av.cold:0x36bf8","MPIDIU_comm_rank_to_av.cold:0x36ce8","MPIDIU_comm_rank_to_av.cold:0x36f11","MPIDIU_comm_rank_to_av.cold:0x37219","MPIDIU_comm_rank_to_av.cold:0x37486","MPIDIU_comm_rank_to_av.cold:0x37835","MPIDIU_comm_rank_to_av.cold:0x37b4b","MPIDIU_comm_rank_to_av.cold:0x37e61","MPIDIU_comm_rank_to_av.cold:0x381bc","MPIDIU_comm_rank_to_av.cold:0x38429","MPIDIU_comm_rank_to_av.cold:0x386df","MPIDIU_comm_rank_to_av.cold:0x38837","MPIDIU_comm_rank_to_av.cold:0x38bb6","MPIDIU_comm_rank_to_av.cold:0x38d2f","MPIDIU_comm_rank_to_av.cold:0x39092","MPIDIU_comm_rank_to_av.cold:0x391ea","MPIDIU_comm_rank_to_av.cold:0x39566","MPIDIU_comm_rank_to_av.cold:0x396df","MPIDIU_comm_rank_to_av.cold:0x39934","MPIDIU_comm_rank_to_av.cold:0x39b68","MPIDIU_comm_rank_to_av.cold:0x39d9c","MPIDIU_comm_rank_to_av.cold:0x39ff1","MPIDIU_comm_rank_to_av.cold:0x3a225","MPIDIU_comm_rank_to_av.cold:0x3a47a","MPIDIU_comm_rank_to_av.cold:0x3a678","MPIDIU_comm_rank_to_av.cold:0x3a876","MPIDIU_comm_rank_to_av.cold:0x3a8c7","MPIDIU_comm_rank_to_av.cold:0x3aae6","MPIDIU_comm_rank_to_av.cold:0x3ace4","MPIDIU_comm_rank_to_av.cold:0x3af18","MPIDIU_comm_rank_to_av.cold:0x3b16d","MPIDIU_comm_rank_to_av.cold:0x3d34d","MPIDIU_comm_rank_to_av.cold:0x3d72e","MPIDIU_comm_rank_to_av.cold:0x3da98","MPIDIU_comm_rank_to_av.cold:0x3dcc2","MPIDIU_comm_rank_to_av.cold:0x3e1d5","MPIDIU_comm_rank_to_av.cold:0x3e229","MPIDIU_comm_rank_to_av.cold:0x3ee08","MPIDIU_comm_rank_to_av.cold:0x3f096","MPIDIU_comm_rank_to_av.cold:0x3f3ac","MPIDIU_comm_rank_to_av.cold:0x3f5aa","MPIDIU_comm_rank_to_av.cold:0x3f862","MPIDIU_comm_rank_to_av.cold:0x3fa60","MPIDIU_comm_rank_to_av.cold:0x3fec1","MPIDIU_comm_rank_to_av.cold:0x400a5","MPIDIU_comm_rank_to_av.cold:0x40536","MPIDIU_comm_rank_to_av.cold:0x40778","MPIDIU_comm_rank_to_av.cold:0x40998","MPIDIU_comm_rank_to_av.cold:0x40a0b","MPIDIU_comm_rank_to_av.cold:0x40a7d","MPIDIU_comm_rank_to_av.cold:0x40aa5","MPIDIU_comm_rank_to_av.cold:0x40dbb","MPIDIU_comm_rank_to_av.cold:0x410d1","MPIDIU_comm_rank_to_av.cold:0x412b1","MPIDIU_comm_rank_to_av.cold:0x413a7","MPIDIU_comm_rank_to_av.cold:0x41468","MPIDIU_comm_rank_to_av.cold:0x4169c","MPIDIU_comm_rank_to_av.cold:0x4189a","MPIDIU_comm_rank_to_av.cold:0x41b69","MPIDIU_comm_rank_to_av:0x106aa0","MPIDIU_comm_rank_to_av:0x10bd20","MPIDIU_comm_rank_to_av:0x1110e0","MPIDIU_comm_rank_to_av:0x11d380","MPIDIU_comm_rank_to_av:0x12c330","MPIDIU_comm_rank_to_av:0x131820","MPIDIU_comm_rank_to_av:0x140160","MPIDIU_comm_rank_to_av:0x1464e0","MPIDIU_comm_rank_to_av:0x1510a0","MPIDIU_comm_rank_to_av:0x167c60","MPIDIU_comm_rank_to_av:0x17b5b0","MPIDIU_comm_rank_to_av:0x18aca0","MPIDIU_comm_rank_to_av:0x190380","MPIDIU_comm_rank_to_av:0x19f380","MPIDIU_comm_rank_to_av:0x1a5850","MPIDIU_comm_rank_to_av:0x1a7cb0","MPIDIU_comm_rank_to_av:0x1b46f0","MPIDIU_comm_rank_to_av:0x1c80f0","MPIDIU_comm_rank_to_av:0x1d15d0","MPIDIU_comm_rank_to_av:0x1e87f0","MPIDIU_comm_rank_to_av:0x1ff1b0","MPIDIU_comm_rank_to_av:0x21acb0","MPIDIU_comm_rank_to_av:0x22e200","MPIDIU_comm_rank_to_av:0x23e7a0","MPIDIU_comm_rank_to_av:0x250360","MPIDIU_comm_rank_to_av:0x258ec0","MPIDIU_comm_rank_to_av:0x26cf50","MPIDIU_comm_rank_to_av:0x276ae0","MPIDIU_comm_rank_to_av:0x28a250","MPIDIU_comm_rank_to_av:0x2932d0","MPIDIU_comm_rank_to_av:0x2a7a20","MPIDIU_comm_rank_to_av:0x2b46f0","MPIDIU_comm_rank_to_av:0x2c6d60","MPIDIU_comm_rank_to_av:0x2d64b0","MPIDIU_comm_rank_to_av:0x2e5cd0","MPIDIU_comm_rank_to_av:0x2f5430","MPIDIU_comm_rank_to_av:0x304be0","MPIDIU_comm_rank_to_av:0x315800","MPIDIU_comm_rank_to_av:0x324540","MPIDIU_comm_rank_to_av:0x333170","MPIDIU_comm_rank_to_av:0x337090","MPIDIU_comm_rank_to_av:0x345c30","MPIDIU_comm_rank_to_av:0x353870","MPIDIU_comm_rank_to_av:0x363f40","MPIDIU_comm_rank_to_av:0x374560","MPIDIU_comm_rank_to_av:0x419850","MPIDIU_comm_rank_to_av:0x4554d0","MPIDIU_comm_rank_to_av:0x476b40","MPIDIU_comm_rank_to_av:0x491cb0","MPIDIU_comm_rank_to_av:0x4b2fb0","MPIDIU_comm_rank_to_av:0x4b5ac0","MPIDIU_comm_rank_to_av:0x4f5560","MPIDIU_comm_rank_to_av:0x504ba0","MPIDIU_comm_rank_to_av:0x51ba10","MPIDIU_comm_rank_to_av:0x52d730","MPIDIU_comm_rank_to_av:0x5461e0","MPIDIU_comm_rank_to_av:0x55fb00","MPIDIU_comm_rank_to_av:0x5c3ff0","MPIDIU_comm_rank_to_av:0x5c8770","MPIDIU_comm_rank_to_av:0x5e8320","MPIDIU_comm_rank_to_av:0x5f90a0","MPIDIU_comm_rank_to_av:0x609ed0","MPIDIU_comm_rank_to_av:0x60c1f0","MPIDIU_comm_rank_to_av:0x612590","MPIDIU_comm_rank_to_av:0x615df0","MPIDIU_comm_rank_to_av:0x62e020","MPIDIU_comm_rank_to_av:0x6448b0","MPIDIU_comm_rank_to_av:0x65dc20","MPIDIU_comm_rank_to_av:0x663b50","MPIDIU_comm_rank_to_av:0x66d780","MPIDIU_comm_rank_to_av:0x68b700","MPIDIU_comm_rank_to_av:0x69ca70","MPIDIU_comm_rank_to_av:0x6b97e0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x11e190","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x132410","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1404a0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x151cc0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x168880","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x17c3c0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x190f70","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x19f750","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1b53a0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1d2280","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1e94e0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x1ffea0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x21b900","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x22ee20","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x23f420","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x250a40","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x259b10","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x26d640","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x277760","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x28a960","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x293f50","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2a8140","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2b5340","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2c79b0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2d7100","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2e6920","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x2f6080","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x305830","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x3163f0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x325130","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x337c80","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x346820","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x3544c0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x364b90","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x375150","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x41a720","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4561e0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4777d0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4928a0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4b6710","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x4f6190","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5058f0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x51c670","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x52ea50","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x546e10","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x560850","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5bc490","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5c9430","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5e0640","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5e8e20","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x5f9a90","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x60c7e0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x616b40","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x62ed10","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x66e6f0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x68c590","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x69d6a0","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x6b6e70","MPIDIU_comm_rank_to_pid.constprop.0.isra.0:0x6ba880","MPIDIU_comm_rank_to_pid.isra.0","MPIDIU_free_avt","MPIDIU_get_avt_size","MPIDIU_get_n_avts","MPIDIU_get_node_id","MPIDIU_get_node_id.cold","MPIDIU_map_destroy","MPIDIU_map_lookup:0x106f10","MPIDIU_map_lookup:0x10c190","MPIDIU_map_lookup:0x111550","MPIDIU_map_lookup:0x11d800","MPIDIU_map_lookup:0x131ca0","MPIDIU_map_lookup:0x1467c0","MPIDIU_map_lookup:0x151380","MPIDIU_map_lookup:0x167f40","MPIDIU_map_lookup:0x17ba30","MPIDIU_map_lookup:0x190800","MPIDIU_map_lookup:0x1a7f90","MPIDIU_map_lookup:0x1b49d0","MPIDIU_map_lookup:0x1c83d0","MPIDIU_map_lookup:0x1d18b0","MPIDIU_map_lookup:0x1e8c70","MPIDIU_map_lookup:0x1ff630","MPIDIU_map_lookup:0x21b080","MPIDIU_map_lookup:0x22e5d0","MPIDIU_map_lookup:0x23eb70","MPIDIU_map_lookup:0x250730","MPIDIU_map_lookup:0x259290","MPIDIU_map_lookup:0x26d320","MPIDIU_map_lookup:0x276eb0","MPIDIU_map_lookup:0x28a620","MPIDIU_map_lookup:0x2936a0","MPIDIU_map_lookup:0x2a7df0","MPIDIU_map_lookup:0x2b4ac0","MPIDIU_map_lookup:0x2c7130","MPIDIU_map_lookup:0x2d6880","MPIDIU_map_lookup:0x2e60a0","MPIDIU_map_lookup:0x2f5800","MPIDIU_map_lookup:0x304fb0","MPIDIU_map_lookup:0x315bd0","MPIDIU_map_lookup:0x324820","MPIDIU_map_lookup:0x337460","MPIDIU_map_lookup:0x3460b0","MPIDIU_map_lookup:0x353c40","MPIDIU_map_lookup:0x3643c0","MPIDIU_map_lookup:0x374930","MPIDIU_map_lookup:0x419cd0","MPIDIU_map_lookup:0x455950","MPIDIU_map_lookup:0x476e20","MPIDIU_map_lookup:0x492130","MPIDIU_map_lookup:0x4b5f40","MPIDIU_map_lookup:0x4f59e0","MPIDIU_map_lookup:0x504e80","MPIDIU_map_lookup:0x51be90","MPIDIU_map_lookup:0x52dbb0","MPIDIU_map_lookup:0x546660","MPIDIU_map_lookup:0x55fde0","MPIDIU_map_lookup:0x5c8a50","MPIDIU_map_lookup:0x5dfd10","MPIDIU_map_lookup:0x5e87d0","MPIDIU_map_lookup:0x5f8e60","MPIDIU_map_lookup:0x60c4d0","MPIDIU_map_lookup:0x612a00","MPIDIU_map_lookup:0x616270","MPIDIU_map_lookup:0x62e4a0","MPIDIU_map_lookup:0x644b90","MPIDIU_map_lookup:0x64c8c0","MPIDIU_map_lookup:0x65e050","MPIDIU_map_lookup:0x6674c0","MPIDIU_map_lookup:0x66de00","MPIDIU_map_lookup:0x68bb80","MPIDIU_map_lookup:0x69cef0","MPIDIU_map_lookup:0x6b9c60","MPIDIU_map_set_unsafe","MPIDIU_map_set_unsafe.constprop.0","MPIDIU_map_update.constprop.0.isra.0:0x107370","MPIDIU_map_update.constprop.0.isra.0:0x10c5f0","MPIDIU_map_update.constprop.0.isra.0:0x1119b0","MPIDIU_map_update.constprop.0.isra.0:0x11f590","MPIDIU_map_update.constprop.0.isra.0:0x133a90","MPIDIU_map_update.constprop.0.isra.0:0x147970","MPIDIU_map_update.constprop.0.isra.0:0x1532f0","MPIDIU_map_update.constprop.0.isra.0:0x169eb0","MPIDIU_map_update.constprop.0.isra.0:0x17d7c0","MPIDIU_map_update.constprop.0.isra.0:0x1925f0","MPIDIU_map_update.constprop.0.isra.0:0x1a8f30","MPIDIU_map_update.constprop.0.isra.0:0x1b69e0","MPIDIU_map_update.constprop.0.isra.0:0x1c8b00","MPIDIU_map_update.constprop.0.isra.0:0x1d38c0","MPIDIU_map_update.constprop.0.isra.0:0x1eab40","MPIDIU_map_update.constprop.0.isra.0:0x201500","MPIDIU_map_update.constprop.0.isra.0:0x21cff0","MPIDIU_map_update.constprop.0.isra.0:0x230510","MPIDIU_map_update.constprop.0.isra.0:0x240b10","MPIDIU_map_update.constprop.0.isra.0:0x2512a0","MPIDIU_map_update.constprop.0.isra.0:0x25b200","MPIDIU_map_update.constprop.0.isra.0:0x26dea0","MPIDIU_map_update.constprop.0.isra.0:0x278e50","MPIDIU_map_update.constprop.0.isra.0:0x28b7d0","MPIDIU_map_update.constprop.0.isra.0:0x295640","MPIDIU_map_update.constprop.0.isra.0:0x2a8fb0","MPIDIU_map_update.constprop.0.isra.0:0x2b6c70","MPIDIU_map_update.constprop.0.isra.0:0x2c90a0","MPIDIU_map_update.constprop.0.isra.0:0x2d87f0","MPIDIU_map_update.constprop.0.isra.0:0x2e8010","MPIDIU_map_update.constprop.0.isra.0:0x2f7770","MPIDIU_map_update.constprop.0.isra.0:0x306f20","MPIDIU_map_update.constprop.0.isra.0:0x317a20","MPIDIU_map_update.constprop.0.isra.0:0x326760","MPIDIU_map_update.constprop.0.isra.0:0x339070","MPIDIU_map_update.constprop.0.isra.0:0x347c10","MPIDIU_map_update.constprop.0.isra.0:0x355df0","MPIDIU_map_update.constprop.0.isra.0:0x3664c0","MPIDIU_map_update.constprop.0.isra.0:0x376540","MPIDIU_map_update.constprop.0.isra.0:0x41bb40","MPIDIU_map_update.constprop.0.isra.0:0x457a10","MPIDIU_map_update.constprop.0.isra.0:0x478940","MPIDIU_map_update.constprop.0.isra.0:0x493c90","MPIDIU_map_update.constprop.0.isra.0:0x4b7b00","MPIDIU_map_update.constprop.0.isra.0:0x4f7580","MPIDIU_map_update.constprop.0.isra.0:0x506fa0","MPIDIU_map_update.constprop.0.isra.0:0x51e3e0","MPIDIU_map_update.constprop.0.isra.0:0x5300d0","MPIDIU_map_update.constprop.0.isra.0:0x548200","MPIDIU_map_update.constprop.0.isra.0:0x5620c0","MPIDIU_map_update.constprop.0.isra.0:0x5cad80","MPIDIU_map_update.constprop.0.isra.0:0x5e1650","MPIDIU_map_update.constprop.0.isra.0:0x5e9fc0","MPIDIU_map_update.constprop.0.isra.0:0x5fb910","MPIDIU_map_update.constprop.0.isra.0:0x60d520","MPIDIU_map_update.constprop.0.isra.0:0x613260","MPIDIU_map_update.constprop.0.isra.0:0x618230","MPIDIU_map_update.constprop.0.isra.0:0x630370","MPIDIU_map_update.constprop.0.isra.0:0x645390","MPIDIU_map_update.constprop.0.isra.0:0x64ec00","MPIDIU_map_update.constprop.0.isra.0:0x65e990","MPIDIU_map_update.constprop.0.isra.0:0x667d90","MPIDIU_map_update.constprop.0.isra.0:0x670410","MPIDIU_map_update.constprop.0.isra.0:0x68d9b0","MPIDIU_map_update.constprop.0.isra.0:0x69ea90","MPIDIU_map_update.constprop.0.isra.0:0x6bc1e0","MPIDIU_new_avt","MPIDIU_rank_to_lpid.cold:0x35c76","MPIDIU_rank_to_lpid.cold:0x36cef","MPIDIU_rank_to_lpid:0x146b00","MPIDIU_rank_to_lpid:0x1a8360","MPIDIU_release_lut","MPIDIU_release_mlut","MPIDIU_upids_to_gpids","MPIDIU_valid_group_rank.cold:0x35599","MPIDIU_valid_group_rank.cold:0x35936","MPIDIU_valid_group_rank.cold:0x35df8","MPIDIU_valid_group_rank.cold:0x3621a","MPIDIU_valid_group_rank.cold:0x36522","MPIDIU_valid_group_rank.cold:0x368bf","MPIDIU_valid_group_rank.cold:0x36f18","MPIDIU_valid_group_rank.cold:0x3748d","MPIDIU_valid_group_rank.cold:0x3783c","MPIDIU_valid_group_rank.cold:0x37b52","MPIDIU_valid_group_rank.cold:0x37e68","MPIDIU_valid_group_rank.cold:0x381c3","MPIDIU_valid_group_rank.cold:0x38430","MPIDIU_valid_group_rank.cold:0x386e6","MPIDIU_valid_group_rank.cold:0x3883e","MPIDIU_valid_group_rank.cold:0x38bbd","MPIDIU_valid_group_rank.cold:0x38d36","MPIDIU_valid_group_rank.cold:0x39099","MPIDIU_valid_group_rank.cold:0x391f1","MPIDIU_valid_group_rank.cold:0x3956d","MPIDIU_valid_group_rank.cold:0x396e6","MPIDIU_valid_group_rank.cold:0x3993b","MPIDIU_valid_group_rank.cold:0x39b6f","MPIDIU_valid_group_rank.cold:0x39da3","MPIDIU_valid_group_rank.cold:0x39ff8","MPIDIU_valid_group_rank.cold:0x3a22c","MPIDIU_valid_group_rank.cold:0x3a481","MPIDIU_valid_group_rank.cold:0x3a67f","MPIDIU_valid_group_rank.cold:0x3a8ce","MPIDIU_valid_group_rank.cold:0x3aaed","MPIDIU_valid_group_rank.cold:0x3aceb","MPIDIU_valid_group_rank.cold:0x3af1f","MPIDIU_valid_group_rank.cold:0x3b174","MPIDIU_valid_group_rank.cold:0x3d354","MPIDIU_valid_group_rank.cold:0x3d735","MPIDIU_valid_group_rank.cold:0x3da9f","MPIDIU_valid_group_rank.cold:0x3dcc9","MPIDIU_valid_group_rank.cold:0x3e230","MPIDIU_valid_group_rank.cold:0x3ee0f","MPIDIU_valid_group_rank.cold:0x3f09d","MPIDIU_valid_group_rank.cold:0x3f3b3","MPIDIU_valid_group_rank.cold:0x3f5b1","MPIDIU_valid_group_rank.cold:0x3f869","MPIDIU_valid_group_rank.cold:0x3fa67","MPIDIU_valid_group_rank.cold:0x400ac","MPIDIU_valid_group_rank.cold:0x4077f","MPIDIU_valid_group_rank.cold:0x40aac","MPIDIU_valid_group_rank.cold:0x40dc2","MPIDIU_valid_group_rank.cold:0x4146f","MPIDIU_valid_group_rank.cold:0x416a3","MPIDIU_valid_group_rank.cold:0x418a1","MPIDIU_valid_group_rank.cold:0x41b70","MPIDIU_valid_group_rank:0x11e2d0","MPIDIU_valid_group_rank:0x132550","MPIDIU_valid_group_rank:0x151e00","MPIDIU_valid_group_rank:0x1689c0","MPIDIU_valid_group_rank:0x17c500","MPIDIU_valid_group_rank:0x1910b0","MPIDIU_valid_group_rank:0x1b54e0","MPIDIU_valid_group_rank:0x1d23c0","MPIDIU_valid_group_rank:0x1e9620","MPIDIU_valid_group_rank:0x1fffe0","MPIDIU_valid_group_rank:0x21ba40","MPIDIU_valid_group_rank:0x22ef60","MPIDIU_valid_group_rank:0x23f560","MPIDIU_valid_group_rank:0x250b80","MPIDIU_valid_group_rank:0x259c50","MPIDIU_valid_group_rank:0x26d780","MPIDIU_valid_group_rank:0x2778a0","MPIDIU_valid_group_rank:0x28aaa0","MPIDIU_valid_group_rank:0x294090","MPIDIU_valid_group_rank:0x2a8280","MPIDIU_valid_group_rank:0x2b5480","MPIDIU_valid_group_rank:0x2c7af0","MPIDIU_valid_group_rank:0x2d7240","MPIDIU_valid_group_rank:0x2e6a60","MPIDIU_valid_group_rank:0x2f61c0","MPIDIU_valid_group_rank:0x305970","MPIDIU_valid_group_rank:0x316530","MPIDIU_valid_group_rank:0x325270","MPIDIU_valid_group_rank:0x337dc0","MPIDIU_valid_group_rank:0x346960","MPIDIU_valid_group_rank:0x354600","MPIDIU_valid_group_rank:0x364cd0","MPIDIU_valid_group_rank:0x375290","MPIDIU_valid_group_rank:0x41a860","MPIDIU_valid_group_rank:0x456320","MPIDIU_valid_group_rank:0x477910","MPIDIU_valid_group_rank:0x4929e0","MPIDIU_valid_group_rank:0x4b6850","MPIDIU_valid_group_rank:0x4f62d0","MPIDIU_valid_group_rank:0x505a30","MPIDIU_valid_group_rank:0x51c7b0","MPIDIU_valid_group_rank:0x52eb90","MPIDIU_valid_group_rank:0x546f50","MPIDIU_valid_group_rank:0x560990","MPIDIU_valid_group_rank:0x5c9570","MPIDIU_valid_group_rank:0x5f9bd0","MPIDIU_valid_group_rank:0x616c80","MPIDIU_valid_group_rank:0x62ee50","MPIDIU_valid_group_rank:0x66e830","MPIDIU_valid_group_rank:0x68c6d0","MPIDIU_valid_group_rank:0x69d7e0","MPIDIU_valid_group_rank:0x6ba9c0","MPIDI_Allgather_intra_composition_alpha","MPIDI_Allgather_intra_composition_alpha.cold","MPIDI_Allgather_intra_composition_beta.part.0","MPIDI_Allreduce_intra_composition_alpha","MPIDI_Allreduce_intra_composition_beta.part.0","MPIDI_Allreduce_intra_composition_delta","MPIDI_Allreduce_intra_composition_gamma.part.0","MPIDI_Alltoall_intra_composition_alpha","MPIDI_Alltoall_intra_composition_alpha.cold","MPIDI_Alltoall_intra_composition_beta.part.0","MPIDI_Barrier_intra_composition_beta.part.0","MPIDI_Bcast_intra_composition_alpha","MPIDI_Bcast_intra_composition_alpha.cold","MPIDI_Bcast_intra_composition_beta","MPIDI_Bcast_intra_composition_gamma.part.0","MPIDI_CRAY_COMMON_mpi_finalize_hook","MPIDI_CRAY_COMMON_mpi_init_hook","MPIDI_CRAY_Clear_Bcast_Opt","MPIDI_CRAY_Comm_create_hook","MPIDI_CRAY_Comm_destroy_hook","MPIDI_CRAY_Common_lmt_complete_recv","MPIDI_CRAY_Common_lmt_complete_recv.cold","MPIDI_CRAY_Common_lmt_ctrl_send_fin_cb","MPIDI_CRAY_Common_lmt_ctrl_send_fin_cb.cold","MPIDI_CRAY_Common_lmt_ctrl_send_rts_cb","MPIDI_CRAY_Common_lmt_export_mem","MPIDI_CRAY_Common_lmt_get_size","MPIDI_CRAY_Common_lmt_import_mem","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x35c7d","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x35e62","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x36284","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x36da2","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x36f82","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x374f7","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x3f129","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x3fb29","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x40138","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0.cold:0x41bfc","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x14a340","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x156b10","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x16d6d0","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x1af980","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x1ba210","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x1d70f0","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x50aad0","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x51d810","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x566700","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x5ce5a0","MPIDI_CRAY_Common_lmt_isend.constprop.0.isra.0:0x6bfd10","MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x378c8","MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x37bde","MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x3d7c1","MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x40b38","MPIDI_CRAY_Common_lmt_isend.isra.0.cold:0x40e4e","MPIDI_CRAY_Common_lmt_isend.isra.0:0x1ee650","MPIDI_CRAY_Common_lmt_isend.isra.0:0x205010","MPIDI_CRAY_Common_lmt_isend.isra.0:0x45b540","MPIDI_CRAY_Common_lmt_isend.isra.0:0x61bd40","MPIDI_CRAY_Common_lmt_isend.isra.0:0x633e80","MPIDI_CRAY_Common_lmt_progress","MPIDI_CRAY_Common_lmt_unpack","MPIDI_CRAY_Construct_Bcast_Tree","MPIDI_CRAY_Detect_cpuid","MPIDI_CRAY_Initialize_GPU_Coll_staging_buffers","MPIDI_CRAY_Setup_Shared_Mem_Coll","MPIDI_CRAY_XPMEM_do_attach","MPIDI_CRAY_XPMEM_mpi_finalize_hook","MPIDI_CRAY_XPMEM_mpi_init_hook","MPIDI_CRAY_alloc_mem_debug_info","MPIDI_CRAY_check_transparent_hp_status","MPIDI_CRAY_clr_numa_affinity","MPIDI_CRAY_collopt_process_env","MPIDI_CRAY_collopt_register_pvar_stats","MPIDI_CRAY_collopt_set_ANL_defaults","MPIDI_CRAY_collopt_set_defaults","MPIDI_CRAY_collopt_set_func_ptrs","MPIDI_CRAY_dump_hugetlb_dir","MPIDI_CRAY_dump_proc_buddyinfo.isra.0","MPIDI_CRAY_dump_proc_meminfo.isra.0","MPIDI_CRAY_dump_proc_slabinfo.isra.0","MPIDI_CRAY_edge_color","MPIDI_CRAY_finalize","MPIDI_CRAY_free_memory","MPIDI_CRAY_get_buddyinfo_info","MPIDI_CRAY_get_memory","MPIDI_CRAY_get_min_required_ofi_version","MPIDI_CRAY_get_mm_hugepages_info","MPIDI_CRAY_get_thread_mempolicy.constprop.0","MPIDI_CRAY_init","MPIDI_CRAY_init_memcpy","MPIDI_CRAY_local_get_freemem_info","MPIDI_CRAY_mem_dbg_finalize","MPIDI_CRAY_mpiio_init","MPIDI_CRAY_ofi_TC_str_to_mpich_val","MPIDI_CRAY_ofi_TC_str_to_ofi_val","MPIDI_CRAY_ofi_TC_val_mpich_to_ofi","MPIDI_CRAY_ofi_TC_val_ofi_to_mpich","MPIDI_CRAY_ofi_check_nic_symmetry","MPIDI_CRAY_ofi_create_connections","MPIDI_CRAY_ofi_create_global_connections","MPIDI_CRAY_ofi_create_nic_cache","MPIDI_CRAY_ofi_create_special_eps","MPIDI_CRAY_ofi_create_tclass_eps","MPIDI_CRAY_ofi_display_nic_info","MPIDI_CRAY_ofi_display_provider_envs","MPIDI_CRAY_ofi_free_nic_cache","MPIDI_CRAY_ofi_gather_cxi_counters","MPIDI_CRAY_ofi_get_cxi_version","MPIDI_CRAY_ofi_get_default_provider","MPIDI_CRAY_ofi_get_nic_index","MPIDI_CRAY_ofi_get_vni","MPIDI_CRAY_ofi_hwcoll_allreduce_join","MPIDI_CRAY_ofi_hwcoll_barrier_join","MPIDI_CRAY_ofi_hwcoll_bcast_join","MPIDI_CRAY_ofi_hwcoll_comm_add","MPIDI_CRAY_ofi_hwcoll_comm_free_all","MPIDI_CRAY_ofi_hwcoll_comm_remove","MPIDI_CRAY_ofi_hwcoll_data_promote_dn","MPIDI_CRAY_ofi_hwcoll_data_promote_up","MPIDI_CRAY_ofi_hwcoll_finalize","MPIDI_CRAY_ofi_hwcoll_hndl_comm_create","MPIDI_CRAY_ofi_hwcoll_hndl_destroy","MPIDI_CRAY_ofi_hwcoll_hndl_first_use","MPIDI_CRAY_ofi_hwcoll_init","MPIDI_CRAY_ofi_hwcoll_query","MPIDI_CRAY_ofi_hwcoll_wait","MPIDI_CRAY_ofi_init_cxi_counters","MPIDI_CRAY_ofi_nic_assign_policy","MPIDI_CRAY_ofi_nic_in_use","MPIDI_CRAY_ofi_nicaddr_to_str","MPIDI_CRAY_ofi_pmi_create_nic_cache","MPIDI_CRAY_ofi_pmi_get_local_nics","MPIDI_CRAY_ofi_scalable_startup","MPIDI_CRAY_ofi_select_nic_provider","MPIDI_CRAY_ofi_set_provider_defaults","MPIDI_CRAY_ofi_set_provider_overrides","MPIDI_CRAY_ofi_update_mr_flags","MPIDI_CRAY_ofi_win_set_tclass","MPIDI_CRAY_post_init","MPIDI_CRAY_print_pvar_stats","MPIDI_CRAY_rma_generic_register_pvar_stats","MPIDI_CRAY_set_numa_affinity","MPIDI_CRAY_set_thread_mempolicy.constprop.0","MPIDI_CRAY_transparent_hp_update_stats","MPIDI_CXI_choose_vni","MPIDI_CXI_get_pid","MPIDI_CXI_get_vni","MPIDI_CXI_normal_free","MPIDI_CXI_normal_malloc","MPIDI_Comm_create_multi_leader_subcomms","MPIDI_Comm_create_multi_leaders","MPIDI_Comm_split_type","MPIDI_Cray_coll_finalize","MPIDI_Cray_coll_init","MPIDI_Cray_shared_mem_coll_barrier","MPIDI_Cray_shared_mem_coll_barrier_gather","MPIDI_Cray_shared_mem_coll_bcast","MPIDI_Cray_shared_mem_coll_bcast.cold","MPIDI_Cray_shared_mem_coll_check","MPIDI_Cray_shared_mem_coll_cleanup","MPIDI_Cray_shared_mem_coll_opt_cleanup","MPIDI_Cray_shared_mem_coll_opt_init","MPIDI_Cray_shared_mem_coll_reduce","MPIDI_Cray_shared_mem_coll_reduce.cold","MPIDI_Cray_shared_mem_coll_setup","MPIDI_Cray_shared_mem_coll_tree_reduce","MPIDI_Cray_shared_mem_coll_tree_reduce.cold","MPIDI_GPU_KT_Progress","MPIDI_GPU_get_ipc_attr","MPIDI_GPU_init_local","MPIDI_GPU_init_world","MPIDI_GPU_ipc_get_map_dev","MPIDI_GPU_ipc_handle_cache_insert","MPIDI_GPU_ipc_handle_map","MPIDI_GPU_ipc_handle_unmap","MPIDI_GPU_mpi_finalize_hook","MPIDI_IPCI_copy_data","MPIDI_IPC_ack_target_msg_cb","MPIDI_IPC_ack_target_msg_cb.cold","MPIDI_IPC_init_local","MPIDI_IPC_init_world","MPIDI_IPC_mpi_finalize_hook","MPIDI_IPC_mpi_win_create_hook","MPIDI_IPC_mpi_win_free_hook","MPIDI_IPC_rndv_cb","MPIDI_IPC_rndv_cb.cold","MPIDI_NM_am_isend.constprop.0:0x254470","MPIDI_NM_am_isend.constprop.0:0x28e830","MPIDI_NM_am_isend:0x1251e0","MPIDI_NM_am_isend:0x139890","MPIDI_NM_am_isend:0x159200","MPIDI_NM_am_isend:0x16fdc0","MPIDI_NM_am_isend:0x183410","MPIDI_NM_am_isend:0x1983f0","MPIDI_NM_am_isend:0x1bc900","MPIDI_NM_am_isend:0x1d97e0","MPIDI_NM_am_isend:0x1f1500","MPIDI_NM_am_isend:0x207ec0","MPIDI_NM_am_isend:0x221d70","MPIDI_NM_am_isend:0x235290","MPIDI_NM_am_isend:0x245890","MPIDI_NM_am_isend:0x25ff80","MPIDI_NM_am_isend:0x2717b0","MPIDI_NM_am_isend:0x27dbd0","MPIDI_NM_am_isend:0x29a3c0","MPIDI_NM_am_isend:0x2ac6e0","MPIDI_NM_am_isend:0x2bba00","MPIDI_NM_am_isend:0x2cde20","MPIDI_NM_am_isend:0x2dd570","MPIDI_NM_am_isend:0x2ecd90","MPIDI_NM_am_isend:0x2fc4f0","MPIDI_NM_am_isend:0x30bca0","MPIDI_NM_am_isend:0x31c7b0","MPIDI_NM_am_isend:0x32b4f0","MPIDI_NM_am_isend:0x33ddf0","MPIDI_NM_am_isend:0x34cfc0","MPIDI_NM_am_isend:0x35b1b0","MPIDI_NM_am_isend:0x36b880","MPIDI_NM_am_isend:0x37b2c0","MPIDI_NM_am_isend:0x420ef0","MPIDI_NM_am_isend:0x45ee40","MPIDI_NM_am_isend:0x47bca0","MPIDI_NM_am_isend:0x499040","MPIDI_NM_am_isend:0x4bceb0","MPIDI_NM_am_isend:0x4fc930","MPIDI_NM_am_isend:0x50d1c0","MPIDI_NM_am_isend:0x523710","MPIDI_NM_am_isend:0x5358b0","MPIDI_NM_am_isend:0x54d5b0","MPIDI_NM_am_isend:0x568df0","MPIDI_NM_am_isend:0x5d0c90","MPIDI_NM_am_isend:0x5ef980","MPIDI_NM_am_isend:0x601d70","MPIDI_NM_am_isend:0x61ebf0","MPIDI_NM_am_isend:0x636d30","MPIDI_NM_am_isend:0x676d60","MPIDI_NM_am_isend:0x692d60","MPIDI_NM_am_isend:0x6a3f90","MPIDI_NM_am_isend:0x6c2400","MPIDI_NM_am_send_hdr.part.0:0x146ad0","MPIDI_NM_am_send_hdr.part.0:0x151790","MPIDI_NM_am_send_hdr.part.0:0x168350","MPIDI_NM_am_send_hdr.part.0:0x1a82a0","MPIDI_NM_am_send_hdr.part.0:0x1b4de0","MPIDI_NM_am_send_hdr.part.0:0x1d1cc0","MPIDI_NM_am_send_hdr.part.0:0x1e8f10","MPIDI_NM_am_send_hdr.part.0:0x1ff930","MPIDI_NM_am_send_hdr.part.0:0x455b90","MPIDI_NM_am_send_hdr.part.0:0x5052f0","MPIDI_NM_am_send_hdr.part.0:0x51c100","MPIDI_NM_am_send_hdr.part.0:0x5601f0","MPIDI_NM_am_send_hdr.part.0:0x5c8e60","MPIDI_NM_am_send_hdr.part.0:0x616570","MPIDI_NM_am_send_hdr.part.0:0x62e740","MPIDI_NM_am_send_hdr.part.0:0x66e120","MPIDI_NM_am_send_hdr.part.0:0x6ba2f0","MPIDI_NM_am_send_hdr_reply.part.0:0x1e8ee0","MPIDI_NM_am_send_hdr_reply.part.0:0x1ff8a0","MPIDI_NM_am_send_hdr_reply.part.0:0x5e0300","MPIDI_NM_am_send_hdr_reply.part.0:0x5e8df0","MPIDI_NM_am_send_hdr_reply.part.0:0x616540","MPIDI_NM_am_send_hdr_reply.part.0:0x62e710","MPIDI_NM_mpi_allgather.part.0","MPIDI_NM_mpi_allreduce.part.0","MPIDI_NM_mpi_alltoall.part.0","MPIDI_NM_mpi_barrier.part.0","MPIDI_NM_mpi_bcast.part.0","MPIDI_NM_mpi_cancel_recv","MPIDI_NM_mpi_cancel_recv.constprop.0","MPIDI_NM_mpi_compare_and_swap","MPIDI_NM_mpi_compare_and_swap.cold","MPIDI_NM_mpi_fetch_and_op","MPIDI_NM_mpi_fetch_and_op.cold","MPIDI_NM_mpi_host_alloc_tcntr_buffer.constprop.0.isra.0","MPIDI_NM_mpi_iprobe.constprop.0:0x139670","MPIDI_NM_mpi_iprobe.constprop.0:0x1981d0","MPIDI_NM_mpi_iprobe.constprop.0:0x45ec20","MPIDI_NM_mpi_iprobe.constprop.0:0x48b1e0","MPIDI_NM_mpi_irecv.constprop.0.cold:0x35ba7","MPIDI_NM_mpi_irecv.constprop.0.cold:0x36b30","MPIDI_NM_mpi_irecv.constprop.0.cold:0x37a00","MPIDI_NM_mpi_irecv.constprop.0.cold:0x37d16","MPIDI_NM_mpi_irecv.constprop.0.cold:0x3d8f9","MPIDI_NM_mpi_irecv.constprop.0.cold:0x3f261","MPIDI_NM_mpi_irecv.constprop.0.cold:0x3fc61","MPIDI_NM_mpi_irecv.constprop.0.cold:0x40270","MPIDI_NM_mpi_irecv.constprop.0.cold:0x40c70","MPIDI_NM_mpi_irecv.constprop.0.cold:0x40f86","MPIDI_NM_mpi_irecv.constprop.0.cold:0x41d5b","MPIDI_NM_mpi_irecv.constprop.0:0x1434f0","MPIDI_NM_mpi_irecv.constprop.0:0x1a27c0","MPIDI_NM_mpi_irecv.constprop.0:0x1f5450","MPIDI_NM_mpi_irecv.constprop.0:0x20be10","MPIDI_NM_mpi_irecv.constprop.0:0x462d70","MPIDI_NM_mpi_irecv.constprop.0:0x487230","MPIDI_NM_mpi_irecv.constprop.0:0x511780","MPIDI_NM_mpi_irecv.constprop.0:0x56d3b0","MPIDI_NM_mpi_irecv.constprop.0:0x5d5250","MPIDI_NM_mpi_irecv.constprop.0:0x622b40","MPIDI_NM_mpi_irecv.constprop.0:0x63ac80","MPIDI_NM_mpi_irecv.constprop.0:0x6c70b0","MPIDI_NM_mpi_reduce.part.0:0x41a0c0","MPIDI_NM_mpi_reduce.part.0:0x4b6180","MPIDI_NM_mpi_scan.part.0","MPIDI_NM_mpi_unsafe_free_tindex.part.0:0x2161c0","MPIDI_NM_mpi_unsafe_free_tindex.part.0:0x52e200","MPIDI_NM_mpi_wait_tcomplete","MPIDI_NM_progress.part.0:0x124310","MPIDI_NM_progress.part.0:0x138810","MPIDI_NM_progress.part.0:0x159540","MPIDI_NM_progress.part.0:0x170100","MPIDI_NM_progress.part.0:0x182540","MPIDI_NM_progress.part.0:0x197370","MPIDI_NM_progress.part.0:0x1bcc40","MPIDI_NM_progress.part.0:0x1d9b20","MPIDI_NM_progress.part.0:0x1f0e50","MPIDI_NM_progress.part.0:0x207810","MPIDI_NM_progress.part.0:0x2220b0","MPIDI_NM_progress.part.0:0x235ce0","MPIDI_NM_progress.part.0:0x245bd0","MPIDI_NM_progress.part.0:0x2602c0","MPIDI_NM_progress.part.0:0x27df10","MPIDI_NM_progress.part.0:0x29a700","MPIDI_NM_progress.part.0:0x2bbd40","MPIDI_NM_progress.part.0:0x2ce160","MPIDI_NM_progress.part.0:0x2dd8b0","MPIDI_NM_progress.part.0:0x2ed0d0","MPIDI_NM_progress.part.0:0x2fc830","MPIDI_NM_progress.part.0:0x30bfe0","MPIDI_NM_progress.part.0:0x31caf0","MPIDI_NM_progress.part.0:0x32b830","MPIDI_NM_progress.part.0:0x33e130","MPIDI_NM_progress.part.0:0x34c990","MPIDI_NM_progress.part.0:0x35ab80","MPIDI_NM_progress.part.0:0x36b250","MPIDI_NM_progress.part.0:0x37b600","MPIDI_NM_progress.part.0:0x4208c0","MPIDI_NM_progress.part.0:0x45dd40","MPIDI_NM_progress.part.0:0x488d60","MPIDI_NM_progress.part.0:0x498a10","MPIDI_NM_progress.part.0:0x4bc880","MPIDI_NM_progress.part.0:0x4fc300","MPIDI_NM_progress.part.0:0x50d500","MPIDI_NM_progress.part.0:0x5241b0","MPIDI_NM_progress.part.0:0x535270","MPIDI_NM_progress.part.0:0x54cf80","MPIDI_NM_progress.part.0:0x569130","MPIDI_NM_progress.part.0:0x5d0fd0","MPIDI_NM_progress.part.0:0x601740","MPIDI_NM_progress.part.0:0x61e540","MPIDI_NM_progress.part.0:0x636680","MPIDI_NM_progress.part.0:0x650290","MPIDI_NM_progress.part.0:0x669210","MPIDI_NM_progress.part.0:0x6770a0","MPIDI_NM_progress.part.0:0x692730","MPIDI_NM_progress.part.0:0x6aa940","MPIDI_NM_progress.part.0:0x6c2740","MPIDI_NM_rma_target_cmpl_hook.part.0:0x2d6bd0","MPIDI_NM_rma_target_cmpl_hook.part.0:0x353f60","MPIDI_NM_rma_target_cmpl_hook.part.0:0x66e180","MPIDI_NM_rma_target_local_cmpl_hook.part.0","MPIDI_NM_rma_win_cmpl_hook.part.0:0x2b4e10","MPIDI_NM_rma_win_cmpl_hook.part.0:0x2c7480","MPIDI_NM_rma_win_cmpl_hook.part.0:0x2e63f0","MPIDI_NM_rma_win_cmpl_hook.part.0:0x364630","MPIDI_NM_rma_win_local_cmpl_hook.part.0","MPIDI_OFI_CRAY_flush_nic:0x21c040","MPIDI_OFI_CRAY_flush_nic:0x22f560","MPIDI_OFI_CRAY_flush_nic:0x23fb60","MPIDI_OFI_CRAY_flush_nic:0x25a250","MPIDI_OFI_CRAY_flush_nic:0x277ea0","MPIDI_OFI_CRAY_flush_nic:0x294690","MPIDI_OFI_CRAY_flush_nic:0x2b5ab0","MPIDI_OFI_CRAY_flush_nic:0x2c80f0","MPIDI_OFI_CRAY_flush_nic:0x2d7840","MPIDI_OFI_CRAY_flush_nic:0x2e7060","MPIDI_OFI_CRAY_flush_nic:0x2f67c0","MPIDI_OFI_CRAY_flush_nic:0x305f70","MPIDI_OFI_CRAY_flush_nic:0x354c30","MPIDI_OFI_CRAY_flush_nic:0x365300","MPIDI_OFI_CRAY_flush_nic:0x66ee60","MPIDI_OFI_CRAY_start_flushq.part.0:0x21b3d0","MPIDI_OFI_CRAY_start_flushq.part.0:0x22e8f0","MPIDI_OFI_CRAY_start_flushq.part.0:0x23eef0","MPIDI_OFI_CRAY_start_flushq.part.0:0x2595e0","MPIDI_OFI_CRAY_start_flushq.part.0:0x277230","MPIDI_OFI_CRAY_start_flushq.part.0:0x293a20","MPIDI_OFI_CRAY_start_flushq.part.0:0x2b4de0","MPIDI_OFI_CRAY_start_flushq.part.0:0x2c7450","MPIDI_OFI_CRAY_start_flushq.part.0:0x2d6ba0","MPIDI_OFI_CRAY_start_flushq.part.0:0x2e63c0","MPIDI_OFI_CRAY_start_flushq.part.0:0x2f5b20","MPIDI_OFI_CRAY_start_flushq.part.0:0x3052d0","MPIDI_OFI_CRAY_start_flushq.part.0:0x353f30","MPIDI_OFI_CRAY_start_flushq.part.0:0x364600","MPIDI_OFI_CRAY_start_flushq.part.0:0x66e150","MPIDI_OFI_addr_exchange_all_ctx","MPIDI_OFI_addr_exchange_root_ctx","MPIDI_OFI_am_init_sreq:0x106d80","MPIDI_OFI_am_init_sreq:0x10c000","MPIDI_OFI_am_init_sreq:0x1113c0","MPIDI_OFI_am_init_sreq:0x11d660","MPIDI_OFI_am_init_sreq:0x131b00","MPIDI_OFI_am_init_sreq:0x146910","MPIDI_OFI_am_init_sreq:0x1515c0","MPIDI_OFI_am_init_sreq:0x168180","MPIDI_OFI_am_init_sreq:0x17b890","MPIDI_OFI_am_init_sreq:0x190660","MPIDI_OFI_am_init_sreq:0x1a80e0","MPIDI_OFI_am_init_sreq:0x1b4c10","MPIDI_OFI_am_init_sreq:0x1d1af0","MPIDI_OFI_am_init_sreq:0x1e8ad0","MPIDI_OFI_am_init_sreq:0x1ff490","MPIDI_OFI_am_init_sreq:0x21b1d0","MPIDI_OFI_am_init_sreq:0x22e720","MPIDI_OFI_am_init_sreq:0x23ecc0","MPIDI_OFI_am_init_sreq:0x250880","MPIDI_OFI_am_init_sreq:0x2593e0","MPIDI_OFI_am_init_sreq:0x26d470","MPIDI_OFI_am_init_sreq:0x277000","MPIDI_OFI_am_init_sreq:0x28a770","MPIDI_OFI_am_init_sreq:0x2937f0","MPIDI_OFI_am_init_sreq:0x2a7f40","MPIDI_OFI_am_init_sreq:0x2b4c10","MPIDI_OFI_am_init_sreq:0x2c7280","MPIDI_OFI_am_init_sreq:0x2d69d0","MPIDI_OFI_am_init_sreq:0x2e61f0","MPIDI_OFI_am_init_sreq:0x2f5950","MPIDI_OFI_am_init_sreq:0x305100","MPIDI_OFI_am_init_sreq:0x315d20","MPIDI_OFI_am_init_sreq:0x324a60","MPIDI_OFI_am_init_sreq:0x3375b0","MPIDI_OFI_am_init_sreq:0x345f10","MPIDI_OFI_am_init_sreq:0x353d90","MPIDI_OFI_am_init_sreq:0x364220","MPIDI_OFI_am_init_sreq:0x374a80","MPIDI_OFI_am_init_sreq:0x419b30","MPIDI_OFI_am_init_sreq:0x4557b0","MPIDI_OFI_am_init_sreq:0x477060","MPIDI_OFI_am_init_sreq:0x491f90","MPIDI_OFI_am_init_sreq:0x4b5da0","MPIDI_OFI_am_init_sreq:0x4f5840","MPIDI_OFI_am_init_sreq:0x5050c0","MPIDI_OFI_am_init_sreq:0x51bcf0","MPIDI_OFI_am_init_sreq:0x52da10","MPIDI_OFI_am_init_sreq:0x5464c0","MPIDI_OFI_am_init_sreq:0x560020","MPIDI_OFI_am_init_sreq:0x5c8c90","MPIDI_OFI_am_init_sreq:0x5e0140","MPIDI_OFI_am_init_sreq:0x5e8c00","MPIDI_OFI_am_init_sreq:0x5f9380","MPIDI_OFI_am_init_sreq:0x60c620","MPIDI_OFI_am_init_sreq:0x612870","MPIDI_OFI_am_init_sreq:0x6160d0","MPIDI_OFI_am_init_sreq:0x62e300","MPIDI_OFI_am_init_sreq:0x66df50","MPIDI_OFI_am_init_sreq:0x68b9e0","MPIDI_OFI_am_init_sreq:0x69cd50","MPIDI_OFI_am_init_sreq:0x6b9ac0","MPIDI_OFI_am_rdma_read_ack_handler","MPIDI_OFI_am_rdma_read_recv_cb","MPIDI_OFI_am_repost_buffer","MPIDI_OFI_comm_set_hints","MPIDI_OFI_comm_to_phys.constprop.0.cold:0x403bb","MPIDI_OFI_comm_to_phys.constprop.0.cold:0x4113b","MPIDI_OFI_comm_to_phys.constprop.0.cold:0x413f7","MPIDI_OFI_comm_to_phys.constprop.0:0x5e0360","MPIDI_OFI_comm_to_phys.constprop.0:0x64e140","MPIDI_OFI_comm_to_phys.constprop.0:0x667610","MPIDI_OFI_complete_chunks","MPIDI_OFI_control_handler","MPIDI_OFI_create_dt_map","MPIDI_OFI_create_tput","MPIDI_OFI_create_tsend","MPIDI_OFI_dispatch_function","MPIDI_OFI_dispatch_function.cold","MPIDI_OFI_do_accumulate","MPIDI_OFI_do_accumulate.cold","MPIDI_OFI_do_accumulate.constprop.0","MPIDI_OFI_do_accumulate.constprop.0.cold","MPIDI_OFI_do_am_isend_eager.constprop.0:0x107aa0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x10cd20","MPIDI_OFI_do_am_isend_eager.constprop.0:0x1120e0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x148560","MPIDI_OFI_do_am_isend_eager.constprop.0:0x1a9dc0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x2518c0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x26e4c0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x28bdf0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x2a95d0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x5e2520","MPIDI_OFI_do_am_isend_eager.constprop.0:0x5ec5e0","MPIDI_OFI_do_am_isend_eager.constprop.0:0x60db40","MPIDI_OFI_do_am_isend_eager.constprop.0:0x6146c0","MPIDI_OFI_do_am_isend_eager:0x11fd30","MPIDI_OFI_do_am_isend_eager:0x134230","MPIDI_OFI_do_am_isend_eager:0x154020","MPIDI_OFI_do_am_isend_eager:0x16abe0","MPIDI_OFI_do_am_isend_eager:0x17df60","MPIDI_OFI_do_am_isend_eager:0x192d90","MPIDI_OFI_do_am_isend_eager:0x1b7710","MPIDI_OFI_do_am_isend_eager:0x1d45f0","MPIDI_OFI_do_am_isend_eager:0x1ebb60","MPIDI_OFI_do_am_isend_eager:0x202520","MPIDI_OFI_do_am_isend_eager:0x21d790","MPIDI_OFI_do_am_isend_eager:0x230cb0","MPIDI_OFI_do_am_isend_eager:0x2412b0","MPIDI_OFI_do_am_isend_eager:0x25b9a0","MPIDI_OFI_do_am_isend_eager:0x2795f0","MPIDI_OFI_do_am_isend_eager:0x295de0","MPIDI_OFI_do_am_isend_eager:0x2b7410","MPIDI_OFI_do_am_isend_eager:0x2c9840","MPIDI_OFI_do_am_isend_eager:0x2d8f90","MPIDI_OFI_do_am_isend_eager:0x2e87b0","MPIDI_OFI_do_am_isend_eager:0x2f7f10","MPIDI_OFI_do_am_isend_eager:0x3076c0","MPIDI_OFI_do_am_isend_eager:0x3181c0","MPIDI_OFI_do_am_isend_eager:0x326f00","MPIDI_OFI_do_am_isend_eager:0x339810","MPIDI_OFI_do_am_isend_eager:0x3483b0","MPIDI_OFI_do_am_isend_eager:0x356590","MPIDI_OFI_do_am_isend_eager:0x366c60","MPIDI_OFI_do_am_isend_eager:0x376ce0","MPIDI_OFI_do_am_isend_eager:0x41c2e0","MPIDI_OFI_do_am_isend_eager:0x458a40","MPIDI_OFI_do_am_isend_eager:0x478f60","MPIDI_OFI_do_am_isend_eager:0x494430","MPIDI_OFI_do_am_isend_eager:0x4b82a0","MPIDI_OFI_do_am_isend_eager:0x4f7d20","MPIDI_OFI_do_am_isend_eager:0x507fd0","MPIDI_OFI_do_am_isend_eager:0x51f110","MPIDI_OFI_do_am_isend_eager:0x5309a0","MPIDI_OFI_do_am_isend_eager:0x5489a0","MPIDI_OFI_do_am_isend_eager:0x563c00","MPIDI_OFI_do_am_isend_eager:0x5cbab0","MPIDI_OFI_do_am_isend_eager:0x5fd160","MPIDI_OFI_do_am_isend_eager:0x619250","MPIDI_OFI_do_am_isend_eager:0x631390","MPIDI_OFI_do_am_isend_eager:0x6715a0","MPIDI_OFI_do_am_isend_eager:0x68e150","MPIDI_OFI_do_am_isend_eager:0x69fc10","MPIDI_OFI_do_am_isend_eager:0x6bd210","MPIDI_OFI_do_am_isend_pipeline.cold:0x35645","MPIDI_OFI_do_am_isend_pipeline.cold:0x359e2","MPIDI_OFI_do_am_isend_pipeline.cold:0x35ee6","MPIDI_OFI_do_am_isend_pipeline.cold:0x36308","MPIDI_OFI_do_am_isend_pipeline.cold:0x365ce","MPIDI_OFI_do_am_isend_pipeline.cold:0x3696b","MPIDI_OFI_do_am_isend_pipeline.cold:0x37006","MPIDI_OFI_do_am_isend_pipeline.cold:0x3757b","MPIDI_OFI_do_am_isend_pipeline.cold:0x3794c","MPIDI_OFI_do_am_isend_pipeline.cold:0x37c62","MPIDI_OFI_do_am_isend_pipeline.cold:0x37f14","MPIDI_OFI_do_am_isend_pipeline.cold:0x3826f","MPIDI_OFI_do_am_isend_pipeline.cold:0x384dc","MPIDI_OFI_do_am_isend_pipeline.cold:0x388ea","MPIDI_OFI_do_am_isend_pipeline.cold:0x38de2","MPIDI_OFI_do_am_isend_pipeline.cold:0x3929d","MPIDI_OFI_do_am_isend_pipeline.cold:0x39792","MPIDI_OFI_do_am_isend_pipeline.cold:0x399e7","MPIDI_OFI_do_am_isend_pipeline.cold:0x39c1b","MPIDI_OFI_do_am_isend_pipeline.cold:0x39e4f","MPIDI_OFI_do_am_isend_pipeline.cold:0x3a0a4","MPIDI_OFI_do_am_isend_pipeline.cold:0x3a2d8","MPIDI_OFI_do_am_isend_pipeline.cold:0x3a52d","MPIDI_OFI_do_am_isend_pipeline.cold:0x3a72b","MPIDI_OFI_do_am_isend_pipeline.cold:0x3a97a","MPIDI_OFI_do_am_isend_pipeline.cold:0x3ab99","MPIDI_OFI_do_am_isend_pipeline.cold:0x3ad97","MPIDI_OFI_do_am_isend_pipeline.cold:0x3afcb","MPIDI_OFI_do_am_isend_pipeline.cold:0x3b220","MPIDI_OFI_do_am_isend_pipeline.cold:0x3d400","MPIDI_OFI_do_am_isend_pipeline.cold:0x3d845","MPIDI_OFI_do_am_isend_pipeline.cold:0x3daa6","MPIDI_OFI_do_am_isend_pipeline.cold:0x3dd75","MPIDI_OFI_do_am_isend_pipeline.cold:0x3e2dc","MPIDI_OFI_do_am_isend_pipeline.cold:0x3eebb","MPIDI_OFI_do_am_isend_pipeline.cold:0x3f1ad","MPIDI_OFI_do_am_isend_pipeline.cold:0x3f45f","MPIDI_OFI_do_am_isend_pipeline.cold:0x3f67e","MPIDI_OFI_do_am_isend_pipeline.cold:0x3f915","MPIDI_OFI_do_am_isend_pipeline.cold:0x3fbad","MPIDI_OFI_do_am_isend_pipeline.cold:0x401bc","MPIDI_OFI_do_am_isend_pipeline.cold:0x4082b","MPIDI_OFI_do_am_isend_pipeline.cold:0x40bbc","MPIDI_OFI_do_am_isend_pipeline.cold:0x40ed2","MPIDI_OFI_do_am_isend_pipeline.cold:0x4151b","MPIDI_OFI_do_am_isend_pipeline.cold:0x4174f","MPIDI_OFI_do_am_isend_pipeline.cold:0x4194e","MPIDI_OFI_do_am_isend_pipeline.cold:0x41c80","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x35cbf","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x36cf6","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x3872f","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x38c06","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x390e2","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x395b6","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x403e4","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x405ec","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x40a12","MPIDI_OFI_do_am_isend_pipeline.constprop.0.cold:0x40a84","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x108390","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x10d610","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x1129d0","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x14aee0","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x1abba0","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x2539e0","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x270c40","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x28dda0","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x2abb70","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x5e2e40","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x5ed9d0","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x60e430","MPIDI_OFI_do_am_isend_pipeline.constprop.0:0x614d60","MPIDI_OFI_do_am_isend_pipeline:0x1235d0","MPIDI_OFI_do_am_isend_pipeline:0x137ad0","MPIDI_OFI_do_am_isend_pipeline:0x1584c0","MPIDI_OFI_do_am_isend_pipeline:0x16f080","MPIDI_OFI_do_am_isend_pipeline:0x181800","MPIDI_OFI_do_am_isend_pipeline:0x196630","MPIDI_OFI_do_am_isend_pipeline:0x1bbbc0","MPIDI_OFI_do_am_isend_pipeline:0x1d8aa0","MPIDI_OFI_do_am_isend_pipeline:0x1f0110","MPIDI_OFI_do_am_isend_pipeline:0x206ad0","MPIDI_OFI_do_am_isend_pipeline:0x221030","MPIDI_OFI_do_am_isend_pipeline:0x234550","MPIDI_OFI_do_am_isend_pipeline:0x244b50","MPIDI_OFI_do_am_isend_pipeline:0x25f240","MPIDI_OFI_do_am_isend_pipeline:0x27ce90","MPIDI_OFI_do_am_isend_pipeline:0x299680","MPIDI_OFI_do_am_isend_pipeline:0x2bacc0","MPIDI_OFI_do_am_isend_pipeline:0x2cd0e0","MPIDI_OFI_do_am_isend_pipeline:0x2dc830","MPIDI_OFI_do_am_isend_pipeline:0x2ec050","MPIDI_OFI_do_am_isend_pipeline:0x2fb7b0","MPIDI_OFI_do_am_isend_pipeline:0x30af60","MPIDI_OFI_do_am_isend_pipeline:0x31ba70","MPIDI_OFI_do_am_isend_pipeline:0x32a7b0","MPIDI_OFI_do_am_isend_pipeline:0x33d0b0","MPIDI_OFI_do_am_isend_pipeline:0x34bc50","MPIDI_OFI_do_am_isend_pipeline:0x359e40","MPIDI_OFI_do_am_isend_pipeline:0x36a510","MPIDI_OFI_do_am_isend_pipeline:0x37a580","MPIDI_OFI_do_am_isend_pipeline:0x41fb80","MPIDI_OFI_do_am_isend_pipeline:0x45d000","MPIDI_OFI_do_am_isend_pipeline:0x47af60","MPIDI_OFI_do_am_isend_pipeline:0x497cd0","MPIDI_OFI_do_am_isend_pipeline:0x4bbb40","MPIDI_OFI_do_am_isend_pipeline:0x4fb5c0","MPIDI_OFI_do_am_isend_pipeline:0x50c480","MPIDI_OFI_do_am_isend_pipeline:0x5229d0","MPIDI_OFI_do_am_isend_pipeline:0x534530","MPIDI_OFI_do_am_isend_pipeline:0x54c240","MPIDI_OFI_do_am_isend_pipeline:0x5680b0","MPIDI_OFI_do_am_isend_pipeline:0x5cff50","MPIDI_OFI_do_am_isend_pipeline:0x600a00","MPIDI_OFI_do_am_isend_pipeline:0x61d800","MPIDI_OFI_do_am_isend_pipeline:0x635940","MPIDI_OFI_do_am_isend_pipeline:0x676020","MPIDI_OFI_do_am_isend_pipeline:0x6919f0","MPIDI_OFI_do_am_isend_pipeline:0x6a1810","MPIDI_OFI_do_am_isend_pipeline:0x6c16c0","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x108da0","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x10e020","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x1133e0","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x148e90","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x1aa6f0","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x2520f0","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x26ee00","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x28c620","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x2a9f10","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x5e39a0","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x5ee540","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x60ef40","MPIDI_OFI_do_am_isend_rdma_read.constprop.0:0x613880","MPIDI_OFI_do_am_isend_rdma_read:0x1207f0","MPIDI_OFI_do_am_isend_rdma_read:0x134cf0","MPIDI_OFI_do_am_isend_rdma_read:0x154ae0","MPIDI_OFI_do_am_isend_rdma_read:0x16b6a0","MPIDI_OFI_do_am_isend_rdma_read:0x17ea20","MPIDI_OFI_do_am_isend_rdma_read:0x193850","MPIDI_OFI_do_am_isend_rdma_read:0x1b81d0","MPIDI_OFI_do_am_isend_rdma_read:0x1d50b0","MPIDI_OFI_do_am_isend_rdma_read:0x1ec620","MPIDI_OFI_do_am_isend_rdma_read:0x202fe0","MPIDI_OFI_do_am_isend_rdma_read:0x21e250","MPIDI_OFI_do_am_isend_rdma_read:0x231770","MPIDI_OFI_do_am_isend_rdma_read:0x241d70","MPIDI_OFI_do_am_isend_rdma_read:0x25c460","MPIDI_OFI_do_am_isend_rdma_read:0x27a0b0","MPIDI_OFI_do_am_isend_rdma_read:0x2968a0","MPIDI_OFI_do_am_isend_rdma_read:0x2b7ed0","MPIDI_OFI_do_am_isend_rdma_read:0x2ca300","MPIDI_OFI_do_am_isend_rdma_read:0x2d9a50","MPIDI_OFI_do_am_isend_rdma_read:0x2e9270","MPIDI_OFI_do_am_isend_rdma_read:0x2f89d0","MPIDI_OFI_do_am_isend_rdma_read:0x308180","MPIDI_OFI_do_am_isend_rdma_read:0x318c80","MPIDI_OFI_do_am_isend_rdma_read:0x3279c0","MPIDI_OFI_do_am_isend_rdma_read:0x33a2d0","MPIDI_OFI_do_am_isend_rdma_read:0x348e70","MPIDI_OFI_do_am_isend_rdma_read:0x357050","MPIDI_OFI_do_am_isend_rdma_read:0x367720","MPIDI_OFI_do_am_isend_rdma_read:0x3777a0","MPIDI_OFI_do_am_isend_rdma_read:0x41cda0","MPIDI_OFI_do_am_isend_rdma_read:0x459500","MPIDI_OFI_do_am_isend_rdma_read:0x479a20","MPIDI_OFI_do_am_isend_rdma_read:0x494ef0","MPIDI_OFI_do_am_isend_rdma_read:0x4b8d60","MPIDI_OFI_do_am_isend_rdma_read:0x4f87e0","MPIDI_OFI_do_am_isend_rdma_read:0x508a90","MPIDI_OFI_do_am_isend_rdma_read:0x51fbd0","MPIDI_OFI_do_am_isend_rdma_read:0x531460","MPIDI_OFI_do_am_isend_rdma_read:0x549460","MPIDI_OFI_do_am_isend_rdma_read:0x5646c0","MPIDI_OFI_do_am_isend_rdma_read:0x5cc570","MPIDI_OFI_do_am_isend_rdma_read:0x5fdc20","MPIDI_OFI_do_am_isend_rdma_read:0x619d10","MPIDI_OFI_do_am_isend_rdma_read:0x631e50","MPIDI_OFI_do_am_isend_rdma_read:0x672060","MPIDI_OFI_do_am_isend_rdma_read:0x68ec10","MPIDI_OFI_do_am_isend_rdma_read:0x6a2a50","MPIDI_OFI_do_am_isend_rdma_read:0x6bdcd0","MPIDI_OFI_do_get_accumulate","MPIDI_OFI_do_get_accumulate.cold","MPIDI_OFI_do_get_accumulate.constprop.0","MPIDI_OFI_do_get_accumulate.constprop.0.cold","MPIDI_OFI_do_inject:0x147f90","MPIDI_OFI_do_inject:0x153910","MPIDI_OFI_do_inject:0x16a4d0","MPIDI_OFI_do_inject:0x1a9550","MPIDI_OFI_do_inject:0x1b7000","MPIDI_OFI_do_inject:0x1d3ee0","MPIDI_OFI_do_inject:0x1eb160","MPIDI_OFI_do_inject:0x201b20","MPIDI_OFI_do_inject:0x458030","MPIDI_OFI_do_inject:0x5075c0","MPIDI_OFI_do_inject:0x51ea00","MPIDI_OFI_do_inject:0x5626e0","MPIDI_OFI_do_inject:0x5cb3a0","MPIDI_OFI_do_inject:0x5e1c70","MPIDI_OFI_do_inject:0x5ea5e0","MPIDI_OFI_do_inject:0x618850","MPIDI_OFI_do_inject:0x630990","MPIDI_OFI_do_inject:0x670a30","MPIDI_OFI_do_inject:0x6bc800","MPIDI_OFI_do_iprobe.constprop.0:0x124940","MPIDI_OFI_do_iprobe.constprop.0:0x138e40","MPIDI_OFI_do_iprobe.constprop.0:0x182b70","MPIDI_OFI_do_iprobe.constprop.0:0x1979a0","MPIDI_OFI_do_iprobe.constprop.0:0x45e3f0","MPIDI_OFI_do_iprobe.constprop.0:0x48aa00","MPIDI_OFI_do_rdma_read.cold","MPIDI_OFI_do_rdma_read:0x660ae0","MPIDI_OFI_do_rdma_read:0x66b460","MPIDI_OFI_dynamic_recv","MPIDI_OFI_dynamic_send","MPIDI_OFI_find_provider","MPIDI_OFI_find_provider_cleanup","MPIDI_OFI_get_local_upids","MPIDI_OFI_get_local_upids.cold","MPIDI_OFI_get_required_version","MPIDI_OFI_handle_cq_error","MPIDI_OFI_handle_cq_error.cold","MPIDI_OFI_handle_eq_error","MPIDI_OFI_huge_chunk_done_event","MPIDI_OFI_index_datatypes","MPIDI_OFI_init_hints","MPIDI_OFI_init_local","MPIDI_OFI_init_multi_nic","MPIDI_OFI_init_settings","MPIDI_OFI_init_world","MPIDI_OFI_issue_deferred_rma","MPIDI_OFI_match_provider","MPIDI_OFI_mpi_alloc_mem","MPIDI_OFI_mpi_comm_commit_post_hook","MPIDI_OFI_mpi_comm_commit_pre_hook","MPIDI_OFI_mpi_comm_free_hook","MPIDI_OFI_mpi_finalize_hook","MPIDI_OFI_mpi_free_mem","MPIDI_OFI_mpi_op_commit_hook","MPIDI_OFI_mpi_op_free_hook","MPIDI_OFI_mpi_precv_init","MPIDI_OFI_mpi_psend_init","MPIDI_OFI_mpi_type_commit_hook","MPIDI_OFI_mpi_type_free_hook","MPIDI_OFI_mpi_win_allocate","MPIDI_OFI_mpi_win_allocate_hook","MPIDI_OFI_mpi_win_allocate_shared","MPIDI_OFI_mpi_win_allocate_shared_hook","MPIDI_OFI_mpi_win_attach","MPIDI_OFI_mpi_win_attach_hook","MPIDI_OFI_mpi_win_create","MPIDI_OFI_mpi_win_create_dynamic","MPIDI_OFI_mpi_win_create_dynamic_hook","MPIDI_OFI_mpi_win_create_hook","MPIDI_OFI_mpi_win_detach","MPIDI_OFI_mpi_win_detach_hook","MPIDI_OFI_mpi_win_free","MPIDI_OFI_mpi_win_free_hook","MPIDI_OFI_mpi_win_free_hook.cold","MPIDI_OFI_mpi_win_get_info","MPIDI_OFI_mpi_win_set_info","MPIDI_OFI_mr_key_alloc","MPIDI_OFI_mr_key_allocator_destroy","MPIDI_OFI_mr_key_allocator_init","MPIDI_OFI_mr_key_free","MPIDI_OFI_nic_already_used","MPIDI_OFI_nic_is_up","MPIDI_OFI_nopack_putget","MPIDI_OFI_pack_get","MPIDI_OFI_pack_get.cold","MPIDI_OFI_pack_put","MPIDI_OFI_pack_put.cold","MPIDI_OFI_peek_huge_event","MPIDI_OFI_post_init","MPIDI_OFI_progress_do_queue.constprop.0:0x107060","MPIDI_OFI_progress_do_queue.constprop.0:0x10c2e0","MPIDI_OFI_progress_do_queue.constprop.0:0x1116a0","MPIDI_OFI_progress_do_queue.constprop.0:0x11e8e0","MPIDI_OFI_progress_do_queue.constprop.0:0x12c8e0","MPIDI_OFI_progress_do_queue.constprop.0:0x132de0","MPIDI_OFI_progress_do_queue.constprop.0:0x140ea0","MPIDI_OFI_progress_do_queue.constprop.0:0x147230","MPIDI_OFI_progress_do_queue.constprop.0:0x152430","MPIDI_OFI_progress_do_queue.constprop.0:0x168ff0","MPIDI_OFI_progress_do_queue.constprop.0:0x17cb10","MPIDI_OFI_progress_do_queue.constprop.0:0x18b010","MPIDI_OFI_progress_do_queue.constprop.0:0x191940","MPIDI_OFI_progress_do_queue.constprop.0:0x19fd30","MPIDI_OFI_progress_do_queue.constprop.0:0x1a8a90","MPIDI_OFI_progress_do_queue.constprop.0:0x1b5b10","MPIDI_OFI_progress_do_queue.constprop.0:0x1c8550","MPIDI_OFI_progress_do_queue.constprop.0:0x1d29f0","MPIDI_OFI_progress_do_queue.constprop.0:0x1e9c80","MPIDI_OFI_progress_do_queue.constprop.0:0x200930","MPIDI_OFI_progress_do_queue.constprop.0:0x21c340","MPIDI_OFI_progress_do_queue.constprop.0:0x22f860","MPIDI_OFI_progress_do_queue.constprop.0:0x23fe60","MPIDI_OFI_progress_do_queue.constprop.0:0x250e00","MPIDI_OFI_progress_do_queue.constprop.0:0x25a550","MPIDI_OFI_progress_do_queue.constprop.0:0x26da00","MPIDI_OFI_progress_do_queue.constprop.0:0x2781a0","MPIDI_OFI_progress_do_queue.constprop.0:0x28b1b0","MPIDI_OFI_progress_do_queue.constprop.0:0x294990","MPIDI_OFI_progress_do_queue.constprop.0:0x2a8990","MPIDI_OFI_progress_do_queue.constprop.0:0x2b5db0","MPIDI_OFI_progress_do_queue.constprop.0:0x2c83f0","MPIDI_OFI_progress_do_queue.constprop.0:0x2d7b40","MPIDI_OFI_progress_do_queue.constprop.0:0x2e7360","MPIDI_OFI_progress_do_queue.constprop.0:0x2f6ac0","MPIDI_OFI_progress_do_queue.constprop.0:0x306270","MPIDI_OFI_progress_do_queue.constprop.0:0x316b60","MPIDI_OFI_progress_do_queue.constprop.0:0x3258a0","MPIDI_OFI_progress_do_queue.constprop.0:0x333560","MPIDI_OFI_progress_do_queue.constprop.0:0x3383c0","MPIDI_OFI_progress_do_queue.constprop.0:0x346f60","MPIDI_OFI_progress_do_queue.constprop.0:0x354f30","MPIDI_OFI_progress_do_queue.constprop.0:0x365600","MPIDI_OFI_progress_do_queue.constprop.0:0x375890","MPIDI_OFI_progress_do_queue.constprop.0:0x41ae90","MPIDI_OFI_progress_do_queue.constprop.0:0x456e30","MPIDI_OFI_progress_do_queue.constprop.0:0x478190","MPIDI_OFI_progress_do_queue.constprop.0:0x492fe0","MPIDI_OFI_progress_do_queue.constprop.0:0x4b6e50","MPIDI_OFI_progress_do_queue.constprop.0:0x4f68d0","MPIDI_OFI_progress_do_queue.constprop.0:0x5063c0","MPIDI_OFI_progress_do_queue.constprop.0:0x51cde0","MPIDI_OFI_progress_do_queue.constprop.0:0x52f190","MPIDI_OFI_progress_do_queue.constprop.0:0x547550","MPIDI_OFI_progress_do_queue.constprop.0:0x5612e0","MPIDI_OFI_progress_do_queue.constprop.0:0x5c9fd0","MPIDI_OFI_progress_do_queue.constprop.0:0x5e0c20","MPIDI_OFI_progress_do_queue.constprop.0:0x5e9240","MPIDI_OFI_progress_do_queue.constprop.0:0x5f9ec0","MPIDI_OFI_progress_do_queue.constprop.0:0x60a820","MPIDI_OFI_progress_do_queue.constprop.0:0x60cd60","MPIDI_OFI_progress_do_queue.constprop.0:0x612b50","MPIDI_OFI_progress_do_queue.constprop.0:0x617660","MPIDI_OFI_progress_do_queue.constprop.0:0x62f4b0","MPIDI_OFI_progress_do_queue.constprop.0:0x644ef0","MPIDI_OFI_progress_do_queue.constprop.0:0x64e790","MPIDI_OFI_progress_do_queue.constprop.0:0x6608e0","MPIDI_OFI_progress_do_queue.constprop.0:0x663e30","MPIDI_OFI_progress_do_queue.constprop.0:0x6678f0","MPIDI_OFI_progress_do_queue.constprop.0:0x66f450","MPIDI_OFI_progress_do_queue.constprop.0:0x68cd00","MPIDI_OFI_progress_do_queue.constprop.0:0x69dde0","MPIDI_OFI_progress_do_queue.constprop.0:0x6bb460","MPIDI_OFI_progress_uninlined","MPIDI_OFI_recv_event","MPIDI_OFI_recv_event.cold","MPIDI_OFI_recv_event.constprop.0.cold:0x355e2","MPIDI_OFI_recv_event.constprop.0.cold:0x3597f","MPIDI_OFI_recv_event.constprop.0.cold:0x35e41","MPIDI_OFI_recv_event.constprop.0.cold:0x36263","MPIDI_OFI_recv_event.constprop.0.cold:0x3656b","MPIDI_OFI_recv_event.constprop.0.cold:0x36908","MPIDI_OFI_recv_event.constprop.0.cold:0x36f61","MPIDI_OFI_recv_event.constprop.0.cold:0x37283","MPIDI_OFI_recv_event.constprop.0.cold:0x374d6","MPIDI_OFI_recv_event.constprop.0.cold:0x378a7","MPIDI_OFI_recv_event.constprop.0.cold:0x37bbd","MPIDI_OFI_recv_event.constprop.0.cold:0x37eb1","MPIDI_OFI_recv_event.constprop.0.cold:0x3820c","MPIDI_OFI_recv_event.constprop.0.cold:0x38479","MPIDI_OFI_recv_event.constprop.0.cold:0x38887","MPIDI_OFI_recv_event.constprop.0.cold:0x38d7f","MPIDI_OFI_recv_event.constprop.0.cold:0x3923a","MPIDI_OFI_recv_event.constprop.0.cold:0x3972f","MPIDI_OFI_recv_event.constprop.0.cold:0x39984","MPIDI_OFI_recv_event.constprop.0.cold:0x39bb8","MPIDI_OFI_recv_event.constprop.0.cold:0x39dec","MPIDI_OFI_recv_event.constprop.0.cold:0x3a041","MPIDI_OFI_recv_event.constprop.0.cold:0x3a275","MPIDI_OFI_recv_event.constprop.0.cold:0x3a4ca","MPIDI_OFI_recv_event.constprop.0.cold:0x3a6c8","MPIDI_OFI_recv_event.constprop.0.cold:0x3a917","MPIDI_OFI_recv_event.constprop.0.cold:0x3ab36","MPIDI_OFI_recv_event.constprop.0.cold:0x3ad34","MPIDI_OFI_recv_event.constprop.0.cold:0x3af68","MPIDI_OFI_recv_event.constprop.0.cold:0x3b1bd","MPIDI_OFI_recv_event.constprop.0.cold:0x3d39d","MPIDI_OFI_recv_event.constprop.0.cold:0x3d7a0","MPIDI_OFI_recv_event.constprop.0.cold:0x3dc8d","MPIDI_OFI_recv_event.constprop.0.cold:0x3dd12","MPIDI_OFI_recv_event.constprop.0.cold:0x3e279","MPIDI_OFI_recv_event.constprop.0.cold:0x3ee58","MPIDI_OFI_recv_event.constprop.0.cold:0x3f108","MPIDI_OFI_recv_event.constprop.0.cold:0x3f3fc","MPIDI_OFI_recv_event.constprop.0.cold:0x3f61b","MPIDI_OFI_recv_event.constprop.0.cold:0x3f8b2","MPIDI_OFI_recv_event.constprop.0.cold:0x3fb08","MPIDI_OFI_recv_event.constprop.0.cold:0x40117","MPIDI_OFI_recv_event.constprop.0.cold:0x407c8","MPIDI_OFI_recv_event.constprop.0.cold:0x40b17","MPIDI_OFI_recv_event.constprop.0.cold:0x40e2d","MPIDI_OFI_recv_event.constprop.0.cold:0x4111a","MPIDI_OFI_recv_event.constprop.0.cold:0x41184","MPIDI_OFI_recv_event.constprop.0.cold:0x41440","MPIDI_OFI_recv_event.constprop.0.cold:0x414b8","MPIDI_OFI_recv_event.constprop.0.cold:0x416ec","MPIDI_OFI_recv_event.constprop.0.cold:0x41a99","MPIDI_OFI_recv_event.constprop.0.cold:0x41bdb","MPIDI_OFI_recv_event.constprop.0:0x1220c0","MPIDI_OFI_recv_event.constprop.0:0x1365c0","MPIDI_OFI_recv_event.constprop.0:0x1563b0","MPIDI_OFI_recv_event.constprop.0:0x16cf70","MPIDI_OFI_recv_event.constprop.0:0x1802f0","MPIDI_OFI_recv_event.constprop.0:0x195120","MPIDI_OFI_recv_event.constprop.0:0x1b9aa0","MPIDI_OFI_recv_event.constprop.0:0x1c9d60","MPIDI_OFI_recv_event.constprop.0:0x1d6980","MPIDI_OFI_recv_event.constprop.0:0x1edef0","MPIDI_OFI_recv_event.constprop.0:0x2048b0","MPIDI_OFI_recv_event.constprop.0:0x21fb20","MPIDI_OFI_recv_event.constprop.0:0x233040","MPIDI_OFI_recv_event.constprop.0:0x243640","MPIDI_OFI_recv_event.constprop.0:0x25dd30","MPIDI_OFI_recv_event.constprop.0:0x27b980","MPIDI_OFI_recv_event.constprop.0:0x298170","MPIDI_OFI_recv_event.constprop.0:0x2b97a0","MPIDI_OFI_recv_event.constprop.0:0x2cbbd0","MPIDI_OFI_recv_event.constprop.0:0x2db320","MPIDI_OFI_recv_event.constprop.0:0x2eab40","MPIDI_OFI_recv_event.constprop.0:0x2fa2a0","MPIDI_OFI_recv_event.constprop.0:0x309a50","MPIDI_OFI_recv_event.constprop.0:0x31a550","MPIDI_OFI_recv_event.constprop.0:0x329290","MPIDI_OFI_recv_event.constprop.0:0x33bba0","MPIDI_OFI_recv_event.constprop.0:0x34a740","MPIDI_OFI_recv_event.constprop.0:0x358920","MPIDI_OFI_recv_event.constprop.0:0x368ff0","MPIDI_OFI_recv_event.constprop.0:0x379070","MPIDI_OFI_recv_event.constprop.0:0x41e670","MPIDI_OFI_recv_event.constprop.0:0x45add0","MPIDI_OFI_recv_event.constprop.0:0x488600","MPIDI_OFI_recv_event.constprop.0:0x4967c0","MPIDI_OFI_recv_event.constprop.0:0x4ba630","MPIDI_OFI_recv_event.constprop.0:0x4fa0b0","MPIDI_OFI_recv_event.constprop.0:0x50a360","MPIDI_OFI_recv_event.constprop.0:0x5214a0","MPIDI_OFI_recv_event.constprop.0:0x533130","MPIDI_OFI_recv_event.constprop.0:0x54ad30","MPIDI_OFI_recv_event.constprop.0:0x565f90","MPIDI_OFI_recv_event.constprop.0:0x5cde40","MPIDI_OFI_recv_event.constprop.0:0x5ff4f0","MPIDI_OFI_recv_event.constprop.0:0x61b5e0","MPIDI_OFI_recv_event.constprop.0:0x633720","MPIDI_OFI_recv_event.constprop.0:0x645ec0","MPIDI_OFI_recv_event.constprop.0:0x64f9d0","MPIDI_OFI_recv_event.constprop.0:0x6688c0","MPIDI_OFI_recv_event.constprop.0:0x673920","MPIDI_OFI_recv_event.constprop.0:0x6904e0","MPIDI_OFI_recv_event.constprop.0:0x6aa1e0","MPIDI_OFI_recv_event.constprop.0:0x6bf5a0","MPIDI_OFI_recv_huge_control","MPIDI_OFI_recv_huge_event","MPIDI_OFI_retry_progress","MPIDI_OFI_send.constprop.0.cold:0x35d29","MPIDI_OFI_send.constprop.0.cold:0x35f28","MPIDI_OFI_send.constprop.0.cold:0x3634a","MPIDI_OFI_send.constprop.0.cold:0x36d60","MPIDI_OFI_send.constprop.0.cold:0x37048","MPIDI_OFI_send.constprop.0.cold:0x375bd","MPIDI_OFI_send.constprop.0.cold:0x3798e","MPIDI_OFI_send.constprop.0.cold:0x37ca4","MPIDI_OFI_send.constprop.0.cold:0x3d887","MPIDI_OFI_send.constprop.0.cold:0x3f1ef","MPIDI_OFI_send.constprop.0.cold:0x3fbef","MPIDI_OFI_send.constprop.0.cold:0x401fe","MPIDI_OFI_send.constprop.0.cold:0x40bfe","MPIDI_OFI_send.constprop.0.cold:0x40f14","MPIDI_OFI_send.constprop.0.cold:0x41ce9","MPIDI_OFI_send.constprop.0:0x14cbe0","MPIDI_OFI_send.constprop.0:0x15a5e0","MPIDI_OFI_send.constprop.0:0x1711a0","MPIDI_OFI_send.constprop.0:0x1ad8a0","MPIDI_OFI_send.constprop.0:0x1bdce0","MPIDI_OFI_send.constprop.0:0x1dabc0","MPIDI_OFI_send.constprop.0:0x1f2230","MPIDI_OFI_send.constprop.0:0x208bf0","MPIDI_OFI_send.constprop.0:0x45fb70","MPIDI_OFI_send.constprop.0:0x50e5a0","MPIDI_OFI_send.constprop.0:0x56a1d0","MPIDI_OFI_send.constprop.0:0x5d2070","MPIDI_OFI_send.constprop.0:0x61f920","MPIDI_OFI_send.constprop.0:0x637a60","MPIDI_OFI_send.constprop.0:0x6c3ed0","MPIDI_OFI_send_event.constprop.0.cold:0x355a0","MPIDI_OFI_send_event.constprop.0.cold:0x3593d","MPIDI_OFI_send_event.constprop.0.cold:0x36529","MPIDI_OFI_send_event.constprop.0.cold:0x368c6","MPIDI_OFI_send_event.constprop.0.cold:0x37220","MPIDI_OFI_send_event.constprop.0.cold:0x37e6f","MPIDI_OFI_send_event.constprop.0.cold:0x381ca","MPIDI_OFI_send_event.constprop.0.cold:0x38437","MPIDI_OFI_send_event.constprop.0.cold:0x38845","MPIDI_OFI_send_event.constprop.0.cold:0x38d3d","MPIDI_OFI_send_event.constprop.0.cold:0x391f8","MPIDI_OFI_send_event.constprop.0.cold:0x396ed","MPIDI_OFI_send_event.constprop.0.cold:0x39942","MPIDI_OFI_send_event.constprop.0.cold:0x39b76","MPIDI_OFI_send_event.constprop.0.cold:0x39daa","MPIDI_OFI_send_event.constprop.0.cold:0x39fff","MPIDI_OFI_send_event.constprop.0.cold:0x3a233","MPIDI_OFI_send_event.constprop.0.cold:0x3a488","MPIDI_OFI_send_event.constprop.0.cold:0x3a686","MPIDI_OFI_send_event.constprop.0.cold:0x3a8d5","MPIDI_OFI_send_event.constprop.0.cold:0x3aaf4","MPIDI_OFI_send_event.constprop.0.cold:0x3acf2","MPIDI_OFI_send_event.constprop.0.cold:0x3af26","MPIDI_OFI_send_event.constprop.0.cold:0x3b17b","MPIDI_OFI_send_event.constprop.0.cold:0x3d35b","MPIDI_OFI_send_event.constprop.0.cold:0x3dc4b","MPIDI_OFI_send_event.constprop.0.cold:0x3dcd0","MPIDI_OFI_send_event.constprop.0.cold:0x3e237","MPIDI_OFI_send_event.constprop.0.cold:0x3ee16","MPIDI_OFI_send_event.constprop.0.cold:0x3f5d9","MPIDI_OFI_send_event.constprop.0.cold:0x3f870","MPIDI_OFI_send_event.constprop.0.cold:0x40786","MPIDI_OFI_send_event.constprop.0.cold:0x410d8","MPIDI_OFI_send_event.constprop.0.cold:0x41142","MPIDI_OFI_send_event.constprop.0.cold:0x413fe","MPIDI_OFI_send_event.constprop.0.cold:0x41476","MPIDI_OFI_send_event.constprop.0.cold:0x416aa","MPIDI_OFI_send_event.constprop.0.cold:0x418ca","MPIDI_OFI_send_event.constprop.0:0x11fbb0","MPIDI_OFI_send_event.constprop.0:0x1340b0","MPIDI_OFI_send_event.constprop.0:0x17dde0","MPIDI_OFI_send_event.constprop.0:0x192c10","MPIDI_OFI_send_event.constprop.0:0x1c9120","MPIDI_OFI_send_event.constprop.0:0x21d610","MPIDI_OFI_send_event.constprop.0:0x230b30","MPIDI_OFI_send_event.constprop.0:0x241130","MPIDI_OFI_send_event.constprop.0:0x25b820","MPIDI_OFI_send_event.constprop.0:0x279470","MPIDI_OFI_send_event.constprop.0:0x295c60","MPIDI_OFI_send_event.constprop.0:0x2b7290","MPIDI_OFI_send_event.constprop.0:0x2c96c0","MPIDI_OFI_send_event.constprop.0:0x2d8e10","MPIDI_OFI_send_event.constprop.0:0x2e8630","MPIDI_OFI_send_event.constprop.0:0x2f7d90","MPIDI_OFI_send_event.constprop.0:0x307540","MPIDI_OFI_send_event.constprop.0:0x318040","MPIDI_OFI_send_event.constprop.0:0x326d80","MPIDI_OFI_send_event.constprop.0:0x339690","MPIDI_OFI_send_event.constprop.0:0x348230","MPIDI_OFI_send_event.constprop.0:0x356410","MPIDI_OFI_send_event.constprop.0:0x366ae0","MPIDI_OFI_send_event.constprop.0:0x376b60","MPIDI_OFI_send_event.constprop.0:0x41c160","MPIDI_OFI_send_event.constprop.0:0x4880f0","MPIDI_OFI_send_event.constprop.0:0x4942b0","MPIDI_OFI_send_event.constprop.0:0x4b8120","MPIDI_OFI_send_event.constprop.0:0x4f7ba0","MPIDI_OFI_send_event.constprop.0:0x530820","MPIDI_OFI_send_event.constprop.0:0x548820","MPIDI_OFI_send_event.constprop.0:0x5fcfe0","MPIDI_OFI_send_event.constprop.0:0x6459b0","MPIDI_OFI_send_event.constprop.0:0x64f4c0","MPIDI_OFI_send_event.constprop.0:0x6683b0","MPIDI_OFI_send_event.constprop.0:0x671420","MPIDI_OFI_send_event.constprop.0:0x68dfd0","MPIDI_OFI_send_event.constprop.0:0x69fa90","MPIDI_OFI_send_event.part.0.cold:0x35dff","MPIDI_OFI_send_event.part.0.cold:0x36221","MPIDI_OFI_send_event.part.0.cold:0x36f1f","MPIDI_OFI_send_event.part.0.cold:0x37494","MPIDI_OFI_send_event.part.0.cold:0x37865","MPIDI_OFI_send_event.part.0.cold:0x37b7b","MPIDI_OFI_send_event.part.0.cold:0x3d75e","MPIDI_OFI_send_event.part.0.cold:0x3f0c6","MPIDI_OFI_send_event.part.0.cold:0x3f3ba","MPIDI_OFI_send_event.part.0.cold:0x3fac6","MPIDI_OFI_send_event.part.0.cold:0x400d5","MPIDI_OFI_send_event.part.0.cold:0x40ad5","MPIDI_OFI_send_event.part.0.cold:0x40deb","MPIDI_OFI_send_event.part.0.cold:0x412b8","MPIDI_OFI_send_event.part.0.cold:0x41b99","MPIDI_OFI_send_event.part.0:0x153ee0","MPIDI_OFI_send_event.part.0:0x16aaa0","MPIDI_OFI_send_event.part.0:0x1b75d0","MPIDI_OFI_send_event.part.0:0x1d44b0","MPIDI_OFI_send_event.part.0:0x1eba20","MPIDI_OFI_send_event.part.0:0x2023e0","MPIDI_OFI_send_event.part.0:0x458900","MPIDI_OFI_send_event.part.0:0x507e90","MPIDI_OFI_send_event.part.0:0x51efd0","MPIDI_OFI_send_event.part.0:0x563ac0","MPIDI_OFI_send_event.part.0:0x5cb970","MPIDI_OFI_send_event.part.0:0x619110","MPIDI_OFI_send_event.part.0:0x631250","MPIDI_OFI_send_event.part.0:0x65ef00","MPIDI_OFI_send_event.part.0:0x6bd0d0","MPIDI_OFI_set_auto_progress","MPIDI_OFI_tamo","MPIDI_OFI_tamo.cold","MPIDI_OFI_update_global_settings","MPIDI_OFI_upids_to_gpids","MPIDI_OFI_win_do_progress:0x222bf0","MPIDI_OFI_win_do_progress:0x236820","MPIDI_OFI_win_do_progress:0x246710","MPIDI_OFI_win_do_progress:0x260e00","MPIDI_OFI_win_do_progress:0x27ea50","MPIDI_OFI_win_do_progress:0x29b240","MPIDI_OFI_win_do_progress:0x2bc880","MPIDI_OFI_win_do_progress:0x2ceca0","MPIDI_OFI_win_do_progress:0x2de3f0","MPIDI_OFI_win_do_progress:0x2edc10","MPIDI_OFI_win_do_progress:0x2fd370","MPIDI_OFI_win_do_progress:0x30cb20","MPIDI_OFI_win_do_progress:0x35ba00","MPIDI_OFI_win_do_progress:0x36c0d0","MPIDI_OFI_win_do_progress:0x677be0","MPIDI_OFI_win_request_complete.cold:0x37f35","MPIDI_OFI_win_request_complete.cold:0x38290","MPIDI_OFI_win_request_complete.cold:0x384fd","MPIDI_OFI_win_request_complete.cold:0x3890b","MPIDI_OFI_win_request_complete.cold:0x38e03","MPIDI_OFI_win_request_complete.cold:0x392be","MPIDI_OFI_win_request_complete.cold:0x397b3","MPIDI_OFI_win_request_complete.cold:0x39a08","MPIDI_OFI_win_request_complete.cold:0x39c3c","MPIDI_OFI_win_request_complete.cold:0x39e70","MPIDI_OFI_win_request_complete.cold:0x3a0c5","MPIDI_OFI_win_request_complete.cold:0x3a2f9","MPIDI_OFI_win_request_complete.cold:0x3adb8","MPIDI_OFI_win_request_complete.cold:0x3afec","MPIDI_OFI_win_request_complete.cold:0x4153c","MPIDI_OFI_win_request_complete:0x2226e0","MPIDI_OFI_win_request_complete:0x236310","MPIDI_OFI_win_request_complete:0x246200","MPIDI_OFI_win_request_complete:0x2608f0","MPIDI_OFI_win_request_complete:0x27e540","MPIDI_OFI_win_request_complete:0x29ad30","MPIDI_OFI_win_request_complete:0x2bc370","MPIDI_OFI_win_request_complete:0x2ce790","MPIDI_OFI_win_request_complete:0x2ddee0","MPIDI_OFI_win_request_complete:0x2ed700","MPIDI_OFI_win_request_complete:0x2fce60","MPIDI_OFI_win_request_complete:0x30c610","MPIDI_OFI_win_request_complete:0x35b4f0","MPIDI_OFI_win_request_complete:0x36bbc0","MPIDI_OFI_win_request_complete:0x6776d0","MPIDI_POSIX_am_init_req_hdr.part.0:0x11da40","MPIDI_POSIX_am_init_req_hdr.part.0:0x131ee0","MPIDI_POSIX_am_init_req_hdr.part.0:0x146aa0","MPIDI_POSIX_am_init_req_hdr.part.0:0x151760","MPIDI_POSIX_am_init_req_hdr.part.0:0x168320","MPIDI_POSIX_am_init_req_hdr.part.0:0x17bc70","MPIDI_POSIX_am_init_req_hdr.part.0:0x190a40","MPIDI_POSIX_am_init_req_hdr.part.0:0x1a8270","MPIDI_POSIX_am_init_req_hdr.part.0:0x1b4db0","MPIDI_POSIX_am_init_req_hdr.part.0:0x1d1c90","MPIDI_POSIX_am_init_req_hdr.part.0:0x1e8eb0","MPIDI_POSIX_am_init_req_hdr.part.0:0x1ff870","MPIDI_POSIX_am_init_req_hdr.part.0:0x21b370","MPIDI_POSIX_am_init_req_hdr.part.0:0x22e8c0","MPIDI_POSIX_am_init_req_hdr.part.0:0x23ee60","MPIDI_POSIX_am_init_req_hdr.part.0:0x259580","MPIDI_POSIX_am_init_req_hdr.part.0:0x2771a0","MPIDI_POSIX_am_init_req_hdr.part.0:0x293990","MPIDI_POSIX_am_init_req_hdr.part.0:0x2b4db0","MPIDI_POSIX_am_init_req_hdr.part.0:0x2c7420","MPIDI_POSIX_am_init_req_hdr.part.0:0x2d6b70","MPIDI_POSIX_am_init_req_hdr.part.0:0x2e6390","MPIDI_POSIX_am_init_req_hdr.part.0:0x2f5af0","MPIDI_POSIX_am_init_req_hdr.part.0:0x3052a0","MPIDI_POSIX_am_init_req_hdr.part.0:0x315ec0","MPIDI_POSIX_am_init_req_hdr.part.0:0x324c00","MPIDI_POSIX_am_init_req_hdr.part.0:0x337750","MPIDI_POSIX_am_init_req_hdr.part.0:0x3462f0","MPIDI_POSIX_am_init_req_hdr.part.0:0x353f90","MPIDI_POSIX_am_init_req_hdr.part.0:0x364660","MPIDI_POSIX_am_init_req_hdr.part.0:0x374c20","MPIDI_POSIX_am_init_req_hdr.part.0:0x419f10","MPIDI_POSIX_am_init_req_hdr.part.0:0x455bc0","MPIDI_POSIX_am_init_req_hdr.part.0:0x477200","MPIDI_POSIX_am_init_req_hdr.part.0:0x492370","MPIDI_POSIX_am_init_req_hdr.part.0:0x4b61e0","MPIDI_POSIX_am_init_req_hdr.part.0:0x4f5c20","MPIDI_POSIX_am_init_req_hdr.part.0:0x505260","MPIDI_POSIX_am_init_req_hdr.part.0:0x51c0d0","MPIDI_POSIX_am_init_req_hdr.part.0:0x52e230","MPIDI_POSIX_am_init_req_hdr.part.0:0x5468a0","MPIDI_POSIX_am_init_req_hdr.part.0:0x5601c0","MPIDI_POSIX_am_init_req_hdr.part.0:0x5c8e30","MPIDI_POSIX_am_init_req_hdr.part.0:0x5e02d0","MPIDI_POSIX_am_init_req_hdr.part.0:0x5e8dc0","MPIDI_POSIX_am_init_req_hdr.part.0:0x5f9520","MPIDI_POSIX_am_init_req_hdr.part.0:0x60c7b0","MPIDI_POSIX_am_init_req_hdr.part.0:0x616510","MPIDI_POSIX_am_init_req_hdr.part.0:0x62e6e0","MPIDI_POSIX_am_init_req_hdr.part.0:0x66e0f0","MPIDI_POSIX_am_init_req_hdr.part.0:0x68bdc0","MPIDI_POSIX_am_init_req_hdr.part.0:0x69d130","MPIDI_POSIX_am_init_req_hdr.part.0:0x6ba2c0","MPIDI_POSIX_am_send_hdr.constprop.0:0x147430","MPIDI_POSIX_am_send_hdr.constprop.0:0x1a8c90","MPIDI_POSIX_am_send_hdr:0x5e0f30","MPIDI_POSIX_am_send_hdr:0x5e9440","MPIDI_POSIX_coll_finalize","MPIDI_POSIX_coll_init","MPIDI_POSIX_comm_set_hints","MPIDI_POSIX_cray_get_target_vaddr","MPIDI_POSIX_cray_get_target_vaddr.cold","MPIDI_POSIX_cray_rma_shm_finalize","MPIDI_POSIX_cray_rma_shm_init","MPIDI_POSIX_delay_shm_mutex_destroy","MPIDI_POSIX_do_am_isend.cold:0x35603","MPIDI_POSIX_do_am_isend.cold:0x359a0","MPIDI_POSIX_do_am_isend.cold:0x35ea4","MPIDI_POSIX_do_am_isend.cold:0x362c6","MPIDI_POSIX_do_am_isend.cold:0x3658c","MPIDI_POSIX_do_am_isend.cold:0x36929","MPIDI_POSIX_do_am_isend.cold:0x36fc4","MPIDI_POSIX_do_am_isend.cold:0x37539","MPIDI_POSIX_do_am_isend.cold:0x3790a","MPIDI_POSIX_do_am_isend.cold:0x37c20","MPIDI_POSIX_do_am_isend.cold:0x37ed2","MPIDI_POSIX_do_am_isend.cold:0x3822d","MPIDI_POSIX_do_am_isend.cold:0x3849a","MPIDI_POSIX_do_am_isend.cold:0x388a8","MPIDI_POSIX_do_am_isend.cold:0x38da0","MPIDI_POSIX_do_am_isend.cold:0x3925b","MPIDI_POSIX_do_am_isend.cold:0x39750","MPIDI_POSIX_do_am_isend.cold:0x399a5","MPIDI_POSIX_do_am_isend.cold:0x39bd9","MPIDI_POSIX_do_am_isend.cold:0x39e0d","MPIDI_POSIX_do_am_isend.cold:0x3a062","MPIDI_POSIX_do_am_isend.cold:0x3a296","MPIDI_POSIX_do_am_isend.cold:0x3a4eb","MPIDI_POSIX_do_am_isend.cold:0x3a6e9","MPIDI_POSIX_do_am_isend.cold:0x3a938","MPIDI_POSIX_do_am_isend.cold:0x3ab57","MPIDI_POSIX_do_am_isend.cold:0x3ad55","MPIDI_POSIX_do_am_isend.cold:0x3af89","MPIDI_POSIX_do_am_isend.cold:0x3b1de","MPIDI_POSIX_do_am_isend.cold:0x3d3be","MPIDI_POSIX_do_am_isend.cold:0x3d803","MPIDI_POSIX_do_am_isend.cold:0x3dae9","MPIDI_POSIX_do_am_isend.cold:0x3dd33","MPIDI_POSIX_do_am_isend.cold:0x3e29a","MPIDI_POSIX_do_am_isend.cold:0x3ee79","MPIDI_POSIX_do_am_isend.cold:0x3f16b","MPIDI_POSIX_do_am_isend.cold:0x3f41d","MPIDI_POSIX_do_am_isend.cold:0x3f63c","MPIDI_POSIX_do_am_isend.cold:0x3f8d3","MPIDI_POSIX_do_am_isend.cold:0x3fb6b","MPIDI_POSIX_do_am_isend.cold:0x4017a","MPIDI_POSIX_do_am_isend.cold:0x407e9","MPIDI_POSIX_do_am_isend.cold:0x40b7a","MPIDI_POSIX_do_am_isend.cold:0x40e90","MPIDI_POSIX_do_am_isend.cold:0x414d9","MPIDI_POSIX_do_am_isend.cold:0x4170d","MPIDI_POSIX_do_am_isend.cold:0x4190c","MPIDI_POSIX_do_am_isend.cold:0x41c3e","MPIDI_POSIX_do_am_isend.constprop.0.cold:0x386ed","MPIDI_POSIX_do_am_isend.constprop.0.cold:0x38bc4","MPIDI_POSIX_do_am_isend.constprop.0.cold:0x390a0","MPIDI_POSIX_do_am_isend.constprop.0.cold:0x39574","MPIDI_POSIX_do_am_isend.constprop.0.cold:0x4062e","MPIDI_POSIX_do_am_isend.constprop.0:0x253190","MPIDI_POSIX_do_am_isend.constprop.0:0x270240","MPIDI_POSIX_do_am_isend.constprop.0:0x28d6c0","MPIDI_POSIX_do_am_isend.constprop.0:0x2ab350","MPIDI_POSIX_do_am_isend.constprop.0:0x5f05f0","MPIDI_POSIX_do_am_isend:0x122820","MPIDI_POSIX_do_am_isend:0x136d20","MPIDI_POSIX_do_am_isend:0x157700","MPIDI_POSIX_do_am_isend:0x16e2c0","MPIDI_POSIX_do_am_isend:0x180a50","MPIDI_POSIX_do_am_isend:0x195880","MPIDI_POSIX_do_am_isend:0x1bae00","MPIDI_POSIX_do_am_isend:0x1d7ce0","MPIDI_POSIX_do_am_isend:0x1ef350","MPIDI_POSIX_do_am_isend:0x205d10","MPIDI_POSIX_do_am_isend:0x220280","MPIDI_POSIX_do_am_isend:0x2337a0","MPIDI_POSIX_do_am_isend:0x243da0","MPIDI_POSIX_do_am_isend:0x25e490","MPIDI_POSIX_do_am_isend:0x27c0e0","MPIDI_POSIX_do_am_isend:0x2988d0","MPIDI_POSIX_do_am_isend:0x2b9f00","MPIDI_POSIX_do_am_isend:0x2cc330","MPIDI_POSIX_do_am_isend:0x2dba80","MPIDI_POSIX_do_am_isend:0x2eb2a0","MPIDI_POSIX_do_am_isend:0x2faa00","MPIDI_POSIX_do_am_isend:0x30a1b0","MPIDI_POSIX_do_am_isend:0x31acb0","MPIDI_POSIX_do_am_isend:0x3299f0","MPIDI_POSIX_do_am_isend:0x33c300","MPIDI_POSIX_do_am_isend:0x34aea0","MPIDI_POSIX_do_am_isend:0x359080","MPIDI_POSIX_do_am_isend:0x369750","MPIDI_POSIX_do_am_isend:0x3797d0","MPIDI_POSIX_do_am_isend:0x41edd0","MPIDI_POSIX_do_am_isend:0x45c240","MPIDI_POSIX_do_am_isend:0x480580","MPIDI_POSIX_do_am_isend:0x496f20","MPIDI_POSIX_do_am_isend:0x4bad90","MPIDI_POSIX_do_am_isend:0x4fa810","MPIDI_POSIX_do_am_isend:0x50b6c0","MPIDI_POSIX_do_am_isend:0x521c10","MPIDI_POSIX_do_am_isend:0x533780","MPIDI_POSIX_do_am_isend:0x54b490","MPIDI_POSIX_do_am_isend:0x5672f0","MPIDI_POSIX_do_am_isend:0x5cf190","MPIDI_POSIX_do_am_isend:0x5ffc50","MPIDI_POSIX_do_am_isend:0x61ca40","MPIDI_POSIX_do_am_isend:0x634b80","MPIDI_POSIX_do_am_isend:0x674080","MPIDI_POSIX_do_am_isend:0x690c40","MPIDI_POSIX_do_am_isend:0x6a0a60","MPIDI_POSIX_do_am_isend:0x6c0900","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x11ebf0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x1330f0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x17ce20","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x191c50","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x21c650","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x22fb70","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x240170","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x25a860","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2784b0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x294ca0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2c8700","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2d7e50","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2e7670","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x2f6dd0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x306580","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x3386d0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x347270","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x375ba0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x41b090","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x4931e0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x4b7160","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x4f6be0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x52f4a0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x547860","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x5fa0c0","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x68d010","MPIDI_POSIX_do_am_send_hdr.constprop.0:0x69e0f0","MPIDI_POSIX_do_am_send_hdr:0x152740","MPIDI_POSIX_do_am_send_hdr:0x169300","MPIDI_POSIX_do_am_send_hdr:0x1b5e20","MPIDI_POSIX_do_am_send_hdr:0x1d2d00","MPIDI_POSIX_do_am_send_hdr:0x1e9e80","MPIDI_POSIX_do_am_send_hdr:0x200640","MPIDI_POSIX_do_am_send_hdr:0x2b5fb0","MPIDI_POSIX_do_am_send_hdr:0x316e70","MPIDI_POSIX_do_am_send_hdr:0x325bb0","MPIDI_POSIX_do_am_send_hdr:0x355130","MPIDI_POSIX_do_am_send_hdr:0x365800","MPIDI_POSIX_do_am_send_hdr:0x456b40","MPIDI_POSIX_do_am_send_hdr:0x477ea0","MPIDI_POSIX_do_am_send_hdr:0x5060d0","MPIDI_POSIX_do_am_send_hdr:0x51d0f0","MPIDI_POSIX_do_am_send_hdr:0x560ff0","MPIDI_POSIX_do_am_send_hdr:0x5c9bd0","MPIDI_POSIX_do_am_send_hdr:0x617370","MPIDI_POSIX_do_am_send_hdr:0x62f6b0","MPIDI_POSIX_do_am_send_hdr:0x66f160","MPIDI_POSIX_do_am_send_hdr:0x6bb170","MPIDI_POSIX_eager_buf_limit","MPIDI_POSIX_eager_finalize","MPIDI_POSIX_eager_init","MPIDI_POSIX_eager_payload_limit","MPIDI_POSIX_eager_recv_begin","MPIDI_POSIX_eager_recv_commit","MPIDI_POSIX_eager_recv_completed_hook","MPIDI_POSIX_eager_recv_memcpy","MPIDI_POSIX_eager_recv_posted_hook","MPIDI_POSIX_eager_send","MPIDI_POSIX_eager_send.cold","MPIDI_POSIX_init_local","MPIDI_POSIX_init_world","MPIDI_POSIX_iqueue_finalize","MPIDI_POSIX_iqueue_init","MPIDI_POSIX_mpi_alloc_mem","MPIDI_POSIX_mpi_allreduce","MPIDI_POSIX_mpi_allreduce_release_gather","MPIDI_POSIX_mpi_barrier","MPIDI_POSIX_mpi_barrier_release_gather","MPIDI_POSIX_mpi_barrier_release_gather.cold","MPIDI_POSIX_mpi_bcast","MPIDI_POSIX_mpi_bcast_release_gather.part.0","MPIDI_POSIX_mpi_bcast_release_gather.part.0.cold","MPIDI_POSIX_mpi_comm_commit_post_hook","MPIDI_POSIX_mpi_comm_commit_pre_hook","MPIDI_POSIX_mpi_comm_free_hook","MPIDI_POSIX_mpi_finalize_hook","MPIDI_POSIX_mpi_free_mem","MPIDI_POSIX_mpi_iprobe.constprop.0:0x132c20","MPIDI_POSIX_mpi_iprobe.constprop.0:0x191780","MPIDI_POSIX_mpi_iprobe.constprop.0:0x456980","MPIDI_POSIX_mpi_iprobe.constprop.0:0x477d60","MPIDI_POSIX_mpi_irecv.constprop.0:0x144790","MPIDI_POSIX_mpi_irecv.constprop.0:0x1a3a60","MPIDI_POSIX_mpi_irecv.constprop.0:0x1f6720","MPIDI_POSIX_mpi_irecv.constprop.0:0x20d0e0","MPIDI_POSIX_mpi_irecv.constprop.0:0x623e10","MPIDI_POSIX_mpi_irecv.constprop.0:0x63bf50","MPIDI_POSIX_mpi_op_commit_hook","MPIDI_POSIX_mpi_op_free_hook","MPIDI_POSIX_mpi_precv_init","MPIDI_POSIX_mpi_psend_init","MPIDI_POSIX_mpi_reduce:0x440ee0","MPIDI_POSIX_mpi_reduce:0x4c3f40","MPIDI_POSIX_mpi_reduce_release_gather.part.0.cold","MPIDI_POSIX_mpi_reduce_release_gather.part.0:0x440940","MPIDI_POSIX_mpi_reduce_release_gather.part.0:0x4c31a0","MPIDI_POSIX_mpi_release_gather_comm_free","MPIDI_POSIX_mpi_release_gather_comm_init","MPIDI_POSIX_mpi_release_gather_comm_init.cold","MPIDI_POSIX_mpi_release_gather_comm_init_null","MPIDI_POSIX_mpi_release_gather_gather","MPIDI_POSIX_mpi_release_gather_gather.cold","MPIDI_POSIX_mpi_release_gather_release","MPIDI_POSIX_mpi_type_commit_hook","MPIDI_POSIX_mpi_type_free_hook","MPIDI_POSIX_mpi_win_allocate","MPIDI_POSIX_mpi_win_allocate_hook","MPIDI_POSIX_mpi_win_allocate_shared","MPIDI_POSIX_mpi_win_allocate_shared_hook","MPIDI_POSIX_mpi_win_attach","MPIDI_POSIX_mpi_win_attach_hook","MPIDI_POSIX_mpi_win_create","MPIDI_POSIX_mpi_win_create_dynamic","MPIDI_POSIX_mpi_win_create_dynamic_hook","MPIDI_POSIX_mpi_win_create_hook","MPIDI_POSIX_mpi_win_detach","MPIDI_POSIX_mpi_win_detach_hook","MPIDI_POSIX_mpi_win_free","MPIDI_POSIX_mpi_win_free_hook","MPIDI_POSIX_mpi_win_get_info","MPIDI_POSIX_mpi_win_set_info","MPIDI_POSIX_nb_release_gather_comm_free","MPIDI_POSIX_nb_release_gather_comm_init","MPIDI_POSIX_nb_release_gather_comm_init.cold","MPIDI_POSIX_progress.constprop.0:0x123210","MPIDI_POSIX_progress.constprop.0:0x137710","MPIDI_POSIX_progress.constprop.0:0x1580f0","MPIDI_POSIX_progress.constprop.0:0x16ecb0","MPIDI_POSIX_progress.constprop.0:0x181440","MPIDI_POSIX_progress.constprop.0:0x196270","MPIDI_POSIX_progress.constprop.0:0x1bb7f0","MPIDI_POSIX_progress.constprop.0:0x1d86d0","MPIDI_POSIX_progress.constprop.0:0x1efd40","MPIDI_POSIX_progress.constprop.0:0x206700","MPIDI_POSIX_progress.constprop.0:0x220c70","MPIDI_POSIX_progress.constprop.0:0x234190","MPIDI_POSIX_progress.constprop.0:0x244790","MPIDI_POSIX_progress.constprop.0:0x25ee80","MPIDI_POSIX_progress.constprop.0:0x27cad0","MPIDI_POSIX_progress.constprop.0:0x2992c0","MPIDI_POSIX_progress.constprop.0:0x2ba8f0","MPIDI_POSIX_progress.constprop.0:0x2ccd20","MPIDI_POSIX_progress.constprop.0:0x2dc470","MPIDI_POSIX_progress.constprop.0:0x2ebc90","MPIDI_POSIX_progress.constprop.0:0x2fb3f0","MPIDI_POSIX_progress.constprop.0:0x30aba0","MPIDI_POSIX_progress.constprop.0:0x31b6a0","MPIDI_POSIX_progress.constprop.0:0x32a3e0","MPIDI_POSIX_progress.constprop.0:0x33ccf0","MPIDI_POSIX_progress.constprop.0:0x34b890","MPIDI_POSIX_progress.constprop.0:0x359a70","MPIDI_POSIX_progress.constprop.0:0x36a140","MPIDI_POSIX_progress.constprop.0:0x37a1c0","MPIDI_POSIX_progress.constprop.0:0x41f7c0","MPIDI_POSIX_progress.constprop.0:0x45cc30","MPIDI_POSIX_progress.constprop.0:0x480f70","MPIDI_POSIX_progress.constprop.0:0x497910","MPIDI_POSIX_progress.constprop.0:0x4bb780","MPIDI_POSIX_progress.constprop.0:0x4fb200","MPIDI_POSIX_progress.constprop.0:0x50c0b0","MPIDI_POSIX_progress.constprop.0:0x522600","MPIDI_POSIX_progress.constprop.0:0x534170","MPIDI_POSIX_progress.constprop.0:0x54be80","MPIDI_POSIX_progress.constprop.0:0x567ce0","MPIDI_POSIX_progress.constprop.0:0x5cfb80","MPIDI_POSIX_progress.constprop.0:0x600640","MPIDI_POSIX_progress.constprop.0:0x61d430","MPIDI_POSIX_progress.constprop.0:0x635570","MPIDI_POSIX_progress.constprop.0:0x674a70","MPIDI_POSIX_progress.constprop.0:0x691630","MPIDI_POSIX_progress.constprop.0:0x6a1450","MPIDI_POSIX_progress.constprop.0:0x6c12f0","MPIDI_POSIX_progress_recv.constprop.0:0x11da70","MPIDI_POSIX_progress_recv.constprop.0:0x131f10","MPIDI_POSIX_progress_recv.constprop.0:0x1517c0","MPIDI_POSIX_progress_recv.constprop.0:0x168380","MPIDI_POSIX_progress_recv.constprop.0:0x17bca0","MPIDI_POSIX_progress_recv.constprop.0:0x190a70","MPIDI_POSIX_progress_recv.constprop.0:0x1b4ea0","MPIDI_POSIX_progress_recv.constprop.0:0x1d1d80","MPIDI_POSIX_progress_recv.constprop.0:0x1e8fa0","MPIDI_POSIX_progress_recv.constprop.0:0x1ff960","MPIDI_POSIX_progress_recv.constprop.0:0x21b400","MPIDI_POSIX_progress_recv.constprop.0:0x22e920","MPIDI_POSIX_progress_recv.constprop.0:0x23ef20","MPIDI_POSIX_progress_recv.constprop.0:0x259610","MPIDI_POSIX_progress_recv.constprop.0:0x277260","MPIDI_POSIX_progress_recv.constprop.0:0x293a50","MPIDI_POSIX_progress_recv.constprop.0:0x2b4e40","MPIDI_POSIX_progress_recv.constprop.0:0x2c74b0","MPIDI_POSIX_progress_recv.constprop.0:0x2d6c00","MPIDI_POSIX_progress_recv.constprop.0:0x2e6420","MPIDI_POSIX_progress_recv.constprop.0:0x2f5b80","MPIDI_POSIX_progress_recv.constprop.0:0x305330","MPIDI_POSIX_progress_recv.constprop.0:0x315ef0","MPIDI_POSIX_progress_recv.constprop.0:0x324c30","MPIDI_POSIX_progress_recv.constprop.0:0x337780","MPIDI_POSIX_progress_recv.constprop.0:0x346320","MPIDI_POSIX_progress_recv.constprop.0:0x353fc0","MPIDI_POSIX_progress_recv.constprop.0:0x364690","MPIDI_POSIX_progress_recv.constprop.0:0x374c50","MPIDI_POSIX_progress_recv.constprop.0:0x41a1e0","MPIDI_POSIX_progress_recv.constprop.0:0x455ce0","MPIDI_POSIX_progress_recv.constprop.0:0x477290","MPIDI_POSIX_progress_recv.constprop.0:0x4923a0","MPIDI_POSIX_progress_recv.constprop.0:0x4b6210","MPIDI_POSIX_progress_recv.constprop.0:0x4f5c50","MPIDI_POSIX_progress_recv.constprop.0:0x5053b0","MPIDI_POSIX_progress_recv.constprop.0:0x51c130","MPIDI_POSIX_progress_recv.constprop.0:0x52e510","MPIDI_POSIX_progress_recv.constprop.0:0x5468d0","MPIDI_POSIX_progress_recv.constprop.0:0x560310","MPIDI_POSIX_progress_recv.constprop.0:0x5c8ef0","MPIDI_POSIX_progress_recv.constprop.0:0x5f9550","MPIDI_POSIX_progress_recv.constprop.0:0x616600","MPIDI_POSIX_progress_recv.constprop.0:0x62e7d0","MPIDI_POSIX_progress_recv.constprop.0:0x66e1b0","MPIDI_POSIX_progress_recv.constprop.0:0x68c050","MPIDI_POSIX_progress_recv.constprop.0:0x69d160","MPIDI_POSIX_progress_recv.constprop.0:0x6ba380","MPIDI_POSIX_rma_target_cmpl_hook","MPIDI_POSIX_shm_win_init_hook","MPIDI_Reduce_intra_composition_alpha.cold:0x3d684","MPIDI_Reduce_intra_composition_alpha.cold:0x3e452","MPIDI_Reduce_intra_composition_alpha:0x441340","MPIDI_Reduce_intra_composition_alpha:0x4c43a0","MPIDI_Reduce_intra_composition_beta.cold:0x3d6a6","MPIDI_Reduce_intra_composition_beta.cold:0x3e474","MPIDI_Reduce_intra_composition_beta:0x441880","MPIDI_Reduce_intra_composition_beta:0x4c48e0","MPIDI_Reduce_intra_composition_gamma.part.0:0x41a0f0","MPIDI_Reduce_intra_composition_gamma.part.0:0x4b61b0","MPIDI_SHM_comm_set_hints","MPIDI_SHM_copy_tree","MPIDI_SHM_create_template_tree","MPIDI_SHM_gen_package_tree","MPIDI_SHM_gen_tree","MPIDI_SHM_gen_tree_sharedmemory","MPIDI_SHM_init_local","MPIDI_SHM_init_world","MPIDI_SHM_mpi_alloc_mem","MPIDI_SHM_mpi_comm_commit_post_hook","MPIDI_SHM_mpi_comm_commit_pre_hook","MPIDI_SHM_mpi_comm_free_hook","MPIDI_SHM_mpi_finalize_hook","MPIDI_SHM_mpi_free_mem","MPIDI_SHM_mpi_irecv.part.0:0x140470","MPIDI_SHM_mpi_irecv.part.0:0x19f690","MPIDI_SHM_mpi_irecv.part.0:0x1e8f70","MPIDI_SHM_mpi_irecv.part.0:0x1ff900","MPIDI_SHM_mpi_irecv.part.0:0x455c20","MPIDI_SHM_mpi_irecv.part.0:0x477260","MPIDI_SHM_mpi_irecv.part.0:0x5052c0","MPIDI_SHM_mpi_irecv.part.0:0x560250","MPIDI_SHM_mpi_irecv.part.0:0x5c8ec0","MPIDI_SHM_mpi_irecv.part.0:0x6165d0","MPIDI_SHM_mpi_irecv.part.0:0x62e7a0","MPIDI_SHM_mpi_irecv.part.0:0x6ba350","MPIDI_SHM_mpi_op_commit_hook","MPIDI_SHM_mpi_op_free_hook","MPIDI_SHM_mpi_precv_init","MPIDI_SHM_mpi_psend_init","MPIDI_SHM_mpi_type_commit_hook","MPIDI_SHM_mpi_type_free_hook","MPIDI_SHM_mpi_win_allocate","MPIDI_SHM_mpi_win_allocate_hook","MPIDI_SHM_mpi_win_allocate_shared","MPIDI_SHM_mpi_win_allocate_shared_hook","MPIDI_SHM_mpi_win_attach","MPIDI_SHM_mpi_win_attach_hook","MPIDI_SHM_mpi_win_create","MPIDI_SHM_mpi_win_create_dynamic","MPIDI_SHM_mpi_win_create_dynamic_hook","MPIDI_SHM_mpi_win_create_hook","MPIDI_SHM_mpi_win_detach","MPIDI_SHM_mpi_win_detach_hook","MPIDI_SHM_mpi_win_free","MPIDI_SHM_mpi_win_free_hook","MPIDI_SHM_mpi_win_get_info","MPIDI_SHM_mpi_win_set_info","MPIDI_SHM_print_topotree","MPIDI_SHM_print_topotree_file","MPIDI_SHM_topology_tree_init","MPIDI_SHM_topotree_allocate","MPIDI_SHM_topotree_get_package_level","MPIDI_ST_alloc_queue_ptr","MPIDI_ST_free_queue","MPIDI_ST_progress_queue","MPIDI_ST_progress_start","MPIDI_ST_progress_tops_queue","MPIDI_ST_progress_tops_start","MPIDI_ST_progress_tops_wait","MPIDI_ST_progress_wait","MPIDI_ST_pull_fence_head","MPIDI_ST_pull_msg","MPIDI_ST_pull_msg_list","MPIDI_ST_pull_queue","MPIDI_ST_push_fence","MPIDI_ST_push_msg","MPIDI_ST_push_queue","MPIDI_ST_release_tops_requests","MPIDI_Self_cancel","MPIDI_Self_cancel.cold","MPIDI_Self_finalize","MPIDI_Self_improbe","MPIDI_Self_improbe.cold","MPIDI_Self_imrecv","MPIDI_Self_imrecv.cold","MPIDI_Self_init","MPIDI_Self_iprobe","MPIDI_Self_iprobe.cold","MPIDI_Self_irecv","MPIDI_Self_irecv.cold","MPIDI_Self_isend","MPIDI_Self_isend.cold","MPIDI_XPMEM_init_local","MPIDI_XPMEM_init_world","MPIDI_XPMEM_ipc_handle_map","MPIDI_XPMEM_mpi_finalize_hook","MPIDI_anysrc_try_cancel_partner","MPIDI_check_disjoint_gpids","MPIDI_check_for_failed_procs","MPIDI_comm_create_rank_map","MPIDI_create_init_comm","MPIDI_destroy_init_comm","MPIDI_get","MPIDI_get.cold","MPIDI_get_comm_hint_tclass","MPIDI_imrecv.cold:0x35846","MPIDI_imrecv.cold:0x367cf","MPIDI_imrecv:0x12ee30","MPIDI_imrecv:0x18d810","MPIDI_progress_test.cold:0x3f3a2","MPIDI_progress_test.cold:0x3f7bf","MPIDI_progress_test.cold:0x3fa56","MPIDI_progress_test.constprop.0","MPIDI_progress_test.constprop.0.cold","MPIDI_progress_test.constprop.0.isra.0.cold:0x3d541","MPIDI_progress_test.constprop.0.isra.0.cold:0x3e41d","MPIDI_progress_test.constprop.0.isra.0.cold:0x3effc","MPIDI_progress_test.constprop.0.isra.0:0x425c00","MPIDI_progress_test.constprop.0.isra.0:0x4c1bc0","MPIDI_progress_test.constprop.0.isra.0:0x501620","MPIDI_progress_test:0x517c10","MPIDI_progress_test:0x53a5a0","MPIDI_progress_test:0x5522a0","MPIDI_progress_test_vci:0x362200","MPIDI_progress_test_vci:0x3728d0","MPIDI_progress_test_vci:0x67e3a0","MPIDI_psend_init.constprop.0.cold:0x35465","MPIDI_psend_init.constprop.0.cold:0x36e6a","MPIDI_psend_init.constprop.0.cold:0x37241","MPIDI_psend_init.constprop.0.cold:0x3778e","MPIDI_psend_init.constprop.0:0x119330","MPIDI_psend_init.constprop.0:0x1b2a60","MPIDI_psend_init.constprop.0:0x1c92a0","MPIDI_psend_init.constprop.0:0x1e5130","MPIDI_put","MPIDI_put.cold","MPIDI_rget.constprop.0","MPIDI_rget.constprop.0.cold","MPIDI_rput.constprop.0","MPIDI_rput.constprop.0.cold","MPIDI_set_comm_hint_receiver_vci","MPIDI_set_comm_hint_sender_vci","MPIDI_set_comm_hint_tclass","MPIDI_set_comm_hint_vci","MPIDI_sigusr1_handler","MPIDU_Init_shm_alloc","MPIDU_Init_shm_barrier","MPIDU_Init_shm_finalize","MPIDU_Init_shm_free","MPIDU_Init_shm_get","MPIDU_Init_shm_init","MPIDU_Init_shm_is_symm","MPIDU_Init_shm_put","MPIDU_Init_shm_query","MPIDU_Sched_add_entry.constprop.0","MPIDU_Sched_alloc_state","MPIDU_Sched_are_pending","MPIDU_Sched_barrier","MPIDU_Sched_cb","MPIDU_Sched_cb2","MPIDU_Sched_clone","MPIDU_Sched_continue","MPIDU_Sched_continue.cold","MPIDU_Sched_copy","MPIDU_Sched_copy.cold","MPIDU_Sched_create","MPIDU_Sched_free","MPIDU_Sched_free.cold","MPIDU_Sched_next_tag","MPIDU_Sched_progress","MPIDU_Sched_progress.cold","MPIDU_Sched_pt2pt_recv","MPIDU_Sched_pt2pt_recv.cold","MPIDU_Sched_pt2pt_send","MPIDU_Sched_pt2pt_send.cold","MPIDU_Sched_recv","MPIDU_Sched_recv.cold","MPIDU_Sched_recv_status","MPIDU_Sched_recv_status.cold","MPIDU_Sched_reduce","MPIDU_Sched_reduce.cold","MPIDU_Sched_reset","MPIDU_Sched_send","MPIDU_Sched_send.cold","MPIDU_Sched_send_defer","MPIDU_Sched_send_defer.cold","MPIDU_Sched_set_tag","MPIDU_Sched_ssend","MPIDU_Sched_ssend.cold","MPIDU_Sched_start","MPIDU_Sched_tamo","MPIDU_Sched_tamo.cold","MPIDU_Sched_trecv","MPIDU_Sched_trecv.cold","MPIDU_Sched_tsend","MPIDU_Sched_tsend.cold","MPIDU_Sched_twait","MPIDU_bc_allgather","MPIDU_bc_table_create","MPIDU_bc_table_destroy","MPIDU_genq_private_pool_alloc_cell","MPIDU_genq_private_pool_create","MPIDU_genq_private_pool_destroy","MPIDU_genq_private_pool_free_cell","MPIDU_genq_shmem_pool_create","MPIDU_genq_shmem_pool_destroy","MPIDU_genq_shmem_pool_gpu_mem_register","MPIDU_genq_shmem_queue_init","MPIDU_shm_alloc","MPIDU_shm_alloc_symm_all","MPIDU_shm_free","MPIDU_shm_get_mapsize","MPIDU_stream_workq_alloc","MPIDU_stream_workq_alloc_event","MPIDU_stream_workq_dealloc","MPIDU_stream_workq_enqueue","MPIDU_stream_workq_finalize","MPIDU_stream_workq_free_event","MPIDU_stream_workq_init","MPIDU_stream_workq_progress_ops","MPIDU_stream_workq_progress_wait_list","MPID_Abort","MPID_Abort.cold","MPID_Accumulate","MPID_Accumulate.cold","MPID_Aint_add","MPID_Aint_diff","MPID_Alloc_mem","MPID_Allocate_vci","MPID_Attr_alloc","MPID_Attr_alloc.cold","MPID_Attr_free","MPID_Bsend_init.part.0","MPID_Cancel_recv","MPID_Cancel_send.part.0","MPID_Cleanup_treq","MPID_Close_port","MPID_Comm_accept","MPID_Comm_commit_post_hook","MPID_Comm_commit_pre_hook","MPID_Comm_connect","MPID_Comm_disconnect","MPID_Comm_failure_ack","MPID_Comm_failure_get_acked","MPID_Comm_free_hook","MPID_Comm_get_all_failed_procs","MPID_Comm_get_lpid","MPID_Comm_get_lpid.cold","MPID_Comm_group_failed","MPID_Comm_reenable_anysource","MPID_Comm_remote_group_failed","MPID_Comm_revoke","MPID_Comm_set_hints","MPID_Comm_spawn_multiple","MPID_Create_intercomm_from_lpids","MPID_Create_tput.part.0","MPID_Create_tsend.constprop.0","MPID_Deallocate_vci","MPID_Finalize","MPID_Free_mem","MPID_Free_tindex.part.0","MPID_Get_accumulate","MPID_Get_accumulate.cold","MPID_Get_max_node_id","MPID_Get_node_id","MPID_Get_processor_name","MPID_Get_trgr_index","MPID_Get_trgr_index_without_target.part.0:0x3d0130","MPID_Get_trgr_index_without_target.part.0:0x3dfe20","MPID_Get_trgr_index_without_target.part.0:0x3e4560","MPID_Get_trgr_index_without_target.part.0:0x3f4f10","MPID_Get_trgr_index_without_target.part.0:0x3fa2f0","MPID_Get_trgr_index_without_target.part.0:0x6164b0","MPID_Get_trgr_index_without_target.part.0:0x644ce0","MPID_Get_universe_size","MPID_Imrecv.part.0","MPID_Init","MPID_InitCompleted","MPID_Intercomm_exchange_map","MPID_Irecv.constprop.0.cold:0x35bc8","MPID_Irecv.constprop.0.cold:0x36b51","MPID_Irecv.constprop.0:0x144970","MPID_Irecv.constprop.0:0x1a3c40","MPID_Irecv.constprop.0:0x464010","MPID_Irecv.constprop.0:0x512a20","MPID_Irecv.constprop.0:0x56e650","MPID_Irecv.constprop.0:0x5d64f0","MPID_Irecv_enqueue","MPID_Irsend.constprop.0:0x14ecc0","MPID_Irsend.constprop.0:0x1b0520","MPID_Isend.constprop.0:0x1624c0","MPID_Isend.constprop.0:0x179080","MPID_Isend.constprop.0:0x1c5bc0","MPID_Isend.constprop.0:0x1e2aa0","MPID_Isend.constprop.0:0x519390","MPID_Isend.constprop.0:0x575020","MPID_Isend.constprop.0:0x5dcd70","MPID_Isend:0x1fc860","MPID_Isend:0x213220","MPID_Isend:0x46a780","MPID_Isend:0x62bb80","MPID_Isend:0x643750","MPID_Isend_enqueue","MPID_NS_Create","MPID_NS_Free","MPID_NS_Lookup","MPID_NS_Publish","MPID_NS_Unpublish","MPID_Op_commit_hook","MPID_Op_free_hook","MPID_Open_port","MPID_Precv_init","MPID_Prequest_free_hook","MPID_Prequest_free_hook.cold","MPID_Progress_test.constprop.0.cold:0x35786","MPID_Progress_test.constprop.0.cold:0x35b23","MPID_Progress_test.constprop.0.cold:0x36069","MPID_Progress_test.constprop.0.cold:0x3648b","MPID_Progress_test.constprop.0.cold:0x3670f","MPID_Progress_test.constprop.0.cold:0x36aac","MPID_Progress_test.constprop.0.cold:0x37189","MPID_Progress_test.constprop.0.cold:0x376fe","MPID_Progress_test.constprop.0.cold:0x37b41","MPID_Progress_test.constprop.0.cold:0x37e57","MPID_Progress_test.constprop.0.cold:0x39909","MPID_Progress_test.constprop.0.cold:0x39b5e","MPID_Progress_test.constprop.0.cold:0x39d92","MPID_Progress_test.constprop.0.cold:0x39fc6","MPID_Progress_test.constprop.0.cold:0x3a21b","MPID_Progress_test.constprop.0.cold:0x3a44f","MPID_Progress_test.constprop.0.cold:0x3a66e","MPID_Progress_test.constprop.0.cold:0x3a86c","MPID_Progress_test.constprop.0.cold:0x3aabb","MPID_Progress_test.constprop.0.cold:0x3acda","MPID_Progress_test.constprop.0.cold:0x3af0e","MPID_Progress_test.constprop.0.cold:0x3b142","MPID_Progress_test.constprop.0.cold:0x3b361","MPID_Progress_test.constprop.0.cold:0x3dcae","MPID_Progress_test.constprop.0.cold:0x3fda2","MPID_Progress_test.constprop.0.cold:0x403b1","MPID_Progress_test.constprop.0.cold:0x4096c","MPID_Progress_test.constprop.0.cold:0x40db1","MPID_Progress_test.constprop.0.cold:0x410c7","MPID_Progress_test.constprop.0.cold:0x41692","MPID_Progress_test.constprop.0.cold:0x41a8f","MPID_Progress_test.constprop.0.cold:0x41e9c","MPID_Progress_test.constprop.0:0x129f10","MPID_Progress_test.constprop.0:0x13e3a0","MPID_Progress_test.constprop.0:0x160f60","MPID_Progress_test.constprop.0:0x177b20","MPID_Progress_test.constprop.0:0x188140","MPID_Progress_test.constprop.0:0x19cf00","MPID_Progress_test.constprop.0:0x1c4660","MPID_Progress_test.constprop.0:0x1e1540","MPID_Progress_test.constprop.0:0x1fb300","MPID_Progress_test.constprop.0:0x211cc0","MPID_Progress_test.constprop.0:0x2c1b20","MPID_Progress_test.constprop.0:0x2d3f20","MPID_Progress_test.constprop.0:0x2e3670","MPID_Progress_test.constprop.0:0x2f2e90","MPID_Progress_test.constprop.0:0x3025f0","MPID_Progress_test.constprop.0:0x311da0","MPID_Progress_test.constprop.0:0x321b10","MPID_Progress_test.constprop.0:0x330850","MPID_Progress_test.constprop.0:0x343130","MPID_Progress_test.constprop.0:0x351cd0","MPID_Progress_test.constprop.0:0x360ca0","MPID_Progress_test.constprop.0:0x371370","MPID_Progress_test.constprop.0:0x380600","MPID_Progress_test.constprop.0:0x489390","MPID_Progress_test.constprop.0:0x519310","MPID_Progress_test.constprop.0:0x553990","MPID_Progress_test.constprop.0:0x573ac0","MPID_Progress_test.constprop.0:0x5db810","MPID_Progress_test.constprop.0:0x606870","MPID_Progress_test.constprop.0:0x62a620","MPID_Progress_test.constprop.0:0x6421f0","MPID_Progress_test.constprop.0:0x67ce60","MPID_Progress_test.constprop.0:0x6a8c80","MPID_Progress_test.constprop.0:0x6ccd40","MPID_Progress_test.part.0.cold:0x3da3a","MPID_Progress_test.part.0.cold:0x3f5a0","MPID_Progress_test.part.0.cold:0x41890","MPID_Progress_test.part.0.isra.0","MPID_Progress_test.part.0:0x469220","MPID_Progress_test.part.0:0x49f330","MPID_Progress_test.part.0:0x529230","MPID_Progress_test.part.0:0x53bc90","MPID_Progress_test.part.0:0x697a70","MPID_Progress_wait","MPID_Psend_init","MPID_Put_stream","MPID_Raccumulate.constprop.0","MPID_Raccumulate.constprop.0.cold","MPID_Recv_enqueue","MPID_Recv_init.constprop.0","MPID_Recv_init.constprop.0.cold","MPID_Request_complete.isra.0:0x11ef70","MPID_Request_complete.isra.0:0x133470","MPID_Request_complete.isra.0:0x140d20","MPID_Request_complete.isra.0:0x152cd0","MPID_Request_complete.isra.0:0x169890","MPID_Request_complete.isra.0:0x17d1a0","MPID_Request_complete.isra.0:0x191fd0","MPID_Request_complete.isra.0:0x1a02e0","MPID_Request_complete.isra.0:0x1b63b0","MPID_Request_complete.isra.0:0x1d3290","MPID_Request_complete.isra.0:0x1ea520","MPID_Request_complete.isra.0:0x200ee0","MPID_Request_complete.isra.0:0x21c9d0","MPID_Request_complete.isra.0:0x22fef0","MPID_Request_complete.isra.0:0x2404f0","MPID_Request_complete.isra.0:0x25abe0","MPID_Request_complete.isra.0:0x278830","MPID_Request_complete.isra.0:0x28b650","MPID_Request_complete.isra.0:0x295020","MPID_Request_complete.isra.0:0x2a8e30","MPID_Request_complete.isra.0:0x2b6af0","MPID_Request_complete.isra.0:0x2c8a80","MPID_Request_complete.isra.0:0x2d81d0","MPID_Request_complete.isra.0:0x2e79f0","MPID_Request_complete.isra.0:0x2f7150","MPID_Request_complete.isra.0:0x306900","MPID_Request_complete.isra.0:0x317400","MPID_Request_complete.isra.0:0x326140","MPID_Request_complete.isra.0:0x338a50","MPID_Request_complete.isra.0:0x3475f0","MPID_Request_complete.isra.0:0x3557d0","MPID_Request_complete.isra.0:0x365ea0","MPID_Request_complete.isra.0:0x375f20","MPID_Request_complete.isra.0:0x41b520","MPID_Request_complete.isra.0:0x4573e0","MPID_Request_complete.isra.0:0x480400","MPID_Request_complete.isra.0:0x493670","MPID_Request_complete.isra.0:0x4b74e0","MPID_Request_complete.isra.0:0x4f6f60","MPID_Request_complete.isra.0:0x506970","MPID_Request_complete.isra.0:0x51d680","MPID_Request_complete.isra.0:0x52faa0","MPID_Request_complete.isra.0:0x547be0","MPID_Request_complete.isra.0:0x562f50","MPID_Request_complete.isra.0:0x5ca470","MPID_Request_complete.isra.0:0x5e14d0","MPID_Request_complete.isra.0:0x5e9af0","MPID_Request_complete.isra.0:0x5fbd10","MPID_Request_complete.isra.0:0x617c10","MPID_Request_complete.isra.0:0x62fd50","MPID_Request_complete.isra.0:0x65ed80","MPID_Request_complete.isra.0:0x6712a0","MPID_Request_complete.isra.0:0x68d390","MPID_Request_complete.isra.0:0x69e470","MPID_Request_complete.isra.0:0x6bbbb0","MPID_Rget.part.0","MPID_Rget_accumulate.constprop.0","MPID_Rget_accumulate.constprop.0.cold","MPID_Rput.part.0","MPID_Rsend_init.part.0","MPID_ST_create_queue","MPID_ST_enqueue_msg","MPID_ST_enqueue_start","MPID_ST_enqueue_wait","MPID_ST_free_queue","MPID_ST_get_queue_comm_ptr","MPID_ST_init","MPID_ST_initialized","MPID_ST_progress_queue","MPID_ST_used","MPID_Send_enqueue","MPID_Send_init.part.0","MPID_Setup_trecv.constprop.0","MPID_Ssend_init.part.0","MPID_Startall.constprop.0","MPID_Stream_create_hook","MPID_Stream_free_hook","MPID_Stream_progress.isra.0","MPID_Test.constprop.0","MPID_Test.constprop.0.isra.0","MPID_Testany","MPID_Testsome","MPID_Type_commit_hook","MPID_Type_free_hook","MPID_Wait.constprop.0:0x19f6c0","MPID_Wait.constprop.0:0x1a82d0","MPID_Wait.constprop.0:0x1b4e10","MPID_Wait.constprop.0:0x1d1cf0","MPID_Wait.constprop.0:0x455c50","MPID_Wait.constprop.0:0x505320","MPID_Wait.constprop.0:0x560280","MPID_Wait:0x18af80","MPID_Wait:0x53f000","MPID_Wait_enqueue","MPID_Waitall_enqueue","MPID_Waitany","MPID_Waitsome","MPID_Win_allocate","MPID_Win_allocate_shared","MPID_Win_attach","MPID_Win_complete_stream","MPID_Win_create","MPID_Win_create_dynamic","MPID_Win_create_stream","MPID_Win_detach","MPID_Win_free","MPID_Win_get_info","MPID_Win_post_stream","MPID_Win_progress_stream","MPID_Win_set_info","MPID_Win_start_stream","MPID_Win_stream","MPID_Win_wait_stream","MPIOI_File_iread","MPIOI_File_iread_all","MPIOI_File_iread_shared","MPIOI_File_iwrite","MPIOI_File_iwrite_all","MPIOI_File_iwrite_shared","MPIOI_File_read","MPIOI_File_read_all","MPIOI_File_read_all_begin","MPIOI_File_read_all_end","MPIOI_File_read_ordered","MPIOI_File_read_ordered_begin","MPIOI_File_read_shared","MPIOI_File_write","MPIOI_File_write_all","MPIOI_File_write_all_begin","MPIOI_File_write_all_end","MPIOI_File_write_ordered","MPIOI_File_write_ordered_begin","MPIOI_File_write_shared","MPIOI_Register_datarep","MPIOI_Type_block","MPIOI_Type_cyclic","MPIO_Completed_request_create","MPIO_Err_create_code","MPIO_Err_return_comm","MPIO_Err_return_file","MPIO_File_c2f","MPIO_File_create","MPIO_File_f2c","MPIO_File_free","MPIO_File_resolve","MPIR_Abort","MPIR_Abort_impl","MPIR_Add_error_class_impl","MPIR_Add_error_code_impl","MPIR_Add_error_string_impl","MPIR_Add_finalize","MPIR_All_romio_symbols","MPIR_Allgather","MPIR_Allgather.cold","MPIR_Allgather_allcomm_auto","MPIR_Allgather_allcomm_nb","MPIR_Allgather_impl","MPIR_Allgather_init","MPIR_Allgather_init_impl","MPIR_Allgather_inter_local_gather_remote_bcast","MPIR_Allgather_inter_local_gather_remote_bcast.cold","MPIR_Allgather_intra_brucks","MPIR_Allgather_intra_brucks.cold","MPIR_Allgather_intra_k_brucks","MPIR_Allgather_intra_k_brucks.cold","MPIR_Allgather_intra_recursive_doubling","MPIR_Allgather_intra_recursive_doubling.cold","MPIR_Allgather_intra_ring","MPIR_Allgather_intra_ring.cold","MPIR_Allgatherv","MPIR_Allgatherv_allcomm_auto","MPIR_Allgatherv_allcomm_nb","MPIR_Allgatherv_impl","MPIR_Allgatherv_init","MPIR_Allgatherv_init_impl","MPIR_Allgatherv_inter_remote_gather_local_bcast","MPIR_Allgatherv_intra_brucks","MPIR_Allgatherv_intra_brucks.cold","MPIR_Allgatherv_intra_recursive_doubling","MPIR_Allgatherv_intra_recursive_doubling.cold","MPIR_Allgatherv_intra_ring","MPIR_Allgatherv_intra_ring.cold","MPIR_Allreduce","MPIR_Allreduce.cold","MPIR_Allreduce_allcomm_auto","MPIR_Allreduce_allcomm_nb","MPIR_Allreduce_enqueue_impl","MPIR_Allreduce_enqueue_impl.cold","MPIR_Allreduce_impl","MPIR_Allreduce_init","MPIR_Allreduce_init_impl","MPIR_Allreduce_inter_reduce_exchange_bcast","MPIR_Allreduce_inter_reduce_exchange_bcast.cold","MPIR_Allreduce_intra_k_reduce_scatter_allgather","MPIR_Allreduce_intra_k_reduce_scatter_allgather.cold","MPIR_Allreduce_intra_recexch","MPIR_Allreduce_intra_recexch.cold","MPIR_Allreduce_intra_recursive_doubling","MPIR_Allreduce_intra_recursive_doubling.cold","MPIR_Allreduce_intra_reduce_scatter_allgather","MPIR_Allreduce_intra_reduce_scatter_allgather.cold","MPIR_Allreduce_intra_ring","MPIR_Allreduce_intra_ring.cold","MPIR_Allreduce_intra_smp","MPIR_Allreduce_intra_tree","MPIR_Allreduce_intra_tree.cold","MPIR_Alltoall","MPIR_Alltoall.cold","MPIR_Alltoall_allcomm_auto","MPIR_Alltoall_allcomm_nb","MPIR_Alltoall_impl","MPIR_Alltoall_init","MPIR_Alltoall_init_impl","MPIR_Alltoall_inter_pairwise_exchange","MPIR_Alltoall_inter_pairwise_exchange.cold","MPIR_Alltoall_intra_brucks","MPIR_Alltoall_intra_brucks.cold","MPIR_Alltoall_intra_k_brucks","MPIR_Alltoall_intra_k_brucks.cold","MPIR_Alltoall_intra_pairwise","MPIR_Alltoall_intra_pairwise.cold","MPIR_Alltoall_intra_pairwise_sendrecv_replace","MPIR_Alltoall_intra_pairwise_sendrecv_replace.cold","MPIR_Alltoall_intra_scattered","MPIR_Alltoall_intra_scattered.cold","MPIR_Alltoallv","MPIR_Alltoallv_allcomm_auto","MPIR_Alltoallv_allcomm_nb","MPIR_Alltoallv_impl","MPIR_Alltoallv_init","MPIR_Alltoallv_init_impl","MPIR_Alltoallv_inter_pairwise_exchange","MPIR_Alltoallv_inter_pairwise_exchange.cold","MPIR_Alltoallv_intra_pairwise_sendrecv_replace","MPIR_Alltoallv_intra_pairwise_sendrecv_replace.cold","MPIR_Alltoallv_intra_scattered","MPIR_Alltoallv_intra_scattered.cold","MPIR_Alltoallw","MPIR_Alltoallw_allcomm_auto","MPIR_Alltoallw_allcomm_nb","MPIR_Alltoallw_impl","MPIR_Alltoallw_init","MPIR_Alltoallw_init_impl","MPIR_Alltoallw_inter_pairwise_exchange","MPIR_Alltoallw_intra_pairwise_sendrecv_replace","MPIR_Alltoallw_intra_scattered","MPIR_Alltoallw_intra_scattered.cold","MPIR_Assert_fail","MPIR_Assert_fail_fmt","MPIR_Attr_delete_list","MPIR_Attr_dup_list","MPIR_BAND","MPIR_BAND_check_dtype","MPIR_BOR","MPIR_BOR_check_dtype","MPIR_BXOR","MPIR_BXOR_check_dtype","MPIR_Barrier","MPIR_Barrier_allcomm_auto","MPIR_Barrier_allcomm_nb","MPIR_Barrier_impl","MPIR_Barrier_init","MPIR_Barrier_init_impl","MPIR_Barrier_inter_bcast","MPIR_Barrier_intra_dissemination","MPIR_Barrier_intra_k_dissemination","MPIR_Barrier_intra_recexch","MPIR_Barrier_intra_smp","MPIR_Bcast","MPIR_Bcast_allcomm_auto","MPIR_Bcast_allcomm_nb","MPIR_Bcast_impl","MPIR_Bcast_init","MPIR_Bcast_init_impl","MPIR_Bcast_inter_remote_send_local_bcast","MPIR_Bcast_intra_binomial","MPIR_Bcast_intra_pipelined_tree","MPIR_Bcast_intra_pipelined_tree.cold","MPIR_Bcast_intra_scatter_recursive_doubling_allgather","MPIR_Bcast_intra_scatter_ring_allgather","MPIR_Bcast_intra_smp","MPIR_Bcast_intra_smp.cold","MPIR_Bcast_intra_tree","MPIR_Bcast_intra_tree.cold","MPIR_Bsend_attach","MPIR_Bsend_check_active","MPIR_Bsend_detach","MPIR_Bsend_finalize","MPIR_Bsend_free_req_seg","MPIR_Bsend_free_segment","MPIR_Bsend_isend","MPIR_Buffer_detach_impl","MPIR_CRAY_Allgather","MPIR_CRAY_Allgather.cold","MPIR_CRAY_Allgather_very_large_msg","MPIR_CRAY_Allgather_very_large_msg.cold","MPIR_CRAY_Allgatherv","MPIR_CRAY_Allgatherv.cold","MPIR_CRAY_Allreduce","MPIR_CRAY_Allreduce.cold","MPIR_CRAY_Allreduce_chunked","MPIR_CRAY_Allreduce_chunked.cold","MPIR_CRAY_Alltoall","MPIR_CRAY_Alltoall.cold","MPIR_CRAY_Alltoall_chunking","MPIR_CRAY_Alltoall_throttled","MPIR_CRAY_Alltoall_throttled.cold","MPIR_CRAY_Alltoallv","MPIR_CRAY_Alltoallv.cold","MPIR_CRAY_Barrier","MPIR_CRAY_Bcast","MPIR_CRAY_Bcast.cold","MPIR_CRAY_Bcast_Tree","MPIR_CRAY_GPU_Allreduce_pipelined","MPIR_CRAY_GPU_Allreduce_pipelined.cold","MPIR_CRAY_Gatherv","MPIR_CRAY_Gatherv.cold","MPIR_CRAY_Igatherv","MPIR_CRAY_Igatherv_sched_impl","MPIR_CRAY_Igatherv_sched_impl.cold","MPIR_CRAY_Reduce","MPIR_CRAY_Reduce.cold","MPIR_CRAY_Reduce_chunked","MPIR_CRAY_Reduce_chunked.cold","MPIR_CRAY_SP_Gatherv","MPIR_CRAY_SP_Gatherv.cold","MPIR_CRAY_Scatterv","MPIR_CRAY_Scatterv.cold","MPIR_CRAY_coll_sync_stats_print","MPIR_Call_attr_copy","MPIR_Call_attr_delete","MPIR_Cancel_impl","MPIR_Cart_coords_impl","MPIR_Cart_create_impl","MPIR_Cart_get_impl","MPIR_Cart_map_impl","MPIR_Cart_rank_impl","MPIR_Cart_shift_impl","MPIR_Cart_sub_impl","MPIR_Cartdim_get_impl","MPIR_Close_port_impl","MPIR_Coll_comm_init","MPIR_Coll_host_buffer_alloc","MPIR_Coll_host_buffer_free","MPIR_Coll_host_buffer_persist_set","MPIR_Coll_host_buffer_persist_set.cold","MPIR_Coll_host_buffer_swap_back","MPIR_Coll_host_buffer_swap_back.cold","MPIR_Coll_safe_to_block","MPIR_Comm_accept_impl","MPIR_Comm_agree_impl","MPIR_Comm_call_errhandler_impl","MPIR_Comm_commit","MPIR_Comm_commit_internal","MPIR_Comm_compare_impl","MPIR_Comm_connect_impl","MPIR_Comm_copy_stream","MPIR_Comm_create","MPIR_Comm_create_errhandler_impl","MPIR_Comm_create_from_group_impl","MPIR_Comm_create_group_impl","MPIR_Comm_create_impl","MPIR_Comm_create_inter","MPIR_Comm_create_intra","MPIR_Comm_create_keyval_impl","MPIR_Comm_create_subcomms","MPIR_Comm_delete_attr_impl","MPIR_Comm_delete_internal","MPIR_Comm_disconnect_impl","MPIR_Comm_dup_impl","MPIR_Comm_dup_with_info_impl","MPIR_Comm_free_impl","MPIR_Comm_free_keyval_impl","MPIR_Comm_get_attr_impl","MPIR_Comm_get_errhandler_impl","MPIR_Comm_get_failed_impl","MPIR_Comm_get_info_impl","MPIR_Comm_get_name_impl","MPIR_Comm_get_parent_impl","MPIR_Comm_get_stream_impl","MPIR_Comm_group_impl","MPIR_Comm_hint_init","MPIR_Comm_idup_impl","MPIR_Comm_idup_with_info_impl","MPIR_Comm_is_parent_comm","MPIR_Comm_join_impl","MPIR_Comm_map_dup","MPIR_Comm_map_free","MPIR_Comm_map_irregular","MPIR_Comm_rank_impl","MPIR_Comm_register_hint","MPIR_Comm_release_always","MPIR_Comm_remote_group_impl","MPIR_Comm_remote_size_impl","MPIR_Comm_set_attr_impl","MPIR_Comm_set_errhandler_impl","MPIR_Comm_set_info_impl","MPIR_Comm_set_name_impl","MPIR_Comm_shrink_impl","MPIR_Comm_size_impl","MPIR_Comm_spawn_impl","MPIR_Comm_spawn_multiple_impl","MPIR_Comm_split_filesystem","MPIR_Comm_split_impl","MPIR_Comm_split_type","MPIR_Comm_split_type_by_node","MPIR_Comm_split_type_hw_guided","MPIR_Comm_split_type_hw_unguided","MPIR_Comm_split_type_impl","MPIR_Comm_split_type_nbhd_common_dir","MPIR_Comm_split_type_neighborhood","MPIR_Comm_split_type_network_topo","MPIR_Comm_split_type_node_topo","MPIR_Comm_split_type_self","MPIR_Comm_test_inter_impl","MPIR_Compare_equal","MPIR_Copy_array","MPIR_Cray_Memcpy_wrapper","MPIR_Create_unnamed_predefined","MPIR_Create_unnamed_predefined.cold","MPIR_Csel_create_from_buf","MPIR_Csel_create_from_file","MPIR_Csel_free","MPIR_Csel_prune","MPIR_Csel_search","MPIR_Dataloop_create_blockindexed","MPIR_Dataloop_create_blockindexed.cold","MPIR_Dataloop_create_contiguous","MPIR_Dataloop_create_contiguous.cold","MPIR_Dataloop_create_indexed","MPIR_Dataloop_create_indexed.cold","MPIR_Dataloop_create_resized","MPIR_Dataloop_create_struct","MPIR_Dataloop_create_struct.cold","MPIR_Dataloop_create_vector","MPIR_Dataloop_create_vector.cold","MPIR_Dataloop_dup","MPIR_Dataloop_flatten","MPIR_Dataloop_flatten_size","MPIR_Dataloop_free","MPIR_Dataloop_get_contig","MPIR_Dataloop_iov","MPIR_Dataloop_iov_len","MPIR_Dataloop_printf","MPIR_Dataloop_printf.cold","MPIR_Dataloop_size_external32","MPIR_Dataloop_size_external32.cold","MPIR_Dataloop_unflatten","MPIR_Dataloop_update_contig","MPIR_Datatype_builtin_to_string","MPIR_Datatype_builtintype_alignment","MPIR_Datatype_combiner_to_string","MPIR_Datatype_commit_pairtypes","MPIR_Datatype_debug","MPIR_Datatype_free","MPIR_Datatype_free.cold","MPIR_Datatype_get_flattened","MPIR_Datatype_get_flattened.cold","MPIR_Datatype_init_predefined","MPIR_Datatype_init_predefined.cold","MPIR_Datatype_iscontig","MPIR_Datatype_iscontig.cold","MPIR_Datatype_set_contents","MPIR_Datatype_set_contents.cold","MPIR_Datatype_set_contents.constprop.0.cold:0x3ed1c","MPIR_Datatype_set_contents.constprop.0.cold:0x3ed8b","MPIR_Datatype_set_contents.constprop.0:0x4e4d10","MPIR_Datatype_set_contents.constprop.0:0x4e6f20","MPIR_Debugger_set_aborting","MPIR_Delete_error_class_impl","MPIR_Delete_error_code_impl","MPIR_Delete_error_string_impl","MPIR_Dims_create_impl","MPIR_Dist_graph_create_adjacent_impl","MPIR_Dist_graph_create_impl","MPIR_Dist_graph_neighbors_count_impl","MPIR_Dist_graph_neighbors_impl","MPIR_Dup_fn","MPIR_Dynerrcodes_finalize","MPIR_Err_Uninitialized","MPIR_Err_combine_codes","MPIR_Err_create_code","MPIR_Err_create_code_valist","MPIR_Err_create_code_valist.cold","MPIR_Err_get_string","MPIR_Err_init","MPIR_Err_is_fatal","MPIR_Err_return_comm","MPIR_Err_return_comm.cold","MPIR_Err_return_win","MPIR_Errhandler_free_impl","MPIR_Errhandler_free_impl.part.0","MPIR_Error_class_impl","MPIR_Error_string_impl","MPIR_Errutil_is_initialized","MPIR_Exscan","MPIR_Exscan_allcomm_auto","MPIR_Exscan_allcomm_nb","MPIR_Exscan_impl","MPIR_Exscan_init","MPIR_Exscan_init_impl","MPIR_Exscan_intra_recursive_doubling","MPIR_Exscan_intra_recursive_doubling.cold","MPIR_Ext_assert_fail","MPIR_Ext_cs_enter","MPIR_Ext_cs_exit","MPIR_Ext_cs_yield","MPIR_Ext_datatype_iscommitted","MPIR_Ext_datatype_iscommitted.cold","MPIR_Ext_init","MPIR_Ext_mutex_finalize","MPIR_Ext_mutex_init","MPIR_File_call_cxx_errhandler","MPIR_File_call_errhandler_impl","MPIR_File_call_errhandler_impl.cold","MPIR_File_create_errhandler_impl","MPIR_File_get_errhandler_impl","MPIR_File_get_errhandler_impl.cold","MPIR_File_set_errhandler_impl","MPIR_Finalize_impl","MPIR_Finalized_impl","MPIR_Find_external","MPIR_Find_local","MPIR_FreeF90Datatypes","MPIR_Free_contextid","MPIR_Gather","MPIR_Gather_allcomm_auto","MPIR_Gather_allcomm_nb","MPIR_Gather_impl","MPIR_Gather_init","MPIR_Gather_init_impl","MPIR_Gather_inter_linear","MPIR_Gather_inter_linear.cold","MPIR_Gather_inter_local_gather_remote_send","MPIR_Gather_inter_local_gather_remote_send.cold","MPIR_Gather_intra_binomial","MPIR_Gather_intra_binomial.cold","MPIR_Gatherv","MPIR_Gatherv_allcomm_auto","MPIR_Gatherv_allcomm_linear","MPIR_Gatherv_allcomm_linear.cold","MPIR_Gatherv_allcomm_nb","MPIR_Gatherv_impl","MPIR_Gatherv_init","MPIR_Gatherv_init_impl","MPIR_Get_address_impl","MPIR_Get_contextid_nonblock","MPIR_Get_contextid_sparse","MPIR_Get_contextid_sparse_group","MPIR_Get_count_impl","MPIR_Get_count_impl.cold","MPIR_Get_elements_x_impl","MPIR_Get_elements_x_impl.cold","MPIR_Get_file_error_routine","MPIR_Get_intercomm_contextid","MPIR_Get_intercomm_contextid_nonblock","MPIR_Get_internode_rank","MPIR_Get_internode_rank.cold","MPIR_Get_intranode_rank","MPIR_Get_intranode_rank.cold","MPIR_Get_library_version_impl","MPIR_Get_node_id","MPIR_Get_version_impl","MPIR_Graph_create_impl","MPIR_Graph_get_impl","MPIR_Graph_map_impl","MPIR_Graph_neighbors_count_impl","MPIR_Graph_neighbors_impl","MPIR_Graph_optimized","MPIR_Graphdims_get_impl","MPIR_Grequest_cancel","MPIR_Grequest_class_allocate_impl","MPIR_Grequest_class_allocate_impl.cold","MPIR_Grequest_class_create_impl","MPIR_Grequest_complete_impl","MPIR_Grequest_free","MPIR_Grequest_free_classes_on_finalize","MPIR_Grequest_poll","MPIR_Grequest_query","MPIR_Grequest_start_impl","MPIR_Group_check_subset","MPIR_Group_check_valid_ranges","MPIR_Group_check_valid_ranks","MPIR_Group_compare_impl","MPIR_Group_create","MPIR_Group_difference_impl","MPIR_Group_excl_impl","MPIR_Group_free_impl","MPIR_Group_from_session_pset_impl","MPIR_Group_incl_impl","MPIR_Group_init","MPIR_Group_intersection_impl","MPIR_Group_range_excl_impl","MPIR_Group_range_incl_impl","MPIR_Group_rank_impl","MPIR_Group_release","MPIR_Group_setup_lpid_pairs","MPIR_Group_size_impl","MPIR_Group_translate_ranks_impl","MPIR_Group_union_impl","MPIR_Handle_fatal_error","MPIR_Handle_finalize:0x107260","MPIR_Handle_finalize:0x10c4e0","MPIR_Handle_finalize:0x1118a0","MPIR_Handle_finalize:0x119220","MPIR_Handle_finalize:0x11eae0","MPIR_Handle_finalize:0x12cae0","MPIR_Handle_finalize:0x132fe0","MPIR_Handle_finalize:0x1410a0","MPIR_Handle_finalize:0x147120","MPIR_Handle_finalize:0x152630","MPIR_Handle_finalize:0x1691f0","MPIR_Handle_finalize:0x17cd10","MPIR_Handle_finalize:0x18b210","MPIR_Handle_finalize:0x191b40","MPIR_Handle_finalize:0x19ff30","MPIR_Handle_finalize:0x1a5cd0","MPIR_Handle_finalize:0x1a8980","MPIR_Handle_finalize:0x1b2950","MPIR_Handle_finalize:0x1b5d10","MPIR_Handle_finalize:0x1c8750","MPIR_Handle_finalize:0x1d2bf0","MPIR_Handle_finalize:0x1e5020","MPIR_Handle_finalize:0x1ea170","MPIR_Handle_finalize:0x200b30","MPIR_Handle_finalize:0x21c540","MPIR_Handle_finalize:0x22fa60","MPIR_Handle_finalize:0x240060","MPIR_Handle_finalize:0x250cf0","MPIR_Handle_finalize:0x25a750","MPIR_Handle_finalize:0x26d8f0","MPIR_Handle_finalize:0x2783a0","MPIR_Handle_finalize:0x28b0a0","MPIR_Handle_finalize:0x294b90","MPIR_Handle_finalize:0x2a8880","MPIR_Handle_finalize:0x2b62a0","MPIR_Handle_finalize:0x2c85f0","MPIR_Handle_finalize:0x2d7d40","MPIR_Handle_finalize:0x2e7560","MPIR_Handle_finalize:0x2f6cc0","MPIR_Handle_finalize:0x306470","MPIR_Handle_finalize:0x316d60","MPIR_Handle_finalize:0x325aa0","MPIR_Handle_finalize:0x333450","MPIR_Handle_finalize:0x3385c0","MPIR_Handle_finalize:0x347160","MPIR_Handle_finalize:0x355420","MPIR_Handle_finalize:0x365af0","MPIR_Handle_finalize:0x375a90","MPIR_Handle_finalize:0x38f5e0","MPIR_Handle_finalize:0x390a50","MPIR_Handle_finalize:0x4004b0","MPIR_Handle_finalize:0x412780","MPIR_Handle_finalize:0x41b170","MPIR_Handle_finalize:0x42ce0","MPIR_Handle_finalize:0x43ee0","MPIR_Handle_finalize:0x457030","MPIR_Handle_finalize:0x478390","MPIR_Handle_finalize:0x4932c0","MPIR_Handle_finalize:0x4ac2a0","MPIR_Handle_finalize:0x4af4c0","MPIR_Handle_finalize:0x4b3290","MPIR_Handle_finalize:0x4b7050","MPIR_Handle_finalize:0x4db8a0","MPIR_Handle_finalize:0x4de6b0","MPIR_Handle_finalize:0x4e9250","MPIR_Handle_finalize:0x4e9cb0","MPIR_Handle_finalize:0x4f1050","MPIR_Handle_finalize:0x4f3720","MPIR_Handle_finalize:0x4f6ad0","MPIR_Handle_finalize:0x5065c0","MPIR_Handle_finalize:0x51cfe0","MPIR_Handle_finalize:0x52f390","MPIR_Handle_finalize:0x542ec0","MPIR_Handle_finalize:0x547750","MPIR_Handle_finalize:0x55e100","MPIR_Handle_finalize:0x561590","MPIR_Handle_finalize:0x577680","MPIR_Handle_finalize:0x5b91e0","MPIR_Handle_finalize:0x5c4c00","MPIR_Handle_finalize:0x5c9ec0","MPIR_Handle_finalize:0x5e0e20","MPIR_Handle_finalize:0x5e9740","MPIR_Handle_finalize:0x5fa530","MPIR_Handle_finalize:0x60aa20","MPIR_Handle_finalize:0x60cf60","MPIR_Handle_finalize:0x612d50","MPIR_Handle_finalize:0x617860","MPIR_Handle_finalize:0x62f9a0","MPIR_Handle_finalize:0x656650","MPIR_Handle_finalize:0x65e3b0","MPIR_Handle_finalize:0x664030","MPIR_Handle_finalize:0x66f650","MPIR_Handle_finalize:0x68cf00","MPIR_Handle_finalize:0x69dfe0","MPIR_Handle_finalize:0x6b3cb0","MPIR_Handle_finalize:0x6bb660","MPIR_Handle_get_kind_str","MPIR_Handle_get_ptr_indirect.constprop.0:0x1e94a0","MPIR_Handle_get_ptr_indirect.constprop.0:0x1ffe60","MPIR_Handle_get_ptr_indirect.constprop.0:0x41a6e0","MPIR_Handle_get_ptr_indirect.constprop.0:0x477790","MPIR_Handle_get_ptr_indirect.constprop.0:0x4a4710","MPIR_Handle_get_ptr_indirect.constprop.0:0x4f6150","MPIR_Handle_get_ptr_indirect.constprop.0:0x5058b0","MPIR_Handle_get_ptr_indirect.constprop.0:0x51c630","MPIR_Handle_get_ptr_indirect.constprop.0:0x52ea10","MPIR_Handle_get_ptr_indirect.constprop.0:0x546dd0","MPIR_Handle_get_ptr_indirect.constprop.0:0x560810","MPIR_Handle_get_ptr_indirect.constprop.0:0x5c93f0","MPIR_Handle_get_ptr_indirect.constprop.0:0x5f9a50","MPIR_Handle_get_ptr_indirect.constprop.0:0x616b00","MPIR_Handle_get_ptr_indirect.constprop.0:0x62ecd0","MPIR_Handle_get_ptr_indirect.constprop.0:0x66e6b0","MPIR_Handle_get_ptr_indirect.constprop.0:0x68c550","MPIR_Handle_get_ptr_indirect.constprop.0:0x69d660","MPIR_Handle_get_ptr_indirect:0x116490","MPIR_Handle_get_ptr_indirect:0x117160","MPIR_Handle_get_ptr_indirect:0x11d340","MPIR_Handle_get_ptr_indirect:0x1317e0","MPIR_Handle_get_ptr_indirect:0x151060","MPIR_Handle_get_ptr_indirect:0x164990","MPIR_Handle_get_ptr_indirect:0x167c20","MPIR_Handle_get_ptr_indirect:0x17b570","MPIR_Handle_get_ptr_indirect:0x190340","MPIR_Handle_get_ptr_indirect:0x1b46b0","MPIR_Handle_get_ptr_indirect:0x1ce3c0","MPIR_Handle_get_ptr_indirect:0x1d1590","MPIR_Handle_get_ptr_indirect:0x21ac70","MPIR_Handle_get_ptr_indirect:0x22e1c0","MPIR_Handle_get_ptr_indirect:0x23e760","MPIR_Handle_get_ptr_indirect:0x258e80","MPIR_Handle_get_ptr_indirect:0x276aa0","MPIR_Handle_get_ptr_indirect:0x293290","MPIR_Handle_get_ptr_indirect:0x2b46b0","MPIR_Handle_get_ptr_indirect:0x2c6d20","MPIR_Handle_get_ptr_indirect:0x2d6470","MPIR_Handle_get_ptr_indirect:0x2e5c90","MPIR_Handle_get_ptr_indirect:0x2f53f0","MPIR_Handle_get_ptr_indirect:0x304ba0","MPIR_Handle_get_ptr_indirect:0x3157c0","MPIR_Handle_get_ptr_indirect:0x324500","MPIR_Handle_get_ptr_indirect:0x337050","MPIR_Handle_get_ptr_indirect:0x345bf0","MPIR_Handle_get_ptr_indirect:0x353830","MPIR_Handle_get_ptr_indirect:0x363f00","MPIR_Handle_get_ptr_indirect:0x374520","MPIR_Handle_get_ptr_indirect:0x455490","MPIR_Handle_get_ptr_indirect:0x491c70","MPIR_Handle_get_ptr_indirect:0x4b5a80","MPIR_Handle_get_ptr_indirect:0x4d550","MPIR_Handle_get_ptr_indirect:0x4f460","MPIR_Handle_get_ptr_indirect:0x51560","MPIR_Handle_get_ptr_indirect:0x53970","MPIR_Handle_get_ptr_indirect:0x55ee0","MPIR_Handle_get_ptr_indirect:0x57b10","MPIR_Handle_get_ptr_indirect:0x5b770","MPIR_Handle_get_ptr_indirect:0x67c20","MPIR_Handle_get_ptr_indirect:0x69170","MPIR_Handle_get_ptr_indirect:0x6a9a0","MPIR_Handle_get_ptr_indirect:0x6b97a0","MPIR_Handle_get_ptr_indirect:0x6c580","MPIR_Handle_get_ptr_indirect:0x6e4c0","MPIR_Handle_get_ptr_indirect:0x704a0","MPIR_Handle_get_ptr_indirect:0x72780","MPIR_Handle_get_ptr_indirect:0x74b70","MPIR_Handle_get_ptr_indirect:0x771e0","MPIR_Handle_get_ptr_indirect:0x79020","MPIR_Handle_get_ptr_indirect:0x7b310","MPIR_Handle_get_ptr_indirect:0x834e0","MPIR_Handle_get_ptr_indirect:0x84900","MPIR_Handle_get_ptr_indirect:0x863c0","MPIR_Handle_get_ptr_indirect:0x88290","MPIR_Handle_get_ptr_indirect:0x8a4f0","MPIR_Handle_get_ptr_indirect:0x8dc10","MPIR_Handle_get_ptr_indirect:0x8f5e0","MPIR_Handle_get_ptr_indirect:0x936b0","MPIR_Handle_get_ptr_indirect:0x95320","MPIR_Handle_get_ptr_indirect:0x97000","MPIR_Handle_get_ptr_indirect:0x98b40","MPIR_Handle_get_ptr_indirect:0x9a600","MPIR_Handle_get_ptr_indirect:0x9c5a0","MPIR_Handle_get_ptr_indirect:0xa0230","MPIR_Handle_get_ptr_indirect:0xa3c60","MPIR_Handle_get_ptr_indirect:0xa7810","MPIR_Handle_get_ptr_indirect:0xa9600","MPIR_Handle_get_ptr_indirect:0xab410","MPIR_Handle_get_ptr_indirect:0xb1fa0","MPIR_Handle_get_ptr_indirect:0xb3d80","MPIR_Handle_get_ptr_indirect:0xb6ed0","MPIR_Handle_get_ptr_indirect:0xb8cb0","MPIR_Handle_get_ptr_indirect:0xba900","MPIR_Handle_get_ptr_indirect:0xbc840","MPIR_Handle_get_ptr_indirect:0xbe900","MPIR_Handle_get_ptr_indirect:0xc04e0","MPIR_Handle_get_ptr_indirect:0xc2420","MPIR_Handle_get_ptr_indirect:0xc44b0","MPIR_Handle_get_ptr_indirect:0xc6740","MPIR_Handle_get_ptr_indirect:0xc8b50","MPIR_Handle_indirect_init.constprop.0:0x38f440","MPIR_Handle_indirect_init.constprop.0:0x4db6d0","MPIR_Handle_indirect_init.constprop.0:0x4de510","MPIR_Handle_indirect_init.constprop.0:0x4e90b0","MPIR_Handle_indirect_init.constprop.0:0x542d40","MPIR_Handle_indirect_init.constprop.0:0x5f9d40","MPIR_Handle_obj_alloc_unsafe.constprop.0:0x477a80","MPIR_Handle_obj_alloc_unsafe.constprop.0:0x5e8f60","MPIR_Iallgather","MPIR_Iallgather_allcomm_sched_auto","MPIR_Iallgather_impl","MPIR_Iallgather_inter_sched_auto","MPIR_Iallgather_inter_sched_local_gather_remote_bcast","MPIR_Iallgather_inter_sched_local_gather_remote_bcast.cold","MPIR_Iallgather_intra_sched_auto","MPIR_Iallgather_intra_sched_auto.cold","MPIR_Iallgather_intra_sched_brucks","MPIR_Iallgather_intra_sched_brucks.cold","MPIR_Iallgather_intra_sched_recursive_doubling","MPIR_Iallgather_intra_sched_recursive_doubling.cold","MPIR_Iallgather_intra_sched_ring","MPIR_Iallgather_intra_sched_ring.cold","MPIR_Iallgather_sched_impl","MPIR_Iallgatherv","MPIR_Iallgatherv_allcomm_sched_auto","MPIR_Iallgatherv_impl","MPIR_Iallgatherv_inter_sched_auto","MPIR_Iallgatherv_inter_sched_remote_gather_local_bcast","MPIR_Iallgatherv_intra_sched_auto","MPIR_Iallgatherv_intra_sched_auto.cold","MPIR_Iallgatherv_intra_sched_brucks","MPIR_Iallgatherv_intra_sched_brucks.cold","MPIR_Iallgatherv_intra_sched_recursive_doubling","MPIR_Iallgatherv_intra_sched_ring","MPIR_Iallgatherv_intra_sched_ring.cold","MPIR_Iallgatherv_intra_throttled","MPIR_Iallgatherv_intra_throttled.cold","MPIR_Iallgatherv_sched_impl","MPIR_Iallreduce","MPIR_Iallreduce_allcomm_sched_auto","MPIR_Iallreduce_impl","MPIR_Iallreduce_inter_sched_auto","MPIR_Iallreduce_inter_sched_remote_reduce_local_bcast","MPIR_Iallreduce_intra_cxi_trgrd","MPIR_Iallreduce_intra_cxi_trgrd.cold","MPIR_Iallreduce_intra_sched_auto","MPIR_Iallreduce_intra_sched_auto.cold","MPIR_Iallreduce_intra_sched_naive","MPIR_Iallreduce_intra_sched_recursive_doubling","MPIR_Iallreduce_intra_sched_recursive_doubling.cold","MPIR_Iallreduce_intra_sched_reduce_scatter_allgather","MPIR_Iallreduce_intra_sched_reduce_scatter_allgather.cold","MPIR_Iallreduce_intra_sched_smp","MPIR_Iallreduce_sched_impl","MPIR_Ialltoall","MPIR_Ialltoall_allcomm_sched_auto","MPIR_Ialltoall_impl","MPIR_Ialltoall_inter_sched_auto","MPIR_Ialltoall_inter_sched_pairwise_exchange","MPIR_Ialltoall_inter_sched_pairwise_exchange.cold","MPIR_Ialltoall_intra_sched_auto","MPIR_Ialltoall_intra_sched_auto.cold","MPIR_Ialltoall_intra_sched_brucks","MPIR_Ialltoall_intra_sched_brucks.cold","MPIR_Ialltoall_intra_sched_inplace","MPIR_Ialltoall_intra_sched_pairwise","MPIR_Ialltoall_intra_sched_pairwise.cold","MPIR_Ialltoall_intra_sched_permuted_sendrecv","MPIR_Ialltoall_intra_sched_permuted_sendrecv.cold","MPIR_Ialltoall_sched_impl","MPIR_Ialltoallv","MPIR_Ialltoallv_allcomm_sched_auto","MPIR_Ialltoallv_impl","MPIR_Ialltoallv_inter_sched_auto","MPIR_Ialltoallv_inter_sched_pairwise_exchange","MPIR_Ialltoallv_inter_sched_pairwise_exchange.cold","MPIR_Ialltoallv_intra_sched_auto","MPIR_Ialltoallv_intra_sched_blocked","MPIR_Ialltoallv_intra_sched_blocked.cold","MPIR_Ialltoallv_intra_sched_inplace","MPIR_Ialltoallv_intra_sched_inplace.cold","MPIR_Ialltoallv_sched_impl","MPIR_Ialltoallw","MPIR_Ialltoallw_allcomm_sched_auto","MPIR_Ialltoallw_impl","MPIR_Ialltoallw_inter_sched_auto","MPIR_Ialltoallw_inter_sched_pairwise_exchange","MPIR_Ialltoallw_intra_sched_auto","MPIR_Ialltoallw_intra_sched_blocked","MPIR_Ialltoallw_intra_sched_blocked.cold","MPIR_Ialltoallw_intra_sched_inplace","MPIR_Ialltoallw_intra_sched_inplace.cold","MPIR_Ialltoallw_sched_impl","MPIR_Ibarrier","MPIR_Ibarrier_allcomm_sched_auto","MPIR_Ibarrier_impl","MPIR_Ibarrier_inter_sched_auto","MPIR_Ibarrier_inter_sched_bcast","MPIR_Ibarrier_intra_sched_auto","MPIR_Ibarrier_intra_sched_recursive_doubling","MPIR_Ibarrier_sched_impl","MPIR_Ibcast","MPIR_Ibcast_allcomm_sched_auto","MPIR_Ibcast_impl","MPIR_Ibcast_inter_sched_auto","MPIR_Ibcast_inter_sched_flat","MPIR_Ibcast_intra_cxi_trgrd","MPIR_Ibcast_intra_cxi_trgrd.cold","MPIR_Ibcast_intra_sched_auto","MPIR_Ibcast_intra_sched_auto.cold","MPIR_Ibcast_intra_sched_binomial","MPIR_Ibcast_intra_sched_scatter_recursive_doubling_allgather","MPIR_Ibcast_intra_sched_scatter_ring_allgather","MPIR_Ibcast_intra_sched_smp","MPIR_Ibcast_intra_sched_smp.cold","MPIR_Ibcast_sched_impl","MPIR_Iexscan","MPIR_Iexscan_allcomm_sched_auto","MPIR_Iexscan_impl","MPIR_Iexscan_intra_sched_auto","MPIR_Iexscan_intra_sched_recursive_doubling","MPIR_Iexscan_intra_sched_recursive_doubling.cold","MPIR_Iexscan_sched_impl","MPIR_Igather","MPIR_Igather_allcomm_sched_auto","MPIR_Igather_impl","MPIR_Igather_inter_sched_auto","MPIR_Igather_inter_sched_auto.cold","MPIR_Igather_inter_sched_long","MPIR_Igather_inter_sched_long.cold","MPIR_Igather_inter_sched_short","MPIR_Igather_inter_sched_short.cold","MPIR_Igather_intra_cxi_trgrd","MPIR_Igather_intra_cxi_trgrd.cold","MPIR_Igather_intra_sched_auto","MPIR_Igather_intra_sched_binomial","MPIR_Igather_intra_sched_binomial.cold","MPIR_Igather_sched_impl","MPIR_Igatherv","MPIR_Igatherv_allcomm_sched_auto","MPIR_Igatherv_allcomm_sched_linear","MPIR_Igatherv_allcomm_sched_linear.cold","MPIR_Igatherv_impl","MPIR_Igatherv_inter_sched_auto","MPIR_Igatherv_intra_sched_auto","MPIR_Igatherv_sched_impl","MPIR_Ilocalcopy","MPIR_Ineighbor_allgather","MPIR_Ineighbor_allgather_allcomm_sched_auto","MPIR_Ineighbor_allgather_allcomm_sched_linear","MPIR_Ineighbor_allgather_allcomm_sched_linear.cold","MPIR_Ineighbor_allgather_impl","MPIR_Ineighbor_allgather_intra_sched_auto","MPIR_Ineighbor_allgather_sched_impl","MPIR_Ineighbor_allgatherv","MPIR_Ineighbor_allgatherv_allcomm_sched_auto","MPIR_Ineighbor_allgatherv_allcomm_sched_linear","MPIR_Ineighbor_allgatherv_allcomm_sched_linear.cold","MPIR_Ineighbor_allgatherv_impl","MPIR_Ineighbor_allgatherv_intra_sched_auto","MPIR_Ineighbor_allgatherv_sched_impl","MPIR_Ineighbor_alltoall","MPIR_Ineighbor_alltoall_allcomm_sched_auto","MPIR_Ineighbor_alltoall_allcomm_sched_linear","MPIR_Ineighbor_alltoall_allcomm_sched_linear.cold","MPIR_Ineighbor_alltoall_impl","MPIR_Ineighbor_alltoall_intra_sched_auto","MPIR_Ineighbor_alltoall_sched_impl","MPIR_Ineighbor_alltoallv","MPIR_Ineighbor_alltoallv_allcomm_sched_auto","MPIR_Ineighbor_alltoallv_allcomm_sched_linear","MPIR_Ineighbor_alltoallv_allcomm_sched_linear.cold","MPIR_Ineighbor_alltoallv_impl","MPIR_Ineighbor_alltoallv_intra_sched_auto","MPIR_Ineighbor_alltoallv_sched_impl","MPIR_Ineighbor_alltoallw","MPIR_Ineighbor_alltoallw_allcomm_sched_auto","MPIR_Ineighbor_alltoallw_allcomm_sched_linear","MPIR_Ineighbor_alltoallw_impl","MPIR_Ineighbor_alltoallw_intra_sched_auto","MPIR_Ineighbor_alltoallw_sched_impl","MPIR_Info_alloc","MPIR_Info_create_env_impl","MPIR_Info_decode_hex","MPIR_Info_delete_impl","MPIR_Info_dup_impl","MPIR_Info_free_impl","MPIR_Info_get_impl","MPIR_Info_get_nkeys_impl","MPIR_Info_get_nthkey_impl","MPIR_Info_get_string_impl","MPIR_Info_get_valuelen_impl","MPIR_Info_handle_obj_alloc","MPIR_Info_handle_obj_free","MPIR_Info_lookup","MPIR_Info_push","MPIR_Info_set_hex_impl","MPIR_Info_set_impl","MPIR_Info_setup_env","MPIR_Init_err_dyncodes","MPIR_Init_impl","MPIR_Init_thread_impl","MPIR_Initialized_impl","MPIR_Intercomm_create_from_groups_impl","MPIR_Intercomm_create_impl","MPIR_Intercomm_merge_impl","MPIR_Irecv_enqueue_impl","MPIR_Ireduce","MPIR_Ireduce_allcomm_sched_auto","MPIR_Ireduce_impl","MPIR_Ireduce_inter_sched_auto","MPIR_Ireduce_inter_sched_local_reduce_remote_send","MPIR_Ireduce_inter_sched_local_reduce_remote_send.cold","MPIR_Ireduce_intra_cxi_trgrd","MPIR_Ireduce_intra_sched_auto","MPIR_Ireduce_intra_sched_auto.cold","MPIR_Ireduce_intra_sched_binomial","MPIR_Ireduce_intra_sched_binomial.cold","MPIR_Ireduce_intra_sched_reduce_scatter_gather","MPIR_Ireduce_intra_sched_reduce_scatter_gather.cold","MPIR_Ireduce_intra_sched_smp","MPIR_Ireduce_intra_sched_smp.cold","MPIR_Ireduce_scatter","MPIR_Ireduce_scatter_allcomm_sched_auto","MPIR_Ireduce_scatter_block","MPIR_Ireduce_scatter_block_allcomm_sched_auto","MPIR_Ireduce_scatter_block_impl","MPIR_Ireduce_scatter_block_inter_sched_auto","MPIR_Ireduce_scatter_block_inter_sched_remote_reduce_local_scatterv","MPIR_Ireduce_scatter_block_inter_sched_remote_reduce_local_scatterv.cold","MPIR_Ireduce_scatter_block_intra_sched_auto","MPIR_Ireduce_scatter_block_intra_sched_auto.cold","MPIR_Ireduce_scatter_block_intra_sched_noncommutative","MPIR_Ireduce_scatter_block_intra_sched_pairwise","MPIR_Ireduce_scatter_block_intra_sched_pairwise.cold","MPIR_Ireduce_scatter_block_intra_sched_recursive_doubling","MPIR_Ireduce_scatter_block_intra_sched_recursive_doubling.cold","MPIR_Ireduce_scatter_block_intra_sched_recursive_halving","MPIR_Ireduce_scatter_block_intra_sched_recursive_halving.cold","MPIR_Ireduce_scatter_block_sched_impl","MPIR_Ireduce_scatter_impl","MPIR_Ireduce_scatter_inter_sched_auto","MPIR_Ireduce_scatter_inter_sched_remote_reduce_local_scatterv","MPIR_Ireduce_scatter_inter_sched_remote_reduce_local_scatterv.cold","MPIR_Ireduce_scatter_intra_sched_auto","MPIR_Ireduce_scatter_intra_sched_auto.cold","MPIR_Ireduce_scatter_intra_sched_noncommutative","MPIR_Ireduce_scatter_intra_sched_pairwise","MPIR_Ireduce_scatter_intra_sched_pairwise.cold","MPIR_Ireduce_scatter_intra_sched_recursive_doubling","MPIR_Ireduce_scatter_intra_sched_recursive_doubling.cold","MPIR_Ireduce_scatter_intra_sched_recursive_halving","MPIR_Ireduce_scatter_intra_sched_recursive_halving.cold","MPIR_Ireduce_scatter_sched_impl","MPIR_Ireduce_sched_impl","MPIR_Is_thread_main_impl","MPIR_Iscan","MPIR_Iscan_allcomm_sched_auto","MPIR_Iscan_impl","MPIR_Iscan_intra_sched_auto","MPIR_Iscan_intra_sched_recursive_doubling","MPIR_Iscan_intra_sched_recursive_doubling.cold","MPIR_Iscan_intra_sched_smp","MPIR_Iscan_intra_sched_smp.cold","MPIR_Iscan_sched_impl","MPIR_Iscatter","MPIR_Iscatter_allcomm_sched_auto","MPIR_Iscatter_impl","MPIR_Iscatter_inter_sched_auto","MPIR_Iscatter_inter_sched_auto.cold","MPIR_Iscatter_inter_sched_linear","MPIR_Iscatter_inter_sched_linear.cold","MPIR_Iscatter_inter_sched_remote_send_local_scatter","MPIR_Iscatter_inter_sched_remote_send_local_scatter.cold","MPIR_Iscatter_intra_cxi_trgrd","MPIR_Iscatter_intra_cxi_trgrd.cold","MPIR_Iscatter_intra_sched_auto","MPIR_Iscatter_intra_sched_binomial","MPIR_Iscatter_intra_sched_binomial.cold","MPIR_Iscatter_sched_impl","MPIR_Iscatterv","MPIR_Iscatterv_allcomm_sched_auto","MPIR_Iscatterv_allcomm_sched_linear","MPIR_Iscatterv_allcomm_sched_linear.cold","MPIR_Iscatterv_impl","MPIR_Iscatterv_inter_sched_auto","MPIR_Iscatterv_intra_sched_auto","MPIR_Iscatterv_sched_impl","MPIR_Isend_enqueue_impl","MPIR_Isendrecv_impl","MPIR_Isendrecv_replace_impl","MPIR_LAND","MPIR_LAND_check_dtype","MPIR_LOR","MPIR_LOR_check_dtype","MPIR_LXOR","MPIR_LXOR_check_dtype","MPIR_Localcopy","MPIR_Localcopy_stream","MPIR_Lookup_name_impl","MPIR_MAXF","MPIR_MAXF_check_dtype","MPIR_MAXLOC","MPIR_MAXLOC_check_dtype","MPIR_MINF","MPIR_MINF_check_dtype","MPIR_MINLOC","MPIR_MINLOC_check_dtype","MPIR_MPIOInit","MPIR_MPIR_CVAR_GROUP_COLL_ALGO_from_str","MPIR_Multi_threaded","MPIR_NO_OP","MPIR_NO_OP_check_dtype","MPIR_Neighbor_allgather","MPIR_Neighbor_allgather_allcomm_auto","MPIR_Neighbor_allgather_allcomm_nb","MPIR_Neighbor_allgather_impl","MPIR_Neighbor_allgather_init","MPIR_Neighbor_allgather_init_impl","MPIR_Neighbor_allgatherv","MPIR_Neighbor_allgatherv_allcomm_auto","MPIR_Neighbor_allgatherv_allcomm_nb","MPIR_Neighbor_allgatherv_impl","MPIR_Neighbor_allgatherv_init","MPIR_Neighbor_allgatherv_init_impl","MPIR_Neighbor_alltoall","MPIR_Neighbor_alltoall_allcomm_auto","MPIR_Neighbor_alltoall_allcomm_nb","MPIR_Neighbor_alltoall_impl","MPIR_Neighbor_alltoall_init","MPIR_Neighbor_alltoall_init_impl","MPIR_Neighbor_alltoallv","MPIR_Neighbor_alltoallv_allcomm_auto","MPIR_Neighbor_alltoallv_allcomm_nb","MPIR_Neighbor_alltoallv_impl","MPIR_Neighbor_alltoallv_init","MPIR_Neighbor_alltoallv_init_impl","MPIR_Neighbor_alltoallw","MPIR_Neighbor_alltoallw_allcomm_auto","MPIR_Neighbor_alltoallw_allcomm_nb","MPIR_Neighbor_alltoallw_impl","MPIR_Neighbor_alltoallw_init","MPIR_Neighbor_alltoallw_init_impl","MPIR_Op_builtin_get_shortname","MPIR_Op_builtin_search_by_shortname","MPIR_Op_commutative_impl","MPIR_Op_create_impl","MPIR_Op_create_large_impl","MPIR_Op_free_impl","MPIR_Op_get_alt_datatype","MPIR_Op_is_commutative","MPIR_Op_is_commutative.cold","MPIR_Open_port_impl","MPIR_PROD","MPIR_PROD_check_dtype","MPIR_Pack_external_impl","MPIR_Pack_external_size_impl","MPIR_Pack_impl","MPIR_Pack_size","MPIR_Pack_size.cold","MPIR_Pack_size_impl","MPIR_Parrived","MPIR_Persist_coll_free_cb","MPIR_Persist_coll_free_cb.cold","MPIR_Persist_coll_start","MPIR_Progress_hook_activate","MPIR_Progress_hook_deactivate","MPIR_Progress_hook_deregister","MPIR_Progress_hook_exec_all","MPIR_Progress_hook_register","MPIR_Publish_name_impl","MPIR_Query_thread_impl","MPIR_REPLACE","MPIR_REPLACE_check_dtype","MPIR_ROMIO_Get_file_errhand","MPIR_ROMIO_Set_file_errhand","MPIR_Recv_enqueue_impl","MPIR_Reduce","MPIR_Reduce.cold","MPIR_Reduce_allcomm_auto","MPIR_Reduce_allcomm_nb","MPIR_Reduce_impl","MPIR_Reduce_init","MPIR_Reduce_init_impl","MPIR_Reduce_inter_local_reduce_remote_send","MPIR_Reduce_inter_local_reduce_remote_send.cold","MPIR_Reduce_intra_binomial","MPIR_Reduce_intra_binomial.cold","MPIR_Reduce_intra_reduce_scatter_gather","MPIR_Reduce_intra_reduce_scatter_gather.cold","MPIR_Reduce_intra_smp","MPIR_Reduce_intra_smp.cold","MPIR_Reduce_local","MPIR_Reduce_local.cold","MPIR_Reduce_scatter","MPIR_Reduce_scatter_allcomm_auto","MPIR_Reduce_scatter_allcomm_nb","MPIR_Reduce_scatter_block","MPIR_Reduce_scatter_block_allcomm_auto","MPIR_Reduce_scatter_block_allcomm_nb","MPIR_Reduce_scatter_block_impl","MPIR_Reduce_scatter_block_init","MPIR_Reduce_scatter_block_init_impl","MPIR_Reduce_scatter_block_inter_remote_reduce_local_scatter","MPIR_Reduce_scatter_block_inter_remote_reduce_local_scatter.cold","MPIR_Reduce_scatter_block_intra_noncommutative","MPIR_Reduce_scatter_block_intra_noncommutative.cold","MPIR_Reduce_scatter_block_intra_pairwise","MPIR_Reduce_scatter_block_intra_pairwise.cold","MPIR_Reduce_scatter_block_intra_recursive_doubling","MPIR_Reduce_scatter_block_intra_recursive_doubling.cold","MPIR_Reduce_scatter_block_intra_recursive_halving","MPIR_Reduce_scatter_block_intra_recursive_halving.cold","MPIR_Reduce_scatter_impl","MPIR_Reduce_scatter_init","MPIR_Reduce_scatter_init_impl","MPIR_Reduce_scatter_inter_remote_reduce_local_scatter","MPIR_Reduce_scatter_inter_remote_reduce_local_scatter.cold","MPIR_Reduce_scatter_intra_noncommutative","MPIR_Reduce_scatter_intra_pairwise","MPIR_Reduce_scatter_intra_pairwise.cold","MPIR_Reduce_scatter_intra_recursive_doubling","MPIR_Reduce_scatter_intra_recursive_doubling.cold","MPIR_Reduce_scatter_intra_recursive_halving","MPIR_Reduce_scatter_intra_recursive_halving.cold","MPIR_Request_completion_processing","MPIR_Request_completion_processing.cold","MPIR_Request_create_from_pool.constprop.0:0x146c90","MPIR_Request_create_from_pool.constprop.0:0x1a84f0","MPIR_Request_create_from_pool.constprop.0:0x21bbb0","MPIR_Request_create_from_pool.constprop.0:0x22f0d0","MPIR_Request_create_from_pool.constprop.0:0x23f6d0","MPIR_Request_create_from_pool.constprop.0:0x259dc0","MPIR_Request_create_from_pool.constprop.0:0x277a10","MPIR_Request_create_from_pool.constprop.0:0x28ac10","MPIR_Request_create_from_pool.constprop.0:0x294200","MPIR_Request_create_from_pool.constprop.0:0x2a83f0","MPIR_Request_create_from_pool.constprop.0:0x2c7c60","MPIR_Request_create_from_pool.constprop.0:0x2d73b0","MPIR_Request_create_from_pool.constprop.0:0x2e6bd0","MPIR_Request_create_from_pool.constprop.0:0x2f6330","MPIR_Request_create_from_pool.constprop.0:0x305ae0","MPIR_Request_create_from_pool.constprop.0:0x337f30","MPIR_Request_create_from_pool.constprop.0:0x346ad0","MPIR_Request_create_from_pool.constprop.0:0x375400","MPIR_Request_create_from_pool.constprop.0:0x492b50","MPIR_Request_create_from_pool.constprop.0:0x4b69c0","MPIR_Request_create_from_pool.constprop.0:0x4f6440","MPIR_Request_create_from_pool.constprop.0:0x52ed00","MPIR_Request_create_from_pool.constprop.0:0x5470c0","MPIR_Request_create_from_pool.constprop.0:0x5c44d0","MPIR_Request_create_from_pool.constprop.0:0x60a1b0","MPIR_Request_create_from_pool.constprop.0:0x60c920","MPIR_Request_create_from_pool.constprop.0:0x69d950","MPIR_Request_create_from_pool:0x11e440","MPIR_Request_create_from_pool:0x1405e0","MPIR_Request_create_from_pool:0x151f70","MPIR_Request_create_from_pool:0x168b30","MPIR_Request_create_from_pool:0x17c670","MPIR_Request_create_from_pool:0x19f890","MPIR_Request_create_from_pool:0x1b5650","MPIR_Request_create_from_pool:0x1d2530","MPIR_Request_create_from_pool:0x1e9790","MPIR_Request_create_from_pool:0x200150","MPIR_Request_create_from_pool:0x2b55f0","MPIR_Request_create_from_pool:0x3166a0","MPIR_Request_create_from_pool:0x3253e0","MPIR_Request_create_from_pool:0x354770","MPIR_Request_create_from_pool:0x364e40","MPIR_Request_create_from_pool:0x41a9d0","MPIR_Request_create_from_pool:0x456490","MPIR_Request_create_from_pool:0x505ba0","MPIR_Request_create_from_pool:0x51c920","MPIR_Request_create_from_pool:0x560b00","MPIR_Request_create_from_pool:0x5c96e0","MPIR_Request_create_from_pool:0x5e0780","MPIR_Request_create_from_pool:0x616e80","MPIR_Request_create_from_pool:0x62efc0","MPIR_Request_create_from_pool:0x66e9a0","MPIR_Request_create_from_pool:0x68c840","MPIR_Request_create_from_pool:0x6bab30","MPIR_Request_free_impl","MPIR_Request_free_impl.cold","MPIR_Request_free_with_safety.constprop.0:0x11ecd0","MPIR_Request_free_with_safety.constprop.0:0x12c640","MPIR_Request_free_with_safety.constprop.0:0x1331d0","MPIR_Request_free_with_safety.constprop.0:0x140a80","MPIR_Request_free_with_safety.constprop.0:0x1476d0","MPIR_Request_free_with_safety.constprop.0:0x152a30","MPIR_Request_free_with_safety.constprop.0:0x1695f0","MPIR_Request_free_with_safety.constprop.0:0x17cf00","MPIR_Request_free_with_safety.constprop.0:0x191d30","MPIR_Request_free_with_safety.constprop.0:0x1c8860","MPIR_Request_free_with_safety.constprop.0:0x1ea280","MPIR_Request_free_with_safety.constprop.0:0x200c40","MPIR_Request_free_with_safety.constprop.0:0x21c730","MPIR_Request_free_with_safety.constprop.0:0x22fc50","MPIR_Request_free_with_safety.constprop.0:0x240250","MPIR_Request_free_with_safety.constprop.0:0x251000","MPIR_Request_free_with_safety.constprop.0:0x25a940","MPIR_Request_free_with_safety.constprop.0:0x26dc00","MPIR_Request_free_with_safety.constprop.0:0x278590","MPIR_Request_free_with_safety.constprop.0:0x28b3b0","MPIR_Request_free_with_safety.constprop.0:0x294d80","MPIR_Request_free_with_safety.constprop.0:0x2a8b90","MPIR_Request_free_with_safety.constprop.0:0x2b6850","MPIR_Request_free_with_safety.constprop.0:0x2c87e0","MPIR_Request_free_with_safety.constprop.0:0x2d7f30","MPIR_Request_free_with_safety.constprop.0:0x2e7750","MPIR_Request_free_with_safety.constprop.0:0x2f6eb0","MPIR_Request_free_with_safety.constprop.0:0x306660","MPIR_Request_free_with_safety.constprop.0:0x317160","MPIR_Request_free_with_safety.constprop.0:0x325ea0","MPIR_Request_free_with_safety.constprop.0:0x3387b0","MPIR_Request_free_with_safety.constprop.0:0x347350","MPIR_Request_free_with_safety.constprop.0:0x355530","MPIR_Request_free_with_safety.constprop.0:0x365c00","MPIR_Request_free_with_safety.constprop.0:0x375c80","MPIR_Request_free_with_safety.constprop.0:0x410c90","MPIR_Request_free_with_safety.constprop.0:0x41b280","MPIR_Request_free_with_safety.constprop.0:0x47fe70","MPIR_Request_free_with_safety.constprop.0:0x4933d0","MPIR_Request_free_with_safety.constprop.0:0x4b7240","MPIR_Request_free_with_safety.constprop.0:0x4f6cc0","MPIR_Request_free_with_safety.constprop.0:0x547940","MPIR_Request_free_with_safety.constprop.0:0x5c4960","MPIR_Request_free_with_safety.constprop.0:0x5ca1d0","MPIR_Request_free_with_safety.constprop.0:0x5e1230","MPIR_Request_free_with_safety.constprop.0:0x5e9850","MPIR_Request_free_with_safety.constprop.0:0x5fba70","MPIR_Request_free_with_safety.constprop.0:0x60d070","MPIR_Request_free_with_safety.constprop.0:0x617970","MPIR_Request_free_with_safety.constprop.0:0x62fab0","MPIR_Request_free_with_safety.constprop.0:0x6450f0","MPIR_Request_free_with_safety.constprop.0:0x64f220","MPIR_Request_free_with_safety.constprop.0:0x65eae0","MPIR_Request_free_with_safety.constprop.0:0x664140","MPIR_Request_free_with_safety.constprop.0:0x667af0","MPIR_Request_free_with_safety.constprop.0:0x671000","MPIR_Request_free_with_safety.constprop.0:0x68d0f0","MPIR_Request_free_with_safety.constprop.0:0x69e1d0","MPIR_Request_free_with_safety:0x18b320","MPIR_Request_free_with_safety:0x1a0040","MPIR_Request_free_with_safety:0x1a9b20","MPIR_Request_free_with_safety:0x1b6110","MPIR_Request_free_with_safety:0x1d2ff0","MPIR_Request_free_with_safety:0x457140","MPIR_Request_free_with_safety:0x5066d0","MPIR_Request_free_with_safety:0x51d3e0","MPIR_Request_free_with_safety:0x52f800","MPIR_Request_free_with_safety:0x543ae0","MPIR_Request_free_with_safety:0x562cb0","MPIR_Request_free_with_safety:0x6bb910","MPIR_Request_get_error","MPIR_Request_get_status_impl","MPIR_Request_handle_proc_failed","MPIR_SUM","MPIR_SUM_check_dtype","MPIR_Scan","MPIR_Scan.cold","MPIR_Scan_allcomm_auto","MPIR_Scan_allcomm_nb","MPIR_Scan_impl","MPIR_Scan_init","MPIR_Scan_init_impl","MPIR_Scan_intra_recursive_doubling","MPIR_Scan_intra_recursive_doubling.cold","MPIR_Scan_intra_smp","MPIR_Scan_intra_smp.cold","MPIR_Scatter","MPIR_Scatter_allcomm_auto","MPIR_Scatter_allcomm_nb","MPIR_Scatter_impl","MPIR_Scatter_init","MPIR_Scatter_init_impl","MPIR_Scatter_inter_linear","MPIR_Scatter_inter_linear.cold","MPIR_Scatter_inter_remote_send_local_scatter","MPIR_Scatter_inter_remote_send_local_scatter.cold","MPIR_Scatter_intra_binomial","MPIR_Scatter_intra_binomial.cold","MPIR_Scatterv","MPIR_Scatterv_allcomm_auto","MPIR_Scatterv_allcomm_linear","MPIR_Scatterv_allcomm_linear.cold","MPIR_Scatterv_allcomm_nb","MPIR_Scatterv_impl","MPIR_Scatterv_init","MPIR_Scatterv_init_impl","MPIR_Sched_cb_free_buf","MPIR_Sched_dt_and_op_allowed","MPIR_Sched_free_counter","MPIR_Segment_alloc","MPIR_Segment_alloc.cold","MPIR_Segment_count_contig_blocks","MPIR_Segment_free","MPIR_Segment_pack","MPIR_Segment_pack_external32","MPIR_Segment_to_iov","MPIR_Segment_unpack","MPIR_Segment_unpack_external32","MPIR_Send_enqueue_impl","MPIR_Sendrecv_impl","MPIR_Sendrecv_replace_impl","MPIR_Session_call_errhandler_impl","MPIR_Session_create_errhandler_impl","MPIR_Session_finalize_impl","MPIR_Session_get_errhandler_impl","MPIR_Session_get_info_impl","MPIR_Session_get_nth_pset_impl","MPIR_Session_get_num_psets_impl","MPIR_Session_get_pset_info_impl","MPIR_Session_init_impl","MPIR_Session_set_errhandler_impl","MPIR_Start_progress_thread_impl","MPIR_Start_progress_thread_impl.cold","MPIR_Status_set_bytes","MPIR_Status_set_cancelled_impl","MPIR_Status_set_elements_x_impl","MPIR_Status_set_elements_x_impl.cold","MPIR_Stop_progress_thread_impl","MPIR_Stream_comm_create_impl","MPIR_Stream_comm_create_multiplex_impl","MPIR_Stream_create_impl","MPIR_Stream_free_impl","MPIR_Strerror","MPIR_TSP_Iallgather_sched_intra_brucks","MPIR_TSP_Iallgather_sched_intra_brucks.cold","MPIR_TSP_Iallgather_sched_intra_recexch","MPIR_TSP_Iallgather_sched_intra_recexch.cold","MPIR_TSP_Iallgather_sched_intra_ring","MPIR_TSP_Iallgather_sched_intra_ring.cold","MPIR_TSP_Iallgatherv_sched_intra_brucks","MPIR_TSP_Iallgatherv_sched_intra_brucks.cold","MPIR_TSP_Iallgatherv_sched_intra_recexch","MPIR_TSP_Iallgatherv_sched_intra_recexch.cold","MPIR_TSP_Iallgatherv_sched_intra_recexch_step2","MPIR_TSP_Iallgatherv_sched_intra_ring","MPIR_TSP_Iallgatherv_sched_intra_ring.cold","MPIR_TSP_Iallreduce_sched_intra_recexch","MPIR_TSP_Iallreduce_sched_intra_recexch.cold","MPIR_TSP_Iallreduce_sched_intra_recexch_reduce_scatter_recexch_allgatherv","MPIR_TSP_Iallreduce_sched_intra_recexch_reduce_scatter_recexch_allgatherv.cold","MPIR_TSP_Iallreduce_sched_intra_recexch_step1","MPIR_TSP_Iallreduce_sched_intra_ring","MPIR_TSP_Iallreduce_sched_intra_ring.cold","MPIR_TSP_Iallreduce_sched_intra_tree","MPIR_TSP_Iallreduce_sched_intra_tree.cold","MPIR_TSP_Iallreduce_sched_intra_tsp_auto","MPIR_TSP_Ialltoall_sched_intra_brucks","MPIR_TSP_Ialltoall_sched_intra_brucks.cold","MPIR_TSP_Ialltoall_sched_intra_ring","MPIR_TSP_Ialltoall_sched_intra_ring.cold","MPIR_TSP_Ialltoall_sched_intra_scattered","MPIR_TSP_Ialltoall_sched_intra_scattered.cold","MPIR_TSP_Ialltoallv_sched_intra_blocked","MPIR_TSP_Ialltoallv_sched_intra_blocked.cold","MPIR_TSP_Ialltoallv_sched_intra_inplace","MPIR_TSP_Ialltoallv_sched_intra_inplace.cold","MPIR_TSP_Ialltoallv_sched_intra_scattered","MPIR_TSP_Ialltoallv_sched_intra_scattered.cold","MPIR_TSP_Ialltoallw_sched_intra_blocked","MPIR_TSP_Ialltoallw_sched_intra_blocked.cold","MPIR_TSP_Ialltoallw_sched_intra_inplace","MPIR_TSP_Ialltoallw_sched_intra_inplace.cold","MPIR_TSP_Ibarrier_sched_intra_k_dissemination","MPIR_TSP_Ibarrier_sched_intra_recexch","MPIR_TSP_Ibarrier_sched_intra_tsp_auto","MPIR_TSP_Ibcast_sched_intra_scatterv_allgatherv","MPIR_TSP_Ibcast_sched_intra_scatterv_allgatherv.cold","MPIR_TSP_Ibcast_sched_intra_scatterv_ring_allgatherv","MPIR_TSP_Ibcast_sched_intra_tree","MPIR_TSP_Ibcast_sched_intra_tsp_auto","MPIR_TSP_Ibcast_sched_intra_tsp_auto.cold","MPIR_TSP_Igather_sched_intra_tree","MPIR_TSP_Igather_sched_intra_tree.cold","MPIR_TSP_Igatherv_sched_allcomm_linear","MPIR_TSP_Igatherv_sched_allcomm_linear.cold","MPIR_TSP_Ineighbor_allgather_sched_allcomm_linear","MPIR_TSP_Ineighbor_allgather_sched_allcomm_linear.cold","MPIR_TSP_Ineighbor_allgatherv_sched_allcomm_linear","MPIR_TSP_Ineighbor_allgatherv_sched_allcomm_linear.cold","MPIR_TSP_Ineighbor_alltoall_sched_allcomm_linear","MPIR_TSP_Ineighbor_alltoall_sched_allcomm_linear.cold","MPIR_TSP_Ineighbor_alltoallv_sched_allcomm_linear","MPIR_TSP_Ineighbor_alltoallv_sched_allcomm_linear.cold","MPIR_TSP_Ineighbor_alltoallw_sched_allcomm_linear","MPIR_TSP_Ireduce_scatter_block_sched_intra_recexch","MPIR_TSP_Ireduce_scatter_block_sched_intra_recexch.cold","MPIR_TSP_Ireduce_scatter_sched_intra_recexch","MPIR_TSP_Ireduce_scatter_sched_intra_recexch.cold","MPIR_TSP_Ireduce_scatter_sched_intra_recexch_step2","MPIR_TSP_Ireduce_sched_intra_tree","MPIR_TSP_Ireduce_sched_intra_tree.cold","MPIR_TSP_Ireduce_sched_intra_tsp_auto","MPIR_TSP_Iscan_sched_intra_recursive_doubling","MPIR_TSP_Iscan_sched_intra_recursive_doubling.cold","MPIR_TSP_Iscatter_sched_intra_tree","MPIR_TSP_Iscatter_sched_intra_tree.cold","MPIR_TSP_Iscatterv_sched_allcomm_linear","MPIR_TSP_Iscatterv_sched_allcomm_linear.cold","MPIR_TSP_sched_cb","MPIR_TSP_sched_create","MPIR_TSP_sched_fence","MPIR_TSP_sched_free","MPIR_TSP_sched_free.cold","MPIR_TSP_sched_generic","MPIR_TSP_sched_imcast","MPIR_TSP_sched_imcast.cold","MPIR_TSP_sched_irecv","MPIR_TSP_sched_irecv.cold","MPIR_TSP_sched_irecv_status","MPIR_TSP_sched_irecv_status.cold","MPIR_TSP_sched_isend","MPIR_TSP_sched_isend.cold","MPIR_TSP_sched_issend","MPIR_TSP_sched_issend.cold","MPIR_TSP_sched_localcopy","MPIR_TSP_sched_localcopy.cold","MPIR_TSP_sched_malloc","MPIR_TSP_sched_new_type","MPIR_TSP_sched_new_type.cold","MPIR_TSP_sched_reduce_local","MPIR_TSP_sched_reduce_local.cold","MPIR_TSP_sched_reset","MPIR_TSP_sched_selective_sink","MPIR_TSP_sched_sink","MPIR_TSP_sched_start","MPIR_TSP_sched_sub_sched","MPIR_T_CVAR_REGISTER_impl","MPIR_T_CVAR_REGISTER_impl.cold","MPIR_T_PVAR_REGISTER_impl","MPIR_T_PVAR_REGISTER_impl.cold","MPIR_T_cat_add_cvar","MPIR_T_cat_add_cvar.cold","MPIR_T_cat_add_desc","MPIR_T_cat_add_desc.cold","MPIR_T_cat_add_event","MPIR_T_cat_add_event.cold","MPIR_T_cat_add_pvar","MPIR_T_cat_add_pvar.cold","MPIR_T_cat_add_subcat","MPIR_T_cat_add_subcat.cold","MPIR_T_cat_create","MPIR_T_category_get_categories_impl","MPIR_T_category_get_categories_impl.cold","MPIR_T_category_get_cvars_impl","MPIR_T_category_get_cvars_impl.cold","MPIR_T_category_get_events_impl","MPIR_T_category_get_events_impl.cold","MPIR_T_category_get_num_events_impl","MPIR_T_category_get_pvars_impl","MPIR_T_category_get_pvars_impl.cold","MPIR_T_cvar_finalize","MPIR_T_cvar_handle_alloc_impl","MPIR_T_cvar_init","MPIR_T_cvar_read_impl","MPIR_T_cvar_write_impl","MPIR_T_enum_add_item","MPIR_T_enum_create","MPIR_T_env_finalize","MPIR_T_env_init","MPIR_T_event_callback_get_info_impl","MPIR_T_event_callback_set_info_impl","MPIR_T_event_copy_impl","MPIR_T_event_get_index_impl","MPIR_T_event_get_info_impl","MPIR_T_event_get_num_impl","MPIR_T_event_get_source_impl","MPIR_T_event_get_timestamp_impl","MPIR_T_event_handle_alloc_impl","MPIR_T_event_handle_free_impl","MPIR_T_event_handle_get_info_impl","MPIR_T_event_handle_set_info_impl","MPIR_T_event_instance","MPIR_T_event_read_impl","MPIR_T_event_register_callback_impl","MPIR_T_event_set_dropped_handler_impl","MPIR_T_events_finalize","MPIR_T_pvar_env_init","MPIR_T_pvar_handle_alloc_impl","MPIR_T_pvar_handle_alloc_impl.cold","MPIR_T_pvar_handle_free_impl","MPIR_T_pvar_read_impl","MPIR_T_pvar_readreset_impl","MPIR_T_pvar_reset_impl","MPIR_T_pvar_session_create_impl","MPIR_T_pvar_session_free_impl","MPIR_T_pvar_start_impl","MPIR_T_pvar_stop_impl","MPIR_T_pvar_write_impl","MPIR_T_register_event","MPIR_T_register_source","MPIR_T_source_get_info_impl","MPIR_T_source_get_num_impl","MPIR_T_source_get_timestamp_impl","MPIR_T_strncpy","MPIR_Test","MPIR_Test_cancelled_impl","MPIR_Test_impl","MPIR_Test_state","MPIR_Testall","MPIR_Testall_impl","MPIR_Testall_state","MPIR_Testany","MPIR_Testany_impl","MPIR_Testany_state","MPIR_Testsome","MPIR_Testsome_impl","MPIR_Testsome_state","MPIR_Topo_canon_nhb","MPIR_Topo_canon_nhb_count","MPIR_Topo_test_impl","MPIR_Topology_copy_fn","MPIR_Topology_delete_fn","MPIR_Topology_finalize","MPIR_Topology_get","MPIR_Topology_put","MPIR_Treealgo_tree_create","MPIR_Treealgo_tree_free","MPIR_Type_block","MPIR_Type_block.cold","MPIR_Type_blockindexed","MPIR_Type_commit_impl","MPIR_Type_commit_impl.cold","MPIR_Type_contiguous","MPIR_Type_contiguous_impl","MPIR_Type_contiguous_large_impl","MPIR_Type_contiguous_x_impl","MPIR_Type_create_darray","MPIR_Type_create_darray.cold","MPIR_Type_create_darray_impl","MPIR_Type_create_darray_large_impl","MPIR_Type_create_hindexed_block_impl","MPIR_Type_create_hindexed_block_large_impl","MPIR_Type_create_hindexed_impl","MPIR_Type_create_hindexed_large_impl","MPIR_Type_create_hvector_impl","MPIR_Type_create_hvector_large_impl","MPIR_Type_create_indexed_block_impl","MPIR_Type_create_indexed_block_large_impl","MPIR_Type_create_keyval_impl","MPIR_Type_create_pairtype","MPIR_Type_create_resized","MPIR_Type_create_resized_impl","MPIR_Type_create_resized_large_impl","MPIR_Type_create_struct_impl","MPIR_Type_create_struct_large_impl","MPIR_Type_create_subarray","MPIR_Type_create_subarray.cold","MPIR_Type_create_subarray_impl","MPIR_Type_create_subarray_large_impl","MPIR_Type_cyclic","MPIR_Type_cyclic.cold","MPIR_Type_delete_attr_impl","MPIR_Type_dup","MPIR_Type_dup_impl","MPIR_Type_dup_impl.cold","MPIR_Type_free_impl","MPIR_Type_free_impl.cold","MPIR_Type_free_keyval_impl","MPIR_Type_get_attr_impl","MPIR_Type_get_basic_type_elements.part.0","MPIR_Type_get_contents_impl","MPIR_Type_get_contents_impl.cold","MPIR_Type_get_contents_large_impl","MPIR_Type_get_contents_large_impl.cold","MPIR_Type_get_elements","MPIR_Type_get_elements.cold","MPIR_Type_get_envelope","MPIR_Type_get_envelope.cold","MPIR_Type_get_envelope_impl","MPIR_Type_get_envelope_large_impl","MPIR_Type_get_extent_impl","MPIR_Type_get_extent_x_impl","MPIR_Type_get_extent_x_impl.cold","MPIR_Type_get_name_impl","MPIR_Type_get_true_extent_impl","MPIR_Type_get_true_extent_x_impl","MPIR_Type_get_true_extent_x_impl.cold","MPIR_Type_indexed","MPIR_Type_indexed.part.0","MPIR_Type_indexed_impl","MPIR_Type_indexed_large_impl","MPIR_Type_is_rma_atomic","MPIR_Type_match_size_impl","MPIR_Type_match_size_impl.cold","MPIR_Type_set_attr_impl","MPIR_Type_set_name_impl","MPIR_Type_size_impl","MPIR_Type_size_impl.cold","MPIR_Type_size_x_impl","MPIR_Type_size_x_impl.cold","MPIR_Type_struct","MPIR_Type_struct.cold","MPIR_Type_vector","MPIR_Type_vector_impl","MPIR_Type_vector_large_impl","MPIR_Typerep_commit","MPIR_Typerep_commit.cold","MPIR_Typerep_copy","MPIR_Typerep_create_contig","MPIR_Typerep_create_contig.cold","MPIR_Typerep_create_dup","MPIR_Typerep_create_dup.cold","MPIR_Typerep_create_hindexed","MPIR_Typerep_create_hindexed_block","MPIR_Typerep_create_hvector","MPIR_Typerep_create_indexed","MPIR_Typerep_create_indexed_block","MPIR_Typerep_create_pairtype","MPIR_Typerep_create_resized","MPIR_Typerep_create_resized.cold","MPIR_Typerep_create_struct","MPIR_Typerep_create_struct.cold","MPIR_Typerep_create_vector","MPIR_Typerep_debug","MPIR_Typerep_finalize","MPIR_Typerep_flatten","MPIR_Typerep_flatten_size","MPIR_Typerep_free","MPIR_Typerep_icopy","MPIR_Typerep_init","MPIR_Typerep_iov_len","MPIR_Typerep_iov_len.cold","MPIR_Typerep_ipack","MPIR_Typerep_ipack.part.0","MPIR_Typerep_ipack.part.0.cold","MPIR_Typerep_iunpack","MPIR_Typerep_iunpack.part.0","MPIR_Typerep_iunpack.part.0.cold","MPIR_Typerep_op","MPIR_Typerep_pack","MPIR_Typerep_pack_external","MPIR_Typerep_pack_stream","MPIR_Typerep_reduce","MPIR_Typerep_reduce_is_supported","MPIR_Typerep_size_external32","MPIR_Typerep_to_iov","MPIR_Typerep_to_iov_offset","MPIR_Typerep_to_iov_offset.cold","MPIR_Typerep_unflatten","MPIR_Typerep_unpack","MPIR_Typerep_unpack_external","MPIR_Typerep_unpack_stream","MPIR_Typerep_wait","MPIR_Unpack_external_impl","MPIR_Unpack_impl","MPIR_Unpublish_name_impl","MPIR_Wait","MPIR_Wait_enqueue_impl","MPIR_Wait_impl","MPIR_Wait_state","MPIR_Waitall","MPIR_Waitall_enqueue_impl","MPIR_Waitall_enqueue_impl.cold","MPIR_Waitall_impl","MPIR_Waitall_state","MPIR_Waitany","MPIR_Waitany_impl","MPIR_Waitany_state","MPIR_Waitsome","MPIR_Waitsome_impl","MPIR_Waitsome_state","MPIR_Win_call_errhandler_impl","MPIR_Win_create_errhandler_impl","MPIR_Win_create_keyval_impl","MPIR_Win_delete_attr_impl","MPIR_Win_free_keyval_impl","MPIR_Win_get_attr_impl","MPIR_Win_get_errhandler_impl","MPIR_Win_get_name_impl","MPIR_Win_set_attr_impl","MPIR_Win_set_errhandler_impl","MPIR_Win_set_name_impl","MPIR_Win_shared_query_impl","MPIR_allocate_enqueue_request","MPIR_allocate_enqueue_request.cold","MPIR_finalize_builtin_comms","MPIR_free_keyval","MPIR_free_keyval.part.0","MPIR_get_local_gpu_stream","MPIR_gpu_can_use_reduce_kernel","MPIR_gpu_memcpy","MPIR_gpu_memcpy_device_to_device","MPIR_gpu_memcpy_to_device","MPIR_gpu_memcpy_to_host","MPIR_gpu_post_init","MPIR_gpu_reduce_get_op_and_type","MPIR_hwtopo_get_ancestor","MPIR_hwtopo_get_depth","MPIR_hwtopo_get_dev_parent_by_pci","MPIR_hwtopo_get_leaf","MPIR_hwtopo_get_lid","MPIR_hwtopo_get_node_mem","MPIR_hwtopo_get_obj_by_name","MPIR_hwtopo_get_obj_by_type","MPIR_hwtopo_get_type_id","MPIR_hwtopo_is_dev_close_by_name","MPIR_hwtopo_is_dev_close_by_pci","MPIR_hwtopo_is_initialized","MPIR_hwtopo_mem_bind","MPIR_init_comm_self","MPIR_init_comm_world","MPIR_nettopo_get_all_edges","MPIR_nettopo_get_edge_dest_node","MPIR_nettopo_get_endpoint","MPIR_nettopo_get_node_type","MPIR_nettopo_get_node_uid","MPIR_nettopo_get_num_nodes","MPIR_nettopo_get_type","MPIR_nettopo_torus_get_dimension","MPIR_nettopo_torus_get_geometry","MPIR_nettopo_torus_get_node_index","MPIR_nettopo_tree_get_hostnode_index","MPIR_nettopo_tree_get_node_levels","MPIR_nettopo_tree_get_switches_at_level","MPIR_peer_intercomm_create","MPIR_pmi_abort","MPIR_pmi_allgather","MPIR_pmi_allgather_shm","MPIR_pmi_barrier","MPIR_pmi_barrier_local","MPIR_pmi_bcast","MPIR_pmi_finalize","MPIR_pmi_get_failed_procs","MPIR_pmi_get_hwloc_xmlfile","MPIR_pmi_get_universe_size","MPIR_pmi_has_local_cliques","MPIR_pmi_init","MPIR_pmi_job_id","MPIR_pmi_kvs_get","MPIR_pmi_kvs_put","MPIR_pmi_lookup","MPIR_pmi_max_key_size","MPIR_pmi_max_val_size","MPIR_pmi_publish","MPIR_pmi_set_threaded","MPIR_pmi_spawn_multiple","MPIR_pmi_unpublish","MPIR_stream_comm_free","MPIR_stream_comm_init","MPIU_CRAY_Check_env_vars","MPIU_CRAY_create_world_group","MPIU_CRAY_err_printf_wcname","MPIU_CRAY_exchange_lrank_numas","MPIU_CRAY_free_send_recv_list","MPIU_CRAY_free_world_group","MPIU_CRAY_get_cname","MPIU_CRAY_get_cpulist_for_numa_node","MPIU_CRAY_get_my_rank_numa_node","MPIU_CRAY_get_num_numa_nodes","MPIU_CRAY_get_number","MPIU_CRAY_process_num_range","MPIU_CRAY_process_num_range.part.0","MPIU_CRAY_random_gen","MPIU_Cray_cvar_process_int","MPIU_Cray_cvar_process_long","MPIU_Cray_cvar_process_unsigned_long","MPIU_Cray_env","MPIU_Cray_env2crayboolean","MPIU_Cray_env2int","MPIU_Cray_env2long","MPIU_Cray_env2unsignedlong","MPIU_Cray_env_process_bool","MPIU_Cray_env_process_int","MPIU_Cray_env_process_long","MPIU_Cray_env_process_unsigned_long","MPIU_Cray_gettid","MPIU_Cray_printf","MPIU_Cray_printf_init","MPIU_Greq_cancel_fn","MPIU_Greq_free_fn","MPIU_Greq_query_fn","MPIU_MPIDI_CRAY_mem_dbg.isra.0","MPIU_Sort_inttable","MPIU_Thread_safety_str","MPIU_cray_ReduceSummary","MPIU_datatype_full_size","MPIU_external32_buffer_setup","MPIU_get_randomized_sendto_rank","MPIU_read_external32_conversion_fn","MPIU_write_external32_conversion_fn","MPIX_Comm_agree","MPIX_Comm_failure_ack","MPIX_Comm_failure_get_acked","MPIX_Comm_get_failed","MPIX_Comm_revoke","MPIX_Comm_shrink","MPIX_Create_queue","MPIX_Delete_error_class","MPIX_Delete_error_code","MPIX_Delete_error_string","MPIX_Enqueue_recv","MPIX_Enqueue_send","MPIX_Enqueue_start","MPIX_Enqueue_wait","MPIX_Free_queue","MPIX_GPU_query_support","MPIX_Grequest_class_allocate","MPIX_Grequest_class_create","MPIX_Grequest_start","MPIX_Info_set_hex","MPIX_KT_Get_dreq","MPIX_Query_cuda_support","MPIX_Query_hip_support","MPIX_Query_ze_support","MPIX_Type_iov","MPIX_Type_iov_len","MPIX_Win_complete_stream","MPIX_Win_post_stream","MPIX_Win_progress_stream","MPIX_Win_wait_stream","MPI_Abort","MPI_Accumulate","MPI_Accumulate_c","MPI_Add_error_class","MPI_Add_error_code","MPI_Add_error_string","MPI_Address","MPI_Aint_add","MPI_Aint_diff","MPI_Allgather","MPI_Allgather_c","MPI_Allgather_init","MPI_Allgather_init_c","MPI_Allgatherv","MPI_Allgatherv_c","MPI_Allgatherv_init","MPI_Allgatherv_init_c","MPI_Alloc_mem","MPI_Allreduce","MPI_Allreduce_c","MPI_Allreduce_init","MPI_Allreduce_init_c","MPI_Alltoall","MPI_Alltoall_c","MPI_Alltoall_init","MPI_Alltoall_init_c","MPI_Alltoallv","MPI_Alltoallv_c","MPI_Alltoallv_init","MPI_Alltoallv_init_c","MPI_Alltoallw","MPI_Alltoallw_c","MPI_Alltoallw_init","MPI_Alltoallw_init_c","MPI_Attr_delete","MPI_Attr_get","MPI_Attr_put","MPI_Barrier","MPI_Barrier_init","MPI_Bcast","MPI_Bcast_c","MPI_Bcast_init","MPI_Bcast_init_c","MPI_Bsend","MPI_Bsend_c","MPI_Bsend_init","MPI_Bsend_init_c","MPI_Buffer_attach","MPI_Buffer_attach_c","MPI_Buffer_detach","MPI_Buffer_detach_c","MPI_CRAY_get_version","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_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_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_Dims_create","MPI_Dist_graph_create","MPI_Dist_graph_create_adjacent","MPI_Dist_graph_neighbors","MPI_Dist_graph_neighbors_count","MPI_Errhandler_create","MPI_Errhandler_free","MPI_Errhandler_get","MPI_Errhandler_set","MPI_Error_class","MPI_Error_string","MPI_Exscan","MPI_Exscan_c","MPI_Exscan_init","MPI_Exscan_init_c","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_type_extent_c","MPI_File_get_view","MPI_File_iread","MPI_File_iread_all","MPI_File_iread_all_c","MPI_File_iread_at","MPI_File_iread_at_all","MPI_File_iread_at_all_c","MPI_File_iread_at_c","MPI_File_iread_c","MPI_File_iread_shared","MPI_File_iread_shared_c","MPI_File_iwrite","MPI_File_iwrite_all","MPI_File_iwrite_all_c","MPI_File_iwrite_at","MPI_File_iwrite_at_all","MPI_File_iwrite_at_all_c","MPI_File_iwrite_at_c","MPI_File_iwrite_c","MPI_File_iwrite_shared","MPI_File_iwrite_shared_c","MPI_File_open","MPI_File_preallocate","MPI_File_read","MPI_File_read_all","MPI_File_read_all_begin","MPI_File_read_all_begin_c","MPI_File_read_all_c","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_begin_c","MPI_File_read_at_all_c","MPI_File_read_at_all_end","MPI_File_read_at_c","MPI_File_read_c","MPI_File_read_ordered","MPI_File_read_ordered_begin","MPI_File_read_ordered_begin_c","MPI_File_read_ordered_c","MPI_File_read_ordered_end","MPI_File_read_shared","MPI_File_read_shared_c","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_begin_c","MPI_File_write_all_c","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_begin_c","MPI_File_write_at_all_c","MPI_File_write_at_all_end","MPI_File_write_at_c","MPI_File_write_c","MPI_File_write_ordered","MPI_File_write_ordered_begin","MPI_File_write_ordered_begin_c","MPI_File_write_ordered_c","MPI_File_write_ordered_end","MPI_File_write_shared","MPI_File_write_shared_c","MPI_Finalize","MPI_Finalized","MPI_Free_mem","MPI_Gather","MPI_Gather_c","MPI_Gather_init","MPI_Gather_init_c","MPI_Gatherv","MPI_Gatherv_c","MPI_Gatherv_init","MPI_Gatherv_init_c","MPI_Get","MPI_Get_accumulate","MPI_Get_accumulate_c","MPI_Get_address","MPI_Get_c","MPI_Get_count","MPI_Get_count_c","MPI_Get_elements","MPI_Get_elements_c","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_compare","MPI_Group_difference","MPI_Group_excl","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_Iallgather_c","MPI_Iallgatherv","MPI_Iallgatherv_c","MPI_Iallreduce","MPI_Iallreduce_c","MPI_Ialltoall","MPI_Ialltoall_c","MPI_Ialltoallv","MPI_Ialltoallv_c","MPI_Ialltoallw","MPI_Ialltoallw_c","MPI_Ibarrier","MPI_Ibcast","MPI_Ibcast_c","MPI_Ibsend","MPI_Ibsend_c","MPI_Iexscan","MPI_Iexscan_c","MPI_Igather","MPI_Igather_c","MPI_Igatherv","MPI_Igatherv_c","MPI_Improbe","MPI_Imrecv","MPI_Imrecv_c","MPI_Ineighbor_allgather","MPI_Ineighbor_allgather_c","MPI_Ineighbor_allgatherv","MPI_Ineighbor_allgatherv_c","MPI_Ineighbor_alltoall","MPI_Ineighbor_alltoall_c","MPI_Ineighbor_alltoallv","MPI_Ineighbor_alltoallv_c","MPI_Ineighbor_alltoallw","MPI_Ineighbor_alltoallw_c","MPI_Info_create","MPI_Info_create_env","MPI_Info_delete","MPI_Info_dup","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_Info_val_int_to_str","MPI_Info_val_str_to_int","MPI_Init","MPI_Init_thread","MPI_Initialized","MPI_Intercomm_create","MPI_Intercomm_create_from_groups","MPI_Intercomm_merge","MPI_Iprobe","MPI_Irecv","MPI_Irecv_c","MPI_Ireduce","MPI_Ireduce_c","MPI_Ireduce_scatter","MPI_Ireduce_scatter_block","MPI_Ireduce_scatter_block_c","MPI_Ireduce_scatter_c","MPI_Irsend","MPI_Irsend_c","MPI_Is_thread_main","MPI_Iscan","MPI_Iscan_c","MPI_Iscatter","MPI_Iscatter_c","MPI_Iscatterv","MPI_Iscatterv_c","MPI_Isend","MPI_Isend_c","MPI_Isendrecv","MPI_Isendrecv_c","MPI_Isendrecv_replace","MPI_Isendrecv_replace_c","MPI_Issend","MPI_Issend_c","MPI_Keyval_create","MPI_Keyval_free","MPI_Lookup_name","MPI_Mprobe","MPI_Mrecv","MPI_Mrecv_c","MPI_Neighbor_allgather","MPI_Neighbor_allgather_c","MPI_Neighbor_allgather_init","MPI_Neighbor_allgather_init_c","MPI_Neighbor_allgatherv","MPI_Neighbor_allgatherv_c","MPI_Neighbor_allgatherv_init","MPI_Neighbor_allgatherv_init_c","MPI_Neighbor_alltoall","MPI_Neighbor_alltoall_c","MPI_Neighbor_alltoall_init","MPI_Neighbor_alltoall_init_c","MPI_Neighbor_alltoallv","MPI_Neighbor_alltoallv_c","MPI_Neighbor_alltoallv_init","MPI_Neighbor_alltoallv_init_c","MPI_Neighbor_alltoallw","MPI_Neighbor_alltoallw_c","MPI_Neighbor_alltoallw_init","MPI_Neighbor_alltoallw_init_c","MPI_Op_commutative","MPI_Op_create","MPI_Op_create_c","MPI_Op_free","MPI_Open_port","MPI_Pack","MPI_Pack_c","MPI_Pack_external","MPI_Pack_external_c","MPI_Pack_external_size","MPI_Pack_external_size_c","MPI_Pack_size","MPI_Pack_size_c","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_Put_c","MPI_Query_thread","MPI_Raccumulate","MPI_Raccumulate_c","MPI_Recv","MPI_Recv_c","MPI_Recv_init","MPI_Recv_init_c","MPI_Reduce","MPI_Reduce_c","MPI_Reduce_init","MPI_Reduce_init_c","MPI_Reduce_local","MPI_Reduce_local_c","MPI_Reduce_scatter","MPI_Reduce_scatter_block","MPI_Reduce_scatter_block_c","MPI_Reduce_scatter_block_init","MPI_Reduce_scatter_block_init_c","MPI_Reduce_scatter_c","MPI_Reduce_scatter_init","MPI_Reduce_scatter_init_c","MPI_Register_datarep","MPI_Register_datarep_c","MPI_Request_free","MPI_Request_get_status","MPI_Rget","MPI_Rget_accumulate","MPI_Rget_accumulate_c","MPI_Rget_c","MPI_Rput","MPI_Rput_c","MPI_Rsend","MPI_Rsend_c","MPI_Rsend_init","MPI_Rsend_init_c","MPI_Scan","MPI_Scan_c","MPI_Scan_init","MPI_Scan_init_c","MPI_Scatter","MPI_Scatter_c","MPI_Scatter_init","MPI_Scatter_init_c","MPI_Scatterv","MPI_Scatterv_c","MPI_Scatterv_init","MPI_Scatterv_init_c","MPI_Send","MPI_Send_c","MPI_Send_init","MPI_Send_init_c","MPI_Sendrecv","MPI_Sendrecv_c","MPI_Sendrecv_replace","MPI_Sendrecv_replace_c","MPI_Session_call_errhandler","MPI_Session_create_errhandler","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_Ssend","MPI_Ssend_c","MPI_Ssend_init","MPI_Ssend_init_c","MPI_Start","MPI_Startall","MPI_Status_c2f","MPI_Status_f2c","MPI_Status_set_cancelled","MPI_Status_set_elements","MPI_Status_set_elements_c","MPI_Status_set_elements_x","MPI_T_category_changed","MPI_T_category_get_categories","MPI_T_category_get_cvars","MPI_T_category_get_events","MPI_T_category_get_index","MPI_T_category_get_info","MPI_T_category_get_num","MPI_T_category_get_num_events","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_event_callback_get_info","MPI_T_event_callback_set_info","MPI_T_event_copy","MPI_T_event_get_index","MPI_T_event_get_info","MPI_T_event_get_num","MPI_T_event_get_source","MPI_T_event_get_timestamp","MPI_T_event_handle_alloc","MPI_T_event_handle_free","MPI_T_event_handle_get_info","MPI_T_event_handle_set_info","MPI_T_event_read","MPI_T_event_register_callback","MPI_T_event_set_dropped_handler","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_T_source_get_info","MPI_T_source_get_num","MPI_T_source_get_timestamp","MPI_Test","MPI_Test_cancelled","MPI_Testall","MPI_Testany","MPI_Testsome","MPI_Topo_test","MPI_Type_commit","MPI_Type_contiguous","MPI_Type_contiguous_c","MPI_Type_create_darray","MPI_Type_create_darray_c","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_hindexed_block_c","MPI_Type_create_hindexed_c","MPI_Type_create_hvector","MPI_Type_create_hvector_c","MPI_Type_create_indexed_block","MPI_Type_create_indexed_block_c","MPI_Type_create_keyval","MPI_Type_create_resized","MPI_Type_create_resized_c","MPI_Type_create_struct","MPI_Type_create_struct_c","MPI_Type_create_subarray","MPI_Type_create_subarray_c","MPI_Type_delete_attr","MPI_Type_dup","MPI_Type_extent","MPI_Type_free","MPI_Type_free_keyval","MPI_Type_get_attr","MPI_Type_get_contents","MPI_Type_get_contents_c","MPI_Type_get_envelope","MPI_Type_get_envelope_c","MPI_Type_get_extent","MPI_Type_get_extent_c","MPI_Type_get_extent_x","MPI_Type_get_name","MPI_Type_get_true_extent","MPI_Type_get_true_extent_c","MPI_Type_get_true_extent_x","MPI_Type_hindexed","MPI_Type_hvector","MPI_Type_indexed","MPI_Type_indexed_c","MPI_Type_lb","MPI_Type_match_size","MPI_Type_set_attr","MPI_Type_set_name","MPI_Type_size","MPI_Type_size_c","MPI_Type_size_x","MPI_Type_struct","MPI_Type_ub","MPI_Type_vector","MPI_Type_vector_c","MPI_Unpack","MPI_Unpack_c","MPI_Unpack_external","MPI_Unpack_external_c","MPI_Unpublish_name","MPI_Wait","MPI_Waitall","MPI_Waitany","MPI_Waitsome","MPI_Win_allocate","MPI_Win_allocate_c","MPI_Win_allocate_shared","MPI_Win_allocate_shared_c","MPI_Win_attach","MPI_Win_call_errhandler","MPI_Win_complete","MPI_Win_create","MPI_Win_create_c","MPI_Win_create_dynamic","MPI_Win_create_errhandler","MPI_Win_create_keyval","MPI_Win_delete_attr","MPI_Win_detach","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_shared_query_c","MPI_Win_start","MPI_Win_sync","MPI_Win_test","MPI_Win_unlock","MPI_Win_unlock_all","MPI_Win_wait","MPI_Wtick","MPI_Wtime","MPLI_gavl_intersect_cmp_func","MPLI_gavl_start_addr_cmp_func","MPLI_gavl_subset_cmp_func","MPLI_shm_ghnd_alloc:0x708110","MPLI_shm_ghnd_alloc:0x70856c","MPLI_shm_hnd_alloc","MPLI_shm_hnd_free","MPLI_shm_hnd_reset_val","MPLI_thread_start","MPL_args_deserialize","MPL_args_serialize","MPL_backtrace_show","MPL_connect","MPL_cray_calloc:0x708c7e","MPL_cray_calloc:0x742275","MPL_cray_calloc:0x7c1e3f","MPL_cray_free.constprop.0","MPL_cray_free:0x6fdae8","MPL_cray_free:0x70747f","MPL_cray_free:0x70797b","MPL_cray_free:0x7080c1","MPL_cray_free:0x708985","MPL_cray_free:0x708ce2","MPL_cray_free:0x716b06","MPL_cray_free:0x7170fc","MPL_cray_free:0x7195dc","MPL_cray_free:0x71b95a","MPL_cray_free:0x71dcf7","MPL_cray_free:0x720147","MPL_cray_free:0x7223ca","MPL_cray_free:0x7250ad","MPL_cray_free:0x727814","MPL_cray_free:0x729ceb","MPL_cray_free:0x72c1bc","MPL_cray_free:0x72e31e","MPL_cray_free:0x7300cf","MPL_cray_free:0x733f6f","MPL_cray_free:0x736620","MPL_cray_free:0x738a44","MPL_cray_free:0x73ae0b","MPL_cray_free:0x73cfd2","MPL_cray_free:0x73f315","MPL_cray_free:0x7422d9","MPL_cray_free:0x74ef33","MPL_cray_free:0x756777","MPL_cray_free:0x758dc4","MPL_cray_free:0x758ef7","MPL_cray_free:0x75a3cd","MPL_cray_free:0x75d455","MPL_cray_free:0x75e287","MPL_cray_free:0x760d13","MPL_cray_free:0x76c904","MPL_cray_free:0x76cddd","MPL_cray_free:0x770f34","MPL_cray_free:0x775303","MPL_cray_free:0x776737","MPL_cray_free:0x77a845","MPL_cray_free:0x781e03","MPL_cray_free:0x783839","MPL_cray_free:0x7845f6","MPL_cray_free:0x79345a","MPL_cray_free:0x79561e","MPL_cray_free:0x79db68","MPL_cray_free:0x79de72","MPL_cray_free:0x79f65c","MPL_cray_free:0x7a0c86","MPL_cray_free:0x7a1d15","MPL_cray_free:0x7a93e7","MPL_cray_free:0x7ad064","MPL_cray_free:0x7aeadf","MPL_cray_free:0x7af1e6","MPL_cray_free:0x7b2bed","MPL_cray_free:0x7b5860","MPL_cray_free:0x7b7d06","MPL_cray_free:0x7b8418","MPL_cray_free:0x7bc2c5","MPL_cray_free:0x7c1ea3","MPL_cray_in_shmctl","MPL_cray_in_shmget","MPL_cray_malloc:0x6fda96","MPL_cray_malloc:0x6ffa3f","MPL_cray_malloc:0x70742d","MPL_cray_malloc:0x707929","MPL_cray_malloc:0x70806f","MPL_cray_malloc:0x708457","MPL_cray_malloc:0x708933","MPL_cray_malloc:0x742223","MPL_cray_malloc:0x7c1ded","MPL_cray_realloc.constprop.0","MPL_cray_realloc:0x6fdb37","MPL_cray_realloc:0x7c1ef2","MPL_cray_strdup.constprop.0","MPL_cray_strdup:0x716ab8","MPL_cray_strdup:0x7170ae","MPL_cray_strdup:0x71958e","MPL_cray_strdup:0x71b90c","MPL_cray_strdup:0x71dca9","MPL_cray_strdup:0x7200f9","MPL_cray_strdup:0x72237c","MPL_cray_strdup:0x72505f","MPL_cray_strdup:0x7277c6","MPL_cray_strdup:0x729c9d","MPL_cray_strdup:0x72c16e","MPL_cray_strdup:0x72e2d0","MPL_cray_strdup:0x730081","MPL_cray_strdup:0x733f21","MPL_cray_strdup:0x7365d2","MPL_cray_strdup:0x7389f6","MPL_cray_strdup:0x73adbd","MPL_cray_strdup:0x73cf84","MPL_cray_strdup:0x73f2c7","MPL_cray_strdup:0x74eee5","MPL_cray_strdup:0x756729","MPL_cray_strdup:0x758d76","MPL_cray_strdup:0x758ea9","MPL_cray_strdup:0x75a37f","MPL_cray_strdup:0x75d407","MPL_cray_strdup:0x75e239","MPL_cray_strdup:0x760cc5","MPL_cray_strdup:0x76c8b6","MPL_cray_strdup:0x76cd8f","MPL_cray_strdup:0x770ee6","MPL_cray_strdup:0x7752b5","MPL_cray_strdup:0x7766e9","MPL_cray_strdup:0x77a7f7","MPL_cray_strdup:0x781db5","MPL_cray_strdup:0x7837eb","MPL_cray_strdup:0x7845a8","MPL_cray_strdup:0x79340c","MPL_cray_strdup:0x7955d0","MPL_cray_strdup:0x79db1a","MPL_cray_strdup:0x79de24","MPL_cray_strdup:0x79f60e","MPL_cray_strdup:0x7a0c38","MPL_cray_strdup:0x7a1cc7","MPL_cray_strdup:0x7a9399","MPL_cray_strdup:0x7ad016","MPL_cray_strdup:0x7aea91","MPL_cray_strdup:0x7af198","MPL_cray_strdup:0x7b2b9f","MPL_cray_strdup:0x7b5812","MPL_cray_strdup:0x7b7cb8","MPL_cray_strdup:0x7b83ca","MPL_cray_strdup:0x7bc277","MPL_cray_trExit","MPL_cray_trHWMSummaryOn","MPL_cray_trInitBytesOn","MPL_cray_trSummary","MPL_cray_trconfig","MPL_cray_trmaxmem","MPL_cray_tron","MPL_cray_trshm_dec","MPL_cray_trshm_inc","MPL_cray_trshmctl","MPL_cray_trshmget","MPL_create_pathname","MPL_direct_calloc","MPL_direct_free","MPL_direct_malloc","MPL_direct_realloc","MPL_direct_strdup","MPL_env2bool","MPL_env2double","MPL_env2int","MPL_env2long","MPL_env2range","MPL_env2str","MPL_env2unsignedlong","MPL_exit","MPL_external_free","MPL_gavl_tree_create","MPL_gavl_tree_delete_range","MPL_gavl_tree_delete_start_addr","MPL_gavl_tree_destory","MPL_gavl_tree_insert","MPL_get_nprocs","MPL_get_sockaddr","MPL_get_sockaddr_direct","MPL_get_sockaddr_iface","MPL_gpu_dev_affinity_to_env","MPL_gpu_enqueue_trigger","MPL_gpu_enqueue_wait","MPL_gpu_event_complete","MPL_gpu_event_init_count","MPL_gpu_event_is_complete","MPL_gpu_finalize","MPL_gpu_free","MPL_gpu_free_hook_register","MPL_gpu_free_host","MPL_gpu_get_buffer_bounds","MPL_gpu_get_dev_count","MPL_gpu_get_dev_id_from_attr","MPL_gpu_get_dev_list","MPL_gpu_global_to_local_dev_id","MPL_gpu_init","MPL_gpu_ipc_handle_create","MPL_gpu_ipc_handle_map","MPL_gpu_ipc_handle_unmap","MPL_gpu_launch_hostfn","MPL_gpu_local_to_global_dev_id","MPL_gpu_malloc","MPL_gpu_malloc_host","MPL_gpu_query_support","MPL_gpu_register_host","MPL_gpu_stream_is_valid","MPL_gpu_unregister_host","MPL_host_is_local","MPL_initlock_lock.part.0:0x46ef00","MPL_initlock_lock.part.0:0x4f36c0","MPL_initlock_lock.part.0:0x5b9180","MPL_initlock_unlock.part.0:0x46ef30","MPL_initlock_unlock.part.0:0x4f36f0","MPL_initlock_unlock.part.0:0x5b91b0","MPL_internal_error_printf","MPL_internal_sys_error_printf","MPL_large_readv","MPL_large_writev","MPL_listen","MPL_listen_anyport","MPL_listen_portrange","MPL_msg_printf","MPL_putenv","MPL_rankmap_array_to_str","MPL_rankmap_str_to_array","MPL_set_listen_attr","MPL_shm_fixed_seg_attach","MPL_shm_fixed_seg_create_and_attach","MPL_shm_hnd_deserialize","MPL_shm_hnd_deserialize_by_ref","MPL_shm_hnd_finalize","MPL_shm_hnd_get_serialized_by_ref","MPL_shm_hnd_init","MPL_shm_hnd_serialize","MPL_shm_seg_attach","MPL_shm_seg_create","MPL_shm_seg_create_and_attach","MPL_shm_seg_create_attach_templ","MPL_shm_seg_detach","MPL_shm_seg_open","MPL_shm_seg_remove","MPL_sockaddr_port","MPL_sockaddr_set_aftype","MPL_sockaddr_to_str","MPL_socket","MPL_str_add_binary_arg","MPL_str_add_int_arg","MPL_str_add_string","MPL_str_add_string_arg","MPL_str_get_binary_arg","MPL_str_get_int_arg","MPL_str_get_string","MPL_str_get_string_arg","MPL_strdup_no_spaces","MPL_stricmp","MPL_strnapp","MPL_strncpy","MPL_strsep","MPL_thread_create","MPL_thread_set_affinity","MPL_ticks_per_second","MPL_traligned_alloc","MPL_trcalloc","MPL_trcategorydump","MPL_trconfig","MPL_trdump","MPL_trfree","MPL_trinit","MPL_trmalloc","MPL_trmmap","MPL_trmunmap","MPL_trrealloc","MPL_trstrdup","MPL_trvalid","MPL_trvalid2","MPL_usage_printf","MPL_wtick","MPL_wtime","MPL_wtime_acc","MPL_wtime_diff","MPL_wtime_init","MPL_wtime_to_ticks","MPL_wtime_todouble","MPL_wtime_touint","QMPI_Get_calling_address","QMPI_Get_function","QMPI_Get_tool_storage","QMPI_Register_function","QMPI_Register_tool_name","QMPI_Register_tool_storage","Star","VALGRIND_PRINTF","VALGRIND_PRINTF_BACKTRACE","__addtf3","__cray_dummy_ccopy_SKX","__cray_dummy_dcopy_SKX","__cray_dummy_scopy_SKX","__cray_dummy_zcopy_SKX","__do_global_dtors_aux","__fstat","__getf2","__gttf2","__letf2","__lstat","__lttf2","__muldc3","__mulsc3","__multf3","__popcountdi2","__sfp_handle_exceptions","__stat","_cray_get_clock_rate_mhz","_cray_mpi_memcpy_hsw","_cray_mpi_memcpy_int","_cray_mpi_memcpy_knl","_cray_mpi_memcpy_npl","_cray_mpi_memcpy_rome","_cray_mpi_memcpy_skx","_cray_mpi_memcpy_snb","_cray_mpi_memcpy_string","_cray_ofi_get_nic_numa_node","_cray_ofi_get_numa_node_distances","_cray_ofi_parse_num_nics_str","_cxi_counter_sample","_cxi_global_counters_init","_cxi_global_counters_report","_cxi_init_counter","_dummy_touch_tls","_json_c_set_last_err","_json_c_strerror","_json_c_visit","_json_object_to_fd","_json_object_userdata_to_json_string","_mpidi_cray_pmi_allgather","_mpiio_clock_rate","_mpiio_clock_rate_mhz","_mpiio_cray_interval_stats_flush_NEW:0x7180df","_mpiio_cray_interval_stats_flush_NEW:0x71a5bf","_mpiio_cray_interval_stats_flush_NEW:0x71c93d","_mpiio_cray_interval_stats_flush_NEW:0x71ecda","_mpiio_cray_interval_stats_flush_NEW:0x72112a","_mpiio_cray_interval_stats_flush_NEW:0x7233ad","_mpiio_cray_interval_stats_flush_NEW:0x726372","_mpiio_cray_interval_stats_flush_NEW:0x728ad9","_mpiio_cray_interval_stats_flush_NEW:0x72acce","_mpiio_cray_interval_stats_flush_NEW:0x72d19f","_mpiio_cray_interval_stats_flush_NEW:0x72f301","_mpiio_cray_interval_stats_flush_NEW:0x7310b2","_mpiio_cray_interval_stats_flush_NEW:0x735234","_mpiio_cray_interval_stats_flush_NEW:0x7378e5","_mpiio_cray_interval_stats_flush_NEW:0x739a27","_mpiio_cray_interval_stats_flush_NEW:0x73bdee","_mpiio_cray_interval_stats_flush_NEW:0x73dfb5","_mpiio_cray_interval_stats_flush_NEW:0x7402f8","_mpiio_cray_interval_stats_flush_NEW:0x7501f8","_mpiio_cray_interval_stats_flush_NEW:0x761cea","_mpiio_cray_interval_stats_flush_NEW:0x76e0a2","_mpiio_cray_interval_stats_flush_NEW:0x7779fc","_mpiio_cray_interval_stats_flush_NEW:0x7968e3","_mpiio_cray_interval_stats_flush_NEW:0x79ee55","_mpiio_cray_interval_stats_flush_NEW:0x7a063f","_mpiio_cray_interval_stats_flush_NEW:0x7b6b25","_mpiio_cray_interval_stats_write:0x7171fe","_mpiio_cray_interval_stats_write:0x7196de","_mpiio_cray_interval_stats_write:0x71ba5c","_mpiio_cray_interval_stats_write:0x71ddf9","_mpiio_cray_interval_stats_write:0x720249","_mpiio_cray_interval_stats_write:0x7224cc","_mpiio_cray_interval_stats_write:0x725491","_mpiio_cray_interval_stats_write:0x727bf8","_mpiio_cray_interval_stats_write:0x729ded","_mpiio_cray_interval_stats_write:0x72c2be","_mpiio_cray_interval_stats_write:0x72e420","_mpiio_cray_interval_stats_write:0x7301d1","_mpiio_cray_interval_stats_write:0x734353","_mpiio_cray_interval_stats_write:0x736a04","_mpiio_cray_interval_stats_write:0x738b46","_mpiio_cray_interval_stats_write:0x73af0d","_mpiio_cray_interval_stats_write:0x73d0d4","_mpiio_cray_interval_stats_write:0x73f417","_mpiio_cray_interval_stats_write:0x74f317","_mpiio_cray_interval_stats_write:0x760e15","_mpiio_cray_interval_stats_write:0x76d1c1","_mpiio_cray_interval_stats_write:0x776b1b","_mpiio_cray_interval_stats_write:0x795a02","_mpiio_cray_interval_stats_write:0x79df74","_mpiio_cray_interval_stats_write:0x79f75e","_mpiio_cray_interval_stats_write:0x7b5c44","_mpiio_rtc:0x71714b","_mpiio_rtc:0x71962b","_mpiio_rtc:0x71b9a9","_mpiio_rtc:0x71dd46","_mpiio_rtc:0x720196","_mpiio_rtc:0x722419","_mpiio_rtc:0x7250fc","_mpiio_rtc:0x727863","_mpiio_rtc:0x729d3a","_mpiio_rtc:0x72c20b","_mpiio_rtc:0x72e36d","_mpiio_rtc:0x73011e","_mpiio_rtc:0x733fbe","_mpiio_rtc:0x73666f","_mpiio_rtc:0x738a93","_mpiio_rtc:0x73ae5a","_mpiio_rtc:0x73d021","_mpiio_rtc:0x73f364","_mpiio_rtc:0x74ef82","_mpiio_rtc:0x7567c6","_mpiio_rtc:0x75d4a4","_mpiio_rtc:0x75e2d6","_mpiio_rtc:0x760d62","_mpiio_rtc:0x76ce2c","_mpiio_rtc:0x770f83","_mpiio_rtc:0x776786","_mpiio_rtc:0x77a894","_mpiio_rtc:0x783888","_mpiio_rtc:0x79566d","_mpiio_rtc:0x79dec1","_mpiio_rtc:0x79f6ab","_mpiio_rtc:0x7aeb2e","_mpiio_rtc:0x7af235","_mpiio_rtc:0x7b58af","_mpiio_rtc:0x7b7d55","_mpiio_timer_start:0x72511e","_mpiio_timer_start:0x727885","_mpiio_timer_start:0x733fe0","_mpiio_timer_start:0x736691","_mpiio_timer_start:0x74efa4","_mpiio_timer_start:0x7567e8","_mpiio_timer_start:0x75e2f8","_mpiio_timer_start:0x76ce4e","_mpiio_timer_start:0x770fa5","_mpiio_timer_start:0x7767a8","_mpiio_timer_start:0x77a8b6","_mpiio_timer_start:0x7838aa","_mpiio_timer_start:0x79568f","_mpiio_timer_start:0x7aeb50","_mpiio_timer_start:0x7af257","_mpiio_timer_start:0x7b58d1","_mpiio_timer_start:0x7b7d77","_mpiio_timer_stop:0x72528c","_mpiio_timer_stop:0x7279f3","_mpiio_timer_stop:0x73414e","_mpiio_timer_stop:0x7367ff","_mpiio_timer_stop:0x74f112","_mpiio_timer_stop:0x756956","_mpiio_timer_stop:0x75e466","_mpiio_timer_stop:0x76cfbc","_mpiio_timer_stop:0x771113","_mpiio_timer_stop:0x776916","_mpiio_timer_stop:0x77aa24","_mpiio_timer_stop:0x783a18","_mpiio_timer_stop:0x7957fd","_mpiio_timer_stop:0x7aecbe","_mpiio_timer_stop:0x7af3c5","_mpiio_timer_stop:0x7b5a3f","_mpiio_timer_stop:0x7b7ee5","_mpiio_timers_init","acc_dt_target_cmpl_cb","acc_target_cmpl_cb","acc_target_cmpl_cb.cold","ad_cray_hints_init","ad_get_env_vars","ad_gpfs_get_env_vars","ad_gpfs_timing_crw_report","add_failed_proc","add_gcn_to_list.constprop.0","adio_cray_pvar_init","aio_request_complete","align_fr","allred_stream_cleanup_cb","allred_stream_cleanup_cb.cold","allreduce_enqueue_cb","am_recv_event.constprop.0.isra.0","am_recv_event.constprop.0.isra.0.cold","append_lhost","arg_is_eof","array_list_add","array_list_bsearch","array_list_del_idx","array_list_expand_internal","array_list_free","array_list_get_idx","array_list_length","array_list_new","array_list_put_idx","array_list_sort","blkidx_m2m","blkidx_m2m.cold","brucks_sched_pup.cold:0x3b6c4","brucks_sched_pup.cold:0x3bfe8","brucks_sched_pup:0x39ff80","brucks_sched_pup:0x3d3960","build_cb_config_list","build_heap","build_nodemap_pmi2","calc_curr_count","calc_send_count_non_root","calc_send_count_root","calculate_norm_graph_costs","call_errhandler","cb_config_list_lex:0x75953b","cb_config_list_lex:0x7c0581","cb_nidlist_assign_one","checkForUserErrcode","checkValidErrcode","check_convert_lut_to_regular.part.0","check_convert_mlut_to_lut.isra.0","check_maprange_ok","check_repeats","check_type","check_xpmem_support","comm_abort_origin_cb","comm_abort_target_msg_cb","comm_split_filesystem_exhaustive","comm_split_filesystem_heuristic","comp_args_to_layout","compare_nic_names","compare_nics","compare_token","compute_pfl_components","contents_printf.isra.0","contents_printf.isra.0.cold","contig_m2m","contig_m2m.cold","contig_pack_external32_to_buf","contig_pack_to_iov","contig_unpack_external32_to_buf","copy_from_hmem_iov","copy_to_hmem_iov","cray_ofi_hwcoll_get_datatype.constprop.0","cray_trExit","cray_trInitBytesOn","cray_trmaxmem","cray_trshm_dec","cray_trshm_inc","cray_trshmctl","cray_trshmget","create_and_map.constprop.0","create_container:0x5bc670","create_container:0x6af940","create_dt_map","create_dt_map.cold","create_tclass_ep","create_vni_context","cswap_ack_target_cmpl_cb","cswap_target_cmpl_cb","datatype_attr_finalize_cb","decode","decode_buffer","delete_attr","deregister_tm_clones","detect_regular_model.part.0","direct_of_src_rmap","dloop_copy","dma_pool_alloc","dma_pool_free","do_localcopy","do_localcopy.cold","do_long_am_recv_unpack.part.0:0x65e380","do_long_am_recv_unpack.part.0:0x66b430","do_reduce","dot_printf.constprop.0.isra.0","ds_write_allowed","dwin_close_mr","dwin_free_target_mr","dynamic_intercomm_create.constprop.0","encode_buffer","establishAggregationConn","external32_basic_convert.isra.0","external32_float_convert.isra.0","file_to_info_all","fill_iov_vector.constprop.0","finalize_builtin_comm","find_and_allocate_context_id","find_async_thread","find_file","find_name","find_next_off","find_provider","first_token","frame_dummy","free_data:0x3d0160","free_data:0x3f4d60","free_tree","fstat","gavl_left_right_rotation","gavl_left_rotation","gavl_right_left_rotation","gavl_right_rotation","gavl_tree_delete_removed_nodes","gavl_tree_rebalance","gavl_tree_remove_node_internal","gavl_tree_remove_nodes","gavl_tree_search_internal","gavl_update_node_info","generate_random_addr","get_acc_ack_target_cmpl_cb","get_acc_ack_target_cmpl_cb.cold","get_acc_dt_target_cmpl_cb","get_acc_target_cmpl_cb","get_acc_target_cmpl_cb.cold","get_ack_target_cmpl_cb","get_ack_target_cmpl_cb.cold","get_avg_msgsize","get_avg_msgsize.cold","get_count:0x3c0210","get_count:0x3f7b70","get_dev_random_seed","get_dynerr_string","get_ex","get_huge","get_huge_complete","get_huge_complete.cold","get_max_procs","get_next_avtid","get_next_fr_off","get_rankmap_range","get_string_component","get_tag_from_port.part.0","get_tag_from_stringtag","get_target_cmpl_cb","get_time_seed","get_timer_time_in_double","get_total_msgsize","get_total_msgsize.cold","get_tree_type","gpfs_wr_access_end","gpfs_wr_access_start","handle_acc_data.constprop.0","has_dev_urandom","hashlittle","heapify","hint_get_int","hint_get_key","hint_get_str","hint_get_uint64","host_alloc:0x5df170","host_alloc:0x64e730","host_alloc:0x6af8e0","host_alloc_buffer_registered","host_alloc_registered","host_free:0x5df1a0","host_free:0x64e760","host_free:0x6af910","host_free_buffer_registered","host_free_registered","indent","index_m2m","index_m2m.cold","init_classes","init_lhost_list","init_lustre_lib_syms","init_send_recv_list","init_wtick","internal_Pcontrol","internal_Startall","internal_Testany","internal_Testsome","internal_Waitany","internal_Waitsome","irecv_enqueue_cb:0x56ee70","irecv_enqueue_cb:0x5d6d00","is_aggregator","is_localhost","is_valid_alignment","is_valid_index","isend_enqueue_cb:0x576020","isend_enqueue_cb:0x5ddd70","issue_packed_get","issue_packed_put","json_array_equal","json_c_get_random_seed","json_c_object_sizeof","json_c_set_serialization_double_format","json_c_shallow_copy_default","json_c_version","json_c_version_num","json_c_visit","json_escape_str","json_global_set_string_hash","json_object_all_values_equal","json_object_array_add","json_object_array_bsearch","json_object_array_del_idx","json_object_array_delete","json_object_array_entry_free","json_object_array_get_idx","json_object_array_length","json_object_array_put_idx","json_object_array_sort","json_object_array_to_json_string","json_object_boolean_to_json_string","json_object_copy_serializer_data","json_object_deep_copy","json_object_deep_copy_recursive","json_object_double_to_json_string","json_object_double_to_json_string_default","json_object_double_to_json_string_format","json_object_equal","json_object_free_userdata","json_object_from_fd","json_object_from_fd_ex","json_object_from_file","json_object_generic_delete","json_object_get","json_object_get_array","json_object_get_boolean","json_object_get_double","json_object_get_int","json_object_get_int64","json_object_get_object","json_object_get_string","json_object_get_string_len","json_object_get_type","json_object_get_userdata","json_object_int_inc","json_object_int_to_json_string","json_object_is_type","json_object_iter_begin","json_object_iter_end","json_object_iter_equal","json_object_iter_init_default","json_object_iter_next","json_object_iter_peek_name","json_object_iter_peek_value","json_object_lh_entry_free","json_object_new","json_object_new_array","json_object_new_boolean","json_object_new_double","json_object_new_double_s","json_object_new_int","json_object_new_int64","json_object_new_null","json_object_new_object","json_object_new_string","json_object_new_string_len","json_object_object_add","json_object_object_add_ex","json_object_object_del","json_object_object_delete","json_object_object_get","json_object_object_get_ex","json_object_object_length","json_object_object_to_json_string","json_object_put","json_object_set_boolean","json_object_set_double","json_object_set_int","json_object_set_int64","json_object_set_serializer","json_object_set_string","json_object_set_string_len","json_object_set_userdata","json_object_string_delete","json_object_string_to_json_string","json_object_to_fd","json_object_to_file","json_object_to_file_ext","json_object_to_json_string","json_object_to_json_string_ext","json_object_to_json_string_length","json_object_userdata_to_json_string","json_parse_double","json_parse_int64","json_pointer_get","json_pointer_get_recursive","json_pointer_get_single_path","json_pointer_getf","json_pointer_set","json_pointer_set_single_path","json_pointer_setf","json_tokener_error_desc","json_tokener_free","json_tokener_get_error","json_tokener_get_parse_end","json_tokener_new","json_tokener_new_ex","json_tokener_parse","json_tokener_parse_ex","json_tokener_parse_verbose","json_tokener_reset","json_tokener_reset_level","json_tokener_set_flags","json_tokener_validate_utf8","json_type_to_name","json_util_get_last_err","json_vasprintf:0x70d5e4","json_vasprintf:0x714d37","leaf_blkidx_count_block","leaf_blkidx_count_block.cold","leaf_blkidx_mpi_flatten","leaf_blkidx_mpi_flatten.cold","leaf_contig_count_block","leaf_contig_count_block.cold","leaf_contig_mpi_flatten","leaf_contig_mpi_flatten.cold","leaf_index_count_block","leaf_index_count_block.cold","leaf_index_mpi_flatten","leaf_index_mpi_flatten.cold","leaf_vector_count_block","leaf_vector_count_block.cold","leaf_vector_mpi_flatten","leaf_vector_mpi_flatten.cold","left","lh_char_equal","lh_char_hash","lh_get_hash:0x70a4c5","lh_get_hash:0x7137ab","lh_kchar_table_new","lh_kptr_table_new","lh_perllike_str_hash","lh_ptr_equal","lh_ptr_hash","lh_table_delete","lh_table_delete_entry","lh_table_free","lh_table_insert","lh_table_insert_w_hash","lh_table_length","lh_table_lookup_entry","lh_table_lookup_entry_w_hash","lh_table_lookup_ex","lh_table_new","lh_table_resize","llapi_ladvise_lock","load_acc_hint","locate_context_bit","lstat","make_stats_type","match_procs","match_this_proc","mc_debug","mc_error","mc_get_debug","mc_info","mc_set_debug","mc_set_syslog","mergesort_lpidarray","mlut_update_avt_reference","mpi_to_pmi_keyvals","mpid_cray_pmi_finalize","mpid_cray_pmi_get_nidlist_ptr","mpid_cray_pmi_get_nidlist_ptr.part.0","mpid_cray_pmi_get_numpes_on_smp","mpid_cray_pmi_init","mpidi_cray_ofi_hwcoll_hndl_create","mpiio_cray_interval_stats_flush_NEW:0x71716d","mpiio_cray_interval_stats_flush_NEW:0x71964d","mpiio_cray_interval_stats_flush_NEW:0x71b9cb","mpiio_cray_interval_stats_flush_NEW:0x71dd68","mpiio_cray_interval_stats_flush_NEW:0x7201b8","mpiio_cray_interval_stats_flush_NEW:0x72243b","mpiio_cray_interval_stats_flush_NEW:0x725400","mpiio_cray_interval_stats_flush_NEW:0x727b67","mpiio_cray_interval_stats_flush_NEW:0x729d5c","mpiio_cray_interval_stats_flush_NEW:0x72c22d","mpiio_cray_interval_stats_flush_NEW:0x72e38f","mpiio_cray_interval_stats_flush_NEW:0x730140","mpiio_cray_interval_stats_flush_NEW:0x7342c2","mpiio_cray_interval_stats_flush_NEW:0x736973","mpiio_cray_interval_stats_flush_NEW:0x738ab5","mpiio_cray_interval_stats_flush_NEW:0x73ae7c","mpiio_cray_interval_stats_flush_NEW:0x73d043","mpiio_cray_interval_stats_flush_NEW:0x73f386","mpiio_cray_interval_stats_flush_NEW:0x74f286","mpiio_cray_interval_stats_flush_NEW:0x760d84","mpiio_cray_interval_stats_flush_NEW:0x76d130","mpiio_cray_interval_stats_flush_NEW:0x776a8a","mpiio_cray_interval_stats_flush_NEW:0x795971","mpiio_cray_interval_stats_flush_NEW:0x79dee3","mpiio_cray_interval_stats_flush_NEW:0x79f6cd","mpiio_cray_interval_stats_flush_NEW:0x7b5bb3","my_consensus","network_split_by_minsize","next_token","nid_compare","nonContigSourceDataBufferAdvance","num_children","num_children.cold","ofi_am_post_recv.part.0.constprop.0.isra.0","optbalance","optimized_get.part.0","pairtypes_finalize_cb","parent","parse_json_tree","parse_targets","part_req_create","part_req_create.cold","part_send_data_target_cmpl_cb","post_aggregator_comm","post_client_comm","print_heap","printbuf_extend","printbuf_free","printbuf_memappend","printbuf_memset","printbuf_new","printbuf_reset","process_pre_req","progress_fn","prune_tree","put_dt_target_cmpl_cb","put_ex","put_target_cmpl_cb","put_target_cmpl_cb.cold","quoted_printf","read_config_files.constprop.0","recv_enqueue_cb:0x56ef40","recv_enqueue_cb:0x5d6da0","recv_stream_cleanup_cb","recv_target_cmpl_cb","recv_target_cmpl_cb.cold","register_tm_clones","release_temp_buffer","reset_shared_state","right","romio_statfs","sched_add_ref","sched_cb_commit_comm","sched_cb_gcn_allocate_cid","sched_cb_gcn_allocate_cid.cold","sched_cb_gcn_bcast","sched_cb_gcn_copy_mask","sched_dump","sched_get_cid_nonblock","sched_test_length","send_enqueue_cb:0x576130","send_enqueue_cb:0x5dde10","set_map.isra.0","set_rma_fi_info","setstripe_args_init","setup_single_nic","shared_mem_coll_dump_dir","sorttype_compare","sprintbuf","src_map_to_lut.isra.0","src_mlut_to_mlut.isra.0","stat","str_to_int","str_to_uint64","string_replace_all_occurrences_with_char","token_copy","trace_misc","trace_read","trace_write","trcalloc","trdump","tree_add_child","trfree","trmalloc","trmmap","trmunmap","trrealloc","trstrdup","trvalid","type_block","type_create_contiguous_x","type_cyclic","type_size_is_zero","type_size_is_zero.cold","type_struct.part.0","ull_maxloc_op_func","update_multi_nic_hints.part.0","update_nic_preferences.part.0","update_type_blockindexed","update_type_blockindexed.cold","update_type_indexed","update_type_indexed.cold","update_type_vector","update_type_vector.cold","uses_generic_read","uses_generic_write","utarray_str_cpy:0x716b55","utarray_str_cpy:0x718309","utarray_str_cpy:0x71a7e9","utarray_str_cpy:0x71cb67","utarray_str_cpy:0x71ef04","utarray_str_cpy:0x721354","utarray_str_cpy:0x7235d7","utarray_str_cpy:0x72659c","utarray_str_cpy:0x728d03","utarray_str_cpy:0x72aef8","utarray_str_cpy:0x72d3c9","utarray_str_cpy:0x72f52b","utarray_str_cpy:0x7312dc","utarray_str_cpy:0x73545e","utarray_str_cpy:0x737b0f","utarray_str_cpy:0x739c51","utarray_str_cpy:0x73c018","utarray_str_cpy:0x73e1df","utarray_str_cpy:0x740522","utarray_str_cpy:0x750422","utarray_str_cpy:0x756aca","utarray_str_cpy:0x758e13","utarray_str_cpy:0x758f46","utarray_str_cpy:0x75a41c","utarray_str_cpy:0x75d4c6","utarray_str_cpy:0x75e5da","utarray_str_cpy:0x761eff","utarray_str_cpy:0x76c953","utarray_str_cpy:0x76e2cc","utarray_str_cpy:0x7712c4","utarray_str_cpy:0x775352","utarray_str_cpy:0x777c26","utarray_str_cpy:0x77abd5","utarray_str_cpy:0x781e52","utarray_str_cpy:0x783b8c","utarray_str_cpy:0x784645","utarray_str_cpy:0x7934a9","utarray_str_cpy:0x796b0d","utarray_str_cpy:0x79dbb7","utarray_str_cpy:0x79f07f","utarray_str_cpy:0x7a0869","utarray_str_cpy:0x7a0cd5","utarray_str_cpy:0x7a1d64","utarray_str_cpy:0x7a9436","utarray_str_cpy:0x7ad0b3","utarray_str_cpy:0x7aee32","utarray_str_cpy:0x7af539","utarray_str_cpy:0x7b2c3c","utarray_str_cpy:0x7b6d4f","utarray_str_cpy:0x7b8059","utarray_str_cpy:0x7b8467","utarray_str_cpy:0x7bc314","utarray_str_dtor:0x716bad","utarray_str_dtor:0x718361","utarray_str_dtor:0x71a841","utarray_str_dtor:0x71cbbf","utarray_str_dtor:0x71ef5c","utarray_str_dtor:0x7213ac","utarray_str_dtor:0x72362f","utarray_str_dtor:0x7265f4","utarray_str_dtor:0x728d5b","utarray_str_dtor:0x72af50","utarray_str_dtor:0x72d421","utarray_str_dtor:0x72f583","utarray_str_dtor:0x731334","utarray_str_dtor:0x7354b6","utarray_str_dtor:0x737b67","utarray_str_dtor:0x739ca9","utarray_str_dtor:0x73c070","utarray_str_dtor:0x73e237","utarray_str_dtor:0x74057a","utarray_str_dtor:0x75047a","utarray_str_dtor:0x756b22","utarray_str_dtor:0x758e6b","utarray_str_dtor:0x758f9e","utarray_str_dtor:0x75a474","utarray_str_dtor:0x75d51e","utarray_str_dtor:0x75e632","utarray_str_dtor:0x761f57","utarray_str_dtor:0x76c9ab","utarray_str_dtor:0x76e324","utarray_str_dtor:0x77131c","utarray_str_dtor:0x7753aa","utarray_str_dtor:0x777c7e","utarray_str_dtor:0x77ac2d","utarray_str_dtor:0x781eaa","utarray_str_dtor:0x783be4","utarray_str_dtor:0x78469d","utarray_str_dtor:0x793501","utarray_str_dtor:0x796b65","utarray_str_dtor:0x79dc0f","utarray_str_dtor:0x79f0d7","utarray_str_dtor:0x7a08c1","utarray_str_dtor:0x7a0d2d","utarray_str_dtor:0x7a1dbc","utarray_str_dtor:0x7a948e","utarray_str_dtor:0x7ad10b","utarray_str_dtor:0x7aee8a","utarray_str_dtor:0x7af591","utarray_str_dtor:0x7b2c94","utarray_str_dtor:0x7b6da7","utarray_str_dtor:0x7b80b1","utarray_str_dtor:0x7b84bf","utarray_str_dtor:0x7bc36c","validate_tree","vector_m2m","vector_m2m.cold","vector_pack_to_iov","view_state_add_region","view_state_get_cur_sz","view_state_get_next_len","vtx_issue.constprop.0","wait_enqueue_cb","waitall_enqueue_cb","waitall_enqueue_cb.cold","wildmat","win_allgather","win_finalize.isra.0","win_finalize.isra.0.cold","win_init","win_init.constprop.0","win_lock_advance","win_lock_req_proc","win_set_info.constprop.0","win_set_per_win_sync","win_shm_alloc_impl.isra.0","win_unlock_done","win_unlock_proc","xorshift_rand","xpmem_seglist_lookup"],"binary_path":"/opt/cray/pe/lib64/libmpi_cray.so.12","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-haridev-tuolumne.json b/etc/datacrumbs/data/probes-haridev-tuolumne.json deleted file mode 100644 index e94a7730..00000000 --- a/etc/datacrumbs/data/probes-haridev-tuolumne.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"libc","functions":["access","chdir","chmod","chown","close","closedir","connect","creat","creat64","dirfd","dup","dup2","dup3","eaccess","euidaccess","eventfd","faccessat","fallocate","fallocate64","fchdir","fchmod","fchmodat","fchown","fchownat","fcloseall","fcntl","fcntl64","fdatasync","fdopendir","fflush","fgetc","fgets","fgetwc","fgetws","fgetxattr","fileno","flistxattr","flock","fopen64","fprintf","fputc","fputs","fputwc","fputws","fread","fremovexattr","freopen","freopen64","fscanf","fseek","fseeko","fseeko64","fsetxattr","fsync","ftell","ftello","ftello64","ftruncate","ftruncate64","ftw","ftw64","fwprintf","fwrite","fwscanf"],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-invalid-haridev-lead-us.json b/etc/datacrumbs/data/probes-invalid-haridev-lead-us.json deleted file mode 100644 index 0988353c..00000000 --- a/etc/datacrumbs/data/probes-invalid-haridev-lead-us.json +++ /dev/null @@ -1 +0,0 @@ -[{"type":2,"name":"libc","functions":[],"binary_path":"/usr/lib64/libc.so.6","include_offsets":false}] diff --git a/etc/datacrumbs/data/probes-invalid-haridev-lead.json b/etc/datacrumbs/data/probes-invalid-haridev-lead.json deleted file mode 100644 index fd9f7654..00000000 --- a/etc/datacrumbs/data/probes-invalid-haridev-lead.json +++ /dev/null @@ -1 +0,0 @@ -[{"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/data/probes-root-docker.json b/etc/datacrumbs/data/probes-root-docker.json deleted file mode 100644 index 52924557..00000000 --- a/etc/datacrumbs/data/probes-root-docker.json +++ /dev/null @@ -1 +0,0 @@ -[{"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":"/workspaces/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c","start_event_id":100000,"process_header":"/workspaces/datacrumbs/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h","event_type":2},{"type":2,"name":"libc","functions":["__GI___fork","__GI___register_atfork","__GI___vfork","__libc_vfork","__malloc_fork_lock_parent","__malloc_fork_unlock_child","__malloc_fork_unlock_parent","__run_fork_handlers","__unregister_atfork"],"binary_path":"/usr/lib64/libc.so.6","function_offsets":["0xf96b8","0x841c0","0x73458","0x9e6f0","0x6da68","0x9e650","0x10bb48","0xbbaf8","0xe4fd8","0x70038","0xf7d00","0xe6010","0x103660","0xf67b8","0x64c40","0xf8938","0xfdae0","0x6f470","0x2b720","0xf8c10","0xb9f00","0xd2888","0xd3878","0x73728","0x62c68","0x1029a8","0xf7db0","0xab678","0x103308","0x1031d8","0x10bbd8","0xa10f0","0x1029a0","0x10bae8","0xbbb70","0xf6e28","0xa2c70","0x100c60","0x736c8","0x1005c8","0x1037a0","0x10d690","0x73788","0x10bb18","0xa3100","0xf9738","0x6e688","0x73758","0xe38d8","0xa11f0","0xd2888","0x62ef0","0x70880","0x64eb8","0x83f40","0xf9920","0xfdb30","0x6fa70","0xc69e0","0x6c170","0x103658","0x100d58","0xf6310","0xf9798","0x101720","0xf7b20","0x103d00","0xf6fc8","0xf98b8","0x1005f8","0x102b48","0x104370","0xfcd78","0xd1ba0","0x207c0","0x34640","0x103938","0x9f680","0x87400","0xd1e40","0x9ec58","0xf0eb8","0x10d880","0xe38d8","0xd24f0","0x33628","0xff258","0xf9698","0xf4850","0x74218","0x49c70","0x685b0","0xd24b0","0x103ff0","0x79dc0","0x108a08","0xc4958","0xc4940","0xce4b0","0x72af0","0xffba8","0x103768","0x66ec8","0x101f48","0xa4bc0","0x20858","0xe1aa0","0x718e0","0xe2eb0","0xf4558","0x1003c0","0x7e180","0xcea88","0x2ce68","0xf00e8","0x4c2a0","0x1021d8","0xca0c0","0xeb3a0","0x83f40","0xf4c88","0xd2850","0xe4120","0xffaa0","0x100cd8","0x77d68","0x10b6f8","0x101928","0xaec78","0xf8990","0xa7d38","0x67a20","0x110528","0xd6ed0","0xf9860","0xf6d68","0xd1978","0x32220","0xd2a90","0xcc9b8","0x37338","0x73da0","0x32868","0x6c170","0x2af10","0x101268","0x2abe8","0xd9358","0xc49e0","0x733b0","0xac2f8","0xdaf88","0x72ac8","0x325b8","0x1116a8","0xd1e60","0xff8f0","0x6c840","0x30148","0x37c60","0xf8ac8","0xc49f8","0x73040","0xd25b0","0xb9d80","0xd2fd0","0x103658","0xcdd60","0xc3600","0xff210","0xcf9c8","0xd4eb0","0xdae68","0xa4b90","0x42478","0x7fe88","0x103538","0x32170","0x1000e0","0x7bae8","0x6e790","0x36908","0xa23f0","0xc5b70","0x20b48","0x2e738","0xc4940","0x6ce78","0x7e5c0","0xbb9f0","0xe90e8","0xe6010","0x32170","0x87478","0x22a40","0xf76e8","0xd5628","0x74c70","0x71ca8","0xd2d50","0xc3ec8","0xd50c0","0xd2970","0xd1dd0","0xc3b90","0x107a88","0x7e180","0xa4f00","0xd5628","0x2b868","0xd2670","0xfd848","0x963c0","0x9ed70","0xa4d78","0x737b8","0x9a000","0x107368","0x74e90","0x939e8","0x295e8","0x35a00","0xc3c98","0x94970","0xc5250","0x85798","0x104370","0x100b88","0x1039e8","0xfdb08","0xf9668","0x7a5c8","0xe2068","0xb9d80","0x23728","0x65e50","0x1033c8","0xd2650","0xf12c0","0x33a90","0xc99e8","0x103658","0xffd20","0xc8a50","0x80200","0x71cf0","0x102e18","0xca258","0xe8240","0xee650","0xd6000","0x6da68","0x37338","0xa50d8","0xa3100","0x30148","0xdeb20","0x4e9e8","0x102f88","0x70880","0xd5160","0x6a1b8","0xfcea8","0xa4f58","0xb9588","0xf4e70","0x103e08","0x31df8","0xf5480","0x21a30","0xcf190","0xc41c8","0x103888","0xc8318","0xd2ac8","0x32468","0x2c968","0xcaa28","0x1059f8","0xe1a78","0x1005f8","0x2c4e0","0xf96d8","0x841c0","0xc8c30","0xd2a50","0xed278","0x4ea90","0xd40a0","0x4e898","0x10d760","0xc3ce0","0x103538","0x36988","0x210e0","0xd1840","0xa59e0","0x332c8","0x1029a0","0xd97f8","0xc94e0","0xf4a20","0x75710","0x796d0","0xfef88","0x1077e0","0xd4500","0x441b0","0x1021d8","0xd2888","0x10ef20","0x32fb0","0x32630","0x66960","0xc3b90","0xf5718","0xfff98","0xabcb0","0x6ca08","0x2c9b8","0x252a8","0x110a18","0xcd820","0xd5d30","0xc9a30","0xf7748","0xff728","0xce3f8","0xd2020","0x6f640","0x80930","0xee908","0xd46a0","0x37368","0xca9c0","0x96da0","0x73b60","0xf8ce8","0x46f90","0x10a378","0xa5018","0x6a340","0x111448","0x2e418","0xcb380","0xd5160","0xcc4b8","0xffc30","0xed628","0xd3b58","0x7ee60","0x33490","0x44640","0xd26b0","0x7a0f0","0x101720","0x44168","0x7a310","0x73aa0","0xd3598","0xeaa30","0x105c50","0xf97f0","0x802b8","0x34960","0x23280","0x31e20","0x91988","0xfc020","0xf5b20","0x79580","0x932a8","0xf4a20","0xb86c0","0xf6370","0xc9790","0x84418","0x10d790","0x62ef0","0x4db18","0xb9be0","0xf5708","0x65280","0xda3c8","0xc3ba0","0x78768","0xc4580","0xf6540","0x60848","0xc2ba8","0x5a078","0x35250","0x61808","0xd6fd0","0xd2690","0xb9508","0x7e900","0x867c0","0xfd3b8","0xd5628","0xa4358","0xdca38","0x1000e0","0xcabb8","0x102e20","0xfca68","0xe1b80","0x8eb60","0xce220","0xd56a8","0x873b8","0xa2c70","0xbb9d0","0xd2490","0x74690","0xffd20","0x102410","0xeeae8","0xd30d8","0xa10f0","0x22868","0xc3388","0xd10f8","0x73788","0xed1b8","0x33980","0x104228","0x103558","0xc9da8","0x37368","0xf4b50","0x68e50","0xd57d8","0x35230","0xc5268","0xf6310","0xdd1c0","0x7bdb8","0x860f8","0xf6498","0xf76e0","0xc3600","0x67f18","0x100a98","0x64400","0xfc3b8","0x210e8","0xd92f0","0xc41c8","0x37380","0x67da0","0x7bff0","0x857d0","0x32ad8","0xce4e8","0x68328","0x64c40","0xf67b8","0xc3ec8","0xce320","0x2db98","0xbbaa0","0xa4f40","0x6fa70","0xd0530","0xd5c10","0x2e428","0x110c58","0x71330","0x83f98","0xd2610","0xd1900","0xc9140","0xbef88","0x9c108","0x7cb98","0x20f10","0x1087f8","0xbbbc8","0xfb2a0","0xfbaf8","0x108870","0xf70d0","0xdf838","0xf5170","0x873d0","0xff728","0xe1b80","0xbfd70","0xf7d00","0xc8670","0x714e0","0xd3960","0x109f10","0xfc610","0x1043c8","0xa4f00","0x2ac48","0x24030","0xf9698","0xfb2b8","0xfbd60","0x10b180","0x9f518","0x750b8","0xff330","0x37830","0x83f98","0x93a58","0xd2000","0x80590","0xd2510","0x4c2a0","0xf6ec8","0xf8c10","0x7b500","0xa6960","0x62c68","0xc9140","0x6fd10","0x869a8","0x70038","0x32548","0xbba00","0x42868","0x102a58","0x103938","0x100538","0x10bb68","0xc9248","0xe8ea8","0x32f60","0xa1da8","0x963e0","0x6e0d0","0xd2c90","0x6c178","0xf8638","0x1005c8","0x7e8b0","0xd1be8","0x8ed38","0x110db0","0x5a1e0","0x46f90","0x87448","0xc49a8","0xf8838","0x745b8","0xa3bd0","0xf5d60","0x9fb78","0x2c268","0xfd578","0x68230","0xd2a70","0xa39a0","0x6e128","0xbbbe8","0xc9360","0xf0990","0xfb338","0x78f48","0x443c8","0xc8ef0","0x31db8","0x10b1d0","0x9ffb8","0x6e178","0x10adf8","0x71bd0","0x10ad90","0x10ad38","0x108f90","0x102e28","0x108ee0","0x108dc0","0x108db8","0x6f510","0x1088f0","0xf3408","0x1088f0","0xd2888","0x28b88","0x1088f0","0x71ab8","0xff6a8","0xe1b28","0xe8898","0x1074c8","0x737b8","0x111658","0x76e90","0x791b0","0x67d00","0x111608","0xe8df0","0xa4540","0x104700","0xc47f0","0xce3e0","0x2ffd8","0x1060a0","0x1042f0","0xf6ec0","0x1042b0","0xdcaf8","0x103f38","0x103ee0","0x103c28","0xd1b88","0xd4998","0x103ba8","0x103be8","0x33920","0x103ab0","0x431e8","0x10f068","0x103a98","0x75638","0x101970","0x101950","0xfb498","0x100740","0x791b0","0x103ec8","0x101938","0x8a0e0","0x101930","0x101500","0x336d8","0x1014b8","0xd1920","0xe47c8","0x101288","0xf3b60","0xcf208","0xd1e78","0x10ef20","0xfe7f8","0xada18","0xf97f0","0x70560","0xdee98","0xfe7a0","0xfe610","0x7a380","0x93af0","0xfe5f0","0xfe5d8","0xfde60","0xfdca8","0x7e9c8","0xfdc88","0xc3970","0xfdc70","0x658e8","0xe47c8","0x6e830","0x20a80","0x1037d8","0x70440","0x6c7d8","0xad3d8","0x50f78","0x104138","0x72c70","0x6b1f8","0xc8428","0xc3658","0x677e8","0x637b8","0x43790","0xd4310","0xcee50","0x625e0","0x4a098","0x638f0","0x916f8","0xa2d70","0x49cb0","0x35eb0","0xfb2e0","0x6e570","0x2d0c8","0x93138","0xc52b0","0xf74b8","0xc5b10","0xf0ea0","0x65a90","0xd2ff0","0xbc7b8","0xd96f0","0x21a40","0xbba80","0xcb320","0xc3d28","0x72518","0x20f48","0x6e610","0x84b90","0xfd3b8","0xfc728","0xff728","0xad100","0x8ea70","0xbf2f8","0xf6d68","0x91790","0x420d0","0x53fa0","0x93bb0","0xf6e28","0x874a8","0x35160","0xd1df0","0xa5018","0xc9a80","0xc6b08","0x7e390","0xe9eb0","0xebfc0","0xf96f8","0x95b48","0xf8e08","0xded70","0x100a98","0xfc058","0x103068","0x35eb0","0x1023c8","0xd2888","0xce340","0x33580","0x102c08","0x93d08","0x6c090","0x62c68","0xddfc8","0x37338","0xbba60","0xe6d88","0x1114a8","0x100a20","0x6e9b8","0x6ee70","0x33748","0x293f8","0x35ed0","0x10ade8","0xf4558","0x103660","0x746c8","0xadda0","0x4c510","0xcc540","0x78bf8","0xf1a88","0xe7be8","0xa4c08","0xc92b8","0xc4100","0xa11f0","0x6d498","0x22ab0","0xf2c48","0x63688","0xfff98","0xad1a0","0xfdb30","0xc49e0","0xd25d0","0x1041a8","0x84120","0x71078","0x1029a8","0x20ec8","0x71cf8","0xa6960","0x74808","0xaee98","0xf6ec0","0x73458","0xd7740","0x32868","0x102d10","0x37820","0x2d148","0x30758","0x103ef8","0x87d10","0x68df0","0x932c8","0x62c68","0xff5a8","0xf4bf0","0x103318","0x6f890","0xea278","0xae7f8","0x41618","0xa3100","0xd0018","0x68178","0xc46b0","0xfcb88","0xad8f0","0x71b90","0xa4bb0","0x102e28","0xf0fd0","0x67850","0xd58e0","0xa37a0","0x6ae78","0x356e8","0x22938","0x102948","0x354d0","0x106438","0xeeef0","0x6b680","0xb9670","0x41388","0xd5420","0x29608","0xff230","0xa1d70","0x27c00","0xc4038","0x100b10","0x1019c8","0x85c70","0x67850","0x9f680","0xa39c0","0x103318","0x77b88","0xc07d0","0xc4580","0x87418","0xfce30","0x933a8","0xbaa88","0x100a20","0xbbba8","0x102948","0x7a850","0xfcd78","0x7ec00","0xf6160","0x6fa58","0x8ec50","0x103760","0x100598","0xeaa78","0x7ef68","0x7ddc0","0x106d30","0x323e0","0xfaf98","0xa2c70","0xf8838","0xef638","0x10d820","0x1051b0","0xc4580","0x7a980","0xd2e30","0x3f0b0","0xa4f58","0xa55f0","0xf5270","0xf7818","0x34bc8","0x335d0","0x7e780","0xf6fc8","0xd2a90","0x67c98","0xce1c0","0x68698","0xd5dc0","0xd0eb8","0xcc798","0x86200","0xb01d8","0xf96b8","0xe2068","0xbf188","0x73940","0xc92f8","0x27678","0xd06b8","0x6e0e0","0x87920","0xc9078","0xef158","0x928b0","0xa1628","0x21010","0x6cd20","0xd2fd0","0xf5710","0x873e8","0x67ac8","0xc49e0","0x87490","0x86fe0","0x1003f0","0x103af8","0x63640","0x86090","0x32548","0x102540","0xf0408","0xa4128","0x84338","0x2f988","0xdb7c8","0xf9698","0x67950","0xd2d50","0xf82d0","0x637b0","0xc5620","0x6d7e8","0x103fd8","0xf48e8","0x1023c8","0xf7798","0x29a88","0xeb2c0","0x79ed0","0xe1ab8","0x237f8","0xd9430","0x103c80","0x33a90","0xf1400","0xda5a8","0x87920","0x607a0","0xf8588","0x84098","0x7ea98","0x1027e0","0xc88a0","0xd0af8","0xce818","0xf4ab8","0x102870","0xff860","0xfce58","0xaf300","0x965b0","0xc2f80","0x104330","0x63110","0x70038","0x1042a8","0xd26b0","0xd2a50","0x81060","0xb12d0","0xce990","0x7c3e8","0xe4d20","0x360b0","0xa1fc0","0xbbac0","0x109448","0xf8ca0","0x1083f8","0xd2670","0x101538","0x873b8","0xeadd8","0x75bf8","0xd1880","0x31df8","0x737e8","0x9eff0","0x74e68","0xeaa78","0xd7a30","0x102b08","0x7d024","0x92ff8","0x219d0","0xf88b8","0x7b150","0x103760","0x10d850","0x103d00","0xfd848","0x6e178","0x2ce78","0xc9048","0xac030","0xd0e98","0x50f78","0x111280","0x101070","0xec090","0xf7db0","0xfc618","0xd2630","0xc9c60","0x3cf60","0xc3a60","0xd2a70","0xac5d0","0xc8fe8","0x28da0","0xf8010","0x7b2d8","0xbbb70","0x100bf0","0x715d8","0x6d4c8","0xf4ee0","0x6e1e0","0xf1570","0xbfa48","0x85e88","0x7e0a0","0xabf10","0xfbd78","0x44380","0x28a18","0xf5778","0x103308","0xe2068","0x6e790","0xc2708","0x7c310","0x84098","0xccfd8","0x79070","0xa5390","0x63278","0xa4f00","0x103ce0","0x37830","0x103ee8","0x9f450","0x741f8","0x7d19c","0xf1610","0xb9ac0","0xedfd0","0xa2d70","0x70528","0xed3f8","0x9f9f8","0xe35c0","0xc48a0","0xd5160","0xad7f0","0x6c020","0x102a58","0xcd640","0xaa288","0xdebc0","0xcf578","0xc8fe8","0x691b8","0xf4720","0xd2888","0x30a10","0xb9be0","0xba0c0","0xd9570","0xb0e08","0xfd0e8","0xa4cc0","0x75778","0x841f0","0xf4688","0x103068","0x6d4d0","0xd26f0","0xb0d68","0xf8248","0x10bcd8","0x103888","0x10d6d0","0xc3a40","0xddfc0","0x103558","0x67538","0xd13e8","0x10f068","0xbbaa0","0x6cab0","0x611a0","0x72c10","0x1082a0","0xdb450","0xf5368","0xbba60","0xd2888","0xcf310","0x103558","0x94140","0xea930","0x85280","0xd26f0","0x63f50","0xc2cb8","0xae770","0x10acd8","0xa4ea0","0x7e420","0x2c750","0x3feb0","0xcf828","0xe89b0","0xccf78","0x1021c8","0x85480","0xcb6a0","0xa1a60","0x101ca8","0xc2708","0xc48a0","0x67028","0x1033c8","0xfc830","0x6cd28","0xa4b90","0xffc30","0x7c4b8","0xf7eb8","0x858f0","0x721d8","0x7a720","0x33060","0x32698","0xd25f0","0xc2cc0","0xf67b8","0x6c938","0xddf40","0xc5c68","0x1031d8","0x9f2b8","0x873e8","0x1087f8","0x111490","0x1010e8","0x21b40","0x6b268","0xbf1f8","0x33720","0xf2bc8","0x29350","0xfdcb0","0x21430","0x105b10","0x100160","0x74e50","0x1088f0","0x1040c0","0xd59d0","0xd2988","0xbf3d8","0x28928","0x100830","0x10a000","0xb0ca0","0xc5b28","0x110670","0xd40a0","0x42318","0xc3d28","0x627d0","0xd6fd0","0xbba40","0x6ac58","0x103aa0","0x66bd8","0x7adf8","0xf6fc8","0x6ebe0","0x108d10","0xedf10","0x70a70","0xc2cc0","0x74ac0","0x37830","0xa11f0","0xff7d0","0x70b30","0xc3ec8","0xb39f0","0x710a0","0x6aea0","0x74210","0xd27d0","0x443a0","0x857d0","0xfdb08","0xd3bc0","0x5f930","0x442a8","0xac0a8","0xf10b0","0xfa3a0","0xf76f0","0x74700","0xc27d8","0xf5d60","0xf8368","0xd2ba8","0x74798","0xbd018","0xdecd0","0x105298","0x243e8","0x33680","0x63dc0","0xf24d0","0x7be40","0xdca50","0x74f68","0x72ae8","0x71eb0","0xd2970","0x2f9a0","0xc3d28","0xa37a0","0x3a8c8","0xdce50","0x100908","0xcf310","0xd1d28","0x78448","0x3c7f8","0xc8d00","0x77f90","0xc9640","0x72ad8","0x32688","0x71b18","0x72b20","0xc36b0","0xbbb70","0xa4e80","0x32bc8","0xe66f8","0x77c48","0x638b0","0x101250","0xe29e8","0xae448","0x102ff8","0x7a410","0xce528","0x3f390","0x73728","0x78f48","0x8c6d0","0xd0c70","0xcb360","0x6eed8","0x7b908","0x7d570","0x3c7f8","0x43660","0x81dd0","0x22e18","0xadb60","0xc6ba0","0x33a98","0xee9d8","0x93490","0xcb360","0x93a58","0xd4820","0xf36b8","0x94020","0x32378","0x96cc0","0xf7d00","0x9e8a0","0x80348","0xd1d80","0x73f48","0xce528","0xd9910","0x2d1c8","0xa48b0","0x100218","0xd4068","0x7d3c0","0xa3b48","0x100d58","0xff8f0","0x107710","0xa54c8","0xa3768","0xad180","0x744b0","0x3a250","0xc6a18","0x1023c8","0x104b08","0xa7e30","0x7cec0","0xad150","0xe35c0","0x10d730","0xc93c0","0xa80b8","0xf4bf0","0x2ce00","0x111198","0x323d0","0xa87e0","0xa9b78","0xcb360","0xaba40","0x7e850","0xabab0","0xd9f38","0x107a30","0xd26f0","0x105200","0x102ff8","0xac1e0","0xb4650","0xace68","0xb11b0","0xa4be0","0xacef0","0x38360","0x80590","0x1090d8","0xfdb30","0xbbd28","0x7c160","0xfef88","0x9f7e8","0xad038","0x2ce48","0xfdb08","0x9f648","0x70528","0xf1108","0x67490","0x651c8","0xd18a0","0xad730","0x66be0","0xe6ff0","0x63860","0xe6908","0x37350","0xf3e78","0xad860","0x1009a8","0x1003c0","0xa3fb0","0x84e40","0xf5700","0x6e128","0xc6fa0","0x20f00","0xd07f0","0xc94e0","0x68470","0x10b868","0xbbbf8","0xade40","0xd8c78","0xadf10","0x7ccd8","0xd9f80","0x94478","0xae010","0xafd80","0xc3ba0","0x103768","0xae320","0x20af0","0x109060","0xcbb98","0xae608","0x103b68","0xc4990","0xfc3b8","0xb31a8","0x10ee10","0xaff80","0xd2888","0xb02f8","0xbba20","0xb0418","0xd9970","0xa4bd0","0x1109a8","0x6fc70","0xb1048","0xcf358","0xb1ac8","0xccfd8","0x103538","0x100568","0xd7778","0x332d8","0xb2210","0xc5250","0x6a170","0xfbaf8","0xc5a60","0xb2c18","0xb4190","0xc36b0","0x448b0","0xb58c8","0xb6828","0xffe08","0x72ad0","0xb84f8","0xb8898","0x20f20","0x101070","0x80dd0","0xf1048","0x749d0","0x4dda0","0x4e730","0x32220","0xbc7d0","0xce1c0","0xc9a80","0xbc9c0","0xca000","0xbd198","0xbeff8","0xf9af8","0xf0e88","0xf6498","0xbf0d0","0xf84d0","0xcaff0","0x100fc8","0xbfc18","0x6c470","0xf8ca0","0xfdc48","0xbfec0","0xbffe0","0x651c8","0xf48e8","0x32220","0xbc8d0","0xc4990","0xebff8","0x10d0b0","0xd3be8","0xc5bc8","0xc6530","0xa0240","0xf7910","0xc6e48","0x100cd8","0x741d0","0xdf2e8","0xcb790","0xd0860","0x23bb8","0x24870","0xcbab8","0xd28a8","0xed4f0","0xcd018","0x109c78","0xd8e00","0xcf6a8","0xcd790","0xe71c0","0x79cc0","0xccb98","0xcf638","0x33e68","0x10d8b0","0x6e0f0","0xcf358","0xd0198","0xc39e0","0xd1088","0x70440","0xccc08","0x1087f8","0xfac90","0xf5720","0xd8938","0xf7f20","0x6e4b0","0xcca80","0xd4800","0xf1510","0xa4b80","0x10d700","0x1000e0","0xd4840","0xd4868","0x37ce8","0xffaa0","0x53fa0","0xd9a08","0x681e0","0xf5e28","0x93288","0x42260","0xc4100","0xf6ec8","0xfb778","0xda000","0xda498","0x64e50","0x9f388","0xda568","0xef158","0x781f0","0xa1628","0xf14c0","0xf5240","0xd97a0","0xe4fd8","0xda840","0x7a0f0","0xef498","0xf74b0","0xda8c8","0xd2888","0x10ac10","0x66a18","0x327f8","0x20ee8","0x75d08","0xdb208","0xeb2b0","0xc0428","0xdccf8","0x357e8","0xfbfd8","0xff7d0","0x6e570","0xf6e28","0x94ca8","0xd2ab0","0xc5ab0","0xc3658","0xd2888","0xf7fe8","0x103ef0","0x100908","0xc9fe0","0xef3c0","0x70880","0x8fba8","0xf6ec0","0xee798","0xff9c8","0xad6e8","0x84418","0x34360","0xb6038","0x2c190","0xf01c0","0xce818","0x323d0","0xd1500","0xc5a78","0x104ba0","0xa7da0","0x86ce8","0xf1478","0xf1300","0x3a8c8","0xf28d8","0xfb2d8","0xabb38","0xd2a50","0xfa3a0","0xe0c18","0x33490","0x93bc8","0x111630","0xf5360","0x43b80","0x74170","0x10a678","0xae978","0x323e0","0x746b0","0x94268","0xf5368","0xf8090","0xf4720","0x81e70","0x7e490","0x84150","0xf8460","0x1005c8","0x61760","0x947a8","0xf9668","0xf8c10","0xca180","0xd2570","0xfbd98","0x20a68","0xd2ff0","0xe9828","0x32688","0xfc768","0x110fc8","0x873d0","0x78910","0xcdeb8","0x103e08","0xdd118","0xff7d0","0xdcc40","0x84b80","0x102e18","0xc6d68","0xdafd0","0x33108","0xd1c70","0x6a7d0","0x3ffc0","0xdded8","0xf34f0","0x9f9a0","0x63dc0","0x100830","0xb9f00","0x795c8","0xf19f8","0x5fe50","0xab678","0xfff50","0x1037a0","0xf5b20","0x70e00","0x37350","0xff258","0x102670","0x84230","0x103ff0","0xe16c0","0x64150","0x1021c8","0xa4f20","0xf9860","0x72b10","0x10e418","0x637e8","0xf5b20","0x32e78","0xd2020","0x70440","0x7d0e8","0xf83f0","0x71d78","0x84b80","0xcad08","0x7c768","0xfe618","0x36920","0x44238","0xc41c8","0x10a738","0xe54a0","0x6ff28","0x3f930","0x71278","0x21aa8","0x10afe8","0x716f8","0xf70d0","0xd4310","0x107f40","0x6b680","0xf4f58","0xc8f28","0x100bf0","0xa4550","0x31388","0x7cec0","0xf9af8","0x6bfc0","0xfcb88","0xf97f0","0xf8158","0xcf208","0xed848","0x32548","0xc48a0","0xb3880","0x1031d8","0xa4ba0","0x6e178","0x102c08","0xa39c0","0xf45f0","0x918b8","0xf7888","0xcab08","0x29a60","0xe88f0","0x111298","0xc9a30","0xba040","0x40078","0xa1628","0xf53f0","0xbbaf8","0x85b30","0xc4240","0x7ef68","0x10ac98","0xe4fd8","0x4df58","0x641d8","0xf9d88","0x10a738","0xc46b0","0xd3960","0x6e0e0","0x94c00","0xf4ab8","0xf8838","0xa4be0","0xa6960","0xc99e8","0xe1bd8","0x36010","0xd0308","0xf76d8","0xc36b0","0x6de70","0xd2888","0x7a3f0","0x68ef8","0xd13e8","0x31e20","0x109608","0xd2830","0x10ae88","0xd1940","0xd2888","0x74158","0x100b88","0x101720","0x6e980","0x31d88","0x8a0e0","0x110f78","0x689b8","0xed420","0x9f9e0","0x35e20","0xd0400","0x1043c8","0x637b0","0xef348","0x37830","0x62af0","0xd1b88","0x2c288","0xf12e0","0xdf850","0x5f9d8","0x85100","0xf96d8","0x739f8","0x6a988","0xbbae0","0xc3b00","0x420c0","0x857f0","0x34968","0x7c5a0","0x1099d0","0x10b9f8","0x72510","0x841f0","0x639a0","0x85480","0x91c38","0xc4038","0xc81d0","0xa4bb0","0xcb380","0xd5f70","0x72fc8","0x6eed8","0xc4940","0x72980","0x84e40","0x1010e8","0x67638","0x4ea90","0xc5ac8","0xf5d60","0xf6f38","0xd9698","0xe9828","0xeadd8","0x109230","0x73bf8","0x33108","0xd1820","0xf6058","0x32f60","0xd2970","0xc3be0","0xa3f00","0xf8ac8","0x806c8","0xc69e0","0x7ef68","0x3f298","0xc3be0","0xd5840","0x10d7f0","0x638e0","0xceac8","0x736c8","0xd4f60","0xce1c0","0x7d4c8","0x87430","0xff860","0x7cbe0","0xe29e8","0xf6688","0xc4100","0xf6688","0x32988","0xd26d0","0x92680","0x63dc0","0x34640","0xc2708","0x3cf60","0x5faa0","0x105a70","0x6e788","0x33f58","0xebfc0","0x42f08","0xf2370","0xfff98","0x10b7c0","0x60950","0xcfa40","0x86548","0x84940","0x10b810","0xc3b90","0x60f70","0xd95e8","0xf86f0","0xd27b0","0x7ed30","0x6f640","0x7afc0","0x93130","0xd44a8","0x9e528","0x70e10","0x29c88","0xd6070","0x661f8","0x84338","0x68a18","0x325b8","0x33a90","0x72b08","0xc3a78","0x739a0","0x7e958","0xed308","0x31df8","0x105ad8","0xc9140","0x6ee18","0xffc30","0x1037d8","0xd7690","0x79a38","0xf9978","0x3f0a0","0x103760","0x42408","0x3f7f8","0x100c60","0x786d8","0xe54a0","0xf5f10","0x736f8","0x65f40","0xfdae0","0x68070","0x9e7f8","0xd1ba0","0xf96b8","0xd9640","0x9e608","0x1029a0","0x35f50","0x60658","0xded70","0xa4bb0","0xfdc48","0xf4d20","0x637b0","0xf59d8","0xca980","0x6fcb0","0xa3f00","0x100598","0xb1260","0x65e50","0xfd7d8","0xc47f0","0xf7888","0x32170","0x6ec58","0xe8ad8","0xc9a98","0xca898","0x104390","0x323b8","0x91d68","0x607a0","0x6e0d0","0x64a98","0x32720","0x7bf08","0xc88a0","0xde568","0x939b8","0xffcb8","0xee988","0xd5370","0xe4d20","0xc3b00","0xf4b50","0x9ecc8","0xd1960","0x3f1a0","0x1003d0","0xd5578","0x33490","0xba068","0xc81d0","0x101928","0x36250","0x805e8","0xf31c0","0x35020","0x6ce78","0xa2d70","0x31250","0x2e430","0xc9da8","0x807e0","0xe6010","0x69990","0x68f20","0x37380","0xddf88","0xffe08","0xf7db0","0x8ed38","0x83ff8","0xf6f38","0x7c938","0xca640","0xf38a8","0xcbf18","0xf4418","0xd1de8","0x102e20","0x74188","0x86098","0xd2650","0xbba00","0x85e88","0x869d0","0xd1558","0xff6a8","0xee370","0x32fb0","0x10d690","0x100fc8","0x32930","0x32658","0x939b8","0x84950","0xc28a8","0xf98b8","0xdf4b8","0x6e4b0","0xf47b8","0xf8938","0x809c8","0x31fb0","0x67f88","0x36170","0xd2ba8","0xc99e8","0x100568","0x7c780","0x10bcd8","0xd2650","0x100b10","0x84538","0xa4bd0","0x72960","0x7c238","0xc4038","0x861f8","0x72c00","0xd18e0","0xd52c0","0xc5f20","0x35b20","0x61f58","0x63a98","0x1113c8","0x2b248","0xa38d8","0xe8478","0x93588","0x1042d8","0xd2fd0","0x95d08","0x4c3b0","0x6da68","0x9ead8","0xe38d8","0x108870","0x34f88","0x110450","0x87460","0x5fb48","0x63dc0","0xd2ef0","0xeaa30","0xe5a10","0xf5f10","0x1005f8","0x840d8","0xd1e08","0x102670","0x7a4c8","0x1099a0","0xe54a0","0x5f900","0x32868","0x93bb0","0x84060","0x37cd0","0x9f688","0xce3a0","0x70560","0x67578","0xdebd0","0x100cd8","0xd17d8","0xd2988","0xd4e00","0x9a028","0x67ff8","0xcc9b8","0xf6540","0x103ce0","0x91ce0","0x101210","0xd5010","0xc2cb8","0x86570","0xd4280","0x355b8","0xc9df0","0x7e280","0x100b88","0x9e608","0xd28a8","0x32a98","0x63278","0xf44b0","0xa4ee0","0xa10f0","0xa3aa8","0x857d0","0x72af8","0xd2790","0x1039e8","0xd6ed0","0xd3030","0x84950","0x8ea60","0xf7500","0xc34d8","0xd2a70","0x108978","0xd1bb8","0x108af8","0x4dcc0","0xd8630","0xc3a60","0x102410","0xd9410","0x67700","0xa4bf0","0x1003c0","0xd7780","0x71218","0xd2ef0","0xd34d0","0x10ee10","0x369f8","0x947d0","0x106c30","0xd2730","0x6e010","0x1037d8","0xd0030","0x7fe88","0x44020","0xcdd60","0x84940","0xd05d8","0xce380","0xd8530","0xc3a78","0xd72d8","0xfab90","0x36a50","0xbba20","0xa39d8","0x92c60","0xc9078","0xe6120","0x71248","0xe4120","0xf4348","0x63dc0","0x70560","0x102d10","0x100538","0xeaef8","0xa4bd0","0xf5280","0x641d8","0xcae50","0x33190","0x93248","0xe91c8","0xd8d50","0xb6aa0","0x74778","0xffe08","0x9f490","0x72b18","0x847e8","0xcd7c8","0xb9ce8","0xccc08","0xfc3b8","0x2fe10","0x36428","0xde120","0x103b28","0x9f648","0x28e58","0x32670","0x36a98","0xa4738","0x103308","0xf9860","0x637b0","0xb9f00","0x10bb48","0x32e78","0x37338","0x8c6d0","0x85280","0x804a0","0x6bb38","0x7bd88","0x32e40","0xa5738","0xff6a8","0x2c1f8","0x109c78","0x63dc0","0x93bb0","0xd1fa0","0x325b8","0xf6ec8","0x4e940","0x8eb60","0x3a250","0xd2710","0x323a0","0xd2590","0x7ad80","0xc4100","0x74620","0xfa3a0","0x9f178","0xbb910","0x6de70","0x7c458","0x73758","0xceac8","0x41f60","0x7c378","0x608c8","0xf96d8","0xd2ab0","0xce360","0xa4be0","0xe9ba8","0xca180","0x91690","0xc1d80","0xc3908","0x1027e0","0xff210","0x33ea8","0xebfc0","0xe9f08","0x874a8","0xc49a8","0xf1870","0x68dd0","0xf0f80","0x32ce8","0xd3030","0xca0c0","0x443f8","0x108910","0x60118","0xa5628","0xbba80","0x108af8","0xd5af0","0x42540","0xf4980","0xea930","0x9fb18","0xf53f0","0x94e68","0xcaaf0","0xd26b0","0x100218","0x6e688","0xd2870","0xca258","0x872e8","0xf8ce8","0x217d8","0x33218","0xfaf98","0x37380","0x25d30","0xc48b8","0x6e368","0x108b90","0xb4358","0x963e0","0xe29e8","0x7d024","0xd0680","0x2c718","0x102f88","0xcbef0","0xc3b00","0xa4e80","0x5fbf8","0x61760","0xf8938","0xf5d18","0x6c798","0x37cb8","0xe5a10","0x323d0","0x63dc0","0x6c320","0x736f8","0x94b30","0x6e1e0","0x10bcd8","0xe4228","0x104530","0x37c88","0x32220","0xb6760","0xc8670","0x4ea90","0xf7888","0x86570","0xeea38","0x6fa70","0x43008","0xf59d8","0xe35c0","0x795c8","0xd4e00","0x20a74","0x10f1a8","0x2b850","0x102948","0x7d358","0xeaea8","0x6c5f0","0xc3600","0xc5208","0xf5108","0xbba40","0xa37b8","0xa3d40","0xe7d40","0xe4228","0xa39c0","0xa39d8","0xd2c90","0x1010e8","0xa5658","0xc59b8","0xf1ef0","0x37ca0","0x6b680","0xaefa0","0xd27f0","0xc8ae0","0xc3be0","0xf96f8","0xa5db0","0x85480","0x74640","0xba098","0xed718","0x719c0","0xf59d8","0x31678","0xd56a8","0x107de0","0x10f948","0xff860","0x6ab08","0x36308","0xd2530","0x70528","0x435e8","0x6cd28","0x103eb0","0x323e0","0xfd578","0x101070","0xfff50","0xe2eb0","0x9e6f0","0x62ef0","0x9ee78","0x44998","0xeaa30","0xe1320","0x102e18","0x81060","0xeedf8","0xd54d0","0x10b150","0x106fd8","0x84120","0x8ec50","0xd2e30","0xfe350","0xee4b0","0xfbaf8","0xa4bf0","0x6f470","0x840d8","0x5a078","0x111510","0x9f688","0xf4448","0xd4df0","0xa3490","0x102318","0xc9df0","0xf8e08","0xf8990","0xd5420","0xce240","0xf6d68","0xc9ea8","0x7e4d8","0x91810","0x87400","0xb95a0","0x103938","0x102b48","0xce220","0x325b8","0x10bcd8","0x102b08","0x8a7c8","0x78818","0xc3a60","0x102c08","0x6c090","0xc69e0","0x32220","0x100488","0x9a010","0xc5a10","0x22420","0x6cc78","0x9e790","0x81090","0xd18c0","0xcdeb8","0x80380","0xd5578","0x673e8","0xd1500","0xe9ba8","0xa7d38","0x102e28","0x21040","0x71770","0x2a410","0x67950","0xc39e0","0xc9a30","0xf8ca0","0x7c680","0xd5e50","0x71d70","0x7fe88","0xd2ab0","0x6e3e0","0x103318","0xf88b8","0xfd1e8","0x102b48","0xd2888","0x60190","0x101f48","0x7ac18","0xfac90","0x369c8","0x682c0","0xf86f0","0xf9738","0x3fe00","0x104aa0","0xf5f10","0x3f0a0","0x101198","0xd5a60","0xc3ec8","0xd2000","0xd10f8","0x332c8","0x85680","0x86098","0x110bf8","0xbac78","0x108c28","0xc2cc8","0x6e4b0","0xff8f0","0xc3708","0x100b10","0x102b08","0x5fe50","0x20ec8","0x71388","0x6fe80","0xd1800","0x6ad68","0xce320","0xd2670","0xa3810","0xf74b8","0xc9208","0x328e0","0xf3020","0xa4ea0","0xd2888","0x6e368","0xd2888","0xfab90","0xf6de0","0x83ed0","0x1027e0","0xf6de0","0xcc5e0","0x81060","0x1080e0","0xd00f8","0xf4c88","0x425c8","0xd2ff0","0x651c8","0x36898","0x80838","0x108978","0x79638","0xf6370","0xd9748","0x42608","0x42010","0x83ed0","0x8eeb8","0x2c530","0x24b48","0xebff0","0xf01b8","0xa3fb0","0x7c4f8","0xff230","0x35a00","0x309a0","0x63c38","0xf9af8","0x656e8","0x37c70","0x6e7c8","0x84b90","0x32f60","0x1009a8","0x103768","0x100a98","0x21080","0x43ca0","0xf5368","0xfc610","0x1021c8","0x7e490","0x4e9e8","0x66348","0xe6538","0x7ca98","0xd3878","0xc4580","0xc49c0","0x325b8","0x327f8","0xa3c90","0xc4990","0xa4b78","0xa6960","0x788b0","0xe9828","0x9e650","0xce360","0xd2020","0xcaf20","0x4e7d8","0x88308","0xa4bf0","0xce3c0","0xea930","0x1009a8","0x80670","0xfce38","0x87910","0x6fd10","0xcc988","0x32868","0xc9640","0x10d340","0x83ff8","0xc9280","0x867c0","0x67cc8","0x332d0","0x22eb0","0xc41c8","0xcabb8","0x780e8","0x857f0","0xfd1e8","0xf0d78","0xf9920","0x76640","0xc9df0","0xd5720","0xd2888","0x6ebd8","0xab678","0xd56a8","0x37380","0x109b58","0x71c28","0x74660","0x8ea60","0xf74b8","0x33060","0x60310","0x73168","0xf9798","0xd1bb8","0x6a540","0x4e730","0xc99e8","0xcee50","0xf0918","0xcea50","0x30610","0x100c60","0xfab90","0x60708","0x803e8","0xe1568","0x639a0","0xe2eb0","0x742a0","0xc92b8","0xbad48","0xd4eb0","0xfcf88","0x102410","0xc3a60","0xd0030","0xd2888","0xd1860","0xcaba0","0xc41c8","0xddf28","0xdb5d8","0x963c0","0x6f460","0x108a90","0x31de0","0x3f930","0x109dc0","0x41f40","0x325b8","0x6e570","0x46f90","0xa7f70","0x795e0","0x63278","0xa0770","0x85100","0x4a0e0","0x7b6f0","0xadaf8","0x102670","0x32a30","0x2b720","0xdebd0","0xf5268","0x32220","0x102a58","0xca000","0xd1558","0xe4228","0x1033c8","0xcae30","0xc3a60","0xd2550","0xf8ea8","0x108d10","0xd2888","0xd2a90","0x110ae0","0xc4038","0x102e20","0xc69e0","0xd3b58","0x1085c0","0xac800","0xba058","0xd2750","0xc5208","0xf6058","0xd3010","0x6f9b8","0x32698","0xcb340","0x103e08","0x86098","0x65480","0xd4e00","0x6eed8","0x42388","0x10b968","0xfc610","0x932b8","0xdded8","0xe1e38","0xf9668","0x63278","0xabce8","0x84e50","0xd8d88","0xc3908","0x103d00","0xa37a0","0xccb98","0xc4200","0xc99e8","0xc0040","0x71888","0xdaf28","0xff9c8","0xa4ba0","0xd3030","0x108c28","0x713f0","0x38360","0xfc720","0xff9c8","0xd2630","0x10a908","0xc32a8","0xf6688","0xcbdf0","0xef158","0xc49c0","0xd5ee0","0x72b98","0x4c260","0xe8c78","0xf0cd0","0xbbae0","0x10d558","0xd24d0","0x69878","0x1039e8","0x28408","0xebff0","0xd5940","0x42f68","0xca6f8","0x100fc8","0x4de68","0x78f48","0xa3f20","0xd1cd0","0x7d0e8","0x102ff8","0x86528","0x86088","0x7e7f0","0x7d024","0x1043c8","0xf7b20","0x2b1e0","0x67d38","0xd2630","0xabf78","0xd5b80","0xbe608","0x2c2f0","0x102ed8","0xbe5c8","0x9f7e8","0x33060","0xc9a80","0x102540","0xdf0d8","0x104390","0x7e5c0","0x1040c8","0xe1ab8","0xfcb88","0x9f518","0xa5a10","0xf0538","0x6ce78","0xffba8","0xcc4b8","0x801e0","0xffaa0","0x101928","0x103660","0xf9798","0xf6de0","0xe9ba8","0xc5b88","0x963c0","0xf96f8","0x207cc","0x85bf8","0xf9920","0x85e88","0xc8428","0xf5278","0xd5ca0","0xc3d28","0xd2ac8","0xa4bc0","0x1031e8","0xfdae0","0xd2888","0xf4980","0xad340","0x85680","0x2c350","0x637b0","0x106c88","0x63110","0xebff0","0x100740","0x26910","0xf6310","0xf3a50","0x32b88","0xbb338","0x1031e8","0xa4ba0","0x84e50","0x108b90","0x7d7c8","0x10d7c0","0xa4bc0","0xd2770","0xf88b8","0xc3a78","0xfe350","0x6fcb0","0x78c30","0xcb380","0x84180","0x62958","0x26e78","0xfdd08","0x354b0","0xc3a60","0xc9ef0","0x8ea70","0xd24b0","0x424f8","0x9f688","0x1105a8","0x72ae0","0xfd848","0x62ef0","0x6e688","0x648a0","0x9f4d0","0x84150","0xc5250","0x102ed8","0xd5210","0xc46b0","0x2cdb8","0x5faa0","0x7c560","0x297a8","0xb1d38","0xbba00","0xf0fc8","0xf6160","0x103128","0x41e80","0x2e448","0x1029a8","0xe47c8","0x84180","0x33910","0xce360","0xca7b0","0xbbac0","0x87390","0x4a0e0","0x63278","0xc9fe0","0xa3fb0","0x6fe80","0xed0a0","0xf9230","0xf98b8","0xc3ec8","0x7c038","0xfdc48","0x32ce8","0x63a98","0x96ca8","0xddf88","0x10af20","0xc4580","0xfd578","0x9e790","0x109350","0xc3a40","0xc3c98","0x80cd8","0x4c280","0xf1320","0x64700","0x73148","0x1037a0","0xf13b8","0xff258","0x86118","0x91900","0xc9708","0xddf40","0xc27d8","0x67950","0x22590","0x78910","0xc9140","0xc3658","0x100598","0x100908","0x71700","0x37320","0x71638","0x7e4d8","0x78ef8","0x103128","0xc27d8","0x677a8","0xd35c8","0xbbae0","0xec718","0xff230","0xc8b30","0xf8e08","0xd50c0","0x100d58","0xe04c0","0x101f48","0x9e790","0x31e20","0x37320","0xdf4b8","0x30b00","0x651c8","0xc5c00","0xfef88","0xd3010","0x6fe80","0xffd20","0x63278","0x102f88","0x10bbb8","0x108a08","0x1021d8","0xf70d0","0xd2888","0xffba8","0x103ff0","0xd24b0","0xd2810","0x4e940","0xf6540","0x237e8","0xd0e98","0xf6370","0x103128","0x100830","0xf1b58","0xc49c0","0x84060","0xe5a10","0xff210","0xf8ce8","0x63278","0xd2888","0xae260","0x8ccc0","0x104390","0x103068","0x100a20","0xce240","0x100bf0","0x10bac0","0xf6f38","0xc3a40","0x332d8","0xfcd78","0xa6960","0x63278","0x100568","0x62ef0","0x963e0","0xfac90","0x9e7f8","0x102ed8","0xfff50","0xc41c8","0xf9738","0x32920","0x102d10","0x10d5f8","0x1031e8","0xd6ed0","0x6fd10","0x10d6b0","0xf8ac8","0x102540","0x9f9c8","0xf6498","0xada50","0xf86f0","0x100538","0x103ce0","0x7a578","0xf53f0","0xe7ae8","0xe1990","0x84230","0x6e790","0xfd3b8","0x4c260","0x10d6b8","0xfe350","0x63dc0","0xe4d20","0x103888","0xd6fd0","0x29328","0xfaf98","0x104370","0xfd1e8","0xf8990","0x3f930","0x100740","0xad680","0xe4120","0x64eb8","0x10d690","0x72fe8","0xf6058","0x71f00","0x100218","0xf6160"]},{"type":3,"name":"python","functions":["function__entry"],"binary_path":"/lib64/libpython3.6m.so.1.0","provider":"python"},{"type":1,"name":"os_page_cache","functions":["add_to_page_cache_lru","delete_from_page_cache_batch","end_page_writeback","find_get_entries","grab_cache_page_write_begin","release_pages"]},{"type":1,"name":"shm","functions":["shmem_charge","shmem_file_setup","shmem_file_setup_with_mnt","shmem_get_unmapped_area","shmem_init_fs_context","shmem_kernel_file_setup","shmem_lock","shmem_mapping","shmem_partial_swap_usage","shmem_read_mapping_page_gfp","shmem_swap_usage","shmem_truncate_range","shmem_uncharge","shmem_unlock_mapping","shmem_unuse","shmem_zero_setup"]},{"type":1,"name":"iomap","functions":["iomap_adjust_read_range","iomap_bmap","iomap_dio_alloc_bio.isra.0","iomap_dio_bio_end_io","iomap_dio_bio_iter","iomap_dio_complete","iomap_dio_complete_work","iomap_dio_deferred_complete","iomap_dio_hole_iter","iomap_dio_rw","iomap_dio_submit_bio","iomap_dio_zero","iomap_dirty_folio","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_set_range_uptodate","iomap_sort_ioends","iomap_submit_ioend","iomap_swapfile_activate","iomap_swapfile_add_extent","iomap_swapfile_fail","iomap_to_fiemap","iomap_truncate_page","iomap_write_begin","iomap_write_end","iomap_writepage_end_bio","iomap_writepages","iomap_zero_range"]}] diff --git a/etc/datacrumbs/data/sorter.py b/etc/datacrumbs/data/sorter.py deleted file mode 100644 index 9bbfbbac..00000000 --- a/etc/datacrumbs/data/sorter.py +++ /dev/null @@ -1,49 +0,0 @@ -import json - -def sort_json_file_inplace(filename): - """ - Sort a JSON array file and update the original file with the sorted data. - - Args: - filename (str): Path to the JSON file to sort - - Returns: - bool: True if successful, False if error occurred - """ - try: - # Read the JSON file - with open(filename, 'r') as f: - data = json.load(f) - - # Check if data is a list - if not isinstance(data, list): - print(f"Error: JSON file must contain an array/list, found {type(data)}") - return False - - # Sort the array - sorted_data = sorted(data) - - # Write sorted data back to the same file - with open(filename, 'w') as f: - json.dump(sorted_data, f, indent=4) - - print(f"Successfully sorted {len(sorted_data)} items in {filename}") - return True - - except FileNotFoundError: - print(f"Error: File '{filename}' not found") - return False - except json.JSONDecodeError as e: - print(f"Error: Invalid JSON in file '{filename}': {e}") - return False - except Exception as e: - print(f"Error: {str(e)}") - return False - -# Update your specific file -if __name__ == "__main__": - success = sort_json_file_inplace('/home/haridev/datacrumbs/etc/datacrumbs/data/temp.json') - if success: - print("File updated successfully!") - else: - print("Failed to update file.") \ No newline at end of file diff --git a/etc/datacrumbs/data/temp.json b/etc/datacrumbs/data/temp.json deleted file mode 100644 index e69de29b..00000000 diff --git a/etc/datacrumbs/flux/cli/plugins/datacrumbs.py b/etc/datacrumbs/flux/cli/plugins/datacrumbs.py index d9a88782..71f90649 100644 --- a/etc/datacrumbs/flux/cli/plugins/datacrumbs.py +++ b/etc/datacrumbs/flux/cli/plugins/datacrumbs.py @@ -9,7 +9,6 @@ ############################################################## from flux.cli.plugin import CLIPlugin -import os class DatacrumbsPlugin(CLIPlugin): @@ -26,36 +25,26 @@ def __init__(self, prog, prefix="datacrumbs"): help="Enable datacrumbs" ) self.add_option( - "--composite", + "--probe-file", type=str, default="", - help="Set composite name for datacrumbs" + help="Path to signed probes json.gz file for datacrumbs" ) - + def validate(self, jobspec): try: enable = jobspec.attributes["datacrumbs"]["enable"].lower() == "yes" if enable: - composite_name = jobspec.attributes["datacrumbs"].get("composite", "") - # Validate composite name if provided - if composite_name != "": - if not composite_name.replace('_', '').isalpha(): - raise ValueError("--composite can only contain alphabetic characters and underscores") - # TODO: Uncomment and adjust the following lines to validate the existence of the composite file - # 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_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") + probe_file = jobspec.attributes["datacrumbs"].get("probe_file", "") + if probe_file == "": + raise ValueError("--probe-file is required when datacrumbs is enabled") except KeyError: enable = False - + def modify_jobspec(self, args, jobspec): if args.enable: jobspec.setattr("datacrumbs.enable", "yes") - if args.composite != "": - jobspec.setattr("datacrumbs.composite", args.composite) + jobspec.setattr("datacrumbs.probe_file", args.probe_file) else: jobspec.setattr("datacrumbs.enable", "no") - jobspec.setattr("datacrumbs.composite", "") \ No newline at end of file + jobspec.setattr("datacrumbs.probe_file", "") diff --git a/etc/datacrumbs/logs/.gitignore b/etc/datacrumbs/logs/.gitignore deleted file mode 100644 index f59ec20a..00000000 --- a/etc/datacrumbs/logs/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/etc/datacrumbs/modulefiles/module.lua.in b/etc/datacrumbs/modulefiles/module.lua.in deleted file mode 100644 index fb91b4a5..00000000 --- a/etc/datacrumbs/modulefiles/module.lua.in +++ /dev/null @@ -1,54 +0,0 @@ --- @PROJECT_NAME@ module file - -whatis("Name: @PROJECT_NAME@") -whatis("Version: @DATACRUMBS_RELEASE_VERSION_STRING@") -whatis("Category: HPC, @PROJECT_NAME@") -whatis("Description: @PROJECT_NAME@") --- whatis("") - -help([[ -@PROJECT_NAME@ @DATACRUMBS_RELEASE_VERSION_STRING@ modulefile: - -- Sets environment variables for @PROJECT_NAME@ binaries, libraries, man pages. - - module load datacrumbs/@DATACRUMBS_RELEASE_VERSION_STRING@ -]]) - --- Set the installation directory --- %CMAKE_INSTALL_PREFIX% -local prefix = "@CMAKE_INSTALL_PREFIX@" -local user = os.getenv("DATACRUMBS_USER") or os.getenv("USER") or "@DATACRUMBS_INSTALL_USER@" - --- Define @PROJECT_NAME@ directories -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_LIBEXECDIR@/@CMAKE_INSTALL_SBINDIR@/" .. user -local libexec_dir = pathJoin(prefix, userbin) -local lib_dir = pathJoin(prefix, "@DATACRUMBS_INSTALL_LIB_DIR@") - - --- Add @PROJECT_NAME@ directories to PATH, LD_LIBRARY_PATH, CPATH, C_INCLUDE_PATH, ETCPATH, and MANPATH -prepend_path("PATH", bin_dir) -prepend_path("PATH", sbin_dir) -prepend_path("PATH", libexec_dir) -prepend_path("LD_LIBRARY_PATH", lib_dir) -prepend_path("LD_LIBRARY_PATH", "@DEPENDENCY_LIBRARY_DIRS_COLON@") -prepend_path("ETCPATH", etc_dir) - --- Set additional flags --- local datacrumbs_flags = string.format("-L %s/lib -I %s/include ", prefix, prefix) - - --- Inform user -if mode() == "load" then -elseif mode() == "unload" then - LmodMessage("@PROJECT_NAME@ unloaded.") -end - -family("datacrumbs") -execute{ - cmd = "source @CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_BINDIR@/datacrumbs_setup", - modeA = {"load"}, - mode = "silent", -} diff --git a/etc/datacrumbs/plugins/custom_probes/custom_probes.h.in b/etc/datacrumbs/plugins/custom_probes/custom_probes.h.in new file mode 100644 index 00000000..e4352fc2 --- /dev/null +++ b/etc/datacrumbs/plugins/custom_probes/custom_probes.h.in @@ -0,0 +1,10 @@ +#ifndef DATACRUMBS_CUSTOM_PROBES_H +#define DATACRUMBS_CUSTOM_PROBES_H + +/* + * Site-local custom BPF probes that can be enabled by uncommenting the + * generated includes below. + */ +// #include "@CMAKE_CURRENT_SOURCE_DIR@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio.bpf.c" + +#endif diff --git a/etc/datacrumbs/plugins/custom_probes/custom_probes_process.h.in b/etc/datacrumbs/plugins/custom_probes/custom_probes_process.h.in new file mode 100644 index 00000000..6bb6b145 --- /dev/null +++ b/etc/datacrumbs/plugins/custom_probes/custom_probes_process.h.in @@ -0,0 +1,10 @@ +#ifndef DATACRUMBS_CUSTOM_PROBES_PROCESS_H +#define DATACRUMBS_CUSTOM_PROBES_PROCESS_H + +/* + * Site-local userspace processing hooks that can be enabled by uncommenting the + * generated includes below. + */ +// #include "@CMAKE_CURRENT_SOURCE_DIR@/etc/datacrumbs/plugins/custom_probes/sys_io/sysio_process.h" + +#endif diff --git a/etc/datacrumbs/systemd/datacrumbs@.service.in b/etc/datacrumbs/systemd/datacrumbs@.service.in index 36d5ea40..8ce7f39b 100644 --- a/etc/datacrumbs/systemd/datacrumbs@.service.in +++ b/etc/datacrumbs/systemd/datacrumbs@.service.in @@ -1,20 +1,21 @@ [Unit] -Description=Datacrumbs Service for composite: %I +Description=Datacrumbs Service run-id=%i After=network.target [Service] -Type=forking -ExecStart=@DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_server_run.sh --verbose -ExecStop=@DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_server_stop.sh --verbose +Type=simple User=root -# Optional: -RemainAfterExit=no -# Copy PIDFile path to project yaml -PIDFile=@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@/datacrumbs-systemd-%i.pid -TimeoutStartSec=10min -TimeoutStopSec=5min -# Copy ENVFile path to project yaml -EnvironmentFile=@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@/datacrumbs-%i.env +EnvironmentFile=-@DATACRUMBS_INSTALL_CONFIGS_DIR@/datacrumbs-%i.env +ExecStartPre=/usr/bin/rm -f @DATACRUMBS_SERVER_RUN_DIR@/datacrumbs-%i.ready +ExecStartPre=/bin/sh -c 'mkdir -p "${DATACRUMBS_LOG_DIR}"' +ExecStartPre=/bin/sh -c 'log_file="${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${DATACRUMBS_SERVICE_RUN_ID}_$(hostname).log"; touch "${log_file}" && chown "${DATACRUMBS_USER}":"${DATACRUMBS_USER}" "${log_file}" && chmod 0660 "${log_file}"' +ExecStart=/bin/sh -c 'exec @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs "${DATACRUMBS_PROBE_FILE}" "%i" "${DATACRUMBS_USER}" >> "${DATACRUMBS_LOG_DIR}/datacrumbs_${DATACRUMBS_USER}_${DATACRUMBS_SERVICE_RUN_ID}_$(hostname).log" 2>&1' +ExecStartPost=/bin/sh -c 'for i in $(seq 1 300); do [ -f "@DATACRUMBS_SERVER_RUN_DIR@/datacrumbs-%i.ready" ] && exit 0; sleep 1; done; exit 1' +ExecStop=/bin/kill -INT $MAINPID +KillSignal=SIGINT +KillMode=control-group +TimeoutStartSec=10min +TimeoutStopSec=30s [Install] -WantedBy=multi-user.target \ No newline at end of file +WantedBy=multi-user.target diff --git a/etc/datacrumbs/systemd/datacrumbs_sign_probes.service.in b/etc/datacrumbs/systemd/datacrumbs_sign_probes.service.in new file mode 100644 index 00000000..21840ef8 --- /dev/null +++ b/etc/datacrumbs/systemd/datacrumbs_sign_probes.service.in @@ -0,0 +1,13 @@ +[Unit] +Description=Datacrumbs trusted probe signing service +After=network.target + +[Service] +Type=simple +User=root +ExecStart=@DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_sign_probes +Restart=on-failure +RestartSec=2s + +[Install] +WantedBy=multi-user.target diff --git a/etc/datacrumbs/systems/README.ares.md b/etc/datacrumbs/systems/README.ares.md deleted file mode 100644 index 86b08fb4..00000000 --- a/etc/datacrumbs/systems/README.ares.md +++ /dev/null @@ -1,113 +0,0 @@ -# Readme for Ares Cluster - -## Manage Environments - -```bash -export DATACRUMBS_DIR=/mnt/common/$USER/datacrumbs -export DATACRUMBS_INSTALL_DIR=/mnt/common/$USER/datacrumbs/install -``` - -## Dependencies - -Use release version of `bcc` **0.35.0** - -Install system dependencies: - -```bash -sudo apt install libelf-dev libclang-14 libclang-14-dev zip -sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 50 -``` - -Ensure `llvm-config` is symlinked using `update-alternatives` like so: - -```bash -update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 50 -``` - -## Installation - -```bash -export DATACRUMBS_INSTALL_DIR=/mnt/common/$USER/datacrumbs/install -export DATACRUMBS_DIR=/mnt/common/$USER/datacrumbs -git clone git@github.com:hariharan-devarajan/datacrumbs.git -cd datacrumbs -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. -make install -j9 -cd - -``` - -### Install Python Environment - -#### Create a python environment - -```bash -virtualenv --python=python3 ${DATACRUMBS_INSTALL_DIR} -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -pip install --upgrade pip -pip install -r ${DATACRUMBS_DIR}/requirements.txt -pip install -r ${DATACRUMBS_DIR}/bcc_requirements.txt -``` - -#### Install `bcc`s python bindings - -```bash -cmake -DPYTHON_CMD=python -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. -make install -j9 -``` - -You may have to copy the python bindings manually if the above does not work: - -```bash -cp -rv bcc-python3/bcc $DATACRUMBS_INSTALL_DIR/lib/python3.10/site-packages/ -``` - -Add this to your `activate` file. -This makes sure when you activate the -environment, the paths are set correctly for `bcc`: - -```bash -BCC_INSTALL_DIR="/mnt/repo/software/bcc" -BCC_SITEPKG="$BCC_INSTALL_DIR/lib/python3.10/site-packages/" -export PATH=$PATH:$BCC_INSTALL_DIR/bin:$BCC_INSTALL_DIR/sbin -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BCC_INSTALL_DIR/lib:$BCC_INSTALL_DIR/lib64 -export PYTHONPATH=$PYTHONPATH:$BCC_SITEPKG -``` - -Or simply run the following commands to set the environment variables: - -```bash -cat << EOF >> ${DATACRUMBS_INSTALL_DIR}/bin/activate -BCC_INSTALL_DIR="/mnt/repo/software/bcc" -BCC_SITEPKG="$BCC_INSTALL_DIR/lib/python3.10/site-packages/" - -export PATH=$PATH:$BCC_INSTALL_DIR/bin:$BCC_INSTALL_DIR/sbin -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BCC_INSTALL_DIR/lib:$BCC_INSTALL_DIR/lib64 -export PYTHONPATH=$PYTHONPATH:$BCC_SITEPKG -EOF -``` - -## Running the tool - -### Setup - -```bash -export DATACRUMBS_DIR=/mnt/common/$USER/datacrumbs -source ${DATACRUMBS_DIR}/scripts/ares/server/setup.sh -source ${DATACRUMBS_DIR}/scripts/ares/server/init.sh -source ${DATACRUMBS_DIR}/scripts/ares/server/run.sh -``` - -### Running Simple Test - -```bash -export DATACRUMBS_DIR=/mnt/common/$USER/datacrumbs -export DATACRUMBS_INSTALL_DIR=/mnt/common/$USER/datacrumbs/install -source ${DATACRUMBS_DIR}/scripts/ares/client/setup.sh -source ${DATACRUMBS_DIR}/scripts/ares/client/tests/test_posix.sh -``` - -## Slurm integration - -Slurm job installation will be added here (need to be done by admin) diff --git a/etc/datacrumbs/systems/README.chameleon.md b/etc/datacrumbs/systems/README.chameleon.md deleted file mode 100755 index 1a9c2710..00000000 --- a/etc/datacrumbs/systems/README.chameleon.md +++ /dev/null @@ -1,87 +0,0 @@ -# Readme for Chameleon - -## Account - -Go to [chameleon cloud website](https://chameleoncloud.org) and create an account. -Once the account is created, get added to project. - -## Creating an instance - -- Navigate to [chameleon cloud website](https://chameleoncloud.org) -- Go to Experiment -> CHI@TACC -- Go to Compute -> Key Pairs from the left hand side bar and create a key pair. -- Then go to reservation, click on create-reservation, fill details, and allocate compute_cascadelake nodes from the Hosts section. -- Then go to compute instances and spawn your instance using Launch Instance. Fill the details and make sure, - - to select the HARI-UBUNTU-22.04.04-BCC image as the base image - - select your key pair. - - -## Setting up dependencies for DataCrumbs - -### Clone the repository - -```bash -export SPACK_DIR=/opt/spack -export DATACRUMBS_DIR=/home/cc/datacrumbs -export DATACRUMBS_INSTALL_DIR=/home/cc/datacrumbs/install - -git clone git@github.com:hariharan-devarajan/datacrumbs.git ${DATACRUMBS_DIR} -``` - -### Setup spack - -This step will clone latest spack into `$SPACK_DIR` and then install hdf5 dependency - -```bash -cd ${DATACRUMBS_DIR}/scripts/chameleon -./install_env.sh -cd - -``` - -### Setting up DataCrumbs Python Dependencies - -```bash -python3 -m venv --system-site-packages ${DATACRUMBS_INSTALL_DIR} -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -pip install -r ${DATACRUMBS_DIR}/requirements/requirement.chameleon.txt -``` - -### Setting up DataCrumbs - -```bash -pushd ${DATACRUMBS_DIR} -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. -make install -j -popd -``` -## Running the tool - - -### Generating Probes - -check your `${DATACRUMBS_DIR}/datacrumbs/configs/module/chameleon.yaml` and make neccessary changes. - -```bash -sudo su -export DATACRUMBS_DIR=/home/cc/datacrumbs -source ${DATACRUMBS_DIR}/scripts/chameleon/server/setup.sh -. ${DATACRUMBS_DIR}/scripts/chameleon/server/init.sh -g -``` - -### Starting Server - -```bash -export DATACRUMBS_DIR=/home/cc/datacrumbs -source ${DATACRUMBS_DIR}/scripts/chameleon/server/setup.sh -. ${DATACRUMBS_DIR}/scripts/chameleon/server/run.sh -``` - -### Running Simple Test - -```bash -export DATACRUMBS_DIR=/home/cc/datacrumbs -source ${DATACRUMBS_DIR}/scripts/chameleon/client/setup.sh -. ${DATACRUMBS_DIR}/scripts/chameleon/client/tests/test_posix.sh -``` \ No newline at end of file diff --git a/etc/datacrumbs/systems/README.lead2.md b/etc/datacrumbs/systems/README.lead2.md deleted file mode 100755 index f5064d0e..00000000 --- a/etc/datacrumbs/systems/README.lead2.md +++ /dev/null @@ -1,97 +0,0 @@ -# Readme for Lead2 - -Location of spack is `/home/haridev/spack` - -## Manage Environments - -```bash -export SPACK_DIR=/home/haridev/spack -export DATACRUMBS_DIR=/home/haridev/datacrumbs -export DATACRUMBS_INSTALL_DIR=/home/haridev/datacrumbs/install -``` - -## Configure Spack - -```bash -source ${SPACK_DIR}/share/spack/setup-env.sh -``` -Spack does the following - -- GCC 11.5 is picked from system -- openmpi is installed into system -- Python 3.9 is picked from system - -## Installation - -### Load Dependency - -```bash -source ${SPACK_DIR}/share/spack/setup-env.sh -spack load llvm@19.1.7 hdf5@1.14.5 ior@4.0.0 openmpi@5.0.7 cmake@3.26.5 -spack load gcc@11.5.0 -``` - -### DataCrumbs - -All datacrumbs executables and dependencies would be installed in DATACRUMBS_INSTALL_DIR - - - -```bash -cd /home/haridev -git clone git@github.com:hariharan-devarajan/datacrumbs.git -cd datacrumbs -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. -make install -j -cd - -``` - -### Test Dependencies - -#### Activate project spack - -```bash -source ${SPACK_DIR}$/share/spack/setup-env.sh -``` - -```bash -spack view --verbose symlink ${DATACRUMBS_INSTALL_DIR} ior@4.0.0+hdf5 ^hdf5@1.14.5 -``` - -## Running the tool - -### Generating Probes - -```bash -export SPACK_DIR=/home/haridev/spack -export DATACRUMBS_DIR=/home/haridev/datacrumbs -export DATACRUMBS_INSTALL_DIR=/home/haridev/datacrumbs/install -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -source ${DATACRUMBS_DIR}/scripts/lead2/server/setup.sh -${DATACRUMBS_DIR}/scripts/lead2/server/init.sh -g -``` - -### Starting Server - -```bash -sudo su - -export SPACK_DIR=/home/haridev/spack -export DATACRUMBS_DIR=/home/haridev/datacrumbs -export DATACRUMBS_INSTALL_DIR=/home/haridev/datacrumbs/install -source ${DATACRUMBS_DIR}/scripts/lead2/server/setup.sh -${DATACRUMBS_DIR}/scripts/lead2/server/init.sh -${DATACRUMBS_DIR}/scripts/lead2/server/run.sh -``` - -### Running Simple Test - -```bash -export SPACK_DIR=/home/haridev/spack -export DATACRUMBS_DIR=/home/haridev/datacrumbs -export DATACRUMBS_INSTALL_DIR=/home/haridev/datacrumbs/install -source ${DATACRUMBS_DIR}/scripts/lead2/client/setup.sh -${DATACRUMBS_DIR}/scripts/lead2/client/tests/test_posix.sh -``` \ No newline at end of file diff --git a/etc/datacrumbs/systems/README.md b/etc/datacrumbs/systems/README.md deleted file mode 100755 index a580df31..00000000 --- a/etc/datacrumbs/systems/README.md +++ /dev/null @@ -1,149 +0,0 @@ -# DataCrumbs -A multi-level dataflow profiler to capture I/O calls from workflows. - - -## Dependency installation - -### Requirements - -- Newer Kernel > 5.6 [see kernel doc](https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md) -- BCC > v0.30.0 -- cmake -- python 3.10 - - hydra-core>=1.2.0 - -**Test Requirements** - -- OpenMPI - -### Chameleon - -We have a Image that can be used to do development on Chameleon called HARI-UBUNTU-22.04.04-BCC. - - -## Compiling the code - -### Clone the repo - -```bash -git clone https://github.com/hariharan-devarajan/datacrumbs.git - -cd datacrumbs -mkdir build -cd build -cmake .. -make -j -``` - -## Python Dependencies - -- psutil==5.8 -- tqdm -- pyelftools - -## Other dependencies - -- clang-format - -## Build dependency for datacrumbs - -```bash -sudo pip install -r requirements.txt -``` - -## arguments for datacrumbs tools are - -```bash -usage: initialize_tool [-h] [--module MODULE] [--install_dir INSTALL_DIR] [--file FILE] [--generate_probes] [--mode {PROFILE,TRACE}] [--interval_sec INTERVAL_SEC] [--trace_type {PERF,RING_BUFFER}] - -Configuration Manager - -options: - -h, --help show this help message and exit - --module MODULE Module name. That is picked from datacrumbs/configs/module - --install_dir INSTALL_DIR - Installation directory - --file FILE Profile file - --generate_probes Generate probes - --mode {PROFILE,TRACE} - Mode of operation - --interval_sec INTERVAL_SEC - Interval in seconds for profiling - --trace_type {PERF,RING_BUFFER} - Type of trac -``` - -## Initialize the code - -The initialization where we do not need to generate probes or are using existing probes. - -```bash -./initialize_tool -``` - -## Run the tool - -### Environment variable to consider - -Check ulimit -n for open file handlers - -```bash -ulimit -n 1048576 -``` - -Increase probe limit within BCC -```bash -export BCC_PROBE_LIMIT=1048576 -``` - -The profiler tool need to run as root - -```bash -sudo su -./run_tool -``` -Once the profiler is loaded, it will wait for applictaions to connect. - - -## Running the test - -Once the profiler has started u can run the application code. - -```bash -cd -cd tests/scripts -./test_posix.sh -``` - -## Checking the profiler output. - -The profiler output is created in the directory where the profiler runs. - -```bash -cc@ebpf:~/datacrumbs$ head -n 5 datacrumbs.pfw -[ -{"pid": 30545, "tid": 30545, "name": "__libc_malloc [libc.so.6]", "cat": "[libc.so.6]", "ph": "C", "ts": 0.0, "args": {"count": 21, "time": 0.000198116}} -{"pid": 30545, "tid": 30545, "name": "cfree [libc.so.6]", "cat": "[libc.so.6]", "ph": "C", "ts": 0.0, "args": {"count": 2, "time": 1.9788e-05}} -{"pid": 30545, "tid": 30545, "name": "[unknown]", "cat": "unknown", "ph": "C", "ts": 0.0, "args": {"count": 1, "time": 1.3094e-05}} -{"pid": 30545, "tid": 30545, "name": "__libc_malloc [libc.so.6]", "cat": "[libc.so.6]", "ph": "C", "ts": 24000000.0, "args": {"count": 149, "time": 0.000503765}} -``` - -## Visualizing the counters - -The output format used is Chrome Tracing format and can be viewed using [perfetto](https://ui.perfetto.dev/). - -![Perfetto Visualization of Data](docs/images/sample_profile.png "Perfetto Visualization of Data") - -## Analyzing counters using queries - -The profiler output can be analyzed using Dask distributed analysis. Please refer to the [notebook](analysis/analysis.ipynb). - -## Get non-rrot access to BPF - -System Tap has a permission model - -eBPF program types can make non-root is different -Look at CAP_BPF CAP_PERF_MON -Avoid CAP_SYS_ADMIN - -Security Guide: https://www.linuxfoundation.org/hubfs/eBPF/ControlPlane%20%E2%80%94%20eBPF%20Security%20Threat%20Model.pdf \ No newline at end of file diff --git a/etc/datacrumbs/systems/README.quokka.md b/etc/datacrumbs/systems/README.quokka.md deleted file mode 100644 index 834d7db4..00000000 --- a/etc/datacrumbs/systems/README.quokka.md +++ /dev/null @@ -1,167 +0,0 @@ -# Readme for Quokka - -```bash -export DATACRUMBS_DIR=/proj/csc671/proj_shared/datacrumbs -export DATACRUMBS_INSTALL_DIR=/proj/csc671/proj_shared/dc-install -export SPACK_DIR=/proj/csc671/proj_shared/spack -``` - -## Installation - -### Setup spack - -```bash -git clone --depth=2 https://github.com/spack/spack.git ${SPACK_DIR} -source ${SPACK_DIR}/share/spack/setup-env.sh -spack repo update builtin -``` - -### Setup packages.yaml - -/ccsopen/home/dhari/.spack/packages.yaml - -```yaml -packages: - gcc: - externals: - - spec: gcc@11.5.0 languages:='c,c++,fortran' - prefix: /usr - extra_attributes: - compilers: - c: /usr/bin/gcc - cxx: /usr/bin/g++ - fortran: /usr/bin/gfortran - python: - externals: - - spec: python@3.9.21 - prefix: /usr - buildable: False - autoconf: - externals: - - spec: autoconf@2.69 - prefix: /usr - buildable: False - automake: - externals: - - spec: automake@1.16.2 - prefix: /usr - buildable: False - libtool: - externals: - - spec: libtool@2.4.6 - prefix: /usr - buildable: False - openssh: - externals: - - spec: openssh@8.7p1 - prefix: /usr - buildable: False - perl: - externals: - - spec: perl@5.32.1 - prefix: /usr - buildable: False - bzip2: - externals: - - spec: bzip2@1.0.8 - prefix: /usr - buildable: False - zlib-ng: - externals: - - spec: zlib-ng@1.2.11 - prefix: /usr - buildable: False - openssl: - externals: - - spec: openssl@3.2.2 - prefix: /usr - buildable: False -``` - -### Install Packages - -```bash -spack install gcc@11.5.0 -spack install python@3.9.21 -spack install openmpi@5.0.8 -spack install llvm@19.1.7 -spack install cmake@3.26.5 -spack install hdf5@1.14.5 ior@4.0.0 -spack view --verbose symlink ${DATACRUMBS_INSTALL_DIR} gcc@11.5.0 python@3.9.21 openmpi@5.0.8 llvm@19.1.7 cmake@3.26.5 hdf5@1.14.5 ior@4.0.0 -``` - -### Load Packages - -```bash -spack load gcc@11.5.0 python@3.9.21 openmpi@5.0.8 llvm@19.1.7 cmake@3.26.5 hdf5@1.14.5 ior@4.0.0 -``` - -### Create install directory - -```bash -python3 -m venv ${DATACRUMBS_INSTALL_DIR} -``` - -### Install BCC - -```bash -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -BCC_HOME=/proj/csc671/proj_shared/bcc -git clone https://github.com/iovisor/bcc.git ${BCC_HOME} -pushd ${BCC_HOME} -mkdir build -pushd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} -DCMAKE_C_COMPILER=`which gcc` -DCMAKE_CXX_COMPILER=`which g++` .. -make -j -make install -j -cmake -DPYTHON_CMD=python -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} -DCMAKE_C_COMPILER=`which gcc` -DCMAKE_CXX_COMPILER=`which g++` .. # build python3 binding -pushd src/python/ -make -make install -popd -popd -popd -cp -r ${BCC_HOME}/build/src/python/bcc-python3/bcc/* ${DATACRUMBS_INSTALL_DIR}/lib/python3.12/site-packages/bcc/ -``` - -### Install DataCrumbs - -```bash -git clone git@github.com:hariharan-devarajan/datacrumbs.git ${DATACRUMBS_DIR} -pushd ${DATACRUMBS_DIR} -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} -DCMAKE_C_COMPILER=`which gcc` -DCMAKE_CXX_COMPILER=`which g++` .. -make install -j -chmod +x ${DATACRUMBS_INSTALL_DIR}/libexec/datacrumbs/bin/* -``` - -### Install Python Environment - -```bash -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -pip install --upgrade pip -pip install -r ${DATACRUMBS_DIR}/requirements/requirement.quokka.txt -``` - - -## Running the tool - -### Starting Server - -```bash -export DATACRUMBS_DIR=/proj/csc671/proj_shared/datacrumbs -cd ${DATACRUMBS_DIR}/scripts/quokka/server -source setup.sh -./init.sh -g -./run.sh -``` - -### Running Simple Test - -```bash -export DATACRUMBS_DIR=/proj/csc671/proj_shared/datacrumbs -cd ${DATACRUMBS_DIR}/scripts/quokka/client -source setup.sh -./tests/test_posix.sh -``` \ No newline at end of file diff --git a/etc/datacrumbs/systems/README.wombat.md b/etc/datacrumbs/systems/README.wombat.md deleted file mode 100755 index 48f76041..00000000 --- a/etc/datacrumbs/systems/README.wombat.md +++ /dev/null @@ -1,97 +0,0 @@ -# Readme for Wombat - -Location of Wombat system spack is `/autofs/nccs-svm1_wombat_sw/RHEL9.4/spack` - -Location of project_shared spack is `/proj/csc671/proj_shared/spack` - -GCC, Python, and OpenMPI have been added from system spack to project_spack to make sure we use the correct compilers for our dependency. - -## Installation - -### DataCrumbs - -All datacrumbs executables and dependencies would be installed in DATACRUMBS_INSTALL_DIR - -```bash -export DATACRUMBS_DIR=/proj/csc671/proj_shared/datacrumbs -export DATACRUMBS_INSTALL_DIR=/proj/csc671/proj_shared/datacrumbs/install -``` - -```bash -cd /proj/csc671/proj_shared/ -git clone git@github.com:hariharan-devarajan/datacrumbs.git -cd datacrumbs -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. -make install -j -cd - -``` - -### Test Dependencies - -#### Activate project spack - -```bash -source /proj/csc671/proj_shared/spack/share/spack/setup-env.sh -``` - -```bash -spack view --verbose symlink ${DATACRUMBS_INSTALL_DIR} ior@4.0.0+hdf5 ^hdf5@1.14.5 -``` - -```bash -spack load llvm@19.1.7 hdf5@1.14.5 ior@4.0.0 openmpi@5.0.5 cmake@3.30.2 -spack load gcc@13.2.0 -``` - -### Install Python Environment - -```bash -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -pip install --upgrade pip -pip install -r ${DATACRUMBS_DIR}/requirements.txt -pip install -r ${DATACRUMBS_DIR}/bcc_requirements.txt -``` - -### Install BCC - -```bash -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -BCC_HOME=/proj/csc671/proj_shared/bcc -git clone https://github.com/iovisor/bcc.git ${BCC_HOME} -pushd ${BCC_HOME} -mkdir build -pushd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. -make -j -make install -j -cmake -DPYTHON_CMD=python -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. # build python3 binding -pushd src/python/ -make -make install -popd -popd -popd -cp -r ${BCC_HOME}/build/src/python/bcc-python3/bcc/* ${DATACRUMBS_INSTALL_DIR}/lib/python3.12/site-packages/bcc/ -``` - -## Running the tool - -### Starting Server - -```bash -export DATACRUMBS_DIR=/proj/csc671/proj_shared/datacrumbs -source ${DATACRUMBS_DIR}/scripts/wombat/server/setup.sh -source ${DATACRUMBS_DIR}/scripts/wombat/server/init.sh -source ${DATACRUMBS_DIR}/scripts/wombat/server/run.sh -``` - -### Running Simple Test - -```bash -export DATACRUMBS_DIR=/proj/csc671/proj_shared/datacrumbs -export DATACRUMBS_INSTALL_DIR=/proj/csc671/proj_shared/datacrumbs/install -source ${DATACRUMBS_DIR}/scripts/wombat/client/setup.sh -source ${DATACRUMBS_DIR}/scripts/wombat/client/tests/test_posix.sh -``` \ No newline at end of file diff --git a/infrastructure/docker/Dockerfile b/infrastructure/docker/Dockerfile deleted file mode 100644 index 1deb1045..00000000 --- a/infrastructure/docker/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM hdevarajan92/datacrumbs:latest - -RUN mkdir -p /opt/datacrumbs -COPY . /opt/datacrumbs/ - -RUN . /opt/rh/gcc-toolset-11/enable && \ - mkdir -p datacrumbs-build && \ - rm -rf datacrumbs-build/* && \ - cd datacrumbs-build && \ - cmake -DDATACRUMBS_HOST=docker \ - -DDATACRUMBS_USER=root \ - -DDATACRUMBS_INSTALL_USER=docker \ - -DDATACRUMBS_KERNEL_HEADERS_PATH=/usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64 \ - -DCMAKE_PREFIX_PATH=/usr/lib64/openmpi \ - -DCMAKE_INSTALL_PREFIX=/opt/datacrumbs-install \ - /opt/datacrumbs/ && \ - make -j $(nproc) && \ - make install - -ENV PATH=/usr/lib64/openmpi/bin:/opt/datacrumbs/datacrumbs-build/bin:${PATH} -ENV LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:/opt/datacrumbs/datacrumbs-build/lib:${LD_LIBRARY_PATH} - -# Ensure docker user can access relevant directories under /opt -RUN mkdir -p /opt/datacrumbs /opt/datacrumbs-install && \ - chown -R docker:docker /opt/datacrumbs /opt/datacrumbs-install && \ - chmod 0755 /opt - -USER docker - -WORKDIR /opt/datacrumbs - -# By default, run bash. eBPF programs require --privileged and --cap-add=ALL when running the container. -CMD ["/bin/bash"] \ No newline at end of file diff --git a/infrastructure/docker/Dockerfile.build b/infrastructure/docker/Dockerfile.build deleted file mode 100644 index 20751e6c..00000000 --- a/infrastructure/docker/Dockerfile.build +++ /dev/null @@ -1,116 +0,0 @@ -FROM centos:centos8 - -# Update CentOS 8 repositories (CentOS 8 is EOL, use vault) -RUN cd /etc/yum.repos.d/ && \ - sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \ - sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* - -# 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 \ - clang \ - llvm \ - patchelf \ - sudo \ - elfutils-libelf-devel \ - kernel-devel \ - kernel-headers \ - make \ - iproute \ - iputils \ - git \ - vim-enhanced \ - which \ - python3-pip \ - cmake \ - llvm-devel \ - clang-devel \ - gcc-toolset-11 \ - jq \ - time - -# Install Development Tools group -RUN dnf group install -y "Development Tools" - -# Set up working directory -WORKDIR /opt - -# Build and install bpftool and libbpf -RUN . /opt/rh/gcc-toolset-11/enable && \ - git clone --recurse-submodules https://github.com/libbpf/bpftool.git && \ - cd bpftool && \ - git checkout tags/v7.5.0 && \ - cd libbpf && \ - git checkout tags/v1.5.0 && \ - cd /opt/bpftool/libbpf/src && \ - make -j && \ - make install && \ - cd /opt/bpftool/src && \ - make -j && \ - make install - -# Build and install yaml-cpp -RUN . /opt/rh/gcc-toolset-11/enable && \ - git clone https://github.com/jbeder/yaml-cpp.git && \ - cd yaml-cpp && \ - git checkout tags/yaml-cpp-0.7.0 && \ - mkdir build && \ - cd build && \ - cmake -DYAML_BUILD_SHARED_LIBS=ON -DYAML_CPP_BUILD_TESTS=OFF .. && \ - make -j && \ - make install - -# Build and install json-c -RUN . /opt/rh/gcc-toolset-11/enable && \ - git clone https://github.com/json-c/json-c.git && \ - cd json-c && \ - git checkout tags/json-c-0.15-20200726 && \ - mkdir build && \ - cd build && \ - cmake .. && \ - make -j && \ - make install - -# Update library path -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" - -# Create entrypoint script -RUN echo '#!/bin/bash' > /entrypoint.sh && \ - echo '. /opt/rh/gcc-toolset-11/enable' >> /entrypoint.sh && \ - echo 'exec "$@"' >> /entrypoint.sh && \ - chmod +x /entrypoint.sh - -# Set the entrypoint -ENTRYPOINT ["/entrypoint.sh"] - -# By default, run bash -CMD ["/bin/bash"] - -# Add labels for better container management -LABEL maintainer="DataCrumbs Team" -LABEL description="DataCrumbs eBPF-based data provenance tracking system" -LABEL version="1.0" diff --git a/infrastructure/docker/README.md b/infrastructure/docker/README.md deleted file mode 100644 index 2c5fcc4a..00000000 --- a/infrastructure/docker/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Notes - -```bash - -``` \ No newline at end of file diff --git a/infrastructure/docker/build-multiarch.sh b/infrastructure/docker/build-multiarch.sh deleted file mode 100755 index 7e7cd574..00000000 --- a/infrastructure/docker/build-multiarch.sh +++ /dev/null @@ -1,221 +0,0 @@ -#!/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 " --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 " --run Run the container after loading (implies --load)" - 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/infrastructure/docker/test_run.sh b/infrastructure/docker/test_run.sh index 5b536ccf..18cac29b 100755 --- a/infrastructure/docker/test_run.sh +++ b/infrastructure/docker/test_run.sh @@ -1,5 +1,76 @@ #!/bin/bash -set -x -source /opt/datacrumbs-install/bin/datacrumbs_setup --verbose -datacrumbs_create_log_dir --verbose -datacrumbs_run --verbose --app "datacrumbs_wrap dd if=/dev/zero of=/tmp/img_temp.bat bs=1M count=16" + +set -euo pipefail + +REPO_ROOT="/opt/datacrumbs" +BUILD_DIR="${REPO_ROOT}/datacrumbs-build" +INSTALL_PREFIX="/opt/datacrumbs-install" +CONFIG_YAML="${INSTALL_PREFIX}/etc/datacrumbs/configs/docker.yaml" +PROBE_FILE="/tmp/datacrumbs-docker-probes.json.gz" +JOB_ID="1" +SERVICE_USER="docker" +OUT_FILE="/tmp/img_temp.bin" +READY_FILE="/var/run/datacrumbs/datacrumbs-${JOB_ID}.ready" +DATACRUMBS_PID="" + +set +u +. /opt/rh/gcc-toolset-11/enable +set -u +mkdir -p "${BUILD_DIR}" +cd "${BUILD_DIR}" +cmake -DDATACRUMBS_HOST=docker \ + -DDATACRUMBS_USER=root \ + -DDATACRUMBS_INSTALL_USER=docker \ + -DDATACRUMBS_KERNEL_HEADERS_PATH=/usr/src/kernels/4.18.0-348.7.1.el8_5.x86_64 \ + -DCMAKE_PREFIX_PATH=/usr/lib64/openmpi \ + -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" \ + "${REPO_ROOT}" +cmake --build . -j"$(nproc)" +cmake --install . + +test -f "${CONFIG_YAML}" + +"${INSTALL_PREFIX}/bin/datacrumbs_probe_configurator" "${CONFIG_YAML}" "${PROBE_FILE}" +test -f "${PROBE_FILE}" + +start_datacrumbs() { + if command -v systemctl >/dev/null 2>&1 && [[ -d /run/systemd/system ]]; then + "${INSTALL_PREFIX}/bin/datacrumbs_service_wrapper" start "${JOB_ID}" "${SERVICE_USER}" "${PROBE_FILE}" + trap '"${INSTALL_PREFIX}/bin/datacrumbs_service_wrapper" stop "${JOB_ID}" "${SERVICE_USER}" "${PROBE_FILE}" || true' EXIT + return 0 + fi + + rm -f "${READY_FILE}" + "${INSTALL_PREFIX}/sbin/datacrumbs" "${PROBE_FILE}" "${JOB_ID}" & + DATACRUMBS_PID="$!" + trap 'if [[ -n "${DATACRUMBS_PID}" ]]; then kill -INT "${DATACRUMBS_PID}" 2>/dev/null || true; wait "${DATACRUMBS_PID}" 2>/dev/null || true; fi' EXIT + + for _ in $(seq 1 300); do + [[ -f "${READY_FILE}" ]] && return 0 + sleep 1 + done + echo "datacrumbs did not become ready" >&2 + return 1 +} + +stop_datacrumbs() { + if [[ -n "${DATACRUMBS_PID}" ]]; then + kill -INT "${DATACRUMBS_PID}" 2>/dev/null || true + wait "${DATACRUMBS_PID}" 2>/dev/null || true + DATACRUMBS_PID="" + return 0 + fi + "${INSTALL_PREFIX}/bin/datacrumbs_service_wrapper" stop "${JOB_ID}" "${SERVICE_USER}" "${PROBE_FILE}" +} + +# start_datacrumbs + +rm -f "${OUT_FILE}" +"${INSTALL_PREFIX}/bin/datacrumbs_wrap" \ + dd if=/dev/zero of="${OUT_FILE}" bs=1M count=16 status=none + +test -f "${OUT_FILE}" +test "$(wc -c <"${OUT_FILE}")" = "16777216" + +# stop_datacrumbs +trap - EXIT diff --git a/infrastructure/lima/README.md b/infrastructure/lima/README.md deleted file mode 100755 index d2881577..00000000 --- a/infrastructure/lima/README.md +++ /dev/null @@ -1,95 +0,0 @@ -# Lima eBPF Environment - -This is for running an environment for development with Lima - -## Usage -DataCrumbs is currently unstable on aarch64. Install QEMU alongside Lima if you are using macOS. -To set up your Lima for the first time: -```bash -limactl start --network=lima:user-v2 --name=ebpf lima/ebpf.yaml -``` - -If you are coming back to it from later: - -```bash -limactl start ebpf -``` -To connect to the Lima shell: -```bash -limactl shell ebpf -``` -## Setting up dependencies -### Environmental variables -```bash -export SPACK_DIR=/home/lima.linux/spack -export DATACRUMBS_DIR=/home/lima.linux/datacrumbs -export DATACRUMBS_INSTALL_DIR=/home/lima.linux/datacrumbs/install -``` -### cloning the repo -```bash -git clone git@github.com:hariharan-devarajan/datacrumbs.git ${DATACRUMBS_DIR} -``` -### Setup spack -```bash -cd ${DATACRUMBS_DIR}/scripts/lima -./install_env.sh -``` -*If you set up Lima on aarch64, you might not be able to install HDF5 with spack. You can install with `apt` or from scratch. - - -### Python dependencies -```bash -python3 -m venv --system-site-packages ${DATACRUMBS_INSTALL_DIR} -source ${DATACRUMBS_INSTALL_DIR}/bin/activate -cp ${DATACRUMBS_DIR}/requirements/requirement.chameleon.txt ${DATACRUMBS_DIR}/requirements/requirement.arta_lima.txt -pip install -r ${DATACRUMBS_DIR}/requirements/requirement.chameleon.txt -``` -If the clang in Python is not compatible with the system's clang, upgrade the lower version to the exact higher version. - -### setting up DataCrumbs -```bash -cd ${DATACRUMBS_DIR} -mkdir build -cd build -cmake -DCMAKE_INSTALL_PREFIX=${DATACRUMBS_INSTALL_DIR} .. -make install -j -``` -To make sure files are executable: -```bash -chmod +x ~/datacrumbs/install/libexec/datacrumbs/bin/* -``` -## Running the tool -Check `${DATACRUMBS_DIR}/datacrumbs/configs/module/default.yaml` and make necessary changes or write your desired model. -*scripts in `lima/server` and `lima/clients` are using a HDF5 built from source. -```bash -sudo su -source ${DATACRUMBS_DIR}/scripts/lima/server/setup.sh -. ${DATACRUMBS_DIR}/scripts/lima/server/init.sh -g -``` - -### Starting Server - -```bash -source ${DATACRUMBS_DIR}/scripts/lima/server/setup.sh -. ${DATACRUMBS_DIR}/scripts/lima/server/run.sh -``` - -### Running Simple Test - -```bash -source ${DATACRUMBS_DIR}/scripts/lima/client/setup.sh -. ${DATACRUMBS_DIR}/scripts/lima/client/tests/test_hdf5.sh -``` -## Clean Up - -You can stop: - -```bash -limactl stop ebpf -``` - -Or just nuke it! - -```bash -limactl delete ebpf -``` diff --git a/infrastructure/lima/ebpf.yaml b/infrastructure/lima/ebpf.yaml deleted file mode 100755 index 36837e75..00000000 --- a/infrastructure/lima/ebpf.yaml +++ /dev/null @@ -1,64 +0,0 @@ -# This example requires Lima v0.8.0 or later -images: - - location: "https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-amd64.img" - arch: "x86_64" - - location: "https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-arm64.img" - arch: "aarch64" - -cpus: 4 -memory: "4GiB" - -mounts: - - location: "~" - writable: true - - location: "/tmp/lima" - writable: true -provision: - - mode: system - script: | - #!/bin/bash - apt-get update - apt-get install -y apt-transport-https ca-certificates curl clang llvm jq - apt-get install -y libelf-dev libpcap-dev libbfd-dev binutils-dev build-essential make - apt-get install -y linux-tools-common linux-tools-$(uname -r) - apt-get install -y bpfcc-tools - apt-get install -y python3-pip python3.10-venv - # Install bcc - sudo apt install -y zip bison build-essential cmake flex git libedit-dev \ - libllvm14 llvm-14-dev libclang-14-dev python3 zlib1g-dev libelf-dev libfl-dev python3-setuptools \ - liblzma-dev libdebuginfod-dev arping netperf iperf - # for vscode - apt install -y clangd - # install bcc - BCC_HOME=/opt/bcc - rm -rf ${BCC_HOME} - git clone https://github.com/iovisor/bcc.git ${BCC_HOME} - mkdir ${BCC_HOME}/build - pushd ${BCC_HOME}/build - cmake .. - make -j2 - make install -j - cmake -DPYTHON_CMD=python3 .. # build python3 binding - pushd src/python/ - make - make install - popd - popd - cp -r ${BCC_HOME}/build/src/python/bcc-python3/bcc/* /usr/lib/python3/dist-packages/bcc/ - chmod 777 ${BCC_HOME} - - # install openmpi - apt-get install -y hwloc libtool openssl libssl-dev gfortran gcc g++ - SPACK_ROOT=/opt/spack - git clone https://github.com/spack/spack.git ${SPACK_ROOT} - source ${SPACK_ROOT}/share/spack/setup-env.sh - spack external find - spack compiler find - spack install -j4 openmpi@5.0.5 - chmod 777 /opt -R - - - mode: user - script: | - #!/bin/bash - sudo cp -r /root/.spack ~/ - sudo chown $USER ~/.spack -R diff --git a/scripts/datacrumbs/datacrumbs_args.in b/scripts/datacrumbs/datacrumbs_args.in deleted file mode 100755 index 3ab704bd..00000000 --- a/scripts/datacrumbs/datacrumbs_args.in +++ /dev/null @@ -1,668 +0,0 @@ -#! /usr/bin/env bash -# datacrumbs_args.in - reusable getopt-based argument parsing helpers - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ -# Fallback to script directory if placeholder wasn't substituted -if [[ -z "$SCRIPT_DIR" || "$SCRIPT_DIR" == @DATACRUMBS_INSTALL_BINARYDIR@ ]]; then - SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)" -fi - -# Load logging script if available; warn but do not exit if missing -if [[ -f "$SCRIPT_DIR/datacrumbs_logging" ]]; then - source "$SCRIPT_DIR/datacrumbs_logging" -else - echo "Error: datacrumbs_logging not found in $SCRIPT_DIR" - exit 1 -fi - -# Ensure GNU getopt is available -dc__ensure_gnu_getopt() { - if ! command -v getopt >/dev/null 2>&1; then - error "'getopt' not found. Please install GNU getopt." - return 127 - fi - # GNU getopt returns status 4 with --test/-T - getopt --test >/dev/null 2>&1 - local rc=$? - if [[ $rc -ne 4 ]]; then - error "Enhanced GNU getopt not available. Please install GNU getopt." - return 127 - fi -} - -# Case helpers -dc__upper() { tr '[:lower:]' '[:upper:]'; } -dc__lower() { tr '[:upper:]' '[:lower:]'; } - -# Make VAR name from prefix + long option (convert - to _ and uppercase) -dc__make_var_name() { - local prefix="$1" opt="$2" - local p u - p="$(echo -n "$prefix" | dc__upper)" - u="$(echo -n "$opt" | tr '-' '_' | dc__upper)" - printf "%s_%s" "$p" "$u" -} - -# Make global (unprefixed) VAR name from long option -dc__make_global_var_name() { - local opt="$1" - echo -n "$opt" | tr '-' '_' | dc__upper -} - -# Declare a global variable name and set value -dc__setvar() { - local varname="$1" val="${2-}" - declare -g "$varname" - printf -v "$varname" '%s' "$val" -} - -# Declare a global variable but preserve existing value if already set -dc__declvar_preserve() { - local varname="$1" def="${2-}" - declare -g "$varname" - if [[ "${!varname+x}" != x ]]; then - printf -v "$varname" '%s' "$def" - fi -} - -# Bind per-prefix spec arrays via namerefs -# NOTE: declare -n without 'local' so namerefs are visible to caller -dc__bind_spec() { - local prefix="$1" - declare -gn N="__dc_${prefix}_names" - declare -gn R="__dc_${prefix}_reqs" - declare -gn T="__dc_${prefix}_types" - declare -gn D="__dc_${prefix}_descs" - declare -gn V="__dc_${prefix}_varnames" - declare -gn DF="__dc_${prefix}_defs" - declare -gn IDX="__dc_${prefix}_index_by_name" - declare -gn PN="__dc_${prefix}_pos_names" - declare -gn PR="__dc_${prefix}_pos_reqs" - declare -gn PD="__dc_${prefix}_pos_descs" - declare -gn PV="__dc_${prefix}_pos_varnames" - declare -gn SUBCMDS="__dc_${prefix}_subcommands" - declare -gn SUBCMD_OPT="__dc_${prefix}_subcommand_option" -} - -# Initialize per-prefix argument spec arrays and add common options -# Usage: dc_args_init PREFIX -dc_args_init() { - local prefix="$1" - [[ -z "$prefix" ]] && { - error "dc_args_init: missing prefix" - return 64 - } - - # Define the arrays for this prefix - declare -ga "__dc_${prefix}_names=()" - declare -ga "__dc_${prefix}_reqs=()" - declare -ga "__dc_${prefix}_types=()" - declare -ga "__dc_${prefix}_descs=()" - declare -ga "__dc_${prefix}_varnames=()" - declare -ga "__dc_${prefix}_defs=()" - declare -gA "__dc_${prefix}_index_by_name=()" - - # Positional arguments spec (names, req flags, descriptions, varnames) - declare -ga "__dc_${prefix}_pos_names=()" - declare -ga "__dc_${prefix}_pos_reqs=()" - declare -ga "__dc_${prefix}_pos_descs=()" - declare -ga "__dc_${prefix}_pos_varnames=()" - - # Subcommand support: store conditional requirements - # Maps option names to required subcommand values and their required options - declare -gA "__dc_${prefix}_subcommands=()" - declare -g "__dc_${prefix}_subcommand_option=" - - # Add common inherited options (optional bools) for every app - dc__ensure_common_options "$prefix" -} - -# Core adder (nameref-based, reliable) -dc__add_option_core() { - local prefix="$1" opt="$2" req="$3" desc="$4" type="$5" varname="$6" default="${7-}" - dc__bind_spec "$prefix" - # Avoid duplicate option registration - if [[ -n "${IDX[$opt]+_}" ]]; then - return 0 - fi - local i - i="${#N[@]}" - N[i]="$opt" - R[i]="$req" - T[i]="$type" - D[i]="$desc" - V[i]="$varname" - DF[i]="$default" - IDX["$opt"]="$i" - # Do not force initial value; allow parse to set defaults and normalize - dc__declvar_preserve "$varname" "" -} -# Add an option to the spec: NAME MANDATORY|OPTIONAL DESCRIPTION [TYPE] -# TYPE defaults to "string". Supported: string, int, bool -dc_args_add_option() { - local prefix="$1" opt="$2" req="$3" desc="$4" type="${5:-string}" default="${6-}" - [[ -z "$prefix" || -z "$opt" || -z "$req" ]] && { - error "dc_args_add_option: missing args" - exit 1 - } - case "$req" in - MANDATORY | OPTIONAL) ;; - *) - error "dc_args_add_option: req must be MANDATORY or OPTIONAL" - exit 1 - ;; - esac - case "$type" in - string | int | bool) ;; - *) - error "dc_args_add_option: unsupported type '$type'" - exit 1 - ;; - esac - local var - var="$(dc__make_var_name "$prefix" "$opt")" - dc__add_option_core "$prefix" "$opt" "$req" "$desc" "$type" "$var" "$default" -} - -# Add a positional argument to the spec: NAME MANDATORY|OPTIONAL DESCRIPTION -dc_args_add_positional() { - local prefix="$1" name="$2" req="$3" desc="$4" - [[ -z "$prefix" || -z "$name" || -z "$req" ]] && { - error "dc_args_add_positional: missing args" - return 64 - } - case "$req" in - MANDATORY | OPTIONAL) ;; - *) - error "dc_args_add_positional: req must be MANDATORY or OPTIONAL" - return 64 - ;; - esac - dc__bind_spec "$prefix" - local i - i="${#PN[@]}" - PN[i]="$name" - PR[i]="$req" - PD[i]="$desc" - local var - var="$(dc__make_var_name "$prefix" "$name")" - PV[i]="$var" - dc__declvar_preserve "$var" "" -} - -# Add global inherited bool (unprefixed) if missing -dc__add_global_bool() { - local prefix="$1" opt="$2" desc="$3" - dc__bind_spec "$prefix" - if [[ -n "${IDX[$opt]+_}" ]]; then return 0; fi - local var - var="$(dc__make_global_var_name "$opt")" - dc__add_option_core "$prefix" "$opt" "OPTIONAL" "$desc" "bool" "$var" "" -} - -# Ensure the common inherited options exist for this prefix -dc__ensure_common_options() { - local prefix="$1" - dc__add_global_bool "$prefix" "verbose" "Enable verbose output" - dc__add_global_bool "$prefix" "quiet" "Suppress non-error output" - dc__add_global_bool "$prefix" "dry-run" "Show what would be done, without making changes" - dc__add_global_bool "$prefix" "help" "Show this help and exit" -} - -# Register subcommand-specific required options -# Usage: dc_args_add_subcommand PREFIX OPTION_NAME SUBCOMMAND_VALUE REQUIRED_OPTIONS... -# Example: dc_args_add_subcommand "MYAPP" "action" "compose" "name" "probes" -# When --action=compose, then --name and --probes become MANDATORY -dc_args_add_subcommand() { - local prefix="$1" option="$2" value="$3" - shift 3 - local required_opts=("$@") - - [[ -z "$prefix" || -z "$option" || -z "$value" ]] && { - error "dc_args_add_subcommand: missing prefix, option, or value" - return 64 - } - - dc__bind_spec "$prefix" - - # Store the subcommand option if not already set - if [[ -z "$SUBCMD_OPT" ]]; then - SUBCMD_OPT="$option" - elif [[ "$SUBCMD_OPT" != "$option" ]]; then - error "dc_args_add_subcommand: cannot use multiple subcommand options ($SUBCMD_OPT vs $option)" - return 64 - fi - - # Store the required options for this subcommand value - # Format: "value:opt1,opt2,opt3" - local opts_str - opts_str="$( - IFS=',' - echo "${required_opts[*]}" - )" - SUBCMDS["$value"]="$opts_str" -} - -# Build long option string for getopt -dc__build_longopts() { - local prefix="$1" - dc__bind_spec "$prefix" - local i long="" - for ((i = 0; i < ${#N[@]}; ++i)); do - if [[ "${T[i]}" == "bool" ]]; then - long+="${N[i]}," - else - long+="${N[i]}:," - fi - done - printf "%s" "${long%,}" -} - -# Print usage with positional suffix and grouped options -dc_args_usage() { - local prefix="$1" prog="$2" - [[ -z "$prog" ]] && prog="$0" - dc__bind_spec "$prefix" - - local i pos_usage="" - for ((i = 0; i < ${#PN[@]}; ++i)); do - if [[ "${PR[i]}" == "MANDATORY" ]]; then - pos_usage+=" ${PN[i]}" - else - pos_usage+=" [${PN[i]}]" - fi - done - - log "Usage: $prog [OPTIONS]${pos_usage} -- [args...]" - log "" - local print_group - print_group() { - local want="$1" header="$2" - local any=0 i - for ((i = 0; i < ${#N[@]}; ++i)); do - if [[ "${R[i]}" == "$want" ]]; then - ((any == 0)) && { - log "$header" - any=1 - } - # Determine conditional requirement note based on subcommands - local note="" - if [[ -n "$SUBCMD_OPT" ]]; then - local __vals=() - local __k - for __k in "${!SUBCMDS[@]}"; do - local __opts_str="${SUBCMDS[$__k]}" - IFS=',' read -ra __opts <<<"$__opts_str" - local __o - for __o in "${__opts[@]}"; do - if [[ "$__o" == "${N[i]}" ]]; then - __vals+=("$__k") - break - fi - done - done - if ((${#__vals[@]} > 0)); then - # 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 - log " --%-18s %s%s\n" "${N[i]}" "${D[i]}" "$note" - else - log " --%-18s %s%s\n" "${N[i]} <${T[i]}>" "${D[i]}" "$note" - fi - fi - done - ((any == 1)) && log "" - } - print_group "MANDATORY" "Mandatory options:" - print_group "OPTIONAL" "Optional options:" - - if ((${#PN[@]} > 0)); then - log "Positional arguments:" - for ((i = 0; i < ${#PN[@]}; ++i)); do - log " %-20s %s" "${PN[i]}" "${PD[i]}" - done - log "" - fi -} - -dc_args_show_help() { - local prefix="$1" prog="$2" - [[ -z "$prefix" ]] && { - log "dc_args_show_help: missing prefix" - exit 1 - } - [[ -z "$prog" ]] && prog="$0" - dc_args_usage "$prefix" "$prog" -} - -dc__normalize_bool_var() { - local varname="$1" v lc - v="${!varname}" - lc="$(echo -n "${v:-}" | dc__lower)" - case "$lc" in - 1 | true | t | yes | y | on) dc__setvar "$varname" "1" ;; - 0 | false | f | no | n | off | "") dc__setvar "$varname" "0" ;; - *) dc__setvar "$varname" "0" ;; - esac -} - -dc__validate_value() { - local type="$1" value="$2" - case "$type" in - int) - [[ "$value" =~ ^-?[0-9]+$ ]] || { - error "expects integer, got '$value'" - return 1 - } - ;; - string | bool | *) ;; - esac - return 0 -} - -dc_args_parse() { - local prefix="$1" prog="$2" - shift 2 || true - - dc__ensure_gnu_getopt || return $? - - local longopts - longopts="$(dc__build_longopts "$prefix")" - local parsed - if ! parsed="$(getopt --name "$prog" --options "" --longoptions "$longopts" -- "$@")"; then - log "" - dc_args_usage "$prefix" "$prog" - exit 1 - fi - eval "set -- $parsed" - - dc__bind_spec "$prefix" - local i var - for ((i = 0; i < ${#N[@]}; ++i)); do - var="${V[i]}" - if [[ "${T[i]}" == "bool" ]]; then - # If a non-empty value already exists (e.g., from environment), normalize it. - if [[ -n "${!var-}" ]]; then - dc__normalize_bool_var "$var" - else - # Otherwise, initialize from default if provided; fallback to 0. - if [[ -n "${DF[i]-}" ]]; then - dc__setvar "$var" "${DF[i]}" - dc__normalize_bool_var "$var" - else - dc__setvar "$var" "0" - fi - fi - else - # Initialize non-bool to default if provided; else empty - if [[ -n "${DF[i]-}" ]]; then - dc__setvar "$var" "${DF[i]}" - else - dc__setvar "$var" "" - fi - fi - done - - while true; do - case "$1" in - --) - shift - break - ;; - --*) - local opt="${1#--}" - local idx="${IDX[$opt]}" - local type varname - type="${T[idx]}" - varname="${V[idx]}" - if [[ "$type" == "bool" ]]; then - dc__setvar "$varname" "1" - shift - else - if [[ -z "${2-}" ]]; then - error "--$opt requires a value" - log "" - dc_args_usage "$prefix" "$prog" - exit 1 - fi - if ! err="$(dc__validate_value "$type" "$2" 2>&1)"; then - error "--$opt $err" - log "" - dc_args_usage "$prefix" "$prog" - exit 1 - fi - dc__setvar "$varname" "$2" - shift 2 - fi - ;; - *) break ;; - esac - done - - local argsvar - argsvar="$(echo -n "${prefix}_ARGS" | dc__upper)" - declare -ga "$argsvar" - local -n __dc_args_ref="$argsvar" - __dc_args_ref=() - while (($#)); do - __dc_args_ref+=("$1") - shift - done - - local missing_pos=() - for ((i = 0; i < ${#PN[@]}; ++i)); do - local name="${PN[i]}" req="${PR[i]}" pvar="${PV[i]}" - local val="${__dc_args_ref[i]-}" - dc__setvar "$pvar" "${val-}" - if [[ "$req" == "MANDATORY" && -z "${val-}" ]]; then missing_pos+=("$name"); fi - done - if ((${#missing_pos[@]} > 0)); then - error "missing mandatory positional argument(s): ${missing_pos[*]}" - log "" - dc_args_usage "$prefix" "$prog" - exit 1 - fi - - # Defaults were initialized prior to parsing; no further action needed here. - - if [[ "${HELP:-0}" == "1" ]]; then - dc_args_show_help "$prefix" "$prog" - exit 0 - fi - - if [[ "${QUIET:-0}" == "1" ]]; then dc__setvar "VERBOSE" "0"; fi - if [[ "${VERBOSE:-0}" == "1" ]]; then dc__setvar "QUIET" "0"; fi - - local missing=() - for ((i = 0; i < ${#N[@]}; ++i)); do - if [[ "${R[i]}" == "MANDATORY" ]]; then - var="${V[i]}" - local v - v="${!var}" - if [[ "${T[i]}" == "bool" ]]; then - [[ "$v" == "1" ]] || missing+=("--${N[i]}") - else [[ -n "$v" ]] || missing+=("--${N[i]}"); fi - fi - done - if ((${#missing[@]} > 0)); then - error "missing mandatory option(s): ${missing[*]}" - log "" - dc_args_usage "$prefix" "$prog" - exit 1 - fi - - # Validate subcommand-specific requirements - if [[ -n "$SUBCMD_OPT" ]]; then - # Get the subcommand option's variable name and value - local subcmd_var - subcmd_var="$(dc__make_var_name "$prefix" "$SUBCMD_OPT")" - local subcmd_val - subcmd_val="${!subcmd_var}" - - # Check if this subcommand value has specific requirements - if [[ -n "${SUBCMDS[$subcmd_val]+_}" ]]; then - local required_opts_str="${SUBCMDS[$subcmd_val]}" - IFS=',' read -ra required_opts <<<"$required_opts_str" - - local subcmd_missing=() - for req_opt in "${required_opts[@]}"; do - # Find this option in the spec - if [[ -n "${IDX[$req_opt]+_}" ]]; then - local req_idx="${IDX[$req_opt]}" - local req_var="${V[req_idx]}" - local req_val="${!req_var}" - - if [[ -z "$req_val" ]]; then - subcmd_missing+=("--$req_opt") - fi - fi - done - - if ((${#subcmd_missing[@]} > 0)); then - error "subcommand '$subcmd_val' requires: ${subcmd_missing[*]}" - log "" - dc_args_usage "$prefix" "$prog" - exit 1 - fi - fi - fi - - if [[ "${VERBOSE:-0}" == "1" ]]; then - dc_args_pretty_print "$prefix" "$prog" - fi -} - -dc_args_pretty_print() { - local prefix="$1" prog="$2" - [[ -z "$prefix" ]] && { - error "dc_args_pretty_print: missing prefix" - return 64 - } - [[ -z "$prog" ]] && prog="$0" - dc__bind_spec "$prefix" - debug "$prog arguments:" - debug "" - local i max=0 - for ((i = 0; i < ${#N[@]}; ++i)); do ((${#N[i]} > max)) && max=${#N[i]}; done - local print_group - print_group() { - local want="$1" header="$2" any=0 - for ((i = 0; i < ${#N[@]}; ++i)); do - if [[ "${R[i]}" == "$want" ]]; then - ((any == 0)) && { - debug "$header" - any=1 - } - local var val disp - var="${V[i]}" - val="${!var}" - disp="" - # Compute conditional requirement note for this option (if any) - local note="" - if [[ -n "$SUBCMD_OPT" ]]; then - local __vals=() __k - for __k in "${!SUBCMDS[@]}"; do - local __opts_str="${SUBCMDS[$__k]}" - IFS=',' read -ra __opts <<<"$__opts_str" - local __o - for __o in "${__opts[@]}"; do - if [[ "$__o" == "${N[i]}" ]]; then - __vals+=("$__k") - break - fi - done - done - if ((${#__vals[@]} > 0)); then - # 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 - - if [[ "${T[i]}" == "bool" ]]; then - if [[ "$val" == "1" ]]; then val="true"; else val="false"; fi - debug " --%-*s : %s%s" "$max" "${N[i]}" "$val" "$note" - else - # Prefer actual value; if empty, fall back to default (if any) for display - if [[ -n "$val" ]]; then - disp="$val" - elif [[ -n "${DF[i]-}" ]]; then - disp="${DF[i]}" - else - disp="" - fi - if [[ -z "$disp" ]]; then - debug " --%-*s : %s%s" "$max" "${N[i]}" "" "$note" - else - local qv - printf -v qv "%q" "$disp" - debug " --%-*s : %s%s" "$max" "${N[i]}" "$qv" "$note" - fi - fi - fi - done - ((any == 1)) && debug "" - } - print_group "MANDATORY" "Mandatory options:" - print_group "OPTIONAL" "Optional options:" - local argsvar - argsvar="$(echo -n "${prefix}_ARGS" | dc__upper)" - local -n __dc_args_ref="$argsvar" - if ((${#__dc_args_ref[@]} > 0)); then - debug "Positional arguments:" - for ((i = 0; i < ${#__dc_args_ref[@]}; ++i)); do - local q - printf -v q "%q" "${__dc_args_ref[i]}" - debug " [%d] %s" "$i" "$q" - done - debug "" - fi -} - -# Example: -# dc_args_init "MYAPP" -# dc_args_add_option "MYAPP" "input" "MANDATORY" "Input file path" "string" -# dc_args_add_option "MYAPP" "count" "OPTIONAL" "Number of items" "int" -# dc_args_parse "MYAPP" "myprog" "$@" -# dc_args_pretty_print "MYAPP" "myprog" -# dc_args_usage "MYAPP" "myprog" -# echo "$MYAPP_INPUT" "$MYAPP_COUNT" "$VERBOSE" "$QUIET" "$DRY_RUN" -# -# Example with subcommands: -# dc_args_init "MYAPP" -# dc_args_add_option "MYAPP" "user" "MANDATORY" "User name" "string" -# dc_args_add_option "MYAPP" "action" "MANDATORY" "Action to perform (discover|compose)" "string" -# dc_args_add_option "MYAPP" "name" "OPTIONAL" "Resource name" "string" -# dc_args_add_option "MYAPP" "probes" "OPTIONAL" "Probe list" "string" -# # When action=compose, name and probes become mandatory -# dc_args_add_subcommand "MYAPP" "action" "compose" "name" "probes" -# dc_args_parse "MYAPP" "myprog" "$@" diff --git a/scripts/datacrumbs/datacrumbs_compose.in b/scripts/datacrumbs/datacrumbs_compose.in deleted file mode 100755 index ada16b87..00000000 --- a/scripts/datacrumbs/datacrumbs_compose.in +++ /dev/null @@ -1,138 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Load argument parser -if [[ -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - source "$SCRIPT_DIR/datacrumbs_args" -else - error "datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -APP="DATACRUMBS_COMPOSE" -dc_args_init "$APP" -dc_args_add_option "$APP" "action" "MANDATORY" "Action to perform: discover or compose" "string" -dc_args_add_option "$APP" "name" "OPTIONAL" "Composable name (required for compose)" "string" -dc_args_add_option "$APP" "probes" "OPTIONAL" "Comma-separated probe list (required for compose)" "string" -dc_args_add_subcommand "$APP" "action" "compose" "name" "probes" - -# If --help was requested, show help using the already-registered spec and exit -for __dc_a in "$@"; do - [[ "$__dc_a" == "--" ]] && break - if [[ "$__dc_a" == "--help" ]]; then - dc_args_show_help "$APP" "datacrumbs_compose" - exit 0 - fi -done - -dc_args_parse "$APP" "datacrumbs_compose" "$@" - -ACTION="${DATACRUMBS_COMPOSE_ACTION}" - -# Validate action -if [[ "$ACTION" != "compose" && "$ACTION" != "discover" ]]; then - error "--action must be either 'compose' or 'discover'." - dc_args_show_help "$APP" "datacrumbs_compose" - exit 1 -fi - -dc_args_pretty_print "$APP" "datacrumbs_compose" - -# Load environment after we know the user -source "$SCRIPT_DIR/datacrumbs_setup" - -check_sudo_user - -# Dry run support -DRY_RUN_MODE=0 -if [[ -n "${DRY_RUN}" && "${DRY_RUN}" != "0" ]]; then - DRY_RUN_MODE=1 - log "Dry-run mode active. Commands will be printed but not executed." -fi - -run() { - if [[ "$DRY_RUN_MODE" == "1" ]]; then - printf "[DRY-RUN]" - printf " %q" "$@" - printf "\n" - return 0 - else - "$@" - fi -} - -PROBE_OBJECTS_DIR="$DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR" - -if [[ "$ACTION" == "discover" ]]; then - log "Discovering probe objects in $PROBE_OBJECTS_DIR..." - for file in "$PROBE_OBJECTS_DIR"/*.o; do - fname=$(basename "$file") - if [[ "$fname" != "common.o" && "$fname" != "datacrumbs.bpf.o" && "$fname" != "init.o" ]]; then - log "${fname%.o}" - fi - done -elif [[ "$ACTION" == "compose" ]]; then - COMPOSABLE_NAME="${DATACRUMBS_COMPOSE_NAME}" - PROBES="${DATACRUMBS_COMPOSE_PROBES}" - - if [[ -z "$COMPOSABLE_NAME" || -z "$PROBES" ]]; then - error "--name and --probes are required for --action compose" - dc_args_pretty_print "$APP" "datacrumbs_compose" - exit 1 - fi - - IFS=',' read -ra PROBES_ARRAY <<<"$PROBES" - for probe in "${PROBES_ARRAY[@]}"; do - probe_file="${PROBE_OBJECTS_DIR}/${probe}.o" - if [[ ! -f "$probe_file" ]]; then - error "Probe object '$probe_file' not found." - exit 1 - fi - done - - log "Composing $COMPOSABLE_NAME for: ${DATACRUMBS_USER}" - 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}" - fi - - log "Creating build directory: ${BUILD_DIR}" - run mkdir -p "${BUILD_DIR}" - run chown "${DATACRUMBS_USER}:${DATACRUMBS_USER}" "${BUILD_DIR}" - - log "Running build process as ${DATACRUMBS_USER}" - run su - ${DATACRUMBS_USER} << 'EOF' - set -e - cp -r '${DATACRUMBS_INSTALL_COMPOSABLE_DIR}/'* '${BUILD_DIR}/' - @CMAKE_COMMAND@ -B'${BUILD_DIR}/build' -DCMAKE_INSTALL_PREFIX='${BUILD_DIR}/install' \ - -DDATACRUMBS_NAME='${COMPOSABLE_NAME}' \ - -DDATACRUMBS_PROBES='${PROBES}' \ - -DDATACRUMBS_CLIENT_OBJECTS_DIR='${DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR}' \ - '${BUILD_DIR}' - @CMAKE_COMMAND@ --build '${BUILD_DIR}/build' --target all -- -j - @CMAKE_COMMAND@ --install '${BUILD_DIR}/build' -EOF - if [[ $? -ne 0 ]]; then - error "Build process failed" - run rm -rf "${BUILD_DIR}" - exit 1 - fi - - log "Copying final binary to client bin" - run sudo -u ${DATACRUMBS_INSTALL_USER} mkdir -p "${DATACRUMBS_CLIENT_BIN}" - run rm -f "${DATACRUMBS_CLIENT_BIN}/datacrumbs_${COMPOSABLE_NAME}" - run cp "${BUILD_DIR}/install/sbin/datacrumbs_${COMPOSABLE_NAME}" "${DATACRUMBS_CLIENT_BIN}" - run chown ${DATACRUMBS_USER}:${DATACRUMBS_USER} "${DATACRUMBS_CLIENT_BIN}/datacrumbs_${COMPOSABLE_NAME}" - run chmod u+xr,o-rwx,g-rwx "${DATACRUMBS_CLIENT_BIN}/datacrumbs_${COMPOSABLE_NAME}" - run rm -rf "${BUILD_DIR}" - debug "Created composable binary at ${DATACRUMBS_CLIENT_BIN}/datacrumbs_${COMPOSABLE_NAME}" - log "Compose action completed successfully" -else - error "Invalid usage" - dc_args_pretty_print "$APP" "datacrumbs_compose" - exit 1 -fi diff --git a/scripts/datacrumbs/datacrumbs_compose_run.in b/scripts/datacrumbs/datacrumbs_compose_run.in deleted file mode 100755 index ddfb894d..00000000 --- a/scripts/datacrumbs/datacrumbs_compose_run.in +++ /dev/null @@ -1,102 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Check if datacrumbs_args exists in scripts directory -if [[ ! -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - echo "Error: datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -# Source argument parser -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" "${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" -dc_args_add_option "DATACRUMBS_COMPOSE_RUN" "ppn" "OPTIONAL" "Set processes per node" "int" "1" -dc_args_add_subcommand "DATACRUMBS_COMPOSE_RUN" "enable_mpi" "1" "nodes" "ppn" -# The rest of the arguments are arbitrary and will be captured as APP_ARGS - -# Parse arguments -dc_args_parse "DATACRUMBS_COMPOSE_RUN" "$0" "$@" - -if [[ $? -ne 0 ]]; then - echo "Error: Argument parsing failed." - show_help - exit 1 -fi - -DATACRUMBS_COMPOSABLE_NAME="${DATACRUMBS_COMPOSE_RUN_COMPOSITE_NAME:-}" -APP_CMD=("${DATACRUMBS_COMPOSE_RUN_APP}") -PROG_NAME=$(basename "$0") -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" || "$DATACRUMBS_COMPOSABLE_NAME" == "NONE" ]]; then - echo "Error: COMPOSITE_NAME argument is required." - show_help - exit 1 -fi - -if [[ -z "${DATACRUMBS_COMPOSE_RUN_APP}" ]]; then - echo "Error: APP command is required." - show_help - exit 1 -fi - -if ! validate_datacrumbs_composite_name "${DATACRUMBS_COMPOSABLE_NAME}"; then - error "Invalid composable name: ${DATACRUMBS_COMPOSABLE_NAME}" - exit 1 -fi - -# Convert APP_CMD string into array, splitting on spaces -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" -fi - -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 "DATACRUMBS_SERVER_READY_FILE: $DATACRUMBS_SERVER_READY_FILE" - -exec=("${DATACRUMBS_INSTALL_SBIN_DIR}/datacrumbs_compose_wrapper" "${DATACRUMBS_COMPOSABLE_NAME}") -debug "Starting datacrumbs server with exec: ${exec[*]}" -datacrumbs_start_server "${exec[*]}" - -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" -fi diff --git a/scripts/datacrumbs/datacrumbs_compose_wrapper.in b/scripts/datacrumbs/datacrumbs_compose_wrapper.in deleted file mode 100755 index 6940b393..00000000 --- a/scripts/datacrumbs/datacrumbs_compose_wrapper.in +++ /dev/null @@ -1,20 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Load environment -source "$SCRIPT_DIR/datacrumbs_setup" - -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} $@ diff --git a/scripts/datacrumbs/datacrumbs_create_log_dir.in b/scripts/datacrumbs/datacrumbs_create_log_dir.in deleted file mode 100755 index 9c1014d0..00000000 --- a/scripts/datacrumbs/datacrumbs_create_log_dir.in +++ /dev/null @@ -1,32 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Check if datacrumbs_args exists in scripts directory -if [[ ! -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - echo "Error: datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -# Source argument parser -source "$SCRIPT_DIR/datacrumbs_args" - -dc_args_init "DATACRUMBS" -dc_args_parse "DATACRUMBS" "datacrumbs_run" "$@" - -if [[ $? -ne 0 ]]; then - echo "Error: Argument parsing failed." - show_help - exit 1 -fi - -PROG_NAME=$(basename "$0") - -source $SCRIPT_DIR/datacrumbs_setup - -check_install_user - -mkdir -p $DATACRUMBS_TRACE_DIR -log "Created log directory: $DATACRUMBS_TRACE_DIR" diff --git a/scripts/datacrumbs/datacrumbs_logging.in b/scripts/datacrumbs/datacrumbs_logging.in deleted file mode 100755 index caddcedc..00000000 --- a/scripts/datacrumbs/datacrumbs_logging.in +++ /dev/null @@ -1,69 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -log() { - if [[ "${QUIET:-0}" == "0" ]]; then - printf "[INFO $(date '+%Y-%m-%d %H:%M:%S')] $@" - printf "\n" - fi -} - -debug() { - if [[ "${VERBOSE:-0}" == "1" ]] && [[ "${QUIET:-1}" == "0" ]]; then - printf "[DEBUG $(date '+%Y-%m-%d %H:%M:%S')] $@" - printf "\n" - fi -} - -error() { - printf "[ERROR $(date '+%Y-%m-%d %H:%M:%S')] $@" >&2 - printf "\n" >&2 -} - -warn() { - 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 deleted file mode 100755 index 19f954ef..00000000 --- a/scripts/datacrumbs/datacrumbs_run.in +++ /dev/null @@ -1,85 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Check if datacrumbs_args exists in scripts directory -if [[ ! -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - echo "Error: datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -# Source argument parser -source "$SCRIPT_DIR/datacrumbs_args" - -dc_args_init "DATACRUMBS" -dc_args_add_option "DATACRUMBS" "app" "MANDATORY" "App command" "string" -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" -dc_args_add_subcommand "DATACRUMBS" "enable_mpi" "1" "nodes" "ppn" - -dc_args_parse "DATACRUMBS" "datacrumbs_run" "$@" - -if [[ $? -ne 0 ]]; then - echo "Error: Argument parsing failed." - dc_args_show_help "DATACRUMBS" "datacrumbs_run" - exit 1 -fi - -if [[ -z "${DATACRUMBS_APP}" ]]; then - echo "Error: APP command is required." - dc_args_show_help "DATACRUMBS" "datacrumbs_run" - exit 1 -fi - -export DATACRUMBS_JOB_ENABLE_MPI=${DATACRUMBS_ENABLE_MPI:-0} -export DATACRUMBS_JOB_NODES=${DATACRUMBS_NODES:-1} -export DATACRUMBS_JOB_PPN=${DATACRUMBS_PPN:-1} - -# Convert APP_CMD string into array, splitting on spaces -read -ra APP_CMD <<<"${DATACRUMBS_APP}" - -PROG_NAME=$(basename "$0") - -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 - -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" - -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 deleted file mode 100755 index e3c8917b..00000000 --- a/scripts/datacrumbs/datacrumbs_run_validator.in +++ /dev/null @@ -1,34 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -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 - -log "Running datacrumbs_validator..." - -sudo @CMAKE_RUNTIME_OUTPUT_DIRECTORY@/datacrumbs_validator "@DATACRUMBS_HOST@" "--user" "@DATACRUMBS_INSTALL_USER@" "--config_path" "@CMAKE_CONFIG_OUTPUT_DIRECTORY@" "--data_dir" "@CMAKE_DATA_OUTPUT_DIRECTORY@" "--trace_log_dir" $PWD - -log "Copying probes-invalid JSON file..." -cp @CMAKE_DATA_OUTPUT_DIRECTORY@/probes-invalid-@DATACRUMBS_INSTALL_USER@-@DATACRUMBS_HOST@.json @CMAKE_CURRENT_SOURCE_DIR@/etc/datacrumbs/data - -log "Changing directory to data folder..." -cd @CMAKE_CURRENT_SOURCE_DIR@/etc/datacrumbs/data - -log "Running compact.sh..." -./compact.sh - -chown @DATACRUMBS_INSTALL_USER@:@DATACRUMBS_INSTALL_USER@ * - -log "Script completed." diff --git a/scripts/datacrumbs/datacrumbs_salloc.in b/scripts/datacrumbs/datacrumbs_salloc.in deleted file mode 100755 index bf8533e4..00000000 --- a/scripts/datacrumbs/datacrumbs_salloc.in +++ /dev/null @@ -1,117 +0,0 @@ -#!/bin/bash - -function usage() { - echo "Usage: $0 [SLURM_OPTIONS] [--datacrumbs-composite NAME]" - echo "" - echo "Datacrumbs salloc wrapper - adds datacrumbs metadata to enable Datacrumbs" - echo "" - echo "DATACRUMBS-SPECIFIC OPTIONS:" - echo " --datacrumbs-composite NAME Set a custom name for job tracking" - echo " (default: NONE)" - echo " --datacrumbs-enable Enable datacrumbs tracking" - echo "" - echo "NOTE" - echo " * The --comment flag is reserved for internal use" - echo "" - echo "EXAMPLES:" - echo " $0 -N 2 -p compute" - echo " $0 --datacrumbs-enable --datacrumbs-composite xfs_pagecache -N 1" - echo " $0 --datacrumbs-enable -t 1:00:00" - echo "" - echo "For comprehensive SLURM options, run: salloc -h" - exit 1 -} - -source @DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_setup - -DATACRUMBS_DRY_RUN=${DATACRUMBS_INPUT_DRY_RUN:-"no"} -if [[ ${DATACRUMBS_DRY_RUN} == "yes" ]]; then - warn_user "Dry run enabled" -fi - -# NOTE: must maintain a set of salloc to handle differently -# SALLOC_FLAGS=( comment: h help: ) -# NOTE: This is a placeholder to automatically generate the flag parsing -# right now it just keeps track of which flags to handle internally -# we probably don't need the getopt parsing since we are not overriding any salloc flags -# DATACRUMBS_FLAGS=(datacrumbs-composite datacrumbs-enable) -# EXCEPTION_FLAGS=(comment) -# SHORT_FLAG=$(printf '%s' "${SALLOC_FLAGS[@]//*:/}") -# LONG_FLAG=$( -# IFS=, -# echo "${SALLOC_FLAGS[*]}" ) -# PARSED=$(getopt -o "${SHORT_FLAG}" -l "${LONG_FLAG}" -n "$0" -- "$@") -# [[ $? -ne 0 ]] && echo "Parsing flags error " && exit 1 -# eval set -- "$PARSED" - -DATACRUMBS_ARGS=() -unset USER_COMMENT USER_COMPOSE -USER_ENABLE="no" -USER_COMPOSE=$(get_default_datacrumbs_composite_name) - -while [[ $# -gt 0 ]]; do - case "$1" in - # NOTE: have to manually add for each exception flag - --comment) - error "The system has disabled comments feature" - exit 1 - ;; - # NOTE: have to manually add for each internal flag - --datacrumbs-composite) - USER_COMPOSE=$2 - shift 2 - ;; - # NOTE: have to manually add for each internal flag - --datacrumbs-enable) - USER_ENABLE="yes" - shift 1 - ;; - --) - shift - break - ;; - -h | --help) usage ;; - *) - DATACRUMBS_ARGS+=("$1") - shift - ;; - esac -done -DATACRUMBS_ARGS+=("$@") - -if [[ -n "${USER_COMPOSE}" ]] && [[ "${USER_COMPOSE}" != "NONE" ]] && ! validate_datacrumbs_composite_name "${USER_COMPOSE}"; then - error "Not a valid datacrumbs composite name: ${USER_COMPOSE}" - exit 1 -fi - -USER_COMPOSE="${USER_COMPOSE// /}" -if [[ -z "${USER_COMPOSE}" ]]; then - USER_COMPOSE=$(get_default_datacrumbs_composite_name) -fi - -DATACRUMBS_COMPOSABLE_NAME="${USER_COMPOSE}" -DATACRUMBS_ENABLED="${USER_ENABLE}" - -DATACRUMBS_INPUTS=$(jq -n -c \ - --arg enable "${DATACRUMBS_ENABLED}" \ - --arg composite "${DATACRUMBS_COMPOSABLE_NAME}" \ - '{datacrumbs: {enable: $enable, composite: $composite}}') -# INFO: Validating JSON -echo "${DATACRUMBS_INPUTS}" | jq . || { - error "Invalid JSON: ${DATACRUMBS_INPUTS}" - exit 1 -} - -# INFO: Add the datacrumbs metadata as a comment -DATACRUMBS_ARGS+=(--comment "${DATACRUMBS_INPUTS}") - -info "Datacrumbs inputs: ${DATACRUMBS_INPUTS}" -info "Datacrumbs args: ${DATACRUMBS_ARGS[*]}" -if [[ ${DATACRUMBS_DRY_RUN} == "yes" ]]; then - info "Dry run enabled, exiting before salloc" - info "salloc ${DATACRUMBS_ARGS[*]}" - exit 0 -fi - -info "salloc ${DATACRUMBS_ARGS[*]}" -exec salloc "${DATACRUMBS_ARGS[@]}" diff --git a/scripts/datacrumbs/datacrumbs_server_run.sh.in b/scripts/datacrumbs/datacrumbs_server_run.sh.in deleted file mode 100755 index 6960ff72..00000000 --- a/scripts/datacrumbs/datacrumbs_server_run.sh.in +++ /dev/null @@ -1,62 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Check if datacrumbs_args exists in scripts directory -if [[ ! -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - echo "Error: datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -# Source argument parser -source "$SCRIPT_DIR/datacrumbs_args" - -dc_args_init "DATACRUMBS" -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" -dc_args_add_subcommand "DATACRUMBS" "enable-mpi" "1" "nodes" "ppn" - -dc_args_parse "DATACRUMBS" "datacrumbs_run" "$@" - -if [[ $? -ne 0 ]]; then - echo "Error: Argument parsing failed." - show_help - exit 1 -fi - -export DATACRUMBS_JOB_ENABLE_MPI=${DATACRUMBS_ENABLE_MPI:-0} -export DATACRUMBS_JOB_NODES=${DATACRUMBS_NODES:-1} -export DATACRUMBS_JOB_PPN=${DATACRUMBS_PPN:-1} - -PROG_NAME=$(basename "$0") - -source $SCRIPT_DIR/datacrumbs_setup - -if [[ "$DATACRUMBS_COMPOSITE_NAME" != "" ]] && [[ "$DATACRUMBS_COMPOSITE_NAME" != "NONE" ]]; then - if ! validate_datacrumbs_composite_name "${DATACRUMBS_COMPOSITE_NAME}"; then - error "Invalid composable name: ${DATACRUMBS_COMPOSITE_NAME}" - exit 1 - fi -fi - -check_sudo_user - -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 "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=() -if [[ "$DATACRUMBS_COMPOSITE_NAME" != "" ]] && [[ "$DATACRUMBS_COMPOSITE_NAME" != "NONE" ]]; then - exec=("${DATACRUMBS_INSTALL_SBIN_DIR}/datacrumbs_compose_wrapper" "${DATACRUMBS_COMPOSITE_NAME}") -else - exec=(@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs) -fi - -datacrumbs_start_server "${exec[*]}" diff --git a/scripts/datacrumbs/datacrumbs_server_stop.sh.in b/scripts/datacrumbs/datacrumbs_server_stop.sh.in deleted file mode 100755 index 296c4590..00000000 --- a/scripts/datacrumbs/datacrumbs_server_stop.sh.in +++ /dev/null @@ -1,69 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Check if datacrumbs_args exists in scripts directory -if [[ ! -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - echo "Error: datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -# Source argument parser -source "$SCRIPT_DIR/datacrumbs_args" - -dc_args_init "DATACRUMBS" -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" -dc_args_add_subcommand "DATACRUMBS" "enable-mpi" "1" "nodes" "ppn" - -dc_args_parse "DATACRUMBS" "datacrumbs_run" "$@" - -if [[ $? -ne 0 ]]; then - echo "Error: Argument parsing failed." - show_help - exit 1 -fi - -export DATACRUMBS_JOB_ENABLE_MPI=${DATACRUMBS_ENABLE_MPI:-0} -export DATACRUMBS_JOB_NODES=${DATACRUMBS_NODES:-1} -export DATACRUMBS_JOB_PPN=${DATACRUMBS_PPN:-1} - -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}" - exit 1 - fi -fi - -# Convert APP_CMD string into array, splitting on spaces -read -ra APP_CMD <<<"${DATACRUMBS_APP}" - -check_sudo_user - -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 "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=() -if [[ "$DATACRUMBS_COMPOSITE_NAME" != "" ]] && [[ "$DATACRUMBS_COMPOSITE_NAME" != "NONE" ]]; then - exec=("${DATACRUMBS_INSTALL_SBIN_DIR}/datacrumbs_compose_wrapper" "${DATACRUMBS_COMPOSITE_NAME}") -else - exec=(@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_SBINDIR@/datacrumbs) -fi - -datacrumbs_stop_server "${exec[*]}" $PROG_NAME - -datacrumbs_print_status - -datacrumbs_finalize $DATACRUMBS_USER $DATACRUMBS_TRACE_DIR diff --git a/scripts/datacrumbs/datacrumbs_service_common.sh.in b/scripts/datacrumbs/datacrumbs_service_common.sh.in old mode 100755 new mode 100644 index 883a78ad..19b80a6d --- a/scripts/datacrumbs/datacrumbs_service_common.sh.in +++ b/scripts/datacrumbs/datacrumbs_service_common.sh.in @@ -1,125 +1,303 @@ #!/bin/bash -set -e pipefail +set -eo pipefail -source @DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_setup +readonly DATACRUMBS_SERVICE_SCHEDULER_TYPE="@DATACRUMBS_SCHEDULER_TYPE@" +readonly DATACRUMBS_SERVICE_INSTALL_USER="@DATACRUMBS_INSTALL_USER@" +readonly DATACRUMBS_SERVICE_JOB_ID_VAR="@DATACRUMBS_SCHEDULER_JOBID_ENV_VAR@" +readonly DATACRUMBS_SERVICE_CONFIGS_DIR="@DATACRUMBS_INSTALL_CONFIGS_DIR@" +readonly DATACRUMBS_SERVICE_LOG_DIR="@DATACRUMBS_CONFIGURED_LOG_DIR@" +readonly DATACRUMBS_SERVICE_RUN_ID_FILE="@DATACRUMBS_INSTALL_RUNSTATEDIR@/@PROJECT_NAME@/datacrumbs.runid" -function get_general_datacrumbs_enabled() { - local enabled=${DATACRUMBS_ENABLED:-0} - enabled_value="no" - if [[ "${enabled}" -eq "1" ]]; then - enabled_value="yes" +log_system() { + local message="$*" + if [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "FLUX" && -n "${FLUX_JOB_ID:-}" ]]; then + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${FLUX_JOB_ID}] ${message}" + elif [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "SLURM" && -n "${SLURM_JOB_ID:-}" ]]; then + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${SLURM_JOB_ID}] ${message}" + else + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S')] ${message}" + fi +} + +log_user() { + local message="$*" + if [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "FLUX" && -n "${FLUX_JOB_ID:-}" ]]; then + flux job raise --severity=7 "${FLUX_JOB_ID}" \ + "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${FLUX_JOB_ID}] ${message}" + elif [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "SLURM" && -n "${SLURM_JOB_ID:-}" ]]; then + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S') ${SLURM_JOB_ID}] ${message}" + else + logger "[INFO $(date '+%Y-%m-%d %H:%M:%S')] ${message}" fi - log_system "get_general_datacrumbs_enabled returned enabled:${enabled_value}" - echo "${enabled_value}" } -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." +error_user() { + local message="$*" + if [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "FLUX" && -n "${FLUX_JOB_ID:-}" ]]; then + flux job raise --severity=1 "${FLUX_JOB_ID}" \ + "[ERROR $(date '+%Y-%m-%d %H:%M:%S') ${FLUX_JOB_ID}] ${message}" + elif [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "SLURM" && -n "${SLURM_JOB_ID:-}" ]]; then + logger "[ERROR $(date '+%Y-%m-%d %H:%M:%S') ${SLURM_JOB_ID}] ${message}" 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" + logger "[ERROR $(date '+%Y-%m-%d %H:%M:%S')] ${message}" + fi +} + +get_service_phase() { + if [[ -n "${DATACRUMBS_SERVICE_PHASE_OVERRIDE:-}" ]]; then + echo "${DATACRUMBS_SERVICE_PHASE_OVERRIDE}" + return 0 + fi + case "$(basename "$0")" in + datacrumbs_service_run.sh) echo "prolog" ;; + datacrumbs_service_stop.sh) echo "epilog" ;; + *) echo "unknown" ;; + esac +} + +resolve_user_from_uid() { + local user="" + local uid="$1" + if [[ -n "${uid}" ]]; then + user=$(id -nu "${uid}" 2>/dev/null || true) + fi + echo "${user}" +} + +get_flux_actual_user() { + local phase="$1" + local user="" + if [[ "${phase}" == "prolog" ]]; then + if [[ -n "${FLUX_JOB_USERID:-}" ]]; then + user=$(resolve_user_from_uid "${FLUX_JOB_USERID}") + fi + if [[ -z "${user}" && -n "${FLUX_JOB_USER:-}" ]]; then + user="${FLUX_JOB_USER}" + fi + else + if [[ -n "${FLUX_JOB_USER:-}" ]]; then + user="${FLUX_JOB_USER}" + fi + if [[ -z "${user}" && -n "${FLUX_JOB_USERID:-}" ]]; then + user=$(resolve_user_from_uid "${FLUX_JOB_USERID}") fi fi - log_system "get_flux_datacrumbs_enabled returned enabled:${enabled_value}" - echo "${enabled_value}" + echo "${user}" } -function get_slurm_comment() { - local slurm_job_comment=$(scontrol show job $SLURM_JOB_ID | grep -i comment | awk -F'=' '{print $2}') - echo $slurm_job_comment +get_slurm_actual_user() { + local phase="$1" + local user="" + if [[ "${phase}" == "prolog" ]]; then + if [[ -n "${SLURM_JOB_USER:-}" ]]; then + user="${SLURM_JOB_USER}" + fi + if [[ -z "${user}" && -n "${SLURM_JOB_UID:-}" ]]; then + user=$(resolve_user_from_uid "${SLURM_JOB_UID}") + fi + else + if [[ -n "${SLURM_JOB_UID:-}" ]]; then + user=$(resolve_user_from_uid "${SLURM_JOB_UID}") + fi + if [[ -z "${user}" && -n "${SLURM_JOB_USER:-}" ]]; then + user="${SLURM_JOB_USER}" + fi + fi + echo "${user}" } -function get_slurm_datacrumbs_enabled() { - enabled_value="no" - local slurm_job_comment=$(get_slurm_comment) - # NOTE: If SLURM_JOB_COMMENT which is a JSON - # of format {datacrumbs: {enable: "yes|no", composite: name}}. - # says datacrumbs enable is yes, else remains the same. - if [[ $(echo ${slurm_job_comment} | jq -r .datacrumbs.enable 2>/dev/null) == "yes" ]]; then - enabled_value="yes" +get_actual_user() { + local phase + phase=$(get_service_phase) + if [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "FLUX" ]]; then + get_flux_actual_user "${phase}" + elif [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "SLURM" ]]; then + get_slurm_actual_user "${phase}" fi - 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 - local slurm_job_comment=$(get_slurm_comment) - log_system "Slurm comment: $slurm_job_comment" - enabled=$(get_slurm_datacrumbs_enabled) +if [[ -z "${DATACRUMBS_USER:-}" ]]; then + if [[ "$(id -u)" != "0" ]]; then + DATACRUMBS_USER=$(id -un) + elif [[ -n "${SUDO_USER:-}" && "${SUDO_USER}" != "root" ]]; then + DATACRUMBS_USER="${SUDO_USER}" else - enabled=$(get_general_datacrumbs_enabled) + DATACRUMBS_USER=$(get_actual_user) + if [[ -z "${DATACRUMBS_USER}" || "${DATACRUMBS_USER}" == "root" ]]; then + DATACRUMBS_USER="${USER:-${DATACRUMBS_SERVICE_INSTALL_USER}}" + fi + fi +fi +readonly DATACRUMBS_USER +export DATACRUMBS_USER + +json_field_or_empty() { + local json_line="$1" + local jq_expr="$2" + if [[ -z "${json_line}" ]]; then + return 0 + fi + echo "${json_line}" | jq -r "${jq_expr} // empty" 2>/dev/null || true +} + +get_datacrumbs_json_override() { + if [[ -n "${DATACRUMBS_SERVICE_JSON_OVERRIDE:-}" ]]; then + echo "${DATACRUMBS_SERVICE_JSON_OVERRIDE}" fi - log_system "get_datacrumbs_enabled returned enabled:${enabled}" - echo "${enabled}" } -function get_flux_datacrumbs_composite_name() { - local composite_name=$(flux job info $FLUX_JOB_ID jobspec | jq -r .attributes.system.datacrumbs.composite 2>/dev/null) - if [[ ${composite_name} == "null" || ${composite_name} == "" ]]; then - log_system "User hasn't requested datacrumbs' composite feature using ${composite_name}.""ERROR" +unsupported_scheduler() { + error_user "Unsupported scheduler type for datacrumbs service scripts: ${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" + return 1 +} + +get_slurm_comment_json() { + scontrol show job "${SLURM_JOB_ID}" | grep -i comment | awk -F'=' '{print $2}' +} + +get_flux_datacrumbs_json() { + flux job info "${FLUX_JOB_ID}" jobspec 2>/dev/null | + jq -c '.attributes.system.datacrumbs // empty' 2>/dev/null || true +} + +get_slurm_datacrumbs_json() { + local comment_json + comment_json=$(get_slurm_comment_json) + echo "${comment_json}" | jq -c '.datacrumbs // empty' 2>/dev/null || true +} + +get_datacrumbs_json() { + local override_json + override_json=$(get_datacrumbs_json_override) + if [[ -n "${override_json}" ]]; then + echo "${override_json}" + return 0 + fi + if [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "FLUX" ]]; then + get_flux_datacrumbs_json + elif [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "SLURM" ]]; then + get_slurm_datacrumbs_json 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_slurm_datacrumbs_composite_name() { - local composite_name=$(get_default_datacrumbs_composite_name) - local slurm_job_comment=$(get_slurm_comment) - local slurm_composite="$(echo ${slurm_job_comment} | jq -r .datacrumbs.composite 2>/dev/null)" - if [[ - ${slurm_composite} == "" || - ${slurm_composite} == "NONE" || - ${slurm_composite} == "null" || - ${slurm_composite} == $(get_default_datacrumbs_composite_name) ]] \ - ; then - log_system "User hasn't requested datacrumbs' composite feature using ${composite_name}" + unsupported_scheduler + fi +} + +get_flux_datacrumbs_enabled() { + local metadata_json + metadata_json=$(get_flux_datacrumbs_json) + if [[ "$(json_field_or_empty "${metadata_json}" '.enable')" == "yes" ]]; then + echo "yes" else - log_system "User has requested datacrumbs' composite feature using ${composite_name}." + echo "no" fi - log_system "get_slurm_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}." +get_slurm_datacrumbs_enabled() { + local metadata_json + metadata_json=$(get_slurm_datacrumbs_json) + if [[ "$(json_field_or_empty "${metadata_json}" '.enable')" == "yes" ]]; then + echo "yes" else - log_system "User has requested datacrumbs' composite feature using ${composite_name}." + echo "no" fi - log_system "get_general_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) +get_datacrumbs_enabled() { + if [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "FLUX" ]]; then + get_flux_datacrumbs_enabled + elif [[ "${DATACRUMBS_SERVICE_SCHEDULER_TYPE}" == "SLURM" ]]; then + get_slurm_datacrumbs_enabled else - name=$(get_general_datacrumbs_composite_name) + unsupported_scheduler fi - if [[ "${name}" != "$(get_default_datacrumbs_composite_name)" && "${name}" != "ERROR" ]]; then - if ! validate_datacrumbs_composite_name "${name}"; then - name="ERROR" - fi +} + +get_datacrumbs_probe_file() { + local metadata_json + local probe_file="" + + metadata_json=$(get_datacrumbs_json) + probe_file=$(json_field_or_empty "${metadata_json}" '.probe_file') + + echo "${probe_file}" +} + +probe_file_readable_by_user() { + local probe_file="$1" + local submitting_user="$2" + if [[ ! -r "${probe_file}" ]]; then + return 1 + fi + if [[ -z "${submitting_user}" || "${submitting_user}" == "$(id -un)" ]]; then + return 0 fi - log_system "get_datacrumbs_composite_name returned name:${name}" - echo "${name}" + if [[ "$(id -u)" == "0" ]]; then + su -s /bin/bash - "${submitting_user}" -c "test -r \"${probe_file}\"" >/dev/null 2>&1 + else + sudo -n -u "${submitting_user}" test -r "${probe_file}" >/dev/null 2>&1 + fi +} + +get_run_id() { + local job_id_var="${DATACRUMBS_SERVICE_JOB_ID_VAR}" + local job_id_value="" + if [[ -n "${job_id_var}" && "${job_id_var}" != "NONE" ]]; then + job_id_value="${!job_id_var-}" + fi + + if [[ -n "${job_id_value}" ]]; then + echo "${job_id_value}" + elif [[ -f "${DATACRUMBS_SERVICE_RUN_ID_FILE}" ]]; then + cat "${DATACRUMBS_SERVICE_RUN_ID_FILE}" 2>/dev/null + else + date +"%Y%m%d%H%M%S" + fi +} + +escape_env_value() { + local value="$1" + value="${value//\\/\\\\}" + value="${value//\"/\\\"}" + printf '"%s"' "${value}" +} + +write_service_env_file() { + local env_file="$1" + local probe_file="$2" + mkdir -p "$(dirname "${env_file}")" + printf 'DATACRUMBS_PROBE_FILE=%s\n' "$(escape_env_value "${probe_file}")" >"${env_file}" + printf 'DATACRUMBS_USER=%s\n' "$(escape_env_value "${DATACRUMBS_USER}")" >>"${env_file}" + printf 'DATACRUMBS_SERVICE_RUN_ID=%s\n' "$(escape_env_value "${DATACRUMBS_SERVICE_RUN_ID}")" >>"${env_file}" + printf 'DATACRUMBS_LOG_DIR=%s\n' "$(escape_env_value "${DATACRUMBS_SERVICE_LOG_DIR}")" >>"${env_file}" + chmod 0644 "${env_file}" 2>/dev/null || true +} + +systemctl_cmd() { + if [[ "$(id -u)" == "0" ]]; then + systemctl "$@" + else + sudo systemctl "$@" + fi +} + +wait_for_unit_inactive() { + local unit_name="$1" + local timeout_seconds="${2:-300}" + local elapsed=0 + local state="" + + while ((elapsed < timeout_seconds)); do + state="$(systemctl_cmd is-active "${unit_name}" 2>/dev/null || true)" + if [[ "${state}" == "inactive" || "${state}" == "failed" || "${state}" == "unknown" ]]; then + return 0 + fi + sleep 1 + elapsed=$((elapsed + 1)) + done + + error_user "Timed out waiting for ${unit_name} to stop." + return 1 } DATACRUMBS_ENABLED=$(get_datacrumbs_enabled) @@ -127,16 +305,34 @@ 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 + +DATACRUMBS_PROBE_FILE=$(get_datacrumbs_probe_file) +DATACRUMBS_SERVICE_REQUIRE_PROBE_FILE="${DATACRUMBS_SERVICE_REQUIRE_PROBE_FILE:-1}" +if [[ "${DATACRUMBS_SERVICE_REQUIRE_PROBE_FILE}" == "1" && -z "${DATACRUMBS_PROBE_FILE}" ]]; then + error_user "Datacrumbs is enabled but no probes file was provided for the systemd service." + return 1 +fi +if [[ -n "${DATACRUMBS_PROBE_FILE}" && ! -f "${DATACRUMBS_PROBE_FILE}" ]]; then + error_user "Datacrumbs probe file not found: ${DATACRUMBS_PROBE_FILE}" 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}" +if [[ -n "${DATACRUMBS_PROBE_FILE}" ]] && ! probe_file_readable_by_user "${DATACRUMBS_PROBE_FILE}" "${DATACRUMBS_USER}"; then + error_user "Datacrumbs probe file is not readable by submitting user ${DATACRUMBS_USER}: ${DATACRUMBS_PROBE_FILE}" + return 1 fi -readonly DATACRUMBS_COMPOSABLE_NAME -export DATACRUMBS_COMPOSABLE_NAME -export DATACRUMBS_USER +DATACRUMBS_SERVICE_RUN_ID=$(get_run_id) +DATACRUMBS_SERVICE_ENV_FILE="${DATACRUMBS_SERVICE_CONFIGS_DIR}/datacrumbs-${DATACRUMBS_SERVICE_RUN_ID}.env" + +readonly DATACRUMBS_ENABLED +readonly DATACRUMBS_PROBE_FILE +readonly DATACRUMBS_SERVICE_RUN_ID +readonly DATACRUMBS_SERVICE_ENV_FILE +export DATACRUMBS_ENABLED +export DATACRUMBS_PROBE_FILE +export DATACRUMBS_SERVICE_RUN_ID +export DATACRUMBS_SERVICE_ENV_FILE + +if [[ -n "${DATACRUMBS_PROBE_FILE}" ]]; then + log_user "Starting systemd datacrumbs service with probes file: ${DATACRUMBS_PROBE_FILE}" +fi diff --git a/scripts/datacrumbs/datacrumbs_service_run.sh.in b/scripts/datacrumbs/datacrumbs_service_run.sh.in index e973fb13..c2f14999 100755 --- a/scripts/datacrumbs/datacrumbs_service_run.sh.in +++ b/scripts/datacrumbs/datacrumbs_service_run.sh.in @@ -1,12 +1,11 @@ #!/bin/bash -set -e pipefail +set -eo pipefail -source @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_service_common.sh -if [[ $? -eq 0 ]]; then - umask 022 - printenv > /run/datacrumbs.env - echo datacrumbs_service_run "Starting datacrumbs service run script on job ${DATACRUMBS_SERVER_RUN_ID}" - sudo systemctl start datacrumbs@${DATACRUMBS_SERVER_RUN_ID}.service +if source @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_service_common.sh; then + umask 022 + write_service_env_file "${DATACRUMBS_SERVICE_ENV_FILE}" "${DATACRUMBS_PROBE_FILE}" + log_system "Starting datacrumbs@${DATACRUMBS_SERVICE_RUN_ID}.service with ${DATACRUMBS_PROBE_FILE}" + systemctl_cmd start "datacrumbs@${DATACRUMBS_SERVICE_RUN_ID}.service" fi exit 0 diff --git a/scripts/datacrumbs/datacrumbs_service_stop.sh.in b/scripts/datacrumbs/datacrumbs_service_stop.sh.in index 43174611..7fb425dc 100755 --- a/scripts/datacrumbs/datacrumbs_service_stop.sh.in +++ b/scripts/datacrumbs/datacrumbs_service_stop.sh.in @@ -1,10 +1,12 @@ #!/bin/bash -set -e pipefail +set -eo pipefail -source @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_service_common.sh -if [[ $? -eq 0 ]]; then - sudo systemctl stop datacrumbs@${DATACRUMBS_SERVER_RUN_ID}.service - sudo rm ${DATACRUMBS_SERVER_ENV_FILE} +export DATACRUMBS_SERVICE_REQUIRE_PROBE_FILE=0 +if source @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_service_common.sh; then + log_system "Stopping datacrumbs@${DATACRUMBS_SERVICE_RUN_ID}.service" + systemctl_cmd stop "datacrumbs@${DATACRUMBS_SERVICE_RUN_ID}.service" + wait_for_unit_inactive "datacrumbs@${DATACRUMBS_SERVICE_RUN_ID}.service" + rm -f "${DATACRUMBS_SERVICE_ENV_FILE}" fi exit 0 diff --git a/scripts/datacrumbs/datacrumbs_setup.in b/scripts/datacrumbs/datacrumbs_setup.in deleted file mode 100755 index 31a4e1fb..00000000 --- a/scripts/datacrumbs/datacrumbs_setup.in +++ /dev/null @@ -1,82 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -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.env.local - - -source ${SCRIPT_DIR}/datacrumbs_utility - -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 - if [[ -z "$DATACRUMBS_USER" ]] || [[ "$DATACRUMBS_USER" = "root" ]]; then - DATACRUMBS_USER=$(get_actual_user) - fi -fi - -if [[ "${DATACRUMBS_ENV_LOADED:-0}" == "0" ]]; then - if command -v direnv &> /dev/null; then - eval "$(direnv exec ${CONFIG_FILE%/*} bash -c 'source ${CONFIG_FILE}; env')" - else - source ${CONFIG_FILE} - fi - log "After loading env file for $DATACRUMBS_USER" - YEAR=$(date +%y) - MONTH=$(date +%m) - DAY=$(date +%d) - 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" == "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@ - fi -else - export PATH="$DATACRUMBS_INSTALL_BIN_DIR:$DATACRUMBS_INSTALL_SBIN_DIR:$PATH" - export LD_LIBRARY_PATH="$DATACRUMBS_INSTALL_LIB_DIR:@DEPENDENCY_LIBRARY_DIRS_COLON@:$LD_LIBRARY_PATH" -fi - -ulimit -n $(ulimit -H -n) -ulimit -l $(ulimit -H -l) - -alias datacrumbs_track='@DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_track' -alias datacrumbs_untrack='@DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_untrack' -alias datacrumbs_run='@DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_run' -alias datacrumbs_compose_run='@DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_compose_run' -alias datacrumbs_stop='sudo @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_stop' -alias datacrumbs_compose='sudo @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_compose' -alias datacrumbs_compose_discover='sudo @DATACRUMBS_INSTALL_SBINARYDIR@/datacrumbs_compose --action discover' -alias datacrumbs_wrap='sudo @DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_wrap' -alias datacrumbs_create_log_dir='@DATACRUMBS_INSTALL_BINARYDIR@/datacrumbs_create_log_dir' diff --git a/scripts/datacrumbs/datacrumbs_stop.in b/scripts/datacrumbs/datacrumbs_stop.in deleted file mode 100755 index d6b53c25..00000000 --- a/scripts/datacrumbs/datacrumbs_stop.in +++ /dev/null @@ -1,21 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -PROG_NAME=$1 - -# Load environment -source "$SCRIPT_DIR/datacrumbs_setup" - -if [[ "$DATACRUMBS_IS_ROOT" != "1" ]]; then - error "This script should be run as root." - exit 1 -fi - -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 -fi diff --git a/scripts/datacrumbs/datacrumbs_track.in b/scripts/datacrumbs/datacrumbs_track.in deleted file mode 100755 index 2f47056c..00000000 --- a/scripts/datacrumbs/datacrumbs_track.in +++ /dev/null @@ -1,69 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Check if datacrumbs_args exists in scripts directory -if [[ ! -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - echo "Error: datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -# Source argument parser -source "$SCRIPT_DIR/datacrumbs_args" - -dc_args_init "DC_TRACK" -dc_args_add_option "DC_TRACK" "executable" "MANDATORY" "Path to the executable" "string" -dc_args_parse "DC_TRACK" "datacrumbs_track" "$@" - -EXECUTABLE="$DC_TRACK_EXECUTABLE" - -if [[ -z "$EXECUTABLE" ]]; then - dc_args_usage "DC_TRACK" "datacrumbs_track" - exit 1 -fi - -source $SCRIPT_DIR/datacrumbs_setup - -check_regular_user - -log "Checking executable: $EXECUTABLE" -if [[ "$DRY_RUN" == "1" ]]; then - log "[DRY RUN] Check if executable is valid: $EXECUTABLE" - MAIN_PROGRAM="$EXECUTABLE" -else - if [[ -x "$EXECUTABLE" ]]; then - MAIN_PROGRAM="$EXECUTABLE" - log "Found executable at: $MAIN_PROGRAM" - elif - MAIN_PROGRAM="$(which "$EXECUTABLE" 2>/dev/null)" - [[ -x "$MAIN_PROGRAM" ]] - then - log "Found executable in PATH: $MAIN_PROGRAM" - elif - MAIN_PROGRAM="$(realpath "$EXECUTABLE" 2>/dev/null)" - [[ -x "$MAIN_PROGRAM" ]] - then - log "Found executable at realpath: $MAIN_PROGRAM" - else - error "Executable '$EXECUTABLE' not found." - exit 1 - fi -fi - -if [[ "$DRY_RUN" == "1" ]]; then - log "[DRY RUN] Checking for patchelf command" -else - if ! command -v patchelf >/dev/null 2>&1; then - error "'patchelf' not found. Please install it and ensure it is in your PATH." - exit 1 - fi -fi -debug "Adding needed library: ${DATACRUMBS_CLIENT_LIB} to $MAIN_PROGRAM" -if [[ "$DRY_RUN" == "1" ]]; then - log "[DRY RUN] Patching $MAIN_PROGRAM with patchelf --add-needed ${DATACRUMBS_CLIENT_LIB}" -else - datacrumbs_run_command "Unable to patch $MAIN_PROGRAM" patchelf --add-needed ${DATACRUMBS_CLIENT_LIB} "$MAIN_PROGRAM" -fi -log "Enabling tracking of $EXECUTABLE completed." diff --git a/scripts/datacrumbs/datacrumbs_untrack.in b/scripts/datacrumbs/datacrumbs_untrack.in deleted file mode 100755 index 5b9f9a54..00000000 --- a/scripts/datacrumbs/datacrumbs_untrack.in +++ /dev/null @@ -1,70 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Check if datacrumbs_args exists in scripts directory -if [[ ! -f "$SCRIPT_DIR/datacrumbs_args" ]]; then - echo "Error: datacrumbs_args not found in $SCRIPT_DIR" - exit 1 -fi - -# Source argument parser -source "$SCRIPT_DIR/datacrumbs_args" - -dc_args_init "DC_UNTRACK" -dc_args_add_option "DC_UNTRACK" "executable" "MANDATORY" "Path to the executable" "string" -dc_args_parse "DC_UNTRACK" "datacrumbs_untrack" "$@" - -EXECUTABLE="$DC_UNTRACK_EXECUTABLE" - -if [[ -z "$EXECUTABLE" ]]; then - dc_args_show_help "DC_UNTRACK" "$@" - exit 1 -fi - -source $SCRIPT_DIR/datacrumbs_setup - -check_regular_user - -log "Checking executable: $EXECUTABLE" -if [[ "$DRY_RUN" == "1" ]]; then - log "[DRY RUN] Check if executable is valid: $EXECUTABLE" - MAIN_PROGRAM="$EXECUTABLE" -else - if [[ -x "$EXECUTABLE" ]]; then - MAIN_PROGRAM="$EXECUTABLE" - log "Found executable: $MAIN_PROGRAM" - elif - MAIN_PROGRAM="$(which "$EXECUTABLE" 2>/dev/null)" - [[ -x "$MAIN_PROGRAM" ]] - then - log "Found executable via which: $MAIN_PROGRAM" - elif - MAIN_PROGRAM="$(realpath "$EXECUTABLE" 2>/dev/null)" - [[ -x "$MAIN_PROGRAM" ]] - then - log "Found executable via realpath: $MAIN_PROGRAM" - else - error "Executable '$EXECUTABLE' not found." - exit 1 - fi -fi - -if [[ "$DRY_RUN" == "1" ]]; then - log "[DRY RUN] Checking for patchelf command" -else - if ! command -v patchelf >/dev/null 2>&1; then - error "'patchelf' not found. Please install it and ensure it is in your PATH." - exit 1 - fi -fi - -debug "Removing dependency '${DATACRUMBS_CLIENT_LIB}' from '$MAIN_PROGRAM'..." -if [[ "$DRY_RUN" == "1" ]]; then - log "[DRY RUN] Patching $MAIN_PROGRAM with patchelf --remove-needed ${DATACRUMBS_CLIENT_LIB}" -else - datacrumbs_run_command "Unable to patch $MAIN_PROGRAM" patchelf --remove-needed ${DATACRUMBS_CLIENT_LIB} "$MAIN_PROGRAM" -fi -log "Disabling tracking of $EXECUTABLE completed." diff --git a/scripts/datacrumbs/datacrumbs_utility.in b/scripts/datacrumbs/datacrumbs_utility.in deleted file mode 100755 index 500c5d24..00000000 --- a/scripts/datacrumbs/datacrumbs_utility.in +++ /dev/null @@ -1,288 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -# Load logging script -if [[ -f "$SCRIPT_DIR/datacrumbs_logging" ]]; then - source "$SCRIPT_DIR/datacrumbs_logging" -else - echo "Error: datacrumbs_logging not found in $SCRIPT_DIR" - exit 1 -fi - -function datacrumbs_run_command() { - local err_msg="$1" - shift - if [[ "${DRY_RUN:-0}" == "1" ]]; then - log "[DRY RUN] Would run: $*" - return 0 - fi - "$@" - local status=$? - if [[ $status -ne 0 ]]; then - log "Error: $err_msg" - exit $status - fi -} - -# Usage example: -# datacrumbs_run_command "Failed to list directory" ls /nonexistent/path - -function datacrumbs_finalize() { - 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}" == "1" ]]; then - log "[DRY RUN] Would create log directory: ${DATACRUMBS_TRACE_DIR}" - return 0 - fi - if [[ ! -d "${DATACRUMBS_TRACE_DIR}" ]]; then - mkdir -p "${DATACRUMBS_TRACE_DIR}" - if [[ $? -ne 0 ]]; then - error "Failed to create trace directory: ${DATACRUMBS_TRACE_DIR}" - exit 1 - fi - chown "$DATACRUMBS_INSTALL_USER:$DATACRUMBS_INSTALL_USER" "${DATACRUMBS_TRACE_DIR}" - fi -} - -function datacrumbs_start_server() { - 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 - exec=$1 - exec=($exec) - 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 "$DATACRUMBS_SERVER_RUN_ID") - cmd=("${exec[@]}" "run" "${common_cmd[@]}") - WAIT_INTERVAL=2 - ELAPSED=0 - - log "Starting Server: ${cmd[*]}" - if [[ "${DRY_RUN:-0}" == "1" ]]; then - server_launch "${cmd[@]}" - else - server_launch "${cmd[@]}" >$DATACRUMBS_LOG_FILE 2>&1 & - PID=$! - 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}" == "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 "$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 $DATACRUMBS_SERVER_READY_FILE" - server_launch $DATACRUMBS_INSTALL_SBIN_DIR/datacrumbs_stop - cat $DATACRUMBS_LOG_FILE - exit 1 - fi - done - echo $DATACRUMBS_SERVER_RUN_ID >"${DATACRUMBS_SERVER_RUN_ID_FILE}" - log "Started server" -} - -function datacrumbs_stop_server() { - exec=$1 - prog_name=$2 - 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 "$DATACRUMBS_SERVER_RUN_ID") - cmd=("${exec[@]}" "stop" "${common_cmd[@]}") - - log "Stopping Server: ${cmd[*]}" - if [[ "${DRY_RUN:-0}" == "1" ]]; then - server_launch "${cmd[@]}" - else - server_launch "${cmd[@]}" >>$DATACRUMBS_LOG_FILE 2>&1 - fi - - 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 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 - sudo ${DATACRUMBS_INSTALL_SBIN_DIR}/datacrumbs_stop "${prog_name}" - fi - cat "${DATACRUMBS_LOG_FILE}" - fi - 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() { - 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 - log "Status file not found: $status_file" - return 1 - fi - - local trace_file total_events_captured events_failed - trace_file=$(jq -r '.trace_file' "$status_file") - total_events_captured=$(jq -r '.total_events_captured' "$status_file") - events_failed=$(jq -r '.events_failed' "$status_file") - - log "trace_file: $trace_file" - log "total_events_captured: $total_events_captured" - log "events_failed: $events_failed" - rm -f "$status_file" -} - -function check_regular_user() { - if [[ "$DATACRUMBS_IS_ROOT" == "1" ]]; then - error "This script should be run as a regular user, not as root." - exit 1 - fi -} - -function check_sudo_user() { - if [[ "$DATACRUMBS_IS_ROOT" != "1" ]]; then - error "This script should be run as root." - exit 1 - fi -} - -function check_install_user() { - if [[ "${DATACRUMBS_USER}" != "${DATACRUMBS_INSTALL_USER}" ]]; then - error "DATACRUMBS_USER does not match DATACRUMBS_INSTALL_USER: ${DATACRUMBS_USER}" - exit 1 - fi -} - -function job_launch() { - local cmd=() - if [[ -z "${DATACRUMBS_JOB_ENABLE_MPI}" || "${DATACRUMBS_JOB_ENABLE_MPI}" == "1" ]]; then - debug "Launching job with MPI" - cmd=(${DATACRUMBS_JOB_RUN} "${DATACRUMBS_JOB_NODE_FLAG}" "${DATACRUMBS_JOB_NODES}" "${DATACRUMBS_JOB_PPN_FLAG}" "${DATACRUMBS_JOB_PPN}" ${DATACRUMBS_JOB_OTHER_FLAGS} "$@") - else - debug "Launching job without MPI" - cmd=("$@") - fi - if [[ "${DRY_RUN:-0}" == "1" ]]; then - log "[DRY RUN] Would launch job: ${cmd[*]}" - return 0 - fi - log "Launching job command: ${cmd[*]}" - "${cmd[@]}" -} - -function server_launch() { - local mpi_cmd=() - if [[ -z "${DATACRUMBS_JOB_ENABLE_MPI}" || "${DATACRUMBS_JOB_ENABLE_MPI}" == "1" ]]; then - debug "Launching server with MPI" - mpi_cmd=(${DATACRUMBS_JOB_RUN} "${DATACRUMBS_JOB_NODE_FLAG}" "${DATACRUMBS_JOB_NODES}" "${DATACRUMBS_JOB_PPN_FLAG}" "1" ${DATACRUMBS_JOB_OTHER_FLAGS}) - else - debug "Launching server without MPI" - mpi_cmd=() - fi - if [[ "$DATACRUMBS_IS_ROOT" == "1" ]]; then - cmd=("${mpi_cmd[@]}" "$@") - else - cmd=("${mpi_cmd[@]}" "sudo" "$@") - fi - if [[ -z "${DATACRUMBS_JOB_ENABLE_MPI}" || "${DATACRUMBS_JOB_ENABLE_MPI}" == "1" ]]; then - debug "Launching server with MPI" - cmd=("${cmd[@]}") - else - debug "Launching server without MPI" - cmd=("${cmd[@]}" --disable-mpi) - fi - if [[ "${DRY_RUN:-0}" == "1" ]]; then - log "[DRY RUN] Would launch server: ${cmd[*]}" - return 0 - fi - log "Launching server command: ${cmd[*]}" - "${cmd[@]}" -} - -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_enable_value() { - local value="$1" - if [[ "$value" == "yes" || "$value" == "no" ]]; then - return 0 - else - return 1 - fi -} - -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} -} - -function get_default_datacrumbs_composite_name() { - echo "NONE" -} diff --git a/scripts/datacrumbs/datacrumbs_wrap.in b/scripts/datacrumbs/datacrumbs_wrap.in deleted file mode 100755 index 92e93081..00000000 --- a/scripts/datacrumbs/datacrumbs_wrap.in +++ /dev/null @@ -1,14 +0,0 @@ -#! /usr/bin/env bash - -set -eo pipefail - -SCRIPT_DIR=@DATACRUMBS_INSTALL_BINARYDIR@ - -source $SCRIPT_DIR/datacrumbs_setup - -if [[ "$DATACRUMBS_IS_ROOT" == "1" ]]; then - error "This script should be run as a regular user, not as root." - exit 1 -fi - -LD_PRELOAD=${DATACRUMBS_CLIENT_LIB} "$@" diff --git a/scripts/docker-build.sh b/scripts/docker-build.sh deleted file mode 100755 index 68af1278..00000000 --- a/scripts/docker-build.sh +++ /dev/null @@ -1,193 +0,0 @@ -#!/bin/bash - -# DataCrumbs Docker Build and Push Script -# This script builds the DataCrumbs Docker image and optionally pushes it to Docker Hub - -set -e - -# Configuration -IMAGE_NAME="datacrumbs" -DOCKER_HUB_USERNAME="${DOCKER_HUB_USERNAME:-your-dockerhub-username}" -VERSION="${VERSION:-latest}" -DOCKERFILE_PATH="infrastrutcure/docker/Dockerfile" - -# Colors for output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' # No Color - -# Function to print colored output -print_status() { - echo -e "${GREEN}[INFO]${NC} $1" -} - -print_warning() { - echo -e "${YELLOW}[WARNING]${NC} $1" -} - -print_error() { - echo -e "${RED}[ERROR]${NC} $1" -} - -# Check if we're in the correct directory -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 -fi - -# Function to show usage -usage() { - echo "Usage: $0 [OPTIONS]" - echo "Options:" - echo " -u, --username USERNAME Docker Hub username (default: $DOCKER_HUB_USERNAME)" - echo " -v, --version VERSION Image version tag (default: $VERSION)" - echo " -p, --push Push to Docker Hub after building" - echo " -h, --help Show this help message" - echo "" - echo "Environment variables:" - echo " DOCKER_HUB_USERNAME Docker Hub username" - echo " VERSION Image version tag" - echo "" - echo "Examples:" - echo " $0 # Build image locally" - echo " $0 -u myusername -v v1.0 # Build with specific username and version" - echo " $0 -p # Build and push to Docker Hub" -} - -# Parse command line arguments -PUSH_TO_HUB=false - -while [[ $# -gt 0 ]]; do - case $1 in - -u | --username) - DOCKER_HUB_USERNAME="$2" - shift 2 - ;; - -v | --version) - VERSION="$2" - shift 2 - ;; - -p | --push) - PUSH_TO_HUB=true - shift - ;; - -h | --help) - usage - exit 0 - ;; - *) - print_error "Unknown option: $1" - usage - exit 1 - ;; - esac -done - -# Validate Docker Hub username if pushing -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 - -# Detect container runtime (Docker or Podman) -if command -v podman >/dev/null 2>&1 && ! command -v docker >/dev/null 2>&1; then - CONTAINER_CMD="podman" - print_status "Using Podman as container runtime" -elif command -v docker >/dev/null 2>&1; then - CONTAINER_CMD="docker" - print_status "Using Docker as container runtime" -else - print_error "Neither Docker nor Podman found. Please install one of them." - exit 1 -fi - -# Image tags -LOCAL_TAG="$IMAGE_NAME:$VERSION" -HUB_TAG="$DOCKER_HUB_USERNAME/$IMAGE_NAME:$VERSION" -HUB_LATEST_TAG="$DOCKER_HUB_USERNAME/$IMAGE_NAME:latest" - -print_status "Building DataCrumbs Docker image..." -print_status "Image name: $LOCAL_TAG" -print_status "Dockerfile: $DOCKERFILE_PATH" - -# Build the Docker image -if $CONTAINER_CMD build -f "$DOCKERFILE_PATH" -t "$LOCAL_TAG" .; then - print_status "✅ Docker image built successfully: $LOCAL_TAG" -else - print_error "❌ Failed to build Docker image" - exit 1 -fi - -# Tag for Docker Hub if pushing -if [[ "$PUSH_TO_HUB" = true ]]; then - print_status "Tagging image for Docker Hub..." - - # Tag with version - if $CONTAINER_CMD tag "$LOCAL_TAG" "$HUB_TAG"; then - print_status "✅ Tagged as $HUB_TAG" - else - print_error "❌ Failed to tag image for Docker Hub" - exit 1 - fi - - # Tag as latest if version is not already latest - if [[ "$VERSION" != "latest" ]]; then - if $CONTAINER_CMD tag "$LOCAL_TAG" "$HUB_LATEST_TAG"; then - print_status "✅ Tagged as $HUB_LATEST_TAG" - else - print_error "❌ Failed to tag image as latest" - exit 1 - fi - fi - - print_status "Pushing to Docker Hub..." - print_warning "Make sure you're logged into Docker Hub (run 'docker login docker.io' for Podman)" - print_warning "Make sure the repository '$DOCKER_HUB_USERNAME/datacrumbs' exists on Docker Hub" - - # Check if we're using podman - PUSH_CMD="$CONTAINER_CMD push" - - # Push version tag - if $PUSH_CMD "$HUB_TAG"; then - print_status "✅ Pushed $HUB_TAG" - else - print_error "❌ Failed to push $HUB_TAG" - print_error "Please ensure:" - print_error "1. You're logged in: docker login docker.io (or podman login docker.io)" - print_error "2. Repository exists: https://hub.docker.com/r/$DOCKER_HUB_USERNAME/datacrumbs" - print_error "3. You have push permissions to the repository" - exit 1 - fi - - # Push latest tag if different from version - if [[ "$VERSION" != "latest" ]]; then - if $PUSH_CMD "$HUB_LATEST_TAG"; then - print_status "✅ Pushed $HUB_LATEST_TAG" - else - print_error "❌ Failed to push $HUB_LATEST_TAG" - exit 1 - fi - fi - - print_status "🎉 Successfully pushed DataCrumbs image to Docker Hub!" - echo "" - echo "Your image is now available at:" - echo " docker pull $HUB_TAG" - if [[ "$VERSION" != "latest" ]]; then - echo " docker pull $HUB_LATEST_TAG" - fi -else - print_status "🎉 Successfully built DataCrumbs image locally!" - echo "" - echo "To run the container:" - echo " $CONTAINER_CMD run -it --privileged --cap-add=ALL $LOCAL_TAG" - echo "" - echo "To push to Docker Hub, run:" - echo " $0 -u -p" -fi - -echo "" -print_status "Image size:" -$CONTAINER_CMD images "$LOCAL_TAG" --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}" diff --git a/scripts/formatting/autoformat.sh b/scripts/formatting/autoformat.sh index 3e50cea5..64eb4a2c 100755 --- a/scripts/formatting/autoformat.sh +++ b/scripts/formatting/autoformat.sh @@ -1,13 +1,19 @@ #! /bin/bash +set -euo pipefail + clang_format_exe="clang-format" +repo_root="" if [[ $# -ge 1 ]]; then clang_format_exe="$1" fi +if [[ $# -ge 2 ]]; then + repo_root="$2" +fi SUPPORTED_CLANG_FORMAT_VERSION="19.1.7" -if ! command -v $clang_format_exe >/dev/null 2>&1; then +if ! command -v "$clang_format_exe" >/dev/null 2>&1; then echo "You must have 'clang-format' in PATH to use 'autoformat.sh'" exit 1 fi @@ -16,7 +22,7 @@ clang_format_version_str=$($clang_format_exe --version) clang_format_version=$(echo "$clang_format_version_str" | grep -oP 'clang-format version \K\d+(\.\d+)+') if [ "$clang_format_version" != "$SUPPORTED_CLANG_FORMAT_VERSION" ]; then - echo "WARNING: the .clang-format file in this repo is designed for version 18.1.8." + echo "WARNING: the .clang-format file in this repo is designed for version $SUPPORTED_CLANG_FORMAT_VERSION." echo " You are running with clang-format v$clang_format_version." echo " The resulting formatting is highly likely to be incorrect." fi @@ -49,14 +55,16 @@ fi SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) curr_dir=$(pwd) +if [[ -z "$repo_root" ]]; then + repo_root=$(cd "$SCRIPT_DIR/../.." && pwd) +fi +repo_root=$(cd "$repo_root" && pwd) -cd $SCRIPT_DIR -cd .. -cd .. +cd "$repo_root" echo "Check formatting of C/C++ code in '.'" -find . \( -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) \( -path "./src/*" -o -path "./tools/*" -o -path "./tests/*" -o -path "./etc/datacrumbs/plugins/*" \) -print0 | xargs -0 -P "$(nproc)" $clang_format_exe -i +find . \( -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) \( -path "./src/*" -o -path "./tools/*" -o -path "./tests/*" -o -path "./etc/datacrumbs/plugins/*" \) -print0 | xargs -0 -P "$(nproc)" "$clang_format_exe" -i echo "Formatting shell scripts in '.'" find . \( -name "*.sh" -o -name "*.in" \) \( -path "./etc/datacrumbs/data/*" -o -path "./infrastructure/docker/*" -o -path "./scripts/datacrumbs/*" -o -path "./tests/*" -o -path "./tools/*" \) -not -path "*.txt.in" -print0 | xargs -0 shfmt -w @@ -64,4 +72,4 @@ find . \( -name "*.sh" -o -name "*.in" \) \( -path "./etc/datacrumbs/data/*" -o echo "Formatting CMake files in '.'" find . \( -name "CMakeLists.txt*" -o -name "*.cmake" \) \( -path "./src/*" -o -path "./tools/*" -o -path "./tests/*" -o -path "./cmake/*" \) -print0 | xargs -0 cmake-format -i -cd $curr_dir +cd "$curr_dir" diff --git a/scripts/formatting/check-formatting.sh b/scripts/formatting/check-formatting.sh index 7f677e44..12a2477f 100755 --- a/scripts/formatting/check-formatting.sh +++ b/scripts/formatting/check-formatting.sh @@ -1,13 +1,19 @@ #! /bin/bash +set -euo pipefail + clang_format_exe="clang-format" +repo_root="" if [[ $# -ge 1 ]]; then clang_format_exe="$1" fi +if [[ $# -ge 2 ]]; then + repo_root="$2" +fi SUPPORTED_CLANG_FORMAT_VERSION="19.1.7" -if [ command -v $clang_format_exe ] >/dev/null 2>&1; then +if ! command -v "$clang_format_exe" >/dev/null 2>&1; then echo "You must have 'clang-format' in PATH to use 'check-formatting.sh'" exit 1 fi @@ -21,18 +27,18 @@ if [ "$clang_format_version" != "$SUPPORTED_CLANG_FORMAT_VERSION" ]; then echo " The resulting check is highly likely to be incorrect." fi -if [ command -v find ] >/dev/null 2>&1; then +if ! command -v find >/dev/null 2>&1; then echo "You must have 'find' in PATH to use 'check-formatting.sh'" exit 1 fi -if [ command -v dirname ] >/dev/null 2>&1; then +if ! command -v dirname >/dev/null 2>&1; then echo "You must have 'dirname' in PATH to use 'check-formatting.sh'" exit 1 fi -if [ command -v xargs ] >/dev/null 2>&1; then - echo "You must have 'dirname' in PATH to use 'check-formatting.sh'" +if ! command -v xargs >/dev/null 2>&1; then + echo "You must have 'xargs' in PATH to use 'check-formatting.sh'" exit 1 fi @@ -49,13 +55,15 @@ fi SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) curr_dir=$(pwd) +if [[ -z "$repo_root" ]]; then + repo_root=$(cd "$SCRIPT_DIR/../.." && pwd) +fi +repo_root=$(cd "$repo_root" && pwd) -cd $SCRIPT_DIR -cd .. -cd .. +cd "$repo_root" echo "Check formatting of C/C++ code in '.'" -find . \( -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) \( -path "./src/*" -o -path "./tools/*" -o -path "./tests/*" -o -path "./etc/datacrumbs/plugins/*" \) -print0 | xargs -0 -P "$(nproc)" $clang_format_exe --dry-run --Werror +find . \( -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" \) \( -path "./src/*" -o -path "./tools/*" -o -path "./tests/*" -o -path "./etc/datacrumbs/plugins/*" \) -print0 | xargs -0 -P "$(nproc)" "$clang_format_exe" --dry-run --Werror src_check_rc=$? echo "Check formatting of shell scripts in '.'" @@ -66,7 +74,7 @@ echo "Check formatting of CMake files in '.'" find . \( -name "CMakeLists.txt*" -o -name "*.cmake" \) \( -path "./src/*" -o -path "./tools/*" -o -path "./tests/*" -o -path "./cmake/*" \) -print0 | xargs -0 cmake-format --check cmake_check_rc=$? -cd $curr_dir +cd "$curr_dir" if [ $src_check_rc -ne 0 ] || [ $shell_check_rc -ne 0 ] || [ $cmake_check_rc -ne 0 ]; then echo "Some formatting checks failed. Please run 'autoformat.sh' to fix the issues." diff --git a/src/datacrumbs/client/library.cpp b/src/datacrumbs/client/library.cpp deleted file mode 100755 index 4140f14c..00000000 --- a/src/datacrumbs/client/library.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/** - * @file library.cpp - * @brief Implementation of library initialization and finalization functions for the datacrumbs - * client. - * - * This file contains functions that are called when the library is loaded and unloaded. - * These functions are responsible for initializing and finalizing the library's functionality. - */ - -/** - * Standard headers - */ -#include -#include -#include -#include - -/** - * Internal headers - */ -#include -#include -#include - -/** - * @brief Called when the library is loaded. - * - * This function logs a message indicating that the library's start function has been called, - * along with the current process ID. - */ -extern "C" __attribute__((visibility("default"))) void datacrumbs_start() { - int pid = getpid(); - DC_LOG_INFO("Start called (pid: %d)", pid); -} - -/** - * @brief Called when the library is unloaded. - * - * This function logs a message indicating that the library's stop function has been called, - * along with the current process ID. - */ -extern "C" __attribute__((visibility("default"))) void datacrumbs_stop() { - int pid = getpid(); - DC_LOG_INFO("Stop called (pid: %d)", pid); -} - -/** - * @brief Library initialization function. - * - * This function is intended to be called automatically when the library is loaded. - * It calls the datacrumbs_start function to perform any necessary startup actions. - */ -void datacrumbs_init(void) { - datacrumbs_start(); -} - -/** - * @brief Library finalization function. - * - * This function is intended to be called automatically when the library is unloaded. - * It calls the datacrumbs_stop function to perform any necessary cleanup actions. - */ -void datacrumbs_fini(void) { - datacrumbs_stop(); -} \ No newline at end of file diff --git a/src/datacrumbs/client/library.h b/src/datacrumbs/client/library.h deleted file mode 100755 index e5efcd52..00000000 --- a/src/datacrumbs/client/library.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef DATACRUMBS_LIBRARY_H -#define DATACRUMBS_LIBRARY_H - -// Expose datacrumbs_start() with default visibility for shared libraries. -// Starts the datacrumbs client. -extern "C" __attribute__((visibility("default"))) void datacrumbs_start(); - -// Expose datacrumbs_stop() with default visibility for shared libraries. -// Stops the datacrumbs client. -extern "C" __attribute__((visibility("default"))) void datacrumbs_stop(); - -// Function called automatically when the shared library is loaded. -// Used for initialization. -extern void __attribute__((constructor)) datacrumbs_init(void); - -// Function called automatically when the shared library is unloaded. -// Used for cleanup. -extern void __attribute__((destructor)) datacrumbs_fini(void); - -#endif // DATACRUMBS_LIBRARY_H \ No newline at end of file diff --git a/src/datacrumbs/common/configuration_manager.cpp b/src/datacrumbs/common/configuration_manager.cpp deleted file mode 100644 index 0d948797..00000000 --- a/src/datacrumbs/common/configuration_manager.cpp +++ /dev/null @@ -1,671 +0,0 @@ -/** - * @file configuration_manager.cpp - * @brief Implements the ConfigurationManager class for managing DataCrumbs configuration. - * - * This file contains the implementation of the ConfigurationManager class, which is responsible - * for parsing command-line arguments, loading YAML configuration files, and setting up - * configuration parameters for the DataCrumbs application. It also includes the ArgumentParser - * class for handling command-line arguments and utility functions for deriving and validating - * configuration values. - */ - -/** - * std headers - */ -#include -#include - -#include -#include -#include -#include -#include -#include -/** - * Internal headers - */ -#include -#include -#include // <-- Added logging header -#include -#include -/** - * External headers - */ -#include -#include - -namespace datacrumbs { - -// Singleton template specialization for ConfigurationManager -template <> -std::shared_ptr - datacrumbs::Singleton::instance = nullptr; -template <> -bool datacrumbs::Singleton::stop_creating_instances = false; - -/** - * YAML keys for configuration - */ -#define DC_YAML_TRACE_LOG_DIR "trace_log_dir" -#define DC_YAML_DATA_DIR "data_dir" -#define DC_YAML_CAPTURE_PROBES "capture_probes" -#define DC_YAML_USER "user" -#define DC_YAML_INCLUSION_PATH "inclusion_path" - -ArgumentParser::ArgumentParser(int argc, char** argv, ExecutableType exe_type) { - DC_LOG_TRACE("[ArgumentParser] Parsing command line arguments..."); - if (exe_type == ExecutableType::SIMPLE && argc < 2) { - throw std::invalid_argument("Configuration name is required as the first argument."); - } else if (exe_type == ExecutableType::DAEMON && argc < 3) { - throw std::invalid_argument( - "Executable mode (start, stop, or run) and configuration name are required as the first " - "two arguments."); - } - int start_index = 1; - if (exe_type == ExecutableType::SIMPLE) { - config_name = argv[start_index++]; - } else if (exe_type == ExecutableType::DAEMON) { - ExecutableMode exe_mode; - convert(argv[start_index++], exe_mode); - this->exe_mode = exe_mode; - config_name = argv[start_index++]; - } else { - throw std::invalid_argument("Unknown ExecutableType."); - } - - for (int i = start_index; i < argc; ++i) { - std::string arg = argv[i]; - if (arg == "--run_id" && i + 1 < argc) { - run_id = argv[++i]; - DC_LOG_DEBUG("[ArgumentParser] Run ID set to: %s", run_id->c_str()); - } else if (arg == "--trace_log_dir" && i + 1 < argc) { - trace_log_dir = argv[++i]; - DC_LOG_DEBUG("[ArgumentParser] Trace log dir set to: %s", trace_log_dir->c_str()); - } else if (arg == "--data_dir" && i + 1 < argc) { - data_dir = argv[++i]; - DC_LOG_DEBUG("[ArgumentParser] Data directory set to: %s", data_dir->c_str()); - } else if (arg == "--config_path" && i + 1 < argc) { - config_path = argv[++i]; - DC_LOG_DEBUG("[ArgumentParser] Config path set to: %s", config_path->c_str()); - } else if (arg == "--user" && i + 1 < argc) { - user = argv[++i]; - DC_LOG_DEBUG("[ArgumentParser] User set to: %s", user->c_str()); - } else if (arg == "--inclusion_path" && i + 1 < argc) { - inclusion_path = argv[++i]; - DC_LOG_DEBUG("[ArgumentParser] Inclusion path set to: %s", inclusion_path->c_str()); - } 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") { - 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 ] [--disable-mpi]", - argv[0]); - exit(0); - } else { - DC_LOG_ERROR("[ArgumentParser] Unknown argument: %s", arg.c_str()); - throw std::invalid_argument("Unknown argument: " + arg); - } - } -} - -/** - * @brief ConfigurationManager constructor. - * - * Initializes the ConfigurationManager with command-line arguments, loads the YAML configuration - * file, parses it, and sets up the necessary configurations. Also derives and validates - * configurations. - * - * @param argc Number of command-line arguments - * @param argv Array of command-line argument strings - */ -ConfigurationManager::ConfigurationManager(int argc, char** argv, bool print, - ExecutableType exe_type) - : path(DATACRUMBS_CONFIG_PATH), - exe_mode(ExecutableMode::RUN), - name("default"), - trace_log_dir(DATACRUMBS_LOG_DIR), - capture_probes(), - user("datacrumbs"), - run_id("0") { - struct rlimit rl; - if (getrlimit(RLIMIT_NOFILE, &rl) == 0) { - rl.rlim_cur = rl.rlim_max; // Set soft limit to hard limit - if (setrlimit(RLIMIT_NOFILE, &rl) != 0) { - DC_LOG_WARN("[ConfigurationManager] Failed to set ulimit -n to hard limit."); - } else { - DC_LOG_DEBUG("[ConfigurationManager] Set ulimit -n to hard limit: %lu", rl.rlim_max); - } - } else { - DC_LOG_WARN("[ConfigurationManager] Failed to get current ulimit -n."); - } - if (getrlimit(RLIMIT_MEMLOCK, &rl) == 0) { - rl.rlim_cur = rl.rlim_max; // Set soft limit to hard limit - if (setrlimit(RLIMIT_MEMLOCK, &rl) != 0) { - DC_LOG_WARN("[ConfigurationManager] Failed to set ulimit -l to hard limit."); - } else { - DC_LOG_DEBUG("[ConfigurationManager] Set ulimit -l to hard limit: %lu", rl.rlim_max); - } - } else { - DC_LOG_WARN("[ConfigurationManager] Failed to get current ulimit -l."); - } - // Set ulimit -c (core file size) to its hard limit - if (getrlimit(RLIMIT_CORE, &rl) == 0) { - rl.rlim_cur = rl.rlim_max; // Set soft limit to hard limit - if (setrlimit(RLIMIT_CORE, &rl) != 0) { - DC_LOG_WARN("[ConfigurationManager] Failed to set ulimit -c to hard limit."); - } else { - DC_LOG_DEBUG("[ConfigurationManager] Set ulimit -c to hard limit: %lu", rl.rlim_max); - } - } else { - DC_LOG_WARN("[ConfigurationManager] Failed to get current ulimit -c."); - } - DC_LOG_TRACE("[ConfigurationManager] Initializing with arguments..."); - ArgumentParser parser(argc, argv, exe_type); - this->name = parser.config_name; - // Override config path if provided as argument - if (parser.config_path) { - this->path = *parser.config_path; - DC_LOG_DEBUG("[ConfigurationManager] Config path overridden by argument: %s", - this->path.string().c_str()); - } - YAML::Node config; - std::filesystem::path config_path = this->path / (this->name + ".yaml"); - DC_LOG_DEBUG("[ConfigurationManager] Loading configuration file: %s", - config_path.string().c_str()); - try { - config = YAML::LoadFile(config_path.string()); - DC_LOG_DEBUG("[ConfigurationManager] Configuration file loaded successfully."); - } catch (const YAML::ParserException& e) { - DC_LOG_ERROR("[ConfigurationManager] Failed to parse configuration file: %s", - config_path.string().c_str()); - throw std::runtime_error("Failed to parse configuration file: " + config_path.string()); - } catch (const YAML::BadFile& e) { - DC_LOG_ERROR("[ConfigurationManager] Failed to load configuration file: %s", - config_path.string().c_str()); - throw std::runtime_error("Failed to load configuration file: " + config_path.string()); - } - - // Parse YAML configuration if loaded successfully - if (config) { - DC_LOG_TRACE("[ConfigurationManager] Parsing configuration YAML..."); - // Parse trace log directory from YAML - if (config[DC_YAML_TRACE_LOG_DIR]) { - this->trace_log_dir = config[DC_YAML_TRACE_LOG_DIR].as(); - DC_LOG_DEBUG("[ConfigurationManager] Trace log dir set from config: %s", - this->trace_log_dir.string().c_str()); - } - // Parse data directory from YAML or use default - if (config[DC_YAML_DATA_DIR]) { - this->data_dir = config[DC_YAML_DATA_DIR].as(); - DC_LOG_DEBUG("[ConfigurationManager] Data directory set from config: %s", - this->data_dir.string().c_str()); - } else { - this->data_dir = DATACRUMBS_DATA_DIR; - DC_LOG_DEBUG("[ConfigurationManager] Data directory not specified, using default: %s", - this->data_dir.string().c_str()); - } - // Parse capture probes from YAML - if (config[DC_YAML_CAPTURE_PROBES]) { - DC_LOG_TRACE("[ConfigurationManager] Parsing capture probes..."); - for (const auto& probe_node : config[DC_YAML_CAPTURE_PROBES]) { - if (probe_node["type"]) { - CaptureType type; - convert(probe_node["type"].as(), type); - - 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: { - auto header_probe = std::make_shared(); - if (probe_node["file"]) { - header_probe->file = probe_node["file"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Added HEADER probe: %s", - header_probe->file.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] Header name missing for HEADER capture type."); - throw std::invalid_argument("Header name is required for HEADER capture type."); - } - probe = header_probe; - break; - } - case CaptureType::BINARY: { - auto binary_probe = std::make_shared(); - if (probe_node["file"]) { - binary_probe->file = probe_node["file"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Added BINARY probe: %s", - binary_probe->file.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] Binary path missing for BINARY capture type."); - throw std::invalid_argument("Binary path is required for BINARY capture type."); - } - if (probe_node["include_offsets"]) { - binary_probe->include_offsets = probe_node["include_offsets"].as(); - DC_LOG_DEBUG("[ConfigurationManager] BINARY include_offsets set to: %s", - binary_probe->include_offsets ? "true" : "false"); - } else { - DC_LOG_DEBUG( - "[ConfigurationManager] No include_offsets provided for BINARY, using default: " - "false"); - binary_probe->include_offsets = false; // Default value - } - probe = binary_probe; - break; - } - case CaptureType::KSYM: { - probe = std::make_shared(); - DC_LOG_DEBUG("[ConfigurationManager] Added KSYM probe."); - if (probe_node["regex"]) { - probe->regex = probe_node["regex"].as(); - DC_LOG_DEBUG("[ConfigurationManager] KSYM probe regex set: %s", - probe->regex.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] Regex missing for KSYM capture type."); - throw std::invalid_argument("Regex is required for KSYM capture type."); - } - break; - } - case CaptureType::USDT: { - auto usdt_probe = std::make_shared(); - if (probe_node["binary_path"]) { - usdt_probe->binary_path = probe_node["binary_path"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Added USDT probe: %s", - usdt_probe->binary_path.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] Binary path missing for USDT capture type."); - throw std::invalid_argument("Binary path is required for USDT capture type."); - } - if (probe_node["provider"]) { - usdt_probe->provider = probe_node["provider"].as(); - DC_LOG_DEBUG("[ConfigurationManager] USDT provider set: %s", - usdt_probe->provider.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] Provider missing for USDT capture type."); - throw std::invalid_argument("Provider is required for USDT capture type."); - } - probe = usdt_probe; - break; - } - case CaptureType::CUSTOM: { - auto custom_probe = std::make_shared(); - if (probe_node["file"]) { - custom_probe->bpf_file = probe_node["file"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Added CUSTOM probe: %s", - custom_probe->bpf_file.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] BPF file missing for CUSTOM capture type."); - throw std::invalid_argument("BPF file is required for CUSTOM capture type."); - } - if (probe_node["probes"]) { - custom_probe->probe_file = probe_node["probes"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Custom probe file set: %s", - custom_probe->probe_file.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] Probe file missing for CUSTOM capture type."); - throw std::invalid_argument("Probe file is required for CUSTOM capture type."); - } - if (probe_node["start_event_id"]) { - custom_probe->start_event_id = probe_node["start_event_id"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Custom start event ID set: %lu", - custom_probe->start_event_id); - } else { - DC_LOG_DEBUG( - "[ConfigurationManager] No start event ID provided, using default: %lu", - custom_probe->start_event_id); - } - if (probe_node["process_header"]) { - custom_probe->process_header = probe_node["process_header"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Custom process header set: %s", - custom_probe->process_header.c_str()); - } else { - DC_LOG_DEBUG("[ConfigurationManager] No process header provided, using default."); - } - if (probe_node["event_type"]) { - custom_probe->event_type = probe_node["event_type"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Custom event type set: %lu", - custom_probe->event_type); - } else { - DC_LOG_DEBUG("[ConfigurationManager] No event type provided, using default: 1"); - custom_probe->event_type = 1; // Default event type - } - probe = custom_probe; - break; - } - default: - DC_LOG_ERROR("[ConfigurationManager] Unknown CaptureType: %s", - probe_node["type"].as().c_str()); - 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(); - convert(probe_type_str, probe->probe_type); - DC_LOG_DEBUG("[ConfigurationManager] Probe type set: %s", probe_type_str.c_str()); - } else { - DC_LOG_ERROR("[ConfigurationManager] Probe type missing for capture type: %s", - probe_node["type"].as().c_str()); - throw std::invalid_argument("Probe type is required for capture type: " + - probe_node["type"].as()); - } - // Parse probe name - if (probe_node["name"]) { - probe->name = probe_node["name"].as(); - } else { - DC_LOG_ERROR("[ConfigurationManager] Probe name missing for capture type: %s", - probe_node["type"].as().c_str()); - throw std::invalid_argument("Probe name is required for capture type: " + - probe_node["type"].as()); - } - // Parse optional regex - if (probe_node["regex"]) { - probe->regex = probe_node["regex"].as(); - DC_LOG_DEBUG("[ConfigurationManager] Probe regex set: %s", probe->regex.c_str()); - } else { - DC_LOG_TRACE("[ConfigurationManager] No regex provided for probe: %s", - probe->name.c_str()); - } - // Add probe to the list - if (probe) { - this->capture_probes.push_back(probe); - } - } - } - } - // Parse user from YAML or use default - if (config[DC_YAML_USER]) { - this->user = config[DC_YAML_USER].as(); - DC_LOG_DEBUG("[ConfigurationManager] User set from config: %s", this->user.c_str()); - } else { - DC_LOG_DEBUG("[ConfigurationManager] No user specified in config, using default: %s", - this->user.c_str()); - } - // Parse inclusion path from YAML - if (config[DC_YAML_INCLUSION_PATH]) { - this->inclusion_path = config[DC_YAML_INCLUSION_PATH].as(); - DC_LOG_DEBUG("[ConfigurationManager] Inclusion path set from config: %s", - this->inclusion_path.c_str()); - } - // Override run_id if provided as argument - if (parser.run_id) { - this->run_id = *parser.run_id; - DC_LOG_DEBUG("[ConfigurationManager] Run ID overridden by argument: %s", - this->run_id.c_str()); - } - if (parser.exe_mode) { - this->exe_mode = *parser.exe_mode; - DC_LOG_DEBUG("[ConfigurationManager] Executable mode set from argument: %d", - static_cast(this->exe_mode)); - } - // Override config path if provided as argument - if (parser.data_dir) { - this->data_dir = *parser.data_dir; - DC_LOG_DEBUG("[ConfigurationManager] Data directory overridden by argument: %s", - this->data_dir.string().c_str()); - } - // Override trace log dir if provided as argument - if (parser.trace_log_dir) { - this->trace_log_dir = *parser.trace_log_dir; - DC_LOG_DEBUG("[ConfigurationManager] Trace log dir overridden by argument: %s", - parser.trace_log_dir->c_str()); - } - // Override user if provided as argument - if (parser.user) { - this->user = *parser.user; - DC_LOG_DEBUG("[ConfigurationManager] User overridden by argument: %s", parser.user->c_str()); - } else { - DC_LOG_DEBUG("[ConfigurationManager] No user specified, using default: %s", - this->user.c_str()); - } - // Override inclusion path if provided as argument - if (parser.inclusion_path) { - this->inclusion_path = *parser.inclusion_path; - DC_LOG_DEBUG("[ConfigurationManager] Inclusion path overridden by argument: %s", - parser.inclusion_path->c_str()); - } - // Override log dir if provided as argument - if (parser.log_dir) { - this->log_dir = *parser.log_dir; - DC_LOG_DEBUG("[ConfigurationManager] Log directory overridden by argument: %s", - parser.log_dir->c_str()); - } else { - this->log_dir = std::filesystem::current_path(); - DC_LOG_DEBUG("[ConfigurationManager] No log directory specified, using default: %s", - this->log_dir.c_str()); - } - // Override disable_mpi if provided as argument - if (parser.disable_mpi) { - this->disable_mpi = *parser.disable_mpi; - DC_LOG_DEBUG("[ConfigurationManager] disable_mpi overridden by argument: %s", - this->disable_mpi ? "true" : "false"); - } else { - this->disable_mpi = false; - DC_LOG_DEBUG("[ConfigurationManager] No disable_mpi specified, using default: false"); - } - } - // Derive additional configuration values and validate - derive_configurations(); - validate_configurations(); - if (print) { - print_configurations(); - DC_LOG_INFO("[ConfigurationManager] Initialization complete."); - } -}; - -void ConfigurationManager::print_configurations() { - // Log final configuration for debugging - DC_LOG_INFO("[ConfigurationManager] Final configuration:"); - DC_LOG_INFO("[ConfigurationManager] Capture probes loaded: %zu", this->capture_probes.size()); - DC_LOG_INFO("[ConfigurationManager] Category map loaded with %zu entries.", category_map.size()); - DC_LOG_INFO(" Path: %s", this->path.string().c_str()); - DC_LOG_INFO(" Name: %s", this->name.c_str()); - DC_LOG_INFO(" Trace log dir: %s", this->trace_log_dir.string().c_str()); - DC_LOG_INFO(" Trace file path: %s", this->trace_file_path.string().c_str()); - DC_LOG_INFO(" Data dir: %s", this->data_dir.string().c_str()); - DC_LOG_INFO(" Probe file path: %s", this->probe_file_path.string().c_str()); - DC_LOG_INFO(" Probe exclusion file path: %s", this->probe_exclusion_file_path.string().c_str()); - DC_LOG_INFO(" Probe invalid file path: %s", this->probe_invalid_file_path.string().c_str()); - DC_LOG_INFO(" Manual probe path: %s", this->manual_probe_path.string().c_str()); - DC_LOG_INFO(" Category map path: %s", this->category_map_path.string().c_str()); - DC_LOG_INFO(" Profiling interval: %f", DATACRUMBS_TIME_INTERVAL_NS / 1e9); - DC_LOG_INFO(" Runtime User: %s", this->user.c_str()); - DC_LOG_INFO(" Install user: %s", DATACRUMBS_INSTALL_USER); - DC_LOG_INFO(" Hostname: %s", this->hostname.c_str()); - DC_LOG_INFO(" Capture probes: %d", static_cast(this->capture_probes.size())); - if (DATACRUMBS_MODE == 1) { - DC_LOG_INFO(" Mode: Tracing"); - } else if (DATACRUMBS_MODE == 2) { - DC_LOG_INFO(" Mode: Profiling"); - } - if (this->inclusion_path.empty()) { - DC_LOG_INFO(" Inclusion path: Not set"); - } else { - DC_LOG_INFO(" Inclusion path: %s", this->inclusion_path.c_str()); - } - for (const auto& probe : this->capture_probes) { - DC_LOG_INFO(" Probe: name=%s, type=%d, probe_type=%d, regex=%s", probe->name.c_str(), - static_cast(probe->type), static_cast(probe->probe_type), - probe->regex.c_str()); - } -} - -/** - * @brief Derives additional configuration values based on current settings. - * - * This function generates file paths for trace files, probe files, exclusion files, - * and category maps based on the hostname, process ID, timestamp, and user. - */ -void ConfigurationManager::derive_configurations() { - DC_LOG_TRACE("[ConfigurationManager] Deriving configurations..."); - DC_LOG_DEBUG("[ConfigurationManager] Process ID: %d for rank: %d", getpid(), this->mpi_rank); - - // Use this->hostname (std::string) instead of local char array - std::string hostname; - char hostname_buf[256] = {0}; - if (gethostname(hostname_buf, sizeof(hostname_buf) - 1) != 0) { - DC_LOG_ERROR("[ConfigurationManager] Failed to get hostname."); - throw std::runtime_error("Failed to get hostname."); - } - hostname = hostname_buf; - this->hostname = hostname; - DC_LOG_DEBUG("[ConfigurationManager] Hostname: %s for rank: %d", this->hostname.c_str(), - this->mpi_rank); - - std::string generated_file_suffix; - if (this->disable_mpi) { - generated_file_suffix = this->user + "-" + this->run_id + "-" + hostname + "-" + this->name; - } else { - generated_file_suffix = this->user + "-" + this->run_id + "-" + std::to_string(this->mpi_rank) + - "-" + std::to_string(this->mpi_size) + "-" + this->name; - } - - std::string trace_file_name = "trace-" + generated_file_suffix + ".pfw.gz"; - this->trace_file_path = this->trace_log_dir / trace_file_name; - DC_LOG_DEBUG("[ConfigurationManager] Trace file path: %s for rank: %d", - this->trace_file_path.string().c_str(), this->mpi_rank); - - std::string hostname_str(this->name); - // Remove digits from hostname for file naming - hostname_str.erase(std::remove_if(hostname_str.begin(), hostname_str.end(), ::isdigit), - hostname_str.end()); - DC_LOG_DEBUG("[ConfigurationManager] Hostname (digits removed): %s", hostname_str.c_str()); - - std::string lookup_file_suffix = std::string(DATACRUMBS_INSTALL_USER) + "-" + hostname_str; - - // Construct probe file name: probes-DATACRUMBS_INSTALL_USER-host.json - std::string probe_file_name = "probes-" + lookup_file_suffix + ".json"; - this->probe_file_path = this->data_dir / probe_file_name; - if (this->mpi_rank == 0) - DC_LOG_DEBUG("[ConfigurationManager] Probe file path: %s", - this->probe_file_path.string().c_str()); - - // Construct probe exclusion file name: probes-exclusion-DATACRUMBS_INSTALL_USER-host.json - std::string probe_exclusion_file_name = "probes-exclusion-" + lookup_file_suffix + ".json"; - this->probe_exclusion_file_path = this->data_dir / probe_exclusion_file_name; - if (this->mpi_rank == 0) - DC_LOG_DEBUG("[ConfigurationManager] Probe exclusion file path: %s", - this->probe_exclusion_file_path.string().c_str()); - - // Construct probe invalid file name: probes-invalid-DATACRUMBS_INSTALL_USER-host.json - std::string probe_invalid_file_name = "probes-invalid-" + lookup_file_suffix + ".json"; - this->probe_invalid_file_path = this->data_dir / probe_invalid_file_name; - if (this->mpi_rank == 0) - DC_LOG_DEBUG("[ConfigurationManager] Probe invalid path: %s", - this->probe_invalid_file_path.string().c_str()); - - // Construct categories file name: categories-DATACRUMBS_INSTALL_USER-host.json - std::string categories_file_name = "categories-" + lookup_file_suffix + ".json"; - this->category_map_path = this->data_dir / categories_file_name; - if (this->mpi_rank == 0) - DC_LOG_DEBUG("[ConfigurationManager] Category map path: %s", - this->category_map_path.string().c_str()); - - // Construct manual probe file name: manual-probes-DATACRUMBS_INSTALL_USER-host.json - std::string manual_probe_file_name = "manual-probes-" + lookup_file_suffix + ".json"; - this->manual_probe_path = this->data_dir / manual_probe_file_name; - if (this->mpi_rank == 0) - DC_LOG_DEBUG("[ConfigurationManager] Manual probe path: %s", - this->manual_probe_path.string().c_str()); - - // Load category_map from JSON file using json-c - std::string category_json_path = category_map_path.string(); - if (!category_json_path.empty() && std::filesystem::exists(category_json_path)) { - // Read file into string - std::ifstream file(category_json_path); - if (!file) { - DC_LOG_ERROR("Failed to open category map file: %s for rank: %d", category_json_path.c_str(), - this->mpi_rank); - throw std::invalid_argument("Failed to open category map file: " + category_json_path); - } - std::string json_str((std::istreambuf_iterator(file)), std::istreambuf_iterator()); - file.close(); - - // Parse JSON - struct json_object* root = json_tokener_parse(json_str.c_str()); - if (!root) { - DC_LOG_ERROR("Failed to parse JSON from %s for rank: %d", category_json_path.c_str(), - this->mpi_rank); - throw std::invalid_argument("Failed to parse JSON from: " + category_json_path); - } - - // Expecting a JSON object with event_id as keys - json_object_object_foreach(root, key, val) { - uint64_t event_id = std::stoull(key); - const char* probe_name = nullptr; - const char* function_name = nullptr; - - struct json_object* probe_obj = nullptr; - struct json_object* func_obj = nullptr; - - if (json_object_object_get_ex(val, "probe_name", &probe_obj) && - json_object_object_get_ex(val, "function_name", &func_obj)) { - probe_name = json_object_get_string(probe_obj); - function_name = json_object_get_string(func_obj); - category_map[event_id] = - std::make_pair(probe_name ? probe_name : "", function_name ? function_name : ""); - } - } - json_object_put(root); - } else { - DC_LOG_WARN("[ConfigurationManager] Category map file does not exist: %s for rank: %d", - category_json_path.c_str(), this->mpi_rank); - } -} - -/** - * @brief Validates the loaded and derived configuration values. - * - * Checks for the presence of capture probes and the existence of required directories. - * Throws exceptions if validation fails. - */ -void ConfigurationManager::validate_configurations() { - if (this->capture_probes.empty()) { - DC_LOG_ERROR( - "[ConfigurationManager] No capture probes defined in the configuration for rank: %d.", - this->mpi_rank); - throw std::invalid_argument("At least one capture probe must be defined."); - } - if (this->data_dir.empty() || !std::filesystem::exists(this->data_dir)) { - DC_LOG_ERROR("[ConfigurationManager] Data directory does not exist: %s for rank: %d.", - this->data_dir.string().c_str(), this->mpi_rank); - throw std::runtime_error("Data directory does not exist: " + this->data_dir.string()); - } - if (this->trace_log_dir.empty() || - !std::filesystem::exists(std::filesystem::path(this->trace_log_dir))) { - DC_LOG_ERROR("[ConfigurationManager] Trace log directory does not exist: %s for rank: %d.", - this->trace_log_dir.string().c_str(), this->mpi_rank); - throw std::runtime_error("Trace log directory does not exist: " + - std::filesystem::path(this->trace_log_dir).string()); - } -} - -void ConfigurationManager::load_mpi_configurations() { - if (this->disable_mpi) { - this->mpi_rank = 0; - this->mpi_size = 1; - DC_LOG_DEBUG("[ConfigurationManager] MPI disabled, setting rank to 0 and size to 1."); - } else { - DC_LOG_DEBUG("[ConfigurationManager] MPI enabled, initializing rank and size."); - int initialized; - int status = MPI_Initialized(&initialized); - if (status == MPI_SUCCESS && initialized == true) { - MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); - MPI_Comm_size(MPI_COMM_WORLD, &mpi_size); - } - } -} - -} // namespace datacrumbs diff --git a/src/datacrumbs/common/configuration_manager.h b/src/datacrumbs/common/configuration_manager.h deleted file mode 100644 index 53384eb8..00000000 --- a/src/datacrumbs/common/configuration_manager.h +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef DATACRUMBS_COMMON_CONFIGURATION_MANAGER_H__ -#define DATACRUMBS_COMMON_CONFIGURATION_MANAGER_H__ - -/** - * @file configuration_manager.h - * @brief Internal header for the ConfigurationManager class. - * - * This file defines the ConfigurationManager class, which is responsible for - * managing, validating, and deriving configuration settings for the DataCrumbs library. - */ -// include first -#include -// other headers -#include -#include -#include - -// std headers -#include -#include -#include -#include -#include -#include - -namespace datacrumbs { - -/** - * @class ConfigurationManager - * @brief Manages configuration settings for the DataCrumbs library. - * - * The ConfigurationManager class handles loading, validating, and deriving - * configuration settings based on command-line arguments. It ensures that all - * required configurations are set and valid before the library is used. - */ -class ConfigurationManager { - public: - // Path to the configuration file provided by the user - std::filesystem::path path; - - // Directory for data storage - std::filesystem::path data_dir; - - // Type of executable (SIMPLE or DAEMON) - ExecutableMode exe_mode; - - // Name of the configuration file - std::string name; - - // Directory where trace logs will be stored - std::filesystem::path trace_log_dir; - - // List of capture probes to be used in the session - std::vector> capture_probes; - - // User associated with the configuration - std::string user; - - std::string inclusion_path; // Path to the inclusion file - - std::string log_dir; // Directory for log files - - // Derived configuration: path to the trace file - std::filesystem::path trace_file_path; - - // Derived configuration: path to the probe file - std::filesystem::path probe_file_path; - - // Derived configuration: path to the probe exclusion file - std::filesystem::path probe_exclusion_file_path; - - // Derived configuration: path to the probe invalid file - std::filesystem::path probe_invalid_file_path; - - // Derived configuration: path to the category map file - std::filesystem::path category_map_path; - - // Derived configuration: path to the manual probe file - std::filesystem::path manual_probe_path; - - // Derived configuration: category map for event IDs - std::unordered_map> category_map; - - // Derived configuration: current hostname - std::string hostname; - - // Unique run identifier - std::string run_id; - - // Flag to disable MPI usage - bool disable_mpi; - - // MPI rank of the current process - int mpi_rank{0}; - - // MPI size (total number of processes) - int mpi_size{1}; - - /** - * @brief Constructor that initializes the ConfigurationManager with command-line arguments. - * - * Parses the command-line arguments to set up the configuration, derives necessary - * configurations, and validates them. If any required configuration is missing or invalid, - * logs an error and exits the program. - * - * @param argc Number of command-line arguments - * @param argv Array of command-line argument strings - */ - ConfigurationManager(int argc, char** argv, bool print = true, - ExecutableType exe_type = ExecutableType::SIMPLE); - - ConfigurationManager() { - // Default constructor for internal use - } - - // For debugging: prints all configuration values to the log - void print_configurations(); - - // Loads MPI-related configurations - void load_mpi_configurations(); - - private: - /** - * @brief Derives configurations based on the provided command-line arguments. - * - * Sets up paths and other configurations based on the mode of operation. - */ - void derive_configurations(); - - /** - * @brief Validates the derived configurations. - * - * Checks if all required configurations are set and valid. If any configuration is invalid, - * logs an error and exits the program. This ensures correct operation of the DataCrumbs library. - */ - void validate_configurations(); - - // Loads the category map from the specified JSON file - void load_category_map(); -}; - -class ArgumentParser { - public: - std::string config_name; ///< Name of the configuration to load - std::optional trace_log_dir; ///< Optional trace log directory - std::optional config_path; ///< Optional configuration file path - std::optional data_dir; ///< Optional data directory - std::optional user; ///< Optional user argument - std::optional skip_event_threshold_us; ///< Optional skip event threshold - std::optional inclusion_path; ///< Optional inclusion path - std::optional log_dir; ///< Optional log directory - std::optional exe_mode; ///< Optional executable mode - std::optional run_id; ///< Optional run_id - std::optional disable_mpi; ///< Optional disable_mpi flag - - /** - * @brief Constructor that parses command-line arguments. - * @param argc Number of command-line arguments - * @param argv Array of command-line argument strings - * @throws std::invalid_argument if required arguments are missing or unknown arguments are found - */ - ArgumentParser(int argc, char** argv, ExecutableType exe_type = ExecutableType::SIMPLE); -}; - -} // namespace datacrumbs - -#endif // DATACRUMBS_COMMON_CONFIGURATION_MANAGER_H__ diff --git a/src/datacrumbs/common/data_structures.h b/src/datacrumbs/common/data_structures.h index b7d299d3..7a43b37c 100644 --- a/src/datacrumbs/common/data_structures.h +++ b/src/datacrumbs/common/data_structures.h @@ -12,9 +12,43 @@ #include // std headers #include +#include #include namespace datacrumbs { +struct ProbeArgCaptureSpec { + unsigned int index = 0; + unsigned int num_bytes = 0; + bool is_pointer = false; + std::string label; + std::string c_type; + + json_object* toJson() const { + json_object* j = json_object_new_object(); + json_object_object_add(j, "index", json_object_new_int(index)); + json_object_object_add(j, "num_bytes", json_object_new_int(num_bytes)); + json_object_object_add(j, "is_pointer", json_object_new_boolean(is_pointer)); + json_object_object_add(j, "label", json_object_new_string(label.c_str())); + json_object_object_add(j, "c_type", json_object_new_string(c_type.c_str())); + return j; + } + + static ProbeArgCaptureSpec fromJson(const json_object* j) { + ProbeArgCaptureSpec spec; + json_object* obj = nullptr; + if (json_object_object_get_ex(j, "index", &obj)) spec.index = json_object_get_int(obj); + if (json_object_object_get_ex(j, "num_bytes", &obj)) spec.num_bytes = json_object_get_int(obj); + if (json_object_object_get_ex(j, "is_pointer", &obj)) { + spec.is_pointer = json_object_get_boolean(obj); + } + if (json_object_object_get_ex(j, "label", &obj) && obj) + spec.label = json_object_get_string(obj); + if (json_object_object_get_ex(j, "c_type", &obj) && obj) + spec.c_type = json_object_get_string(obj); + return spec; + } +}; + struct EventWithId { char event_type; unsigned long long index; @@ -64,13 +98,20 @@ class Probe { // Default constructor Probe() {} // Copy constructor - Probe(const Probe& other) : type(other.type), name(other.name), functions(other.functions) { + Probe(const Probe& other) + : type(other.type), + name(other.name), + functions(other.functions), + function_arguments(other.function_arguments) { DC_LOG_TRACE("Probe copy constructor called"); } // Move constructor Probe(Probe&& other) noexcept - : type(other.type), name(std::move(other.name)), functions(std::move(other.functions)) { + : type(other.type), + name(std::move(other.name)), + functions(std::move(other.functions)), + function_arguments(std::move(other.function_arguments)) { DC_LOG_TRACE("Probe move constructor called"); } // Constructor initializing the probe type @@ -79,6 +120,8 @@ class Probe { ProbeType type; // The type of probe (e.g., SYSCALLS, KPROBE, etc.) std::string name; // Name of the probe std::vector functions; // List of functions or arguments for the probe + std::unordered_map> + function_arguments; // Optional per-function runtime arg capture specification // Validates the probe's configuration virtual bool validate() const { @@ -112,6 +155,18 @@ class Probe { json_object_object_add(j, "functions", funcs); + if (!function_arguments.empty()) { + json_object* jfunction_arguments = json_object_new_object(); + for (const auto& [function_name, arg_specs] : function_arguments) { + json_object* jarg_specs = json_object_new_array(); + for (const auto& arg_spec : arg_specs) { + json_object_array_add(jarg_specs, arg_spec.toJson()); + } + json_object_object_add(jfunction_arguments, function_name.c_str(), jarg_specs); + } + json_object_object_add(j, "function_arguments", jfunction_arguments); + } + return j; } @@ -130,8 +185,36 @@ class Probe { if (func) p.functions.push_back(json_object_get_string(func)); } } + + json_object* function_arguments_obj = json_object_object_get(j, "function_arguments"); + if (function_arguments_obj && + json_object_get_type(function_arguments_obj) == json_type_object) { + json_object_object_foreach(function_arguments_obj, function_name, arg_specs_obj) { + if (!arg_specs_obj || json_object_get_type(arg_specs_obj) != json_type_array) { + continue; + } + std::vector arg_specs; + const int spec_len = json_object_array_length(arg_specs_obj); + for (int i = 0; i < spec_len; ++i) { + json_object* arg_spec_obj = json_object_array_get_idx(arg_specs_obj, i); + if (!arg_spec_obj || json_object_get_type(arg_spec_obj) != json_type_object) { + continue; + } + arg_specs.push_back(ProbeArgCaptureSpec::fromJson(arg_spec_obj)); + } + p.function_arguments[function_name] = std::move(arg_specs); + } + } return p; } + + const std::vector* getArgSpecs(const std::string& function_name) const { + const auto it = function_arguments.find(function_name); + if (it == function_arguments.end()) { + return nullptr; + } + return &it->second; + } }; // Probe for system calls @@ -162,6 +245,7 @@ struct SysCallProbe : public Probe { p.type = base.type; p.name = base.name; p.functions = base.functions; + p.function_arguments = base.function_arguments; return p; } }; @@ -194,6 +278,7 @@ struct KProbe : public Probe { p.type = base.type; p.name = base.name; p.functions = base.functions; + p.function_arguments = base.function_arguments; return p; } }; @@ -238,6 +323,7 @@ struct UProbe : public Probe { p.type = base.type; p.name = base.name; p.functions = base.functions; + p.function_arguments = base.function_arguments; json_object* bin_obj = json_object_object_get(j, "binary_path"); if (bin_obj) p.binary_path = json_object_get_string(bin_obj); @@ -293,6 +379,7 @@ struct USDTProbe : public Probe { p.type = base.type; p.name = base.name; p.functions = base.functions; + p.function_arguments = base.function_arguments; json_object* bin_obj = json_object_object_get(j, "binary_path"); if (bin_obj) p.binary_path = json_object_get_string(bin_obj); @@ -367,6 +454,7 @@ struct CustomProbe : public Probe { p.type = base.type; p.name = base.name; p.functions = base.functions; + p.function_arguments = base.function_arguments; json_object* bpf_obj = json_object_object_get(j, "bpf_path"); if (bpf_obj) p.bpf_path = json_object_get_string(bpf_obj); @@ -394,6 +482,45 @@ class CaptureProbe { 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 + std::unordered_map> + function_arguments; // Optional per-function arg capture specification from YAML + + const std::vector* getArgSpecs(const std::string& function_name) const { + auto lookup = [this](const std::string& key) -> const std::vector* { + const auto it = function_arguments.find(key); + if (it == function_arguments.end()) { + return nullptr; + } + return &it->second; + }; + + if (const auto* exact = lookup(function_name)) { + return exact; + } + + const auto offset_pos = function_name.find(':'); + const std::string base_name = + (offset_pos == std::string::npos) ? function_name : function_name.substr(0, offset_pos); + if (base_name != function_name) { + if (const auto* base = lookup(base_name)) { + return base; + } + } + + if (probe_type == ProbeType::SYSCALLS) { + if (const auto* prefixed = lookup("sys_" + base_name)) { + return prefixed; + } + if (const auto* x64_prefixed = lookup("__x64_sys_" + base_name)) { + return x64_prefixed; + } + } + + if (const auto* wildcard = lookup("*")) { + return wildcard; + } + return lookup("default"); + } }; // Capture probe for kernel symbols diff --git a/src/datacrumbs/common/logging.h b/src/datacrumbs/common/logging.h index f5d83d1e..60409fcf 100644 --- a/src/datacrumbs/common/logging.h +++ b/src/datacrumbs/common/logging.h @@ -35,7 +35,6 @@ inline std::mutex& get_log_mutex() { return mtx; } -// Default formatter: just joins messages with spaces inline std::string default_formatter(const std::vector& messages) { std::string result; for (size_t i = 0; i < messages.size(); ++i) { @@ -45,7 +44,6 @@ inline std::string default_formatter(const std::vector& messages) { return result; } -// Variadic template to accept any number of messages inline void log_message_fmt(const char* level, const char* fmt, ...) { FILE* out = get_log_file(); @@ -76,17 +74,16 @@ inline void log_message_fmt_no_new_line(const char* level, const char* fmt, ...) fflush(out); } -// Overload for default formatter template inline void log_message(const char* level, const char* fmt, Args&&... args) { logging_internal::log_message_fmt(level, fmt, std::forward(args)...); } + template inline void log_message_no_new_line(const char* level, const char* fmt, Args&&... args) { logging_internal::log_message_fmt_no_new_line(level, fmt, std::forward(args)...); } -// Trace-level logging with file and line info #if DATACRUMBS_LOG_LEVEL >= LOG_LEVEL_DEBUG inline void log_message_trace(const char* level, const char* file, int line, const char* fmt, ...) { FILE* out = get_log_file(); @@ -114,7 +111,6 @@ inline void log_message_trace(const char* level, const char* file, int line, con #define DC_LOG_PRINT(...) (void)0 #endif -// Macros for logging #if DATACRUMBS_LOG_LEVEL >= LOG_LEVEL_ERROR #define DC_LOG_ERROR(...) datacrumbs::logging_internal::log_message("ERROR", __VA_ARGS__) #else @@ -151,9 +147,8 @@ inline void log_progress(const std::string& message, size_t current, size_t tota 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 + constexpr size_t PRINT_INTERVAL = 10000; - // Only print every PRINT_INTERVAL events or when done if (current != total && (current - last_printed) < PRINT_INTERVAL) { return; } @@ -166,11 +161,9 @@ inline void log_progress(const std::string& message, size_t current, size_t tota 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); @@ -178,11 +171,11 @@ inline void log_progress(const std::string& message, size_t current, size_t tota if (current == total) { #ifndef LOG_TO_FILE - DC_LOG_PRINT(""); // Print newline to finish the progress line + DC_LOG_PRINT(""); #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 + start_time = steady_clock::now(); last_printed = 0; } } @@ -192,9 +185,8 @@ inline void log_progress(const std::string& message, size_t current) { 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 + constexpr size_t PRINT_INTERVAL = 10000; - // Only print every PRINT_INTERVAL events if ((current - last_printed) < PRINT_INTERVAL) { return; } @@ -252,18 +244,17 @@ inline void log_progress(const std::string& message, size_t current) { 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()); #endif } + } // namespace datacrumbs::logging_internal -// Progress logging macro + #define DC_LOG_PROGRESS(message, current, total) \ datacrumbs::logging_internal::log_progress(message, current, total) diff --git a/src/datacrumbs/common/probe_file.h b/src/datacrumbs/common/probe_file.h new file mode 100644 index 00000000..8274b655 --- /dev/null +++ b/src/datacrumbs/common/probe_file.h @@ -0,0 +1,284 @@ +#ifndef DATACRUMBS_COMMON_PROBE_FILE_H__ +#define DATACRUMBS_COMMON_PROBE_FILE_H__ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace datacrumbs::probe_file { + +inline std::filesystem::path secret_path() { + return DATACRUMBS_PROBE_SECRET_FILE; +} + +inline std::string bytes_to_hex(const unsigned char* data, std::size_t size) { + std::ostringstream oss; + oss << std::hex << std::setfill('0'); + for (std::size_t i = 0; i < size; ++i) { + oss << std::setw(2) << static_cast(data[i]); + } + return oss.str(); +} + +inline std::string read_text_file(const std::filesystem::path& path) { + std::ifstream input(path); + if (!input.is_open()) { + return ""; + } + return std::string((std::istreambuf_iterator(input)), std::istreambuf_iterator()); +} + +inline std::string read_probe_payload(const std::filesystem::path& path) { + std::ifstream input(path, std::ios::binary); + if (!input.is_open()) { + return ""; + } + + unsigned char magic[2] = {0, 0}; + input.read(reinterpret_cast(magic), sizeof(magic)); + input.close(); + + const bool is_gzip = magic[0] == 0x1f && magic[1] == 0x8b; + if (!is_gzip) { + return read_text_file(path); + } + + gzFile gz_file = gzopen(path.string().c_str(), "rb"); + if (gz_file == nullptr) { + return ""; + } + + std::string payload; + char buffer[4096]; + int read_bytes = 0; + while ((read_bytes = gzread(gz_file, buffer, sizeof(buffer))) > 0) { + payload.append(buffer, read_bytes); + } + gzclose(gz_file); + return payload; +} + +inline bool write_owner_only_file(const std::filesystem::path& path, const std::string& content) { + std::error_code ec; + std::filesystem::create_directories(path.parent_path(), ec); + if (ec) { + return false; + } + + const int fd = open(path.c_str(), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); + if (fd < 0) { + return false; + } + + const ssize_t written = write(fd, content.data(), content.size()); + const bool chown_ok = (geteuid() != 0) || (fchown(fd, 0, 0) == 0); + const bool chmod_ok = (fchmod(fd, S_IRUSR) == 0); + const bool close_ok = (close(fd) == 0); + return written == static_cast(content.size()) && chown_ok && chmod_ok && close_ok; +} + +inline bool write_gzip_file(const std::filesystem::path& path, const std::string& payload) { + std::error_code ec; + std::filesystem::create_directories(path.parent_path(), ec); + if (ec) { + return false; + } + + gzFile gz_file = gzopen(path.string().c_str(), "wb"); + if (gz_file == nullptr) { + return false; + } + + const int written = gzwrite(gz_file, payload.data(), static_cast(payload.size())); + const int close_status = gzclose(gz_file); + chmod(path.c_str(), S_IRUSR | S_IWUSR); + return written > 0 && close_status == Z_OK; +} + +inline bool ensure_probe_secret(std::string* secret_out = nullptr) { + const auto path = secret_path(); + std::string secret = read_text_file(path); + if (!secret.empty()) { + if (geteuid() == 0) { + chown(path.c_str(), 0, 0); + } + chmod(path.c_str(), S_IRUSR); + if (secret_out != nullptr) { + *secret_out = secret; + } + return true; + } + + std::error_code ec; + if (std::filesystem::exists(path, ec) && geteuid() != 0) { + return false; + } + if (geteuid() != 0) { + return false; + } + + unsigned char random_bytes[32]; + if (RAND_bytes(random_bytes, sizeof(random_bytes)) != 1) { + return false; + } + + secret = bytes_to_hex(random_bytes, sizeof(random_bytes)); + if (!write_owner_only_file(path, secret)) { + return false; + } + + if (secret_out != nullptr) { + *secret_out = secret; + } + return true; +} + +inline std::string hmac_sha256_hex(const std::string& secret, const std::string& payload) { + unsigned char digest[EVP_MAX_MD_SIZE]; + unsigned int digest_len = 0; + if (HMAC(EVP_sha256(), secret.data(), static_cast(secret.size()), + reinterpret_cast(payload.data()), payload.size(), digest, + &digest_len) == nullptr) { + return ""; + } + return bytes_to_hex(digest, digest_len); +} + +inline std::string categories_payload(json_object* categories) { + const char* payload = json_object_to_json_string_ext(categories, JSON_C_TO_STRING_PLAIN); + return payload != nullptr ? payload : ""; +} + +inline std::string signed_document_payload(json_object* summary, json_object* categories) { + json_object* root = json_object_new_object(); + json_object_object_add(root, "summary", json_object_get(summary)); + json_object_object_add(root, "categories", json_object_get(categories)); + json_object_object_add(root, "checksum_algorithm", json_object_new_string("hmac-sha256")); + const char* payload = json_object_to_json_string_ext(root, JSON_C_TO_STRING_PLAIN); + const std::string result = payload != nullptr ? payload : ""; + json_object_put(root); + return result; +} + +inline json_object* build_signed_categories_document( + json_object* categories, const std::unordered_map& summary_fields, + const std::string& secret) { + json_object* root = json_object_new_object(); + json_object* summary = json_object_new_object(); + + for (const auto& [key, value] : summary_fields) { + json_object_object_add(summary, key.c_str(), json_object_new_string(value.c_str())); + } + + json_object_object_add(root, "summary", summary); + json_object_object_add(root, "categories", json_object_get(categories)); + json_object_object_add(root, "checksum_algorithm", json_object_new_string("hmac-sha256")); + const std::string payload = signed_document_payload(summary, categories); + json_object_object_add(root, "checksum", + json_object_new_string(hmac_sha256_hex(secret, payload).c_str())); + return root; +} + +inline json_object* verified_categories_from_root(json_object* root, const std::string& secret, + std::string* error = nullptr) { + if (root == nullptr || json_object_get_type(root) != json_type_object) { + if (error != nullptr) { + *error = "probe file root must be a JSON object"; + } + return nullptr; + } + + json_object* categories = nullptr; + json_object* summary = nullptr; + json_object* checksum_obj = nullptr; + json_object* algorithm_obj = nullptr; + if (!json_object_object_get_ex(root, "summary", &summary) || + json_object_get_type(summary) != json_type_object) { + if (error != nullptr) { + *error = "probe file is missing summary object"; + } + return nullptr; + } + if (!json_object_object_get_ex(root, "categories", &categories) || + json_object_get_type(categories) != json_type_array) { + if (error != nullptr) { + *error = "probe file is missing a categories array"; + } + return nullptr; + } + if (!json_object_object_get_ex(root, "checksum", &checksum_obj) || + json_object_get_type(checksum_obj) != json_type_string) { + if (error != nullptr) { + *error = "probe file is missing checksum"; + } + return nullptr; + } + if (!json_object_object_get_ex(root, "checksum_algorithm", &algorithm_obj) || + json_object_get_type(algorithm_obj) != json_type_string || + std::string(json_object_get_string(algorithm_obj)) != "hmac-sha256") { + if (error != nullptr) { + *error = "probe file checksum algorithm is unsupported"; + } + return nullptr; + } + + const std::string expected = + hmac_sha256_hex(secret, signed_document_payload(summary, categories)); + const std::string actual = json_object_get_string(checksum_obj); + if (expected.empty() || actual != expected) { + if (error != nullptr) { + *error = "probe file checksum verification failed"; + } + return nullptr; + } + + return json_object_get(categories); +} + +inline json_object* load_verified_categories_from_file(const std::filesystem::path& path, + std::string* error = nullptr) { + std::string secret; + if (!ensure_probe_secret(&secret)) { + if (error != nullptr) { + *error = "failed to read or create probe signing secret"; + } + return nullptr; + } + + const std::string payload = read_probe_payload(path); + if (payload.empty()) { + if (error != nullptr) { + *error = "failed to read probe file"; + } + return nullptr; + } + + json_object* root = json_tokener_parse(payload.c_str()); + if (root == nullptr) { + if (error != nullptr) { + *error = "failed to parse probe file"; + } + return nullptr; + } + + json_object* categories = verified_categories_from_root(root, secret, error); + json_object_put(root); + return categories; +} + +} // namespace datacrumbs::probe_file + +#endif diff --git a/src/datacrumbs/common/probe_signing_service.cpp b/src/datacrumbs/common/probe_signing_service.cpp new file mode 100644 index 00000000..388c8229 --- /dev/null +++ b/src/datacrumbs/common/probe_signing_service.cpp @@ -0,0 +1,252 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace datacrumbs::probe_signing_service { + +namespace { + +std::filesystem::path allowed_client_executable() { + return std::filesystem::path(DATACRUMBS_INSTALL_BIN_DIR) / "datacrumbs_probe_configurator_exec"; +} + +std::string build_response(bool ok, const std::string& payload, const std::string& error) { + json_object* root = json_object_new_object(); + json_object_object_add(root, "ok", json_object_new_boolean(ok ? 1 : 0)); + if (!payload.empty()) { + json_object_object_add(root, "payload", json_object_new_string(payload.c_str())); + } + if (!error.empty()) { + json_object_object_add(root, "error", json_object_new_string(error.c_str())); + } + const char* response = json_object_to_json_string_ext(root, JSON_C_TO_STRING_PLAIN); + std::string output = response != nullptr ? response : ""; + json_object_put(root); + return output; +} + +bool read_all_from_fd(int fd, std::string* payload) { + char buffer[4096]; + payload->clear(); + ssize_t read_bytes = 0; + while ((read_bytes = read(fd, buffer, sizeof(buffer))) > 0) { + payload->append(buffer, static_cast(read_bytes)); + } + return read_bytes == 0; +} + +bool write_all_to_fd(int fd, const std::string& payload) { + std::size_t total_written = 0; + while (total_written < payload.size()) { + const ssize_t written = + write(fd, payload.data() + total_written, payload.size() - total_written); + if (written <= 0) { + return false; + } + total_written += static_cast(written); + } + return true; +} + +std::string sign_signing_payload(const std::string& request_payload, std::string* error) { + json_object* root = json_tokener_parse(request_payload.c_str()); + if (root == nullptr || json_object_get_type(root) != json_type_object) { + if (error != nullptr) { + *error = "failed to parse signing request"; + } + if (root != nullptr) { + json_object_put(root); + } + return ""; + } + + json_object* signing_payload = nullptr; + if (!json_object_object_get_ex(root, "signing_payload", &signing_payload) || + json_object_get_type(signing_payload) != json_type_string) { + if (error != nullptr) { + *error = "signing request missing signing payload"; + } + json_object_put(root); + return ""; + } + + std::string secret; + if (!datacrumbs::probe_file::ensure_probe_secret(&secret)) { + if (error != nullptr) { + *error = "failed to read signing secret"; + } + json_object_put(root); + return ""; + } + + const std::string result = + datacrumbs::probe_file::hmac_sha256_hex(secret, json_object_get_string(signing_payload)); + json_object_put(root); + if (result.empty() && error != nullptr) { + *error = "failed to compute probe signature"; + } + return result; +} + +bool is_authorized_client(int client_fd, std::string* error) { + struct ucred credentials{}; + socklen_t credentials_size = sizeof(credentials); + if (getsockopt(client_fd, SOL_SOCKET, SO_PEERCRED, &credentials, &credentials_size) != 0) { + if (error != nullptr) { + *error = "failed to get peer credentials"; + } + return false; + } + + char exe_path_buffer[PATH_MAX] = {0}; + const std::string proc_exe = "/proc/" + std::to_string(credentials.pid) + "/exe"; + const ssize_t exe_len = readlink(proc_exe.c_str(), exe_path_buffer, sizeof(exe_path_buffer) - 1); + if (exe_len <= 0) { + if (error != nullptr) { + *error = "failed to resolve peer executable path"; + } + return false; + } + exe_path_buffer[exe_len] = '\0'; + + std::error_code ec; + const auto peer_executable = std::filesystem::weakly_canonical(exe_path_buffer, ec); + if (ec) { + if (error != nullptr) { + *error = "failed to canonicalize peer executable path"; + } + return false; + } + + ec.clear(); + const auto allowed_executable = + std::filesystem::weakly_canonical(allowed_client_executable(), ec); + if (ec) { + if (error != nullptr) { + *error = "failed to resolve allowed probe configurator path"; + } + return false; + } + + if (peer_executable != allowed_executable) { + if (error != nullptr) { + *error = "probe signing requests are only accepted from datacrumbs_probe_configurator"; + } + DC_LOG_WARN("Rejected signer request from pid=%d exe=%s expected=%s", credentials.pid, + peer_executable.string().c_str(), allowed_executable.string().c_str()); + return false; + } + + return true; +} + +} // namespace + +std::filesystem::path socket_path() { + return DATACRUMBS_SIGN_PROBES_SOCKET_PATH; +} + +int run_signing_service() { + std::string secret; + if (!datacrumbs::probe_file::ensure_probe_secret(&secret)) { + DC_LOG_ERROR("Failed to create or read probe signing secret"); + return 1; + } + + const auto path = socket_path(); + std::error_code ec; + std::filesystem::create_directories(path.parent_path(), ec); + if (ec) { + DC_LOG_ERROR("Failed to create signer socket directory: %s", + path.parent_path().string().c_str()); + return 1; + } + + unlink(path.c_str()); + + const int server_fd = socket(AF_UNIX, SOCK_STREAM, 0); + if (server_fd < 0) { + DC_LOG_ERROR("Failed to create signer socket"); + return 1; + } + + sockaddr_un address{}; + address.sun_family = AF_UNIX; + const std::string path_string = path.string(); + if (path_string.size() >= sizeof(address.sun_path)) { + DC_LOG_ERROR("Signer socket path is too long: %s", path_string.c_str()); + close(server_fd); + return 1; + } + std::strncpy(address.sun_path, path_string.c_str(), sizeof(address.sun_path) - 1); + + if (bind(server_fd, reinterpret_cast(&address), sizeof(address)) != 0) { + DC_LOG_ERROR("Failed to bind signer socket at %s: %s", path_string.c_str(), + std::strerror(errno)); + close(server_fd); + return 1; + } + + chmod(path.c_str(), S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); + + if (listen(server_fd, 16) != 0) { + DC_LOG_ERROR("Failed to listen on signer socket"); + close(server_fd); + unlink(path.c_str()); + return 1; + } + + DC_LOG_INFO("Datacrumbs probe signing service listening on %s", path_string.c_str()); + + for (;;) { + const int client_fd = accept(server_fd, nullptr, nullptr); + if (client_fd < 0) { + if (errno == EINTR) { + continue; + } + DC_LOG_ERROR("Failed to accept signer connection"); + continue; + } + + std::string request_payload; + std::string response_payload; + std::string authorization_error; + if (!is_authorized_client(client_fd, &authorization_error)) { + response_payload = build_response(false, "", authorization_error); + write_all_to_fd(client_fd, response_payload); + close(client_fd); + continue; + } + if (!read_all_from_fd(client_fd, &request_payload)) { + response_payload = build_response(false, "", "failed to read signing request"); + write_all_to_fd(client_fd, response_payload); + close(client_fd); + continue; + } + + std::string error; + std::string checksum = sign_signing_payload(request_payload, &error); + if (checksum.empty()) { + response_payload = build_response(false, "", error); + } else { + response_payload = build_response(true, checksum, ""); + } + write_all_to_fd(client_fd, response_payload); + close(client_fd); + } + + return 0; +} + +} // namespace datacrumbs::probe_signing_service diff --git a/src/datacrumbs/common/probe_signing_service.h b/src/datacrumbs/common/probe_signing_service.h new file mode 100644 index 00000000..d63d30d7 --- /dev/null +++ b/src/datacrumbs/common/probe_signing_service.h @@ -0,0 +1,14 @@ +#ifndef DATACRUMBS_COMMON_PROBE_SIGNING_SERVICE_H__ +#define DATACRUMBS_COMMON_PROBE_SIGNING_SERVICE_H__ + +#include +#include + +namespace datacrumbs::probe_signing_service { + +std::filesystem::path socket_path(); +int run_signing_service(); + +} // namespace datacrumbs::probe_signing_service + +#endif // DATACRUMBS_COMMON_PROBE_SIGNING_SERVICE_H__ diff --git a/src/datacrumbs/common/runtime_configuration_manager.cpp b/src/datacrumbs/common/runtime_configuration_manager.cpp new file mode 100644 index 00000000..414b9d17 --- /dev/null +++ b/src/datacrumbs/common/runtime_configuration_manager.cpp @@ -0,0 +1,531 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace datacrumbs { + +namespace { + +constexpr uint64_t kRuntimeProbeEventIdBase = 1000; + +std::string json_string_or_empty(json_object* root, const char* key) { + json_object* value = nullptr; + if (!root || !json_object_object_get_ex(root, key, &value) || + json_object_get_type(value) != json_type_string) { + return ""; + } + return json_object_get_string(value); +} + +std::shared_ptr probe_from_json(json_object* probe_obj) { + if (!probe_obj) return nullptr; + Probe base = Probe::fromJson(probe_obj); + switch (base.type) { + case ProbeType::SYSCALLS: + return std::make_shared(SysCallProbe::fromJson(probe_obj)); + case ProbeType::KPROBE: + return std::make_shared(KProbe::fromJson(probe_obj)); + case ProbeType::UPROBE: + return std::make_shared(UProbe::fromJson(probe_obj)); + case ProbeType::USDT: + return std::make_shared(USDTProbe::fromJson(probe_obj)); + case ProbeType::CUSTOM: + return std::make_shared(CustomProbe::fromJson(probe_obj)); + default: + return nullptr; + } +} + +std::string runtime_event_key(const std::string& probe_name, const std::string& function_name) { + return probe_name + "\n" + function_name; +} + +bool is_supported_runtime_probe_type(ProbeType type) { + switch (type) { + case ProbeType::KPROBE: + case ProbeType::UPROBE: + case ProbeType::SYSCALLS: + case ProbeType::USDT: + return true; + default: + return false; + } +} + +void ensure_directory_owned_by_install_user(const std::filesystem::path& directory) { + if (directory.empty()) { + return; + } + + struct passwd* pwd = getpwnam(DATACRUMBS_INSTALL_USER); + + std::error_code ec; + std::filesystem::path current; + for (const auto& part : directory) { + current /= part; + if (current.empty()) { + continue; + } + std::filesystem::create_directory(current, ec); + ec.clear(); + } + + if (pwd == nullptr) { + return; + } + + chown(directory.c_str(), pwd->pw_uid, pwd->pw_gid); + chmod(directory.c_str(), S_IRWXU | S_IRWXG); +} + +void replace_all(std::string* target, const std::string& from, const std::string& to) { + if (from.empty()) return; + size_t pos = 0; + while ((pos = target->find(from, pos)) != std::string::npos) { + target->replace(pos, from.size(), to); + pos += to.size(); + } +} + +std::string expand_trace_dir_pattern(const std::string& pattern) { + if (pattern.empty()) return ""; + + std::time_t now = std::time(nullptr); + std::tm tm_now{}; + localtime_r(&now, &tm_now); + char yy[3]; + char mm[3]; + char dd[3]; + std::snprintf(yy, sizeof(yy), "%02d", (tm_now.tm_year + 1900) % 100); + std::snprintf(mm, sizeof(mm), "%02d", tm_now.tm_mon + 1); + std::snprintf(dd, sizeof(dd), "%02d", tm_now.tm_mday); + + std::string expanded = pattern; + replace_all(&expanded, "%YY%", yy); + replace_all(&expanded, "%MM%", mm); + replace_all(&expanded, "%DD%", dd); + return expanded; +} + +void persist_run_id(const std::filesystem::path& run_id_file, const std::string& run_id) { + if (run_id_file.empty()) return; + std::error_code ec; + std::filesystem::create_directories(run_id_file.parent_path(), ec); + ec.clear(); + + std::ofstream output(run_id_file); + if (!output.is_open()) { + return; + } + output << run_id; + output.close(); + if (!output) return; +} + +void remove_file_if_exists(const std::filesystem::path& path) { + if (path.empty()) return; + std::error_code ec; + std::filesystem::remove(path, ec); +} + +void raise_limit_to_hard(int resource, const char* resource_name) { + struct rlimit limits{}; + if (getrlimit(resource, &limits) != 0) { + return; + } + if (limits.rlim_cur == limits.rlim_max) { + return; + } + limits.rlim_cur = limits.rlim_max; + if (setrlimit(resource, &limits) == 0) { + DC_LOG_INFO("Raised %s soft limit to hard limit", resource_name); + } +} + +} // namespace + +template <> +std::shared_ptr + datacrumbs::Singleton::instance = nullptr; + +template <> +bool datacrumbs::Singleton::stop_creating_instances = + false; + +RuntimeConfigurationManager::RuntimeConfigurationManager() { + throw std::runtime_error( + "RuntimeConfigurationManager must be initialized with a probes json path."); +} + +RuntimeConfigurationManager::RuntimeConfigurationManager( + const std::filesystem::path& runtime_probe_file, const std::string& explicit_run_id, + const std::string& explicit_user, bool print) + : config_path(DATACRUMBS_CONFIG_PATH), + data_dir(DATACRUMBS_INSTALL_SHARED_DATA_DIR), + trace_log_dir(), + probe_file_path(runtime_probe_file), + system_probe_path(DATACRUMBS_SYSTEM_PROBE_FILE), + server_run_dir(DATACRUMBS_SERVER_RUN_DIR), + server_run_id_file(DATACRUMBS_SERVER_RUN_ID_FILE), + config_name(runtime_probe_file.stem().string()), + user(explicit_user), + log_dir(DATACRUMBS_LOG_DIR), + run_id(explicit_run_id), + trace_dir_pattern(DATACRUMBS_TRACE_DIR_PATTERN), + inclusion_paths("") { + load_runtime_system_configuration(); + raise_limit_to_hard(RLIMIT_NOFILE, "RLIMIT_NOFILE"); + raise_limit_to_hard(RLIMIT_AS, "RLIMIT_AS"); + raise_limit_to_hard(RLIMIT_MEMLOCK, "RLIMIT_MEMLOCK"); + derive_configurations(); + remove_file_if_exists(server_ready_file); + persist_run_id(server_run_id_file, run_id); + probe_file_path = runtime_probe_file; + load_runtime_probe_file(); + validate_configurations(); + if (print) { + print_configurations(); + } +} + +void RuntimeConfigurationManager::print_configurations() const { + DC_LOG_INFO("[RuntimeConfigurationManager] Final configuration:"); + DC_LOG_INFO(" Config path: %s", config_path.string().c_str()); + DC_LOG_INFO(" Config name: %s", config_name.c_str()); + DC_LOG_INFO(" Trace log dir: %s", trace_log_dir.string().c_str()); + DC_LOG_INFO(" Trace file path: %s", trace_file_path.string().c_str()); + DC_LOG_INFO(" Trace dir pattern: %s", + trace_dir_pattern.empty() ? "" : trace_dir_pattern.c_str()); + DC_LOG_INFO(" Data dir: %s", data_dir.string().c_str()); + DC_LOG_INFO(" Probe file path: %s", probe_file_path.string().c_str()); + DC_LOG_INFO(" System probe path: %s", system_probe_path.string().c_str()); + DC_LOG_INFO(" Invalid probe database: %s", invalid_probe_file_path.string().c_str()); + DC_LOG_INFO(" Run dir: %s", server_run_dir.string().c_str()); + DC_LOG_INFO(" Run ID file: %s", server_run_id_file.string().c_str()); + DC_LOG_INFO(" Ready file: %s", server_ready_file.string().c_str()); + DC_LOG_INFO(" Runtime user: %s", user.c_str()); + DC_LOG_INFO(" Install user: %s", DATACRUMBS_INSTALL_USER); + DC_LOG_INFO(" Hostname: %s", hostname.c_str()); + DC_LOG_INFO(" Inclusion paths: %s", + inclusion_paths.empty() ? "" : inclusion_paths.c_str()); + DC_LOG_INFO(" Runtime probes loaded: %zu", runtime_probes.size()); + DC_LOG_INFO(" Category map entries: %zu", category_map.size()); +} + +void RuntimeConfigurationManager::derive_configurations() { + char hostname_buf[256] = {0}; + if (gethostname(hostname_buf, sizeof(hostname_buf) - 1) != 0) { + throw std::runtime_error("Failed to get hostname."); + } + hostname = hostname_buf; + + if (!trace_dir_pattern.empty()) { + trace_log_dir = expand_trace_dir_pattern(trace_dir_pattern); + } + ensure_directory_owned_by_install_user(trace_log_dir); + + const std::string generated_file_suffix = + user + "-" + run_id + "-" + hostname + "-" + config_name; + const std::string lookup_file_suffix = std::string(DATACRUMBS_INSTALL_USER) + "-" + config_name; + trace_file_path = trace_log_dir / ("trace-" + generated_file_suffix + ".pfw.gz"); + invalid_probe_file_path = data_dir / ("probes-invalid-" + lookup_file_suffix + ".json.gz"); + server_ready_file = server_run_dir / ("datacrumbs-" + run_id + ".ready"); +} + +void RuntimeConfigurationManager::load_runtime_system_configuration() { + const std::string payload = datacrumbs::probe_file::read_probe_payload(system_probe_path); + if (payload.empty()) { + throw std::runtime_error("Failed to read system probe file: " + system_probe_path.string()); + } + + json_object* root = json_tokener_parse(payload.c_str()); + if (!root || json_object_get_type(root) != json_type_object) { + if (root) json_object_put(root); + throw std::runtime_error("Failed to parse system probe file: " + system_probe_path.string()); + } + + json_object* summary = nullptr; + json_object* system_configuration = nullptr; + if (json_object_object_get_ex(root, "summary", &summary) && + json_object_get_type(summary) == json_type_object) { + const std::string imported_config_path = json_string_or_empty(summary, "config_path"); + const std::string imported_trace_dir = json_string_or_empty(summary, "trace_log_dir"); + const std::string imported_config_name = json_string_or_empty(summary, "config_name"); + if (!imported_config_path.empty()) config_path = imported_config_path; + if (trace_dir_pattern.empty() && !imported_trace_dir.empty()) + trace_log_dir = imported_trace_dir; + if (!imported_config_name.empty()) config_name = imported_config_name; + } + + if (json_object_object_get_ex(root, "system_configuration", &system_configuration) && + json_object_get_type(system_configuration) == json_type_object) { + const std::string imported_log_dir = + json_string_or_empty(system_configuration, "DATACRUMBS_LOG_DIR"); + const std::string imported_data_dir = + json_string_or_empty(system_configuration, "DATACRUMBS_INSTALL_DATA_DIR"); + const std::string imported_inclusion_paths = + json_string_or_empty(system_configuration, "DATACRUMBS_INCLUSION_PATHS"); + const std::string imported_trace_dir_pattern = + json_string_or_empty(system_configuration, "DATACRUMBS_TRACE_DIR_PATTERN"); + const std::string imported_run_dir = + json_string_or_empty(system_configuration, "DATACRUMBS_SERVER_RUN_DIR"); + const std::string imported_run_id_file = + json_string_or_empty(system_configuration, "DATACRUMBS_SERVER_RUN_ID_FILE"); + + if (!imported_log_dir.empty()) log_dir = imported_log_dir; + if (!imported_data_dir.empty()) data_dir = imported_data_dir; + if (!imported_trace_dir_pattern.empty()) trace_dir_pattern = imported_trace_dir_pattern; + if (!imported_run_dir.empty()) server_run_dir = imported_run_dir; + if (!imported_run_id_file.empty()) server_run_id_file = imported_run_id_file; + if (inclusion_paths.empty() && !imported_inclusion_paths.empty()) { + inclusion_paths = imported_inclusion_paths; + } + } + + json_object_put(root); +} + +void RuntimeConfigurationManager::load_runtime_probe_file() { + std::string probe_error; + json_object* categories = + datacrumbs::probe_file::load_verified_categories_from_file(probe_file_path, &probe_error); + if (!categories || json_object_get_type(categories) != json_type_array) { + if (categories) json_object_put(categories); + throw std::runtime_error("Failed to verify runtime probe file: " + probe_file_path.string() + + " (" + probe_error + ")"); + } + + runtime_probes.clear(); + category_map.clear(); + runtime_event_ids.clear(); + runtime_event_metadata.clear(); + invalid_runtime_probes.clear(); + load_invalid_runtime_probes(); + + size_t total_runtime_functions = 0; + size_t skipped_known_invalid_functions = 0; + + uint64_t event_id = kRuntimeProbeEventIdBase; + const int arr_len = json_object_array_length(categories); + for (int i = 0; i < arr_len; ++i) { + json_object* probe_obj = json_object_array_get_idx(categories, i); + auto probe = probe_from_json(probe_obj); + if (!probe) { + DC_LOG_WARN("[RuntimeConfigurationManager] Skipping unsupported runtime probe at index %d", + i); + continue; + } + if (!is_supported_runtime_probe_type(probe->type)) { + DC_LOG_WARN( + "[RuntimeConfigurationManager] Skipping non-attachable runtime probe type %d for %s", + static_cast(probe->type), probe->name.c_str()); + continue; + } + + std::vector filtered_functions; + filtered_functions.reserve(probe->functions.size()); + for (const auto& function_name : probe->functions) { + if (is_known_invalid_runtime_probe(probe->name, function_name)) { + ++skipped_known_invalid_functions; + continue; + } + filtered_functions.push_back(function_name); + } + probe->functions = std::move(filtered_functions); + runtime_probes.push_back(probe); + total_runtime_functions += probe->functions.size(); + for (const auto& function_name : probe->functions) { + const uint64_t assigned_event_id = event_id++; + category_map[assigned_event_id] = std::make_pair(probe->name, function_name); + runtime_event_ids[runtime_event_key(probe->name, function_name)] = assigned_event_id; + RuntimeEventMetadata metadata; + metadata.probe_type = probe->type; + metadata.probe_name = probe->name; + metadata.function_name = function_name; + if (const auto* arg_specs = probe->getArgSpecs(function_name); arg_specs != nullptr) { + metadata.arg_specs = *arg_specs; + } + runtime_event_metadata[assigned_event_id] = std::move(metadata); + } + } + + json_object_put(categories); + + if (skipped_known_invalid_functions > 0) { + DC_LOG_WARN( + "[RuntimeConfigurationManager] Skipped %zu known invalid runtime probe functions " + "using %s", + skipped_known_invalid_functions, invalid_probe_file_path.string().c_str()); + } + + if (total_runtime_functions > DATACRUMBS_MAX_RUNTIME_FUNCTIONS) { + throw std::runtime_error("Runtime probe file selects " + + std::to_string(total_runtime_functions) + + " functions, but datacrumbs supports at most " + + std::to_string(DATACRUMBS_MAX_RUNTIME_FUNCTIONS) + + " functions per run. Regenerate the probes file with fewer " + "selected functions."); + } +} + +void RuntimeConfigurationManager::load_invalid_runtime_probes() { + if (invalid_probe_file_path.empty() || !std::filesystem::exists(invalid_probe_file_path)) { + return; + } + + const std::string content = datacrumbs::probe_file::read_probe_payload(invalid_probe_file_path); + if (content.empty()) { + DC_LOG_WARN("[RuntimeConfigurationManager] Failed to read invalid probe database: %s", + invalid_probe_file_path.string().c_str()); + return; + } + json_object* root = json_tokener_parse(content.c_str()); + if (!root || json_object_get_type(root) != json_type_array) { + if (root) json_object_put(root); + DC_LOG_WARN("[RuntimeConfigurationManager] Invalid invalid probe database format: %s", + invalid_probe_file_path.string().c_str()); + return; + } + + const int arr_len = json_object_array_length(root); + for (int i = 0; i < arr_len; ++i) { + json_object* probe_obj = json_object_array_get_idx(root, i); + if (!probe_obj) continue; + + json_object* name_obj = nullptr; + json_object* functions_obj = nullptr; + if (!json_object_object_get_ex(probe_obj, "name", &name_obj) || + !json_object_object_get_ex(probe_obj, "functions", &functions_obj) || + json_object_get_type(name_obj) != json_type_string || + json_object_get_type(functions_obj) != json_type_array) { + continue; + } + + auto& function_set = invalid_runtime_probes[std::string(json_object_get_string(name_obj))]; + const int function_count = json_object_array_length(functions_obj); + for (int j = 0; j < function_count; ++j) { + json_object* function_obj = json_object_array_get_idx(functions_obj, j); + if (function_obj && json_object_get_type(function_obj) == json_type_string) { + function_set.insert(json_object_get_string(function_obj)); + } + } + } + + json_object_put(root); +} + +bool RuntimeConfigurationManager::is_known_invalid_runtime_probe( + const std::string& probe_name, const std::string& function_name) const { + const auto probe_it = invalid_runtime_probes.find(probe_name); + if (probe_it == invalid_runtime_probes.end()) { + return false; + } + return probe_it->second.find(function_name) != probe_it->second.end(); +} + +void RuntimeConfigurationManager::record_invalid_runtime_probe(const std::string& probe_name, + const std::string& function_name) { + invalid_runtime_probes[probe_name].insert(function_name); +} + +void RuntimeConfigurationManager::persist_invalid_runtime_probes() const { + if (invalid_probe_file_path.empty()) { + return; + } + + std::error_code ec; + std::filesystem::create_directories(invalid_probe_file_path.parent_path(), ec); + + json_object* root = json_object_new_array(); + for (const auto& [probe_name, functions] : invalid_runtime_probes) { + if (functions.empty()) { + continue; + } + json_object* probe_obj = json_object_new_object(); + json_object_object_add(probe_obj, "name", json_object_new_string(probe_name.c_str())); + json_object* function_array = json_object_new_array(); + std::vector sorted_functions(functions.begin(), functions.end()); + std::sort(sorted_functions.begin(), sorted_functions.end()); + for (const auto& function_name : sorted_functions) { + json_object_array_add(function_array, json_object_new_string(function_name.c_str())); + } + json_object_object_add(probe_obj, "functions", function_array); + json_object_array_add(root, probe_obj); + } + + const std::string payload = json_object_to_json_string_ext(root, JSON_C_TO_STRING_PRETTY); + if (!datacrumbs::probe_file::write_gzip_file(invalid_probe_file_path, payload)) { + json_object_put(root); + DC_LOG_WARN("[RuntimeConfigurationManager] Failed to persist invalid probe database: %s", + invalid_probe_file_path.string().c_str()); + return; + } + + if (struct passwd* pwd = getpwnam(DATACRUMBS_INSTALL_USER); pwd != nullptr) { + chown(invalid_probe_file_path.c_str(), pwd->pw_uid, pwd->pw_gid); + } + chmod(invalid_probe_file_path.c_str(), S_IRUSR | S_IWUSR); + json_object_put(root); +} + +std::optional RuntimeConfigurationManager::get_runtime_event_id( + const std::string& probe_name, const std::string& function_name) const { + const auto it = runtime_event_ids.find(runtime_event_key(probe_name, function_name)); + if (it == runtime_event_ids.end()) { + return std::nullopt; + } + return it->second; +} + +const RuntimeEventMetadata* RuntimeConfigurationManager::get_runtime_event_metadata( + uint64_t event_id) const { + const auto it = runtime_event_metadata.find(event_id); + if (it == runtime_event_metadata.end()) { + return nullptr; + } + return &it->second; +} + +void RuntimeConfigurationManager::validate_configurations() const { + if (probe_file_path.empty()) { + throw std::runtime_error("Runtime probe file path is empty."); + } + if (run_id.empty()) { + throw std::runtime_error("Runtime run id is empty."); + } + if (user.empty()) { + throw std::runtime_error("Runtime user is empty."); + } + if (!std::filesystem::exists(probe_file_path)) { + throw std::runtime_error("Runtime probe file does not exist: " + probe_file_path.string()); + } + if (trace_log_dir.empty() || !std::filesystem::exists(trace_log_dir)) { + throw std::runtime_error("Trace log directory does not exist: " + trace_log_dir.string()); + } + if (system_probe_path.empty() || !std::filesystem::exists(system_probe_path)) { + throw std::runtime_error("System probe file does not exist: " + system_probe_path.string()); + } + if (server_run_id_file.empty()) { + throw std::runtime_error("Run-id file path is empty."); + } + if (server_run_dir.empty()) { + throw std::runtime_error("Run directory path is empty."); + } +} + +} // namespace datacrumbs diff --git a/src/datacrumbs/common/runtime_configuration_manager.h b/src/datacrumbs/common/runtime_configuration_manager.h new file mode 100644 index 00000000..4fb719c0 --- /dev/null +++ b/src/datacrumbs/common/runtime_configuration_manager.h @@ -0,0 +1,78 @@ +#ifndef DATACRUMBS_COMMON_RUNTIME_CONFIGURATION_MANAGER_H__ +#define DATACRUMBS_COMMON_RUNTIME_CONFIGURATION_MANAGER_H__ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace datacrumbs { + +struct RuntimeEventMetadata { + ProbeType probe_type = ProbeType::KPROBE; + std::string probe_name; + std::string function_name; + std::vector arg_specs; +}; + +class RuntimeConfigurationManager { + public: + RuntimeConfigurationManager(); + explicit RuntimeConfigurationManager(const std::filesystem::path& runtime_probe_file, + const std::string& explicit_run_id, + const std::string& explicit_user, bool print = true); + + void print_configurations() const; + + std::optional get_runtime_event_id(const std::string& probe_name, + const std::string& function_name) const; + const RuntimeEventMetadata* get_runtime_event_metadata(uint64_t event_id) const; + + std::filesystem::path config_path; + std::filesystem::path data_dir; + std::filesystem::path trace_log_dir; + std::filesystem::path trace_file_path; + std::filesystem::path probe_file_path; + std::filesystem::path system_probe_path; + std::filesystem::path invalid_probe_file_path; + std::filesystem::path server_run_dir; + std::filesystem::path server_run_id_file; + std::filesystem::path server_ready_file; + + std::string config_name; + std::string user; + std::string log_dir; + std::string hostname; + std::string run_id; + std::string trace_dir_pattern; + std::string inclusion_paths; + + std::vector> runtime_probes; + std::unordered_map> category_map; + std::unordered_map runtime_event_ids; + std::unordered_map runtime_event_metadata; + std::unordered_map> invalid_runtime_probes; + + bool is_known_invalid_runtime_probe(const std::string& probe_name, + const std::string& function_name) const; + void record_invalid_runtime_probe(const std::string& probe_name, + const std::string& function_name); + void persist_invalid_runtime_probes() const; + + private: + void derive_configurations(); + void load_runtime_system_configuration(); + void load_runtime_probe_file(); + void load_invalid_runtime_probes(); + void validate_configurations() const; +}; + +} // namespace datacrumbs + +#endif diff --git a/src/datacrumbs/common/singleton.h b/src/datacrumbs/common/singleton.h index 8aba8c04..9818a6ac 100644 --- a/src/datacrumbs/common/singleton.h +++ b/src/datacrumbs/common/singleton.h @@ -14,21 +14,9 @@ namespace datacrumbs { -/** - * @brief Singleton class template to ensure a single instance of T. - * - * Uses a shared pointer to manage the instance. Logging is provided using - * printf-style macros from datacrumbs/common/logging.h. - */ template class Singleton { public: - /** - * @brief Get the singleton instance of T. - * - * If instance creation is stopped, returns nullptr. - * Logs function entry/exit and instance creation. - */ template static std::shared_ptr get_instance(Args... args) { DC_LOG_TRACE("Entering Singleton::get_instance"); @@ -47,33 +35,18 @@ class Singleton { return instance; } - /** - * @brief Deleted assignment operator. - */ Singleton& operator=(const Singleton) = delete; - - /** - * @brief Deleted copy constructor. - */ Singleton(const Singleton&) = delete; - /** - * @brief Finalize the singleton, preventing further instance creation. - * - * Logs the finalization event. - */ static void finalize() { DC_LOG_INFO("Finalizing Singleton<%s>, no further instances will be created", typeid(T).name()); stop_creating_instances = true; } protected: - static bool stop_creating_instances; ///< Flag to stop instance creation - static std::shared_ptr instance; ///< Singleton instance + static bool stop_creating_instances; + static std::shared_ptr instance; - /** - * @brief Hidden default constructor. - */ Singleton() {} }; diff --git a/src/datacrumbs/common/typedefs.h b/src/datacrumbs/common/typedefs.h index c1f2d84c..da90bf31 100644 --- a/src/datacrumbs/common/typedefs.h +++ b/src/datacrumbs/common/typedefs.h @@ -5,5 +5,14 @@ #include #include #include +#include + +struct CapturedArgumentValue { + std::string c_type; + bool is_pointer = false; + unsigned long long raw_value = 0; + unsigned int data_status = 0; + std::vector bytes; +}; typedef std::unordered_map DataCrumbsArgs; diff --git a/src/datacrumbs/composable/CMakeLists.txt.in b/src/datacrumbs/composable/CMakeLists.txt.in deleted file mode 100644 index b4c0f217..00000000 --- a/src/datacrumbs/composable/CMakeLists.txt.in +++ /dev/null @@ -1,224 +0,0 @@ -cmake_minimum_required(VERSION 3.20) -cmake_policy(SET CMP0075 NEW) -project(datacrumbs_compose LANGUAGES C CXX) - -# ------------------------------------------------------------------------------ -# Load cmake -# ------------------------------------------------------------------------------ - -# This sets where to look for dependent library's cmake files -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) -include(datacrumbs-utils) - -# ------------------------------------------------------------------------------ -# Setup build variables -# ------------------------------------------------------------------------------ - -load_build_variables() - -# ------------------------------------------------------------------------------ -# Set Options -# ------------------------------------------------------------------------------ - -set(DATACRUMBS_NAME - "$ENV{USER}" - CACHE STRING "Name of the Datacrumbs package" -) -set(DATACRUMBS_PROBES - "" - CACHE STRING "List of probes to include in the Datacrumbs package" -) -set(DATACRUMBS_CLIENT_OBJECTS_DIR - "$ENV{DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR}" - CACHE STRING "Path to the Datacrumbs client objects directory" -) - -# ------------------------------------------------------------------------------ -# Validate Probes -# ------------------------------------------------------------------------------ - -# Convert comma-separated DATACRUMBS_PROBES into a list -string( - REPLACE "," - ";" - DATACRUMBS_PROBES_LIST - "${DATACRUMBS_PROBES}" -) - -# Append .o to each probe name in DATACRUMBS_PROBES_LIST -set(DATACRUMBS_PROBES_OBJECTS) -foreach(probe ${DATACRUMBS_PROBES_LIST}) - list(APPEND DATACRUMBS_PROBES_OBJECTS "${probe}.o") -endforeach() - -message(STATUS "User gave ${DATACRUMBS_PROBES_OBJECTS}") - -# Get all .o files in DATACRUMBS_CLIENT_OBJECTS_DIR -file(GLOB ALL_OBJECT_FILES "${DATACRUMBS_CLIENT_OBJECTS_DIR}/*.o") - -message(STATUS "We have ${ALL_OBJECT_FILES}") -# Exclude init.o, datacrumbs.bpf.o, and common.o -set(EXCLUDED_OBJECTS "init.o" "datacrumbs.bpf.o" "common.o") -set(FILTERED_OBJECT_FILES) -foreach(obj_file ${ALL_OBJECT_FILES}) - get_filename_component(obj_name "${obj_file}" NAME) - list( - FIND - EXCLUDED_OBJECTS - "${obj_name}" - EXCLUDED_IDX - ) - if(EXCLUDED_IDX EQUAL -1) - list(APPEND FILTERED_OBJECT_FILES "${obj_name}") - endif() -endforeach() - -# Check that all DATACRUMBS_PROBES_OBJECTS are present in FILTERED_OBJECT_FILES -set(MISSING_OBJECTS) -foreach(probe_obj ${DATACRUMBS_PROBES_OBJECTS}) - list( - FIND - FILTERED_OBJECT_FILES - "${probe_obj}" - FOUND_IDX - ) - if(FOUND_IDX EQUAL -1) - list(APPEND MISSING_OBJECTS "${probe_obj}") - endif() -endforeach() - -if(MISSING_OBJECTS) - message( - FATAL_ERROR "Missing probe object files in ${DATACRUMBS_CLIENT_OBJECTS_DIR}: ${MISSING_OBJECTS}" - ) -endif() - -# Prepend DATACRUMBS_CLIENT_OBJECTS_DIR/ to each element of DATACRUMBS_PROBES_OBJECTS -set(DATACRUMBS_PROBES_OBJECTS_FULL) -foreach(probe_obj ${DATACRUMBS_PROBES_OBJECTS}) - list(APPEND DATACRUMBS_PROBES_OBJECTS_FULL "${DATACRUMBS_CLIENT_OBJECTS_DIR}/${probe_obj}") -endforeach() - -# ------------------------------------------------------------------------------ -# Find all 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 -# ------------------------------------------------------------------------------ - -file(MAKE_DIRECTORY ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/objects/) -set(BPF_OUTPUT ${CMAKE_LIBEXEC_OUTPUT_DIRECTORY}/objects/datacrumbs.bpf.o) - -# Prepend DATACRUMBS_CLIENT_OBJECTS_DIR to common.o and init.o and add to -# DATACRUMBS_PROBES_OBJECTS_FULL -list(PREPEND DATACRUMBS_PROBES_OBJECTS_FULL "${DATACRUMBS_CLIENT_OBJECTS_DIR}/common.o") -list(APPEND DATACRUMBS_PROBES_OBJECTS_FULL "${DATACRUMBS_CLIENT_OBJECTS_DIR}/init.o") - -message(STATUS "Compiling ${DATACRUMBS_PROBES_OBJECTS_FULL}") - -# Link all object files into a single object file -add_custom_command( - OUTPUT ${BPF_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --cyan - "Linking all BPF objects into ${BPF_OUTPUT} (timed)" - COMMAND /usr/bin/time -f "Elapsed time for linking: %E" @BPFTOOL_EXECUTABLE@ gen object - ${BPF_OUTPUT} ${DATACRUMBS_PROBES_OBJECTS_FULL} - COMMENT "Linking all BPF objects into ${BPF_OUTPUT} (timed)" - VERBATIM -) - -add_custom_target(datacrumbs_bpf ALL DEPENDS ${BPF_OUTPUT}) - -# Generate Skeleton header for Datacrumbs - -set(BPF_SKEL_OUTPUT ${CMAKE_BINARY_DIR}/include/datacrumbs/composable/bpf/datacrumbs.skel.h) -add_custom_command( - OUTPUT ${BPF_SKEL_OUTPUT} - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/include/datacrumbs/composable/bpf/ - COMMAND @BPFTOOL_EXECUTABLE@ gen skeleton ${BPF_OUTPUT} > ${BPF_SKEL_OUTPUT} - DEPENDS ${BPF_OUTPUT} - COMMENT "Generating BPF skeleton: ${BPF_SKEL_OUTPUT}" - VERBATIM -) -add_custom_target(datacrumbs_bpf_skel ALL DEPENDS ${BPF_SKEL_OUTPUT}) -add_dependencies(datacrumbs_bpf_skel datacrumbs_bpf) - -# ------------------------------------------------------------------------------ -# Build composite executable -# ------------------------------------------------------------------------------ -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) -include_directories(${CMAKE_CURRENT_BINARY_DIR}/include) -set(DATACRUMBS_COMPOSABLE_SRC - ${CMAKE_CURRENT_SOURCE_DIR}/src/datacrumbs/composable/process/server.cpp -) -add_executable(@PROJECT_NAME@_${DATACRUMBS_NAME} ${DATACRUMBS_COMPOSABLE_SRC} ${BPF_SKEL_OUTPUT}) -target_link_libraries( - @PROJECT_NAME@_${DATACRUMBS_NAME} ${DEPENDENCY_LIB} - @DATACRUMBS_INSTALL_LIB_DIR@/libdatacrumbs_obj.so -) -add_dependencies(@PROJECT_NAME@_${DATACRUMBS_NAME} datacrumbs_bpf_skel) -# Install the main processing executable into DATACRUMBS_INSTALL_BINARYDIR -install(TARGETS @PROJECT_NAME@_${DATACRUMBS_NAME} - RUNTIME DESTINATION "${DATACRUMBS_INSTALL_SBINARYDIR}" -) diff --git a/src/datacrumbs/composable/process/server.cpp b/src/datacrumbs/composable/process/server.cpp deleted file mode 100644 index 5e3b5512..00000000 --- a/src/datacrumbs/composable/process/server.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include - -#include - -int main(int argc, char** argv) { - return main_call(argc, argv); -} \ No newline at end of file diff --git a/src/datacrumbs/explorer/mechanism/elf_capture.cpp b/src/datacrumbs/explorer/mechanism/elf_capture.cpp deleted file mode 100644 index 0d4c3e7c..00000000 --- a/src/datacrumbs/explorer/mechanism/elf_capture.cpp +++ /dev/null @@ -1,150 +0,0 @@ -#include - -namespace datacrumbs { - -ElfSymbolExtractor::ElfSymbolExtractor(const std::string& path, bool include_offsets) - : fd_(-1), - data_(nullptr), - size_(0), - include_offsets_(include_offsets), - base_address_(0), - kExcludedFunctions({"_init", "_fini", "_start"}) { - DC_LOG_TRACE("ElfSymbolExtractor: constructor start for file: %s", path.c_str()); - fd_ = open(path.c_str(), O_RDONLY); - if (fd_ < 0) { - DC_LOG_ERROR("Failed to open ELF file: %s", path.c_str()); - throw std::runtime_error("Failed to open ELF file"); - } - - size_ = lseek(fd_, 0, SEEK_END); - lseek(fd_, 0, SEEK_SET); - - data_ = static_cast(mmap(nullptr, size_, PROT_READ, MAP_PRIVATE, fd_, 0)); - if (data_ == MAP_FAILED) { - DC_LOG_ERROR("Failed to mmap ELF file: %s", path.c_str()); - throw std::runtime_error("Failed to mmap ELF file"); - } - DC_LOG_TRACE("ElfSymbolExtractor: constructor end for file: %s", path.c_str()); - - if (!is_elf()) { - DC_LOG_ERROR("File is not a valid ELF file"); - throw std::runtime_error("Not a valid ELF file"); - } - const Elf64_Ehdr* ehdr = reinterpret_cast(data_); - const Elf64_Shdr* shdrs = reinterpret_cast(data_ + ehdr->e_shoff); - const char* shstrtab = reinterpret_cast(data_ + shdrs[ehdr->e_shstrndx].sh_offset); - - base_address_ = 0; - for (int i = 0; i < ehdr->e_shnum; ++i) { - const char* section_name = shstrtab + shdrs[i].sh_name; - if (strcmp(section_name, ".text") == 0) { - base_address_ = shdrs[i].sh_addr; - DC_LOG_INFO("Found .text section at address: 0x%lx", - static_cast(base_address_)); - break; - } - } - if (base_address_ == 0) { - DC_LOG_WARN("Could not find .text section, using e_entry as base address"); - base_address_ = ehdr->e_entry; - } - DC_LOG_INFO("ELF base address: 0x%lx", static_cast(base_address_)); -} - -ElfSymbolExtractor::~ElfSymbolExtractor() { - DC_LOG_TRACE("ElfSymbolExtractor: destructor start"); - if (data_ && data_ != MAP_FAILED) { - munmap(data_, size_); - DC_LOG_DEBUG("Unmapped ELF file memory"); - } - if (fd_ >= 0) { - close(fd_); - DC_LOG_DEBUG("Closed ELF file descriptor"); - } - DC_LOG_TRACE("ElfSymbolExtractor: destructor end"); -} - -std::vector ElfSymbolExtractor::extract_symbols() { - DC_LOG_TRACE("extract_symbols: start"); - auto symbols_map = std::unordered_map>(); - auto symbol_counts = std::unordered_map(); - if (!is_elf()) { - DC_LOG_ERROR("File is not a valid ELF file"); - return std::vector(); - } - - const Elf64_Ehdr* ehdr = reinterpret_cast(data_); - const Elf64_Shdr* shdrs = reinterpret_cast(data_ + ehdr->e_shoff); - const char* shstrtab = reinterpret_cast(data_ + shdrs[ehdr->e_shstrndx].sh_offset); - - // First pass: count symbol occurrences - for (int i = 0; i < ehdr->e_shnum; ++i) { - if (shdrs[i].sh_type == SHT_SYMTAB || shdrs[i].sh_type == SHT_DYNSYM) { - const Elf64_Sym* syms = reinterpret_cast(data_ + shdrs[i].sh_offset); - size_t num_syms = shdrs[i].sh_size / shdrs[i].sh_entsize; - const char* strtab = reinterpret_cast(data_ + shdrs[shdrs[i].sh_link].sh_offset); - - for (size_t j = 0; j < num_syms; ++j) { - if (syms[j].st_shndx == SHN_UNDEF) continue; - // if (ELF64_ST_BIND(syms[j].st_info) == STB_LOCAL) continue; - if (ELF64_ST_TYPE(syms[j].st_info) != STT_FUNC) continue; - - std::string name = std::string(strtab + syms[j].st_name); - if (symbols_map.find(name) == symbols_map.end()) { - symbols_map[name] = std::unordered_set(); - } - 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 - // space - static_cast(base_address_); - DC_LOG_DEBUG("found name: %s st_value: 0x%lx offset: 0x%lx base_address: 0x%lx", - name.c_str(), static_cast(syms[j].st_value), offset, - static_cast(base_address_)); - sprintf(buffer, "0x%lx", offset); - symbols_map[name].insert(buffer); - } - } - } - } - - std::vector symbols; - for (const auto& pair : symbols_map) { - // Skip if symbol is in kExcludedFunctions - if (kExcludedFunctions.find(pair.first) != kExcludedFunctions.end()) { - continue; - } - if (pair.second.size() > 1) { - DC_LOG_WARN("Symbol %s has multiple offsets, using all occurrences", pair.first.c_str()); - for (const auto& offset : pair.second) { - symbols.push_back(pair.first + ":" + offset); - } - } else { - if (include_offsets_) { - symbols.push_back(pair.first + ":" + *pair.second.begin()); - } else { - symbols.push_back(pair.first); - } - } - } - DC_LOG_INFO("Extracted %zu unique function symbols", symbols.size()); - DC_LOG_TRACE("extract_symbols: end"); - return symbols; -} - -bool ElfSymbolExtractor::is_elf() const { - DC_LOG_TRACE("is_elf: start"); - if (size_ < sizeof(Elf64_Ehdr)) { - DC_LOG_WARN("File size too small to be ELF"); - return false; - } - const Elf64_Ehdr* ehdr = reinterpret_cast(data_); - bool result = ehdr->e_ident[EI_MAG0] == ELFMAG0 && ehdr->e_ident[EI_MAG1] == ELFMAG1 && - ehdr->e_ident[EI_MAG2] == ELFMAG2 && ehdr->e_ident[EI_MAG3] == ELFMAG3; - if (!result) { - DC_LOG_WARN("ELF magic not found"); - } - DC_LOG_TRACE("is_elf: end"); - return result; -} -} // namespace datacrumbs \ No newline at end of file diff --git a/src/datacrumbs/explorer/mechanism/elf_capture.h b/src/datacrumbs/explorer/mechanism/elf_capture.h deleted file mode 100644 index 2d153acd..00000000 --- a/src/datacrumbs/explorer/mechanism/elf_capture.h +++ /dev/null @@ -1,65 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include -// std headers -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace datacrumbs { - -/** - * @class ElfSymbolExtractor - * @brief Extracts symbol names from ELF files. - */ -class ElfSymbolExtractor { - public: - /** - * @brief Constructs the extractor for a given ELF file path. - * @param path Path to the ELF file. - */ - explicit ElfSymbolExtractor(const std::string& path, bool include_offsets = false); - - /** - * @brief Destructor to clean up resources. - */ - ~ElfSymbolExtractor(); - - /** - * @brief Extracts symbol and demangled symbol names from the ELF file. - * @return Pair of vectors: - */ - std::vector extract_symbols(); - - private: - /** - * @brief Checks if the mapped file is a valid ELF file. - * @return True if ELF, false otherwise. - */ - bool is_elf() const; - - int fd_; ///< File descriptor for the ELF file. - uint8_t* data_; ///< Pointer to mapped ELF file data. - size_t size_; ///< Size of the mapped ELF file. - bool include_offsets_; ///< Whether to include offsets in the extraction. - uint64_t base_address_; ///< Base address for relative symbols (0 for ET_DYN, entry point for - ///< ET_EXEC). - std::unordered_set - kExcludedFunctions; ///< Set of functions to exclude from extraction. -}; - -} // namespace datacrumbs -/** - * g++ -std=c++14 elf_capture_test.cpp -o elf_capture_test -lelf - */ diff --git a/src/datacrumbs/explorer/mechanism/header_capture.cpp b/src/datacrumbs/explorer/mechanism/header_capture.cpp deleted file mode 100644 index b558647b..00000000 --- a/src/datacrumbs/explorer/mechanism/header_capture.cpp +++ /dev/null @@ -1,61 +0,0 @@ - -#include -namespace datacrumbs { - -// Constructor: Initializes the extractor with the given header file path. -HeaderFunctionExtractor::HeaderFunctionExtractor(const std::string& headerPath) - : headerPath_(headerPath), index_(nullptr), tu_(nullptr) {} - -// Destructor: Cleans up Clang resources. -HeaderFunctionExtractor::~HeaderFunctionExtractor() { - if (tu_) clang_disposeTranslationUnit(tu_); - if (index_) clang_disposeIndex(index_); -} - -// Extracts all function and method names from the header file. -std::vector HeaderFunctionExtractor::extractFunctionNames() { - DC_LOG_TRACE("HeaderFunctionExtractor::extractFunctionNames - start"); - - std::vector functionNames; - - // Create a Clang index for parsing. - index_ = clang_createIndex(0, 0); - if (!index_) { - DC_LOG_ERROR("Failed to create Clang index."); - return functionNames; - } - - // Parse the translation unit (header file). - tu_ = clang_parseTranslationUnit(index_, headerPath_.c_str(), nullptr, 0, nullptr, 0, - CXTranslationUnit_None); - - if (!tu_) { - DC_LOG_ERROR("Failed to parse translation unit for: %s", headerPath_.c_str()); - return functionNames; - } - - // Visitor data structure to collect function names. - struct VisitorData { - std::vector* names; - } data{&functionNames}; - - // Visit all children in the translation unit to find function and method declarations. - clang_visitChildren( - clang_getTranslationUnitCursor(tu_), - [](CXCursor cursor, CXCursor /*parent*/, CXClientData client_data) { - auto* data = static_cast(client_data); - // Check if the cursor is a function or C++ method declaration. - if (cursor.kind == CXCursor_FunctionDecl || cursor.kind == CXCursor_CXXMethod) { - CXString functionName = clang_getCursorSpelling(cursor); - data->names->emplace_back(clang_getCString(functionName)); - clang_disposeString(functionName); - } - return CXChildVisit_Recurse; - }, - &data); - - DC_LOG_TRACE("HeaderFunctionExtractor::extractFunctionNames - end"); - return functionNames; -} - -} // namespace datacrumbs \ No newline at end of file diff --git a/src/datacrumbs/explorer/mechanism/header_capture.h b/src/datacrumbs/explorer/mechanism/header_capture.h deleted file mode 100644 index cd3e725c..00000000 --- a/src/datacrumbs/explorer/mechanism/header_capture.h +++ /dev/null @@ -1,48 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include -// dependency headers -#include // Use custom logging macros -// std headers -#include -#include - -namespace datacrumbs { - -/** - * @brief Extracts function names from a given C/C++ header file using libclang. - */ -class HeaderFunctionExtractor { - public: - /** - * @brief Constructs the extractor with the path to the header file. - * @param headerPath Path to the header file to analyze. - */ - HeaderFunctionExtractor(const std::string& headerPath); - - /** - * @brief Destructor to clean up libclang resources. - */ - ~HeaderFunctionExtractor(); - - /** - * @brief Extracts all function names from the header file. - * @return Vector of function names as strings. - */ - std::vector extractFunctionNames(); - - private: - std::string headerPath_; ///< Path to the header file. - CXIndex index_; ///< libclang index object. - CXTranslationUnit tu_; ///< libclang translation unit. -}; - -} // namespace datacrumbs - -/** - * Example compilation command: - * g++ -o extract_functions header_capture_test.cpp `llvm-config --cxxflags --ldflags --system-libs - * --libs core` -lclang - */ diff --git a/src/datacrumbs/explorer/mechanism/ksym_capture.cpp b/src/datacrumbs/explorer/mechanism/ksym_capture.cpp deleted file mode 100644 index 97d28803..00000000 --- a/src/datacrumbs/explorer/mechanism/ksym_capture.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// ksym_capture.cpp -// This file implements the Singleton specialization for KSymCapture. -// It also sets up logging using the datacrumbs logging system. -#include - -// Specialization of the Singleton instance for KSymCapture. -// This holds the shared pointer to the singleton instance. -template <> -std::shared_ptr datacrumbs::Singleton::instance = - nullptr; - -// Specialization of the flag to stop creating new instances of KSymCapture. -template <> -bool datacrumbs::Singleton::stop_creating_instances = false; diff --git a/src/datacrumbs/explorer/mechanism/ksym_capture.h b/src/datacrumbs/explorer/mechanism/ksym_capture.h deleted file mode 100644 index 20492390..00000000 --- a/src/datacrumbs/explorer/mechanism/ksym_capture.h +++ /dev/null @@ -1,82 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include -#include -// std headers -#include -#include -#include -#include -#include -#include -namespace datacrumbs { - -/** - * @brief Class to capture and filter kernel symbol function names from /proc/kallsyms. - */ -class KSymCapture { - public: - /** - * @brief Constructor that loads function symbols from the given kallsyms path. - * @param kallsyms_path Path to the kallsyms file (default: "/proc/kallsyms"). - */ - KSymCapture(const std::string& kallsyms_path = "/proc/kallsyms") { - DC_LOG_TRACE("KSymCapture: Start loading functions from %s", kallsyms_path.c_str()); - loadFunctions(kallsyms_path); - DC_LOG_TRACE("KSymCapture: Finished loading functions from %s", kallsyms_path.c_str()); - } - - /** - * @brief Returns a list of function names matching the given regex pattern. - * @param pattern Regular expression pattern to match function names. - * @return Vector of matching function names. - */ - std::vector getFunctionsByRegex(const std::string& pattern) const { - DC_LOG_TRACE("KSymCapture: Start getFunctionsByRegex with pattern: %s", pattern.c_str()); - std::vector result; - std::regex re(pattern); - for (const auto& func : functions_) { - if (std::regex_search(func, re)) { - result.push_back(func); - } - } - DC_LOG_DEBUG("KSymCapture: Found %zu functions matching pattern '%s'", result.size(), - pattern.c_str()); - DC_LOG_TRACE("KSymCapture: End getFunctionsByRegex"); - return result; - } - std::unordered_set functions_; - - private: ///< List of function names loaded from kallsyms. - /** - * @brief Loads function symbols from the specified kallsyms file. - * Only symbols of type 'T' or 't' are considered functions. - * @param path Path to the kallsyms file. - */ - void loadFunctions(const std::string& path) { - DC_LOG_TRACE("KSymCapture: Enter loadFunctions with path: %s", path.c_str()); - std::ifstream file(path); - if (!file.is_open()) { - DC_LOG_ERROR("KSymCapture: Failed to open kallsyms file: %s", path.c_str()); - return; - } - std::string line; - size_t count = 0; - while (std::getline(file, line)) { - std::istringstream iss(line); - std::string addr, type, name; - if (!(iss >> addr >> type >> name)) continue; - // Only add functions (type 'T' or 't') - if (type == "T" || type == "t") { - functions_.insert(name); - ++count; - } - } - DC_LOG_INFO("KSymCapture: Loaded %zu function symbols from %s", count, path.c_str()); - DC_LOG_TRACE("KSymCapture: Exit loadFunctions"); - } -}; - -} // namespace datacrumbs diff --git a/src/datacrumbs/explorer/mechanism/usdt_functions.h b/src/datacrumbs/explorer/mechanism/usdt_functions.h deleted file mode 100644 index 450cef76..00000000 --- a/src/datacrumbs/explorer/mechanism/usdt_functions.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include // Logging macros -// std headers -#include -#include - -// USDTFunctionExtractor extracts USDT (User-level Statically Defined Tracing) function names -// for a given provider. Currently, only the "python" provider is supported. -class USDTFunctionExtractor { - public: - // Constructor: initializes the extractor with the given provider name. - explicit USDTFunctionExtractor(const std::string& provider) : provider_(provider) { - DC_LOG_TRACE("USDTFunctionExtractor constructed for provider: %s", provider.c_str()); - } - - // Extracts function names for the specified provider. - // Returns a vector of function names if the provider is supported, otherwise returns an empty - // vector. - std::vector extractFunctionNames() const { - DC_LOG_TRACE("extractFunctionNames() called for provider: %s", provider_.c_str()); - if (provider_ == "python") { - DC_LOG_DEBUG("Extracting USDT function names for Python provider"); - return {"function__entry"}; - } else { - DC_LOG_WARN("Provider '%s' is not supported. Returning empty function list.", - provider_.c_str()); - } - return {}; - } - - private: - std::string provider_; // Name of the provider (e.g., "python") -}; \ No newline at end of file diff --git a/src/datacrumbs/explorer/probe_explorer.cpp b/src/datacrumbs/explorer/probe_explorer.cpp deleted file mode 100644 index 12d5c1f0..00000000 --- a/src/datacrumbs/explorer/probe_explorer.cpp +++ /dev/null @@ -1,835 +0,0 @@ - -#include - -namespace datacrumbs { - -// Constructor for ProbeExplorer, initializes the configuration manager singleton -ProbeExplorer::ProbeExplorer(int argc, char** argv) { - DC_LOG_TRACE("ProbeExplorer::ProbeExplorer - start"); - configManager_ = datacrumbs::Singleton::get_instance(argc, argv); - has_invalid_probes_ = false; - DC_LOG_TRACE("ProbeExplorer::ProbeExplorer - end"); -} -std::unordered_map> -ProbeExplorer::Extract_Exclusions() { - DC_LOG_TRACE("ProbeExplorer::validate_exclusion_file - start"); - std::unordered_map> exclusionMap; - if (!configManager_->probe_exclusion_file_path.empty() && - std::filesystem::exists(configManager_->probe_exclusion_file_path)) { - std::ifstream ifs(configManager_->probe_exclusion_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("the %dth element of exclusion file is missing (null pointer returned).", - i); - continue; - } - if (json_object_get_type(probe_obj) == json_type_null) { - DC_LOG_WARN("exclusion file contains explicit JSON null at %dth element.", i); - continue; - } - json_object* name_obj = nullptr; - json_object* funcs_obj = nullptr; - if (json_object_object_get_ex(probe_obj, "name", &name_obj) && - json_object_object_get_ex(probe_obj, "functions", &funcs_obj) && - json_object_get_type(name_obj) == json_type_string && - json_object_get_type(funcs_obj) == json_type_array) { - std::string probe_name = json_object_get_string(name_obj); - std::unordered_set func_set; - 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) { - // check the function name - std::string func_name = json_object_get_string(func_obj); - if (func_name.find('/') != std::string::npos || - func_name.find('\\') != std::string::npos || - func_name.find(' ') != std::string::npos) { - DC_LOG_WARN( - "Exclusion file contains invalid function name '%s' for probe '%s'. Skipping " - "this function.", - func_name.c_str(), probe_name.c_str()); - continue; - } - func_set.insert(json_object_get_string(func_obj)); - } - } - exclusionMap[probe_name] = std::move(func_set); - } else { - DC_LOG_WARN( - "Exclusion file entry at index %d is missing 'name' or 'functions' field, or they " - "are of incorrect type.", - i); - } - } - } else { - DC_LOG_WARN("Exclusion file is not a valid JSON array."); - } - if (jobj) json_object_put(jobj); - } else { - DC_LOG_ERROR("Failed to open exclusion probes file: %s", - configManager_->probe_exclusion_file_path.string().c_str()); - } - } - return exclusionMap; - - DC_LOG_TRACE("ProbeExplorer::validate_exclusion_file - end"); -} -// Extracts probes based on configuration and exclusion file -std::vector> ProbeExplorer::extractProbes() { - DC_LOG_TRACE("ProbeExplorer::extractProbes - start"); - auto exclusionMap = Extract_Exclusions(); - - // Log the contents of the exclusion map for debugging - DC_LOG_DEBUG("Exclusion Map Contents:"); - for (const auto& [probe_name, func_set] : exclusionMap) { - DC_LOG_DEBUG("Probe: %s", probe_name.c_str()); - for (const auto& func : func_set) { - DC_LOG_DEBUG(" Excluded Function: %s", func.c_str()); - } - } - - // Load additional invalid probes from file if specified - if (!configManager_->probe_invalid_file_path.empty() && - std::filesystem::exists(configManager_->probe_invalid_file_path)) { - std::ifstream ifs(configManager_->probe_invalid_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) continue; - json_object* name_obj = nullptr; - json_object* funcs_obj = nullptr; - if (json_object_object_get_ex(probe_obj, "name", &name_obj) && - json_object_object_get_ex(probe_obj, "functions", &funcs_obj) && - json_object_get_type(name_obj) == json_type_string && - json_object_get_type(funcs_obj) == json_type_array) { - std::string probe_name = json_object_get_string(name_obj); - std::unordered_set func_set; - 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) { - func_set.insert(json_object_get_string(func_obj)); - } - } - // Merge with existing exclusion map if present - auto& existing_set = exclusionMap[probe_name]; - existing_set.insert(func_set.begin(), func_set.end()); - } - } - } - if (jobj) json_object_put(jobj); - } else { - DC_LOG_ERROR("Failed to open invalid probes file: %s", - configManager_->probe_invalid_file_path.string().c_str()); - } - } - - auto existingProbesMap = loadExistingProbes(); - - static std::unordered_set global_function_names; - std::vector> probes; - // Iterate over all capture probes from configuration - for (const auto& capture_probe : configManager_->capture_probes) { - std::vector functionNames; - std::shared_ptr probe; - - // Instantiate the correct probe type - switch (capture_probe->probe_type) { - case ProbeType::UPROBE: - probe = std::make_shared(); - break; - case ProbeType::SYSCALLS: - probe = std::make_shared(); - break; - case ProbeType::USDT: - probe = std::make_shared(); - break; - case ProbeType::KPROBE: - probe = std::make_shared(); - break; - case ProbeType::CUSTOM: - probe = std::make_shared(); - break; - default: - 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: - DC_LOG_INFO("Extracting header probes..."); - if (auto headerProbe = std::static_pointer_cast(capture_probe)) { - DC_LOG_DEBUG("Header Name: %s", headerProbe->file.c_str()); - functionNames = HeaderFunctionExtractor(headerProbe->file).extractFunctionNames(); - } - if (capture_probe->probe_type == ProbeType::KPROBE) { - DC_LOG_DEBUG("KPROBE: Extracting symbols from header..."); - const auto& ksym_functions = - datacrumbs::Singleton::get_instance()->functions_; - std::vector validFunctionNames; - for (const auto& name : functionNames) { - if (ksym_functions.find(name) != ksym_functions.end()) { - validFunctionNames.push_back(name); - } else { - DC_LOG_WARN("Function '%s' not found in KSymCapture functions, skipping.", - name.c_str()); - } - } - functionNames = std::move(validFunctionNames); - } - break; - case CaptureType::BINARY: - DC_LOG_INFO("Extracting binary probes..."); - if (auto binaryProbe = std::static_pointer_cast(capture_probe)) { - DC_LOG_DEBUG("Binary Path: %s", binaryProbe->file.c_str()); - functionNames = - ElfSymbolExtractor(binaryProbe->file, binaryProbe->include_offsets).extract_symbols(); - if (capture_probe->probe_type == ProbeType::UPROBE) { - DC_LOG_DEBUG("UPROBE: Extracting symbols from binary..."); - if (auto uprobe = std::dynamic_pointer_cast(probe)) { - uprobe->binary_path = binaryProbe->file; - uprobe->include_offsets = binaryProbe->include_offsets; - } - } - } - break; - case CaptureType::USDT: - DC_LOG_INFO("Extracting USDT probes..."); - if (auto usdtProbe = std::static_pointer_cast(capture_probe)) { - if (capture_probe->probe_type == ProbeType::USDT) { - DC_LOG_DEBUG("USDT: Extracting symbols from binary..."); - if (auto usdt_probe = std::dynamic_pointer_cast(probe)) { - usdt_probe->binary_path = usdtProbe->binary_path; - usdt_probe->provider = usdtProbe->provider; - - functionNames = USDTFunctionExtractor(usdtProbe->provider).extractFunctionNames(); - } - } - } - break; - case CaptureType::KSYM: - DC_LOG_INFO("Extracting kernel symbol probes..."); - if (auto ksymProbe = std::static_pointer_cast(capture_probe)) { - functionNames = datacrumbs::Singleton::get_instance()->getFunctionsByRegex( - ksymProbe->regex); - } - break; - case CaptureType::CUSTOM: - DC_LOG_INFO("Extracting custom probes..."); - if (auto customProbe = std::static_pointer_cast(capture_probe)) { - // Load custom BPF file and extract functions - if (!std::filesystem::exists(customProbe->bpf_file)) { - DC_LOG_ERROR("Custom BPF file does not exist: %s", customProbe->bpf_file.c_str()); - has_invalid_probes_ = true; - continue; // Skip this probe if the file is missing - } - if (!std::filesystem::exists(customProbe->probe_file)) { - DC_LOG_ERROR("Custom probe file does not exist: %s", customProbe->probe_file.c_str()); - has_invalid_probes_ = true; - continue; // Skip this probe if the file is missing - } - if (!std::filesystem::exists(customProbe->process_header)) { - DC_LOG_ERROR("Custom process header file does not exist: %s", - customProbe->process_header.c_str()); - has_invalid_probes_ = true; - continue; // Skip this probe if the file is missing - } - std::ifstream probe_ifs(customProbe->probe_file); - if (!probe_ifs.is_open()) { - DC_LOG_ERROR("Failed to open custom probe file: %s", customProbe->probe_file.c_str()); - break; - } - std::string probe_content((std::istreambuf_iterator(probe_ifs)), - std::istreambuf_iterator()); - json_object* probe_jobj = json_tokener_parse(probe_content.c_str()); - if (probe_jobj && json_object_get_type(probe_jobj) == json_type_array) { - int arr_len = json_object_array_length(probe_jobj); - for (int i = 0; i < arr_len; ++i) { - json_object* entry = json_object_array_get_idx(probe_jobj, i); - if (!entry) continue; - json_object* funcs_obj = nullptr; - if (json_object_object_get_ex(entry, "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) { - functionNames.push_back(json_object_get_string(func_obj)); - } - } - } - } - } - if (probe_jobj) json_object_put(probe_jobj); - if (auto custom_probe = std::dynamic_pointer_cast(probe)) { - custom_probe->bpf_path = customProbe->bpf_file; - custom_probe->start_event_id = customProbe->start_event_id; - custom_probe->process_header = customProbe->process_header; - custom_probe->event_type = customProbe->event_type; - } - } - break; - default: - DC_LOG_WARN("Unknown capture type encountered!"); - } - - // Filter function names by regex if specified - if (!capture_probe->regex.empty()) { - std::regex re(capture_probe->regex, std::regex_constants::icase); - std::vector filteredNames; - for (const auto& name : functionNames) { - if (std::regex_match(name, re)) { - filteredNames.push_back(name); - } - } - functionNames = std::move(filteredNames); - } - - probe->name = capture_probe->name; - - // For syscall probes, strip "sys_" prefix - if (capture_probe->probe_type == ProbeType::SYSCALLS) { - for (auto& name : functionNames) { - if (name.rfind("sys_", 0) == 0) { - name = name.substr(4); - } - } - } - - // Exclude functions as per exclusion map - if (!exclusionMap.empty()) { - auto it = exclusionMap.find(capture_probe->name); - if (it != exclusionMap.end()) { - const auto& excludedFuncs = it->second; - std::vector filteredNames; - for (const auto& name : functionNames) { - auto pos = name.find(':'); - std::string base_name = (pos != std::string::npos) ? name.substr(0, pos) : name; - if (excludedFuncs.find(name) == excludedFuncs.end() && - excludedFuncs.find(base_name) == excludedFuncs.end()) { - filteredNames.push_back(name); - } else { - DC_LOG_INFO("Excluding function '%s' from probe '%s' as per exclusion list.", - name.c_str(), capture_probe->name.c_str()); - } - } - functionNames = std::move(filteredNames); - } - } - if (capture_probe->probe_type != ProbeType::CUSTOM) { - std::sort(functionNames.begin(), functionNames.end()); - } - - switch (capture_probe->type) { - case CaptureType::HEADER: { - DC_LOG_INFO("Deduplicating header probes..."); - std::vector validFunctionNames; - for (const auto& name : functionNames) { - DC_LOG_INFO("[ProbeExplorer] Function name '%s' from %s.", name.c_str(), - capture_probe->name.c_str()); - auto combined_name = name; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeExplorer] Function name '%s' already processed. Skipping duplicate " - "from %s.", - name.c_str(), capture_probe->name.c_str()); - continue; - } - validFunctionNames.push_back(name); - } - functionNames = std::move(validFunctionNames); - - break; - } - case CaptureType::BINARY: { - DC_LOG_INFO("Deduplicating binary probes..."); - if (auto binaryProbe = std::static_pointer_cast(capture_probe)) { - if (capture_probe->probe_type == ProbeType::UPROBE) { - std::vector validFunctionNames; - for (const auto& name : functionNames) { - auto combined_name = binaryProbe->file + "_" + name; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeExplorer] Function name '%s' already processed. Skipping duplicate " - "from %s.", - name.c_str(), capture_probe->name.c_str()); - continue; - } - validFunctionNames.push_back(name); - } - functionNames = std::move(validFunctionNames); - } - } - break; - } - case CaptureType::USDT: { - DC_LOG_INFO("Deduplicating USDT probes..."); - if (auto usdtProbe = std::static_pointer_cast(capture_probe)) { - if (capture_probe->probe_type == ProbeType::USDT) { - std::vector validFunctionNames; - for (const auto& name : functionNames) { - auto combined_name = usdtProbe->binary_path + "_" + usdtProbe->provider + "_" + name; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeExplorer] Function name '%s' already processed. Skipping duplicate " - "from %s.", - name.c_str(), capture_probe->name.c_str()); - continue; - } - validFunctionNames.push_back(name); - } - functionNames = std::move(validFunctionNames); - } - } - break; - } - case CaptureType::KSYM: { - DC_LOG_INFO("Deduplicating kernel symbol probes..."); - if (auto ksymProbe = std::static_pointer_cast(capture_probe)) { - std::vector validFunctionNames; - for (const auto& name : functionNames) { - auto combined_name = name; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeExplorer] Function name '%s' already processed. Skipping duplicate " - "from %s.", - name.c_str(), capture_probe->name.c_str()); - continue; - } - validFunctionNames.push_back(name); - } - functionNames = std::move(validFunctionNames); - } - break; - } - case CaptureType::CUSTOM: { - DC_LOG_INFO("Deduplicating custom probes..."); - std::vector validFunctionNames; - for (const auto& name : functionNames) { - DC_LOG_DEBUG("[ProbeExplorer] Function name '%s' from %s.", name.c_str(), - capture_probe->name.c_str()); - auto combined_name = name; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeExplorer] Function name '%s' already processed. Skipping duplicate " - "from %s.", - name.c_str(), capture_probe->name.c_str()); - continue; - } - validFunctionNames.push_back(name); - } - functionNames = std::move(validFunctionNames); - break; - } - default: - DC_LOG_WARN("Unknown capture type encountered!"); - } - - probe->functions = functionNames; - - // Validate the probe before adding - if (!probe->validate()) { - DC_LOG_ERROR("Probe validation failed for: %s", probe->name.c_str()); - has_invalid_probes_ = true; - continue; // Skip invalid probes - } - DC_LOG_INFO("Valid probe extracted: %s", probe->name.c_str()); - probes.push_back(probe); - } - if (has_invalid_probes_) { - DC_LOG_ERROR("One or more probes failed validation. Please check the logs above."); - } - DC_LOG_TRACE("ProbeExplorer::extractProbes - end"); - return probes; -} -void ProbeExplorer::create_exclusion_file(std::vector> probes) { - DC_LOG_TRACE("ProbeExplorer::create_exclusion_file - start"); - json_object* jexarray = json_object_new_array(); - // Serialize each probe to JSON without functions - for (const auto& probe : probes) { - json_object* jexclude = nullptr; - switch (probe->type) { - case ProbeType::SYSCALLS: - jexclude = std::dynamic_pointer_cast(probe)->toJson(false); - break; - case ProbeType::KPROBE: - jexclude = std::dynamic_pointer_cast(probe)->toJson(false); - break; - case ProbeType::UPROBE: - jexclude = std::dynamic_pointer_cast(probe)->toJson(false); - break; - case ProbeType::USDT: - jexclude = std::dynamic_pointer_cast(probe)->toJson(false); - break; - case ProbeType::CUSTOM: - jexclude = std::dynamic_pointer_cast(probe)->toJson(false); - break; - default: - DC_LOG_ERROR("Unknown probe type encountered."); - continue; // Skip unknown types - } - if (!jexclude) { - DC_LOG_ERROR("Failed to serialize probe for exclusion: %s", probe->name.c_str()); - continue; // Skip serialization failure - } - json_object_array_add(jexarray, jexclude); - } - if (!configManager_->probe_exclusion_file_path.empty() && - !std::filesystem::exists(configManager_->probe_exclusion_file_path)) { - const char* exclude_json_str = - json_object_to_json_string_ext(jexarray, JSON_C_TO_STRING_PRETTY); - std::ofstream ofs(configManager_->probe_exclusion_file_path); - if (ofs.is_open()) { - ofs << exclude_json_str; - ofs.close(); - } else { - DC_LOG_ERROR("Failed to open file: %s", configManager_->probe_exclusion_file_path.c_str()); - } - } - - 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"); - auto probes = extractProbes(); - if (probes.empty()) { - DC_LOG_WARN("No valid probes extracted. Skipping JSON write."); - return probes; - } - if (!configManager_->probe_exclusion_file_path.empty() && - !std::filesystem::exists(configManager_->probe_exclusion_file_path)) { - create_exclusion_file(probes); - } - json_object* jarray = json_object_new_array(); - - // Serialize each probe to JSON - for (const auto& probe : probes) { - json_object* jprobe = nullptr; - switch (probe->type) { - case ProbeType::SYSCALLS: - jprobe = std::dynamic_pointer_cast(probe)->toJson(); - break; - case ProbeType::KPROBE: - jprobe = std::dynamic_pointer_cast(probe)->toJson(); - break; - case ProbeType::UPROBE: - jprobe = std::dynamic_pointer_cast(probe)->toJson(); - break; - case ProbeType::USDT: - jprobe = std::dynamic_pointer_cast(probe)->toJson(); - break; - case ProbeType::CUSTOM: - jprobe = std::dynamic_pointer_cast(probe)->toJson(); - break; - default: - DC_LOG_ERROR("Unknown probe type encountered."); - continue; // Skip unknown types - } - if (!jprobe) { - DC_LOG_ERROR("Failed to serialize probe: %s", probe->name.c_str()); - continue; // Skip serialization failure - } - json_object_array_add(jarray, jprobe); - } - - // Write JSON to file - const char* json_str = json_object_to_json_string_ext(jarray, JSON_C_TO_STRING_PRETTY); - - std::ofstream ofs(configManager_->probe_file_path); - if (ofs.is_open()) { - ofs << json_str; - ofs.close(); - } else { - DC_LOG_ERROR("Failed to open file: %s", configManager_->probe_file_path.c_str()); - } - - json_object_put(jarray); // free memory - DC_LOG_TRACE("ProbeExplorer::writeProbesToJson - end"); - return probes; -} - -} // namespace datacrumbs - -/** - * Example usage: - * g++ -std=c++14 /home/haridev/datacrumbs/src/datacrumbs/common/configuration_manager.cpp - * probe_explorer_test.cpp probe_explorer.cpp mechanism/ksym_capture.cpp -o probe_explorer_test - * -I/home/haridev/datacrumbs/src -lelf `llvm-config --cxxflags --ldflags --system-libs --libs - * core` -lclang -lyaml-cpp - */ - -// Main function to run the probe explorer and print extracted probes -int main(int argc, char** argv) { - DC_LOG_TRACE("main - start"); - datacrumbs::utils::Timer timer; // Create timer instance - timer.resumeTime(); // Start timing - - datacrumbs::ProbeExplorer explorer(argc, argv); - auto probes = explorer.writeProbesToJson(); - - // Print probe names and a sample of their functions - for (const auto& probe : probes) { - DC_LOG_INFO("Probe: %s", probe->name.c_str()); - int i = 0; - for (const auto& value : probe->functions) { - DC_LOG_DEBUG(" Value: %s", value.c_str()); - if (i++ > 10) { - DC_LOG_DEBUG(" ... (truncated)"); - break; - } - } - } - - timer.pauseTime(); // Stop timer and accumulate elapsed time - DC_LOG_PRINT("Elapsed time in Probe Explorer: %f seconds", timer.getElapsedTime()); - DC_LOG_TRACE("main - end"); - if (explorer.has_invalid_probes_) { - DC_LOG_ERROR("Probe exploration completed with errors due to invalid probes."); - return 1; // Indicate error due to invalid probes - } - return 0; -} \ No newline at end of file diff --git a/src/datacrumbs/explorer/probe_explorer.h b/src/datacrumbs/explorer/probe_explorer.h deleted file mode 100644 index 2ec25b4a..00000000 --- a/src/datacrumbs/explorer/probe_explorer.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include -#include -#include // Use custom logging macros -#include -#include -#include -#include -#include -#include - -// dependency libraries -#include - -// std headers -#include -#include -#include -#include -#include -#include - -namespace datacrumbs { - -// ProbeExplorer class is responsible for extracting and writing probes -class ProbeExplorer { - public: - // Constructor: Initializes ProbeExplorer with command-line arguments - ProbeExplorer(int argc, char** argv); - // Extracts exclusion mappings and check for invalid entries - // Returns a map of probe names to sets of function names to be excluded - std::unordered_map> Extract_Exclusions(); - // Extracts probes from a given data source (dummy implementation) - // Returns a vector of shared pointers to Probe objects - std::vector> extractProbes(); - // Creates an exclusion file from the provided probes if the file does not exist - void create_exclusion_file(std::vector> probes); - // Writes extracted probes to a JSON file - // 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: - // Configuration manager instance for managing configuration settings - std::shared_ptr configManager_; -}; - -} // namespace datacrumbs diff --git a/src/datacrumbs/generator/generator.cpp b/src/datacrumbs/generator/generator.cpp deleted file mode 100644 index b92dcdb5..00000000 --- a/src/datacrumbs/generator/generator.cpp +++ /dev/null @@ -1,346 +0,0 @@ - -#include -namespace datacrumbs { - -// Constructor for ProbeGenerator -ProbeGenerator::ProbeGenerator(int argc, char** argv) : eventIdCounter_(1000) { - // Initialize ConfigurationManager singleton - configManager_ = datacrumbs::Singleton::get_instance(argc, argv); -} -int ProbeGenerator::run() { - DC_LOG_TRACE("[ProbeGenerator] Starting run()"); - - if (!configManager_) { - DC_LOG_ERROR("ConfigurationManager is not initialized."); - return -1; - } - json_object* jarray = json_object_new_array(); - // Global set to track unique function names - static std::unordered_set global_function_names; - - // Get probes file path from configuration - const auto& probesFile = configManager_->probe_file_path; - DC_LOG_INFO("[ProbeGenerator] Reading probes file: %s", probesFile.c_str()); - - // Read probes JSON file - struct json_object* probesJson = json_object_from_file(probesFile.c_str()); - if (!probesJson) { - DC_LOG_ERROR("Failed to read probes file: %s", probesFile.c_str()); - return -1; - } - - auto probe_files = std::vector(); - auto process_headers = std::vector(); - int arr_len = json_object_array_length(probesJson); - DC_LOG_INFO("[ProbeGenerator] Number of probes: %d", arr_len); - - // Track total number of generated probes - size_t total_probes_generated = 0; - update_event("M", "SH", 0); - update_event(DATACRUMBS_PROBE_CATEGORY, START_FUNCTION_NAME, START_EVENT_ID); - update_event(DATACRUMBS_PROBE_CATEGORY, END_FUNCTION_NAME, END_EVENT_ID); - bool manual_probe_added = false; - // Iterate over each probe in the JSON array - for (int i = 0; i < arr_len; ++i) { - struct json_object* jprobe = json_object_array_get_idx(probesJson, i); - auto probe = Probe::fromJson(jprobe); - std::shared_ptr manual_probe; - switch (probe.type) { - case ProbeType::UPROBE: - manual_probe = std::make_shared(UProbe::fromJson(jprobe)); - break; - case ProbeType::SYSCALLS: - manual_probe = std::make_shared(SysCallProbe::fromJson(jprobe)); - break; - case ProbeType::USDT: - manual_probe = std::make_shared(USDTProbe::fromJson(jprobe)); - break; - case ProbeType::KPROBE: - manual_probe = std::make_shared(KProbe::fromJson(jprobe)); - break; - case ProbeType::CUSTOM: - manual_probe = std::make_shared(CustomProbe::fromJson(jprobe)); - break; - default: - DC_LOG_ERROR("Unknown probe type encountered in extractProbes()"); - throw std::runtime_error("Unknown probe type encountered in extractProbes()"); - } - manual_probe->functions.clear(); // Clear functions for manual probe - DC_LOG_INFO("[ProbeGenerator] Processing probe: %s", probe.name.c_str()); - - std::stringstream ss; - ss << "#include " << std::endl; - - // Iterate over each function in the probe - for (size_t func_index = 0; func_index < probe.functions.size(); ++func_index) { - const auto& func = probe.functions[func_index]; - - int current_event_id = 1000; - if (probe.type != ProbeType::CUSTOM) { - current_event_id = this->eventIdCounter_++; - } else { - auto custom = CustomProbe::fromJson(jprobe); - current_event_id = custom.start_event_id + func_index; - } - - // Map event id to probe name and function name - struct json_object* info = json_object_new_object(); - json_object_object_add(info, "probe_name", json_object_new_string(probe.name.c_str())); - json_object_object_add(info, "function_name", json_object_new_string(func.c_str())); - categoryMap_[current_event_id] = info; - - // Generate code based on probe type - switch (probe.type) { - case ProbeType::KPROBE: { - auto combined_name = func; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeGenerator] Function name '%s' already processed. Skipping duplicate from " - "%s.", - func.c_str(), probe.name.c_str()); - continue; - } - DC_LOG_DEBUG("[ProbeGenerator] Using KProbeGenerator for function: %s (event_id: %d)", - func.c_str(), current_event_id); - KProbeGenerator generator(current_event_id, func); - ss << generator.generate().str() << std::endl; - break; - } - case ProbeType::UPROBE: { - DC_LOG_DEBUG("[ProbeGenerator] Using UProbeGenerator for function: %s (event_id: %d)", - func.c_str(), current_event_id); - auto uprobe = UProbe::fromJson(jprobe); - std::string function_name, offset; - auto pos = func.find(':'); - bool is_manual = false; - if (pos != std::string::npos) { - function_name = func.substr(0, pos); - offset = func.substr(pos + 1); - is_manual = true; - } else { - function_name = func; - offset = ""; - } - auto combined_name = uprobe.binary_path + "_" + function_name + "_" + offset; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeGenerator] Function name '%s' already processed. Skipping duplicate from " - "%s.", - func.c_str(), probe.name.c_str()); - continue; - } - if (is_manual) { - DC_LOG_DEBUG("[ProbeGenerator] Adding manual uprobe for function: %s", func.c_str()); - manual_probe->functions.push_back(std::to_string(current_event_id)); - } - // if (!uprobe.include_offsets) offset = ""; - UProbeGenerator uprobe_gen(current_event_id, function_name, offset, uprobe.binary_path, - is_manual); - ss << uprobe_gen.generate().str() << std::endl; - break; - } - case ProbeType::SYSCALLS: { - DC_LOG_DEBUG("[ProbeGenerator] Using SyscallGenerator for function: %s (event_id: %d)", - func.c_str(), current_event_id); - SyscallGenerator syscall_gen(current_event_id, func); - auto combined_name = func; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeGenerator] Function name '%s' already processed. Skipping duplicate from " - "%s.", - func.c_str(), probe.name.c_str()); - continue; - } - ss << syscall_gen.generate().str() << std::endl; - - break; - } - case ProbeType::USDT: { - DC_LOG_DEBUG("[ProbeGenerator] Using USDTGenerator for function: %s (event_id: %d)", - func.c_str(), current_event_id); - auto usdt = USDTProbe::fromJson(jprobe); - auto combined_name = usdt.binary_path + "_" + usdt.provider + "_" + func; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeGenerator] Function name '%s' already processed. Skipping duplicate from " - "%s.", - func.c_str(), probe.name.c_str()); - continue; - } - USDTGenerator usdt_gen(current_event_id, func, usdt.binary_path, usdt.provider); - ss << usdt_gen.generate().str() << std::endl; - } break; - case ProbeType::CUSTOM: { - auto combined_name = func; - // Check and insert into global set to avoid duplicates - if (!global_function_names.insert(combined_name).second) { - DC_LOG_WARN( - "[ProbeGenerator] Function name '%s' already processed. Skipping duplicate from " - "%s.", - func.c_str(), probe.name.c_str()); - continue; - } - } break; - default: { - DC_LOG_ERROR("Unknown probe type: %d", static_cast(probe.type)); - } - } - // Increment total probes generated - ++total_probes_generated; - } - if (manual_probe != nullptr && !manual_probe->functions.empty()) { - DC_LOG_INFO("[ProbeGenerator] Manual probe for %d functions added for probe: %s", - manual_probe->functions.size(), probe.name.c_str()); - manual_probe_added = true; - json_object* manual_jprobe = nullptr; - switch (manual_probe->type) { - case ProbeType::SYSCALLS: - manual_jprobe = std::dynamic_pointer_cast(manual_probe)->toJson(); - break; - case ProbeType::KPROBE: - manual_jprobe = std::dynamic_pointer_cast(manual_probe)->toJson(); - break; - case ProbeType::UPROBE: { - auto manual_uprobe = std::dynamic_pointer_cast(manual_probe); - DC_LOG_DEBUG("[ProbeGenerator] Adding manual uprobe for function: %s", - manual_uprobe->binary_path.c_str()); - manual_jprobe = manual_uprobe->toJson(); - break; - } - case ProbeType::USDT: - manual_jprobe = std::dynamic_pointer_cast(manual_probe)->toJson(); - break; - case ProbeType::CUSTOM: - manual_jprobe = std::dynamic_pointer_cast(manual_probe)->toJson(); - break; - default: - DC_LOG_ERROR("Unknown probe type encountered."); - continue; // Skip unknown types - } - json_object_array_add(jarray, manual_jprobe); - } - if (probe.type == ProbeType::CUSTOM) { - auto custom = CustomProbe::fromJson(jprobe); - probe_files.push_back(custom.bpf_path); - process_headers.push_back(custom.process_header); - ss << "#include \"" << custom.bpf_path << "\"" << std::endl; - } - // Write generated code to file - const char* gen_path = DATACRUMBS_SRC_GEN_PATH; - if (!gen_path) { - DC_LOG_ERROR("DATACRUMBS_SRC_GEN_PATH environment variable not set."); - } else { - std::filesystem::path dir = std::filesystem::path(gen_path) / "server/bpf/src"; - std::filesystem::create_directories(dir); - std::string filename = (dir / (probe.name + ".bpf.c")).string(); - std::ofstream out(filename); - if (!out) { - DC_LOG_ERROR("Failed to open file for writing: %s", filename.c_str()); - } else { - out << ss.str(); - out.close(); - probe_files.push_back(probe.name + ".bpf.c"); - DC_LOG_INFO("[ProbeGenerator] Generated %zu functions file: %s", probe.functions.size(), - filename.c_str()); - } - } - } - if (manual_probe_added) { - // Write JSON to file - const char* json_str = json_object_to_json_string_ext(jarray, JSON_C_TO_STRING_PRETTY); - - std::ofstream ofs(configManager_->manual_probe_path); - if (ofs.is_open()) { - ofs << json_str; - ofs.close(); - } else { - DC_LOG_ERROR("Failed to open file: %s", configManager_->manual_probe_path.c_str()); - } - - json_object_put(jarray); // free memory - DC_LOG_TRACE("ProbeExplorer::writeProbesToJson - end"); - } else { - DC_LOG_INFO("No manual probes were added."); - // Remove existing manual probe file if it exists - std::error_code ec; - if (std::filesystem::exists(configManager_->manual_probe_path, ec)) { - std::filesystem::remove(configManager_->manual_probe_path, ec); - if (ec) { - DC_LOG_ERROR("Failed to remove file: %s", configManager_->manual_probe_path.c_str()); - } else { - DC_LOG_INFO("Removed existing manual probe file: %s", - configManager_->manual_probe_path.c_str()); - } - } - } - // Append all generated probe files as includes to generated.bpf.c - const char* gen_path = DATACRUMBS_SRC_GEN_PATH; - if (gen_path) { - std::filesystem::create_directories(std::filesystem::path(gen_path) / "server/process"); - std::string generated_process_filename = - (std::filesystem::path(gen_path) / "server/process" / "generated_process.h").string(); - std::ofstream generated_process_out(generated_process_filename); - if (!generated_process_out) { - DC_LOG_ERROR("Failed to open file for writing: %s", generated_process_filename.c_str()); - } else { - for (const auto& process_header : process_headers) { - generated_process_out << "#include \"" << process_header << "\"" << std::endl; - } - generated_process_out.close(); - DC_LOG_INFO("[ProbeGenerator] All process headers included in: %s", - generated_process_filename.c_str()); - } - } - - // Clean up JSON object - json_object_put(probesJson); - - DC_LOG_INFO("[ProbeGenerator] Writing category map..."); - writeCategoryMap(); - // Print total number of probes generated - DC_LOG_PRINT("[ProbeGenerator] Total number of probes generated: %zu", total_probes_generated); - DC_LOG_TRACE("[ProbeGenerator] run() completed."); - return total_probes_generated; -} - -// Writes the category map to a JSON file -void ProbeGenerator::writeCategoryMap() { - const auto& categoryMapFile = configManager_->category_map_path; - struct json_object* outJson = json_object_new_object(); - - // Add each eventId and its info to the JSON object - for (const auto& [eventId, info] : categoryMap_) { - char key[32]; - snprintf(key, sizeof(key), "%d", eventId); - json_object_object_add(outJson, key, json_object_get(info)); - } - - // Write JSON to file - json_object_to_file_ext(categoryMapFile.c_str(), outJson, JSON_C_TO_STRING_PRETTY); - json_object_put(outJson); - - // Free info objects - for (auto& [_, info] : categoryMap_) { - json_object_put(info); - } -} - -} // namespace datacrumbs - -// Entry point for the generator -int main(int argc, char** argv) { - datacrumbs::utils::Timer timer; - timer.resumeTime(); - - datacrumbs::ProbeGenerator generator(argc, argv); - generator.run(); - - timer.pauseTime(); - DC_LOG_PRINT("Total time elapsed for Probe Generator: %f seconds", timer.getElapsedTime()); - - return 0; -} \ No newline at end of file diff --git a/src/datacrumbs/generator/generator.h b/src/datacrumbs/generator/generator.h deleted file mode 100644 index 40f48589..00000000 --- a/src/datacrumbs/generator/generator.h +++ /dev/null @@ -1,92 +0,0 @@ -#pragma once - -// include first -#include -// other headers -// Include necessary headers for configuration, data structures, enumerations, and probe generators -#include -#include -#include -#include -#include // Added for logging macros -#include -#include -#include -#include -#include -#include - -// dependency headers -#include -// std headers -#include -#include -#include -#include -#include - -namespace datacrumbs { - -/** - * @brief ProbeGenerator is responsible for generating probes based on configuration and input - * files. - */ -class ProbeGenerator { - public: - /** - * @brief Constructor for ProbeGenerator. - * @param argc Argument count from main. - * @param argv Argument vector from main. - */ - ProbeGenerator(int argc, char** argv); - - /** - * @brief Main entry point to run the probe generation process. - * This method reads the configuration, processes the probes file, - * generates probe files, and writes the category map. - * @return Total number of probes generated. - */ - int run(); - - private: - // Shared pointer to the configuration manager - std::shared_ptr configManager_; - - /** - * @brief Helper function to extract a string value from a JSON object by key. - * @param obj JSON object to extract from. - * @param key Key to look up in the JSON object. - * @return Pointer to the string value, or nullptr if not found. - */ - static const char* get_string_from_json(struct json_object* obj, const char* key) { - struct json_object* val = nullptr; - if (json_object_object_get_ex(obj, key, &val) && json_object_is_type(val, json_type_string)) { - return json_object_get_string(val); - } - return nullptr; - } - - /** - * @brief Writes the category map to the output file. - */ - void writeCategoryMap(); - - int update_event(const std::string& probe_name, const std::string& function_name, int event_id) { - struct json_object* info = json_object_new_object(); - json_object_object_add(info, "probe_name", json_object_new_string(probe_name.c_str())); - json_object_object_add(info, "function_name", json_object_new_string(function_name.c_str())); - categoryMap_[event_id] = info; - return 0; - } - - // Path to the probes file - std::string probesFile_; - // Path to the category map file - std::string categoryMapFile_; - // Counter for event IDs - int eventIdCounter_; - // Map from event ID to JSON object representing the category - std::unordered_map categoryMap_; -}; - -} // namespace datacrumbs diff --git a/src/datacrumbs/generator/mechanisms/kprobe_generator.h b/src/datacrumbs/generator/mechanisms/kprobe_generator.h deleted file mode 100644 index 47d77924..00000000 --- a/src/datacrumbs/generator/mechanisms/kprobe_generator.h +++ /dev/null @@ -1,80 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include // Logging macros -// std headers -#include -#include -#include -#include -namespace datacrumbs { - -/** - * @brief Generates kprobe and kretprobe BPF program code for a given function. - * - * This class is responsible for generating the C code for attaching kprobes and - * kretprobes to kernel functions. The generated code uses sanitized function names - * to ensure valid identifiers. - */ -class KProbeGenerator { - public: - /** - * @brief Constructor for KProbeGenerator. - * @param event_id Unique identifier for the event. - * @param func_name Name of the kernel function to probe. - */ - KProbeGenerator(int event_id, const std::string& func_name) - : event_id_(event_id), func_name_(func_name) { - DC_LOG_TRACE("KProbeGenerator::KProbeGenerator(event_id=%d, func_name=%s) - start", event_id, - func_name.c_str()); - DC_LOG_DEBUG("Initialized KProbeGenerator with event_id=%d and func_name=%s", event_id, - func_name.c_str()); - DC_LOG_TRACE("KProbeGenerator::KProbeGenerator - end"); - } - - /** - * @brief Generates the kprobe and kretprobe code as a stringstream. - * @return std::stringstream containing the generated code. - */ - std::stringstream generate() const { - DC_LOG_TRACE("KProbeGenerator::generate() - start"); - // Sanitize function name for use in identifiers - std::string sanitized_func_name = func_name_.substr(0, 10); - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '.', '_'); - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '@', '_'); - DC_LOG_DEBUG("Sanitized function name: %s", sanitized_func_name.c_str()); - - std::stringstream ss; - // Generate kprobe entry code - ss << "SEC(\"kprobe/" << func_name_ << "\")\n"; - ss << "int BPF_KPROBE(" << sanitized_func_name << event_id_ << "_entry) {\n"; - ss << " generic_entry(ctx, " << event_id_ << ");\n"; - ss << " return 0;\n"; - ss << "}\n"; - bool is_fork = std::regex_search(func_name_, std::regex(".*fork.*")); - std::string exit_func; - if (is_fork) { - exit_func = "generic_fork_exit"; - } else { - exit_func = "generic_exit"; - } - // Generate kretprobe exit code - ss << "SEC(\"kretprobe/" << func_name_ << "\")\n"; - ss << "int BPF_KRETPROBE(" << sanitized_func_name << event_id_ << "_exit) {\n"; - ss << " " << exit_func << "(ctx, " << event_id_ << ");\n"; - ss << " return 0;\n"; - ss << "}\n"; - - DC_LOG_DEBUG("Generated kprobe and kretprobe code for function: %s (event_id=%d)", - func_name_.c_str(), event_id_); - DC_LOG_TRACE("KProbeGenerator::generate() - end"); - return ss; - } - - private: - int event_id_; ///< Unique identifier for the event - std::string func_name_; ///< Name of the kernel function to probe -}; - -} // namespace datacrumbs \ No newline at end of file diff --git a/src/datacrumbs/generator/mechanisms/syscall_generator.h b/src/datacrumbs/generator/mechanisms/syscall_generator.h deleted file mode 100644 index d612fcc4..00000000 --- a/src/datacrumbs/generator/mechanisms/syscall_generator.h +++ /dev/null @@ -1,76 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include // Logging macros -// std headers -#include -#include -#include -#include -namespace datacrumbs { - -/** - * @brief Generates BPF syscall probe code for a given function name and event ID. - */ -class SyscallGenerator { - public: - /** - * @brief Constructor for SyscallGenerator. - * @param event_id Unique identifier for the event. - * @param func_name Name of the syscall function to generate probes for. - */ - SyscallGenerator(int event_id, const std::string& func_name) - : event_id_(event_id), func_name_(func_name) { - DC_LOG_TRACE("SyscallGenerator::SyscallGenerator(event_id=%d, func_name=%s) - start", event_id, - func_name.c_str()); - // No additional initialization required. - DC_LOG_TRACE("SyscallGenerator::SyscallGenerator - end"); - } - - /** - * @brief Generates the BPF probe code as a stringstream. - * @return std::stringstream containing the generated code. - */ - std::stringstream generate() const { - DC_LOG_TRACE("SyscallGenerator::generate() - start"); - std::string sanitized_func_name = func_name_.substr(0, 10); - // Replace '.' and '@' with '_' to sanitize function name for use in identifiers. - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '.', '_'); - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '@', '_'); - - std::stringstream ss; - // Generate entry probe - ss << "SEC(\"ksyscall/" << func_name_ << "\")\n"; - ss << "int BPF_KSYSCALL(" << sanitized_func_name << event_id_ - << "_entry, struct pt_regs* regs) {\n"; - ss << " generic_entry(ctx, " << event_id_ << ");\n"; - ss << " return 0;\n"; - ss << "}\n"; - // Generate return probe - bool is_fork = std::regex_search(func_name_, std::regex(".*fork.*")); - std::string exit_func; - if (is_fork) { - exit_func = "generic_fork_exit"; - } else { - exit_func = "generic_exit"; - } - ss << "SEC(\"kretsyscall/" << func_name_ << "\")\n"; - ss << "int BPF_KRETPROBE(" << sanitized_func_name << event_id_ - << "_exit, struct pt_regs* regs) {\n"; - ss << " " << exit_func << "(ctx, " << event_id_ << ");\n"; - ss << " return 0;\n"; - ss << "}\n"; - - DC_LOG_DEBUG("Generated BPF probe code for function '%s' with event_id %d", func_name_.c_str(), - event_id_); - DC_LOG_TRACE("SyscallGenerator::generate() - end"); - return ss; - } - - private: - int event_id_; ///< Unique identifier for the event. - std::string func_name_; ///< Name of the syscall function. -}; - -} // namespace datacrumbs \ No newline at end of file diff --git a/src/datacrumbs/generator/mechanisms/uprobe_generator.h b/src/datacrumbs/generator/mechanisms/uprobe_generator.h deleted file mode 100644 index 347ccd8a..00000000 --- a/src/datacrumbs/generator/mechanisms/uprobe_generator.h +++ /dev/null @@ -1,97 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include // Logging macros -// std headers -#include -#include -#include -#include -namespace datacrumbs { - -/** - * @brief Generates eBPF uprobe and uretprobe function code for a given function. - * - * This class is responsible for generating the C code for attaching uprobes and uretprobes - * to a specified function, using the provided event id, function name, offset, and provider. - */ -class UProbeGenerator { - public: - /** - * @brief Constructor for UProbeGenerator. - * @param event_id Unique identifier for the event. - * @param func_name Name of the function to probe. - * @param offset Offset within the function (currently unused). - * @param provider Name of the provider (e.g., binary or library). - */ - UProbeGenerator(int event_id, const std::string& func_name, const std::string& offset, - const std::string& provider, bool is_manual = false) - : event_id_(event_id), - func_name_(func_name), - offset_(offset), - provider_(provider), - is_manual_(is_manual) { - DC_LOG_TRACE( - "UProbeGenerator::UProbeGenerator - event_id=%d, func_name=%s, offset=%s, provider=%s, " - "is_manual=%d", - event_id, func_name.c_str(), offset.c_str(), provider.c_str(), is_manual); - } - - /** - * @brief Generates the uprobe and uretprobe C code as a stringstream. - * @return std::stringstream containing the generated code. - */ - std::stringstream generate() const { - DC_LOG_TRACE("UProbeGenerator::generate - start"); - // Sanitize function name for use in symbol names - std::string sanitized_func_name = func_name_.substr(0, 10); - - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '.', '_'); - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '@', '_'); - auto load_func = func_name_; - if (offset_ != "") { - load_func = offset_; - } - std::stringstream ss; - // Generate uprobe section and function - if (is_manual_) { - ss << "SEC(\"uprobe\")\n"; - } else { - ss << "SEC(\"uprobe/" << provider_ << ":" << load_func << "\")\n"; - } - ss << "int BPF_UPROBE(" << sanitized_func_name << event_id_ << "_entry) {\n"; - ss << " generic_entry(ctx, " << event_id_ << ");\n"; - ss << " return 0;\n"; - ss << "}\n"; - bool is_fork = std::regex_search(func_name_, std::regex(".*fork.*")); - std::string exit_func; - if (is_fork) { - exit_func = "generic_fork_exit"; - } else { - exit_func = "generic_exit"; - } - // Generate uretprobe section and function - if (is_manual_) { - ss << "SEC(\"uretprobe\")\n"; - } else { - ss << "SEC(\"uretprobe/" << provider_ << ":" << func_name_ << "\")\n"; - } - ss << "int BPF_URETPROBE(" << sanitized_func_name << event_id_ << "_exit) {\n"; - ss << " " << exit_func << "(ctx, " << event_id_ << ");\n"; - ss << " return 0;\n"; - ss << "}\n"; - - DC_LOG_TRACE("UProbeGenerator::generate - end"); - return ss; - } - - private: - int event_id_; ///< Unique identifier for the event - std::string func_name_; ///< Name of the function to probe - std::string provider_; ///< Provider (binary/library) - std::string offset_; ///< Offset within the function (currently unused) - bool is_manual_; ///< Whether the probe is manual -}; - -} // namespace datacrumbs \ No newline at end of file diff --git a/src/datacrumbs/generator/mechanisms/usdt_generator.h b/src/datacrumbs/generator/mechanisms/usdt_generator.h deleted file mode 100644 index 2eb85752..00000000 --- a/src/datacrumbs/generator/mechanisms/usdt_generator.h +++ /dev/null @@ -1,80 +0,0 @@ -#pragma once -// include first -#include -// other headers -#include // Logging macros -// std headers -#include -#include -#include - -namespace datacrumbs { - -/** - * @brief USDTGenerator generates USDT (User-level Statically Defined Tracing) probe code. - */ -class USDTGenerator { - public: - /** - * @brief Constructor for USDTGenerator. - * @param event_id Unique identifier for the event. - * @param func_name Name of the function to instrument. - * @param binary Name of the binary containing the function. - * @param provider Name of the USDT provider (e.g., "python"). - */ - USDTGenerator(int event_id, const std::string& func_name, const std::string& binary, - const std::string& provider) - : event_id_(event_id), func_name_(func_name), binary_(binary), provider_(provider) { - DC_LOG_TRACE("USDTGenerator constructor called for function: %s, event_id: %d", - func_name.c_str(), event_id); - } - - /** - * @brief Generates the USDT probe code as a stringstream. - * @return std::stringstream containing the generated code. - */ - std::stringstream generate() const { - DC_LOG_TRACE("USDTGenerator::generate() start for function: %s", func_name_.c_str()); - - std::string sanitized_func_name = func_name_.substr(0, 10); - // Replace '.' and '@' with '_' to sanitize the function name for use in identifiers. - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '.', '_'); - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '@', '_'); - - std::stringstream ss; - if (provider_ == "python") { - // Log info about probe generation for Python provider. - DC_LOG_DEBUG("Generating USDT probe for Python function: %s in binary: %s", - func_name_.c_str(), binary_.c_str()); - ss << "SEC(\"usdt/" << binary_ << ":" << provider_ << ":function__entry\")\n"; - ss << "int BPF_USDT(python_function_entry, long cls, long function) {\n"; - ss << " usdt_entry(ctx, " << event_id_ << ");\n"; - ss << " return 0;\n"; - ss << "}\n"; - - // Log info about probe generation for Python provider. - DC_LOG_DEBUG("Generating USDT probe for Python function: %s in binary: %s", - func_name_.c_str(), binary_.c_str()); - ss << "SEC(\"usdt/" << binary_ << ":" << provider_ << ":function__return\")\n"; - ss << "int BPF_USDT(python_function_return, long cls, long function) {\n"; - ss << " usdt_exit(ctx, " << event_id_ << ", cls, function);\n"; - ss << " return 0;\n"; - ss << "}\n"; - } else { - // Warn if provider is not supported. - DC_LOG_WARN("USDTGenerator: Provider '%s' is not supported. No code generated.", - provider_.c_str()); - } - - DC_LOG_TRACE("USDTGenerator::generate() end for function: %s", func_name_.c_str()); - return ss; - } - - private: - int event_id_; ///< Unique identifier for the event. - std::string func_name_; ///< Name of the function to instrument. - std::string binary_; ///< Name of the binary containing the function. - std::string provider_; ///< Name of the USDT provider. -}; - -} // namespace datacrumbs \ No newline at end of file diff --git a/src/datacrumbs/server/bpf/common.c b/src/datacrumbs/server/bpf/common.c index 16ff3355..5a9f360d 100644 --- a/src/datacrumbs/server/bpf/common.c +++ b/src/datacrumbs/server/bpf/common.c @@ -11,6 +11,14 @@ DATACRUMBS_MAP(pid_map, u32, u64, 1024); DATACRUMBS_MAP(fn_pid_map, struct fn_key_t, struct fn_value_t); +DATACRUMBS_MAP(event_arg_config_map, u64, struct runtime_event_config_t, + DATACRUMBS_MAX_RUNTIME_FUNCTIONS); +struct { + __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); + __uint(max_entries, 1); + __type(key, u32); + __type(value, struct fn_value_t); +} scratch_fn_value_map SEC(".maps"); #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) DATACRUMBS_MAP(failed_request, u32, u32, 128); diff --git a/src/datacrumbs/server/bpf/common.h b/src/datacrumbs/server/bpf/common.h index b743ca22..2832041d 100644 --- a/src/datacrumbs/server/bpf/common.h +++ b/src/datacrumbs/server/bpf/common.h @@ -14,6 +14,14 @@ DATACRUMBS_MAP_EXTERN(pid_map, u32, u64, 1024); DATACRUMBS_MAP_EXTERN(fn_pid_map, struct fn_key_t, struct fn_value_t); +DATACRUMBS_MAP_EXTERN(event_arg_config_map, u64, struct runtime_event_config_t, + DATACRUMBS_MAX_RUNTIME_FUNCTIONS); +extern struct { + __uint(type, BPF_MAP_TYPE_PERCPU_ARRAY); + __uint(max_entries, 1); + __type(key, u32); + __type(value, struct fn_value_t); +} scratch_fn_value_map SEC(".maps"); #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) DATACRUMBS_MAP_EXTERN(failed_request, u32, u32, 128); @@ -128,44 +136,267 @@ static inline __attribute__((always_inline)) int need_tracing(struct fn_key_t* k } #endif +static inline __attribute__((always_inline)) const struct runtime_event_config_t* +resolve_event_config(u64 attach_cookie) { + return (const struct runtime_event_config_t*)bpf_map_lookup_elem(&event_arg_config_map, + &attach_cookie); +} + +static inline __attribute__((always_inline)) struct fn_value_t* get_scratch_fn_value(void) { + u32 key = 0; + return (struct fn_value_t*)bpf_map_lookup_elem(&scratch_fn_value_map, &key); +} + +static inline __attribute__((always_inline)) int mark_current_pid_traced(void) { + const u64 tsp = bpf_ktime_get_ns(); + const u64 current = bpf_get_current_pid_tgid(); + const u32 pid = current & 0xFFFFFFFF; + if (pid == 0) return 0; + bpf_map_update_elem(&pid_map, &pid, &tsp, BPF_ANY); + DBG_PRINTK("Marked tracing pid=%u", pid); + return 0; +} + +static inline __attribute__((always_inline)) int unmark_current_pid_traced(void) { + const u64 current = bpf_get_current_pid_tgid(); + const u32 pid = current & 0xFFFFFFFF; + if (pid == 0) return 0; + bpf_map_delete_elem(&pid_map, &pid); + DBG_PRINTK("Unmarked tracing pid=%u", pid); + return 0; +} + +static inline __attribute__((always_inline)) void reset_captured_args(struct fn_value_t* fn) { +#pragma unroll + for (int index = 0; index < DATACRUMBS_MAX_CAPTURE_ARGS; ++index) { + fn->args[index] = 0; + fn->arg_data_len[index] = 0; + fn->arg_data_status[index] = 0; + __builtin_memset(fn->arg_data[index], 0, sizeof(fn->arg_data[index])); + } + fn->arg_count = 0; +} + +static inline __attribute__((always_inline)) void copy_captured_args_to_event( + const struct fn_value_t* fn, struct generic_event_t* event) { + event->arg_count = fn->arg_count; +#pragma unroll + for (int index = 0; index < DATACRUMBS_MAX_CAPTURE_ARGS; ++index) { + event->args[index] = fn->args[index]; + event->arg_data_len[index] = fn->arg_data_len[index]; + event->arg_data_status[index] = fn->arg_data_status[index]; + __builtin_memcpy(event->arg_data[index], fn->arg_data[index], DATACRUMBS_MAX_CAPTURE_BYTES); + } +} + +static inline __attribute__((always_inline)) void capture_runtime_args( + struct pt_regs* ctx, const struct runtime_event_config_t* config, struct fn_value_t* fn) { + unsigned int arg_index; + unsigned int num_bytes; + unsigned long long raw_value; + long err; + const unsigned long long raw_arg0 = PT_REGS_PARM1(ctx); + const unsigned long long raw_arg1 = PT_REGS_PARM2(ctx); + const unsigned long long raw_arg2 = PT_REGS_PARM3(ctx); + const unsigned long long raw_arg3 = PT_REGS_PARM4(ctx); + const unsigned long long raw_arg4 = PT_REGS_PARM5(ctx); + + reset_captured_args(fn); + fn->arg_count = config->arg_count; +#pragma unroll + for (int index = 0; index < DATACRUMBS_MAX_CAPTURE_ARGS; ++index) { + if ((unsigned int)index >= config->arg_count) break; + arg_index = config->arg_index[index]; + raw_value = 0; + if (arg_index == 0) { + raw_value = raw_arg0; + } else if (arg_index == 1) { + raw_value = raw_arg1; + } else if (arg_index == 2) { + raw_value = raw_arg2; + } else if (arg_index == 3) { + raw_value = raw_arg3; + } else if (arg_index == 4) { + raw_value = raw_arg4; + } + fn->args[index] = raw_value; + fn->arg_data_status[index] = 0; + fn->arg_data_len[index] = 0; + __builtin_memset(fn->arg_data[index], 0, sizeof(fn->arg_data[index])); + num_bytes = config->arg_num_bytes[index]; + if (num_bytes == 0) continue; + if (num_bytes > DATACRUMBS_MAX_CAPTURE_BYTES) { + num_bytes = DATACRUMBS_MAX_CAPTURE_BYTES; + } + if (config->arg_is_pointer[index] && raw_value != 0) { + fn->arg_data_len[index] = num_bytes; + if (config->probe_kind == DATACRUMBS_RUNTIME_PROBE_KIND_UPROBE) { + err = bpf_probe_read_user(fn->arg_data[index], num_bytes, (const void*)raw_value); + } else { + err = bpf_probe_read_kernel(fn->arg_data[index], num_bytes, (const void*)raw_value); + } + fn->arg_data_status[index] = err == 0 ? 2 : 3; + continue; + } + if (num_bytes > sizeof(raw_value)) { + num_bytes = sizeof(raw_value); + } + fn->arg_data_len[index] = num_bytes; + __builtin_memcpy(fn->arg_data[index], &raw_value, sizeof(raw_value)); + fn->arg_data_status[index] = 1; + } +} + +static inline __attribute__((always_inline)) void capture_runtime_raw_args( + const struct runtime_event_config_t* config, struct fn_value_t* fn, unsigned long long raw_arg0, + unsigned long long raw_arg1, unsigned long long raw_arg2, unsigned long long raw_arg3, + unsigned long long raw_arg4, bool read_user_pointers) { + unsigned int arg_index; + unsigned int num_bytes; + unsigned long long raw_value; + long err; + + reset_captured_args(fn); + fn->arg_count = config->arg_count; +#pragma unroll + for (int index = 0; index < DATACRUMBS_MAX_CAPTURE_ARGS; ++index) { + if ((unsigned int)index >= config->arg_count) break; + arg_index = config->arg_index[index]; + raw_value = 0; + if (arg_index == 0) { + raw_value = raw_arg0; + } else if (arg_index == 1) { + raw_value = raw_arg1; + } else if (arg_index == 2) { + raw_value = raw_arg2; + } else if (arg_index == 3) { + raw_value = raw_arg3; + } else if (arg_index == 4) { + raw_value = raw_arg4; + } + fn->args[index] = raw_value; + fn->arg_data_status[index] = 0; + fn->arg_data_len[index] = 0; + __builtin_memset(fn->arg_data[index], 0, sizeof(fn->arg_data[index])); + num_bytes = config->arg_num_bytes[index]; + if (num_bytes == 0) continue; + if (num_bytes > DATACRUMBS_MAX_CAPTURE_BYTES) { + num_bytes = DATACRUMBS_MAX_CAPTURE_BYTES; + } + if (config->arg_is_pointer[index] && raw_value != 0) { + fn->arg_data_len[index] = num_bytes; + if (read_user_pointers) { + err = bpf_probe_read_user(fn->arg_data[index], num_bytes, (const void*)raw_value); + } else { + err = bpf_probe_read_kernel(fn->arg_data[index], num_bytes, (const void*)raw_value); + } + fn->arg_data_status[index] = err == 0 ? 2 : 3; + continue; + } + if (num_bytes > sizeof(raw_value)) { + num_bytes = sizeof(raw_value); + } + fn->arg_data_len[index] = num_bytes; + __builtin_memcpy(fn->arg_data[index], &raw_value, sizeof(raw_value)); + fn->arg_data_status[index] = 1; + } +} + +static inline __attribute__((always_inline)) void capture_runtime_usdt_args( + struct pt_regs* ctx, const struct runtime_event_config_t* config, struct fn_value_t* fn) { + long raw_value = 0; + unsigned int num_bytes; + long err; + reset_captured_args(fn); + fn->arg_count = config->arg_count; +#pragma unroll + for (int index = 0; index < DATACRUMBS_MAX_CAPTURE_ARGS; ++index) { + if ((unsigned int)index >= config->arg_count) break; + raw_value = 0; + if (bpf_usdt_arg(ctx, config->arg_index[index], &raw_value) != 0) { + raw_value = 0; + } + fn->args[index] = (unsigned long long)raw_value; + fn->arg_data_status[index] = 0; + fn->arg_data_len[index] = 0; + __builtin_memset(fn->arg_data[index], 0, sizeof(fn->arg_data[index])); + num_bytes = config->arg_num_bytes[index]; + if (num_bytes == 0) continue; + if (num_bytes > DATACRUMBS_MAX_CAPTURE_BYTES) { + num_bytes = DATACRUMBS_MAX_CAPTURE_BYTES; + } + if (config->arg_is_pointer[index] && raw_value != 0) { + fn->arg_data_len[index] = num_bytes; + err = bpf_probe_read_user(fn->arg_data[index], num_bytes, (const void*)raw_value); + fn->arg_data_status[index] = err == 0 ? 2 : 3; + continue; + } + if (num_bytes > sizeof(raw_value)) { + num_bytes = sizeof(raw_value); + } + fn->arg_data_len[index] = num_bytes; + __builtin_memcpy(fn->arg_data[index], &raw_value, sizeof(raw_value)); + fn->arg_data_status[index] = 1; + } +} + #if defined(DATACRUMBS_ENABLE) && (DATACRUMBS_ENABLE == 1) #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) -static inline __attribute__((always_inline)) int generic_entry(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int generic_entry(struct pt_regs* ctx, + u64 attach_cookie) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; struct fn_key_t key = {}; key.event_id = event_id; u64 start_ts = 0; if (!need_tracing(&key, &start_ts)) { return 0; // not tracing this pid } - struct fn_value_t fn = {}; - fn.ts = bpf_ktime_get_ns(); - bpf_map_update_elem(&fn_pid_map, &key, &fn, BPF_ANY); + struct fn_value_t* fn = get_scratch_fn_value(); + if (fn == NULL) return 0; + __builtin_memset(fn, 0, sizeof(*fn)); + fn->ts = bpf_ktime_get_ns(); + capture_runtime_args(ctx, config, fn); + bpf_map_update_elem(&fn_pid_map, &key, fn, BPF_ANY); DBG_PRINTK("Pushed pid:%d, event_id:%llu to map\n", (u32)key.id, event_id); return 0; } #else -static inline __attribute__((always_inline)) int generic_entry(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int generic_entry(struct pt_regs* ctx, + u64 attach_cookie) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; struct fn_key_t key = {}; key.event_id = event_id; u64 start_ts; if (!need_tracing(&key, &start_ts)) { return 0; // not tracing this pid } - struct fn_value_t fn = {}; - fn.ts = bpf_ktime_get_ns(); - bpf_map_update_elem(&fn_pid_map, &key, &fn, BPF_ANY); + struct fn_value_t* fn = get_scratch_fn_value(); + if (fn == NULL) return 0; + __builtin_memset(fn, 0, sizeof(*fn)); + fn->ts = bpf_ktime_get_ns(); + reset_captured_args(fn); + bpf_map_update_elem(&fn_pid_map, &key, fn, BPF_ANY); DBG_PRINTK("Pushed pid:%d, event_id:%llu to map\n", (u32)key.id, event_id); return 0; } #endif #else -static inline __attribute__((always_inline)) int generic_entry(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int generic_entry(struct pt_regs* ctx, + u64 attach_cookie) { return 0; } #endif #if defined(DATACRUMBS_ENABLE) && (DATACRUMBS_ENABLE == 1) #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) -static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ctx, + u64 attach_cookie) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; u64 te = bpf_ktime_get_ns(); struct fn_key_t key = {}; key.event_id = event_id; @@ -176,17 +407,22 @@ static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ct struct fn_value_t* fn = bpf_map_lookup_elem(&fn_pid_map, &key); if (fn == 0) return 0; // missed entry DATACRUMBS_SKIP_SMALL_EVENTS(fn, te); - struct general_event_t* event; - DATACRUMBS_RB_RESERVE(output, struct general_event_t, event); - event->type = 1; + struct generic_event_t* event; + DATACRUMBS_RB_RESERVE(output, struct generic_event_t, event); + event->type = config->probe_kind; event->id = key.id; event->event_id = event_id; DATACRUMBS_COLLECT_TIME(event); + copy_captured_args_to_event(fn, event); DATACRUMBS_EVENT_SUBMIT(event, key.id, event_id); return 0; } #else -static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ctx, + u64 attach_cookie) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; u64 te = bpf_ktime_get_ns(); struct fn_key_t key = {}; key.event_id = event_id; @@ -222,36 +458,86 @@ static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ct } #endif #else -static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int generic_exit(struct pt_regs* ctx, + u64 attach_cookie) { + return 0; +} +#endif + +#if defined(DATACRUMBS_ENABLE) && (DATACRUMBS_ENABLE == 1) +#if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) +static inline __attribute__((always_inline)) int generic_syscall_entry( + struct pt_regs* ctx, u64 attach_cookie, unsigned long long arg0, unsigned long long arg1, + unsigned long long arg2, unsigned long long arg3, unsigned long long arg4) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; + struct fn_key_t key = {}; + key.event_id = event_id; + u64 start_ts = 0; + if (!need_tracing(&key, &start_ts)) { + return 0; + } + struct fn_value_t* fn = get_scratch_fn_value(); + if (fn == NULL) return 0; + __builtin_memset(fn, 0, sizeof(*fn)); + fn->ts = bpf_ktime_get_ns(); + capture_runtime_raw_args(config, fn, arg0, arg1, arg2, arg3, arg4, true); + bpf_map_update_elem(&fn_pid_map, &key, fn, BPF_ANY); + DBG_PRINTK("Pushed syscall pid:%d, event_id:%llu to map\n", (u32)key.id, event_id); + return 0; +} +#else +static inline __attribute__((always_inline)) int generic_syscall_entry( + struct pt_regs* ctx, u64 attach_cookie, unsigned long long arg0, unsigned long long arg1, + unsigned long long arg2, unsigned long long arg3, unsigned long long arg4) { + return 0; +} +#endif +#else +static inline __attribute__((always_inline)) int generic_syscall_entry( + struct pt_regs* ctx, u64 attach_cookie, unsigned long long arg0, unsigned long long arg1, + unsigned long long arg2, unsigned long long arg3, unsigned long long arg4) { return 0; } #endif #if defined(DATACRUMBS_ENABLE) && (DATACRUMBS_ENABLE == 1) -static inline __attribute__((always_inline)) int usdt_entry(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int usdt_entry(struct pt_regs* ctx, + u64 attach_cookie) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; struct fn_key_t key = {}; key.event_id = event_id; u64 start_ts; if (!need_tracing(&key, &start_ts)) { return 0; // not tracing this pid } - struct fn_value_t fn = {}; - fn.ts = bpf_ktime_get_ns(); - bpf_map_update_elem(&fn_pid_map, &key, &fn, BPF_ANY); + struct fn_value_t* fn = get_scratch_fn_value(); + if (fn == NULL) return 0; + __builtin_memset(fn, 0, sizeof(*fn)); + fn->ts = bpf_ktime_get_ns(); + capture_runtime_usdt_args(ctx, config, fn); + bpf_map_update_elem(&fn_pid_map, &key, fn, BPF_ANY); DBG_PRINTK("USDT Pushed pid:%d, event_id:%llu to map\n", (u32)key.id, event_id); return 0; } #else -static inline __attribute__((always_inline)) int usdt_entry(struct pt_regs* ctx, u64 event_id) { +static inline __attribute__((always_inline)) int usdt_entry(struct pt_regs* ctx, + u64 attach_cookie) { return 0; } #endif #if defined(DATACRUMBS_ENABLE) && (DATACRUMBS_ENABLE == 1) #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) -static inline __attribute__((always_inline)) int usdt_exit(struct pt_regs* ctx, u64 event_id, +static inline __attribute__((always_inline)) int usdt_exit(struct pt_regs* ctx, u64 attach_cookie, long clazz, long method) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; u64 te = bpf_ktime_get_ns(); struct fn_key_t key = {}; key.event_id = event_id; @@ -262,36 +548,22 @@ static inline __attribute__((always_inline)) int usdt_exit(struct pt_regs* ctx, struct fn_value_t* fn = bpf_map_lookup_elem(&fn_pid_map, &key); if (fn == 0) return 0; // missed entry DATACRUMBS_SKIP_SMALL_EVENTS(fn, te); - struct string_t local_str = {}; // 100 - long len = bpf_probe_read_user_str(&local_str.str, MAX_STR_READ_LEN, (void*)clazz); // 90 - local_str.len = len * 8; -#if defined(DATACRUMBS_ENABLE_INCLUSION_PATH) && (DATACRUMBS_ENABLE_INCLUSION_PATH == 1) - int found = prefix_search(&inclusion_path_trie, &local_str); - if (!found) { - DBG_PRINTK("Skipping usdt for %s as it is not in inclusion path trie\n", local_str.str); - return 0; // Skip if not in inclusion path - } -#endif - - struct usdt_event_t* event; - DATACRUMBS_RB_RESERVE(output, struct usdt_event_t, event); - event->type = 3; + struct generic_event_t* event; + DATACRUMBS_RB_RESERVE(output, struct generic_event_t, event); + event->type = config->probe_kind; event->id = key.id; event->event_id = event_id; DATACRUMBS_COLLECT_TIME(event); - - u32 class_hash = hash_and_store(&local_str, len); - event->class_hash = class_hash; // 100 - len = bpf_probe_read_user_str(&local_str.str, MAX_STR_READ_LEN, (void*)method); // 90 - - u32 method_hash = hash_and_store(&local_str, len); - event->method_hash = method_hash; // 100 + copy_captured_args_to_event(fn, event); DATACRUMBS_EVENT_SUBMIT(event, key.id, event_id); return 0; } #else -static inline __attribute__((always_inline)) int usdt_exit(struct pt_regs* ctx, u64 event_id, +static inline __attribute__((always_inline)) int usdt_exit(struct pt_regs* ctx, u64 attach_cookie, long clazz, long method) { + const struct runtime_event_config_t* config = resolve_event_config(attach_cookie); + if (config == NULL) return 0; + const u64 event_id = config->event_id; u64 te = bpf_ktime_get_ns(); struct fn_key_t key = {}; key.event_id = event_id; diff --git a/src/datacrumbs/server/bpf/generic.bpf.c b/src/datacrumbs/server/bpf/generic.bpf.c new file mode 100644 index 00000000..eee3f103 --- /dev/null +++ b/src/datacrumbs/server/bpf/generic.bpf.c @@ -0,0 +1,58 @@ +#include + +SEC("kprobe") +int BPF_KPROBE(trace_generic_kprobe_entry) { + const unsigned long long cookie = bpf_get_attach_cookie(ctx); + DBG_PRINTK("kprobe entry cookie=%llu", cookie); + return generic_entry(ctx, cookie); +} + +SEC("kretprobe") +int BPF_KRETPROBE(trace_generic_kprobe_exit) { + const unsigned long long cookie = bpf_get_attach_cookie(ctx); + DBG_PRINTK("kprobe exit cookie=%llu", cookie); + return generic_exit(ctx, cookie); +} + +SEC("ksyscall") +int BPF_KSYSCALL(trace_generic_syscall_entry, unsigned long long arg0, unsigned long long arg1, + unsigned long long arg2, unsigned long long arg3, unsigned long long arg4) { + const unsigned long long cookie = bpf_get_attach_cookie(ctx); + DBG_PRINTK("syscall entry cookie=%llu", cookie); + return generic_syscall_entry(ctx, cookie, arg0, arg1, arg2, arg3, arg4); +} + +SEC("ksyscall") +int BPF_KSYSCALL(trace_generic_syscall_exit, struct pt_regs* regs) { + const unsigned long long cookie = bpf_get_attach_cookie(ctx); + DBG_PRINTK("syscall exit cookie=%llu", cookie); + return generic_exit(ctx, cookie); +} + +SEC("uprobe") +int BPF_UPROBE(trace_generic_uprobe_entry) { + const unsigned long long cookie = bpf_get_attach_cookie(ctx); + DBG_PRINTK("uprobe entry cookie=%llu", cookie); + return generic_entry(ctx, cookie); +} + +SEC("uretprobe") +int BPF_URETPROBE(trace_generic_uprobe_exit) { + const unsigned long long cookie = bpf_get_attach_cookie(ctx); + DBG_PRINTK("uprobe exit cookie=%llu", cookie); + return generic_exit(ctx, cookie); +} + +SEC("usdt") +int BPF_USDT(trace_generic_usdt_entry, long clazz, long method) { + const unsigned long long cookie = bpf_usdt_cookie(ctx); + DBG_PRINTK("usdt entry cookie=%llu", cookie); + return usdt_entry(ctx, cookie); +} + +SEC("usdt") +int BPF_USDT(trace_generic_usdt_exit, long clazz, long method) { + const unsigned long long cookie = bpf_usdt_cookie(ctx); + DBG_PRINTK("usdt exit cookie=%llu", cookie); + return usdt_exit(ctx, cookie, clazz, method); +} diff --git a/src/datacrumbs/server/bpf/init.bpf.c b/src/datacrumbs/server/bpf/init.bpf.c index eaaf8c48..a2bbce55 100644 --- a/src/datacrumbs/server/bpf/init.bpf.c +++ b/src/datacrumbs/server/bpf/init.bpf.c @@ -1,60 +1,11 @@ #include -static inline __attribute__((always_inline)) int generic_trace_datacrumbs_start() { - u64 tsp = bpf_ktime_get_ns(); - u64 id = bpf_get_current_pid_tgid(); - u32 pid = id & 0xFFFFFFFF; - u64* start_ts = bpf_map_lookup_elem(&pid_map, &pid); - if (start_ts != 0) tsp = *start_ts; -#if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 2) - unsigned long long interval = tsp / DATACRUMBS_TIME_INTERVAL_NS; - bpf_map_update_elem(&latest_interval, &DATACRUMBS_TS_KEY, &interval, BPF_ANY); -#endif - bpf_map_update_elem(&pid_map, &pid, &tsp, BPF_ANY); - (void)pid; - DBG_PRINTK("Tracing PID %d", pid); -#if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) - u64 event_id = 1; - struct general_event_t* event; - DATACRUMBS_RB_RESERVE(output, struct general_event_t, event); - event->type = 1; - event->id = id; - event->event_id = event_id; - event->ts = tsp; - event->dur = 0; - DATACRUMBS_EVENT_SUBMIT(event, id, event_id); -#endif - return 0; +SEC("uprobe") +int BPF_UPROBE(trace_client_start) { + return mark_current_pid_traced(); } -static inline __attribute__((always_inline)) int generic_trace_datacrumbs_stop() { - u64 id = bpf_get_current_pid_tgid(); - u32 pid = id & 0xFFFFFFFF; - (void)pid; - DBG_PRINTK("Stop tracing PID %d", pid); - bpf_map_delete_elem(&pid_map, &pid); -#if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) - u64 event_id = 2; - struct general_event_t* event; - DATACRUMBS_RB_RESERVE(output, struct general_event_t, event); - event->type = 1; - event->id = id; - event->event_id = event_id; - event->ts = bpf_ktime_get_ns(); - event->dur = 0; - DATACRUMBS_EVENT_SUBMIT(event, id, event_id); -#endif - return 0; +SEC("uprobe") +int BPF_UPROBE(trace_client_stop) { + return unmark_current_pid_traced(); } - -#define DATACRUMBS_START "uprobe/" DATACRUMBS_BUILD_CLIENT_SO ":datacrumbs_start" -SEC((DATACRUMBS_START)) -int BPF_UPROBE(trace_datacrumbs_start) { - return generic_trace_datacrumbs_start(); -} - -#define DATACRUMBS_STOP "uprobe/" DATACRUMBS_BUILD_CLIENT_SO ":datacrumbs_stop" -SEC((DATACRUMBS_STOP)) -int BPF_UPROBE(trace_datacrumbs_stop) { - return generic_trace_datacrumbs_stop(); -} \ No newline at end of file diff --git a/src/datacrumbs/server/bpf/main.bpf.c b/src/datacrumbs/server/bpf/main.bpf.c index d3da0bdd..09fed774 100644 --- a/src/datacrumbs/server/bpf/main.bpf.c +++ b/src/datacrumbs/server/bpf/main.bpf.c @@ -1,4 +1,5 @@ -// main init -#include "init.bpf.c" -// generated file -#include \ No newline at end of file +// generic runtime probe handlers +#include "generic.bpf.c" + +// site-local custom probes are wired through the generated aggregator header. +#include diff --git a/src/datacrumbs/server/bpf/shared.h b/src/datacrumbs/server/bpf/shared.h index a112c771..52d1e297 100644 --- a/src/datacrumbs/server/bpf/shared.h +++ b/src/datacrumbs/server/bpf/shared.h @@ -1,30 +1,45 @@ #ifndef DATACRUMBS_SERVER_BPF_SHARED_H #define DATACRUMBS_SERVER_BPF_SHARED_H +#include #include static int DATACRUMBS_TS_KEY = 1; static int DATACRUMBS_FAILED_EVENTS_KEY = 2; -struct general_event_t { +#define DATACRUMBS_MAX_CAPTURE_ARGS 5 +#define DATACRUMBS_MAX_CAPTURE_BYTES 64 + +enum datacrumbs_runtime_probe_kind_t { + DATACRUMBS_RUNTIME_PROBE_KIND_KPROBE = 1, + DATACRUMBS_RUNTIME_PROBE_KIND_UPROBE = 2, + DATACRUMBS_RUNTIME_PROBE_KIND_SYSCALL = 3, + DATACRUMBS_RUNTIME_PROBE_KIND_USDT = 4, +}; + +struct generic_event_t { unsigned int type; unsigned long long id; unsigned long long event_id; unsigned long long ts; unsigned long long dur; + unsigned int arg_count; + unsigned long long args[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned int arg_data_len[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned int arg_data_status[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned char arg_data[DATACRUMBS_MAX_CAPTURE_ARGS][DATACRUMBS_MAX_CAPTURE_BYTES]; }; - -#define MAX_STR_READ_LEN 256 +typedef struct generic_event_t general_event_t; struct usdt_event_t { unsigned int type; unsigned long long id; unsigned long long event_id; unsigned long long ts; unsigned long long dur; - unsigned int class_hash; - unsigned int method_hash; }; +#define MAX_STR_READ_LEN 256 + struct fn_key_t { unsigned long long id; unsigned long long event_id; @@ -32,6 +47,20 @@ struct fn_key_t { struct fn_value_t { unsigned long long ts; + unsigned int arg_count; + unsigned long long args[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned int arg_data_len[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned int arg_data_status[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned char arg_data[DATACRUMBS_MAX_CAPTURE_ARGS][DATACRUMBS_MAX_CAPTURE_BYTES]; +}; + +struct runtime_event_config_t { + unsigned long long event_id; + unsigned int probe_kind; + unsigned int arg_count; + unsigned int arg_index[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned int arg_num_bytes[DATACRUMBS_MAX_CAPTURE_ARGS]; + unsigned int arg_is_pointer[DATACRUMBS_MAX_CAPTURE_ARGS]; }; struct fn_t { @@ -75,4 +104,4 @@ struct usdt_counter_event_t { struct profile_value_t* value; }; -#endif // DATACRUMBS_SERVER_BPF_SHARED_H \ No newline at end of file +#endif // DATACRUMBS_SERVER_BPF_SHARED_H diff --git a/src/datacrumbs/server/process/event_processor.cpp b/src/datacrumbs/server/process/event_processor.cpp index 2fb9ed8b..31944e60 100644 --- a/src/datacrumbs/server/process/event_processor.cpp +++ b/src/datacrumbs/server/process/event_processor.cpp @@ -1,10 +1,10 @@ #include // other headers -#include #include #include #include +#include #include #include #include @@ -15,10 +15,8 @@ #include // Include generated #include -#include // dependency headers #include -#include // std headers #include @@ -46,15 +44,48 @@ namespace datacrumbs { -EventProcessor::EventProcessor(int argc, char** argv) { - configManager_ = datacrumbs::Singleton::get_instance( - argc, argv, false, ExecutableType::DAEMON); - if (configManager_->exe_mode != datacrumbs::ExecutableMode::STOP) { - // Initialize the ChromeWriter singleton instance - writer_ = datacrumbs::Singleton::get_instance(); - if (!writer_) { - DC_LOG_ERROR("Failed to create ChromeWriter instance"); - } +namespace { + +bool is_char_pointer_type(const std::string& c_type) { + return c_type.find("char *") != std::string::npos || + c_type.find("const char *") != std::string::npos; +} + +std::unique_ptr build_runtime_args( + const generic_event_t* event, const datacrumbs::RuntimeEventMetadata* metadata) { + if (event == nullptr || metadata == nullptr || metadata->arg_specs.empty()) { + return nullptr; + } + + auto args = std::make_unique(); + const unsigned int arg_count = + std::min(event->arg_count, metadata->arg_specs.size()); + for (unsigned int index = 0; index < arg_count; ++index) { + const auto& spec = metadata->arg_specs[index]; + CapturedArgumentValue value; + value.c_type = spec.c_type; + value.is_pointer = spec.is_pointer; + value.raw_value = event->args[index]; + value.data_status = event->arg_data_status[index]; + const unsigned int data_len = std::min( + event->arg_data_len[index], + is_char_pointer_type(spec.c_type) ? DATACRUMBS_MAX_CAPTURE_BYTES : 8U); + value.bytes.assign(event->arg_data[index], event->arg_data[index] + data_len); + + std::string label = spec.label.empty() ? ("arg" + std::to_string(index + 1)) : spec.label; + args->emplace(std::move(label), std::move(value)); + } + return args; +} + +} // namespace + +EventProcessor::EventProcessor(const std::filesystem::path& probe_file) { + (void)probe_file; + configManager_ = datacrumbs::Singleton::get_instance(); + writer_ = datacrumbs::Singleton::get_instance(); + if (!writer_) { + DC_LOG_ERROR("Failed to create ChromeWriter instance"); } failed_events = 0; } @@ -63,7 +94,7 @@ int EventProcessor::handle_event(void* data, size_t data_sz) { DC_LOG_TRACE("handle_event: start"); #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) - struct general_event_t* event = (general_event_t*)data; + struct generic_event_t* event = (generic_event_t*)data; #else struct profile_key_t* event = (profile_key_t*)((counter_event_t*)data)->key; #endif @@ -85,6 +116,14 @@ int EventProcessor::handle_event(void* data, size_t data_sz) { DC_LOG_ERROR("Failed to create ChromeWriter instance"); return 1; } +#if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) + auto metadata = configManager_->get_runtime_event_metadata(event->event_id); + auto runtime_args = build_runtime_args(event, metadata); + auto write_event = + new datacrumbs::EventWithId(NORMAL_EVENT, event_index.fetch_add(1), event->type, event->id, + event->event_id, event->ts, event->dur, runtime_args.release()); + writer->push_event(write_event); +#else if (event->type > 0) { if (event->type == 1) { GET_DATA_FUNCTION(1); @@ -142,7 +181,7 @@ int EventProcessor::handle_event(void* data, size_t data_sz) { DC_LOG_WARN("Event type is not positive, skipping event"); return 0; } - +#endif } else { // If no category found, print warning DC_LOG_WARN("No category found for event_id %llu", event->event_id); diff --git a/src/datacrumbs/server/process/event_processor.h b/src/datacrumbs/server/process/event_processor.h index eddd1be7..59efff95 100644 --- a/src/datacrumbs/server/process/event_processor.h +++ b/src/datacrumbs/server/process/event_processor.h @@ -7,8 +7,8 @@ #include #include // Internal Headers -#include #include +#include #include #include #include @@ -39,7 +39,7 @@ namespace datacrumbs { class EventProcessor { public: - EventProcessor(int argc, char** argv); + explicit EventProcessor(const std::filesystem::path& probe_file); ~EventProcessor() {} @@ -58,7 +58,7 @@ class EventProcessor { int finalize(); public: - std::shared_ptr configManager_; + std::shared_ptr configManager_; std::shared_ptr writer_; int failed_events; // Count of failed events std::atomic event_index{0}; @@ -69,4 +69,4 @@ class EventProcessor { } // namespace datacrumbs -#endif \ No newline at end of file +#endif diff --git a/src/datacrumbs/server/process/processing/general_event.h b/src/datacrumbs/server/process/processing/general_event.h index 00018a7a..be5fc902 100644 --- a/src/datacrumbs/server/process/processing/general_event.h +++ b/src/datacrumbs/server/process/processing/general_event.h @@ -6,7 +6,6 @@ // Generated Headers #include // other headers -#include #include #include #include // Logging header @@ -84,7 +83,7 @@ inline static int lookup_1(int map_fd, unsigned long long latest_timestamp, #endif static datacrumbs::EventWithId* get_data_1(void* data, uint64_t index) { #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) - struct general_event_t* base = (general_event_t*)data; + general_event_t* base = (general_event_t*)data; auto event = new datacrumbs::EventWithId(NORMAL_EVENT, index, base->type, base->id, base->event_id, base->ts, base->dur, nullptr); @@ -97,4 +96,4 @@ static datacrumbs::EventWithId* get_data_1(void* data, uint64_t index) { base->key->event_id, base->key->time_interval, 0, args); #endif return event; -} \ No newline at end of file +} diff --git a/src/datacrumbs/server/process/processing/usdt_event.h b/src/datacrumbs/server/process/processing/usdt_event.h index 42e8527e..b1d95489 100644 --- a/src/datacrumbs/server/process/processing/usdt_event.h +++ b/src/datacrumbs/server/process/processing/usdt_event.h @@ -6,7 +6,6 @@ // Generated Headers #include // other headers -#include #include #include #include // Logging header @@ -86,11 +85,8 @@ inline static int lookup_3(int map_fd, unsigned long long latest_timestamp, static datacrumbs::EventWithId* get_data_3(void* data, uint64_t index) { #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) struct usdt_event_t* base = (usdt_event_t*)data; - auto args = new DataCrumbsArgs(); - args->emplace("clazz", base->class_hash); - args->emplace("method", base->method_hash); auto event = new datacrumbs::EventWithId(NORMAL_EVENT, index, base->type, base->id, - base->event_id, base->ts, base->dur, args); + base->event_id, base->ts, base->dur, nullptr); #else struct usdt_counter_event_t* base = (usdt_counter_event_t*)data; auto args = new DataCrumbsArgs(); @@ -102,4 +98,4 @@ static datacrumbs::EventWithId* get_data_3(void* data, uint64_t index) { base->key->event_id, base->key->time_interval, 0, args); #endif return event; -} \ No newline at end of file +} diff --git a/src/datacrumbs/server/process/server.impl.cpp b/src/datacrumbs/server/process/server.impl.cpp index a75c6bbe..0ab14048 100644 --- a/src/datacrumbs/server/process/server.impl.cpp +++ b/src/datacrumbs/server/process/server.impl.cpp @@ -1,20 +1,30 @@ // Internal headers #include +#include +#include #include -// dependent headers -#include + // std headers #include +#include +#include +#include +#include +#include #include -// Custom libbpf print function for debugging static int libbpf_print_fn(enum libbpf_print_level level, const char* format, va_list args) { if (level >= LIBBPF_DEBUG) return 0; return vfprintf(stderr, format, args); } +static bool is_char_pointer_type(const std::string& c_type) { + return c_type.find("char *") != std::string::npos || + c_type.find("const char *") != std::string::npos; +} + static int handle_event(void* ctx, void* data, size_t data_sz) { - datacrumbs::EventProcessor* event_processor = static_cast(ctx); + auto* event_processor = static_cast(ctx); return event_processor->handle_event(data, data_sz); } @@ -24,371 +34,326 @@ inline static int lookup_and_delete(int map_fd, datacrumbs::EventProcessor* even int ret = bpf_map_lookup_and_delete_batch_compat(map_fd, in_batch, &in_batch, keys, values, &batch_size, 0); if (ret < 0 && errno != ENOENT) { - perror("bpf_map_lookup_and_delete_batch fhash"); + perror("bpf_map_lookup_and_delete_batch file_map"); return -1; } - // Process the retrieved keys and values - for (int i = 0; i < batch_size; ++i) { + for (unsigned int i = 0; i < batch_size; ++i) { event_processor->update_filename(keys[i].str, values[i]); } - // Check if the end of the map has been reached if (ret < 0 && errno == ENOENT) { return 0; } return 1; } -inline static int lookup(int map_fd, datacrumbs::EventProcessor* event_processor, - struct string_t* keys, unsigned int* values, unsigned int batch_size, - struct string_t* in_batch) { - int ret = bpf_map_lookup_batch_compat(map_fd, in_batch, &in_batch, keys, values, &batch_size, 0); - if (ret < 0 && errno != ENOENT) { - perror("bpf_map_lookup_batch fhash"); - return -1; - } - // Process the retrieved keys and values - for (int i = 0; i < batch_size; ++i) { - event_processor->update_filename(keys[i].str, values[i]); - } - // Check if the end of the map has been reached - if (ret < 0 && errno == ENOENT) { - return -1; - } - return 0; -} - -// Setup signal handler for Ctrl-C (SIGINT) static volatile bool stop = false; -// Define a signal handler function with C linkage + static void sig_handler(int) { stop = true; - DC_LOG_INFO("\nReceived SIGINT, setting loop variable"); + DC_LOG_INFO("\nReceived SIGINT, stopping server loop"); } -static int manual_probes(datacrumbs::EventProcessor* event_processor, struct datacrumbs_bpf* skel) { - auto config_manager = event_processor->configManager_; - struct json_object* manual_probes_json = - json_object_from_file(config_manager->manual_probe_path.c_str()); - if (manual_probes_json) { - int total_manual_probes = 0, total_successful_probes = 0, total_failed_probes = 0; - int arr_len = json_object_array_length(manual_probes_json); - for (int i = 0; i < arr_len; i++) { - struct json_object* jprobe = json_object_array_get_idx(manual_probes_json, i); - if (jprobe) { - auto probe = datacrumbs::Probe::fromJson(jprobe); - std::shared_ptr manual_probe; - switch (probe.type) { - case datacrumbs::ProbeType::UPROBE: - manual_probe = - std::make_shared(datacrumbs::UProbe::fromJson(jprobe)); - break; - case datacrumbs::ProbeType::SYSCALLS: - manual_probe = std::make_shared( - datacrumbs::SysCallProbe::fromJson(jprobe)); - break; - case datacrumbs::ProbeType::USDT: - manual_probe = - std::make_shared(datacrumbs::USDTProbe::fromJson(jprobe)); - break; - case datacrumbs::ProbeType::KPROBE: - manual_probe = - std::make_shared(datacrumbs::KProbe::fromJson(jprobe)); - break; - case datacrumbs::ProbeType::CUSTOM: - manual_probe = std::make_shared( - datacrumbs::CustomProbe::fromJson(jprobe)); - break; - default: - DC_LOG_ERROR("Unknown probe type encountered in extractProbes()"); - } - for (const auto& func : manual_probe->functions) { - total_manual_probes += 2; - if (probe.type == datacrumbs::ProbeType::UPROBE) { - auto uprobe = std::dynamic_pointer_cast(manual_probe); - uint64_t func_hash = std::stoull(func, nullptr, 0); - auto func_name_ = config_manager->category_map[func_hash].second; - DC_LOG_DEBUG("Extracted function name: %s", func_name_.c_str()); - auto pos = func_name_.find(':'); - std::string offset = ""; - bool is_manual = false; - if (pos != std::string::npos) { - offset = func_name_.substr(pos + 1); - func_name_ = func_name_.substr(0, pos); - is_manual = true; - } else { - offset = ""; - } - if (is_manual) { - std::string sanitized_func_name = func_name_; - if (sanitized_func_name.length() > 10) { - sanitized_func_name = sanitized_func_name.substr(0, 10); - } - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '.', '_'); - std::replace(sanitized_func_name.begin(), sanitized_func_name.end(), '@', '_'); - sanitized_func_name += func; - auto entry_func = sanitized_func_name + "_entry"; - auto exit_func = sanitized_func_name + "_exit"; - struct bpf_link* link; - struct bpf_program* prog = - bpf_object__find_program_by_name(skel->obj, entry_func.c_str()); - struct bpf_uprobe_opts opts = { - .sz = sizeof(struct bpf_uprobe_opts), - }; - - // Convert offset string to hex value if present - unsigned long offset_val = 0; - if (offset != "" && prog != NULL) { - offset_val = - std::stoul(offset.c_str(), nullptr, 0); // Accepts hex ("0x...") or decimal - DC_LOG_DEBUG("Attaching program %s to %s at offset:0x%lx manually", - entry_func.c_str(), uprobe->binary_path.c_str(), offset_val); - link = bpf_program__attach_uprobe_opts( - prog, -1 /* not a retprobe */, uprobe->binary_path.c_str(), offset_val, &opts); - - if (link == NULL) { - // This will provide a more specific error code than the skeleton attach. - DC_LOG_DEBUG("Failed to attach uprobe %s on offset:0x%lx manually: %d", - func_name_.c_str(), offset_val, errno); - total_failed_probes += 2; - } else { - total_successful_probes++; - // Successfully attached uprobe - DC_LOG_DEBUG("Successfully attached uprobe %s on offset:0x%lx manually", - func_name_.c_str(), offset_val); - opts.retprobe = true; - struct bpf_program* prog2 = - bpf_object__find_program_by_name(skel->obj, exit_func.c_str()); - link = bpf_program__attach_uprobe_opts(prog2, -1 /* not a retprobe */, - uprobe->binary_path.c_str(), offset_val, - &opts); - - if (link == NULL) { - // This will provide a more specific error code than the skeleton attach. - DC_LOG_DEBUG("Failed to attach uretprobe %s on offset:0x%lx manually: %d", - func_name_.c_str(), offset_val, errno); - total_failed_probes++; - } else { - // Successfully attached uretprobe - DC_LOG_DEBUG("Successfully attached probe %s on offset:0x%lx manually", - func_name_.c_str(), offset_val); - total_successful_probes++; - } - } - } else { - DC_LOG_DEBUG("Failed to attach uprobe %s on offset:0x%lx manually: %d", - func_name_.c_str(), offset_val, errno); - total_failed_probes += 2; - } - } else { - DC_LOG_DEBUG("Failed to attach uprobe %s as no offset present", func_name_.c_str()); - total_failed_probes += 2; - } - } else { - DC_LOG_DEBUG("Failed to attach as only support uprobe"); - total_failed_probes += 2; - } - } - } - } - DC_LOG_INFO( - "Manual probes summary: total_manual_probes=%d, total_successful_probes=%d, " - "total_failed_probes=%d", - total_manual_probes, total_successful_probes, total_failed_probes); - } else { - DC_LOG_WARN("Failed to read probes file: %s", config_manager->manual_probe_path.c_str()); +static bool split_uprobe_target(const std::string& symbol_with_offset, std::string* symbol_name, + unsigned long* offset) { + const auto pos = symbol_with_offset.rfind(':'); + if (pos == std::string::npos) { + return false; } - return 0; + *symbol_name = symbol_with_offset.substr(0, pos); + *offset = std::stoul(symbol_with_offset.substr(pos + 1), nullptr, 0); + return true; } -static int sync_pipe[2]; - -/** - * @brief Sends a signal to the parent process via a pipe to indicate completion. - * - * This function should be called by the child process after it has performed - * its necessary startup and initialization tasks. - */ -static void daemon_notify_parent() { - char signal_byte = '!'; - // The child process only needs the write end of the pipe. - // The read end has already been closed. - if (write(sync_pipe[1], &signal_byte, 1) == -1) { - // If write fails, it's likely the parent has already exited, which is fine. - if (errno != EPIPE) { - perror("write error in daemon_notify_parent"); - } +static unsigned int runtime_probe_kind(datacrumbs::ProbeType probe_type) { + switch (probe_type) { + case datacrumbs::ProbeType::KPROBE: + return DATACRUMBS_RUNTIME_PROBE_KIND_KPROBE; + case datacrumbs::ProbeType::UPROBE: + return DATACRUMBS_RUNTIME_PROBE_KIND_UPROBE; + case datacrumbs::ProbeType::SYSCALLS: + return DATACRUMBS_RUNTIME_PROBE_KIND_SYSCALL; + case datacrumbs::ProbeType::USDT: + return DATACRUMBS_RUNTIME_PROBE_KIND_USDT; + default: + return 0; } - // Always close the write end of the pipe after use. - close(sync_pipe[1]); } -/** - * @brief Daemonizes the process, creating a new child and waiting for a signal. - * - * The initial parent process forks, and the child process continues the - * daemonization sequence. The parent blocks until the child signals success, - * then exits. - * - * @return Returns 0 in the daemon process, or a positive value representing - * the daemon's PID in the original parent process. Returns -1 on failure. - */ -static pid_t daemonize() { - pid_t pid; - - // Create the pipe for synchronization before the first fork. - if (pipe(sync_pipe) == -1) { - perror("pipe error"); - return -1; +static int populate_event_arg_config( + int map_fd, uint64_t cookie, uint64_t event_id, datacrumbs::ProbeType probe_type, + const std::vector* arg_specs) { + runtime_event_config_t config = {}; + config.event_id = event_id; + config.probe_kind = runtime_probe_kind(probe_type); + if (arg_specs != nullptr) { + config.arg_count = std::min(arg_specs->size(), DATACRUMBS_MAX_CAPTURE_ARGS); + for (unsigned int index = 0; index < config.arg_count; ++index) { + const auto& spec = (*arg_specs)[index]; + config.arg_index[index] = (*arg_specs)[index].index; + if (spec.is_pointer) { + if (is_char_pointer_type(spec.c_type)) { + config.arg_num_bytes[index] = + std::min(spec.num_bytes, DATACRUMBS_MAX_CAPTURE_BYTES); + config.arg_is_pointer[index] = 1; + } else { + config.arg_num_bytes[index] = 0; + config.arg_is_pointer[index] = 0; + } + } else { + config.arg_num_bytes[index] = std::min(spec.num_bytes, 8U); + config.arg_is_pointer[index] = 0; + } + } } - - // First fork to detach from the controlling terminal. - pid = fork(); - if (pid < 0) { - perror("fork error"); - close(sync_pipe[0]); - close(sync_pipe[1]); + if (bpf_map_update_elem(map_fd, &cookie, &config, BPF_ANY) < 0) { + DC_LOG_ERROR("Failed to populate event_arg_config_map for cookie=%llu event_id=%llu", cookie, + event_id); return -1; } + return 0; +} - // Parent process (the original caller). - if (pid > 0) { - // Parent closes the write end of the pipe. - close(sync_pipe[1]); - - char signal_byte; - // Wait to read a byte from the pipe. This blocks until the child writes. - if (read(sync_pipe[0], &signal_byte, 1) == -1) { - perror("read error in parent"); - close(sync_pipe[0]); - return -1; - } - - // Child signaled success. Parent can now exit cleanly. - close(sync_pipe[0]); - exit(EXIT_SUCCESS); +static int attach_runtime_probes(datacrumbs::EventProcessor* event_processor, + struct datacrumbs_bpf* skel) { + auto config_manager = event_processor->configManager_; + auto* client_start = bpf_object__find_program_by_name(skel->obj, "trace_client_start"); + auto* client_stop = bpf_object__find_program_by_name(skel->obj, "trace_client_stop"); + auto* kprobe_entry = bpf_object__find_program_by_name(skel->obj, "trace_generic_kprobe_entry"); + auto* kprobe_exit = bpf_object__find_program_by_name(skel->obj, "trace_generic_kprobe_exit"); + auto* syscall_entry = bpf_object__find_program_by_name(skel->obj, "trace_generic_syscall_entry"); + auto* syscall_exit = bpf_object__find_program_by_name(skel->obj, "trace_generic_syscall_exit"); + auto* uprobe_entry = bpf_object__find_program_by_name(skel->obj, "trace_generic_uprobe_entry"); + auto* uprobe_exit = bpf_object__find_program_by_name(skel->obj, "trace_generic_uprobe_exit"); + auto* usdt_entry = bpf_object__find_program_by_name(skel->obj, "trace_generic_usdt_entry"); + auto* usdt_exit = bpf_object__find_program_by_name(skel->obj, "trace_generic_usdt_exit"); + const int event_arg_config_fd = bpf_map__fd(skel->maps.event_arg_config_map); + + if (event_arg_config_fd < 0) { + DC_LOG_ERROR("Failed to get event_arg_config_map fd: %d", event_arg_config_fd); + return 1; } - // First child process. - // Close the read end of the pipe, as the child will only write. - close(sync_pipe[0]); - - // Become a session leader to detach from the controlling terminal. - if (setsid() < 0) { - perror("setsid error"); - exit(EXIT_FAILURE); + if (!kprobe_entry || !kprobe_exit) { + DC_LOG_ERROR("Failed to find generic kprobe BPF programs"); + return 1; } - - // Second fork to ensure the daemon can't reacquire a controlling terminal. - signal(SIGHUP, SIG_IGN); - pid = fork(); - if (pid < 0) { - perror("fork error"); - exit(EXIT_FAILURE); + if (!syscall_entry || !syscall_exit) { + DC_LOG_ERROR("Failed to find generic syscall BPF programs"); + return 1; } - - // First child exits, orphaning the second child. - if (pid > 0) { - // The first child exits, leaving the second child as the daemon. - exit(EXIT_SUCCESS); + if (!uprobe_entry || !uprobe_exit) { + DC_LOG_ERROR("Failed to find generic uprobe BPF programs"); + return 1; + } + if (!usdt_entry || !usdt_exit) { + DC_LOG_ERROR("Failed to find generic usdt BPF programs"); + return 1; + } + if (!client_start || !client_stop) { + DC_LOG_ERROR("Failed to find client init BPF programs"); + return 1; } - // This code runs only in the second child (the actual daemon). - - // Close all open file descriptors. - int x; - for (x = sysconf(_SC_OPEN_MAX); x >= 0; x--) { - if (x != sync_pipe[1]) { // Keep the write end of the pipe open for the signal - close(x); + { + struct bpf_uprobe_opts start_opts = {}; + start_opts.sz = sizeof(start_opts); + start_opts.func_name = "datacrumbs_start"; + struct bpf_uprobe_opts stop_opts = {}; + stop_opts.sz = sizeof(stop_opts); + stop_opts.func_name = "datacrumbs_stop"; + auto* start_link = + bpf_program__attach_uprobe_opts(client_start, -1, DATACRUMBS_CLIENT_LIB, 0, &start_opts); + auto* stop_link = + bpf_program__attach_uprobe_opts(client_stop, -1, DATACRUMBS_CLIENT_LIB, 0, &stop_opts); + if (libbpf_get_error(start_link) || libbpf_get_error(stop_link)) { + DC_LOG_ERROR("Failed to attach datacrumbs client hooks for %s", DATACRUMBS_CLIENT_LIB); + return 1; } } - // Reopen standard file descriptors to /dev/null. - open("/dev/null", O_RDWR); // stdin - dup(0); // stdout - dup(0); // stderr - - return 0; // Return 0 in the daemon process. -} + int total_requested = 0; + int total_attached = 0; + int total_failed = 0; + uint64_t cookie = 1; + bool invalid_probe_database_updated = false; + + for (const auto& probe : config_manager->runtime_probes) { + for (const auto& function_name : probe->functions) { + const auto event_id = config_manager->get_runtime_event_id(probe->name, function_name); + if (!event_id.has_value()) { + DC_LOG_WARN("Skipping runtime probe without generated event id: %s.%s", probe->name.c_str(), + function_name.c_str()); + total_failed += 2; + continue; + } -static std::string get_hostname() { - char hostname[HOST_NAME_MAX]; - if (gethostname(hostname, sizeof(hostname)) == 0) { - return std::string(hostname); - } - struct utsname uts; - if (uname(&uts) == 0) { - return std::string(uts.nodename); + const uint64_t current_cookie = cookie++; + if (probe->type == datacrumbs::ProbeType::KPROBE) { + total_requested += 2; + if (populate_event_arg_config(event_arg_config_fd, current_cookie, *event_id, probe->type, + probe->getArgSpecs(function_name)) != 0) { + total_failed += 2; + continue; + } + struct bpf_kprobe_opts entry_opts = {}; + entry_opts.sz = sizeof(entry_opts); + entry_opts.bpf_cookie = current_cookie; + struct bpf_kprobe_opts exit_opts = {}; + exit_opts.sz = sizeof(exit_opts); + exit_opts.retprobe = true; + exit_opts.bpf_cookie = current_cookie; + auto* entry_link = + bpf_program__attach_kprobe_opts(kprobe_entry, function_name.c_str(), &entry_opts); + auto* exit_link = + bpf_program__attach_kprobe_opts(kprobe_exit, function_name.c_str(), &exit_opts); + if (libbpf_get_error(entry_link) || libbpf_get_error(exit_link)) { + config_manager->record_invalid_runtime_probe(probe->name, function_name); + invalid_probe_database_updated = true; + total_failed += 2; + continue; + } + total_attached += 2; + } else if (probe->type == datacrumbs::ProbeType::SYSCALLS) { + total_requested += 2; + if (populate_event_arg_config(event_arg_config_fd, current_cookie, *event_id, probe->type, + probe->getArgSpecs(function_name)) != 0) { + total_failed += 2; + continue; + } + struct bpf_ksyscall_opts entry_opts = {}; + entry_opts.sz = sizeof(entry_opts); + entry_opts.bpf_cookie = current_cookie; + struct bpf_ksyscall_opts exit_opts = {}; + exit_opts.sz = sizeof(exit_opts); + exit_opts.retprobe = true; + exit_opts.bpf_cookie = current_cookie; + auto* entry_link = + bpf_program__attach_ksyscall(syscall_entry, function_name.c_str(), &entry_opts); + auto* exit_link = + bpf_program__attach_ksyscall(syscall_exit, function_name.c_str(), &exit_opts); + if (libbpf_get_error(entry_link) || libbpf_get_error(exit_link)) { + config_manager->record_invalid_runtime_probe(probe->name, function_name); + invalid_probe_database_updated = true; + total_failed += 2; + continue; + } + total_attached += 2; + } else if (probe->type == datacrumbs::ProbeType::UPROBE) { + total_requested += 2; + auto uprobe = std::dynamic_pointer_cast(probe); + std::string symbol_name; + unsigned long offset = 0; + const bool has_offset = uprobe && split_uprobe_target(function_name, &symbol_name, &offset); + if (!uprobe) { + DC_LOG_WARN("Skipping invalid uprobe config for %s.%s", probe->name.c_str(), + function_name.c_str()); + total_failed += 2; + continue; + } + if (populate_event_arg_config(event_arg_config_fd, current_cookie, *event_id, probe->type, + probe->getArgSpecs(function_name)) != 0) { + total_failed += 2; + continue; + } + struct bpf_uprobe_opts entry_opts = {}; + entry_opts.sz = sizeof(entry_opts); + entry_opts.bpf_cookie = current_cookie; + struct bpf_uprobe_opts exit_opts = {}; + exit_opts.sz = sizeof(exit_opts); + exit_opts.retprobe = true; + exit_opts.bpf_cookie = current_cookie; + if (!has_offset) { + entry_opts.func_name = function_name.c_str(); + exit_opts.func_name = function_name.c_str(); + } + auto* entry_link = bpf_program__attach_uprobe_opts( + uprobe_entry, -1, uprobe->binary_path.c_str(), offset, &entry_opts); + auto* exit_link = bpf_program__attach_uprobe_opts( + uprobe_exit, -1, uprobe->binary_path.c_str(), offset, &exit_opts); + if (libbpf_get_error(entry_link) || libbpf_get_error(exit_link)) { + config_manager->record_invalid_runtime_probe(probe->name, function_name); + invalid_probe_database_updated = true; + total_failed += 2; + continue; + } + total_attached += 2; + } else if (probe->type == datacrumbs::ProbeType::USDT) { + total_requested += 2; + auto usdt = std::dynamic_pointer_cast(probe); + if (populate_event_arg_config(event_arg_config_fd, current_cookie, *event_id, probe->type, + probe->getArgSpecs(function_name)) != 0) { + total_failed += 2; + continue; + } + struct bpf_usdt_opts entry_opts = {}; + entry_opts.sz = sizeof(entry_opts); + entry_opts.usdt_cookie = current_cookie; + struct bpf_usdt_opts exit_opts = {}; + exit_opts.sz = sizeof(exit_opts); + exit_opts.usdt_cookie = current_cookie; + auto* entry_link = usdt ? bpf_program__attach_usdt( + usdt_entry, -1, usdt->binary_path.c_str(), + usdt->provider.c_str(), function_name.c_str(), &entry_opts) + : nullptr; + auto* exit_link = usdt ? bpf_program__attach_usdt(usdt_exit, -1, usdt->binary_path.c_str(), + usdt->provider.c_str(), + function_name.c_str(), &exit_opts) + : nullptr; + if (!usdt || libbpf_get_error(entry_link) || libbpf_get_error(exit_link)) { + config_manager->record_invalid_runtime_probe(probe->name, function_name); + invalid_probe_database_updated = true; + total_failed += 2; + continue; + } + total_attached += 2; + } else { + DC_LOG_WARN("Skipping unsupported runtime probe type %d for %s", + static_cast(probe->type), probe->name.c_str()); + total_failed += 2; + } + } } - return "unknownhost"; -} -static std::string get_timestamp() { - time_t now = time(nullptr); - char buf[32]; - strftime(buf, sizeof(buf), "%Y%m%d_%H%M%S", localtime(&now)); - return std::string(buf); -} - -static void redirect_output(const std::string& logfile, const std::string& user) { - FILE* logf = freopen(logfile.c_str(), "a+", stdout); - if (!logf) { - perror("freopen failed to open log file"); - exit(EXIT_FAILURE); - } - freopen(logfile.c_str(), "a+", stderr); - auto pwd = getpwnam(user.c_str()); - uid_t uid = pwd ? pwd->pw_uid : static_cast(-1); - gid_t gid = pwd ? pwd->pw_gid : static_cast(-1); - // Set file ownership to user - chown(logfile.c_str(), uid, gid); - // Optionally set permissions (e.g., rw-r-----) - chmod(logfile.c_str(), 0640); -} + if (invalid_probe_database_updated) { + config_manager->persist_invalid_runtime_probes(); + } -static void write_pid_file(const std::string& pidfile, const std::string& user) { - if (access(pidfile.c_str(), F_OK) == 0) { - remove(pidfile.c_str()); - } - std::ofstream ofs(pidfile); - ofs << getpid() << std::endl; - ofs.close(); - auto pwd = getpwnam(user.c_str()); - uid_t uid = pwd ? pwd->pw_uid : static_cast(-1); - gid_t gid = pwd ? pwd->pw_gid : static_cast(-1); - // Set file ownership to user - chown(pidfile.c_str(), uid, gid); - // Optionally set permissions (e.g., rw-r-----) - chmod(pidfile.c_str(), 0640); + DC_LOG_INFO("Runtime probe attachment summary: requested=%d attached=%d failed=%d", + total_requested, total_attached, total_failed); + return 0; } -static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event_processor, - bool notify_parent = false) { +static int main_process(datacrumbs::EventProcessor* event_processor) { DC_LOG_TRACE("main: start"); datacrumbs::utils::Timer timer; timer.resumeTime(); - struct datacrumbs_bpf* skel; - int err; - struct ring_buffer* rb = NULL; + struct datacrumbs_bpf* skel = nullptr; + struct ring_buffer* rb = nullptr; + int err = 0; libbpf_set_print(libbpf_print_fn); - // Open and load BPF skeleton skel = datacrumbs_bpf__open_and_load(); if (!skel) { DC_LOG_ERROR("Failed to open BPF object"); return 1; } - // Attach BPF skeleton err = datacrumbs_bpf__attach(skel); if (err) { DC_LOG_ERROR("Failed to attach BPF skeleton: %d", err); datacrumbs_bpf__destroy(skel); return 1; } - manual_probes(event_processor, skel); + err = attach_runtime_probes(event_processor, skel); + if (err) { + DC_LOG_ERROR("Failed to attach runtime probes: %d", err); + datacrumbs_bpf__destroy(skel); + return 1; + } + #if !(defined(DATACRUMBS_ENABLE) && (DATACRUMBS_ENABLE == 1)) - DC_LOG_WARN("DATACRUMBS_ENABLE_OPT is set to OFF. Nothing will be captured"); + DC_LOG_WARN("DATACRUMBS_ENABLE_OPT is OFF. Nothing will be captured"); #endif #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) DC_LOG_PRINT("DataCrumbs in Tracer mode"); @@ -403,9 +368,9 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event datacrumbs_bpf__destroy(skel); return 1; } - struct string_t* cur_key = NULL; + struct string_t* cur_key = nullptr; struct string_t next_key = {}; - struct string_t value; + struct string_t value = {}; for (;;) { err = bpf_map_get_next_key(inclusion_trie, cur_key, &next_key); if (err) break; @@ -413,16 +378,15 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event cur_key = &next_key; } - // Get inclusion_path from configuration manager and build inclusion_list std::unordered_map inclusion_list; - std::string inclusion_paths = event_processor->configManager_->inclusion_paths; + const std::string inclusion_paths = event_processor->configManager_->inclusion_paths; if (!inclusion_paths.empty()) { std::stringstream ss(inclusion_paths); std::string path; unsigned int idx = 1; while (std::getline(ss, path, ':')) { if (!path.empty()) { - string_t s; + string_t s = {}; size_t copy_len = path.size(); if (copy_len > sizeof(s.str) - 1) copy_len = sizeof(s.str) - 1; strncpy(s.str, path.c_str(), copy_len); @@ -438,22 +402,18 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event datacrumbs_bpf__destroy(skel); return 1; } - DC_LOG_DEBUG("Added inclusion path: %s", path.c_str()); } - cur_key = NULL; + cur_key = nullptr; next_key = {}; for (;;) { err = bpf_map_get_next_key(inclusion_trie, cur_key, &next_key); if (err) break; - bpf_map_lookup_elem(inclusion_trie, &next_key, &value); - - /* Use key and value here */ - DC_LOG_INFO("Trie key: %s, len: %u, value: %u", next_key.str, next_key.len, value); - + DC_LOG_INFO("Trie key: %s, len: %u, value_len: %u", next_key.str, next_key.len, value.len); cur_key = &next_key; } #endif + #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) int failed_events_fd = bpf_map__fd(skel->maps.failed_request); if (failed_events_fd < 0) { @@ -461,11 +421,8 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event datacrumbs_bpf__destroy(skel); return 1; } - // Prepare context for event handler - // Create ring buffer for event processing - rb = ring_buffer__new(bpf_map__fd(skel->maps.output), handle_event, event_processor, NULL); + rb = ring_buffer__new(bpf_map__fd(skel->maps.output), handle_event, event_processor, nullptr); if (!rb) { - err = -1; DC_LOG_ERROR("Failed to create ring buffer"); datacrumbs_bpf__destroy(skel); return 1; @@ -503,56 +460,37 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event return 1; } #endif + int file_hash_fd = bpf_map__fd(skel->maps.file_map); if (file_hash_fd < 0) { DC_LOG_ERROR("Failed to get file hash fd: %d", file_hash_fd); datacrumbs_bpf__destroy(skel); return 1; } - double elapsed = timer.pauseTime(); - if (event_processor->configManager_->mpi_rank == 0) { - DC_LOG_PRINT("Initialization of DataCrumbs elapsed time: %f seconds", elapsed); + const double elapsed = timer.pauseTime(); + DC_LOG_PRINT("Initialization of DataCrumbs elapsed time: %f seconds", elapsed); + { + std::error_code ec; + std::filesystem::create_directories( + event_processor->configManager_->server_ready_file.parent_path(), ec); + std::ofstream ready_output(event_processor->configManager_->server_ready_file); + if (ready_output.is_open()) { + ready_output << "ready\n"; + } } + DC_LOG_INFO("DataCrumbs ready to run for user:%s run_id:%s trace_file:%s", + event_processor->configManager_->user.c_str(), + event_processor->configManager_->run_id.c_str(), + event_processor->configManager_->trace_file_path.c_str()); - if (notify_parent) daemon_notify_parent(); - // Main event polling loop signal(SIGINT, sig_handler); - if (event_processor->configManager_->mpi_rank == 0) { - 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(); - 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); - } - if (!event_processor->configManager_->disable_mpi) { - MPI_Barrier(MPI_COMM_WORLD); - } unsigned int batch_size = 1024; #if defined(DATACRUMBS_BPFTIME_COMPATIBLE_FLAG) && (DATACRUMBS_BPFTIME_COMPATIBLE_FLAG == 0) - - struct string_t* keys = (struct string_t*)malloc(batch_size * sizeof(struct string_t)); - unsigned int* values = (unsigned int*)malloc(batch_size * sizeof(unsigned int)); - // Initialize in_batch to NULL for the first iteration - struct string_t* in_batch = NULL; + struct string_t* keys = + static_cast(malloc(batch_size * sizeof(struct string_t))); + unsigned int* values = static_cast(malloc(batch_size * sizeof(unsigned int))); + struct string_t* in_batch = nullptr; #endif #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 2) @@ -584,18 +522,16 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event #endif unsigned long long last_processed_timestamp = 0; - auto time_unit = 1000000000 / DATACRUMBS_TIME_INTERVAL_NS; while (!stop) { err = 0; #if defined(DATACRUMBS_BPFTIME_COMPATIBLE_FLAG) && (DATACRUMBS_BPFTIME_COMPATIBLE_FLAG == 0) err = lookup_and_delete(file_hash_fd, event_processor, keys, values, batch_size, in_batch); if (err == -EINTR) { - DC_LOG_INFO("\nReceived EINTR, exiting poll loop"); err = 0; break; } #endif - err = 0; + #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) int failed_events = 0; err = bpf_map_lookup_elem(failed_events_fd, &DATACRUMBS_FAILED_EVENTS_KEY, &failed_events); @@ -603,9 +539,7 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event event_processor->failed_events = failed_events; } err = ring_buffer__poll(rb, 10); - // Ctrl-C gives -EINTR if (err == -EINTR) { - DC_LOG_INFO("\nReceived EINTR, exiting poll loop"); err = 0; break; } @@ -620,11 +554,8 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event if (last_processed_timestamp == 0) { last_processed_timestamp = latest_ts; } - if (latest_ts - last_processed_timestamp > 0) { - DC_LOG_DEBUG("Recieved latest latest_ts:%llu, last_processed_timestamp:%llu, interval:%d", - latest_ts, last_processed_timestamp, 0); + if (latest_ts > last_processed_timestamp) { last_processed_timestamp = latest_ts; - LOOKUP_1_CALL(); #ifdef GET_DATA_2_EXISTS LOOKUP_2_CALL(); @@ -653,26 +584,17 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event } } #endif - // Ctrl-C gives -EINTR - if (err == -EINTR) { - DC_LOG_INFO("\nReceived EINTR, exiting poll loop"); - err = 0; - break; - } } + batch_size = 1024 * 1024; - DC_LOG_INFO("\n"); + DC_LOG_INFO(""); #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 2) - DC_LOG_INFO("Collecting rest of the events"); - unsigned long long latest_ts = 0; - DC_LOG_INFO("Collecting rest general events"); + DC_LOG_INFO("Collecting remaining profiling events"); while (LOOKUP_1_CALL() != -1); #ifdef GET_DATA_2_EXISTS - DC_LOG_INFO("Collecting rest sysio events"); while (LOOKUP_2_CALL() != -1); #endif #ifdef GET_DATA_3_EXISTS - DC_LOG_INFO("Collecting rest usdt events"); while (LOOKUP_3_CALL() != -1); #endif #ifdef GET_DATA_4_EXISTS @@ -694,223 +616,64 @@ static int main_process(int argc, char** argv, datacrumbs::EventProcessor* event while (LOOKUP_9_CALL() != -1); #endif #endif + #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) int failed_events = 0; err = bpf_map_lookup_elem(failed_events_fd, &DATACRUMBS_FAILED_EVENTS_KEY, &failed_events); - if (err == 0 && event_processor->configManager_->mpi_rank == 0) { + if (err == 0) { DC_LOG_PRINT("Total %d events failed", failed_events); } #endif #if defined(DATACRUMBS_BPFTIME_COMPATIBLE_FLAG) && (DATACRUMBS_BPFTIME_COMPATIBLE_FLAG == 0) - if (event_processor->configManager_->mpi_rank == 0) { - DC_LOG_PRINT("Collecting string metadata from file_map..."); - } + DC_LOG_PRINT("Collecting string metadata from file_map..."); while (lookup_and_delete(file_hash_fd, event_processor, keys, values, batch_size, in_batch) == 1) { - // Continue until no more keys are found - } - if (keys) { - free(keys); - } - if (values) { - free(values); } + if (keys) free(keys); + if (values) free(values); #endif - if (event_processor->configManager_->mpi_rank == 0) { - DC_LOG_PRINT("Finalizing DataCrumbs..."); - } + + DC_LOG_PRINT("Finalizing DataCrumbs..."); if (stop) { DC_LOG_INFO("Received SIGINT (Ctrl-C), exiting gracefully"); } - // Measure elapsed time for finalization and cleanup timer.resumeTime(); - - // Finalize ChromeWriter instance event_processor->finalize(); + { + std::error_code ec; + std::filesystem::remove(event_processor->configManager_->server_ready_file, ec); + } #if defined(DATACRUMBS_MODE) && (DATACRUMBS_MODE == 1) - // Cleanup resources ring_buffer__free(rb); #endif datacrumbs_bpf__destroy(skel); - double finalize_elapsed = timer.pauseTime(); - double sum_elapsed = 0.0, min_elapsed = 0.0, max_elapsed = 0.0; - if (!event_processor->configManager_->disable_mpi) { - MPI_Reduce(&finalize_elapsed, &sum_elapsed, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - MPI_Reduce(&finalize_elapsed, &min_elapsed, 1, MPI_DOUBLE, MPI_MIN, 0, MPI_COMM_WORLD); - MPI_Reduce(&finalize_elapsed, &max_elapsed, 1, MPI_DOUBLE, MPI_MAX, 0, MPI_COMM_WORLD); - } else { - sum_elapsed = finalize_elapsed; - min_elapsed = finalize_elapsed; - max_elapsed = finalize_elapsed; - } - if (event_processor->configManager_->mpi_rank == 0) { - DC_LOG_PRINT("Finalization and cleanup of DataCrumbs: average=%f, min=%f, max=%f over %d ranks", - sum_elapsed / event_processor->configManager_->mpi_size, min_elapsed, max_elapsed, - event_processor->configManager_->mpi_size); - } - - // Gather failed_events and total_events across all ranks - int local_failed_events = event_processor->failed_events; - int global_failed_events_sum = 0, global_failed_events_min = 0, global_failed_events_max = 0; - if (!event_processor->configManager_->disable_mpi) { - MPI_Reduce(&local_failed_events, &global_failed_events_sum, 1, MPI_INT, MPI_SUM, 0, - MPI_COMM_WORLD); - MPI_Reduce(&local_failed_events, &global_failed_events_min, 1, MPI_INT, MPI_MIN, 0, - MPI_COMM_WORLD); - MPI_Reduce(&local_failed_events, &global_failed_events_max, 1, MPI_INT, MPI_MAX, 0, - MPI_COMM_WORLD); - } else { - global_failed_events_sum = local_failed_events; - global_failed_events_min = local_failed_events; - global_failed_events_max = local_failed_events; - } - int local_total_events = static_cast(event_processor->event_index.load()); - int global_total_events_sum = 0, global_total_events_min = 0, global_total_events_max = 0; - if (!event_processor->configManager_->disable_mpi) { - MPI_Reduce(&local_total_events, &global_total_events_sum, 1, MPI_INT, MPI_SUM, 0, - MPI_COMM_WORLD); - MPI_Reduce(&local_total_events, &global_total_events_min, 1, MPI_INT, MPI_MIN, 0, - MPI_COMM_WORLD); - MPI_Reduce(&local_total_events, &global_total_events_max, 1, MPI_INT, MPI_MAX, 0, - MPI_COMM_WORLD); - } else { - global_total_events_sum = local_total_events; - global_total_events_min = local_total_events; - global_total_events_max = local_total_events; - } - if (event_processor->configManager_->mpi_rank == 0) { - DC_LOG_PRINT("Failed events: sum=%d, min=%d, max=%d", global_failed_events_sum, - global_failed_events_min, global_failed_events_max); - 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; - 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", - json_object_new_string(event_processor->configManager_->trace_file_path.c_str())); - json_object_object_add(status_json, "total_events_captured", - json_object_new_int64(event_processor->event_index.load())); - json_object_object_add(status_json, "events_failed", - json_object_new_int(event_processor->failed_events)); - - if (json_object_to_file_ext(status_file.c_str(), status_json, JSON_C_TO_STRING_PRETTY) != 0) { - DC_LOG_ERROR("Failed to write status file: %s", status_file.c_str()); - } - json_object_put(status_json); - 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); - } - } - + const double finalize_elapsed = timer.pauseTime(); + DC_LOG_PRINT("Finalization and cleanup of DataCrumbs elapsed: %f seconds", finalize_elapsed); + DC_LOG_PRINT("Failed events: %d", event_processor->failed_events); + DC_LOG_PRINT("Total events: %llu", event_processor->event_index.load()); DC_LOG_TRACE("main: end"); return 0; } static int main_call(int argc, char** argv) { - auto event_processor = datacrumbs::EventProcessor(argc, argv); - if (!event_processor.configManager_->disable_mpi) { - MPI_Init(&argc, &argv); - event_processor.configManager_->load_mpi_configurations(); - } - - 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 && - event_processor.configManager_->exe_mode != datacrumbs::ExecutableMode::STOP) { - event_processor.configManager_->print_configurations(); - } - if (event_processor.configManager_->exe_mode == datacrumbs::ExecutableMode::RUN) { - write_pid_file(pidfile, event_processor.configManager_->user); - 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"; - redirect_output(logfile, event_processor.configManager_->user); - DC_LOG_PRINT("Spawned daemon with pid %d, output redirected to %s\n", getpid(), - logfile.c_str()); - write_pid_file(pidfile, event_processor.configManager_->user); - return_code = main_process(argc, argv, &event_processor, true); - } else if (event_processor.configManager_->exe_mode == datacrumbs::ExecutableMode::STOP) { - // Find and kill daemon by pid file - std::ifstream ifs(pidfile); - pid_t pid = 0; - ifs >> pid; - ifs.close(); - if (pid > 0) { - kill(pid, SIGINT); - int status = 0; - if (pid > 0) { - // Wait for the process to terminate after sending SIGINT - // Check if process exists before calling waitpid - // Poll for process termination using ps - int max_retries = 600; // Wait up to ~600 seconds (1s * 600) - const char* user = getenv("USER"); - if (!user) { - user = "unknown"; - } - if (event_processor.configManager_->mpi_rank == 0) { - DC_LOG_PRINT("Sent SIGINT as %s. Waiting for %f minutes for pid:%d to exit", user, - max_retries / 60.0, pid); - } - int i; - for (i = 0; i < max_retries; ++i) { - std::string ps_cmd = "ps -p " + std::to_string(pid) + " > /dev/null"; - int ret = system(ps_cmd.c_str()); - if (ret != 0) { - // Process no longer exists - break; - } - usleep(1000000); // Sleep 1s - } - if (i == max_retries) { - DC_LOG_PRINT("Process %d did not terminate within the expected time for rank %d.", pid, - event_processor.configManager_->mpi_rank); - return_code = 1; - } else { - if (event_processor.configManager_->mpi_rank == 0) { - DC_LOG_PRINT("Process %d has terminated.", pid); - } - } - } - if (!event_processor.configManager_->disable_mpi) { - MPI_Barrier(MPI_COMM_WORLD); - } - if (access(pidfile.c_str(), F_OK) == 0) { - remove(pidfile.c_str()); - } - } else { - DC_LOG_ERROR("Could not find pid to stop on rank %d.\n", - event_processor.configManager_->mpi_rank); - } + if (argc < 4) { + DC_LOG_ERROR("Usage: %s ", argv[0]); + return 1; } - if (!event_processor.configManager_->disable_mpi) { - MPI_Finalize(); + + const std::string run_id = argv[2]; + const std::string user = argv[3]; + auto config_manager = + datacrumbs::Singleton::get_instance(argv[1], run_id, + user, true); + if (!config_manager) { + DC_LOG_ERROR("Failed to initialize runtime configuration manager"); + return 1; } - return (return_code); -} \ No newline at end of file + auto event_processor = datacrumbs::EventProcessor(argv[1]); + event_processor.configManager_->print_configurations(); + return main_process(&event_processor); +} diff --git a/src/datacrumbs/server/process/writer/chrome_writer.cpp b/src/datacrumbs/server/process/writer/chrome_writer.cpp index d145d1bc..ce138e5e 100644 --- a/src/datacrumbs/server/process/writer/chrome_writer.cpp +++ b/src/datacrumbs/server/process/writer/chrome_writer.cpp @@ -1,13 +1,187 @@ #include // internal headers -#include #include #include +#include #include #include #include #include +#include +#include +#include +#include + +namespace { + +std::string json_escape(const std::string& input) { + std::string escaped; + escaped.reserve(input.size() + 8); + for (unsigned char ch : input) { + switch (ch) { + case '\"': + escaped += "\\\""; + break; + case '\\': + escaped += "\\\\"; + break; + case '\b': + escaped += "\\b"; + break; + case '\f': + escaped += "\\f"; + break; + case '\n': + escaped += "\\n"; + break; + case '\r': + escaped += "\\r"; + break; + case '\t': + escaped += "\\t"; + break; + default: + if (ch < 0x20) { + char buffer[8]; + std::snprintf(buffer, sizeof(buffer), "\\u%04x", ch); + escaped += buffer; + } else { + escaped += static_cast(ch); + } + } + } + return escaped; +} + +std::string bytes_to_hex(const std::vector& bytes) { + std::ostringstream oss; + oss << std::hex << std::setfill('0'); + for (unsigned char byte : bytes) { + oss << std::setw(2) << static_cast(byte); + } + return oss.str(); +} + +std::string pointer_json(unsigned long long raw_value) { + std::ostringstream oss; + oss << "\"0x" << std::hex << raw_value << "\""; + return oss.str(); +} + +bool is_char_pointer_type(const std::string& c_type) { + return c_type.find("char *") != std::string::npos || + c_type.find("const char *") != std::string::npos; +} +bool is_float_type(const std::string& c_type) { + return c_type == "float"; +} +bool is_double_type(const std::string& c_type) { + return c_type == "double"; +} +bool is_signed_type(const std::string& c_type) { + if (c_type.empty()) return false; + if (c_type.find("unsigned") != std::string::npos) return false; + return c_type.find("int") != std::string::npos || c_type.find("long") != std::string::npos || + c_type.find("short") != std::string::npos || c_type.find("ssize_t") != std::string::npos || + c_type.find("pid_t") != std::string::npos || c_type == "char"; +} + +std::string decode_scalar_json(const CapturedArgumentValue& value) { + const unsigned int width = std::min(value.bytes.size(), sizeof(unsigned long long)); + unsigned long long raw = 0; + if (width > 0) { + std::memcpy(&raw, value.bytes.data(), width); + } else { + raw = value.raw_value; + } + + if (is_float_type(value.c_type) && width >= sizeof(float)) { + float number = 0.0f; + std::memcpy(&number, value.bytes.data(), sizeof(float)); + return std::to_string(number); + } + if (is_double_type(value.c_type) && width >= sizeof(double)) { + double number = 0.0; + std::memcpy(&number, value.bytes.data(), sizeof(double)); + return std::to_string(number); + } + if (is_signed_type(value.c_type)) { + long long signed_value = 0; + switch (width) { + case 1: + signed_value = static_cast(raw & 0xff); + break; + case 2: + signed_value = static_cast(raw & 0xffff); + break; + case 4: + signed_value = static_cast(raw & 0xffffffffu); + break; + default: + signed_value = static_cast(raw); + break; + } + return std::to_string(signed_value); + } + return std::to_string(raw); +} + +std::string serialize_captured_argument(const CapturedArgumentValue& value) { + if (value.is_pointer) { + if (value.data_status == 2 && !value.bytes.empty()) { + if (is_char_pointer_type(value.c_type)) { + std::string text; + for (unsigned char ch : value.bytes) { + if (ch == '\0') break; + text.push_back(static_cast(ch)); + } + return "\"" + json_escape(text) + "\""; + } + std::ostringstream oss; + oss << "{\"value\":" << decode_scalar_json(value) + << ",\"address\":" << pointer_json(value.raw_value) << "}"; + return oss.str(); + } + return pointer_json(value.raw_value); + } + + if ((value.data_status == 1 || value.data_status == 2) && !value.bytes.empty()) { + return decode_scalar_json(value); + } + + if (!value.bytes.empty()) { + return "\"0x" + bytes_to_hex(value.bytes) + "\""; + } + + return std::to_string(value.raw_value); +} + +std::string serialize_any_value(const std::any& value) { + if (value.type() == typeid(int)) { + return std::to_string(std::any_cast(value)); + } else if (value.type() == typeid(unsigned long long)) { + return std::to_string(std::any_cast(value)); + } else if (value.type() == typeid(unsigned int)) { + return std::to_string(std::any_cast(value)); + } else if (value.type() == typeid(uint64_t)) { + return std::to_string(std::any_cast(value)); + } else if (value.type() == typeid(float)) { + return std::to_string(std::any_cast(value)); + } else if (value.type() == typeid(double)) { + return std::to_string(std::any_cast(value)); + } else if (value.type() == typeid(const char*)) { + return "\"" + json_escape(std::any_cast(value)) + "\""; + } else if (value.type() == typeid(std::string)) { + return "\"" + json_escape(std::any_cast(value)) + "\""; + } else if (value.type() == typeid(CapturedArgumentValue)) { + return serialize_captured_argument(std::any_cast(value)); + } + return "\"\""; +} + +} // namespace + // Specialization of the Singleton instance for KSymCapture. // This holds the shared pointer to the singleton instance. template <> @@ -19,8 +193,9 @@ template <> bool datacrumbs::Singleton::stop_creating_instances = false; namespace datacrumbs { -ChromeWriter::ChromeWriter() : stop_flag_(false), chunk_size_(16 * 1024 * 1024) { - auto configManager_ = datacrumbs::Singleton::get_instance(); +ChromeWriter::ChromeWriter() : stop_flag_(false), finalized_(false), chunk_size_(16 * 1024 * 1024) { + auto configManager_ = + datacrumbs::Singleton::get_instance(); compressor_ = new ZlibCompression(configManager_->trace_file_path, chunk_size_); // file_ = std::fopen(configManager_->trace_file_path.c_str(), "a+"); auto pwd = getpwnam(configManager_->user.c_str()); @@ -36,17 +211,27 @@ ChromeWriter::ChromeWriter() : stop_flag_(false), chunk_size_(16 * 1024 * 1024) } // Destructor flushes and closes the file, and joins the worker thread. -ChromeWriter::~ChromeWriter() {} +ChromeWriter::~ChromeWriter() { + finalize(); + delete compressor_; + compressor_ = nullptr; +} void ChromeWriter::finalize() { - DC_LOG_DEBUG("ChromeWriter worker loop exiting"); { std::lock_guard lock(queue_mutex_); + if (finalized_) { + return; + } stop_flag_ = true; + finalized_ = true; } + DC_LOG_DEBUG("ChromeWriter worker loop exiting"); queue_cv_.notify_one(); if (worker_.joinable()) worker_.join(); - compressor_->compress("]"); - compressor_->finalize(); + if (compressor_ != nullptr) { + compressor_->compress("]"); + compressor_->finalize(); + } DC_LOG_DEBUG("ChromeWriter finalized"); } @@ -61,7 +246,8 @@ void ChromeWriter::push_event(EventWithId* event) { // Serialize and write a single event to the file, including event_id as "id". void ChromeWriter::write_event(EventWithId* event_with_id) { index_++; - auto configManager_ = datacrumbs::Singleton::get_instance(); + auto configManager_ = + datacrumbs::Singleton::get_instance(); uint64_t index = event_with_id->index; auto args = event_with_id->args; @@ -69,34 +255,17 @@ void ChromeWriter::write_event(EventWithId* event_with_id) { unsigned int tid = event_with_id->tgid_pid >> 32; auto it = configManager_->category_map.find(event_with_id->event_id); if (it != configManager_->category_map.end()) { - std::string probe_name; - std::string function_name; - if (event_with_id->type == 3) { - probe_name = "usdt"; - unsigned int method = 0, clazz = 0; - - if (args != nullptr) { - if (event_with_id->event_type == COUNTER_EVENT) { - // Handle COUNTER_EVENT specific logic - unsigned long long duration = std::any_cast((*args)["duration"]); - if (duration > std::numeric_limits::max() / 1000) { - duration = std::numeric_limits::max(); - } else { - duration = static_cast(std::floor(duration / 1000.0)); - } - (*args)["duration"] = duration; - } - method = std::any_cast((*args)["method"]); - clazz = std::any_cast((*args)["clazz"]); - function_name = std::to_string(clazz) + "." + std::to_string(method); - args->erase("clazz"); - args->erase("method"); + std::string probe_name = it->second.first; + std::string function_name = it->second.second; + if (args != nullptr && event_with_id->event_type == COUNTER_EVENT && + args->find("duration") != args->end()) { + unsigned long long duration = std::any_cast((*args)["duration"]); + if (duration > std::numeric_limits::max() / 1000) { + duration = std::numeric_limits::max(); } else { - function_name = "unknown"; + duration = static_cast(std::floor(duration / 1000.0)); } - } else { - probe_name = it->second.first; - function_name = it->second.second; + (*args)["duration"] = duration; } char buffer[1024]; unsigned long long ts_us = 0; @@ -142,29 +311,7 @@ void ChromeWriter::write_event(EventWithId* event_with_id) { args_json += "\""; args_json += key; args_json += "\":"; - if (value.type() == typeid(int)) { - args_json += std::to_string(std::any_cast(value)); - } else if (value.type() == typeid(unsigned long long)) { - args_json += std::to_string(std::any_cast(value)); - } else if (value.type() == typeid(unsigned int)) { - args_json += std::to_string(std::any_cast(value)); - } else if (value.type() == typeid(uint64_t)) { - args_json += std::to_string(std::any_cast(value)); - } else if (value.type() == typeid(float)) { - args_json += std::to_string(std::any_cast(value)); - } else if (value.type() == typeid(double)) { - args_json += std::to_string(std::any_cast(value)); - } else if (value.type() == typeid(const char*)) { - args_json += "\""; - args_json += std::any_cast(value); - args_json += "\""; - } else if (value.type() == typeid(std::string)) { - args_json += "\""; - args_json += std::any_cast(value); - args_json += "\""; - } else { - args_json += "\"\""; - } + args_json += serialize_any_value(value); first = false; } } @@ -172,12 +319,7 @@ void ChromeWriter::write_event(EventWithId* event_with_id) { { std::lock_guard lock(file_mutex_); - std::string event_json; - if (first) { - event_json = std::string(buffer, len) + "}\n"; - } else { - event_json = std::string(buffer, len) + ",\"args\":" + args_json + "}\n"; - } + std::string event_json = std::string(buffer, len) + ",\"args\":" + args_json + "}\n"; DC_LOG_DEBUG("Writing event: %s", event_json.c_str()); compressor_->compress(event_json); } diff --git a/src/datacrumbs/server/process/writer/chrome_writer.h b/src/datacrumbs/server/process/writer/chrome_writer.h index 31e726aa..848afc96 100644 --- a/src/datacrumbs/server/process/writer/chrome_writer.h +++ b/src/datacrumbs/server/process/writer/chrome_writer.h @@ -51,9 +51,10 @@ class ChromeWriter { std::condition_variable queue_cv_; std::thread worker_; bool stop_flag_; + bool finalized_; unsigned long index_; ZlibCompression* compressor_; size_t chunk_size_; }; -} // namespace datacrumbs \ No newline at end of file +} // namespace datacrumbs diff --git a/src/datacrumbs/signer/sign_probes_service_main.cpp b/src/datacrumbs/signer/sign_probes_service_main.cpp new file mode 100644 index 00000000..af1ef537 --- /dev/null +++ b/src/datacrumbs/signer/sign_probes_service_main.cpp @@ -0,0 +1,5 @@ +#include + +int main() { + return datacrumbs::probe_signing_service::run_signing_service(); +} diff --git a/src/datacrumbs/system_configurator/system_configurator_main.cpp b/src/datacrumbs/system_configurator/system_configurator_main.cpp new file mode 100644 index 00000000..9f36a1d3 --- /dev/null +++ b/src/datacrumbs/system_configurator/system_configurator_main.cpp @@ -0,0 +1,147 @@ +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace { + +std::string current_hostname() { + char hostname_buf[256] = {0}; + if (gethostname(hostname_buf, sizeof(hostname_buf) - 1) != 0) { + throw std::runtime_error("Failed to get hostname."); + } + return hostname_buf; +} + +void add_string(json_object* root, const char* key, const std::string& value) { + json_object_object_add(root, key, json_object_new_string(value.c_str())); +} + +std::string optional_macro_string(const char* value) { + return value != nullptr ? std::string(value) : std::string(); +} + +void enforce_secret_ownership_and_mode() { + const auto secret_path = datacrumbs::probe_file::secret_path(); + chown(secret_path.c_str(), 0, 0); + chmod(secret_path.c_str(), S_IRUSR); +} + +void add_system_configuration(json_object* root) { + std::string job_other_flags; + std::string inclusion_paths; +#ifdef DATACRUMBS_JOB_OTHER_FLAGS + job_other_flags = optional_macro_string(DATACRUMBS_JOB_OTHER_FLAGS); +#endif +#ifdef DATACRUMBS_INCLUSION_PATHS + inclusion_paths = optional_macro_string(DATACRUMBS_INCLUSION_PATHS); +#endif + + const std::unordered_map values = { + {"DATACRUMBS_INSTALL_PREFIX", DATACRUMBS_INSTALL_PREFIX_PATH}, + {"DATACRUMBS_INSTALL_HOST", DATACRUMBS_INSTALL_HOST}, + {"DATACRUMBS_INSTALL_USER", DATACRUMBS_INSTALL_USER}, + {"DATACRUMBS_INSTALL_BIN_DIR", DATACRUMBS_INSTALL_BIN_DIR}, + {"DATACRUMBS_INSTALL_SBIN_DIR", DATACRUMBS_INSTALL_SBIN_DIR}, + {"DATACRUMBS_INSTALL_LIB_DIR", DATACRUMBS_INSTALL_LIB_DIR}, + {"DATACRUMBS_INSTALL_LIBEXEC_DIR", DATACRUMBS_INSTALL_LIBEXEC_DIR}, + {"DATACRUMBS_INSTALL_ETC_DIR", DATACRUMBS_INSTALL_ETC_DIR}, + {"DATACRUMBS_INSTALL_CONFIGS_DIR", DATACRUMBS_INSTALL_CONFIGS_DIR}, + {"DATACRUMBS_INSTALL_DATA_DIR", DATACRUMBS_INSTALL_SHARED_DATA_DIR}, + {"DATACRUMBS_INSTALL_MODULES_DIR", DATACRUMBS_INSTALL_MODULES_DIR}, + {"DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR", DATACRUMBS_INSTALL_PROBE_OBJECTS_DIR}, + {"DATACRUMBS_INSTALL_RUNSTATEDIR", DATACRUMBS_INSTALL_RUNSTATEDIR}, + {"DATACRUMBS_CLIENT_LIB", DATACRUMBS_CLIENT_LIB}, + {"DATACRUMBS_TRACE_DIR_PATTERN", DATACRUMBS_TRACE_DIR_PATTERN}, + {"DATACRUMBS_JOB_SCHEDULER", DATACRUMBS_JOB_SCHEDULER}, + {"DATACRUMBS_JOB_RUN", DATACRUMBS_JOB_RUN}, + {"DATACRUMBS_JOB_NODE_FLAG", DATACRUMBS_JOB_NODE_FLAG}, + {"DATACRUMBS_JOB_PPN_FLAG", DATACRUMBS_JOB_PPN_FLAG}, + {"DATACRUMBS_JOB_OTHER_FLAGS", job_other_flags}, + {"DATACRUMBS_JOB_ID_VAR", DATACRUMBS_JOB_ID_VAR}, + {"DATACRUMBS_SERVER_RUN_DIR", DATACRUMBS_SERVER_RUN_DIR}, + {"DATACRUMBS_SERVER_RUN_ID_FILE", DATACRUMBS_SERVER_RUN_ID_FILE}, + {"DATACRUMBS_LOG_DIR", DATACRUMBS_LOG_DIR}, + {"DATACRUMBS_USER", DATACRUMBS_USER}, + {"DATACRUMBS_INCLUSION_PATHS", inclusion_paths}, + {"DATACRUMBS_KERNEL_UNAME_R", DATACRUMBS_KERNEL_UNAME_R}, + {"DATACRUMBS_KERNEL_HEADERS_PATH", DATACRUMBS_KERNEL_HEADERS_PATH}, + {"DATACRUMBS_LIBC_SO", DATACRUMBS_LIBC_SO}, + }; + + for (const auto& [key, value] : values) { + add_string(root, key.c_str(), value); + } +} + +} // namespace + +int main() { + try { + bool secret_ready = false; + std::string secret; + if (datacrumbs::probe_file::ensure_probe_secret(&secret)) { + enforce_secret_ownership_and_mode(); + secret_ready = true; + } else if (geteuid() == 0) { + DC_LOG_ERROR("Failed to create probe signing secret"); + return 1; + } else { + DC_LOG_WARN("Skipping probe signing secret creation during non-root configuration pass"); + } + + if (std::filesystem::exists(DATACRUMBS_SYSTEM_PROBE_FILE)) { + DC_LOG_INFO("System configuration already exists at: %s", DATACRUMBS_SYSTEM_PROBE_FILE); + if (secret_ready) { + DC_LOG_INFO("Probe signing secret ensured at: %s", + datacrumbs::probe_file::secret_path().string().c_str()); + } + return 0; + } + + const std::string hostname = current_hostname(); + + json_object* root = json_object_new_object(); + json_object* summary = json_object_new_object(); + json_object* system_configuration = json_object_new_object(); + + add_system_configuration(system_configuration); + json_object_object_add(root, "system_configuration", system_configuration); + + add_string(summary, "config_name", hostname); + add_string(summary, "config_path", DATACRUMBS_INSTALL_CONFIGS_DIR); + add_string(summary, "trace_log_dir", DATACRUMBS_CONFIGURED_TRACE_DIR); + add_string(summary, "data_dir", DATACRUMBS_INSTALL_SHARED_DATA_DIR); + add_string(summary, "system_probe_path", DATACRUMBS_SYSTEM_PROBE_FILE); + add_string(summary, "hostname", hostname); + add_string(summary, "user", DATACRUMBS_USER); + add_string(summary, "install_user", DATACRUMBS_INSTALL_USER); + json_object_object_add(root, "summary", summary); + + const char* json_payload = json_object_to_json_string_ext(root, JSON_C_TO_STRING_PLAIN); + const bool ok = + datacrumbs::probe_file::write_gzip_file(DATACRUMBS_SYSTEM_PROBE_FILE, json_payload); + json_object_put(root); + + if (!ok) { + DC_LOG_ERROR("Failed to write system configuration file: %s", DATACRUMBS_SYSTEM_PROBE_FILE); + return 1; + } + + DC_LOG_INFO("System configuration written to: %s", DATACRUMBS_SYSTEM_PROBE_FILE); + if (secret_ready) { + DC_LOG_INFO("Probe signing secret ensured at: %s", + datacrumbs::probe_file::secret_path().string().c_str()); + } + return 0; + } catch (const std::exception& ex) { + DC_LOG_ERROR("System configurator failed: %s", ex.what()); + return 1; + } +} diff --git a/src/datacrumbs/validator/bpf/probe.bpf.c b/src/datacrumbs/validator/bpf/probe.bpf.c deleted file mode 100644 index db61bf02..00000000 --- a/src/datacrumbs/validator/bpf/probe.bpf.c +++ /dev/null @@ -1,24 +0,0 @@ -// Generated by DataCrumbs during system build -#include -// bpf headers -#include -#include -#include -#include - -char LICENSE[] SEC("license") = "Dual BSD/GPL"; - -SEC("kprobe") -int BPF_KPROBE(kprobe_test) { - return 0; -} - -SEC("uprobe") -int BPF_UPROBE(uprobe_test) { - return 0; -} - -SEC("ksyscall") -int BPF_KSYSCALL(syscall_test, struct pt_regs* regs) { - return 0; -} \ No newline at end of file diff --git a/src/datacrumbs/validator/probe_validator.cpp b/src/datacrumbs/validator/probe_validator.cpp deleted file mode 100644 index 4e2148d2..00000000 --- a/src/datacrumbs/validator/probe_validator.cpp +++ /dev/null @@ -1,372 +0,0 @@ -// BPF Headers -#include -#include -// Generated Headers -#include -#include -#include -// other headers -#include -#include // Logging header -#include -// std headers -#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) { - // Initialize config manager (similar to probe explorer) - configManager_ = Singleton::get_instance(argc, argv); - } - - std::unordered_map> ValidateProbes(struct validator* skel) { - bool all_ok = true; - // Get probes file path from configuration - const auto& probesFile = configManager_->probe_file_path; - DC_LOG_INFO("[ProbeGenerator] Reading probes file: %s", probesFile.c_str()); - - std::unordered_map> invalid_function_names; - // Read probes JSON file - struct json_object* probesJson = json_object_from_file(probesFile.c_str()); - if (!probesJson) { - 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"); - if (!kprobe_prog) { - DC_LOG_ERROR("Failed to find kprobe_test program in BPF object"); - return invalid_function_names; - } - struct bpf_program* uprobe_prog = bpf_object__find_program_by_name(skel->obj, "uprobe_test"); - if (!uprobe_prog) { - DC_LOG_ERROR("Failed to find uprobe_test program in BPF object"); - return invalid_function_names; - } - struct bpf_program* syscall_prog = bpf_object__find_program_by_name(skel->obj, "syscall_test"); - if (!syscall_prog) { - DC_LOG_ERROR("Failed to find syscall_test program in BPF object"); - return invalid_function_names; - } - size_t total_probes = configManager_->category_map.size(); - size_t current_probe = 0; - invalid_probes = 0; - - std::mutex invalid_mutex; - std::atomic atomic_invalid_probes{0}; - std::atomic atomic_current_probe{0}; - - 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) { - struct bpf_kprobe_opts opts = { - .sz = sizeof(struct bpf_kprobe_opts), - }; - struct bpf_link* link = bpf_program__attach_kprobe_opts(kprobe_prog, func.c_str(), &opts); - if (!link) { - is_invalid = true; - } else { - bpf_link__destroy(link); - } - } else if (probe_type == ProbeType::UPROBE) { - auto uprobe = UProbe::fromJson(jprobe); - std::string function_name, offset; - auto pos = func.find(':'); - bool is_manual = false; - if (pos != std::string::npos) { - function_name = func.substr(0, pos); - offset = func.substr(pos + 1); - is_manual = true; - } else { - function_name = func; - offset = ""; - } - unsigned long offset_val = 0; - if (!offset.empty()) { - offset_val = std::stoul(offset.c_str(), nullptr, 0); - } - struct bpf_link* link = bpf_program__attach_uprobe_opts( - uprobe_prog, -1, uprobe.binary_path.c_str(), offset_val, nullptr); - if (!link) { - is_invalid = true; - } else { - bpf_link__destroy(link); - } - } else if (probe_type == ProbeType::SYSCALLS) { - struct bpf_ksyscall_opts opts = { - .sz = sizeof(struct bpf_ksyscall_opts), - }; - struct bpf_link* link = bpf_program__attach_ksyscall(syscall_prog, func.c_str(), &opts); - if (!link) { - is_invalid = true; - } else { - bpf_link__destroy(link); - } - } - if (is_invalid) { - atomic_invalid_probes++; - std::lock_guard lock(invalid_mutex); - invalid_function_names[probe_name].push_back(func); - } - }; - - // Use a thread pool of 4 workers - const size_t num_workers = std::max(1, std::thread::hardware_concurrency()); - DC_LOG_INFO("Using %zu worker threads for probe validation", num_workers); - std::vector workers; - std::mutex queue_mutex; - std::condition_variable cv; - bool done = false; - - // 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) { - struct json_object* jprobe = json_object_array_get_idx(probesJson, i); - auto probe = Probe::fromJson(jprobe); - 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); - // Store copies of probe.name and probe.type to avoid race conditions - task_queue.emplace(probe.name, probe.type, func, jprobe); - } - } - - // Worker threads - for (size_t i = 0; i < num_workers; ++i) { - workers.emplace_back([&]() { - while (true) { - { - std::unique_lock lock(queue_mutex); - cv.wait(lock, [&]() { return !task_queue.empty() || done; }); - if (task_queue.empty()) { - if (done) - break; - else - continue; - } - // 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(); - - // Release lock before validation (which can be slow) - lock.unlock(); - - // Now validate with copied data - validate_func(probe_name, probe_type, func, jprobe); - } - } - }); - } - - // Notify workers after all tasks are enqueued - { - std::lock_guard lock(queue_mutex); - done = true; - } - cv.notify_all(); - - 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(); } - size_t invalid_probes; - - private: - std::shared_ptr configManager_; -}; -} // 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); - auto invalid_function_names = validator.ValidateProbes(skel); - auto total_probes = validator.total_probes(); - 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 - // functions if any - int arr_len = json_object_array_length(invalid_probesJson); - for (int i = 0; i < arr_len; ++i) { - struct json_object* jprobe = json_object_array_get_idx(invalid_probesJson, i); - // Get probe name - struct json_object* jname = nullptr; - if (!json_object_object_get_ex(jprobe, "name", &jname)) continue; - std::string probe_name = json_object_get_string(jname); - - // Always clear the "functions" array - struct json_object* jfunctions = json_object_new_array(); - json_object_object_add(jprobe, "functions", jfunctions); - - // If this probe has invalid functions, add them to the "functions" attribute - auto it = invalid_function_names.find(probe_name); - if (it != invalid_function_names.end()) { - for (const auto& func : it->second) { - json_object_array_add(jfunctions, json_object_new_string(func.c_str())); - } - } - } - // Write the updated invalid_probesJson to the probe_invalid_file_path - const auto& invalidFile = configManager_->probe_invalid_file_path; - if (json_object_to_file_ext(invalidFile.c_str(), invalid_probesJson, JSON_C_TO_STRING_PRETTY) != - 0) { - DC_LOG_ERROR("Failed to write invalid probes JSON to file: %s", invalidFile.c_str()); - } else { - DC_LOG_INFO("Invalid probes JSON written to: %s", invalidFile.c_str()); - } - json_object_put(invalid_probesJson); // free JSON object - // Set ownership and permissions for the invalid probes file - auto pwd = getpwnam(configManager_->user.c_str()); - uid_t uid = pwd ? pwd->pw_uid : static_cast(-1); - gid_t gid = pwd ? pwd->pw_gid : static_cast(-1); - // Set file ownership to configManager_->user - chown(configManager_->probe_invalid_file_path.c_str(), uid, gid); - // Optionally set permissions (e.g., rw-r-----) - chmod(configManager_->probe_invalid_file_path.c_str(), 0640); - } catch (const std::exception& ex) { - DC_LOG_ERROR("Exception: %s", ex.what()); - return -1; - } - - return invalid_probes > 0 ? -1 : 0; -} \ No newline at end of file diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt deleted file mode 100755 index 313733c8..00000000 --- a/tests/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -add_subdirectory(unittests) -add_subdirectory(benchmarks/ior) diff --git a/tests/apps/Montage/MontageExec.template.sh b/tests/apps/Montage/MontageExec.template.sh deleted file mode 100755 index c5509f1b..00000000 --- a/tests/apps/Montage/MontageExec.template.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/bash -# NOTE: Leave this as is to stop for errors and unset variables -set -eu - -# NOTE: This dataset name should be the name of the folder in the ${INPUT_DATA_DIR}, change $OUTPUT_DATA_DIR as needed -export DATASET=M16_6x6 -export OUTPUT_DATA_DIR=/mnt/nvme/$USER/Montage/output - -export MONTAGE_DIR=$HOME/sources/Montage -export INPUT_DATA_DIR=$HOME/data/Montage/ -export PATH=${MONTAGE_DIR}/bin:$PATH -export LD_LIBRARY_PATH=${MONTAGE_DIR}/lib:$LD_LIBRARY_PATH - -mkdir -p "$OUTPUT_DATA_DIR" - -export OMP_NUM_THREADS=1 - -#NONMPIRUN="srun -n1 " -#NONMPIRUN="srun --ntasks-per-node=1 -N 1 -w ares-comp-31 " -NONMPIRUN="mpirun -n 1 " - -# Needed to run MPI version programs -MPIRUN="mpirun -n 16 " -#MPIRUN="srun --ntasks-per-node=16 -N 1 -w ares-comp-31 " - -# NOTE: This is to get a log of the commands being run -set -x - -function run_montage_workflow { - rm -f "$OUTPUT_DATA_DIR"/*.fits "$OUTPUT_DATA_DIR"/*.hdr "$OUTPUT_DATA_DIR"/*.tbl "$OUTPUT_DATA_DIR"/*.png - rm -rf "$OUTPUT_DATA_DIR"/M16_*dir - - mkdir "$OUTPUT_DATA_DIR"/M16_projdir "$OUTPUT_DATA_DIR"/M16_diffdir "$OUTPUT_DATA_DIR"/M16_corrdir - echo "Create a metadata table of the input images, Kimages.tbl" - $NONMPIRUN mImgtbl "$INPUT_DATA_DIR"/$DATASET "$OUTPUT_DATA_DIR"/m16.tbl - - echo "Create a FITS header describing the footprint of the mosaic" - $NONMPIRUN mMakeHdr "$OUTPUT_DATA_DIR"/m16.tbl "$OUTPUT_DATA_DIR"/m16.hdr - - echo "Reproject the input images" - $MPIRUN mProjExecMPI -p "$INPUT_DATA_DIR"/$DATASET "$OUTPUT_DATA_DIR"/m16.tbl "$OUTPUT_DATA_DIR"/m16.hdr "$OUTPUT_DATA_DIR"/M16_projdir "$OUTPUT_DATA_DIR"/m16_stats.tbl - - echo "Create a metadata table of the reprojected images" - $NONMPIRUN mImgtbl "$OUTPUT_DATA_DIR"/M16_projdir "$OUTPUT_DATA_DIR"/m16_proj.tbl - - echo "Analyze the overlaps between images" - $NONMPIRUN mOverlaps "$OUTPUT_DATA_DIR"/m16_proj.tbl "$OUTPUT_DATA_DIR"/m16_diffs.tbl - - $MPIRUN mDiffExecMPI -p "$OUTPUT_DATA_DIR"/M16_projdir "$OUTPUT_DATA_DIR"/m16_diffs.tbl "$OUTPUT_DATA_DIR"/m16.hdr "$OUTPUT_DATA_DIR"/M16_diffdir - $MPIRUN mFitExecMPI "$OUTPUT_DATA_DIR"/m16_diffs.tbl "$OUTPUT_DATA_DIR"/m16_fits.tbl "$OUTPUT_DATA_DIR"/M16_diffdir - - echo "Perform background modeling and compute corrections for each image" - $NONMPIRUN mBgModel "$OUTPUT_DATA_DIR"/m16_proj.tbl "$OUTPUT_DATA_DIR"/m16_fits.tbl "$OUTPUT_DATA_DIR"/m16_corrections.tbl - - echo "Apply corrections to each image" - # This is a time-comsuming step and is not parallelized - $NONMPIRUN mBgExec -p "$OUTPUT_DATA_DIR"/M16_projdir/ "$OUTPUT_DATA_DIR"/m16_proj.tbl "$OUTPUT_DATA_DIR"/m16_corrections.tbl "$OUTPUT_DATA_DIR"/M16_corrdir - - echo "Coadd the images to create a mosaic with background corrections" - $MPIRUN mAddMPI -p "$OUTPUT_DATA_DIR"/M16_corrdir/ "$OUTPUT_DATA_DIR"/m16_proj.tbl "$OUTPUT_DATA_DIR"/m16.hdr "$OUTPUT_DATA_DIR"/m16.fits - - echo "Make a PNG of the corrected mosaic for visualization" - $NONMPIRUN mViewer -ct 1 -gray "$OUTPUT_DATA_DIR"/m16.fits -1s max gaussian-log -out "$OUTPUT_DATA_DIR"/m16.png -} - -run_montage_workflow diff --git a/tests/apps/Montage/README.md b/tests/apps/Montage/README.md deleted file mode 100644 index 21111a3c..00000000 --- a/tests/apps/Montage/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Montage - -## Automatic Montage Setup - -Run the `setup_montage.sh` - -This script will download the appropriate version of Montage **v6.1**, -patch it for newer compilers (gcc 11+), updates the location for Montage in the -`MontageExec` script, load an MPI module, and then build Montage if `true` was passed. - -The script may take 3 parameters: - -1. `RUNMAKE`: This will determine whether or not to build Montage. - Values include `true` or `false` (default: `false`) -2. `CLONEROOT`: Where should the script clone Montage to. Default is current working directory. -3. `GITTAG`: The Git tag, defaults to `v6.1` -4. `GITOUT`: The output directory, defaults to `Montage-$GITTAG`. - If you change `$GITTAG` then `$GITOUT` will also change accordingly. - -Montage will hence be cloned to `${CLONEROOT}/${GITOUT}` diff --git a/tests/apps/Montage/gcc-11-montage-v6.1.patch b/tests/apps/Montage/gcc-11-montage-v6.1.patch deleted file mode 100644 index 2ca09d5d..00000000 --- a/tests/apps/Montage/gcc-11-montage-v6.1.patch +++ /dev/null @@ -1,120 +0,0 @@ -diff --git a/Montage/Makefile.LINUX b/Montage/Makefile.LINUX -index 57ea4eb..02cf1e3 100644 ---- a/Montage/Makefile.LINUX -+++ b/Montage/Makefile.LINUX -@@ -53,14 +53,14 @@ LIBS = -L../lib -lwcs -lcfitsio -lcoord -lmtbl -lsvc \ - -lwww -lboundaries -lpixbounds -ltwoplane -lnsl -lm - - SBINS = mConvert mFlattenExec mHdrCheck mHdrtbl mTblSort mTileHdr mTileImage --MBINS = mProjExecMPI mFitExecMPI mDiffExecMPI mBgExecMPI mAddMPI mAddExecMPI -+MBINS = mProjExecMPI mFitExecMPI mDiffExecMPI mAddMPI mAddExecMPI - - BINS = $(SBINS) - - - # uncomment the next two lines to build MPI modules --# MPICC = mpicc --# BINS = $(SBINS) $(MBINS) -+MPICC = mpicc -+BINS = $(SBINS) $(MBINS) - - - .c.o: -diff --git a/Montage/checkHdr.c b/Montage/checkHdr.c -index 15d3b68..40da192 100644 ---- a/Montage/checkHdr.c -+++ b/Montage/checkHdr.c -@@ -75,7 +75,7 @@ char ctype1[1024]; - char ctype2[1024]; - - char *hdrCheck_outfile = (char *)NULL; --FILE *fout; -+FILE *fout_1; - - int CHdebug = 0; - int errorCount = 0; -@@ -185,9 +185,9 @@ int checkHdr(char *infile, int hdrflag, int hdu) - - if(hdrCheck_outfile) - { -- fout = fopen(hdrCheck_outfile, "w+"); -+ fout_1 = fopen(hdrCheck_outfile, "w+"); - -- if(fout == (FILE *)NULL) -+ if(fout_1 == (FILE *)NULL) - { - fprintf(fstatus, "[struct stat=\"ERROR\", msg=\"Cannot open output file %s.\"]\n", hdrCheck_outfile); - fflush(fstatus); -@@ -759,8 +759,8 @@ int errorOutput(char *msg) - { - if(hdrCheck_outfile) - { -- fprintf(fout, "%s\n", msg); -- fflush(fout); -+ fprintf(fout_1, "%s\n", msg); -+ fflush(fout_1); - - ++errorCount; - } -diff --git a/Montage/get_hfiles.c b/Montage/get_hfiles.c -index c26b2a7..1faf104 100644 ---- a/Montage/get_hfiles.c -+++ b/Montage/get_hfiles.c -@@ -31,7 +31,7 @@ extern int hdrlen; - int get_hhdr (char*, struct Hdr_rec*, char*); - void print_hrec (struct Hdr_rec*); - --struct Hdr_rec hdr_rec; -+struct Hdr_rec hdr_rec_1; - - - /* Recursively finds all FITS files */ -@@ -70,13 +70,13 @@ void get_hfiles (char *pathname) - sprintf (dirname, "%s/%s", pathname, entry->d_name); - - if(strncmp(dirname, "./", 2) == 0) -- strcpy (hdr_rec.fname, dirname+2); -+ strcpy (hdr_rec_1.fname, dirname+2); - else -- strcpy (hdr_rec.fname, dirname+hdrlen); -+ strcpy (hdr_rec_1.fname, dirname+hdrlen); - - if(debug) - { -- printf("DEBUG: [%s] -> [%s]\n", dirname, hdr_rec.fname); -+ printf("DEBUG: [%s] -> [%s]\n", dirname, hdr_rec_1.fname); - fflush(stdout); - } - -@@ -112,7 +112,7 @@ void get_hfiles (char *pathname) - { - msg[0] = '\0'; - -- istatus = get_hhdr (dirname, &hdr_rec, msg); -+ istatus = get_hhdr (dirname, &hdr_rec_1, msg); - - if (istatus != 0) - failed += istatus; -diff --git a/Montage/montage.h b/Montage/montage.h -index 7912116..a005820 100644 ---- a/Montage/montage.h -+++ b/Montage/montage.h -@@ -1,4 +1,4 @@ - #ifndef MONTAGE --FILE *fstatus; - #define MONTAGE -+static FILE *fstatus; - #endif -diff --git a/lib/src/coord/coord.h b/lib/src/coord/coord.h -index 7a9eda9..65428e8 100644 ---- a/lib/src/coord/coord.h -+++ b/lib/src/coord/coord.h -@@ -1,7 +1,7 @@ - #ifndef ISIS_COORD_LIB - - --int coord_debug; -+static int coord_debug; - - - struct COORD /* Definition of coordinate structure */ diff --git a/tests/apps/Montage/setup_montage.sh b/tests/apps/Montage/setup_montage.sh deleted file mode 100755 index 94bcd37b..00000000 --- a/tests/apps/Montage/setup_montage.sh +++ /dev/null @@ -1,65 +0,0 @@ -#! /usr/bin/env bash - -set -eu -CWD=$(pwd) - -RUNMAKE=${1:-false} -CLONEROOT=${2:-"$CWD"} -GITTAG=${3:-"v6.1"} -GITOUT=${4:-"Montage-${GITTAG}"} - -# NOTE: Change OPENMPIMODULE as needed or change USEMPI to false if you don't want to use MPI. -OPENMPIMODULE="openmpi" -USEMPIMODULE=true -USEMPI=true - -GITOUTDIR="${CLONEROOT}/${GITOUT}" - -if [[ ! -d "$GITOUTDIR" ]]; then - git clone https://github.com/Caltech-IPAC/Montage.git -b "$GITTAG" "$GITOUTDIR" -fi -cd "${GITOUTDIR}" || { - echo "Failed to cd into $GITOUTDIR" - exit 1 -} - -if [[ ! -f "${GITOUTDIR}"/PATCHED ]]; then - { - git apply "$CWD"/gcc-11-montage-"${GITTAG}".patch - touch "${GITOUTDIR}"/PATCHED - } || - { - echo 'Patch failed' - exit 1 - } -else - echo "Patch already applied, skipping." -fi -# -# changing the MONTAGE_DIR variable to the current directory -cp "${CWD}"/MontageExec.template.sh "${CWD}"/MontageExec -sed -i "s|MONTAGE_DIR=.*|MONTAGE_DIR=${GITOUTDIR}|" "$CWD"/MontageExec - -if [[ $USEMPI == true ]]; then - if [[ $USEMPIMODULE == true ]]; then - if ! module load "$OPENMPIMODULE"; then - echo 'MPI module name not found, please check the OPENMPIMODULE variable.' - exit 1 - fi - elif ! command -v mpicc &>/dev/null; then - echo "mpicc not found in system PATH" - echo "Please load the MPI module or set USEMPI to false." - exit 1 - fi -else - echo "Continuing without MPI support." -fi - -if [[ $RUNMAKE == true ]]; then - make clean - make -j "$(nproc)" -else - echo "Please change directory to ${GITOUTDIR} and run 'make' to compile Montage." -fi - -cd "${CWD}" || exit 1 diff --git a/tests/benchmarks/ior/CMakeLists.txt b/tests/benchmarks/ior/CMakeLists.txt deleted file mode 100644 index efbf7c55..00000000 --- a/tests/benchmarks/ior/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -find_program( - IOR_EXECUTABLE - NAMES ior - PATHS ENV PATH -) - -if(IOR_EXECUTABLE) - message(STATUS "Found IOR: ${IOR_EXECUTABLE}") - set(ENABLE_IOR_TESTS ON) -else() - message(STATUS "IOR binary not found. IOR tests will be disabled.") - set(ENABLE_IOR_TESTS OFF) -endif() - -set(DATACRUMBS_TEST_DIR - "/tmp" - CACHE STRING "Directory for Datacrumbs test files" -) - -if(ENABLE_IOR_TESTS AND ENABLE_MPIRUN_TEST) - add_test( - NAME ior_posix_file_per_process - COMMAND ${MPIRUN_EXECUTABLE} -np 16 -x LD_PRELOAD=${DATACRUMBS_BUILD_CLIENT_SO} - ${IOR_EXECUTABLE} -a POSIX -F -t 1m -b 32m -o ${DATACRUMBS_TEST_DIR}/ior_testfile - ) - add_test( - NAME ior_mpiio_collective_shared - COMMAND - ${MPIRUN_EXECUTABLE} -np 16 -x LD_PRELOAD=${DATACRUMBS_BUILD_CLIENT_SO} ${IOR_EXECUTABLE} -a - MPIIO -c -t 1m -b 32m -w -r -o ${DATACRUMBS_TEST_DIR}/ior_mpiio_testfile - ) - add_test( - NAME ior_hdf5_collective_shared - COMMAND - ${MPIRUN_EXECUTABLE} -np 16 -x LD_PRELOAD=${DATACRUMBS_BUILD_CLIENT_SO} ${IOR_EXECUTABLE} -a - HDF5 -C -t 1m -b 32m -w -r -o ${DATACRUMBS_TEST_DIR}/ior_hdf5_collective_testfile - ) - - add_test( - NAME ior_hdf5_file_per_process - COMMAND - ${MPIRUN_EXECUTABLE} -np 16 -x LD_PRELOAD=${DATACRUMBS_BUILD_CLIENT_SO} ${IOR_EXECUTABLE} -a - HDF5 -F -t 1m -b 32m -w -r -o ${DATACRUMBS_TEST_DIR}/ior_hdf5_fpp_testfile - ) -endif() diff --git a/tests/output/buffered_write.png b/tests/output/buffered_write.png deleted file mode 100755 index 5b7fe4cf73480f396b21b448178157cbc6260b7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90965 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 diff --git a/tests/output/direct_write.png b/tests/output/direct_write.png deleted file mode 100755 index 4a4706ca89cfa7350a925bd62dc9d2e104055ba6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88288 zcmcG$2RzsB{x|-S(ITNDl#);pl`SL+DHRowgjAAM_6`{dNg=XIq0D4tCL&2mR%9hJ zvI`mi=f(G||9#H+-S_=?+~?8vaVq+FkL!B9p6hk_9#d0dSi!!6LZL9IC@ZQ{C`%?N z6spK&boiS)47d33f09-Qw5&ADFId^?Up1l}(YLa=Vs3TC*kF^5(ba3l=4N|#O77ex zu<4SOmBlqFAtBShf5T4ms~3enum8CjAF|v+`Sdjkg;AgUN0lHKZ%m=0P*fDgxFxi9>@9vKxPI`Cy%LE&1B5AF^jWws0>g z5vE`GWiD{vHIK6Rd-{@mw)(`2Y+m~K6(-L4qjt~Y7v6IOSog1A_-nRqhH|NizrKIW z%P`Vm@vpt?OVZV3{`%DX4z2ho@*()uYH@YmhKkM0exkp>-(r5wIUzCedS{Mnp2Wh3 zC|~y(o*Xgk{qaNL;FAg4ktB_e!t+$WhuXZaUoS4wrC<1rC*?v~C)+xc^>I;CjF;H1ZdvDddhtS9g=^>|jaZES zuWy1}*Wz89OZ-20MoAj;A>SlcDFtqv&Gs8HrED^r&KFl?4@1Uqv z?=c!$+S%qe=g1v*ixx{w%s=<^q_N=izH{f!x=zmtiP>TxpJ35sSm5rrp5O$ z))f3Fd*!PaJ4Hp;O4|&$WoBCErTnN({Jdj3(^&q~r%z*IVusCGJr-Vj_G(9sdFI-> zI{gwahTi&Qj=T5n=^Gk)D0r{B?$h4izrxnmb~O{F{nI0*-kQfNPoN9AVMP>!jqyBmLgBCn*h)F7Sh!-o%V-@d)1{(E@X!s%{e=fTPgkGlx?Jo^ zquWs7pH*!xe*{zXiUOv_dOBx+w<#GIaQ_MZu6c*+qsFSrxLW1qlL4WrrPk7bU)rGHhAATRUi~9G^md@1U z8X5}c&-0jl&AI+jZk{vGX7F`=vJP!u_xJDZ?ZqCGQ$5j4TwH;bp+cRH0%h+!9XNjc zIJr7}llS}ghm-V*HaN(+-uL}{M)zhKXZn&rl#iH z#fwW>Sy}fwj4L1e-P?PKQ`U*CudmO^?$Rax{DK0@u6Jv1aY`~578cG}Z{51p!p6oc zIazS$*?gbLNxPYe2EE~5zd~~J@7=q{zheiB(?apE_hTB{zkU05Wgg~FcmcE>xUBD; zoeGMIOBpxv;8V1-uB=Z?NH}I=BgQrK_2o4hx0`-`v<*Ye*?|Irf_;6T;}sRZfB&vH z)?F2xdxp~cHfW2Y;)`oNYBjaBJidyrqXYf@x2|8metPVqoUhN@wzg<`28P6}tdKy% z3l|Q0EM@EtG`W0P`M`l2zXqEd3<^2K&EjO8r-#dni;H=7>`*0dq~zPTZ^{P`dSQ1r zC!tWt^m=o-toBSko#DmF$?4Rh`p1b!uHxQxlfRw~|$y5^h3;lS^K{e2MBpT8);#y62FjI{bGg#T%n7<4K1{!AgA|X}a=tBFsF{6fa53&y z(X!4rzkWS4*H~S>T1ralNPm4!K9(3-mQ&t^^XJ>KijJK;X?j)H%xvf3BS#`UargH@a?}g$vI(jwk@nd=1dbU~1 z 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

kIPbmgmK@+Cco-QI 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 diff --git a/tests/poc/bpf-core/.gitignore b/tests/poc/bpf-core/.gitignore deleted file mode 100644 index af25bebe..00000000 --- a/tests/poc/bpf-core/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -*.o -vmlinux.h -file -example -*.skel.h \ No newline at end of file diff --git a/tests/poc/bpf-core/Makefile b/tests/poc/bpf-core/Makefile deleted file mode 100644 index c565865d..00000000 --- a/tests/poc/bpf-core/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -TARGET := example -ARCH := $(shell uname -m | sed 's/x86_64/x86/' | sed 's/aarch64/arm64/') -BPF_SRCS := $(wildcard *.bpf.c) -BPF_OBJS := $(BPF_SRCS:.bpf.c=.bpf.o) -MERGED_OBJ := merged.bpf.o -SKEL := $(TARGET).skel.h -USER_C := $(TARGET).c - -all: vmlinux.h $(TARGET) - -$(BPF_OBJS): %.bpf.o: %.bpf.c - clang -target bpf -D __TARGET_ARCH_$(ARCH) -Wall -O2 -g -c $< -o $@ - llvm-strip -g $@ - -$(MERGED_OBJ): $(BPF_OBJS) - bpftool gen object $@ $(BPF_OBJS) - -$(SKEL): $(MERGED_OBJ) - bpftool gen skeleton $< > $@ - -$(TARGET): $(USER_C) $(SKEL) - gcc -Wall -o $@ $(USER_C) -L../libbpf/src -l:libbpf.so -lelf -lz - -vmlinux.h: - bpftool btf dump file /sys/kernel/btf/vmlinux format c > vmlinux.h - -clean: - - rm -f $(BPF_OBJS) $(MERGED_OBJ) $(SKEL) $(TARGET) diff --git a/tests/poc/bpf-core/example.c b/tests/poc/bpf-core/example.c deleted file mode 100644 index 4504493e..00000000 --- a/tests/poc/bpf-core/example.c +++ /dev/null @@ -1,62 +0,0 @@ -#include "example.h" - -#include -#include -#include -#include - -#include "example.skel.h" -static int libbpf_print_fn(enum libbpf_print_level level, const char* format, va_list args) { - if (level >= LIBBPF_DEBUG) return 0; - return vfprintf(stderr, format, args); -} -int handle_event(void* ctx, void* data, size_t data_sz) { - struct event_t* m = data; - if (m->pid == 0 || m->event_id == 0) { - return 0; - } - printf("%-6d %-6u\n", m->pid, m->event_id); - return 0; -} -void lost_event(void* ctx, int cpu, long long unsigned int data_sz) { - printf("lost event\n"); -} -int main() { - struct merged_bpf* skel; - int err; - struct ring_buffer* rb = NULL; - libbpf_set_print(libbpf_print_fn); - skel = merged_bpf__open_and_load(); - if (!skel) { - printf("Failed to open BPF object\n"); - return 1; - } - err = merged_bpf__attach(skel); - if (err) { - fprintf(stderr, "Failed to attach BPF skeleton: %d\n", err); - merged_bpf__destroy(skel); - return 1; - } - rb = ring_buffer__new(bpf_map__fd(skel->maps.output), handle_event, NULL, NULL); - if (!rb) { - err = -1; - fprintf(stderr, "Failed to create ring buffer\n"); - merged_bpf__destroy(skel); - return 1; - } - while (true) { - err = ring_buffer__poll(rb, 30000); - // Ctrl-C gives -EINTR - if (err == -EINTR) { - err = 0; - break; - } - if (err < 0) { - printf("Error polling ring buffer: %d\n", err); - break; - } - } - ring_buffer__free(rb); - merged_bpf__destroy(skel); - return -err; -} \ No newline at end of file diff --git a/tests/poc/bpf-core/example.generic.bpf.c b/tests/poc/bpf-core/example.generic.bpf.c deleted file mode 100644 index 1b9d2004..00000000 --- a/tests/poc/bpf-core/example.generic.bpf.c +++ /dev/null @@ -1,19 +0,0 @@ -// map_def.c -#include "vmlinux.h" -// -#include -// -#include -// -#include -// -#include - -#define DATACRUMBS_BPF_RING_BUF(name) \ - struct { \ - __uint(type, BPF_MAP_TYPE_RINGBUF); \ - __uint(max_entries, 1024 * 1024); \ - } name SEC(".maps"); - -// anonymous struct assigned to rb variable -DATACRUMBS_BPF_RING_BUF(output); diff --git a/tests/poc/bpf-core/example.generic.bpf.h b/tests/poc/bpf-core/example.generic.bpf.h deleted file mode 100644 index d775783d..00000000 --- a/tests/poc/bpf-core/example.generic.bpf.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef __EXAMPLE_GENERIC_H -#define __EXAMPLE_GENERIC_H - -#include "vmlinux.h" -// -#include -// -#include -// -#include -// -#include -// -#include "example.h" - -#define DATACRUMBS_BPF_RING_BUF(name) \ - extern struct { \ - __uint(type, BPF_MAP_TYPE_RINGBUF); \ - __uint(max_entries, 1024 * 1024); \ - } name SEC(".maps"); - -struct lpm_key { - __u32 prefixlen; - __u32 addr; -}; - -// Define the value structure for the LPM_TRIE. -// This can be any data type, like an integer. -typedef int lpm_value_t; - -extern struct { - __uint(type, BPF_MAP_TYPE_LPM_TRIE); - __uint(max_entries, 256); - __type(key, struct lpm_key); - __type(value, lpm_value_t); - __uint(map_flags, BPF_F_NO_PREALLOC); - __uint(pinning, LIBBPF_PIN_BY_NAME); -} lpm_trie_map SEC(".maps"); - -// anonymous struct assigned to rb variable -DATACRUMBS_BPF_RING_BUF(output); - -static inline __attribute__((always_inline)) int generic_call(int event_id) { - struct event_t* evt; - evt = bpf_ringbuf_reserve(&output, sizeof(*evt), 0); - if (!evt) { - bpf_printk("Failed to reserve space in ring buffer\n"); - return 0; - } - unsigned long id = bpf_get_current_pid_tgid(); - int pid = id; - evt->pid = pid; - evt->event_id = event_id; - bpf_ringbuf_submit(evt, 0); - bpf_printk("Tracing function %d PID %d", event_id, pid); - return 0; -} - -char LICENSE[] SEC("license") = "Dual BSD/GPL"; -#endif // __EXAMPLE_GENERIC_H \ No newline at end of file diff --git a/tests/poc/bpf-core/example.h b/tests/poc/bpf-core/example.h deleted file mode 100644 index 7506fe81..00000000 --- a/tests/poc/bpf-core/example.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef EXAMPLE_H -#define EXAMPLE_H - -struct event_t { - int pid; - int event_id; -}; - -#endif \ No newline at end of file diff --git a/tests/poc/bpf-core/example.kprobe.bpf.c b/tests/poc/bpf-core/example.kprobe.bpf.c deleted file mode 100644 index 83f81869..00000000 --- a/tests/poc/bpf-core/example.kprobe.bpf.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "example.generic.bpf.h" - -SEC("kprobe/vfs_write") -int BPF_KPROBE(vfs_write_entry) { - generic_call(3); - return 0; -} -SEC("kretprobe/vfs_write") -int BPF_KRETPROBE(vfs_write_exit) { - generic_call(4); - return 0; -} \ No newline at end of file diff --git a/tests/poc/bpf-core/example.syscall.bpf.c b/tests/poc/bpf-core/example.syscall.bpf.c deleted file mode 100644 index 01ef2097..00000000 --- a/tests/poc/bpf-core/example.syscall.bpf.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "example.generic.bpf.h" -SEC("ksyscall/openat") -int BPF_KPROBE(openat_entry, struct pt_regs* regs) { - generic_call(1); - return 0; -} -SEC("kretsyscall/openat") -int BPF_KRETPROBE(openat_exit, struct pt_regs* regs) { - generic_call(2); - return 0; -} \ No newline at end of file diff --git a/tests/poc/bpf-core/example.uprobe.bpf.c b/tests/poc/bpf-core/example.uprobe.bpf.c deleted file mode 100644 index 28aa4c09..00000000 --- a/tests/poc/bpf-core/example.uprobe.bpf.c +++ /dev/null @@ -1,12 +0,0 @@ - -#include "example.generic.bpf.h" -SEC("uprobe//usr/lib64/libc.so.6:open") -int BPF_UPROBE(open_entry, struct pt_regs* regs) { - generic_call(5); - return 0; -} -SEC("uretprobe//usr/lib64/libc.so.6:open") -int BPF_URETPROBE(open_exit, struct pt_regs* regs) { - generic_call(6); - return 0; -} \ No newline at end of file diff --git a/tests/poc/bpf-core/example.usdt.bpf.c b/tests/poc/bpf-core/example.usdt.bpf.c deleted file mode 100644 index cfc88b5b..00000000 --- a/tests/poc/bpf-core/example.usdt.bpf.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "example.generic.bpf.h" -SEC("usdt//usr/lib64/libpython3.11.so:python:function__entry") -int BPF_USDT(python_function_entry, void* class, void* function) { - generic_call(7); - return 0; -} -SEC("usdt//usr/lib64/libpython3.11.so:python:function__return") -int BPF_USDT(python_function_return, void* class, void* function) { - generic_call(8); - return 0; -} \ No newline at end of file diff --git a/tests/poc/bpf-time/.gitignore b/tests/poc/bpf-time/.gitignore deleted file mode 100644 index dc4e339e..00000000 --- a/tests/poc/bpf-time/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*.o -vmlinux.h -file -example -*.skel.h -malloc -victim \ No newline at end of file diff --git a/tests/poc/bpf-time/Makefile b/tests/poc/bpf-time/Makefile deleted file mode 100644 index 59ce3e37..00000000 --- a/tests/poc/bpf-time/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -# Define the names of our source and output files -TARGET = victim -BPF_PROG_NAME = malloc -BPF_PROG_SRC = $(BPF_PROG_NAME).bpf.c -BPF_PROG_OBJ = $(BPF_PROG_NAME).bpf.o -BPF_LOADER_SRC = $(BPF_PROG_NAME).c -BPF_LOADER = $(BPF_PROG_NAME) -BPF_SKEL = $(BPF_PROG_NAME).skel.h - -# C compiler and flags for the user-space programs -CC ?= gcc -CLANG ?= clang -CFLAGS ?= -Wall -O2 -g -LDFLAGS ?= -l:libbpf.so -lrt -lz -lelf -ldl -lpthread - -# BPF compiler and flags -BPF_CFLAGS = -Wall -O2 -g -target bpf -# Generate vmlinux.h from the current kernel's BTF data -VMLINUX_H_PATH = ./vmlinux.h - -# BPFTOOL for generating the skeleton header -BPFTOOL ?= bpftool - -# libbpf and headers location -LIBBPF_DIR ?= $(PREFIX) -LIBBPF_INCLUDE = $(LIBBPF_DIR)/include -LIBBPF_LIB = $(LIBBPF_DIR)/lib64 -ARCH := $(shell uname -m | sed 's/x86_64/x86/' | sed 's/aarch64/arm64/') - -# Build rule for all targets -all: $(TARGET) $(BPF_LOADER) - -# Rule to compile the victim application -$(TARGET): victim.c - $(CC) $(CFLAGS) $< -o $@ - -# Rule to generate vmlinux.h for BPF compilation -$(VMLINUX_H_PATH): - @echo "Generating $(VMLINUX_H_PATH)..." - $(BPFTOOL) btf dump file /sys/kernel/btf/vmlinux format c > $@ - -# Rule to compile the BPF program -$(BPF_PROG_OBJ): $(BPF_PROG_SRC) $(VMLINUX_H_PATH) - $(CLANG) $(BPF_CFLAGS) -D __TARGET_ARCH_$(ARCH) -I$(LIBBPF_INCLUDE) -I. -c $< -o $@ - -# Rule to generate the BPF skeleton header -$(BPF_SKEL): $(BPF_PROG_OBJ) - $(BPFTOOL) gen skeleton $< > $@ - -# Rule to compile the user-space loader -$(BPF_LOADER): $(BPF_LOADER_SRC) $(BPF_SKEL) - $(CC) $(CFLAGS) -I$(LIBBPF_INCLUDE) -o $@ $(BPF_LOADER_SRC) $(LIBBPF_LIB)/libbpf.so $(LDFLAGS) - -# Clean up all generated files -clean: - rm -f $(TARGET) $(BPF_LOADER) $(BPF_PROG_OBJ) $(BPF_SKEL) $(VMLINUX_H_PATH) diff --git a/tests/poc/bpf-time/malloc.bpf.c b/tests/poc/bpf-time/malloc.bpf.c deleted file mode 100644 index 6d15e7d9..00000000 --- a/tests/poc/bpf-time/malloc.bpf.c +++ /dev/null @@ -1,30 +0,0 @@ -// malloc.bpf.c - -#include "vmlinux.h" -// -#include -// -#include -// -#include -// -#include -// - -// BPF map to store the count of malloc calls -struct { - __uint(type, BPF_MAP_TYPE_ARRAY); - __uint(max_entries, 1); - __type(key, __u32); - __type(value, __u64); -} counts SEC(".maps"); - -SEC("uprobe//usr/lib64/libc.so.6:malloc") -int BPF_UPROBE(malloc_probe, struct pt_regs* regs) { - __u32 key = 0; - __u64* count = bpf_map_lookup_elem(&counts, &key); - if (count) { - (*count)++; - } - return 0; -} diff --git a/tests/poc/bpf-time/malloc.c b/tests/poc/bpf-time/malloc.c deleted file mode 100644 index abfea97d..00000000 --- a/tests/poc/bpf-time/malloc.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include -#include -#include - -#include "malloc.skel.h" - -int main(int argc, char* argv[]) { - struct malloc_bpf* skel; - int err; - - skel = malloc_bpf__open_and_load(); - if (!skel) { - fprintf(stderr, "Failed to open and load BPF skeleton\n"); - return 1; - } - - err = malloc_bpf__attach(skel); - if (err) { - fprintf(stderr, "Failed to attach BPF program\n"); - goto cleanup; - } - - printf("Successfully started! Watching malloc calls...\n"); - - while (1) { - sleep(2); - __u32 key = 0; - __u64 count; - bpf_map_lookup_elem(bpf_map__fd(skel->maps.counts), &key, &count); - printf("malloc calls: %llu\n", count); - } - -cleanup: - malloc_bpf__destroy(skel); - return -err; -} diff --git a/tests/poc/bpf-time/victim.c b/tests/poc/bpf-time/victim.c deleted file mode 100644 index fcd71234..00000000 --- a/tests/poc/bpf-time/victim.c +++ /dev/null @@ -1,16 +0,0 @@ -// victim.c -#include -#include -#include - -int main() { - while (1) { - // Repeatedly allocate and free memory - void* ptr = malloc(1024); - if (ptr) { - free(ptr); - } - sleep(1); - } - return 0; -} diff --git a/tests/poc/notes.MD b/tests/poc/notes.MD deleted file mode 100644 index 01aa8585..00000000 --- a/tests/poc/notes.MD +++ /dev/null @@ -1,7 +0,0 @@ -# Notes - -## Get all kernel symbols defined - -```bash -cat /proc/kallsyms | grep 'inode_add_lru' -``` \ No newline at end of file diff --git a/tests/poc/test.c b/tests/poc/test.c deleted file mode 100644 index f80f547a..00000000 --- a/tests/poc/test.c +++ /dev/null @@ -1,4 +0,0 @@ -#include -int main() { - DTRACE_PROBE("hello-usdt", probe - main); -} \ No newline at end of file diff --git a/tests/poc/test.py b/tests/poc/test.py deleted file mode 100755 index f82ab47b..00000000 --- a/tests/poc/test.py +++ /dev/null @@ -1,13 +0,0 @@ -def test_one(): - print("Running test_one") - test_two() - -def test_two(): - print("Running test_two") - test_three() - -def test_three(): - print("Running test_three") - -if __name__ == "__main__": - test_one() \ No newline at end of file diff --git a/tests/poc/uprobes.py b/tests/poc/uprobes.py deleted file mode 100755 index b73797c5..00000000 --- a/tests/poc/uprobes.py +++ /dev/null @@ -1,379 +0,0 @@ -#!/usr/bin/python -# @lint-avoid-python-3-compatibility-imports -# -# ucalls Summarize method calls in high-level languages and/or system calls. -# For Linux, uses BCC, eBPF. -# -# USAGE: ucalls [-l {java,perl,php,python,ruby,tcl}] [-h] [-T TOP] [-L] [-S] [-v] [-m] -# pid [interval] -# -# Copyright 2016 Sasha Goldshtein -# Licensed under the Apache License, Version 2.0 (the "License") -# -# 19-Oct-2016 Sasha Goldshtein Created this. - -from __future__ import print_function -import argparse -from time import sleep -from bcc import BPF, USDT, utils -from bcc.syscall import syscall_name - -languages = ["java", "perl", "php", "python", "ruby", "tcl"] - -examples = """examples: - ./ucalls -l java 185 # trace Java calls and print statistics on ^C - ./ucalls -l python 2020 1 # trace Python calls and print every second - ./ucalls -l java 185 -S # trace Java calls and syscalls - ./ucalls 6712 -S # trace only syscall counts - ./ucalls -l ruby 1344 -T 10 # trace top 10 Ruby method calls - ./ucalls -l ruby 1344 -L # trace Ruby calls including latency - ./ucalls -l php 443 -LS # trace PHP calls and syscalls with latency - ./ucalls -l python 2020 -mL # trace Python calls including latency in ms -""" -parser = argparse.ArgumentParser( - description="Summarize method calls in high-level languages.", - formatter_class=argparse.RawDescriptionHelpFormatter, - epilog=examples) -parser.add_argument("pid", type=int, help="process id to attach to") -parser.add_argument("interval", type=int, nargs='?', - help="print every specified number of seconds") -parser.add_argument("-l", "--language", choices=languages + ["none"], - help="language to trace (if none, trace syscalls only)") -parser.add_argument("-T", "--top", type=int, - help="number of most frequent/slow calls to print") -parser.add_argument("-L", "--latency", action="store_true", - help="record method latency from enter to exit (except recursive calls)") -parser.add_argument("-S", "--syscalls", action="store_true", - help="record syscall latency (adds overhead)") -parser.add_argument("-v", "--verbose", action="store_true", - help="verbose mode: print the BPF program (for debugging purposes)") -parser.add_argument("-m", "--milliseconds", action="store_true", - help="report times in milliseconds (default is microseconds)") -parser.add_argument("--ebpf", action="store_true", - help=argparse.SUPPRESS) -args = parser.parse_args() - -language = args.language -if not language: - language = utils.detect_language(languages, args.pid) - -# We assume that the entry and return probes have the same arguments. This is -# the case for Java, Python, Ruby, and PHP. If there's a language where it's -# not the case, we will need to build a custom correlator from entry to exit. -extra_message = "" -if language == "java": - # TODO for JVM entries, we actually have the real length of the class - # and method strings in arg3 and arg5 respectively, so we can insert - # the null terminator in its proper position. - entry_probe = "method__entry" - return_probe = "method__return" - read_class = "bpf_usdt_readarg(2, ctx, &clazz);" - read_method = "bpf_usdt_readarg(4, ctx, &method);" - extra_message = ("If you do not see any results, make sure you ran java" - " with option -XX:+ExtendedDTraceProbes") -elif language == "perl": - entry_probe = "sub__entry" - return_probe = "sub__return" - read_class = "bpf_usdt_readarg(2, ctx, &clazz);" # filename really - read_method = "bpf_usdt_readarg(1, ctx, &method);" -elif language == "php": - entry_probe = "function__entry" - return_probe = "function__return" - read_class = "bpf_usdt_readarg(4, ctx, &clazz);" - read_method = "bpf_usdt_readarg(1, ctx, &method);" - extra_message = ("If you do not see any results, make sure the environment" - " variable USE_ZEND_DTRACE is set to 1") -elif language == "python": - entry_probe = "function__entry" - return_probe = "function__return" - read_class = "bpf_usdt_readarg(1, ctx, &clazz);" # filename really - read_method = "bpf_usdt_readarg(2, ctx, &method);" -elif language == "ruby": - # TODO Also probe cmethod__entry and cmethod__return with same arguments - entry_probe = "method__entry" - return_probe = "method__return" - read_class = "bpf_usdt_readarg(1, ctx, &clazz);" - read_method = "bpf_usdt_readarg(2, ctx, &method);" -elif language == "tcl": - # TODO Also consider probe cmd__entry and cmd__return with same arguments - entry_probe = "proc__entry" - return_probe = "proc__return" - read_class = "" # no class/file info available - read_method = "bpf_usdt_readarg(1, ctx, &method);" -elif not language or language == "none": - if not args.syscalls: - print("Nothing to do; use -S to trace syscalls.") - exit(1) - entry_probe, return_probe, read_class, read_method = ("", "", "", "") - if language: - language = None - -program = """ -#include - -#define MAX_STRING_LENGTH 80 -DEFINE_NOLANG -DEFINE_LATENCY -DEFINE_SYSCALLS - -struct method_t { - char clazz[MAX_STRING_LENGTH]; - char method[MAX_STRING_LENGTH]; -}; -struct entry_t { - u64 pid; - struct method_t method; -}; -struct info_t { - u64 num_calls; - u64 total_ns; -}; -struct syscall_entry_t { - u64 timestamp; - u64 id; -}; - -#ifndef LATENCY - BPF_HASH(counts, struct method_t, u64); // number of calls - #ifdef SYSCALLS - BPF_HASH(syscounts, u64, u64); // number of calls per IP - #endif // SYSCALLS -#else - BPF_HASH(times, struct method_t, struct info_t); - BPF_HASH(entry, struct entry_t, u64); // timestamp at entry - #ifdef SYSCALLS - BPF_HASH(systimes, u64, struct info_t); // latency per IP - BPF_HASH(sysentry, u64, struct syscall_entry_t); // ts + IP at entry - #endif // SYSCALLS -#endif - -#ifndef NOLANG -int trace_entry(struct pt_regs *ctx) { - u64 clazz = 0, method = 0, val = 0; - u64 *valp; - struct entry_t data = {0}; -#ifdef LATENCY - u64 timestamp = bpf_ktime_get_ns(); - data.pid = bpf_get_current_pid_tgid(); -#endif - READ_CLASS - READ_METHOD - bpf_probe_read_user(&data.method.clazz, sizeof(data.method.clazz), - (void *)clazz); - bpf_probe_read_user(&data.method.method, sizeof(data.method.method), - (void *)method); -#ifndef LATENCY - valp = counts.lookup_or_try_init(&data.method, &val); - if (valp) { - ++(*valp); - } -#endif -#ifdef LATENCY - entry.update(&data, ×tamp); -#endif - return 0; -} - -#ifdef LATENCY -int trace_return(struct pt_regs *ctx) { - u64 *entry_timestamp, clazz = 0, method = 0; - struct info_t *info, zero = {}; - struct entry_t data = {}; - data.pid = bpf_get_current_pid_tgid(); - READ_CLASS - READ_METHOD - bpf_probe_read_user(&data.method.clazz, sizeof(data.method.clazz), - (void *)clazz); - bpf_probe_read_user(&data.method.method, sizeof(data.method.method), - (void *)method); - entry_timestamp = entry.lookup(&data); - if (!entry_timestamp) { - return 0; // missed the entry event - } - info = times.lookup_or_try_init(&data.method, &zero); - if (info) { - info->num_calls += 1; - info->total_ns += bpf_ktime_get_ns() - *entry_timestamp; - } - entry.delete(&data); - return 0; -} -#endif // LATENCY -#endif // NOLANG - -#ifdef SYSCALLS -TRACEPOINT_PROBE(raw_syscalls, sys_enter) { - u64 pid = bpf_get_current_pid_tgid(); - u64 *valp, id = args->id, val = 0; - PID_FILTER -#ifdef LATENCY - struct syscall_entry_t data = {}; - data.timestamp = bpf_ktime_get_ns(); - data.id = id; - sysentry.update(&pid, &data); -#endif -#ifndef LATENCY - valp = syscounts.lookup_or_try_init(&id, &val); - if (valp) { - ++(*valp); - } -#endif - return 0; -} - -#ifdef LATENCY -TRACEPOINT_PROBE(raw_syscalls, sys_exit) { - struct syscall_entry_t *e; - struct info_t *info, zero = {}; - u64 pid = bpf_get_current_pid_tgid(), id; - PID_FILTER - e = sysentry.lookup(&pid); - if (!e) { - return 0; // missed the entry event - } - id = e->id; - info = systimes.lookup_or_try_init(&id, &zero); - if (info) { - info->num_calls += 1; - info->total_ns += bpf_ktime_get_ns() - e->timestamp; - } - sysentry.delete(&pid); - return 0; -} -#endif // LATENCY -#endif // SYSCALLS -""" - -first = program.replace("READ_CLASS", read_class) \ - .replace("READ_METHOD", read_method) \ - .replace("PID_FILTER", "if ((pid >> 32) != %d) { return 0; }" % args.pid) \ - .replace("DEFINE_NOLANG", "#define NOLANG" if not language else "") \ - .replace("DEFINE_LATENCY", "#define LATENCY" if args.latency else "") \ - .replace("DEFINE_SYSCALLS", "") - -second = program.replace("READ_CLASS", "") \ - .replace("READ_METHOD", "") \ - .replace("PID_FILTER", "if ((pid >> 32) != %d) { return 0; }" % args.pid) \ - .replace("DEFINE_NOLANG", "") \ - .replace("DEFINE_LATENCY", "") \ - .replace("DEFINE_SYSCALLS", "#define SYSCALLS") - -if language: - if args.pid <= 0: - usdt = USDT(path="/home/haridev/spack/opt/spack/linux-haswell/python-3.10.16-3kectflt2q6nzv4k2dyaxbfegydlaxpk/lib/libpython3.10.so") - else: - usdt = USDT(pid=args.pid) - usdt.enable_probe(entry_probe, "trace_entry") - if args.latency: - usdt.enable_probe_or_bail(return_probe, "trace_return") -else: - usdt = None - -if args.ebpf or args.verbose: - if args.verbose and usdt: - print(usdt.get_text()) - print(program) - if args.ebpf: - exit() -bpf2 = BPF(text=second) -bpf = BPF(text=first, usdt_contexts=[usdt] if usdt else []) -if args.syscalls: - print("Attached kernel tracepoints for syscall tracing.") - -def get_data(): - # Will be empty when no language was specified for tracing - if args.latency: - data = list(map(lambda kv: (kv[0].clazz.decode('utf-8', 'replace') \ - + "." + \ - kv[0].method.decode('utf-8', 'replace'), - (kv[1].num_calls, kv[1].total_ns)), - bpf["times"].items())) - if "times" in bpf2: - data.extend(map(lambda kv: (kv[0].clazz.decode('utf-8', 'replace') \ - + "." + \ - kv[0].method.decode('utf-8', 'replace'), - (kv[1].num_calls, kv[1].total_ns)), - bpf2["times"].items())) - else: - data = list(map(lambda kv: (kv[0].clazz.decode('utf-8', 'replace') \ - + "." + \ - kv[0].method.decode('utf-8', 'replace'), - (kv[1].value, 0)), - bpf["counts"].items())) - if "counts" in bpf2: - data.extend(map(lambda kv: (kv[0].clazz.decode('utf-8', 'replace') \ - + "." + \ - kv[0].method.decode('utf-8', 'replace'), - (kv[1].value, 0)), - bpf2["counts"].items())) - - if args.syscalls: - if args.latency: - # syscalls = map(lambda kv: (syscall_name(kv[0].value).decode('utf-8', 'replace'), - # (kv[1].num_calls, kv[1].total_ns)), - # bpf["systimes"].items()) - # data.extend(syscalls) - if "systimes" in bpf2: - data.extend(map(lambda kv: (syscall_name(kv[0].value).decode('utf-8', 'replace'), - (kv[1].num_calls, kv[1].total_ns)), - bpf2["systimes"].items())) - else: - syscalls = map(lambda kv: (syscall_name(kv[0].value).decode('utf-8', 'replace'), - (kv[1].value, 0)), - bpf["syscounts"].items()) - data.extend(syscalls) - if "syscounts" in bpf2: - data.extend(map(lambda kv: (syscall_name(kv[0].value).decode('utf-8', 'replace'), - (kv[1].value, 0)), - bpf2["syscounts"].items())) - - return sorted(data, key=lambda kv: kv[1][1 if args.latency else 0]) - -def clear_data(): - if args.latency: - bpf["times"].clear() - bpf2["times"].clear() - else: - bpf["counts"].clear() - bpf2["counts"].clear() - - if args.syscalls: - if args.latency: - bpf["systimes"].clear() - bpf2["systimes"].clear() - else: - bpf["syscounts"].clear() - bpf2["syscounts"].clear() - -exit_signaled = False -print("Tracing calls in process %d (language: %s)... Ctrl-C to quit." % - (args.pid, language or "none")) -if extra_message: - print(extra_message) -while True: - try: - sleep(args.interval or 99999999) - except KeyboardInterrupt: - exit_signaled = True - print() - data = get_data() # [(function, (num calls, latency in ns))] - if args.latency: - time_col = "TIME (ms)" if args.milliseconds else "TIME (us)" - print("%-50s %8s %8s" % ("METHOD", "# CALLS", time_col)) - else: - print("%-50s %8s" % ("METHOD", "# CALLS")) - if args.top: - data = data[-args.top:] - for key, value in data: - if args.latency: - time = value[1] / 1000000.0 if args.milliseconds else \ - value[1] / 1000.0 - print("%-50s %8d %6.2f" % (key, value[0], time)) - else: - print("%-50s %8d" % (key, value[0])) - if args.interval and not exit_signaled: - clear_data() - else: - if args.syscalls: - print("Detaching kernel probes, please wait...") - exit() \ No newline at end of file diff --git a/tests/unittests/CMakeLists.txt b/tests/unittests/CMakeLists.txt deleted file mode 100644 index bbe09f72..00000000 --- a/tests/unittests/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ -add_subdirectory(io_tests) diff --git a/tests/unittests/component/compress_decompress_zlib.cpp b/tests/unittests/component/compress_decompress_zlib.cpp deleted file mode 100644 index 5b7d4f04..00000000 --- a/tests/unittests/component/compress_decompress_zlib.cpp +++ /dev/null @@ -1,133 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include - -// Compresses input data using zlib -std::vector compress_zlib(const std::vector& data) { - // Use zlib's deflate with gzip header - z_stream strm = {}; - int res = deflateInit2(&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED, 15 + 16, 8, Z_DEFAULT_STRATEGY); - assert(res == Z_OK); - - std::vector compressed; - compressed.resize(compressBound(data.size())); - - strm.next_in = const_cast(data.data()); - strm.avail_in = data.size(); - strm.next_out = compressed.data(); - strm.avail_out = compressed.size(); - - do { - res = deflate(&strm, Z_FINISH); - if (res == Z_OK) { - // Output buffer was too small, increase size and continue - size_t old_size = compressed.size(); - compressed.resize(old_size * 2); - strm.next_out = compressed.data() + old_size; - strm.avail_out = old_size; - } - } while (res == Z_OK); - - assert(res == Z_STREAM_END); - - compressed.resize(strm.total_out); - deflateEnd(&strm); - return compressed; -} - -// Decompresses input data using zlib (gzip compatible) -std::vector decompress_zlib(const std::vector& compressed, size_t original_size) { - z_stream strm = {}; - int res = inflateInit2(&strm, 15 + 16); // 15 window bits + 16 for gzip - assert(res == Z_OK); - - std::vector decompressed(original_size); - - strm.next_in = const_cast(compressed.data()); - strm.avail_in = compressed.size(); - strm.next_out = decompressed.data(); - strm.avail_out = decompressed.size(); - - res = inflate(&strm, Z_FINISH); - assert(res == Z_STREAM_END || res == Z_OK); - - decompressed.resize(strm.total_out); - inflateEnd(&strm); - return decompressed; -} - -// Read file into vector using C APIs -std::vector read_file(const std::string& filename) { - FILE* infile = fopen(filename.c_str(), "rb"); - assert(infile != nullptr); - fseek(infile, 0, SEEK_END); - size_t size = ftell(infile); - fseek(infile, 0, SEEK_SET); - std::vector buffer(size); - size_t read = fread(buffer.data(), 1, size, infile); - assert(read == size); - fclose(infile); - return buffer; -} - -// Write vector to file using C APIs -void write_file(const std::string& filename, const std::vector& data) { - FILE* outfile = fopen(filename.c_str(), "wb"); - assert(outfile != nullptr); - setvbuf(outfile, nullptr, _IOFBF, 8192); // Enable line buffering - size_t written = fwrite(data.data(), 1, data.size(), outfile); - assert(written == data.size()); - fclose(outfile); -} - -int main(int argc, char* argv[]) { - if (argc == 4 && std::string(argv[1]) == "compress") { - // Usage: compress - std::vector input_data = read_file(argv[2]); - std::vector compressed = compress_zlib(input_data); - write_file(argv[3], compressed); - std::cout << "File compressed: " << argv[2] << " -> " << argv[3] << std::endl; - return 0; - } - - if (argc == 5 && std::string(argv[1]) == "decompress") { - // Usage: decompress - std::vector compressed = read_file(argv[2]); - size_t original_size = std::stoull(argv[4]); - std::vector decompressed = decompress_zlib(compressed, original_size); - write_file(argv[3], decompressed); - std::cout << "File decompressed: " << argv[2] << " -> " << argv[3] << std::endl; - return 0; - } - - if (argc == 4 && std::string(argv[1]) == "compress_str") { - // Usage: compress_str - std::string input_str = argv[2]; - std::vector input_data(input_str.begin(), input_str.end()); - std::vector compressed = compress_zlib(input_data); - write_file(argv[3], compressed); - std::cout << "String compressed and written to: " << argv[3] << std::endl; - return 0; - } - - if (argc == 4 && std::string(argv[1]) == "decompress_to_stdout") { - // Usage: decompress_to_stdout - std::vector compressed = read_file(argv[2]); - size_t original_size = std::stoull(argv[3]); - std::vector decompressed = decompress_zlib(compressed, original_size); - std::cout << std::string(decompressed.begin(), decompressed.end()) << std::endl; - return 0; - } - - std::cerr << "Usage:\n" - << " " << argv[0] << " compress \n" - << " " << argv[0] << " decompress \n" - << " " << argv[0] << " compress_str \n" - << " " << argv[0] << " decompress_to_stdout \n"; - return 1; -} \ No newline at end of file diff --git a/tests/unittests/component/elf_capture_test.cpp b/tests/unittests/component/elf_capture_test.cpp deleted file mode 100644 index 5c54c091..00000000 --- a/tests/unittests/component/elf_capture_test.cpp +++ /dev/null @@ -1,24 +0,0 @@ - -#include "elf_capture.h" - -#include - -int main(int argc, char* argv[]) { - if (argc != 2) { - std::cerr << "Usage: " << argv[0] << " \n"; - return 1; - } - - try { - ElfSymbolExtractor extractor(argv[1]); - auto symbols = extractor.extract_symbols(); - for (const auto& sym : symbols) { - std::cout << sym << '\n'; - } - } catch (const std::exception& ex) { - std::cerr << "Error: " << ex.what() << '\n'; - return 1; - } - - return 0; -} \ No newline at end of file diff --git a/tests/unittests/component/header_capture_test.cpp b/tests/unittests/component/header_capture_test.cpp deleted file mode 100644 index 41ed5f69..00000000 --- a/tests/unittests/component/header_capture_test.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "header_capture.h" - -int main(int argc, char* argv[]) { - if (argc < 2) { - std::cerr << "Usage: " << argv[0] << " " << std::endl; - return 1; - } - - HeaderFunctionExtractor extractor(argv[1]); - std::vector functionNames = extractor.extractFunctionNames(); - - std::cout << "Functions found in header:" << std::endl; - for (const auto& name : functionNames) { - std::cout << name << std::endl; - } - - return 0; -} \ No newline at end of file diff --git a/tests/unittests/component/ksym_capture_test.cpp b/tests/unittests/component/ksym_capture_test.cpp deleted file mode 100644 index 547ed3de..00000000 --- a/tests/unittests/component/ksym_capture_test.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "ksym_capture.h" -int main() { - KSymCapture ksym; - std::string pattern; - std::cout << "Enter regex pattern to search for kernel symbols: "; - std::getline(std::cin, pattern); - - auto matches = ksym.getFunctionsByRegex(pattern); - std::cout << "Matched functions:\n"; - for (const auto& func : matches) { - std::cout << func << '\n'; - } - return 0; -} \ No newline at end of file diff --git a/tests/unittests/component/probe_explorer_test.cpp b/tests/unittests/component/probe_explorer_test.cpp deleted file mode 100644 index 18d0f9df..00000000 --- a/tests/unittests/component/probe_explorer_test.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#include - -int main(int argc, char** argv) { - datacrumbs::ProbeExplorer explorer(argc, argv); - auto probes = explorer.extractProbes(); - - for (const auto& probe : probes) { - std::cout << "Probe: " << probe.name << "\n"; - int i = 0; - for (const auto& value : probe.functions) { - std::cout << " Value: " << value << "\n"; - if (i++ > 10) { - std::cout << " ... (truncated)" << std::endl; - break; - } - } - } - return 0; -} - -/** - * g++ -std=c++14 probe_explorer_test.cpp probe_explorer.cpp -o probe_explorer_test - * -I/home/haridev/datacrumbs/src -lelf `llvm-config --cxxflags --ldflags --system-libs --libs - * core` -lclang - */ \ No newline at end of file diff --git a/tests/unittests/io_tests/CMakeLists.txt b/tests/unittests/io_tests/CMakeLists.txt deleted file mode 100644 index 46d0aa5e..00000000 --- a/tests/unittests/io_tests/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -find_package(MPI) - -if(MPI_FOUND) - find_program(MPIRUN_EXECUTABLE mpirun) - - if(MPIRUN_EXECUTABLE) - message(STATUS "Found mpirun: ${MPIRUN_EXECUTABLE}") - set(ENABLE_MPIRUN_TEST ON) - else() - message(STATUS "mpirun binary not found. mpirun tests will be disabled.") - set(ENABLE_MPIRUN_TEST OFF) - endif() - - add_executable(df_tracer_test test.cpp) - target_link_libraries(df_tracer_test MPI::MPI_CXX) - add_executable(df_tracer_test_stdio test_stdio.cpp) - target_link_libraries(df_tracer_test_stdio MPI::MPI_CXX) -endif() diff --git a/tests/unittests/io_tests/images/read.png b/tests/unittests/io_tests/images/read.png deleted file mode 100755 index 53aae84f005847b06bba6442bd8e7f6cb35cdeb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35310 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 diff --git a/tests/unittests/io_tests/images/write.png b/tests/unittests/io_tests/images/write.png deleted file mode 100755 index afb20168280c21e1174ce1b90eccb4ce3089bc79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74095 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 ay=!I@36C%L$tscHkC>3OU?Kn8kN*qdR8uJc diff --git a/tests/unittests/io_tests/scripts/ior.sh b/tests/unittests/io_tests/scripts/ior.sh deleted file mode 100755 index 3a88748e..00000000 --- a/tests/unittests/io_tests/scripts/ior.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]:-$0}")" &>/dev/null && pwd 2>/dev/null)" -echo $SCRIPT_DIR -TEST_DIR=$(dirname $SCRIPT_DIR) -PROJECT_DIR=$(dirname $TEST_DIR) -PARENT_DIR=$(dirname $PROJECT_DIR) -DATA_DIR=${PROJECT_DIR}/build/data -DROP_CACHES=1 -mkdir -p $DATA_DIR -rm -rf $DATA_DIR/* -BLOCK=$1 -if [ -z "$1" ]; then - BLOCK=8g -fi -TRANSFER_SIZE=$2 -if [ -z "$2" ]; then - TRANSFER_SIZE=1m -fi -TOOL=$3 -if [ -z "$3" ]; then - TOOL=DATACRUMBS -fi -if [ "$TOOL" == "DATACRUMBS" ]; then - LD_PRELOAD_ARG="LD_PRELOAD=${PROJECT_DIR}/build/libdatacrumbs.so" -elif [ "$TOOL" == "DARSHAN" ]; then - LD_PRELOAD_ARG="LD_PRELOAD=$DARSHAN_DIR/lib/libdarshan.so" -elif [ "$TOOL" == "DARSHAN-DXT" ]; then - LD_PRELOAD_ARG="LD_PRELOAD=$DARSHAN_DIR/lib/libdarshan.so" - export DARSHAN_ENABLE_DXT=1 -else - echo "Unknown tool" - exit 1 -fi -INTERFACE=$4 -if [ -z "$4" ]; then - INTERFACE=POSIX -fi -DIRECTIO=$5 -if [ -z "$5" ]; then - DIRECTIO=0 -fi -if [ "$DIRECTIO" -eq "1" ]; then - echo "Direct IO" - export FLAGS="-o O_DIRECT=1" -else - echo "Buffered IO" - export FLAGS="" -fi -FPP=$6 -if [ -z "$6" ]; then - FPP=0 -fi -if [ "$FPP" -eq "1" ]; then - echo "FPP" - export FLAGS="${FLAGS} -F" -else - echo "Collective IO" - export FLAGS="${FLAGS} -c" -fi - -for i in {1..10}; do - echo "Iteration $i" - configuration="-o=${DATA_DIR}/test.bat-${TRANSFER_SIZE} -m -b=${BLOCK} -i 1 -d 10 -t=${TRANSFER_SIZE} -a ${INTERFACE} $FLAGS" - echo "Running ${IOR_INSTALL_DIR}/bin/ior ${configuration} -w" - start_time=$(date +%s) - mpirun -n 24 $LD_PRELOAD_ARG ${IOR_DIR}/bin/ior ${configuration} -w - end_time=$(date +%s) - elapsed_time=$((end_time - start_time)) - echo "Time taken for write iteration:$i: ${elapsed_time} seconds" - sleep 10 - if [ "$DROP_CACHES" -eq "1" ]; then - echo "Clean Cache" - sudo sh -c "/usr/bin/echo 3 > /proc/sys/vm/drop_caches" - fi - echo "Running ${IOR_INSTALL_DIR}/bin/ior ${configuration} -r" - start_time=$(date +%s) - mpirun -n 24 $LD_PRELOAD_ARG ${IOR_DIR}/bin/ior ${configuration} -r - elapsed_time=$((end_time - start_time)) - echo "Time taken for read iteration:$i: ${elapsed_time} seconds" -done diff --git a/tests/unittests/io_tests/scripts/ior_hdf5_fpp.sh b/tests/unittests/io_tests/scripts/ior_hdf5_fpp.sh deleted file mode 100755 index f63aeac2..00000000 --- a/tests/unittests/io_tests/scripts/ior_hdf5_fpp.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]:-$0}")" &>/dev/null && pwd 2>/dev/null)" -echo $SCRIPT_DIR -TEST_DIR=$(dirname $SCRIPT_DIR) -PROJECT_DIR=$(dirname $TEST_DIR) -PARENT_DIR=$(dirname $PROJECT_DIR) -#IOR_INSTALL_DIR=/opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/ior-4.0.0-arszr4x4i7xuua4opbyx73oqq7tlzljo -IOR_INSTALL_DIR=$(spack location -i ior@4.0.0%gcc@11.4.0) -DATACRUMBS_SO=${PROJECT_DIR}/build/libdatacrumbs.so - -DATA_DIR=${PROJECT_DIR}/build/data -DROP_CACHES=1 -mkdir -p $DATA_DIR -rm -rf $DATA_DIR/* -BLOCK=32m -PROC=40 -ts=1m -cmd=(mpirun -np ${PROC} -x LD_PRELOAD=$DATACRUMBS_SO ${IOR_INSTALL_DIR}/bin/ior -o=${DATA_DIR}/test-${ts} -b=${BLOCK} -i=1 -t=${ts} -a=HDF5 -F) -echo "${cmd[@]}" -"${cmd[@]}" diff --git a/tests/unittests/io_tests/scripts/ior_mpiio.sh b/tests/unittests/io_tests/scripts/ior_mpiio.sh deleted file mode 100755 index 2ab862c6..00000000 --- a/tests/unittests/io_tests/scripts/ior_mpiio.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]:-$0}")" &>/dev/null && pwd 2>/dev/null)" -echo $SCRIPT_DIR -TEST_DIR=$(dirname $SCRIPT_DIR) -PROJECT_DIR=$(dirname $TEST_DIR) -PARENT_DIR=$(dirname $PROJECT_DIR) -#IOR_INSTALL_DIR=/opt/spack/opt/spack/linux-ubuntu22.04-icelake/gcc-11.4.0/ior-4.0.0-arszr4x4i7xuua4opbyx73oqq7tlzljo -IOR_INSTALL_DIR=$(spack location -i ior@4.0.0%gcc@11.4.0) -DATACRUMBS_SO=${PROJECT_DIR}/build/libdatacrumbs.so - -DATA_DIR=${PROJECT_DIR}/build/data -DROP_CACHES=1 -mkdir -p $DATA_DIR -rm -rf $DATA_DIR/* -BLOCK=32m -PROC=10 -ts=1m -cmd=(mpirun -np ${PROC} -x LD_PRELOAD=$DATACRUMBS_SO ${IOR_INSTALL_DIR}/bin/ior -o=${DATA_DIR}/test-${ts} -b=${BLOCK} -i=1 -t=${ts} -a=MPIIO -c) -echo "${cmd[@]}" -"${cmd[@]}" diff --git a/tests/unittests/io_tests/scripts/test_posix.sh b/tests/unittests/io_tests/scripts/test_posix.sh deleted file mode 100755 index 37d48dbc..00000000 --- a/tests/unittests/io_tests/scripts/test_posix.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]:-$0}")" &>/dev/null && pwd 2>/dev/null)" -echo $SCRIPT_DIR -TEST_DIR=$(dirname $SCRIPT_DIR) -PROJECT_DIR=$(dirname $TEST_DIR) - -DATACRUMBS_SO=${PROJECT_DIR}/build/libdatacrumbs.so - -DATA_DIR=${PROJECT_DIR}/build/data -mkdir -p $DATA_DIR -NUM_FILES=1 -NUM_OPS=$1 -if [ -z "$1" ]; then - NUM_OPS=1 -fi -PROC=1 -DIRECTIO=0 -TEST_CASE=0 #write=0 read=1 both=2 -CLEAN_PAGE_CACHE=$2 -if [ -z "$2" ]; then - CLEAN_PAGE_CACHE=0 -fi -if [ "$TEST_CASE" -eq "0" ] || [ "$TEST_CASE" -eq "2" ]; then - echo "Cleaning Data" - ls -lhs $DATA_DIR - rm -rf $DATA_DIR/* -fi - -for TSKB in $((1 * 1024)); do #1 4 16 64 256 1024 4096 16384 65536 262144 - TS=$((TSKB * 1024)) - if [ "$TEST_CASE" -eq "0" ] || [ "$TEST_CASE" -eq "2" ]; then - cmd=(${PROJECT_DIR}/build/tests/df_tracer_test ${NUM_FILES} ${NUM_OPS} ${TS} ${DATA_DIR} 0 ${DIRECTIO}) - echo "${cmd[@]}" - LD_PRELOAD=${DATACRUMBS_SO} "${cmd[@]}" - fi - if [ "$CLEAN_PAGE_CACHE" -eq "1" ]; then - echo "Cleaning Cache" - sudo sh -c "/usr/bin/echo 3 > /proc/sys/vm/drop_caches" - fi - if [ "$TEST_CASE" -eq "1" ] || [ "$TEST_CASE" -eq "2" ]; then - sleep 5 - cmd=(${PROJECT_DIR}/build/tests/df_tracer_test ${NUM_FILES} ${NUM_OPS} ${TS} ${DATA_DIR} 1 ${DIRECTIO}) - echo "${cmd[@]}" - LD_PRELOAD=${DATACRUMBS_SO} "${cmd[@]}" - fi -done diff --git a/tests/unittests/io_tests/scripts/test_posix_overhead.sh b/tests/unittests/io_tests/scripts/test_posix_overhead.sh deleted file mode 100755 index 96bd3c8a..00000000 --- a/tests/unittests/io_tests/scripts/test_posix_overhead.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]:-$0}")" &>/dev/null && pwd 2>/dev/null)" -echo $SCRIPT_DIR -TEST_DIR=$(dirname $SCRIPT_DIR) -PROJECT_DIR=$(dirname $TEST_DIR) - -DATACRUMBS_SO=${PROJECT_DIR}/build/libdatacrumbs.so - -DATA_DIR=${PROJECT_DIR}/build/data -mkdir -p $DATA_DIR -NUM_FILES=1 -NUM_OPS=$((100)) -PROC=2 -DIRECTIO=0 -TEST_CASE=0 #write=0 read=1 both=2 -if [ "$TEST_CASE" -eq "0" ] || [ "$TEST_CASE" -eq "2" ]; then - echo "Cleaning Data" - ls -lhs $DATA_DIR - rm -rf $DATA_DIR/* -fi - -echo "Base" -TS=$((1 * 1024 * 1024)) -for i in {1..5}; do - cmd="mpirun -np ${PROC} --use-hwthread-cpus ${PROJECT_DIR}/build/tests/df_tracer_test ${NUM_FILES} ${NUM_OPS} ${TS} ${DATA_DIR} ${TEST_CASE} ${DIRECTIO}" - # echo $cmd - $cmd -done -sleep 5 -echo "DataCrums" -for i in {1..5}; do - cmd="mpirun -np ${PROC} --use-hwthread-cpus -x LD_PRELOAD=${DATACRUMBS_SO} ${PROJECT_DIR}/build/tests/df_tracer_test ${NUM_FILES} ${NUM_OPS} ${TS} ${DATA_DIR} ${TEST_CASE} ${DIRECTIO}" - # echo $cmd - $cmd -done diff --git a/tests/unittests/io_tests/scripts/test_posix_read.sh b/tests/unittests/io_tests/scripts/test_posix_read.sh deleted file mode 100755 index fcd45454..00000000 --- a/tests/unittests/io_tests/scripts/test_posix_read.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]:-$0}")" &>/dev/null && pwd 2>/dev/null)" -echo $SCRIPT_DIR -TEST_DIR=$(dirname $SCRIPT_DIR) -PROJECT_DIR=$(dirname $TEST_DIR) - -DATACRUMBS_SO=${PROJECT_DIR}/build/libdatacrumbs.so - -DATA_DIR=${PROJECT_DIR}/build/data -mkdir -p $DATA_DIR -NUM_FILES=1 -NUM_OPS=$1 -if [ -z "$1" ]; then - NUM_OPS=1 -fi -PROC=1 -DIRECTIO=0 -TEST_CASE=2 #write=0 read=1 both=2 -CLEAN_PAGE_CACHE=$2 -if [ -z "$2" ]; then - CLEAN_PAGE_CACHE=0 -fi -if [ "$TEST_CASE" -eq "0" ] || [ "$TEST_CASE" -eq "2" ]; then - echo "Cleaning Data" - ls -lhs $DATA_DIR - rm -rf $DATA_DIR/* -fi - -for TSKB in $((1 * 1024)); do #1 4 16 64 256 1024 4096 16384 65536 262144 - TS=$((TSKB * 1024)) - cmd="mpirun -np ${PROC} --use-hwthread-cpus -x ${PROJECT_DIR}/build/tests/df_tracer_test ${NUM_FILES} ${NUM_OPS} ${TS} ${DATA_DIR} 0 ${DIRECTIO}" - echo $cmd - $cmd - if [ "$CLEAN_PAGE_CACHE" -eq "1" ]; then - echo "Cleaning Cache" - sudo sh -c "/usr/bin/echo 1 > /proc/sys/vm/drop_caches" - elif [ "$CLEAN_PAGE_CACHE" -eq "2" ]; then - echo "Cleaning inode Caches" - sudo sh -c "/usr/bin/echo 2 > /proc/sys/vm/drop_caches" - elif [ "$CLEAN_PAGE_CACHE" -eq "3" ]; then - echo "Cleaning All Caches" - sudo sh -c "/usr/bin/echo 3 > /proc/sys/vm/drop_caches" - else - echo "Not cleaning cache" - fi - sleep 5 - cmd="mpirun -np ${PROC} --use-hwthread-cpus -x LD_PRELOAD=${DATACRUMBS_SO} ${PROJECT_DIR}/build/tests/df_tracer_test ${NUM_FILES} ${NUM_OPS} ${TS} ${DATA_DIR} 1 ${DIRECTIO}" - echo $cmd - $cmd -done diff --git a/tests/unittests/io_tests/scripts/test_stdio.sh b/tests/unittests/io_tests/scripts/test_stdio.sh deleted file mode 100755 index 096020b0..00000000 --- a/tests/unittests/io_tests/scripts/test_stdio.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]:-$0}")" &>/dev/null && pwd 2>/dev/null)" -echo $SCRIPT_DIR -TEST_DIR=$(dirname $SCRIPT_DIR) -PROJECT_DIR=$(dirname $TEST_DIR) - -DATACRUMBS_SO=${PROJECT_DIR}/build/libdatacrumbs.so - -DATA_DIR=${PROJECT_DIR}/build/data -mkdir -p $DATA_DIR -NUM_FILES=1 -NUM_OPS=$((32)) -PROC=1 -DIRECTIO=0 -TEST_CASE=0 #write=0 read=1 both=2 -if [ "$TEST_CASE" -eq "0" ] || [ "$TEST_CASE" -eq "2" ]; then - echo "Cleaning Data" - ls -lhs $DATA_DIR - rm -rf $DATA_DIR/* -fi - -for TSKB in $((1 * 1024)); do #1 4 16 64 256 1024 4096 16384 65536 262144 - TS=$((TSKB * 1024)) - cmd="mpirun -np ${PROC} --use-hwthread-cpus -x LD_PRELOAD=${DATACRUMBS_SO} ${PROJECT_DIR}/build/tests/df_tracer_test_stdio ${NUM_FILES} ${NUM_OPS} ${TS} ${DATA_DIR} ${TEST_CASE} ${DIRECTIO}" - echo $cmd - $cmd - sleep 5 -done diff --git a/tests/unittests/io_tests/test.cpp b/tests/unittests/io_tests/test.cpp deleted file mode 100755 index 7b768d2a..00000000 --- a/tests/unittests/io_tests/test.cpp +++ /dev/null @@ -1,232 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -class Timer { - public: - Timer() : elapsed_time(0) {} - void resumeTime() { t1 = std::chrono::high_resolution_clock::now(); } - double pauseTime() { - auto t2 = std::chrono::high_resolution_clock::now(); - elapsed_time += std::chrono::duration(t2 - t1).count(); - return elapsed_time; - } - double getElapsedTime() { return elapsed_time; } - - private: - std::chrono::high_resolution_clock::time_point t1; - double elapsed_time; -}; -std::string gen_random(const int len) { - static const char alphanum[] = - "0123456789" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz"; - std::string tmp_s; - tmp_s.reserve(len); - - for (int i = 0; i < len; ++i) { - tmp_s += alphanum[rand() % (sizeof(alphanum) - 1)]; - } - - return tmp_s; -} -int test_open_perm(const char* filename, int flag, int perm) { - int fd = open(filename, flag, perm); - if (fd == -1) { - perror("open"); - return -1; - } - return fd; -} -int test_open(const char* filename, int flag) { - int fd = open(filename, flag, 0777); - if (fd == -1) { - perror("open"); - return -1; - } - return fd; -} -ssize_t test_read(int fd, void* buf, ssize_t size) { - ssize_t bytes = read(fd, buf, size); - if (bytes == -1) { - fprintf(stderr, "read : %s (errno: %d)\n", strerror(errno), errno); - return -1; - } - return bytes; -} -ssize_t test_write(int fd, const void* buf, ssize_t size) { - ssize_t bytes = write(fd, buf, size); - if (bytes == -1) { - fprintf(stderr, "write on fd:%d of size:%ld failed with %ld: %s (errno: %d)\n", fd, size, bytes, - strerror(errno), errno); - return -1; - } - return bytes; -} -int test_close(int fd) { - int ret = close(fd); - if (ret == -1) { - perror("close"); - return -1; - } - return ret; -} -int test_lseek(int fd, off_t offset, int whence) { - int ret = lseek(fd, offset, whence); - if (ret == -1) { - perror("lseek"); - return -1; - } - return ret; -} -int test_fsync(int fd) { - int ret = fsync(fd); - if (ret == -1) { - perror("fsync"); - return -1; - } - return ret; -} - -int main(int argc, char* argv[]) { - MPI_Init(&argc, &argv); - int my_rank, comm_size; - MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); - MPI_Comm_size(MPI_COMM_WORLD, &comm_size); - int files = atoi(argv[1]); - int ops = atoi(argv[2]); - ssize_t ts = atol(argv[3]); - std::string dir = std::string(argv[4]); - int test_flag = atoi(argv[5]); - int direct_io_flag = atoi(argv[6]); - int sleep_time = atoi(argv[7]); - struct stat st; - if (stat(dir.c_str(), &st) != 0) { - perror("stat"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - size_t alignment = st.st_blksize; - void* data_aligned = nullptr; - void* read_data_aligned = nullptr; - if (posix_memalign(&data_aligned, alignment, ts) != 0) { - perror("posix_memalign data"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - if (posix_memalign(&read_data_aligned, alignment, ts) != 0) { - perror("posix_memalign read_data"); - MPI_Abort(MPI_COMM_WORLD, 1); - } - char* data = (char*)data_aligned; - char* read_data = (char*)read_data_aligned; - // for (int i = 0; i < ts; ++i) { - // ((char *)data)[i] = 'a' + (i % 26); // Fill with some data - // } - Timer open_timer = Timer(); - Timer write_timer = Timer(); - Timer read_timer = Timer(); - Timer close_timer = Timer(); - for (int file_idx = 0; file_idx < files; ++file_idx) { - std::string filename = - dir + "/file_" + std::to_string(file_idx) + "_" + std::to_string(my_rank) + ".dat"; - - open_timer.resumeTime(); - - int fd = -1; - if (test_flag == 0) { - int flag = O_WRONLY | O_CREAT | O_TRUNC; - if (direct_io_flag == 1) { - flag = O_WRONLY | O_CREAT | O_TRUNC | O_DIRECT; - } - fd = test_open_perm(filename.c_str(), flag, 0777); - } else if (test_flag == 1) { - int flag = O_RDONLY; - if (direct_io_flag == 1) { - flag = O_RDONLY | O_DIRECT; - } - fd = test_open(filename.c_str(), flag); - } else { - int flag = O_RDWR | O_CREAT | O_TRUNC; - if (direct_io_flag == 1) { - flag = O_RDWR | O_CREAT | O_TRUNC | O_DIRECT; - } - fd = test_open_perm(filename.c_str(), flag, 0777); - } - - open_timer.pauseTime(); - if (fd == -1) { - fprintf(stderr, "Error opening file:%s %s (errno: %d)\n", filename.c_str(), strerror(errno), - errno); - assert(fd != -1); - } - printf("Opened file: %s with fd: %d, ts: %zd\n", filename.c_str(), fd, ts); - if (sleep_time > 0) { - printf("Sleeping for %d\n", sleep_time); - sleep(sleep_time); - } - for (int op_idx = 0; op_idx < ops; ++op_idx) { - if (test_flag == 0 || test_flag == 2) { - if (sleep_time > 0) { - printf("Sleeping for write for %d for step %d of %d\n", sleep_time, op_idx, ops); - sleep(sleep_time); - } - write_timer.resumeTime(); - assert(test_write(fd, data, ts) == ts); - write_timer.pauseTime(); - } - - if (test_flag == 2) { - if (sleep_time > 0) { - printf("Sleeping for fseek for %d for step %d of %d\n", sleep_time, op_idx, ops); - sleep(sleep_time); - } - test_lseek(fd, (off_t)op_idx * ts, SEEK_SET); - } - if (test_flag == 1 || test_flag == 2) { - if (sleep_time > 0) { - printf("Sleeping for read for %d for step %d of %d\n", sleep_time, op_idx, ops); - sleep(sleep_time); - } - read_timer.resumeTime(); - auto read_bytes = test_read(fd, read_data, ts); - read_timer.pauseTime(); - } - } - if (sleep_time > 0) { - printf("Sleeping for close for %d\n", sleep_time); - sleep(sleep_time); - } - close_timer.resumeTime(); - test_close(fd); - close_timer.pauseTime(); - } - free(read_data); - double open_time = open_timer.getElapsedTime(); - double total_open_time; - MPI_Reduce(&open_time, &total_open_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - double close_time = close_timer.getElapsedTime(); - double total_close_time; - MPI_Reduce(&close_time, &total_close_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - double write_time = write_timer.getElapsedTime(); - double total_write_time; - MPI_Reduce(&write_time, &total_write_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - double read_time = read_timer.getElapsedTime(); - double total_read_time; - MPI_Reduce(&read_time, &total_read_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - if (my_rank == 0) { - printf("%d,%d,%d,%ld,%f,%f,%f,%f\n", comm_size, test_flag, ops, ts, total_open_time / comm_size, - total_close_time / comm_size, total_write_time / comm_size, total_read_time / comm_size); - } - MPI_Finalize(); - return 0; -} \ No newline at end of file diff --git a/tests/unittests/io_tests/test.py b/tests/unittests/io_tests/test.py deleted file mode 100755 index 653e0069..00000000 --- a/tests/unittests/io_tests/test.py +++ /dev/null @@ -1,25 +0,0 @@ -import os -import time - -def test_one(): - print("Running test_one") - time.sleep(1) - test_two() - -def test_two(): - print("Running test_two") - time.sleep(1) - test_three() - -def test_three(): - time.sleep(1) - with open("tempfile.txt", "w") as f: - f.write("Hello, world!") - os.remove("tempfile.txt") - print("Running test_three") - -if __name__ == "__main__": - print(f"PID: {os.getpid()}") - # input("Press Enter to continue...") - test_one() - # input("Press Enter to continue...") \ No newline at end of file diff --git a/tests/unittests/io_tests/test_stdio.cpp b/tests/unittests/io_tests/test_stdio.cpp deleted file mode 100644 index eaa70910..00000000 --- a/tests/unittests/io_tests/test_stdio.cpp +++ /dev/null @@ -1,137 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -class Timer { - public: - Timer() : elapsed_time(0) {} - void resumeTime() { t1 = std::chrono::high_resolution_clock::now(); } - double pauseTime() { - auto t2 = std::chrono::high_resolution_clock::now(); - elapsed_time += std::chrono::duration(t2 - t1).count(); - return elapsed_time; - } - double getElapsedTime() { return elapsed_time; } - - private: - std::chrono::high_resolution_clock::time_point t1; - double elapsed_time; -}; -std::string gen_random(const int len) { - static const char alphanum[] = - "0123456789" - "ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz"; - std::string tmp_s; - tmp_s.reserve(len); - - for (int i = 0; i < len; ++i) { - tmp_s += alphanum[rand() % (sizeof(alphanum) - 1)]; - } - - return tmp_s; -} -int main(int argc, char* argv[]) { - MPI_Init(&argc, &argv); - int my_rank, comm_size; - MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); - MPI_Comm_size(MPI_COMM_WORLD, &comm_size); - int files = atoi(argv[1]); - int ops = atoi(argv[2]); - int ts = atoi(argv[3]); - std::string dir = std::string(argv[4]); - int test_flag = atoi(argv[5]); - int direct_io_flag = atoi(argv[6]); - std::string data = gen_random(ts); - char* read_data = (char*)malloc(ts); - Timer open_timer = Timer(); - Timer write_timer = Timer(); - Timer read_timer = Timer(); - Timer close_timer = Timer(); - int sleep_time = 0; - for (int file_idx = 0; file_idx < files; ++file_idx) { - std::string filename = - dir + "/file_" + std::to_string(file_idx) + "_" + std::to_string(my_rank) + ".dat"; - - open_timer.resumeTime(); - - FILE* fh; - if (test_flag == 0) { - fh = fopen(filename.c_str(), "w+"); - // fd = open(filename.c_str(), flag, 0777); - } else if (test_flag == 1) { - fh = fopen(filename.c_str(), "r"); - } else { - fh = fopen(filename.c_str(), "w+"); - } - if (sleep_time > 0) { - printf("Sleeping for %d\n", sleep_time); - sleep(sleep_time); - } - assert(fh != NULL); - open_timer.pauseTime(); - for (int op_idx = 0; op_idx < ops; ++op_idx) { - if (sleep_time > 0) { - printf("Sleeping for write for %d for step %d of %d\n", sleep_time, op_idx, ops); - sleep(sleep_time); - } - if (test_flag == 0 || test_flag == 2) { - write_timer.resumeTime(); - assert(fwrite(data.c_str(), ts, 1, fh) == 1); - write_timer.pauseTime(); - } - - if (test_flag == 2) { - if (sleep_time > 0) { - printf("Sleeping for fseek for %d for step %d of %d\n", sleep_time, op_idx, ops); - sleep(sleep_time); - } - fseek(fh, (off_t)op_idx * ts, SEEK_SET); - } - if (test_flag == 1 || test_flag == 2) { - if (sleep_time > 0) { - printf("Sleeping for read for %d for step %d of %d\n", sleep_time, op_idx, ops); - sleep(sleep_time); - } - read_timer.resumeTime(); - assert(fread(read_data, ts, 1, fh) == 1); - read_timer.pauseTime(); - } - } - if (sleep_time > 0) { - printf("Sleeping for close for %d\n", sleep_time); - sleep(sleep_time); - } - close_timer.resumeTime(); - fclose(fh); - close_timer.pauseTime(); - } - free(read_data); - double open_time = open_timer.getElapsedTime(); - double total_open_time; - MPI_Reduce(&open_time, &total_open_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - double close_time = close_timer.getElapsedTime(); - double total_close_time; - MPI_Reduce(&close_time, &total_close_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - double write_time = write_timer.getElapsedTime(); - double total_write_time; - MPI_Reduce(&write_time, &total_write_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - double read_time = read_timer.getElapsedTime(); - double total_read_time; - MPI_Reduce(&read_time, &total_read_time, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); - if (my_rank == 0) { - printf("%d,%d,%d,%d,%f,%f,%f,%f\n", comm_size, test_flag, ops, ts, total_open_time / comm_size, - total_close_time / comm_size, total_write_time / comm_size, total_read_time / comm_size); - } - MPI_Finalize(); - return 0; -} \ No newline at end of file diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt deleted file mode 100644 index f3d33bf2..00000000 --- a/tools/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -cmake_minimum_required(VERSION 3.20) -project(aggregate_trace_tool) - -find_package(json-c REQUIRED) - -add_executable(aggregate_trace aggregate_trace.cpp) - -target_link_libraries(aggregate_trace PRIVATE json-c::json-c ZLIB::ZLIB) - -add_executable(callgraph_creator callgraph_vis.cpp) -target_link_libraries(callgraph_creator PRIVATE json-c::json-c ZLIB::ZLIB) diff --git a/tools/README.md b/tools/README.md deleted file mode 100644 index 2863e4a1..00000000 --- a/tools/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# callgraph creator - -callgraph_creator receives a trace file created by DataCrumbs and generates a call graph of its functions. - -### usage - -``` -Usage: ./callgraph_creator [options] - -Analyzes a performance trace file to build a call graph. - -Options: - -h, --help Show this help message and exit. - -p, --show-percentage Display the percentage of time each function took (text mode only). - -t, --time-metric Metric for time display (text mode only). can be 'inclusive' or 'exclusive'. - -f, --focus-function Focus the output on all instances of a specific function. - -s, --force-sort Force the program to sort the trace data if it might be out of order. - -a, --aggregate Aggregate children with the same name into a single entry. - -o, --output-format Specify the output format. can be: - 'text' (default): Human-readable call tree. - 'dot': DOT language file for Graphviz. - --min-percent-root Hide root functions that are less than % of the total trace time. - --min-percent-children Hide child functions that are less than % of their parent's time. -``` -### samples - -Example outputs are in the example folder. The traces used for examples are created by running VPIC-IO. The text output was created by using the `focus-function H5Dwrite` functions, and the picture was created using `--min-percent-root 0.001 --min-percent-children 5`. diff --git a/tools/aggregate_trace.cpp b/tools/aggregate_trace.cpp deleted file mode 100644 index 83701e15..00000000 --- a/tools/aggregate_trace.cpp +++ /dev/null @@ -1,154 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "decompression.h" - -using namespace std; - -struct Stats { - int count = 0; - double sum = 0; - double sum_sq = 0; - int min = INT_MAX; - int max = INT_MIN; - - void add(int dur) { - count++; - sum += dur; - sum_sq += dur * dur; - if (dur < min) min = dur; - if (dur > max) max = dur; - } - - double mean() const { return count ? sum / count : 0; } - - double stddev() const { - if (count < 2) return 0; - double m = mean(); - return sqrt((sum_sq / count) - (m * m)); - } -}; - -int main(int argc, char* argv[]) { - if (argc < 2) { - cerr << "Usage: " << argv[0] << " " << endl; - return 1; - } - - // Prepare output file path - std::filesystem::path input_path(argv[1]); - std::string basename = input_path.stem().string(); - std::filesystem::path output_dir = std::filesystem::absolute( - std::filesystem::path(argv[0]).parent_path().parent_path() / "tools/output"); - std::filesystem::create_directories(output_dir); - std::filesystem::path output_path = output_dir / (basename + ".csv"); - - ofstream outfile(output_path); - if (!outfile) { - cerr << "Failed to open output file: " << output_path << endl; - return 1; - } - - map, Stats> stats_map; - - try { - datacrumbs::GzipChunkReader reader(argv[1]); - bool first_line = true; - std::string chunk, leftover; - while (reader.nextChunk(chunk)) { - leftover += chunk; - size_t pos = 0; - while (true) { - size_t newline = leftover.find('\n', pos); - if (newline == std::string::npos) break; - std::string line = leftover.substr(pos, newline - pos); - pos = newline + 1; - if (!line.empty() && line.back() == '\r') line.pop_back(); - - if (first_line) { - first_line = false; - if (line == "[") continue; - } - if (line == "]") continue; - if (line.empty()) continue; - - struct json_object* jobj = json_tokener_parse(line.c_str()); - if (!jobj) { - cerr << "Skipping invalid JSON: " << line << endl; - continue; - } - - struct json_object *jcat, *jname, *jdur; - if (!json_object_object_get_ex(jobj, "cat", &jcat) || - !json_object_object_get_ex(jobj, "name", &jname) || - !json_object_object_get_ex(jobj, "dur", &jdur)) { - json_object_put(jobj); - continue; - } - - string cat = json_object_get_string(jcat); - string name = json_object_get_string(jname); - int dur = json_object_get_int(jdur); - - stats_map[{cat, name}].add(dur); - - json_object_put(jobj); - } - leftover = leftover.substr(pos); - } - // Handle any remaining data in leftover - if (!leftover.empty()) { - std::string line = leftover; - if (!line.empty() && line.back() == '\r') line.pop_back(); - if (line != "]" && !line.empty()) { - struct json_object* jobj = json_tokener_parse(line.c_str()); - if (jobj) { - struct json_object *jcat, *jname, *jdur; - if (json_object_object_get_ex(jobj, "cat", &jcat) && - json_object_object_get_ex(jobj, "name", &jname) && - json_object_object_get_ex(jobj, "dur", &jdur)) { - string cat = json_object_get_string(jcat); - string name = json_object_get_string(jname); - int dur = json_object_get_int(jdur); - stats_map[{cat, name}].add(dur); - } - json_object_put(jobj); - } - } - } - } catch (const std::exception& ex) { - cerr << ex.what() << endl; - return 1; - } - - // Collect stats into a vector for sorting by sum (total duration) - vector, Stats>> stats_vec(stats_map.begin(), stats_map.end()); - std::sort(stats_vec.begin(), stats_vec.end(), [](const auto& a, const auto& b) { - if (a.second.count != b.second.count) return a.second.count < b.second.count; - return a.second.sum < b.second.sum; - }); - ostream& out = outfile; - // CSV header - out << "index,cat,name,count,min,max,mean,stddev,sum" << endl; - - int index = 0; - for (const auto& [key, stats] : stats_vec) { - out << index++ << "," << '"' << key.first << "\"," << '"' << key.second << "\"," << stats.count - << "," << stats.min << "," << stats.max << "," << fixed << setprecision(2) << stats.mean() - << "," << fixed << setprecision(2) << stats.stddev() << "," << fixed << setprecision(2) - << stats.sum << endl; - } - - cout << "Output written to: " << output_path << endl; - return 0; -} \ No newline at end of file diff --git a/tools/analyze_trace.sh b/tools/analyze_trace.sh deleted file mode 100755 index 8f913580..00000000 --- a/tools/analyze_trace.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/bin/bash - -# Function to echo with timestamp -log() { - echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" -} - -# Check if file is provided as argument -if [ $# -eq 0 ]; then - log "Usage: $0 " - exit 1 -fi - -INPUT_FILE="$1" - -# Check if file exists -if [ ! -f "$INPUT_FILE" ]; then - log "Error: File '$INPUT_FILE' not found" - exit 1 -fi - -# Create temporary file without brackets -TEMP_FILE=$(mktemp) - -log "Removing brackets from input file..." -sed '1d;$d' "$INPUT_FILE" | sed 's/,$//' >"$TEMP_FILE" - -# Declare associative arrays for calculations -declare -A total_dur -declare -A count -declare -A category - -log "Processing JSON records..." - -# Read each line and process with jq -# Count total lines for progress bar -total_lines=$(wc -l <"$TEMP_FILE") -current_line=0 - -# Use GNU parallel and jq to process lines in parallel and aggregate results -process_line() { - line="$1" - name=$(echo "$line" | jq -r '.name // empty') - cat=$(echo "$line" | jq -r '.cat // empty') - dur=$(echo "$line" | jq -r '.dur // 0') - if [[ -n "$name" && "$name" != "null" ]]; then - echo "$name|$cat|$dur" - fi -} - -export -f process_line - -log "Processing JSON records in parallel with progress bar..." - -# Function to update progress bar -update_progress() { - local progress=$1 - local total=$2 - local start_time=$3 - local width=40 - local percent=$((progress * 100 / total)) - local filled=$((progress * width / total)) - local empty=$((width - filled)) - local now elapsed eta - - now=$(date +%s) - elapsed=$((now - start_time)) - if ((progress > 0)); then - eta=$(((elapsed * (total - progress)) / progress)) - else - eta=0 - fi - - printf "\r[" - printf "%0.s#" $(seq 1 $filled) - printf "%0.s-" $(seq 1 $empty) - printf "] %3d%% (%d/%d) Elapsed: %ds ETA: %ds" "$percent" "$progress" "$total" "$elapsed" "$eta" -} - -# Process lines in parallel and show progress bar -rm -f "$TEMP_FILE.results" -processed=0 - -export -f process_line - -# Use a named pipe to avoid race conditions -PIPE=$(mktemp -u) -mkfifo "$PIPE" - -# Start a background job to process lines and write to results -( - cat "$TEMP_FILE" | parallel --pipe --block 1M --jobs "$(nproc)" --line-buffer \ - 'while read -r line; do process_line "$line"; done' >"$PIPE" -) & - -# In the awk aggregation, add sumsq -awk -F'|' -v total="$total_lines" ' -{ - name=$1 - cat=$2 - dur=$3 - total_dur[name] += dur - count[name] += 1 - sumsq[name] += (dur * dur) - category[name] = cat - processed++ - if (processed == 1) { - start_time = systime() - } - if (processed % 100 == 0 || processed == total) { - now = systime() - elapsed = now - start_time - if (processed > 0) { - eta = (elapsed * (total - processed)) / processed - } else { - eta = 0 - } - printf "\r[" > "/dev/stderr" - width=40 - filled=int(processed * width / total) - empty=width - filled - for (i=0; i "/dev/stderr" - for (i=0; i "/dev/stderr" - percent=int(processed * 100 / total) - printf "] %3d%% (%d/%d) Elapsed: %ds ETA: %ds", percent, processed, total, elapsed, eta > "/dev/stderr" - } -} -END { - printf "\n" > "/dev/stderr" - for (name in total_dur) { - printf "%s|%s|%d|%d|%d\n", name, category[name], count[name], total_dur[name], sumsq[name] - } -}' "$PIPE" >"$TEMP_FILE.results" - -# Read results into associative arrays (add sumsq) -declare -A sumsq -while IFS='|' read -r name cat cnt tdur ssq; do - total_dur["$name"]=$tdur - count["$name"]=$cnt - category["$name"]="$cat" - sumsq["$name"]=$ssq -done <"$TEMP_FILE.results" - -# Prepare output directory and file -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -OUTPUT_DIR="$SCRIPT_DIR/output" -mkdir -p "$OUTPUT_DIR" -INPUT_BASENAME="$(basename "$INPUT_FILE")" -OUTPUT_FILE="$OUTPUT_DIR/${INPUT_BASENAME}.log" - -# Output results to both stdout and file -{ - echo - log "Results:" - echo "==============================================================================================" - printf "%-30s %-15s %-10s %-15s %-15s %-15s\n" "Function Name" "Category" "Count" "Total Duration" "Avg Duration" "Std Duration" - echo "==============================================================================================" - - for name in $(for n in "${!total_dur[@]}"; do - printf "%s|%d\n" "$n" "${total_dur[$n]}" - done | sort -t'|' -k2,2n | cut -d'|' -f1); do - avg_dur=0 - std_dur=0 - if [[ ${count[$name]} -gt 0 ]]; then - avg_dur=$((total_dur[$name] / count[$name])) - # stddev = sqrt((sumsq / count) - (avg^2)) - sumsq_val=${sumsq[$name]} - cnt=${count[$name]} - avg_float=$(awk "BEGIN {print ${total_dur[$name]}/$cnt}") - mean_sq=$(awk "BEGIN {print $avg_float * $avg_float}") - var=$(awk "BEGIN {print ($sumsq_val/$cnt) - $mean_sq}") - std_dur=$(awk "BEGIN {if ($var<0) print 0; else print sqrt($var)}") - fi - - printf "%-30s %-15s %-10d %-15d %-15.2f %-15.2f\n" \ - "$name" \ - "${category[$name]}" \ - "${count[$name]}" \ - "${total_dur[$name]}" \ - "$avg_dur" \ - "$std_dur" - done - - echo "==============================================================================================" - log "Total unique functions: ${#total_dur[@]}" -} | tee "$OUTPUT_FILE" diff --git a/tools/callgraph_vis.cpp b/tools/callgraph_vis.cpp deleted file mode 100644 index 83fa18d2..00000000 --- a/tools/callgraph_vis.cpp +++ /dev/null @@ -1,506 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include - -// --- Type Definitions and Global Structures --- - -typedef enum { FORMAT_TEXT, FORMAT_DOT } OutputFormat; - -typedef struct Node { - char* name; - long long ts; - long long dur; - long long ts_end; - long long exclusive_dur; - struct Node** children; - int children_count; - int children_capacity; - int count = 1; - long long max; - long long min; - int depth = 0; -} Node; - -// Global arguments parsed from command line -typedef struct Args { - int show_percentage; - int is_exclusive_metric; - int force_sort; - double min_percent_root; - double min_percent_children; - OutputFormat output_format; - char* focus_function; - char* filepath; - int aggregate; - int depth_cut = 20; -} Args; - -void print_help(const char* prog_name) { - printf("Usage: %s [options]\n\n", prog_name); - printf("Analyzes a performance trace file to build a call graph.\n\n"); - printf("Options:\n"); - printf(" -h, --help Show this help message and exit.\n"); - printf( - " -p, --show-percentage Display the percentage of time each function took (text " - "mode only).\n"); - printf( - " -a, --aggregate Aggregate repetitive functions under the same parent into " - "one entry.\n"); - printf( - " -t, --time-metric Metric for time display. can be 'inclusive' or " - "'exclusive'.\n"); - printf( - " -f, --focus-function Focus the output on all instances of a specific " - "function.\n"); - printf( - " -s, --force-sort Force sorting of trace data (useful if out of order).\n"); - printf(" -o, --output-format Specify the output format. can be:\n"); - printf(" 'text' (default): Human-readable call tree.\n"); - printf(" 'dot': DOT language file for Graphviz.\n"); - printf( - " -d, --depth_cut Set the maximum depth for the call tree (default: 20).\n"); - printf( - " --min-percent-root Hide root functions consuming less than %% of total " - "time.\n"); - printf( - " --min-percent-children Hide child functions consuming less than %% of " - "parent's time.\n"); -} - -void calculate_exclusive_times(Node** nodes, int count) { - for (int i = 0; i < count; i++) { - Node* node = nodes[i]; - long long children_total_dur = 0; - for (int j = 0; j < node->children_count; j++) { - children_total_dur += node->children[j]->dur; - } - node->exclusive_dur = node->dur - children_total_dur; - if (node->children_count > 0) { - calculate_exclusive_times(node->children, node->children_count); - } - } -} - -void find_nodes_by_name(Node** nodes, int count, const char* name, Node*** found_nodes, - int* found_count) { - for (int i = 0; i < count; i++) { - if (strcmp(nodes[i]->name, name) == 0) { - *found_nodes = (Node**)realloc(*found_nodes, (*found_count + 1) * sizeof(Node*)); - (*found_nodes)[*found_count] = nodes[i]; - (*found_count)++; - } - if (nodes[i]->children_count > 0) { - find_nodes_by_name(nodes[i]->children, nodes[i]->children_count, name, found_nodes, - found_count); - } - } -} -// For events starting at the same time, process the larger (parent) one first -int compare_nodes(const void* a, const void* b) { - Node* nodeA = *(Node**)a; - Node* nodeB = *(Node**)b; - if (nodeA->ts < nodeB->ts) return -1; - if (nodeA->ts > nodeB->ts) return 1; - if (nodeA->dur > nodeB->dur) return -1; - if (nodeA->dur < nodeB->dur) return 1; - return 0; -} - -void sanitize_for_graphing(const char* input, char* output, size_t size) { - size_t i = 0; - for (i = 0; i < size - 1 && input[i] != '\0'; i++) { - if (input[i] == ';' || isspace(input[i]) || input[i] == '"' || input[i] == '\\') { - output[i] = '_'; - } else { - output[i] = input[i]; - } - } - output[i] = '\0'; -} - -void print_tree(Node** nodes, int count, Args* args, long long total_run_time, const char* prefix, - long long parent_inclusive_dur, const char* stack_prefix) { - for (int i = 0; i < count; i++) { - Node* node = nodes[i]; - - double percentage = 0.0; - if (parent_inclusive_dur == -1) { // Root node - if (total_run_time > 0) percentage = ((double)node->dur / total_run_time) * 100.0; - if (args->min_percent_root > 0 && percentage < args->min_percent_root) { - continue; - } - } else { // Child node - if (parent_inclusive_dur > 0) percentage = ((double)node->dur / parent_inclusive_dur) * 100.0; - if (args->min_percent_children > 0 && percentage < args->min_percent_children) { - continue; - } - } - - if (args->output_format == FORMAT_TEXT) { - const char* connector = (i == count - 1) ? "└── " : "├── "; - printf("%s%s%s (dur: %lld [%s], depth: %d)", prefix, connector, node->name, - args->is_exclusive_metric ? node->exclusive_dur : node->dur, - args->is_exclusive_metric ? "exclusive" : "inclusive", node->depth); - - if (args->aggregate && node->count > 1) { - printf(" (count: %d, min: %lld, max: %lld, avg: %lld)", node->count, node->min, node->max, - node->dur / node->count); - } - - if (args->show_percentage) { - const char* label = (parent_inclusive_dur == -1) - ? (args->focus_function ? "of self" : "of total") - : "of parent"; - printf(" [%.2f%% %s]", percentage, label); - } - - printf("\n"); - } else if (args->output_format == FORMAT_DOT) { - char sanitized_name[1024]; - sanitize_for_graphing(node->name, sanitized_name, sizeof(sanitized_name)); - - // Calculate the exclusive duration's percentage of the total run time. - double exclusive_percentage_of_total = 0.0; - if (total_run_time > 0) { - exclusive_percentage_of_total = ((double)node->exclusive_dur / total_run_time) * 100.0; - } - - // Define the node with a label showing its name, exclusive duration, and percentage of total. - printf(" \"%s\" [label=\"%s\\nExclusive: %lld (%.2f%%)\"];\n", sanitized_name, node->name, - node->exclusive_dur, exclusive_percentage_of_total); - - // If it's a child node, draw an edge from its parent. - if (parent_inclusive_dur != -1) { - char sanitized_parent[1024]; - sanitize_for_graphing(stack_prefix, sanitized_parent, sizeof(sanitized_parent)); - printf(" \"%s\" -> \"%s\";\n", sanitized_parent, sanitized_name); - } - } - - if (node->children_count > 0) { - char new_prefix[256] = ""; - char new_stack_prefix[1024] = ""; - - if (args->output_format == FORMAT_TEXT) { - snprintf(new_prefix, sizeof(new_prefix), "%s%s", prefix, - (i == count - 1) ? " " : "│ "); - } - - // For DOT format, the new stack prefix is the current node's name, used to identify the - // parent in the recursive call. - if (args->output_format == FORMAT_DOT) { - snprintf(new_stack_prefix, sizeof(new_stack_prefix), "%s", node->name); - } - - print_tree(node->children, node->children_count, args, total_run_time, new_prefix, node->dur, - new_stack_prefix); - } - } -} - -int main(int argc, char* argv[]) { - // --- Argument Parsing --- - Args args = {0, 0, 0, 0.0, 0.0, FORMAT_TEXT, NULL, NULL, 0, 20}; - int opt; - struct option long_options[] = {{"help", no_argument, 0, 'h'}, - {"show-percentage", no_argument, 0, 'p'}, - {"aggregate", no_argument, 0, 'a'}, - {"time-metric", required_argument, 0, 't'}, - {"focus-function", required_argument, 0, 'f'}, - {"force-sort", no_argument, 0, 's'}, - {"output-format", required_argument, 0, 'o'}, - {"min-percent-root", required_argument, 0, 256}, - {"min-percent-children", required_argument, 0, 257}, - {"depth_cut", required_argument, 0, 'd'}, - {0, 0, 0, 0}}; - - while ((opt = getopt_long(argc, argv, "hpat:f:so:d:", long_options, NULL)) != -1) { - switch (opt) { - case 'h': - print_help(argv[0]); - return 0; - case 'p': - args.show_percentage = 1; - break; - case 'a': - args.aggregate = 1; - break; - case 't': - args.is_exclusive_metric = (strcmp(optarg, "exclusive") == 0); - break; - case 'f': - args.focus_function = optarg; - break; - case 's': - args.force_sort = 1; - break; - case 'o': - if (strcmp(optarg, "dot") == 0) { - args.output_format = FORMAT_DOT; - } - break; - case 'd': - args.depth_cut = atoi(optarg); - break; - case 256: - args.min_percent_root = atof(optarg); - break; - case 257: - args.min_percent_children = atof(optarg); - break; - default: - print_help(argv[0]); - return EXIT_FAILURE; - } - } - if (optind >= argc) { - fprintf(stderr, "Error: Filepath is required.\n\n"); - print_help(argv[0]); - exit(EXIT_FAILURE); - } - args.filepath = argv[optind]; - - // --- File Reading --- - FILE* fp = fopen(args.filepath, "rb"); - if (!fp) { - perror("Error opening file for analysis"); - return EXIT_FAILURE; - } - fseek(fp, 0, SEEK_END); - long file_size = ftell(fp); - fseek(fp, 0, SEEK_SET); - char* buffer = (char*)malloc(file_size + 1); - if (!buffer || fread(buffer, 1, file_size, fp) != file_size) { - perror("Error reading file"); - free(buffer); - fclose(fp); - return EXIT_FAILURE; - } - buffer[file_size] = '\0'; - fclose(fp); - - // --- JSON Parsing and Node Creation --- - Node** all_nodes = NULL; - int total_nodes = 0; - int capacity = 0; - long long excluded_time = 0; - char* current_pos = buffer; - char* end = buffer + file_size; - - while (current_pos < end) { - char* next_newline = (char*)memchr(current_pos, '\n', end - current_pos); - char* line_end = (next_newline != NULL) ? next_newline : end; - - if (line_end > current_pos && *(line_end - 1) == '\r') { - line_end--; - } - - char original_char = *line_end; - *line_end = '\0'; - - if (strlen(current_pos) > 1) { - json_object* json = json_tokener_parse(current_pos); - if (json) { - json_object* ph_obj; - if (json_object_object_get_ex(json, "ph", &ph_obj) && - json_object_is_type(ph_obj, json_type_string) && - strcmp(json_object_get_string(ph_obj), "X") == 0) { - json_object *name_obj, *ts_obj, *dur_obj; - if (json_object_object_get_ex(json, "name", &name_obj) && - json_object_is_type(name_obj, json_type_string) && - json_object_object_get_ex(json, "ts", &ts_obj) && - json_object_get_type(ts_obj) != json_type_null && - json_object_object_get_ex(json, "dur", &dur_obj) && - json_object_get_type(dur_obj) != json_type_null) { - Node* node = (Node*)calloc(1, sizeof(Node)); - - long long dur_val = json_object_get_int64(dur_obj); - node->name = strdup(json_object_get_string(name_obj)); - node->ts = json_object_get_int64(ts_obj); - node->dur = dur_val; - node->ts_end = node->ts + node->dur; - node->count = 1; - node->min = dur_val; - node->max = dur_val; - - if (total_nodes >= capacity) { - capacity = (capacity == 0) ? 1024 : capacity * 2; - all_nodes = (Node**)realloc(all_nodes, capacity * sizeof(Node*)); - } - all_nodes[total_nodes++] = node; - } - } - json_object_put(json); - } - } - - *line_end = original_char; - current_pos = (next_newline != NULL) ? (next_newline + 1) : end; - } - free(buffer); - - if (total_nodes == 0) { - printf("No function call events ('ph': 'X') found in the data.\n"); - if (all_nodes) free(all_nodes); - return 0; - } - - // --- Call Tree Construction --- - if (args.force_sort) { - qsort(all_nodes, total_nodes, sizeof(Node*), compare_nodes); - } - - Node** stack = (Node**)malloc(total_nodes * sizeof(Node*)); - int stack_top = -1; - Node** root_calls = NULL; - int root_count = 0; - std::ofstream outFile("depth_cut.txt"); - - for (int i = 0; i < total_nodes; i++) { - Node* call = all_nodes[i]; - bool found = false; - - while (stack_top > -1 && call->ts >= stack[stack_top]->ts_end) { - stack_top--; - } - - if (stack_top > -1) { - Node* parent = stack[stack_top]; - call->depth = parent->depth + 1; - - if (call->depth > args.depth_cut) { - excluded_time += call->dur; - if (outFile.is_open()) { - outFile << call->name << " " << call->dur << std::endl; - } - continue; - } - - if (args.aggregate) { - for (int j = 0; j < parent->children_count; j++) { - if (strcmp(parent->children[j]->name, call->name) == 0) { - if (parent->children[j]->max < call->dur) parent->children[j]->max = call->dur; - if (parent->children[j]->min > call->dur) parent->children[j]->min = call->dur; - parent->children[j]->dur += call->dur; - parent->children[j]->count++; - found = true; - break; - } - } - } - - if (!found) { - if (parent->children_count >= parent->children_capacity) { - parent->children_capacity = - (parent->children_capacity == 0) ? 4 : parent->children_capacity * 2; - parent->children = - (Node**)realloc(parent->children, parent->children_capacity * sizeof(Node*)); - } - parent->children[parent->children_count++] = call; - } - } else { // Is a root call - call->depth = 0; - if (args.aggregate) { - for (int j = 0; j < root_count; j++) { - if (strcmp(root_calls[j]->name, call->name) == 0) { - if (root_calls[j]->max < call->dur) root_calls[j]->max = call->dur; - if (root_calls[j]->min > call->dur) root_calls[j]->min = call->dur; - root_calls[j]->dur += call->dur; - root_calls[j]->count++; - found = true; - break; - } - } - } - if (!found) { - root_calls = (Node**)realloc(root_calls, (root_count + 1) * sizeof(Node*)); - root_calls[root_count++] = call; - } - } - - stack[++stack_top] = call; - } - free(stack); - outFile.close(); - - // --- Data Processing and Output --- - calculate_exclusive_times(root_calls, root_count); - - if (args.output_format == FORMAT_DOT) { - printf("digraph G {\n"); - } - - if (args.focus_function) { - Node** focused_nodes = NULL; - int focused_count = 0; - find_nodes_by_name(root_calls, root_count, args.focus_function, &focused_nodes, &focused_count); - - if (focused_count == 0) { - fprintf(stderr, "\nError: Function '%s' not found in the trace.\n", args.focus_function); - } else { - if (args.output_format == FORMAT_TEXT) { - printf("Found %d instance(s) of '%s'.\n\n", focused_count, args.focus_function); - } - - for (int i = 0; i < focused_count; i++) { - if (args.output_format == FORMAT_TEXT) { - printf("============================================================\n"); - printf("Call graph for '%s' (Instance #%d)\n", args.focus_function, i + 1); - printf("Total time for this instance: %lld\n", focused_nodes[i]->dur); - printf("============================================================\n"); - } - - print_tree(&focused_nodes[i], 1, &args, focused_nodes[i]->dur, "", -1, ""); - printf("============================================================\n"); - if (args.output_format == FORMAT_TEXT) printf("\n"); - } - free(focused_nodes); - } - } else { - if (total_nodes > 0) { - long long min_ts = -1, max_ts_end = 0; - if (total_nodes > 0) { // Ensure all_nodes is not empty - min_ts = all_nodes[0]->ts; - for (int i = 0; i < total_nodes; i++) { - if (all_nodes[i]->ts < min_ts) min_ts = all_nodes[i]->ts; - if (all_nodes[i]->ts_end > max_ts_end) max_ts_end = all_nodes[i]->ts_end; - } - } - long long total_run_time = (min_ts != -1) ? (max_ts_end - min_ts) : 0; - - if (args.output_format == FORMAT_TEXT) { - printf("============================================================\n"); - printf(" Call Graph\n"); - printf("Total Trace Duration: %lld\n", total_run_time); - printf("Excluded Time (due to depth cut): %lld(%f%% of total time)\n", excluded_time, - (total_run_time > 0) ? (excluded_time * 100.0 / total_run_time) : 0.0); - printf("============================================================\n"); - } - print_tree(root_calls, root_count, &args, total_run_time, "", -1, ""); - } - } - - if (args.output_format == FORMAT_DOT) { - printf("}\n"); - } - - // --- Final Cleanup --- - for (int i = 0; i < total_nodes; i++) { - free(all_nodes[i]->name); - free(all_nodes[i]->children); - free(all_nodes[i]); - } - free(all_nodes); - free(root_calls); - - if (args.output_format == FORMAT_TEXT) { - printf("\ncompleted.\n"); - } - return 0; -} diff --git a/tools/decompression.h b/tools/decompression.h deleted file mode 100644 index 98da8eaa..00000000 --- a/tools/decompression.h +++ /dev/null @@ -1,63 +0,0 @@ -#pragma once -#include - -#include -#include -#include -#include - -constexpr size_t CHUNK_SIZE = 16 * 1024 * 1024; // 16MB -namespace datacrumbs { -class GzipChunkReader { - public: - GzipChunkReader(const std::string& filename) - : infile_(fopen(filename.c_str(), "rb")), strm_({}), eof_(false) { - if (!infile_) throw std::runtime_error("Failed to open file: " + filename); - if (inflateInit2(&strm_, 16 + MAX_WBITS) != Z_OK) - throw std::runtime_error("Failed to initialize zlib inflate."); - inbuf_.resize(CHUNK_SIZE); - outbuf_.resize(CHUNK_SIZE); - } - - ~GzipChunkReader() { - inflateEnd(&strm_); - if (infile_) fclose(infile_); - } - - // Returns false when no more data is available - bool nextChunk(std::string& chunk) { - if (eof_) return false; - - strm_.avail_in = fread(inbuf_.data(), 1, inbuf_.size(), infile_); - if (ferror(infile_)) throw std::runtime_error("Error reading input file."); - if (strm_.avail_in == 0) { - eof_ = true; - return false; - } - strm_.next_in = reinterpret_cast(inbuf_.data()); - - chunk.clear(); - do { - strm_.avail_out = outbuf_.size(); - strm_.next_out = reinterpret_cast(outbuf_.data()); - int ret = inflate(&strm_, Z_NO_FLUSH); - if (ret == Z_STREAM_ERROR || ret == Z_DATA_ERROR || ret == Z_MEM_ERROR) - throw std::runtime_error("zlib inflate error."); - size_t have = outbuf_.size() - strm_.avail_out; - chunk.append(outbuf_.data(), have); - if (ret == Z_STREAM_END) { - eof_ = true; - break; - } - } while (strm_.avail_out == 0); - - return !chunk.empty(); - } - - private: - FILE* infile_; - z_stream strm_; - std::vector inbuf_, outbuf_; - bool eof_; -}; -} // namespace datacrumbs \ No newline at end of file diff --git a/tools/examples/imageoutput.png b/tools/examples/imageoutput.png deleted file mode 100644 index 03c686993e479005831f96fc4b529ad8fbdd67e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2090276 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

xU+7q3C$@*s<{pujERrvaVU9&k?oMlm}JUad_fb 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%0Dp(G?|guRM*5d!T) zK-bIH=qzPdKa^FYDtxlnqNt!*D&y+&zq}eCy_gcMZ+vNJh;KpIu70&@N%gkBqx~H^aMY*6 zvVT@D_RWXi1hO2sW^tUH(`C+YvT)8maQ3m}+h*SHM%Cba*AcG+ZuO$iP40Y;D42+G zr7T`{;t_b=yozF|Y4I)|2)MM+N!if4ar-BeVJWhsCr&G65;}*ZRRYuSt7w91dXD=E zxPd8BLXD7Bxf~d9l@SYorBJWCf8aSIDU1ArKKkgRnnE2XOqif=+TJ}T?}Z~-=K z2T2z2O&=cme=lwqUPSTq5*aBUF8rEIaStc@#zmiw{`^0eoCFaSvzFvfZie0h;n0S= zM}m}aaj=-IOZ$RyR}m)A3fONi%0A&}xN_M76Vp7EvKtq;bsv5c{P|U$p1#@vND?8_ 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%0Aj|SN&C2eY;skSM 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

    U73*JA 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 z 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 z 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ʝ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%0AbC-l~(Z}lZ2f)q|`CVpmz}8e( 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

    ;x}VyqmV)mThm(W$Si96-$o{q(WIMx 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%0Dyp`=OqfZ)mG_uW23Ua1mjP+naGF$YqC9m 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 z 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 Xj;tD;}{k z8L{u)EyWWLYQ3<>3D+8~Kj;vd1CH zo;7VuLuJjgiDC=flVf8yvGB76`L5g}fZm+Ry9&`vhmPyYLh3-c^?IoL&w zmy%o)>@1KYS-ie<%TKo&+rBmR=m(z)8!nn}TbS`uJbt_oqa+)EQb;Ik2F!c^wXv_I z9#gWm;5CpfKLQ%T$YzMXCcJGAu-CtlKg^Gc`qw#<1xpPv9s(8a5F46crV%73bp4YHHr$mUTT4S=){s z^QFs{t&!fYz`dK)CUO@W8Z?RilM2R7fNe>fAUXu{XXIYPMLscD>~nyiPR7-zPucDN zG|&>#(ApQXD2ahJWuW7fvR^uwGwNH?ubX9mP*v48x@ha+)tsC@*cDlZ*H{R$nkC@) zxov(AaPc4h{sD6OpsTBtpl;U9e`pHON8zP6Myniqv{McQ3F_Xoxr_Ca2IYIqPXwhr zdaAfyM@DYjw(Sr#(|sx_!NA$tTDY*Va5Xo#FO}+i^VY2`0s=m4Fa7~~nF;jZ#JiL{ zC|IR%-WsnDUUY z@%ip1VYSDXs^`d|^;5^Fd)dc+vves@wX92V=mivNj@Wf8ZTLLAj4n1Y@J?-p-ntmyEgw^ys1z25)$ ztFO;rzb-a@1}vc+E8cj~vNG%W^A8uoMWv-TaXdImjS#u*y^1H~NrwarUOsQ1%|>QM z8P~Co#&NzK5~wBUXP-Xl>eB!|aV&i*oc>%r`c^;Vjf3yb0HRP3;&Re&xI>hknb*XJ zhe<8I{@Lt;1X5+x%OC;CETJaS@IwmwroiKGhK7a`8U+2zWAd0fjM9VGG#1y!_nbuB^Wmp zZ|{wgSx$?mYOf49ZZa-zKDYklba-`j_5Q}UUoYL{8O?hb5wTlPP(1j4ZLj^8%cE3wUwaGWpiLmiHclNBYtt^9nm9~fbMme_UDGNVm6gu)A3stbM^Yj@s zYR>0asJ2R;NZ-~N6%^-Z6ML^}L8R28N{wf4SNH_zaz-qY-Q~ewd7y;(CGj?w9+>& z#G?-JxD8h99?W|5Ni<*m+JgT3vrRcG`R4=(SVhsAcAj_nemNBnC{{EJhfz?02n!SQ zfK2q_z44_Uy~Ie_Sx>@uohPY39@X_m?z5IY3lW3)59G6pc>x^<27FO#+R?r*UAlC& z^y|xAFk`%}BUpwHX$i|4?dL`hYpUPk$lSuuztpJIhgfNeU_ppe)|J(pg{v@5H~XQ# zKa3wP*K9zChUZMN_#-(nPlt(=k{*^2ALv&P!1lR>MTr&4kQ)UC2LSVeyJlx+Eqt%7 zJz>vj6@@cU!r?b7h{S8K^KHjIlX(7akQ)C#dN{pi6}QX>V(&CN>&}U=a-4wcaJ1d| zh@V7uu!~Ddwrtr#kHxAI7)(VU@jXC*4o=he%cFNIkpz3<;04WrFr3vi$~x^yumoA1 znwxfjHTvPBM=uoKT*fZroS-{S62Iwiq2Hv*=OBhS|Kypx zmmJo)R?_`yNZf|zb_pG|H!@=NrcEp8$mM+eRtO7$wUKH}Cqt;VxB{fOpxZ65;e=zg zH-7gDC;NKe@2yf;X0RM-%ChZRPS(TVv$<5isiLatXqc445XiF&WSId6w)NzIuCt2^ ziRdUMUM>hvFE{fmZ^ZRXfGYFwv11*?_axJ<$3pP%AU~ErNMVD(lB`lor|vPe`!{%Y4iId=~ithhYg zdx=L2pIUe^*|?q_GfOO@U0j=c*kt&L=Y@(2PTaQ0sY}>d_z849oQ6`vrnhDX>D{*- z^`Ute;8rbWVv>ICsX<;{QgX7*K(i!Bu{&J8ha~&l`F8J)ZXR8QmKg7x8v=_1+S(j| z{e)7z00{R~%@=OFJ$%#9{lh z9Q*HqtP99|YNew7H7^Qs7{Y}U@QIR39OM96(t;IF3IurQBbeR@l3%i2fG`2jZujv> z8RB(a`X05O?m3om$RlubhTX57ThewhX?XChKz0mtipt8xu%o#-A{7?bTz|@>BmQH< z?&?;NSNHxr`>nw1Z`fXV3r{XtUqy>C1c}#uE;jNhwd?}fAS=tYapT6q!ITs+8RsE7 zx*va8(Ui;Imt$4$sI#+#cACZA4<9~=_I<9b6nnoHe*wV@$ku$ zv+d>y{Trj>t2(C13Jbo`8|T#v2*EDZyk0gxKVwBAVQ}yiVG#up>^B!1bl?4eHTolk zJ5P(BR}yhC+3{_03}3aF1~Bf$(+4zC4EKCZ6e(o~9zAUJ>fO7KKOOpiiCx>KzVOS)1KkMT*z0I?j;u|^Z%`&DLVg2-s6XZI&p3s5HN{@WSel&621 zRz0gV1N70Tti${yV)1_$hju*O=>V~$Rk=mOd$8p@oHLhSPHi%z?BjS)&WVFv!O(C^ zigv7$%Y&mgz((Dl+KS)&{CVMi<}S~HkM7y1-pAi0J!SgVYY)DZjr_eM0<(@Cnp8>Y zFjZ5BR^|Bm^I`FO%;)=TwquepC^?Gvo}jWTK)Z6y#x_)MfxL7}ok$(Q^y%CyU#TLM zwEj4|d_4dWugSQp?3k-8j+Ew>mRp`n`1^%W!G|O(+1LI4DZv6lckSK78TmH)K>K1G z4-%}X9Vg~(*fwlfQRc*WgMP`9B_@N^<0Ie&NgWsQlppbUukeDd%m#-D{w9B9eIJHVxWvxABO=r-;bX^ub2LRbe#!U&T0Gp zANwB3TG>s;UW6!HN*Gy_kflPDrBD*eQi?VvM)s-fDTqDCVUghP9yQYp~VLR|$ zWx%h=BY(6SF=B*9_^@|o0lvA*Z8IA4^S%Rn!o@4yIp0)Iy-d_=ta?yasmgZI^JLHKhw?r z#c7)5yJ%{*z$--Jk|2{!RAGBA6!}Ub_=Ygg3`V=#;D2RRz?dKEyB4en2rMQ?wdFwB%>tYe^yhKB!1_xVfF4f zJo6L@NZ7oX9fbah53W^l@U#ar)2b>zkCa1yZPBxyL-w5>IK$&}cyP(tMWr`yA3UgD z7o-zl@e5C;@14&D>CN$j8?|s@cTT&lK$;vwSklfZ(7~7N>=&5;5`L|T{z!#6t&cA-onGf;er_C>~8UJM?YZYli zZ3W1?K+*hA&RQO4F9&bw&QBWy+1H6QZ%mw*n5sBq(zjCL332lGg1jo_?fX~-e~ zV$kO|6$)7m5aHY4M-C2iXiRb)%Wuhi*%PTV4nKZuB8Ue)q-QUt)TJkdE78GcnY3PWM)89MmYf$3@S61leF_taArl&iP?&Z~Kqy zUR+wL64MN5EoA%DxlguH2=3jx_vCWL?j`^5rYW(gaM^-xYOF#S`da8M+5pGXb zIgUVHwy zlqSAX6u&*^x4C4#V%m|CjrVDe^Lo1czV&b2Tf(Axy-&MX@-#HTCiE&LbY_@IugG8f z^JHErrQHFB-nVS^+O<)anj_vFzs_BM>f)}A#af3xl-Djj3=xCB9zJ~d-Gf#2Cw%sS zp4~lR(Z1E+^dM-XFI}3kZr;_awhiyKZqsJ=ry+^U$|AkBV7xnnI@=ui^U>Qsr=40h zFE41?DgI8YO!sBeAqVDiN3wM$VEDp^f}EwA)tLp)g9l-wPG{BIlIvA&WuB)bxjvh z_;TjB>giLS2w@?6M-Q>@m= z&RXiKOXkA;I;Guc;P=HJATX8H)V#PHNyRM_7EL$2*3gNwQ1mqK7I^jrFNovRw=XZ8 zb-_0MLC|n3;2k{p%A7QDVpC>8cwkDP6M5*PXW0nHS8YA-KT$n+@AmD{3l?-1 z3vOa|W>5uEX)>!GqWR&Xb$1>*3AObMO(v^z^ zd)w;61JzkEt8h;D{*DPwzJtoIo;3mtfm^OW=i;)P0R8R}ILR)_IM;=gW9RR`*H#GE z&e@!dGD)zjQE&AZlXC*++(0tKM(NnlD*^Mk7EtC<-yIfCt|<48$<$rE@Zq&nEBej5 z>Iq&@!O5ArLaQ0eGkzA&f5o%t&9v42)E>c~-rzjG*-j)g$w$Yl2%^p0@h@{l5GE#zt2n{;TfPig8XY`pyyO;Hjg*nVtWe>i_)Pw2eeP}Wtea$i>%oI`%(Jw zcjP%wD@!OuO6Y}(K z=Jm7{=OeGTw^}r!ZTwft;@cnYq)~XeSNT+hO&GpmZh4w@!HAaIkKQXVyLWqG#DJ%! zz4o*|ZPah?%(vf03>gwN;klpd{JrVd?2k|(p1Ibey_NpZ+{)N5D>=oUWnJ~QKSZ^M zvg!4GD^1_6XOph_4LJKyZ$)X+0`ulmzRf;YrW5)+Yxcg6cb-g7JiO|tr6?RgD`pgG z)=gddJXOL!LK`_tbjPkA`cZYJb!hsS^!(Y8b~nZ z%=vRMgiwmR=vA+GoV(vXDRzze{EPeu`?xh};H8W}Ij8>nERSxxO~NM*qKNVqF!{&Q zV|tg=p_3QPc=Kda)q%+sqKe~qu~`4_xY_3Y>;p!7;n}7T=_S&>BzQZ=4izrICt8Hc9QxJ-uh1{@MW$+)uiZ0gMxGkdhI0;g3d_#EvgFa8`|M^qKyv#ZDH zg6wGYc&jLWw)$Zp+hQC6pPjDUs@1Dc!$RjSQ&Nb%hyok6rwgx;k;rgwX6!X0E@+Q; zF7i%#wJbb5JmbPrl{LdUVBz{Gb3E_BAdKt_-x5q;e2*Sx!x?kCiU_Qj(BSo#{`%3U zN7^~enURXxPjyg0HRUs{H5h~0#bxcO-?f;;0mLTVbpbl|L1S93bw(vfbHJDl8}!Ed zb@V}cA-F8K*_lt4HV-flm<44xrBKuSj&h#vo4ig$FU7=%BN0PSymsck?URUKL@a?$ zM1WpJb?E0*!m_%LG)e*ifEVuBXMVn`mWjcl%zl2M;oEndymM(T=Mb^imw}@bqCPCE z(7^)8I$p_8Qw-7wc$7ZBR>x+YEtn~c3P}wDu(b5(x+CISFN6d{>CRyD&M_T<6mGyI zm(T=aff8p)+L`vVqgM2t_UeybAFpw~4MAmQczxD&myH4~O4Weq_OSE2o{z)ks)^o) zpV@_ohWE&&cW@LBM9wvt*n#I9AAeorQ_#^#^#nG9zRz_MSXmeLRJ#{$Tzv~pri9PEA*Q{6(Hhv?3>A2s1i{n60 zC@L!}rJ5n`ag(K>!2@YhbpGL=Tg3B+OVy9HYx0wCb}3Cron@FeKFhhFuZXK;C^!o` z9OzyQ?L57`FI+Je+>>W3R<9y(9X3pr6h%t6S#Q5ByT3Yfpy_;-#Igf}Y^975jJAp< z!*F05QOy!9oMW!tbDK$KBhoFrXwBPc{bQs4+_E1RYE7!Y!UwS0t7{j(V1UK^vTu#| zA`b_IQcO_kjgQ)@yJ}7AqtHM?KJ%nYVmtK9+?qRm?zS5PCdvA~FnhUsr>#S`-rR)d z|D?(33F$YJ;?k$mNpZ}{`*VnCNMym#0lrBauG^_M0E%3zmsVsITKVy1&yeLY^X3O; zw6ofi*=f|<-2Mg5CwE-9f4%b1b}iGQf~>0>W^|l6qg~T&1D>|&-A}PQJAUGf!%g55 zua-X0Rq{Um?R3wAuwgG%XKJMvteX~=^12LN7c1-fkMaWvmDMI1r##Vr2a)R*mzTHE zZM8STaYIK)YV-(Rbr0*g%>A)@cPp>5mxVKS)dWH_6O-MytD325k8*atoKT*fz2NBa z;tLm4wSfW z85Tf!WRrDxx0mFG4I4K;ZL)z(e#Ww8XA+i+kn7i(yDCf*)x$ff&+_XVb|<%JN8aNZ z+mt%U%z$i`daU}OpO5dc_Nvlmps15yZE09>J3r2&xuI`e1c?;hZda~cN%i`RjI-dJ zii0q(Px-qS#{=5$ou7*oT~ z^cZdUz1JmkU$k=qUdVU|8ABj;+t37#h5@ao?fUHC;&LrDA~9_K^?rR4cT!T(@1Og0 z<@E%#2IpuxBdGl;zl?dblvgrOhyOG*H#gtYrq8J*6|LK^k6e52@=>xMPq`&tlfMMRgbLRMK_8fB^!Ouwl34>Hw;1Fa4{oh|v-D6I9SXBnKHb$dCP}~0V;yIdX?SAkG`^K()`ZR?Rk~l?&0k9N|k6KB1I)r5^8A5U~jENoT_sO_v{KGetnL=&;}36K8DCZT^__ zu1=jgw)dh(RPA>aX(Ii2a`6&vafOtudEdmvgGTQ+=o-F$(*HmdHCJKMsoZ7l6^#w9 zH062z!t+ivbHCf5ZryCAD&N2-dJ8myP1M-m&zmgn5Ck&$Y*tRjD^FYV1oN|b<1deG z`|I!*^e43`Fs^Q3FfkznPcQ9lGBeHhAy?r|a{ZEAX$;c;gPAVt3hvh`57n}{r+361 zu>#Vj6DLmGcH|oWIvh}tJbYWv1n<{j#V^&{W|pYlA*a3rf+I??VzxGxkZI}kN14Z8xDBP(caZ)%+ENn z$7)ymuHC!W1-y5D*-~}k;>ERp9X`7C0a6DzTcj5tRSWH}gm!;~L}GSmn&tXg^LKxT z&kS|hx2IF9)AuUvOb#JIEiNl_pB*|Dg?_?&Sa5{`z$~lh`zwEOHe|nl|NhhF+jKSN zux}2}b4kG3=r&zO z*QXfoK_82Thpe?&T;xJhU(%C9_R!dNW2(@%O_rTm_x9Lc#h;0Nm9pQwsm~?C*rR6A zOgvLr?AKi3{JF@7&?Uo@DH5cvPPy*t`Z#1}^Wn~)s+Sl&Cb=|Lj@H-T@+kLgenv=) z)!02xhNNyM0{}HiIcG5@e2j$JJIB%s>vMjMN>jd`yw5Z&VEVnkO;~h zVePi0uS2j;WJ4kg6A&GZF(OzGliAK+N4dC+kg||C)D`iVG^n5x3ZtZ^Czeg_l zN-;{d-94wv7#rE$)PUp0kH1Ob2F~0R3D=24^H!67E~r7qQ>L^KQZqcxZrJ)a<9itI zuZyC5!}s@5OK|Aj)3RJAqMxnk+@Ph!AWEh?@7%xtUGg^}Nyq1Y1CXz!pvb1QjjSUx z&IA%c;6OgtfHtRkQ!Y369=>p;?62)>Zi*~=c@y?g%2ALoxupE<$Un1Emib`-DV{xdo2 zWo&az3Ltc}vGf(kdnTO{)j0w%vt`!aLRu>(^w$Yfvb3_Qr5O3+lmG2t@hc()PApqRiFuneQ+UIX`efwp58Iq@RxyIlqjQ~}yKWAc&QZYa_d#SJKqi5G3P zRfX|^CC-0x{=}oqwR>2G0^uX$nY8=_$%~F%_NM7i?Jn;BG{SNBolgx01%{pm+ZDm{ zu(d^f9Dl8ju0c!TxxwYVMX?5~F?!*`qY3urGo+|7@>RbH-L{!`?gmCjnX<<0#|&|Y zDSUQG1rW~ChyDonQWI2IQ(ruMI63;pSlDeSwG5JTisXcK zSA(BCx+p=_y_xV@bS52CJu>LxgQ$pz2)p;0gZ3s_`H85UR9`0N8v5kYzJ;W_uCx>q zsOLO3Tec2+49cqRcWm#?D10B%&dTXaahC^&hucP8BR5kBiT2*t5X(X5z${dgf$T{% zCtgp*s9Lmx&N1^cXyB=4C?MT#fC`G;zLOKp)vzY@eRDO}7MVYT{9v@;YUjVpfDhMB zO#-Z%YG(E&!$*ttb?Pf(3;Qp{7H7=DYt#5PX3ZLH5*}sx%Xmtb_@Ka&8iLSC#~fG2 zOIiacCHqUu0o`gMJS0RbHf`Bb+x)7NGG&JW(sl_C$;nf`eE;69SFgrG_#q0(L0Unj zXDMbo>q<3{E=vEOBq=Cx#BdDotk1`eKedfJd;CUKS^~S#RabXT;gr+&rj{NBPZ9qe zu2C?{6BD$CM)X@P5*~QBV#;hWO+lD9ioqG`mF7||OiwKPjHMjScryMcB07{liGbnj z2McM3=0jMzhkB(=H~n?VZtKnLcXod_ZvDH&r`TU)wONaEkha z7rCW8)y{-R5*xFtPT}{Rhx)GGaLzRIoVCwXqf;xAV*Lv2_0FC<*8;X{EJF_d5ByM{ z>xq??d73eHblCBm$%%r}Wm7{^1;V_2kuS-~8wAiS3HU0t4KGfUIn8;NcGr zx#7n-sRrQA9b2_>Lou4PaE_^I8ws-q-bcS2>QIjwM__8O2^SX^OOO8??;3-$q}vkZ znFY@q>cuktl?io-nz#kA5JrWX<^t^sL@K8MWN{#RAWM&iiZA)We$o&t?Vxbfbm!{R zenH~jScsp`Z&QLBurNyiFHxX09J2C7JV%7I5*~OjO(=Bk=&XLz6uGx7AR?FkDHB<& zdv-kE<=_G&z2xypWvIpyx_5)Pajc^_(KT09Zj^;CIP^EGRmX`-+32-cQ2QS}Rb__? zMhGgb6VuoFbk7e~MyDpaPEpA`y@MtC5?zk8`zF)`PXiNbOgb&1*Su{B3o6h%fQcxd zltM?M5K2i&kwzBv*{+Lx=;sl@|J;JjC+&5%2IT3|rpJ9Sk#%LXqceDiOu!t9c+0r9d zd(YdD`ps0`;0fE%?LvJeT&xTvkxnFB9VCHh=y%jcM&d|9@aons;HQmkr$C)#Iq_Y{3Y0s!-1_pIS z$VGDBna}5FGJ>o%Z^7i+{|!ntm|w5oH2fR6_HNZ!TD+vMidG28#z4nHKC7X0Y-c4K z&b;;M-}J%?!ZKGsw{f7hu)i|4t)ioz)27KIzSgD3oaT>KHMG*>DO6J;yd!F2!PMDN zN6Gp_$ye-(H8CiY$>$;xls!$~4o!Q~CX8d0K2et$jxAcZetjXj_xZ$=-Atmaa*|4P zUSx1UF$r7d?bU?A|7KLP2ir@xo2lTgp_IT1x5g%Zb805eco zCIh*T$;>V_H3sxTh#+{3l*~~toSS_9kd=hM$N0{S?$>7+o9xpoA^{#n^&*BZXsmL$ zuQCA_$$;(o4m0&mgo%}?d9+=vYND~#PYm^x>SD=?_pv(E^qe#yg=Z^IMS`NG&=`r= z&Gzy8z(~9XK<`+3YaKTYdBSBs!Ry3~y#|wQ#igHNaBU&ga_E%xWC^QpTP^Yqr^Jn5 zIh=p6lxwZXVXr&v}e&Zok-AxVeVy=ng@ zFE5FCvqg9|L7PoI=?YMfmQCk^%X)&vAG9W2-1yxw#ZoixUFo5ZX1bsIeW>WBt9yWm z>+A03rpaYMv z=j?3yrR2(Atn&c#e%5e|Dt)(+*R*NVCh@RqE&63Iq@#3BxmIk-LRVKjB+^>D`A94~IDx-b(cCaF-|Y z0D;YIdeiQlq4VJ!bY?jGZ#cL}1Z^hrh3QnTbAvXpCQX`HQPM4gjmB|xc_Hju>bw1l zpF5>X>nH@x8veI4(9an7j43S8r;ldV;tgqU+M;NETYUM>KqgB2f2R}(FDzW<^^F~9 z?QpoILU;8W@44v4g7Jm}|IBPaJt;0E?ILY#g)Ja*$*1 z9YH#y+hxG_?Hf1tRbVVR{EF3?JDD9HTuw~gh0<@( zu9bS|FRZDVRdidaSca)Mm%KC_OoVEqs(Odb7clMALe`Tt8MGBH?AD+d5e4Bot9_=< zahM-%chmAatMDGTacTHQZjSyL-(hWz=YENhG0PLX?m9v1zkH zSJj?9efr0`rjCb0$*ub6=macUxbPgxhyk2$Z*p>OUS9JymVD%w-M#w{S!WoK7s|u3 zWa7y-!v~Q&UPY~X>|*z+@=U|^t5@;#!{MUOLwCt9l8!u~`ZD9-bNdM1aqj!j&?2(+ zTishWniJz3`JeQ0+@A66teTq2@rnDZb$9w?g)-LM^oUrM|v;AgBvH=U=D- zD0*+Si(@Fj{0-oCVgN$_Z0FhP{P-|wJtL*}|6A(EL)I;hhn^J?EN58~U! z$t)PU7_!Ov#3-@)GX8ra{_}6C$)ai%wulG8k9(jn>k;BxQ1)0Goh|!PQ~|v8X3hn) zaN0qd-?MgDk@vy zRt2RNc_<~Pm}FiVFj&9iZ{AvGn9e{_Q&p95rL_3uo%62QS+}p9UAS-O#)lKj8?_kM zaB7=bO)LAjM>JX2iL6{xlrT5v%Gah)dPfJ%o+|nf8bgx zqeC3+A~ThdkJr8z#f_}`I$2}nQvD?>S0>@QHf8$st#Bx@4<1Y^+=(rUXW}myQwv@v zyb|I9`G!(HP@#AnJNEjdZxxo(-rv4tC6S6)EM2;t$kB~u#XzULJT=uQCOr)MKy>BkK!8j+mq|VTGP<+zHtJ|k**ZqIeV0!1S=+^_$(yd;! z=oiI}loVx%QA{r=N@}6wrUCU@S=I2ZTemXN;nIqGFj}8Je~!C%uPK=fKPF@!26>I3 z4A>-ERo;_m8sTL%x$CY4Qq5yGtGV)pp4j73aEry)g5g`@$$7eBPO8lnmTWuuMGF# zF)X&aHNGp=F-V%>+_}%AJFf2fqv8Wh;1(i6^)r(pl<=ZT8X6iw@gK3$%RRilXf%d8 zGSstfy?WbQHb@D*b^G>Bj`QT_&wWIC-K*Dxnzg6lcJt=w!pz7fu3zFhNqdTnp9FUe z9#)CijdOc2%5CxIOM*@{T3#_H5=vDMKlkE~AEif4{3NyfHs@c_9z0l|5q#DozvDYr zxi0$hWkwV=q_Wdwf#7D~gLA`FEA4horI%Rj{8$85Kv+Tje05wZbfgR44`g6p+}LWe{33^5wvLExOuY{xH}7OC)V#nJ9o}L{-I8T1`Vc8pI+zKw4UC! zdY{Y6Zq}^Ibf2Dk?^-NcG$^sEcFnWZegQkbfRsR-fm}Xc$;!cw-W~1@=cgZ?8AXD1 zMIE^)nc;@4i0(NO-v526<^k@D_6=F`XYn_l=la6|E}oX5AA2?QV-9amYIW*mg5HDq-G+xW~NuDs@+Fy*@Q#gRpg~-U9Lu+5$q+6+GHA`rb zmqy^7I}Fe7@_e@X0U20a=p^U)fU-x-le?+xdAy$$k6XA?7 zl_Q3>NEO-dyn?1$eVn_tVY6n2sDvsRZ<=##?>v1ZP;_4DvMEkSwf<G*=m|>&NdJ@kMgZ}D!jvVnLN5G?0`;LqLi0k0!fsl2bxclDF$C~oAE{N@sj$qrS66CRuONUwjIbX@f*Sk z4B^q4=$ZWJk(?Kn9Mb15Txg}M-L{ZL%8CasuirFna3UyZ5fDJvA$CiQc*J@SE4Geypr` z-QV>l_1dn32ff*r;c@$?1>Eg49PJjlR+chd9Gf@S;-Um%safj(jHvQ=6^W{Hxgsr` zJ9jQ9X%hHDa#j{TD=PcVY!_Xh9Mdr@@5c%eqk|3?U9WNxxP!EUt7%caZucKWKY}mc zCZmq)>QZRH6QsEe>8N)~PZzlMN#B5^=f36eC^ zKK_+s;y7)KK{%DJbp5U-=S;wX16I;I5p5rwe9u8Izn~zFbzOq_+{>yT*Q-2`Mt0NI zHYq&kDQK8jr3>+2`PsFqElFL6nP)r5{@(s82qRH=EE`e+dBvL{*EchY>7-xQix;x7 zeZGB(5`G(@kHr_4OE71>n``Q9DnK-zjHu8T^?D7_loL!1H=#*;!97FO@;Z zU%Z${5*SN}1^qjRvHzgMDX8rI7%$V9E@i`2s|L7yy*pp9)|z!5G~W1ZdM+R3gyzAX z9$IqdoJ)C!<0!TRR&ud5CMU>IfoR3~Ph@o)z79Y@bMO9rWm+3(oG~yo9NllPP&AlA z4T+hwLbKfzawK8^2L!0i=ws6Yaem&oaigY|)@CxdSF65ycB4zi)YR0fqW`Fx_2@rd zfFKT_-Fx@urWkcfP?@Y(t4EI>1mMfRNarr?IqMOY=E^()!6pI#3Ols<-;_k6(Z&v>h>lidwZ+ADVx)}w$%EzXNAj?czPvl>>)M;J zSj@dyfG~v-b~4;dTnRf5=&_)o&(B3o8IHQASx;PXvc-p*S*k z_@w@hI#CJ8ON!I4SGMNFzMfN9=nXTJC)cdpqD5!NB?kU?5brWnqN0x2YCX0Ygm+Vk zI1uxm3wE{b8r1W2XlOGUTPY0r69yVLpHVYswpEO(Zj&6N;ZITAFe)@Obmg$cxC#R@ z%ejTu7$=de%tMC`RTqpjkVDLikK(4#(DwoOVOGD6A0~oI0*9!6)4a1%D9cgf(&m_b z0obybe+%wJ8G*{r zO;K}8xaXXZZe-cC5Q$bX%~%#K?~^q`ML1?tP-2U6vzwouP;aZU)KUi3Z_proW!4B` zMJ3)~{k&NoJzbHiZOil}?f&^%@^0Ar@;)+BNajYdA!QQz;1$n2CEzh2uCUlMzm0>V zqa~gqPWV?!r##{cE0*w=g#IqIPzF0X)oj#a=!b*l2TTXkQr&f~>=m z=0x-S@zW>S+V&QbM9_Ic5+cEP@~UlUQj7!Ka*~rxJM>&TcJ33=n%zaXZn==Z`0#VZCV=Yz7CT}(t0EB zeY7SdCMK%+k}yl%1LEj&`{2)q8it8v30-hj>_+0fl(wSnn%Dc7y~UCx4bkY`uss{I z4W|Zi|B)$(TGV;u_tmkc=8vZJqVoRM0{r~nLF2~-r^pU>LQ7?_c(FV%3%(C&OAB4? zps9~iQZ@_gAaJQPAjZcV$T(rMYa52zx~nKFr$i&9+yY6KL!jH_?p{w4YYIQ%L#UxF zJ&d}G9899HFdNL~^%U!J330&0@k%~_FIfJ)#O?6mj*_Yaw~hcRsbyqjB$F!X%pU@N zTo>Ve_?YfNwqo!N!KXt>2%MxuEGGMsnZz;_jJ221rDgS5;nRLQt=bjIqZv+JB7uwo z7>G)mBmjw|--G4lJ@%kM?zELF`%C6eIVK6o@#Dv%DFTbnANkP~mGHrHYVA=jRv-S9 zB)u7pCClaIE~Ad4F$Ks7Oz9pB@1K36I&?@$k249y7RXM0jkodz6UV_tyObWt`t$sG z6)6sj4`fx;=VMeBSIpVNV;2d%h!Q0wCc6WZ$W0nqsl|Fp((4!$K5gbq4>3Sw>#;v- z!6k^1h`94t6L43R8T}}Uz0jYWSjxHwwFc?vc!JGU+al9)ltQfv>6L9X@|!X<)M_Ed z;a;ky&z?QInB!LM$j0*a==&538DmLGa1J?R1`kWUi?Z_bew?znr;`yNGN6xt%d}Gl zFjsV=_36_GSEZ(;te4D{@G=E=z<}X^@6ejc(V|aoG`Tk!s*;itu}nD;eVk;(CcQeu z?PK}K>-lB6(y9+ySQsDv-nnnzX4k)^o}~+UOQS0f_GpALGU)1$@~5&!r*bQ(WL`?% zK!%y{uNCz7VmiL*;>E$@;wzd*7APF2FH?a|hy&y29e=qU<#D}?Z*-My{RNi^%pR-9 zp@1+~pU--1j-UfJOPAiHsnm;V36Ho=FJ8R(a(lAN78duYz$u;`I;I53sc6(`qni{C zSerF$+B65bXQljY*it;xO?JjNj$bdPD<6*Qr94;=XjDd z@zvj4r-5C5au>SQ<1#ZEIQQy~AFYJ`v8d%b8OHtS4vRD!~IRdPmVeZzWyS zymOs_1J9>a*c(_)3QoyJz9phb5nQpyM2RnzRLtiWP1dhpA3jEX5KmZ^0J2nWZa^cLra(!%JuL2o{z8DuHB|6!akd)q?}b6Q#}tUQ&-N zk$toGdd2IDK2;l=Hf<_rnrKqkY)EA!LUmb-Rdd$~<_5v!^1{g?&r5_@kp>a=zaUEz z(@D!Lkc2u0q`&>}A&DkwP1ZNnHR0E*!|zLQO||=!KXn5ggd7N13W*d(gta6l-3Ud4 z8BgvpzI!jwBEDWWUB$p-qu}-L-MeR(K6kAJc{149R)2s042zb^DZkR-MX0D*@vT?< z7tH|j5GNySZEr7RwMD=Eo(1N^^j7mBFR+5s($=mEuL!)|(5n5z0sFku2h^;|CHkuE z+T8$v_Z3Wt;j&{9$hmy#>!tUeEyur6d4|5()|FkThVrpGa#Z zSo9eAwUOw&f#;m!>S z5`<97e6PrVMe*3bY$62-ltLNxcQ6Bj**h}Pf@4<;wNtrs=gY=qGQ0Nf^*}X12c9ZX zJKDLd7lOlZTvr8SWFxu@6ckt!%ePOGTsg{W0nr}GSq@3S4OR(IjuMqaA0|3Wqu=kp z{Dy?UUe`rChn{h=r&!H`q!GSpCSG7+u^CyZ6@X}f z_&(hWs5KBMXv{B{L&3{Pi0ue`3l}cThJDX}_f8b@vQJ29C3c*PifXHC0wz*#`SRtg z{{QR&LyjGWrYICh59r=N7z3ZeUsheJm^1SFQtkc9xtOwm6n-i%m#VY|j_#J&4Cw|1 zubJ_IpZj1Uj;1-}{XGCOWbm0f^)`dqs#id)N7@1y2E^2rlLQtwi3+YJdT1xijd5;`zEE_qQaJHh z@kvSD_&MGm525Iq2~=FT=%)}YCa0#lv!*bnZ4aU>f*M@F|K1%wx-Ic5Yv>4%a}AgSOJT2*n`{+*uNh`ld-qv${^Ez{rUwZ zj<2i0ffSuwZMkBi2Kay#zegLJT(rzN!uo7<*Ik|+-t`?yW{5k8D3#GJm=@Y4Mv_5@ zmjeAz(g6n4Vqs;q6;Dp?Isb^wGl+(z$AnK?*El-DhK~B8E0KXk0kx#WH-eO6eM7V@?iu;a>A@mb(C`;>@a&$zSA2ilz>% zS6a&}D_uk!ir;|1Uec3I2d3GqSw0R<+6j+SQ>CX;Xc3W|@vtcI>EnRxDpo6lDn-6J!r_*6!O7l0CwHDbF>zV%d8;>8i0&o^p zJqeD~hwAG0y#87Zrp=n&OiF4X8yUUfh7Ed15PG~S-Fkc*aS#Ykbir-=ncpA> zw8PkhJ6^Y5JqxIQemtIQGArKcxn#>Z@hTna^|>k%`?`{;S)vUC7zAY zP~zDL{EOjDPS};ASeYYpF$Nn-j3Fd}VYAWaGd8FrUJgIde9 z=Ax^mlZy6gP$=}YwX6N7Q@Lmrn)*e5E;Lh=+MUCaLIw zK4EvpKRIvSXgJ<7h?>igGrAw`P(10-gu8FE4gT8b& ze$$p6z?q0&tW@3sgcgeDZAfIHYE27kHc|tj5Cl*HBh3aoP6SLH!hizffD)tMxRG)y z2n59CbCk4GS9c2z?nXC+yH~ojxio3ARrtj&kLqeunSxh$v9{-&!NR8zkleY5h**T9 zZV%IG^4Sczp3$Xh0fndm`6FINbz!L3O2v|%6K=>1^e@O&*-8?wR2#O8&ahz^xjMxM5Ix}5)N}tX zt&K+z#W?A2KvvopW@v$&#Kp$eCUt`Y8wP z5ALr8sUp;x((Qli|tdv^@LAr}TxwvF7UdygJMaPm4+ z`p+}-)9|-t&WyA3$5g+qOw|1#)97*zmcpg{4ZP>q! zAHUtMC_i7Jppx*-_i5j$)5w0`*Vn`xV*^RZTIhP(%A4=qJAZGxrM9-L!JhhK#;|3L zx*NvE#ledI;+U^JiN_Kg9qnWg8%W~eq(r1_G+qqDiHb}#R03Kc6_1@2YAP8I$ESX9 z231GSS7gviOoR?Uq1$iJkRh`69GvV*;UY!husdvqni&Df4OU;xPDDOBiP)=QO|NNZ-!n z$;~-~gu!HuH(*|sY?furiB$SYO#G|ZS#l4rY`(9UhW*?_KGC$eU;;M&{Lx!BB0}=j)HPqdiSJ**LwI&*=n8sB)O^CJ;K{ag-+xr z#J~*@^Z@nYkRoLUn^K}bLa0#PVXDZ6!4ON`6Pn*Z$2f3Ojr8d^SM z2L`1dus3F~-#`VYen$%n3jrv6c}zmKla>(tyFT1>JctC%WX6oZh=^73Jh{yjaKYEF zcT!{*6!bPv!iEhRu`ZG1ds5Bm{(S7uy*B36;PCOCx7X!vIK?C@5G{#3G4mi2DOm zCZpsfC?0ih%6p%$ZBRLJ-*p|1ZN>U@|fmgkk?<=;Z0sEf0@`tE6Q`p#Yi?GfPNMmII4?6tEpRcX>0 z%ZQ%dhFJ5s9yK5EuRm37NgG&p($&kxLBS^>?2kX%D5_5RtF>zdcmqu7 zaRDk+k^SnG8|w=$6FR?gu3<_hIzAc`5_cMuoJp1>uHwCi1rjO;LV z%;2A=Cc$B-^FO~x?M+-WRvKeq@~JfV)stt=xY5&1)vFLS9|9rSwo1UlR8b3PCqulp zh39!|VBq$Xz(=fG9_`7{P{ZZRLyOhVoH=7KcWwvHVa1JvghlbIH8GLOkF$hv`8csA ztR3$tJdJ0E_~wBGT2s^dSR2uW6^g3yJEUOK)SP0b-T?;)WJo-37Wh^* z)ucdQUnOe1K+Z{<$l2o@+drhXRw!zQejo>f|I#0)eQROF(~C>(7c3aHWEoz2Zozyv zBH~Y#0yjYJIK7lRceVhKihcB`^kTfW@{E}?k%rFHL5r61_;FnY=okZr+7WyB4RKJR zagybGgKXs0tsV`q2!_hj+v~+}6G$<>0TK2KtBh!E(B@$r@@XV01+Q!BPu)Cq+-1+lkMvc1R`OJ_Y#+yo;4syO- z)}zyzgFtNsVM$?B=5WaiebT40vRVo%ay+?yeboo7=-krvy<8Gg3(5qE{aN|0 zsujiy*sMHuW*f^aY(fWDJyt#O`bsGg_*E9QTg8bILhvTa*jwkjATK<|)22$Prbv4p z{Ee@iUSP3ur5|@S(C!Sw`eL3Bx&6vihe^30_6?rJo-re6KmpV}qdtUz}1gk#fmpelo9e=bL#zY>*-H5h| zct~6Y*X{DLk8GGF(Z`Q#aEeP`YW_+QuM+bEbBK1io-Z^KajI_M`|vi*LL?}c8o zNfL;h+jnOtr-o&teTGls%{WS%Fre>c_50OqLcogaGC+Vd=0!12QvbuK?2+kSG7awi zdm(}7suJu#9{GtAJ&;$4!GVg3in6tVl_8iS*eo_&jbXV0nS){Lm+0Wec<0#5qq9d2 zZ@h8C2Dcaf=^ZCcn$-2d&kqdyMFuN{Z;hUd_{*){dC>lD4;&mE^rwLfNWVGj=JL*V zB^X`%`85YPJ7<=en!4wHp3&&_>#yvzV=(zBsuVsjB{_K$>^?i{&x;pLmwalh;B$yl z>ft+|e~G+)y(;=^Oj9tFpdkGWZCgEny+)<>c6QNWUoVvmR_QT{l$gA%W+qXeWp)5O zn@b+<;aid*8R>PBG>L9H!I(&kyFRqsAY26(jre?^Wu49TVF;k1DjHk6k#w0gHhpfsuB~20>sN~p<;nP5law?XC9!;U)Y5{<2$PCnV?~ zAKLH`kd4}>>jQ63&ujfrtP{on*0O~xa> zp^}gW29AzCa^;FHaoFwPg(F8~ksvy$L$@HQGJ^bx@%y|d18wR*$a3nCCwK41 zj~|N4^R@J95}w$hdU^+K1OAyP|GgOv{>sb*sM?{{Q8v*Ja3c3NQ(>QCms`DGC?9g^ z(oHh+_$L!5A~|mTu6z39#|<5RrzUdO;HDbu8=KqO+7fr>uB8XJIwt7Iduv34mJ;0k zP8N);Sh94fa*^$#MfE@uKIvS#`0zF+0hG@Y;~v<2WR;(u(tnMUtAAqR*uY6kfR`vT z+>&&3biDJe?U%<)q1A%z|Ie2dD#PIL@TvL6GpU%)sD*@vw!W60p58+*kxh;NfZ#()w7g1Egx!I76$B*3z ze}UFH#kR4E1!N^>o@j?X)ed_N@wAQcm8?0#{W5=#*N-8Lu9+0xbL@#njmGaJN?Md2 zw67IrZ&6g7n5I}j3esKQ+bh_k|8B=stI%c*S65fh&dyelivy{|-oE|zc(W-zg3wyB zZW|f_fOBpF^wbJ9^@15_e4w>Yl#kaDOnNnaaTw;fkOIhUE5T&27Y2A%WJh+6j&1BO z1_zU$uyw#q4M8RD+_@w8D(HfitD_%iix*DhbVBE=7j++xg_ zMT?FVJItK9*KR%!RRZy&M=FE|{(&o?!rSEK)da1G(Lqi?!-G#k3-a?NsB!b$&TH*r zX}Iy_wb^o91pz~Ub;s`TavKN&?A%7WHahR> zmlr*6LTH*1VwyAa`nT3%QkRxy%K6aHX!>*&3Lq3g?v@QXu+v|g8&8~={qkjPj%?yv z<0uc;_bdTcwk!eqZyX&RW3`^FIy)qY%Z7v_BNd7$CT8xJ%z%N2L&o zc=VQyIM}iqc&9Glo_k~vusfG97M-Q4nwpXMTBr#(0yZIWtUAj|;x`93ypq8|R7C&x z_53tDi}2bg(%;s`X3G5eejMU~mmd4l z2j|-|EFd{~r{*?p%#``JGIrihO0qUst-+H}wjM7b z%Cexau$Agnrd0+ez9=5igD9Dv>ayD2zWvl5kDZuB-1bGVTESKpXp`ZS)H`(O@%->P zo)Ztdv4g%(WZAaQL$$714@ql0=rE_DrZ4F2l#vfJ3gR=e;@OXKR#OQPfj!UvQk{_2 z{1LSM^s!@xW-HTvMlL@mZdjQ4r7aTE!oykO9ny!tNK9O8u<@R)?P4NKTv}Qi5*TFv zn?1!i%(J zykxJE0{%Cxpcwg?R-j~q0p?N8`)o#j5SZduGIW`RMJ*zIjzb;?53oJiS{(&?Ah)M+ zN#Rt6|l0pk-D4YJoi3XhDv>tjeG-j|WT|$A8k!6?d6*rzdX-~!qvEjiD zNRGbsp8(C)Kl1TmH70TS2SGiYE_&%10A#S3${ z_>$dO*x&S_p&_udKm8-zYls8I^y$+rZi+BS?mZEHL;VQw(L_6rFN3a^Rurl&Z;}3X z4ZQ#5qH6#W-7E{=zc-vezZ3c>HyMo@tG`3O%G$NTXV0#TAN&4*)`OIQv(b)mSHh?4 zDY0$d-0wrh@Z?Yub3y!xlE_R3zFw_wCAu`RePBYRA6?vIPCSxfP12}^b>v~?v$<-b z%R;5TolcbxA}$y=uAy{~Jaeu3!I_`Awz7g&N|`_<>XljwG3%g%auXRAx8ToX$LdkH z$9~Ox%C^kfzqX!Y&YU?JPoCUlFR=9$m8H&%{00IM@Zsah#H%47du$DNEpOKbE8_$1 z#{5yTGTBEq>pByXL!vaGbI!_rB_ICO`rNo;{)>~KLF8lkMMc+gEcLqOX4y!@CpAq? zoe|x4*SO+DwUq+Y%3uY_wmA|ePkvai3K6n)xG=EbS2d#Z8c~d}0E{VsWjbr zkZ8t#H)VPf8&2&_0k^~5rx5BnHnMhZ*<=aJ!}E*FGKS1`7}&1qkiwOgXRfRzxn$cxCmitQEBE*`G#qHj=570jiNjZsp4w5p6%GI9 zQ+~JBkfKP%sQkTleRC^yy5)|z#FHnfYUnrcu+N~+lCK_aGUS`yf>-Pw^n`(XZx_GN zh+BW8ovkMo@x&*I7ytg^@^9^HKsLFQvii$!mzS3-=c#Qx3!(e``SUF2&=#BQ<|c!` zf(sIx+oxFHjXwO)DTe<&JmpJ9j`zk!D_<=hetA>Xl@U(ehMc~?)Vyj)#js%euteMK zap|o{BpR0uyB;!gpM4m0r2hSs55v@&lL61OuIX>w|MDj(>u-!ke%P>K$xs`>TNaOw zloar9wymGpvWn%_-Ezmq**06LI^v*K&sCvn%RR3?c@p5HrO}xj5CElr_io-%K3Ud5 z7N3@Ct5z5ElB^ZwaSH@H`~Dq(zEe$wrJ_VJp=_4Dq*yK-C+hz3uF-H%I1FdX-;{mLuR z(RM1Da_sx)!t}~`nh`%fO^4yLL@Elyk?7XmwHK;B;%VDet>RXj!xQA6-3iEvsFe zW@*X5K|L0ou8cYPZL3kp>C-k!e|#x2{Z{Gmhv}8HMt_9qW#nF=@ywi^&66A z2UIL`uR2YIFR*!ha#tps}w9*I`j++X9HQ3Q=jIeofe?K8#2Y@7am zbA8q=oipbE>Xvwe+H0$FLha+4GD@v|Zr{=MsXu+I>dw-b+G3_hVom`G>6fnr<+GB{ zzdb$u@vX^7Z{y1oKH<|m%ujiI>yV;Y-k)3A<2BwY_eWLbwTd>InzZukX@%}j`ZvXP zHgUOj=v)t@eHo8$t;uWieRHy^Tz6glt;33betvC%PyWFmyuJGKycKubQF-g=i?9D| z!a1}&9*_R~EimU^w9&GKkk$ackr1Y=M~lC|IzzYggVDFz}xp_NsovnynSp&4Szb0U5Ilj-wTJQ7=b7%I5 zZ4?w6%do?q#sJhTEPj;fZAh3a@rlT1A}|3-Lc!erlUfW`{P`n?NFNZ-5U zs^N~mF5f*m;3D}=1pM~QjTBH_IbmYk!kE;KbMvm@f1sRrii@!Do?XJHF=0%WeJ#F9E8CP zCVLARYi5&qEZcGgt1a@7R=+^CM?}@X(<%0aO!0e4fssEj0;17*~gJa0NPn zq#B3CcpC&7ct(Sz7NDj#@Gm{N$e-;7QIw!Fu;7h)(jd!aII;eYO#g4|Gb%j$PO0y+ zr6r6|1)^|c*2=p4k;eMaz32bfp>Ww#;2zR27 zIb7EM5n;ERG<;FAJ+0W#Me7>V(t0gSn%38O_*(Fg>lmNIplxOodmt7ZpFJ8cK~@Oa zk=dFP?gX1g7&Vl2;zm`XQ?(_a;2}6}X2`@jSo%dP`XU9CbFlRGnK_(a{7-|Jp@>8F zX17gm@Zemc7W*ehvTfePkGbp7n2&ev(xu4djJ6M{+73Cd81<-XOPzS>mJFgLq~^%i zSK_UVV>QxlNzh8KBnEx1&KvG5@p{ZsyWoq{^J;zTCvY08&i63(aBW8QOBDJ7DG;wH zF8dCKsbRcI7bgBmXnW_nYiKl&BO9K$vE)Q?wfx&I4p`ihRHc1+-tbG$kHY2ek4G{l z{`l$B)^j21!xLA@X}}M08VnSCr{(O~*R6-1yb;UL-_@&EmF4zhUgjXQ|CzE8j>9+) zl_naeeS^olPi3MZvuY*!v*2+nzLGe{UMWlWQee5k^hS)jTJiqrqI&+%|IBhvXDbk2 zz>_i;`CzM27$3mXHb$0JFk@Z7)#=&4zaDwdyK>*&z4D#grK~*0cOOos(?K;(K8W0B zv_4gL@Zg=7f5>aY@5GtZD^dTeHEU9Cv(=*d`tiwrcqS-f=Zq?$K@A+a;1^8#=EO|J zg%8lDn3KL2wU0qPNe`{i50p&27bTTt&oP{KFMFYy3rPqJ` z5?FZe)q8nZ^^K+mNn-BT=FWh@qefX`*Ri#=wC$PSFWa{lN^&Zd)sw4B$zoAxhP|PI zJxMu5O*yCYFw*!Txmd+)`f2@EoP#VG(pBM&;X(lO)N&$wqVj>IS=`pz;+CF$ifI-@ zoIh?7K5CfhGVt%BQD8~{W)R}Dw31;5v%ZK?=%kgzV>e+k%iMeil~;THMInYCyJuEt zSo@i=RWX?5iEi8^fZY4r_feGxvKIcdd2`Hn=QkM_2fji;Q0{yl5ZvrJQCv|=Q`7Bz zyKm;zGVo~W-on(1e*ZB;TFN_ZMOH^h_+hkWPfbm4g{u9?UEQdT0uL>9hYTr@2gc}W z($ZoZ<{(ew!#B{$snokN)Nrj0k-do5PYBgD#5*By_;+7PPPmPrO)@-k%_JAamHhma z!(5xCtSv(Jtuu6}!eLd(F*fs5peEfL8tN1$W+QeOyNXkQKK`Lh4cRg=|NBCBR#NWU z=Spa|OZA8%l|l-01`~KFfQ%6~+ZgYSb4<5GxAjift_27nRp{h&hY$aicVCGsv?MTw z5tmgaXST#iGAQwVR^8@lk4EmzuDuU2GGEY?lbR>RObg@h1z2GprlB~kz>NAw-pHN< z2j(a7hxf(zc}x1xjhr1FZ<8( z^AE}X!_3THKdU#_!eS>xP=JGd(y~%V07&X8WLZ>t zaVfW1WTwCLWjp}BXhkhsR z;+m?L`Na^!omnEw9q$%J3&0!xcE*eXssfMvnPV#@8T|P62Okn%VlGhlB{CQiH|OM3 z9@0l!rl8EzH1tkH6X2pi<$aCAg?%i#8 z2lPPN#38$}Qd${eVMSor`P=uoQqeJTTjbpg*{kAsU7`Q+{(Tj9EDGQBo2Ql@oO=hr zQ5v|o*~h;kCAr5OUvXzDzVy?%s&MK7w5&2P= z2S+jkYO5j=P=@){Ea>#IFIq!m>}Ymv-+NrAtR@vj@h@HGS%=9RQQrhF!GQeA0w$n( ze(*sU42a!Wu_lPa#|>|bXsL@R^j+Ei^~*p18R>ZksrpTfUNDn7Oiq%LleT_Wu5+yC z=lc5A)AtUsU}G$YU^D_vP=IggM3UUF(yavg%m)?af(hzkdkk-o6P2;SdwYBvgtT}W^)HjxlA(;I~{l+Gikq5Iz9++`r_7K>l)cf-n zTUg{;_dA#s&K!6Za`nfL9!XLo0>oE&*4}o2u`qseg`oaNv=RHWKhZGx`b(>qJOt~V zw4NV3r#hIMWvZdD!VwJ0q(}lQKbvZXVlyAH&Iaqc!M;YjKnIqq6( z?!KR_i35WrUy?pfkV75MT#pkKchC3VKaAaB4x!8=W+(EeEx#QRHq@J8qFb%0ub46rUVTflOYccYXpG(!A0C0F~{P?Cgx_Jv(PlDc!m7#)b07}KV*bT@bVwa2N@eXp+?q!rYNRajs{u34++@H&3|$KTW)8Z zn^(56hR?G;bPmT|%ze`Fo~gQ>o`&(MbWxYcsE$pnKXNJSMh@9!j``EWU{6565m_ROHPtb)y}AS0KA|R3HBnoN zE<4=+#ao3*VKYkhA_9oA;Pl>4CvUn`=}}dkT}C&DxQlvu?01rC&P`vVY%2P=XwHcgkc=)~`Tch* zKr(K(wh6!|i$@7rnOio4_}U&Gh!gU6 zQ6Iiq*w6HSUe}+^xkp2GB`3#LUDaKze;SjlfQXMoLqr2}$$50)5~@1ar+8g!BOdD! zkJw0~VFB4no*jeWJ^S{Jg|v4i*z%5I>V1I*>GdM0$S$$2)3NDnf`Tf#j$Ta()$dXm zdw{F$fU(%$uQuMw*Ql09b8V#7F6_riKsAf=?Q{~4rm^oCu&Hn~9d=_8VC~tzKaz7o zdkiLO5jfsG+#AyX;DvDH0+lS5OvN=_`bpBYBK1=fsR~d0@Uy(`=eK?0>gBNSey{e0>1?d7e?cX z?WT|Oaufwg6_bMsVANY7?`qiVQ6;}XZTJb4%Ux1k;$lmBzL{U_GNEPx5JDON{E?+U z*VZe#Ue6&_8%qxq!}bc^F@dm4ZJ(D6N~{Noo?o0GvF6 zlDQz25xhga99Mq{{aC<+ne_NsA%=75+oL=u2cR2?0nMKUs%=Z_7qafL2`zi3>9(7x zZ0G>ii=b5-JZxBYbvDW3hm$vUV^f5}AXzgZ{b?YTp3$-J@Mxz@UpIYTBC!{td7?+< ztYpoAI&5dzVDBTv8f)mvyt-)kno3N*bjh4MP2zWbniFcQ$7S)X%$q{e`DN?Y*c6Yd zg32!a=^LKT#daEB{mJ^0(b1=x%pzy>)Y6IlII&-lLGIRHgV+*hu2dFtP9!WR+wb4GnJXwWpO_4Z(1S`3AMf8$|^wcqPO`P09t{`G~NR-c4I-B*tI=us6(oi zFgWyV>dYN?(Sdaf=42|V6Oup1_esuZD@|I3nP1bc;$UMetpujRps%Dg#Du1UhD=?x znS~m;>4SFyv=(IetW77X0JnI>bkZ>Hx%vF3>W;j z5gY*;hCicyHlIJt+l>D8S99sy?p9aFajgZj>8Rg;!-r7Rp_=dL=t%flj`G>d=3r`< z$Fr6Gl(x+OM6L0%;-Q-=_Dbor^n_MEkO8OoU z%Wc>#uK=r3kR6gRW0Ss&)zARB)?`d&0oJApzH3PoF+^}RGWYxb!z7}jR116iSiV$O z++FzA@_DW5!2ZoQMQet2l=Zl`AEDOLWzBkEe4>P`i zGj(LKTiQ(0F;9JYnmfykK~NWi$h(ad*T9mMSBEy?bP#@c^5#^<@)Y}2Cfq#l|K7(3 zdkRvWdyG5WoT|Fm7B}@gI>ZtejkEsNvt}J(G`PL4r?fv75h280fHqUQTYmeDA17}N z*>zc)A3)c&NraaNUTbH@c(*b3^B86=*{#GyQ;|-^)Hd&33F$BQ&)IF4VP#S#8osU3 zps%Z=GwTIPlbP)I_^t`LvhY?Z^IY`mcxVO|)3rpiA4to-C!gS9KJ8X6xl@8%Fjx#5 z5UydR7)>!!G`$T!Cj~c7g}Gsc;I|MwOy@_@+bgE`Zx{gPZp#{lI-IU7I2TXqJSJYC ze8Nb~oaHrC;6DuS{UHq;{f{8hNi~e?n#k#Zo&gdWOweaYa$Dc=vp{5%YH);bCGp>6 zXE^s=#oW?jM(shD$rdM0%o0a_>?z`fIzq!K?HJwl-8*+Im8OdqN1bvji6$Xb!PDf@ zII6DC_m9HKGs&%>*S@RANLbza8CW5Y@<=<0OIQgeh)s|<3Sish3G@Ydi$ZA=X6{Vg&p)4xtZ1(`S0=`QT7VziJmdO+m#^S8ntwlI z4@#TAOGCrHn6U?IE~Q*{uzRlVEQ-afr$AXcLx#jQmQ}e>;n?t!6m)F3{+Y_=oD|=C zr}%cY?Bv3m8w;=a{IXF807S+}X+!lBzt5Kv3zAY@ZxiMzX%(c1p8fhcko)(|BM5uf z<$mLdj|!+cCB1PPEs86jPx^A<5I9N>0@Uzn)xo@x>n@R8H~?s(RN&#!Fh+9uJOj;O z((%APf{8GNiVK~a96cg~y>e>DtETXmAgVcT`5_vQ+2tugu=RNN*mCmFc*l~`q_LxW zVJ~bl2g4=z$P|M$kB=fdE2$A5L!mlVIFy!DU%=KHg{TIdn0`EnOu{?u93+2@!4tUrD3VWz@$XydwXz7tps zpgle~J8(sN5BGwOZN5E*_|JvYvhT--cvwp2I(GDE1s2{4?!Xrvm$DrtQ58B-I%D6T z0HddCWaJ1ebhmM&uYBiD z=KkSdvJ7YzFo?0O9l(T>0>~ix+hV4T>}k4h78nnW?2Z0>NUKOt)3C zFt}Uq;gkCN)a?}4@|2PTwC|Yfc+f;7Ip_W>ZYltcTgttU8lOE=5(Rl>`{o97r%(xe zi!q~=#svEY&(w8|CvYx&0nGCgi5`eThV0I-jP28l z#fRjdu-w&IOJQgzEhnBf;B%B2W6Ub#xb*ITp@qbWo*#c4bLh|^@5;GxHn8>1bhmIb z$G}LB;&vd?5mjCnH*Jtyb6yA5OVN}sNM?*vz(Oi8EzD(I0=Ye$MC;7e^e)@bg(fY` zZdFICPFn}wMGGe9h!?#F1!LR<`mLM4ez&os8kAE5v}S?-QE;JrFs`|y>hwpf1~1Rd zm&h+<0X~`G+-m&24aIvn9jxXEpnR>{SiT0h^Kdjv zvcA-972al%WQsXlJq0hJqz30(Yc%le?zE=JFR9UJxQ8OehRVL3eJ9Mz-{E_uyS0V& zZ12P=^JvDaZl#>0!HKV;VXUI`vGwFH0iSEPlzUcIZCB&DvnViNKFfZ76`c0;xz+Uk z`yvLurg6Fz)Jw_NY{9nZzTGeCCwK1LIrZ^3Ch$RsfwxY*qo2%|MJb^wtCEZDiu4l; z5^eTURgrKt$FDr9g$padVY*`zWPt$em=+&GO46;rkv$CCt{Y3@_ZclucOTc6#V+|$ zK>>nDG>?J;c7>sk+>BrHAw08O*>c~Mwak|?9F>A}eegR%pE8S>i7iDK8d3vKd1mly zF5Fi^0N7=cAg2j^$cwOmp@R@|Y!l_BM$_=>5&)9UFgU!hX1dA{Rcq>qb z?DF?F3ocZ-3+oE-4W%^3u%T?@-|n|x^Ktg@DZLg^O#~XQJq6>#D!wYOMF7U$ceai7 zAWaEs8Mg_hFSNC8AV=d0LZ_UZoa#o6)5pP}DuF>e@Ois9Ko1(@Jy-9|;vp@7f_cuu z6r`H%0=Evr&(#jhMubqXl-xD6{zTJR`BnK5{=A_sHr-zSdYA3{*Ne!$Erwnh zBbjY4t~Wr~9^;jw15vYX2`Sy)etRc_7hP<-sMR&7K_st&kt*;F)c@hqdox3g9Fj}C z4suF;J=!Qt(a%KS4jD)5Qo@oGk-;7Maw9#ReS(a(RY(y>*FqSssH|+(=J=z15IPRc z0*hcxM805`?B<}9XK38|s7IV#(zlGDS|h}f_Xw^c>Y=0>QYY!fna1&E+NuO(Qlr_P z_M*{`pydPY&!Y%laPr27{rbi6mlTa7$!p8+ zj9XO`B)<1A()V+i{qH)rcBz{{u;~|b+Eq4*;ol_}OK>9Fev8UxBMjqA3O-#XmEo=* z{`(bhSdHd?ta*OJ8}6m8eslz#gB2JDE!+zXr!Bge;aZmq0H2ZQo!Svum*P_x0&e6M zTDqq`OQl5n-7?^CkS}V*0Qq9w#j^999Iv1@25jVKD9ma>MP| zc_sXYs3fFur#3?@;#z`?#u}epPR=pvhYIYOrOJZ9l2*uW6=yFAQ9Tsk3=!=7^Zn23 z*k&?l;>0tB-AoLiCRl5kK>r}bAX&DE(+dSsRgj|97r6s({aaJhLQ4LUn!b<)=x%a_ z(vj}1WDQ%XM|1o^b#x32ZdPYYL(9?+(Mh0}@k~33MW!L>@V91WwzFsNFYc#NwC^vv zO~A6FDC**GEGvl2ZM$(?tXu~1ZF0=xpjb5#Yb z0s5lAj-aIv8MFG~yx@szX5oChgYgJXgdSgs&@)2G;n$%#@`ry)XUIBKMHJE#H9EjL zH$i)OpGYZg85n1Dm^x4tOw3NsBx*&sy+&kT|)SI8b(4?)g7tMGEO z(mV6;AACngsYaat_2b)|7-9D;%e_aj!qJCKt%PVYpJ&=AfZ;$>aL!vbb(}&v3+eKx zFz?w&h(K9n1*xh+f|hD1FM7_9k7!twusti%I-PYF#T)Q0&AYT{Q19e`4)z_S`7qA7 zg49tB3V2%-Us7+-q190*3I4DFtF-B(2DM|kxYW}Ewu`qe|1dJ8W!#&ua2{0Wo~Hnf zTNW%t1k6E=2ewDG*HY%oafokTQO;;>Sni;W=cwHd^}jV1p0;~;&+ zVB^3w6|8nET$)@GPCs4=XG_MY^{?sm(MK+HLKqgz;v3sjzLrCGw5VS=g&kFeXS^;}GHX@wytdcEK1%dz(VK{K6g6m76AQI)MU4enocoh#CFklMcW#EYUn>d#r zq9BXNR!RAsS{Z&Y5e5+<&!cZVQ&-i-(+ay%F1W42L6Sfvu%JkUs1I<|Yr)gMDYrC& zy#>ae445f3S|qT{8V5dt z>B6A#Cz6e_;1#;}^~w#;1vVPZyCuFNNX7GJ8kO0~aeeiRb(c|wk#}xc&u3(5!Dvks zHZG_5N=nn>NCI4wN7vrr6Povj?R>6$W7(}G&CqDC2eWChBC&Qdp5q5{Cr?WKE}2Xe zEl?9{EhZZFOt!YNau!((su=-D1=^5GfMBYi8n9axotgXrX&*8TlM=}ywD3Z`#EEcQ zN-0*>>G(kL3unz=r1m9i*($SXpc7&JMWg}dDv~MS0)&~@3|em6wW#KhDe%!fMB(5s z6`I(83Q3&m9>&txUv8t36je)QZFQQIlIUqHKoG6x%{x>aOogZetB=954f_3(8ZjG| zx5n$f3s2`&&Sr;`D5s8W-MY2E;x%()j`nVl*N%J5;S_`z<`GsehGGHGOiBmP+6d{v zxhyf7prwR-NeV#6g4_}v=`{u91$k~KZ~kKM6i24K+avB3`gV<~>=#!X(Z8M}{PNEB z>dxhq?QOQ79u*`fF|jWC_zV37v7VsYbgl&m_i}M@@nqdMG&CkHWnYkl&6^oMX_6g^ zX9TDgKGy;)OSYVhzq39xTWtBH9gs8aU0+jO zSy?cLMp{A$GN(&_EU!RCD*~pb`dX(5^?OE)1LZwiUI?6vaDaeHm#_kdkqAcBI)F_11=2D$&`}u-gS}a#`o;laR|sW zr9?m{ig)B>Ix`Q9{H?nC`cy6%5=+uYd$kYVkMhI{hyl-@Pun3|5D`H?Sdtb!b;XL~ z7@h4ta3D%pz;;5%z_0ZTb&lX6WP`y}fk+=9f2`nl)^z*e zL5*bxzenXSaz+XEK=?83>3-buNxXkGj)c;TMJk1H2|3#y0LKZcEGTPOZiUw(Y}ZAV zOT8J>U!|JMPo+#0)q8<1Mo=OS}II)Sxe|Y)VtgAnlVgO|@uZ5O+I9WFwoC+a>({P`kuyv|lo`!7oLd z1{V}q4V`o1YpfvwBdw`0zc34l#WTTftN^ww39%K)2t*u9g!DwX&5m{pp!up>T;^>; z?czc0LN@DA`&A{zJN<*!1ByOoS!ss%y*;+KY8cC+-Xg@>T|Pz0UlWDeWyyrVd3 zw)!N#b`;n#zeB1Ga9MDC{x=6^ga>Y-VYvLmpKAuZ{JB`~)blx`t8vy(ASGx{k!nz% zNr5Wt9-?e6vo*hB8fp|rBU;6|1(sZyH5&q&=l!kV{YcCe=%@l)es|_t|P2EIn4Llt?xK<3La122T?V#_Kj^f*k>Dle)Q!p>;LiD=MN*-fA-e)>~Y%-!ooKGqxOl%a) zgj_+$0H1i*EA5_FTFk_@nx`xyxc8*-^(4SW>bSjhzbI2BLH6(ObcfJ-PNRI&#GpAp&o>8WlR zSCy)0>hIM1fv$Bh4~oH)0|*p~R8Lp%P*WP(uY%o)&7KNt+r_jiB1lvQb!zV0^TQ9F z;l%->_vBaZKL5uxY7fZe&-f~&@OwUz83Wel0uHyQYjSbFNW*=E04*>nuA?+n8@$z^ zRycV<(Wvzb!e9;KRc~gN)+W?Wp^)gmskoY9h=Ag18|JX*J$shpFl-iA^}=Q_~0sF!I3#!}b`_)o~s-8T02>H`KE**QE^3N~A!m?V%UM^k-z32#KjXggk~0a^Uu`f;Hh zCB{w9ouR-^uAw3CJm%)plyV4b8$SJ>Cb)Ewx)6`)`uJfT z;MBqV^{**cxDbVnr3nNxYB9AyhDTGhW~f{8T(I*z89HDeLLqrzFgU<9C>B@+ z8NdJm;VI}aZW=($)#GNXFSpDD#VG9V`BV|BJq$Xj%1>QItu*GKB%DccC2qDzN+d`- z4Sj_Ga5m?cbG7x)lxvaqmqqCDNkPHrie`y~iOvUX7?}&5&mbhNH*VYzNh<>bd+ZoB zL(Czd4o6`_HA5IN^jxCy5iC)y;2Q`VqK*#sfxMqVnUemaei9%0R#;gblD1j);-kc>kaP>WVdnBpSL;DT9zcT9j?wi&P~3^q;>N zlw(`yfDjUhV|8#&w}jZsgM~v9 zIN?7I%In4DPwDGzqsAVX@wY<&$;`5jpNvBCC3C95kHq5eD!vLX?H+AiEM0BdW-;Osv zs73{1f(iP58BW=C*-E*U{39n!FSGfCfJH=6NyGBG^cD}L8tzalSfT6Ult|}l6Qc@P zE8|3>MUZI#kZ6Y0{z0&f8%2+vh=h_g^k(gERDK6*9WBON9tIR{Y;$L2FY0wqkrCBB zD{afj9uHENht@ovQXRGH;q383owCt2o`W}N^yoy>KH%5V;z=OnTv*-Mw`ho$66G0i*GxWq$&o}#wV}d*kuGV7uNtyT?ntbaB6n+Ik-ip)F z8rIAQ6|Je997&Q{`bEya?;jzOQBY=|1F2_oatWl;%s2B`v4H&+JXVK16eHE?j^ga_M67W4MGW&0AfxO+lL%cKZx zlZ-R)Ids4HBD_%Eo5)`!-1zXNiRM&DQ9>OBn!=zQ8L(*5(VocpqG@(TF~OfI8ld{| z$w2^7AyepozLJCNp3T7fVP05uX{Hm8%<~GOL}~R~A8t0TV2q~6@3q7<)DdTJ(ld_< zf)UsaZr*#+f<+oHsfVp2}n+=)w4l4<(86$sebSxobLKwgWjMa zL#+6v_S%CyBolX1Uean)FTH@vWMBsgM&C$8t{oZc^*$`c*+WY=z=R56gPl5E#miU$ zGX=I+U!gTwU;9^UQnpfe=unQ)UUe;+YCp`jY|Tt}BFF$r&(-gb zTlFaoU53#K09jSke6$djR?K0ra@kzUON$ zq78}$x6^;TDbhp~k>=~xH7}@o-MAOsvn3c5keMKA2pJ>^N;|?mJO;bc+Qq>PPjDWz zNG9=$oGHI46X2=`H=YEnB!LS1m~~*(H;xImoV$FIQ~@oB-J;d$jsnpL(IsPScomq6 zz*$u4xI6^ABUuqMj>n1K(z6*9wTnGMN;^nEnWt}?9}dx8nCDFS~l8B;vPJ;b+ZaXNWbC{6kkfp26k zIsgZ17tdvsFIJ#-9(*ia{2GMtM_2?SCPV;bcVTn{(X8rJv0FZiHIL#$p$4Z7 z>UYp7ngXX1oI!{l5!kyt+w#jVNC>=ggKQnwOd*cv$?PQM9Ht@8j0O>fgT+aurDj!T zn)6g>4v8`VC`!Pk0L)>yF52RwA)jK{Y(LOX`TT1AHRJ&jr^`y!w*d^iOG_ogbG?2S z*AGrmlBd#!w;;z*t!@62(kuY9EF4dVEl)cY{B-dSPT+xmg)oRfDO3KBB3cKLTxDr# z8(I~CEyNQE7*b})xHs(T5IjxFcj&bk==dnosY^+!e!bl*9K43NN4{vV$|4wJ`dX^z z_QD!Wnwk1ADXbSQ(q$dOuRdN^aHLAd4JP;`4T6j#i*R2!KR&(3)uGAilnF@$RiZb4 zV8h@8)HrNRI82T{8KW|^1G+v#fzVndN7Xxf99?vR5+};w`bq( zCv-(h+z$$<^*jj`N*N?VQN_r*opP&aKzNe*XnTMHJXwSx*-DHc;zo(fhX_q*$c59x z+~63|%7wWZQIcMH*tkxnugRNr=eqPKI8K!!P$n=1At-b`=jVn>P5ij(K$={@2R5vs z*g=-C7#+6^WON=ySs^sBbdY$96oE>_!Ed0Gk0zQ)yQ()^C=!S&C6CIAx@e-7*}Tvj zOA4jCAgU$W1?QCKQ&!d8bWNxfo#^EsW|8re?qGo-Rugk5G-q#1Xyd!C^7m^F1G?7D zEY$-Wx#zn=#0ez*mFFDS-z09%;)ts8K56v@<7OrX#g0g{)dPUy0wCl9%VZASCOSpo zC#c|k%HTiB1(AG^jW=u^MwJqU`s=0tX-@pBPJ1|Aw1Vx&ugj^ECr;4jSuYsIU?mxr zvCGK4Y{m-5vjS3?!@VjNOJ2p~@EMNX`!Gkx9y+o|3%A2kib>_^On?~G9id|lm%$kV@ zgI-hPW1hEIiZF=heeMp&MQl3KA%VyYffLu9kh8#7S>Rnw%O{aeB#v-SqQjQ}Nh$qB zSnh0P&~pbWSR9#&6O{r@DfEF=+$dfJM=TLr4qk;60d)L3QSW+QphHhYG6c6VO~}+` zzE3_@XI#|EXpLQhH(piZBBX{Wqz~cc$yhTYV1em5uF_@p%DRsDj&ARmbiqtzQ40j{ zkdESA`oytbq!S2WwD(=@8QC}t*blI~TlPg%wf3={C{> zDRU#w!sBq84ZDC47NnNBzNWt-tpvUfHNl1zG#~u!4*Russ*__QP!+Y)0FxJOVh7s9 z@l(gjyv&5FwS_mUy%-N_4e*`%(x;0*=M z047Ap2!hkX==m&kq|z<{t|>{RN$6tbWK9)7h$Xz_+3dAjvF0N9;1P2A-Gx3_Q%mw8 zCAy=`R;+H}RXF2MA)O=0WgSup7eol6CKLo(yuD6W1fm)cHKY)nykX7Z^VSRF2q)xl z=8v`n)QeaN#5?*nF7N@bd|v;<+bWt;nUgC*D=i`5NK?%me3(<**-<2p>?>s_pR0&r^F>rZ}GCwcRC~3LV zb1i^OUvf>?q~F$gMqMn2Tjr(gN`N2*+ak?5R4ALN!CV1M%N^DNWr{gkNWGyJqrUWk z5|qn*w!t%2GDc|G+Id?c1g3dI^0bp$^bWN5wd>jAbZKE_j8LHpy^AgI-;c%rZXQMWL^gT zJ=_e(^jsYRKEY>jnFC4Nj#&2UD*`tZ3<65^?Q1XR?BP{r#*@5NEdwkUu5%Lwr2ZPq58ZGz-3kZ8Kz)kqMN{vJnC*Xsvy4{9P@9T>P`nl*r(;!yh7Y$2%b^anM7%Ewh{E3ATD2rKpiq09pi0cfCxe?aYUm*Jtb1T zFJ|mN1g%hHaGt?8fET-8=WWPfLY4O+;xZem;o`%8-4mbr>(SpvXocl`S)Nj@S^mqZMye)-O$pjAt0T}4uFZf?Hq86M7_ z$cL(AqA&g&&maVB7#L#B?V=q=rO?HPDSpJ{0MW2=;ND$Wwoj%*DSEL=duuDaOVsJp zvzes^8Q7)vOv5})hS3U6ub6KV@b}WMlM2=#ptZ&4w-f_4v=I(-BdDO!+&5q0lr{ge z_Y34}egDnsfL3#swZ25#XrdOK$l+SQqipTlgYVJ`hM5E*SKL21dhur@9J63fSw5}Z zhz^&j!c5%5WDW*5Q0})?rf&<^KpEtNeWu8!fG$JGL-6$oWskBW))Hl_g|l-7;Y?Kt zFH%H3?|N&|@ZNPOa;qp+&dj?2*5P@++gP!3AgN%y! zOr^Np5iGT%n60BV5&na~BQi(QrPbveU~kOw#0U*|QCJfZ@zE@ZxJCX@p=cHYr zJrmpucuq95)O-;Fwut)Mz>F*`U9$}Qf|`kb6MRMzwSb$`vu9)BAqpKX8kqYfe0Fp? zspcay7Auy!_0M1)qaU!3DWAj}UE*HLgtqkPy|T8WuK{=7mf35~L@jagVsLn2Qc+91 zRF_0nquN$rNtrzs-a@Lg7UbQ90JFnRXCtGOc~{&@1U`7mNnMNP?g)#^tO|*ox*?$1CB~V4YEV5XlLpQ;KC*L0D}{|F%0Tl1s>4!?rkMu z>81bKp}n!Rw!WzTGycZId~3>3gt1us*{u2f@?{GQh?5%K{ULm-tb38=Gc;>sJX>r!!rFjw5H=r)9w8hk~DL*tiHVe3p<0SI0F>bdadD2z%0n$WLeT`mlW%rhlP~MCj z5&1LBXvLF~7n7$%1P9DBML9r5I|O`VPkJoyp&0lHRtt3euSGXQ*9)Y_)!3u0s7p$v zP!KvBcva^K#*J}Ov;n7Cr)0REKvY9lfAWG4Ack!8i*YC|^=YAUlIiAN>$Zs$iH<@P z@~1-JtSmw)H99K?EQZe%MO)Gn)2g6Z&@1b#*+HmQ32q>L+`t*?KJ~fv8{)Xy$YE7@?-y%-s_;)K|c;XTR-0MnoM9(^yCg+cNKOT-ds1f8-DBZkSh zR&IH-hgK|QTQsr26BqdGLdG2vIceg;NYl=lv|*S`{uGqg)$4EjzQx$8I027bG+I+7 zjtdlGy<)Q1U}4b@{^bGL0>}qd1UrI#J7C8wtU;0RGSs=HL@zJ|Ol*44GJQ5kyQt2_Pdc za%kc+np`kvxqBv^5(h3vvL~IXKtKG+&kkmJ{qaFl8#DMaErpWcfMjvL3>jR?7nB9q zBh{u)q!WjRczTTkCm{+MVNzYGpuAs{IJ#mdbx9=U~4= z{(kS0;Xu4QSO~Q{#JehL%hN>QOLe8eOhv$Vh}qB++b22(NNI^0*Je%5<{y8okfGLm zGh>ICuFVY;{gomKrxG9<8g(Eawn!X-TjEphYvN;Z>{Oj| zzoN~dS#9rEf&b#mx4%lzGamS6+fS_q`V#X#w`{N9E`Lt*$rq@2+}#-Zwh4z#?AS&#%OC=r z!S&Q0M8KV5N)h2*;7Fq{#$vU;*3P3f^{JLcq=NdkJT8l|UkO)|KpNIe7c`1;Wqel9 z_>))GVbiFNRDidR3CS030=HMOVK+>%6CoR2Yn)+)#aOcl3r}b_ot#P5+N2hO#I%24g&m&fbD-b=yKah-ntMJ zLX>iN(QYN+ChR1YsrVj_e0XO$CIC{D$-ozN|J^5z!&Wy7fIt;gczPM6Ab4Jy2P!_D zqU!Mg%3_6~ml`f*K4>PT)Z1rP@fUZKqR|@Lc?^I6n91pmd7QyDPLZ?_(*#y0Zm{Iq z?seafIVf@*L%e>IuAKFsj)+yhVxIq-7kEFkU@~;X5T^~}f^To->xh<=O2a##ozZOP zri4J}mLScRe)YLPSHO-}f!#D(=XPzaZSA~D0^FilMu^;!p9NfO7d1uS6CWJm3))+P zb)?tNNs?%hRM#+0Zi|4emoNdZa)`)I9?T}1h{wbB;GSb7PQg4KzfN6woC z*$b&)G~X<$!7ureld`>WkrmmB#0+W;PrDv2O(tcBb98$05gWxPyW8id#4@HxD> z@$i*eO$t=0&VY@FrH0Tn&7!Hd#miozaumoG9K`atwca>%cpxL{;{7v49}DW@l&hdf z4!WfdzBU>8uxJE^tkfJ@;5F(s!=?Ci0?cH3=jJ*QyD-3b`qNe>LTl? z62#9avIL0&|Di3N6r8ot5}*M>xhm~d8ql+PJI*=fI~|q0`=0rnIfE%6lZ!zWZ|V4# z7aP^j=4&3RH)O~R-XJf*T5IS>TaZHz8%Nr(>amEh=Z+VmiZ;*%{oc*v^EVUpM6@oX zG%^$>XXga3WXTqgci|*22n)!?WAdAvt|nE2A3ne9Za2Bcr%aV6uU*1KgoxKda;%%}r1WHd*dbgHiC zCKOO~>7!r(We^{Z39D*AmG^+DV(Tf+FI`-G{sKMbCY#bLs?Q;o?uaq4$=DL|akEFm zIwQ5;W`vn78%?$qEu)&%Wpyl`;N6@pE^06PPlLsX7mR^M zLkhEW%(lnha!VGjDlL3GM+}(sER|E_-d>cF{J-Yr-@Z?&SSO@FP-l&^W|!f5)#r+M zeUk|h0OtbC21LX}3oR|Px%ssL<)-+SlBr~-0Hv@t#5P#3jCXPPB%$Ezpy`hCp7 ztbn7u0$Pu0^j3l#$Y}(W+7h3&WQ^;-|M@=P!B3zG;a7BlqL~#S>0qh}z?ZI7*#@_Ujslf}HD> zoAEH;1`@u=aqUd(&6Xr7q3A2`?Q;^1k6z#|Mm=zPtHi){Z%#Q=hXq7WB6Xl$!T?4D zW!jWsiqA9EB&EaJ>ZE-IIpQG2nV%+tPrZiLwhTt>#UY;&raeVUQ7clMCQtWnae9Zp zhp6crLHLP0!`5c-`$Voi&jmh*rI@A^>L9JOdh>W~X~HEBh~otQk=VR(=7fo*A5Jo8 z?-Vg4pa7^# zTQ}squ5rjn26zDWn{W#dhbK{|^ZPRQE}4>)BaTB!S46YG{6;KXMFnrnhEZ`ztisEO z`Zh%YuL$~p+D2sHg5BepJ|v;&<4eOew>^H=BEx@TzKmk4%|>agiEu6e>;6G#A3=R+7VWg}m7sWz~l6+bKNR~7+m=qzQHj&wJ zPKwwNPD;%s#$J;zDSfPk{_YU%-b9@-Q7dQ4Gek}S+Pq7dkd%c1 z@TV@;uETpH{}w1+QXs0SE2=slQKr#{Fw9rSjAa$dV2(uGQ#(>&k-hsi@k_v0L)|Wj za+;guR>DlYmd~Q zhI8Sn$Sgfjhgj&SjgASDRmI5(LdeHHXz%OJaaSr#F{BgWR&8tDf4 zs=En?1@KvlacwP3wh!>XXgPEgQoWD13>Z$mZ@#o<-RCU-Sa>o;EBg)ZzeUG2LbtxAi0Rn9H>JuT(QNVG-g;< zd~E3t>_SLPFh?Snz`5e-X6JMpqC|V2Z4YT4iG35azc7PzHRLjDEYJ`T5UTLm)B80O z*poJ#WUv!jmiELa*;1F!Pj07brGq$3)`u*PA#v+4ipC=p!Gx97ZfS0qq!n>_z|lj8 zKH)2ET$iEKmd$r+MS#YOM^}h$pggI;9I@%8WzkId`AJ;0Xxl}Wa?`hSDx>-`(E%XV1GjE{O>yMt4!EY{Q-~yAa<(% zv3+FC<^aU>ER5O7S)gMd^fvb7?5pj5Mdm-_3-A&dWEF^BdoV)=Xu-whg^M?PzHASG z&(M3(h6u#RW4Gnw#iu{DdqHAQhs`9{QEk1`x0ce4bV2Bu-Vvo8kHu4A-pYTKgKMn& zrr*-Gyz%^<^-dqQr}iz|1Gi(IA3I_cE`ijJv_kSt1KRSAUoQr6wtnik4#=-Zd(x@6Ca=*XP+_)h<|5J`MU*OI(L>4N=drN zO8W2D)74e4!@|gyv5N<15=!f*|oNqOKiR+t_H-E`>%TZFRN9 z2m)80mw`cQVPiw%_*G7b_c}a7amW)jhKR^$3uH4FxW;ZIo)V)zCl+#ft!qBui{q?G z2TmQN<_EW* z9fwZ>cbbv{B^u31r!a1eJQmg|s%vPORpf19P#H@}`o{L;8%wJ4j>+tz@=oHbT&#y1 zM>e=NDa8Oo<6-}Y-s#LJz01&yL-iVf35XH2`TcuykT%ePB-ptTQV1Q$3FYY0Se$LB zdBTa{Eh|>fAT1gOy^klt1hkdnhld_(HiL!&n#mLcNTKYD5RD2qB&Gm&ZqAG0vj-;y z%>%R7u9TcYOW~qQ<-rP~1QRV|3NeAO64K@i&Mc03WEkcRFbkFaK9rimR;-@5A&~SQ zNk#fxRE-vh4YaG9Yo4ZD#Ge8H!7k)nlc>su_ilA<#e*r8qFlu?);(TzX-6{4ko%*e?znq(wx=R)#=o4sdXGBmpbq0&mv}mwxDF= zEQrpV(yaTfvDqb)vwa*5Lz(gr8&Kn~)AosZ5wrDM42m$RknFd-$E7P*qF4Ggw8Fdb z%vT&T0uYCrvXT6S{8QF`NdA)lq^Xy5hRB;D@%laI`ZJ;?mXd|A9sQ_25Z6=k0V&9~ zan1*1OoG_+uI@!+$9EjT$rO9^_QsCtPn2<;^vky!+7?sVp3SlS{~gD&HcFmH7S{Ex zZKb13F8#h^#>h|ael@(;@VEc@#_-p_d_VV%_jLa3=8~T1_@0%H9sEL^(V&m!8h&JY z%trYr=*TghDPM0r^2V1VdjC4;wNJI*(%zx__JLcAE-m$ItH^28zxUa+fPQ7FbrTCe zUyEt6U2W3I@(+gjG5G!8|H;<>=zLl7zxF=Y0u1kZad#+^G!^S6yh z^vTj#|MAIis#ot-U3=j5Y{WBvPeTG6riBMX-_i&g&+=%gSESbEOafP2T;X~`n;J)? z*8C1s5?f5eH+HX*kL}?ANPj&!|(U3Rf*7 zc0p>%Qiv(-HYMbyrxyOWX_JwSKn0lXnXi1>o7*cOY zKOw6^c7CIkdt$-WyXEDp^7N-P*`~{of+q#1GwpJ~Q948yx*F+47!W+he_m0lbXcqm zsS7u$*zxIPk8_=SIoDO>5(XL^Q(gs|A2)YS*Ym@F@2>tk4u>-`9FvlgGHh&Z%O`lH zmGsMQbDuGD<~H7`M{MRujsUpQCBhZV1l1^&ea0QXW!!sOMat%1>FZ&iQ31;I3Y$zn z2zf`tBLQF-515>`Y;iPV9zcfmL^%T?QTyYaIJFZCF^LVi1-EYxGm+u(rAy-yd>JAG z$T(ZnabyJ4C=d0^fC)79+f^|F5V7ldbINx)CmadDfkr!?Id!C>pg`LMR9R|=R+XvA zHh`ebG0@Mq67O!gc?d z4?NxkpvQb9%;jInp7^9(t8etj?}W#`uJ(NAUiOD5ycjsRZL8brz^V0RZIvt4^2n}} zhYlSY5tIO3p@}RQ(-{aiS)OS!i-LpNKxQVT6K0--elj34v#rwbz5jm6|M%}?zxL7j z=U07_nYFEL1pC<)g@sKwlgmNDBQyMr6QZIlc$hbfi@Edc5yShU{XKy|`jnTRqTT0} zHe_d}*Q`ug=QHMD+`-UyG=k2^$T*N}C@;m-<&46m+I(zFb2GX8!`{6I;o;9(a&=O1 z?6c`p{4@A4+`4G+a-Q!s)Ty5MiA#mW8+S<34?4^j(BYs=*SnU;z;)g%AO|<8G)+@e zGa3_SGe8BN#4IR7#-e>{Weuoky{Pg=C3iC6rU`b+Qxs1?SaVW_nZCZhy4xWS@*GV> zp@_a8XfWHjZ5`j*{va(wl)|}Sr0THr;fErgK$%AGVeaXfbkwh<(T7r0{7B_

    >du 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 diff --git a/tools/examples/textoutput.txt b/tools/examples/textoutput.txt deleted file mode 100644 index 767011a4..00000000 --- a/tools/examples/textoutput.txt +++ /dev/null @@ -1,115 +0,0 @@ -============================================================ -Call Tree for 'H5Dwrite' (Instance #1) -(Time metric: inclusive, Percentages: On) -============================================================ -└── H5Dwrite (ts: 1369855900, dur: 862208933 [inclusive]) [100.00% of self] - └── H5Dwrite (ts: 1369855900, dur: 862208933 [inclusive]) [100.00% of parent] - └── H5D__write_api_common (ts: 1370074900, dur: 861811933 [inclusive]) [99.95% of parent] - └── H5D__write_api_common (ts: 1370074900, dur: 861811933 [inclusive]) [100.00% of parent] - └── H5D__write (ts: 1371521900, dur: 859872933 [inclusive]) [99.78% of parent] - └── H5D__write (ts: 1371521900, dur: 859872933 [inclusive]) [100.00% of parent] - ├── H5D__ioinfo_init (ts: 1371839900, dur: 613000 [inclusive]) [0.07% of parent] - │ └── H5D__ioinfo_init (ts: 1371839900, dur: 613000 [inclusive]) [100.00% of parent] - ├── H5D__typeinfo_init (ts: 1372631900, dur: 1108000 [inclusive]) [0.13% of parent] - │ └── H5D__typeinfo_init (ts: 1372631900, dur: 1108000 [inclusive]) [100.00% of parent] - ├── H5D__dset_ioinfo_init (ts: 1374738900, dur: 249000 [inclusive]) [0.03% of parent] - │ └── H5D__dset_ioinfo_init (ts: 1374738900, dur: 249000 [inclusive]) [100.00% of parent] - ├── H5D__contig_is_space_alloc (ts: 1375109900, dur: 221000 [inclusive]) [0.03% of parent] - │ └── H5D__contig_is_space_alloc (ts: 1375109900, dur: 221000 [inclusive]) [100.00% of parent] - ├── H5D__alloc_storage (ts: 1375528900, dur: 2497000 [inclusive]) [0.29% of parent] - │ └── H5D__alloc_storage (ts: 1375528900, dur: 2497000 [inclusive]) [100.00% of parent] - │ ├── H5D__contig_is_space_alloc (ts: 1375728900, dur: 31000 [inclusive]) [1.24% of parent] - │ │ └── H5D__contig_is_space_alloc (ts: 1375728900, dur: 31000 [inclusive]) [100.00% of parent] - │ ├── H5D__contig_alloc (ts: 1375885900, dur: 753000 [inclusive]) [30.16% of parent] - │ │ └── H5D__contig_alloc (ts: 1375885900, dur: 753000 [inclusive]) [100.00% of parent] - │ └── H5D__mark (ts: 1376843900, dur: 1079000 [inclusive]) [43.21% of parent] - │ └── H5D__mark (ts: 1376843900, dur: 1079000 [inclusive]) [100.00% of parent] - │ └── H5D__layout_oh_write (ts: 1377128900, dur: 666000 [inclusive]) [61.72% of parent] - │ └── H5D__layout_oh_write (ts: 1377128900, dur: 666000 [inclusive]) [100.00% of parent] - ├── H5D__contig_io_init (ts: 1378137900, dur: 988000 [inclusive]) [0.11% of parent] - │ └── H5D__contig_io_init (ts: 1378137900, dur: 988000 [inclusive]) [100.00% of parent] - │ └── H5D__contig_may_use_select_io (ts: 1378646900, dur: 359000 [inclusive]) [36.34% of parent] - │ └── H5D__contig_may_use_select_io (ts: 1378646900, dur: 359000 [inclusive]) [100.00% of parent] - ├── H5D__typeinfo_init_phase2 (ts: 1379309900, dur: 379000 [inclusive]) [0.04% of parent] - │ └── H5D__typeinfo_init_phase2 (ts: 1379309900, dur: 379000 [inclusive]) [100.00% of parent] - ├── H5D__ioinfo_adjust (ts: 1379781900, dur: 218000 [inclusive]) [0.03% of parent] - │ └── H5D__ioinfo_adjust (ts: 1379781900, dur: 218000 [inclusive]) [100.00% of parent] - ├── H5D__typeinfo_init_phase3 (ts: 1380086900, dur: 192000 [inclusive]) [0.02% of parent] - │ └── H5D__typeinfo_init_phase3 (ts: 1380086900, dur: 192000 [inclusive]) [100.00% of parent] - ├── H5D__contig_write (ts: 1380538900, dur: 849361933 [inclusive]) [98.78% of parent] - │ └── H5D__contig_write (ts: 1380538900, dur: 849361933 [inclusive]) [100.00% of parent] - │ └── H5D__select_write (ts: 1380810900, dur: 848973933 [inclusive]) [99.95% of parent] - │ └── H5D__select_write (ts: 1380810900, dur: 848973933 [inclusive]) [100.00% of parent] - │ └── H5D__select_io (ts: 1381013900, dur: 848656933 [inclusive]) [99.96% of parent] - │ └── H5D__select_io (ts: 1381013900, dur: 848656933 [inclusive]) [100.00% of parent] - │ └── H5D__contig_writevv (ts: 1382138899, dur: 846977934 [inclusive]) [99.80% of parent] - │ └── H5D__contig_writevv (ts: 1382138899, dur: 846977934 [inclusive]) [100.00% of parent] - │ └── H5D__contig_writevv_sieve_cb (ts: 1382604899, dur: 846329934 [inclusive]) [99.92% of parent] - │ └── H5D__contig_writevv_sieve_cb (ts: 1382604899, dur: 846329934 [inclusive]) [100.00% of parent] - │ └── pwrite64 (ts: 1382977899, dur: 845291934 [inclusive]) [99.88% of parent] - │ └── pwrite64 (ts: 1382977899, dur: 845291934 [inclusive]) [100.00% of parent] - ├── H5D__contig_io_term (ts: 2230098833, dur: 865000 [inclusive]) [0.10% of parent] - │ └── H5D__contig_io_term (ts: 2230098833, dur: 865000 [inclusive]) [100.00% of parent] - │ └── H5D__free_piece_info (ts: 2230359833, dur: 496000 [inclusive]) [57.34% of parent] - │ └── H5D__free_piece_info (ts: 2230359833, dur: 496000 [inclusive]) [100.00% of parent] - └── H5D__typeinfo_term (ts: 2231060833, dur: 191000 [inclusive]) [0.02% of parent] - └── H5D__typeinfo_term (ts: 2231060833, dur: 191000 [inclusive]) [100.00% of parent] - -============================================================ -Call Tree for 'H5Dwrite' (Instance #2) -(Time metric: inclusive, Percentages: On) -============================================================ -└── H5Dwrite (ts: 1369855900, dur: 862208933 [inclusive]) [100.00% of self] - └── H5D__write_api_common (ts: 1370074900, dur: 861811933 [inclusive]) [99.95% of parent] - └── H5D__write_api_common (ts: 1370074900, dur: 861811933 [inclusive]) [100.00% of parent] - └── H5D__write (ts: 1371521900, dur: 859872933 [inclusive]) [99.78% of parent] - └── H5D__write (ts: 1371521900, dur: 859872933 [inclusive]) [100.00% of parent] - ├── H5D__ioinfo_init (ts: 1371839900, dur: 613000 [inclusive]) [0.07% of parent] - │ └── H5D__ioinfo_init (ts: 1371839900, dur: 613000 [inclusive]) [100.00% of parent] - ├── H5D__typeinfo_init (ts: 1372631900, dur: 1108000 [inclusive]) [0.13% of parent] - │ └── H5D__typeinfo_init (ts: 1372631900, dur: 1108000 [inclusive]) [100.00% of parent] - ├── H5D__dset_ioinfo_init (ts: 1374738900, dur: 249000 [inclusive]) [0.03% of parent] - │ └── H5D__dset_ioinfo_init (ts: 1374738900, dur: 249000 [inclusive]) [100.00% of parent] - ├── H5D__contig_is_space_alloc (ts: 1375109900, dur: 221000 [inclusive]) [0.03% of parent] - │ └── H5D__contig_is_space_alloc (ts: 1375109900, dur: 221000 [inclusive]) [100.00% of parent] - ├── H5D__alloc_storage (ts: 1375528900, dur: 2497000 [inclusive]) [0.29% of parent] - │ └── H5D__alloc_storage (ts: 1375528900, dur: 2497000 [inclusive]) [100.00% of parent] - │ ├── H5D__contig_is_space_alloc (ts: 1375728900, dur: 31000 [inclusive]) [1.24% of parent] - │ │ └── H5D__contig_is_space_alloc (ts: 1375728900, dur: 31000 [inclusive]) [100.00% of parent] - │ ├── H5D__contig_alloc (ts: 1375885900, dur: 753000 [inclusive]) [30.16% of parent] - │ │ └── H5D__contig_alloc (ts: 1375885900, dur: 753000 [inclusive]) [100.00% of parent] - │ └── H5D__mark (ts: 1376843900, dur: 1079000 [inclusive]) [43.21% of parent] - │ └── H5D__mark (ts: 1376843900, dur: 1079000 [inclusive]) [100.00% of parent] - │ └── H5D__layout_oh_write (ts: 1377128900, dur: 666000 [inclusive]) [61.72% of parent] - │ └── H5D__layout_oh_write (ts: 1377128900, dur: 666000 [inclusive]) [100.00% of parent] - ├── H5D__contig_io_init (ts: 1378137900, dur: 988000 [inclusive]) [0.11% of parent] - │ └── H5D__contig_io_init (ts: 1378137900, dur: 988000 [inclusive]) [100.00% of parent] - │ └── H5D__contig_may_use_select_io (ts: 1378646900, dur: 359000 [inclusive]) [36.34% of parent] - │ └── H5D__contig_may_use_select_io (ts: 1378646900, dur: 359000 [inclusive]) [100.00% of parent] - ├── H5D__typeinfo_init_phase2 (ts: 1379309900, dur: 379000 [inclusive]) [0.04% of parent] - │ └── H5D__typeinfo_init_phase2 (ts: 1379309900, dur: 379000 [inclusive]) [100.00% of parent] - ├── H5D__ioinfo_adjust (ts: 1379781900, dur: 218000 [inclusive]) [0.03% of parent] - │ └── H5D__ioinfo_adjust (ts: 1379781900, dur: 218000 [inclusive]) [100.00% of parent] - ├── H5D__typeinfo_init_phase3 (ts: 1380086900, dur: 192000 [inclusive]) [0.02% of parent] - │ └── H5D__typeinfo_init_phase3 (ts: 1380086900, dur: 192000 [inclusive]) [100.00% of parent] - ├── H5D__contig_write (ts: 1380538900, dur: 849361933 [inclusive]) [98.78% of parent] - │ └── H5D__contig_write (ts: 1380538900, dur: 849361933 [inclusive]) [100.00% of parent] - │ └── H5D__select_write (ts: 1380810900, dur: 848973933 [inclusive]) [99.95% of parent] - │ └── H5D__select_write (ts: 1380810900, dur: 848973933 [inclusive]) [100.00% of parent] - │ └── H5D__select_io (ts: 1381013900, dur: 848656933 [inclusive]) [99.96% of parent] - │ └── H5D__select_io (ts: 1381013900, dur: 848656933 [inclusive]) [100.00% of parent] - │ └── H5D__contig_writevv (ts: 1382138899, dur: 846977934 [inclusive]) [99.80% of parent] - │ └── H5D__contig_writevv (ts: 1382138899, dur: 846977934 [inclusive]) [100.00% of parent] - │ └── H5D__contig_writevv_sieve_cb (ts: 1382604899, dur: 846329934 [inclusive]) [99.92% of parent] - │ └── H5D__contig_writevv_sieve_cb (ts: 1382604899, dur: 846329934 [inclusive]) [100.00% of parent] - │ └── pwrite64 (ts: 1382977899, dur: 845291934 [inclusive]) [99.88% of parent] - │ └── pwrite64 (ts: 1382977899, dur: 845291934 [inclusive]) [100.00% of parent] - ├── H5D__contig_io_term (ts: 2230098833, dur: 865000 [inclusive]) [0.10% of parent] - │ └── H5D__contig_io_term (ts: 2230098833, dur: 865000 [inclusive]) [100.00% of parent] - │ └── H5D__free_piece_info (ts: 2230359833, dur: 496000 [inclusive]) [57.34% of parent] - │ └── H5D__free_piece_info (ts: 2230359833, dur: 496000 [inclusive]) [100.00% of parent] - └── H5D__typeinfo_term (ts: 2231060833, dur: 191000 [inclusive]) [0.02% of parent] - └── H5D__typeinfo_term (ts: 2231060833, dur: 191000 [inclusive]) [100.00% of parent] - - -Analysis complete. diff --git a/tools/separator.sh b/tools/separator.sh deleted file mode 100755 index 18ae0ec3..00000000 --- a/tools/separator.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash - -# A script to split a .pfw file into multiple files based on unique PIDs. -# --- Usage --- -# ./refractor.sh - -# 1. Validate input -if [ -z "$1" ]; then - echo "Error: No input file specified." - echo "Usage: $0 " - exit 1 -fi - -input_file="$1" - -if [ ! -f "$input_file" ]; then - echo "Error: File '$input_file' not found." - exit 1 -fi - -echo "Processing file: $input_file" - -# 2. Extract unique PIDs from the file. -unique_pids=$(grep -oP '"pid":\K[0-9]+' "$input_file" | sort -u) - -# Check if any PIDs were found -if [ -z "$unique_pids" ]; then - echo "No PIDs found in the file. Exiting." - exit 0 -fi - -echo "Found unique PIDs: $unique_pids" - -# 3. Loop through each unique PID and create a corresponding output file. -for pid in $unique_pids; do - # Define the output filename based on the pid - output_file="output_${pid}.pfw" - echo "-> Creating file for PID $pid: $output_file" - - # 4. Use grep to find all lines containing the exact PID and save them to the new file. - grep "\"pid\":${pid}[,]" "$input_file" >"$output_file" -done - -echo "Splitting complete."

    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 z zw;#zEx*(iEU9|7BZ_h*7f!#a{tLw_^>K80nz{=6JPjV|8=xG3}M}NO6Qb0{t&3?26 zLr{IhusOll5OEjoSm8Q3&bn&Pft}hy<RN8$S8O&C+{L%c9Uvqid}ra!Z_V_p_LdYxR=@5I}3=dj8fb_GZq<_(^GDQ6!M zPhwEK?Cn$6+pmbqJ^bkGAh85>LSXvh;r02oKhMXT*hT(aeo>MLcj@Rs=pmgra{vYo?GozCs7Gu- z&g_O0QRw^!L7!X7ljhsEl^gf%=n;D5O2ZvFQkw|FFsg0d#G*?%H7|3YLhFS2A-BdR zFx@gLJ>FylcmBppqBUr(l}S+0DR18L}e+KzWH)mp;j zk_1>e78$j*s#jh9EA(;d&Baat~!XP;3oVJ?JZ90QW8$BM$+&^!^Z+Mz_NuMi1NkZ&gCAFT& z!r=qSMJt8Z!Bg-po=qsS`i_B3jsS4^4oneZSkjx7QUJH+3{)677w(eoqw!SE;rvL% zj{{H|+%a3TcBi-mRM2ylEP03$LJGq>57`SrLg}^Wl(=TSUnkU8Efcvs(~HSsWP%p* zjvSl!V$1x9hRsOrXBy8+((3l0@BZU=FXGwaQT_uHU zZMDk{dlH%O$bfpMRF#NMEcGV8QURD1?AJt}$3Aju6Ece1ab(x!wq@ zsH}UV#j;#2V8^|)vHMlTm5RpAwZ9Ai%)2dGGSVueKeUk<-hC%-==1$AcvEC8 zSay-z^3lr|$6PUY;-_gT45wg#T4T9cYEMmL5_v_#S8XJffc&=SQ(mTo!K@ny?Q z?Bn0nsp`1(b9_2iBk-RF$A9Z1*N!%?-tzOL#Pr)|J{`*x!g`vgNsAXQd_V#`NhDB$ ziikD|I601od92BBL3*fKb^7gsleBc?vs5s3W{x8e0}=c$>dqxmR$d73kO%l9q^ zG(KN2@)+uIi}IN4#2FB*7K~VLTyMxQw5Xq~RucrGQI4OV>JCL%cR%B;k=$&?!|v03 ze1vU3f-ntF=GTvqN#?j8@=yI1&XP-ahFX8@i%X()N66s_60!D|jOGfxg?l3OKW}wh zd^V3d?y_;L4_J&`u2&-Cr?3^)7*+IO9&CL+sLwl%RrD>Ii;B8%M1X-kSk-q11lJ4j zn&tNI=wH|NmEeyi#FX3^pD|TGn_A3TbxoF;R3a0<@oLIet6pTXsTSi;yB&%_m+gOI z$D*IofCTh+IFBDRy2>81Aetl3I++Iimc)Lv&TO}o{QzCAR<|Rc1hy!wsO5=syh)LZ z`lLzywoz;N=yJ-6f>QeH`Rr5veXo_(&^)QRt;ga!Ook$YtqV-bI%>;`{W zxG+bv7C?@cI6>Lt-b$t-@@hKH02g1p_=qHZA`|ClLl@Wt{<29(u{nRD>dWi0QacnD zN}Fw+4YK=-=={}gzk}PA9#6l#+*oa2R=fKw{yYE6%PN=U%dM^Qw-kH_B9fUH{6*{Y z509+A-XVHv-U4wEUuUf^Ou8x#%m4MIy7BxMnTdLmbp31(o4=u{>De>S%@ft5U}*y6 zM!42)0Q;Lvn`+XeKtTZ{i4mLuHc`!@$$~$9)?%|x!&X=;P-U+|dKT6Q6>urhm`q*X zPoFA5z=cSH3KqJ^pD;M<(_eLI0-PbYpay}9l$9Qa=xLCi_8bjbAYGB+bQwzM}M z6P+B{p)4A);;oUWi(l7xJqlywb&ELlt1wW1%uu`p`$>#EUVYhhZ>6A=kS*T>AQA70 z^cFT&`H{e1J0V{Q8Xj|}{v~tXs~j{4@l&@S1ie*Jh=^46F!~ZpcoNJ)D2taDHw4Yu z0|<2uWiz+WPHQ|C4D+>#-zv$1 zCJ9)a6#ptLY%_G%Tf8}Lc3>qoE{&A3xVF${ctfkDUk%@Ilg*XFdXdW%!2%(j#|W>I zrIFyG=4|V#CRh(b*ExL`Ot$u)!v}A0hOZ{(JS6x!`Gh<$fHlyw^&+@M7&20~zgl;f zWOwH!u#EH<>k9KxJtU1vf9#A?T=rAaoUDs48GM8~czRf6FYr5}Z!?Tiie@jUi$!D) z@8lNSa!UqInpCg^j&P5};m@MCG<9br?VD)FDNmtv3<~-3yUU@q6VgWq!*vLdGk0K0hkwgHh>+B8oUAJ zfr{KJUXdg$evuHqr3~mL779SwA7z3B!F1j!j1`Z|r%DC{7(|L=4%viRmnE@IVIy;X zOf7jHF#t4`0j3P@AUZg@V0`Kyj+0y-cXHm%^#iERAh5o!Q5*q7Xw|4c zzNo)untqoc2on0CQhj8!fUF^P{g3a)5lf^KS&)VdWonZ61bVb&f3NFgCjc&#^ zRd!`=6Q4V96&YHYTM{yo;S^B`Xv+iSP$&SpLsvS>GzlD~n%FPl2`wlO8W-8em(=lA zfCBMu-pTIw3RSYW#ykTo_~h``DV9>@HcuQhhAJxFmw@Tz&J*|%Grzyxk*el@M+hb! z9Q+MM);)XPEty~NB<$n^oYjT_CsVIMX~)?l;bgo%!EI}G+a@}TIa+b?V6#9o9-Adx z#`+)fqTL&TVs_D;I;hfS_zA%two+}UMZzbj!@r%9$iCo|J+ZJqaAwj5%32YFf4e1t z>v004s-&G*jMq;Xp1zP+)*8Hl60--cK)4me{8o_L3D?O4D9AGiP#1%7+u=v6;LQX@ zm*aY*ggQbUQi>tgyI(>;bUlJo8cTZV12~J=`5MylC1= zl6f)Uz^4aC5FSTBeZ!88`i>+&;u$_vZF2w!MLB@LJW2$;$!yW#1Oo)2ZFYG6hEK`lV3gK#WVN+-lGtW89*Y;*<961bh?0@9`$7R*w@aWG+Bw9(^4!Cye* zmcQz8TI>oOfV~scl%q}XGBa>P_Ho_iJ$zxB@LfZdl*}2vSpDi|=5${lAG$qjFY_(S zQ2EiL0$2hKfYO7*GT+3+K>m;vh<+wob0o7<>X~gkzw^s+PxjRXX z$*-|ofIM&qT5mM}BJ=Q5@b#Lxe4Q^kXS7jZCu+-6HPbo>82Pn6e|bUZ2SaL_^+%o+ zysk>vjeG4iFrKvphabJG_KB^I_KmNuk9EvE=rHr9Q&WaRQNrfr%;bqpHOHvbnh2)2TL>0*s3QOoR9EspetFVM`jx-%e%;{S44)G{3R^M-!OIMC|#V3b(Jdt1} zASiU@lAH=snaYxUy_+8L-+OT#dNf-gzVob~)jtVO1^DL@a7HHEEomtU=X~7zfvJ?Z z@o>}Q(>%QTfjalRyzE5Sf?*H1BY9EQT{s}Yw5Kt30YZpo(4AXK-P+?|&VW|*owzxJ z5@Y~>Ea_dg>*=|;IDZkuMKVR$U?h(Uzr&+doiF7)1|gr#J+Ym|6or4osSUUB;AnYw z5Wjd&W6x6+P_Th?hmiWgeD@_y{q2Z2GseWRTOAws(Dhmh=Z}Vj1*+;|LX*MUBdHc3 z*TEPn4f2!lq_RM+g^3fDuiW#Qs(5I+ock&v1}@AS6}GFm))ncuJ2&wUq_r0HgH=JU z%(>jZeF!D{H|GgSQe7#NVbxLIQf8dvfU{rhfCw?~l_kv<)zCRZ?lbrWCU$K7m3UkR zP7(?(V|i3ZkLlN2N>7QccDUIgYq-)>wUb<)S8`XQE!aWPLfi%-rxa{ZgbAil__2H? zhy-0kRyOUJZJR~4=%ZC%soill!PI}#2S2JVfra4zq4cYEiCFSP?jwBt+}hU-CNfT9 zHTmYogzIBt^A8XVk2NGzpRjS`T;;9S%(&QH{qlb>T?Aa)s=E>V+Gx!p`NQ^-AdHg{ z-GsWc)u##|G-wttg1f++F`y#?!MZPKqhUfXONpAIvHieQ*JMmM3Qh{gX7s4dTdl@O zLGnlX8f(2AkGBHRcn!jI5Wg?SniNu`pHq*6YD;PevxgY~1?rbNoPoX;X+G z-RBUPi-5Nv+-!r%%dKaz+FoX{#jXbY8THP2nn?~HGqwX%_b&6AUcnpfh&nB8V>5V1 zWJHmS-Qd6;6Fr}Eh-m^m&sO`Ab*?=QD6Ar2}^@k{@!mi(V^U%9+7G zZd-4WP+dN^K22u!n1V*fSz~e+R^4#L4Lz;=IE+k$#(AkzuUvItRS3Z3RV3w{Av$MG zEe7&Unh*)|6HYD{)3UX$35FGp@ry^p{5>&i*`@Q!)mL)e^#t4yA3lcvD{1Gq_I$8m zk4@?AQnxi%uQYz@cQLn2x$f(&&l_`YTq%kDLd49P81Wlg%nJVRwa#ke*-s?Mr1gh? z<`=R?t%_VKrXP`F5S<2zlqDziw|z^3ROyVec;bAM9}X>Ye@D-(US> zMT_gxt`{G)P(5LtUu^ZGVRB_;meKWOGuzc$CoP;^ne83ZZ({yo!~A-O>aycCLglzC zt9{>2PRD{-_xthFCs~>NM97^H*yE3?sw>AmJhQWorI^Q|*y)T5K-13d4Mod1=WqQH z##Y#&5)~D-f*>wNPf_{sDpIJ zj;5P8_tZTjOT~E?r@QXaK;P4eiT%p9RL5pMd)8X&dE(YdTNpTb%LD+FWRE*5mZ&=K ze6;HB#)OJKuNarNw2_re!z_w2jo5SJ_2%|SLv<5xihq0GHXlB!X-rj>6K`d&mJip{ zal5s#^5Pc0JJJ>z-u@I6^p|X$qtl9oO8w2&WY9+2hSx3%_Ef&h_-;#`xjo|)2sYV4BAkyNx_J=va#85uW(zYRoCt5vj%k`5jb(;gdi+P(dX9)=m^1~wR~V!V_&eAkNF`srtIR?a}{jr4i>RA^fTf1!h&J; zpZ&vM=hbqNkIooK9YQ-__1;MEE%)i(@l% zemGiH+e>%ou+qVy>zOlWoc3FA#2JDjBg8$jI zU8_Us#T78*fqx(JJ(Xn*M8bE_>mn9Gf$}pzUaDJ6toUPJI=()PK*OkFQkJ)ranA_4GVr zp)1(Vq`X3F{`@1(a+_UTV%y5WG|_n@6`tEZJU6Ak$xf_BUtb?k+tcH#x0jbV1Ba%c zRnF0T^};3^m6sO6_m!6Fut?STu=%a+Gj+UFF%Jy3w}wMoJXTj`rKjS?I?J3K+tUlA z|KsP+Q#NiKiz04DPR_0?SCqNQVC2s6uUn7kptKOvQ|Nr>`E$A5yLaDjT(~Cd`p{Xk zX7O{P(E|3h3(NO>idtgh#Ym%b^X`Bae-oY+EX%Y8I-qA6)xuLSqkDQm-?@o^R|HVmNoUlwPE={aoSLLr89H03@h+TnS=j)y4YywH*skc^XZ&s><-zA2$Mxn& z?<^?uC@7o8(&x7N!&9!coo*Ykq~}d-he6iGUS<(;yc^lQ+S>iil$=XyYHp5OYm3)N zFYdD4&~mWO+(oV`Q|0A@=RYW^+>@q6gDt6z=C@`>PI=}vOfjdt$&9qxp5;B(=&QB8 zaA0rsZseLqP^F*x_HEUNrK=55&e&onZ}=2IejOYW`M%y`V}^#TUa>-|%&p9Yd?-`+ z#1EY^m!6&%+P|CU%GIl-@fc)cfHlHpJf?WekE6TH^6G=;J@}nc0B}k?oF`ys8J`@6 z9Gh|6&ri1U!o_`7s>8nH!7sS!?|NXmT|sY7*H+gQN1X6AU+Q12d~61sFhI575raDK z-Lqb4d7b9I;QpQ3YWciZucez@{^Hi3!;Z~Z$&#i40|o>quKMj}hJR+HCJ(bPOpUcUYiipyQX zb4>1q=9Xk4rkxw|rMiwSFWWg5L-y_9?5)2XmvuD7oFo2p%_Ym~AlsB>u>q$7e*XLk z;lF2`YE%|M^TNf=S=JjibUruF+Q5x)j~~a01IKWIcx!}3PUwY2mvFK}d{c&W^Tde& zUC^kTv+&Qze)rC0f9kK-SwU}#y?x}v^uB>3wkrE~51W{L;o|3^@1x79omsG|Q-Cz? z)3ol&K9df8GBh+?p>{Go!*KkjTGzg}j5<=w`04Aqj(~iE+u-rPTnGfr+2`ir#JDL- zztvCZD}(ExMa6^Xy*qjgIijHVuGFb6uE_B9+8cp)#{5ks8Qv$n&7l8iA^-iy;9~}h z1L}|V5PuGiy!|P`@8nodrosYF@&@R2c#+wzq@EB7PEhuzs|=k8GZOqqU0q%6{_T{k zCugd1!PcxmP0^u}xOzY0IQVYr+&cU;>X;#goOvL+-+lHMmZ~Jtih5BRhM*V+{?Bnt~0ddh-2m-t?z?-MUSilJC*Y zqzU(Q_uID3&dF(|GgtexoKi;SjE;s^=MioqCY>%F@vLD|s zl9;>R`0=9+|CS{^;_h-ve`iT?_DX<3fD$|Jtbo@-6}g)SPfWsLEjE{0Uka6D2Y<+4 z>+xt6z1QtIHoNYucr$XSY`~ugx^9PrbmObx-bf_5>O{TWThmp}&CShgZAaNLa|p+( zJ^#$@kz_g&L~lPEM2^7?izzw2My=PXrMkEm&RJKT$t*%%wUn}pfBE*4C(@7KkLtX4 z=S`=%m+V|!d*kZJ7aU6wjR>}*7abHI--qKRU-06^u-Ej_Q)Bg!9vsJ;@jqJ`w%^;^ z(;DnToL*cHOC?F0_O4e7FKv;1%X;%>!yh+zAHw~Kc7mWWig%1MF&;&n)r%MLD2^2+ zm7CYQMJedLJ^q=zcSru(?)45YR1HGrD|jbopFVefw9a_V*`zS5M!oH6rxbe8aO{|E0QL@9Gu=(-fnvOzkiR)>d`Y_>K|8`JaoFeAdgxgv7EXl*eqnwE(&+^*7@79t< zmOE1}lOh|A-r|7_xrSe}z^w%N!) z3uKU(AfMdkRXL;Nr17~{lmi@OCRM1z;SlnmWZTVF+L-cVzt&l3#1c5E|8S^g3~*H# zj2<&)7ZE*+=qrDyE$yDyn@g0$tUf_p{`smk`G&U-`}lM_6y7Jd?}D-ow|KMYMQIy; zk{PtTqoJ0}nmYJi_iuK4XSQL(JeI_!&Ym?Z$VfRi$MVKYstXJZOWV42tMR&li3KB? z|0SC`?PXsUL71o60+EkPK;Xm-XqEeU^Yg_^DibGqvAIl)Q3?mwW%{#E4rz6X&z?OS zR5jnGdU@2EJGVM%1sf@Q-k$hk%l7Mb98r~#Bmb(Zi*ifcyH~`MoE)>rJd#a(at0R2 z5IY<@Dw(M*`&Mj@w_N2%N}*Z4clMhufi*30=aNE}F|j*T-seL?R;u<)pFY0H;W`=~ zj6nFn`HuDX+PHC(&h%N1?d~n|1f*LDmiG3znN!9j_dETY|M9G&rEgAaUwi5U!!Y|D zDFNOWb1t^6@=baFp=Hg?kZcT9{+rnvsfRDF)$VBaqSQ(DNlbL~pMCoDxruhh=d{7L z;Q%%E4ZnJbB=gV*hAtnhxsktH2CXS)<_1@&D7wBho094>G2JxkO+ot( z(biE3kzM?pBCKsfCcci==M=AvfY{1BgnR^QOFMT-`4{rV-N!*1Mf zXZ~75nmulslrtkYRpL2y**@~{MszeIXCq=(6AFmUfiYG!P^n1^44f9a;6!zN zfWcs}Zz2xAE9iCJqy%x2nhsPAVied4&)4g7R$=sTw1aX>FvzrbpT`fjs&~bn$-{aV zSdQwkKEL?KkEoj-+9h?_KdaFF&yQDlar64b6R9@QQx2bvDf#%P&K;)9rGY}{4B5$W zR~Pab4#Q0bn#5>F5oL>janrxOSPGMY)Io~MJ1*RJ#z16)p?rFF-K*WHqX!MBb?+X^ zF1WN%s_a*FtLDwh8$)t>wQYG7%!t;<=v!7%cW)Uf(>LZq2K>aQfT}x6w+o z^!4|+PUstGzqReRv`z4B245-6_}W3$Pd}rik{q58!|%sWozhk9`2aFCP{V_|w8bG# zUJoBBPy-%$6m_<8(;(}{ODXYciKjliv}1h8=qx7v7YvK09`dbm!<0C{AQN;3O@F zgm$D|G;DcA3$W(lG|lE`GRIl|T&>1R(YfF!JSdS?u(5RQ zgx`5%f}eM{{S-QPipuvC+)#U3wHWd-0^M>pcvEt@&!3H~mZ{W@4TBadf0NhhTG#%T zk-?V{PddK4)askwpd;|4I#Y2<_wXUXd@$qgC+Pn-~bjg{K zhHo%RT5he+-RiY$?X7c}vm{|Rc&UYjMJMm%k(7REe~wV~H$ERwy<~s4+xqQITmLFh zUs*ctiecEk(~;51>muDxDLGteecRt&GrHS&-!rXNhn?$_oO3D>-4kkA$KoT=X1b-$ z-?Y;sV~v!dSgbc#((BoWVwW(MEPt)>;e`3L3C|s1BOO-YpuSrS4qwI1Ac0LW+yBU; z6{K=sB6B;=KI*hTs6%wZ+3YbbKa}00ZaOBG+KV}FI10V;kIq-al~Tlrv3=nSdgb?) z*O-iXblwa2NLmU^HuADkFZ}D1C;N}5n?`8O?fUSVwBBKDlU^@YtF524aoDjF^Q-qh zjeY)YRk-84g?|>VyQyql>I}Q={;jP5l9;Z}T!bG!A685Ooq1pDc;d{w&^Hi{bcS@j zOMW7x1L2oGytbd7#{k?ZatG7cxffTFT(lmv9acwMn6e50&+X{zFxA{yKqKG2sWiZq zy93|AtY4j+W?f$T6d!@4iK;EY0P4noBaiqHhjJfB+YX8TzF^qEpT#rI9ln`c=p5BB zE-Y|X?6b}_i7r|Os*?)b`We=HhQ=qa`YSqjm9lp1>lmMBv)eqa{zLg_ZrWg}PPrRx z>bF(oOzIbJBIBDf@L32ofr6fV*}8G}E5i)^_!E}&~8_A3UKn#1q&a5$IdvHwWIRX>hHC# zZyR@i&Ut-gj*DGU=)0own)Tt;nVK_8PhIYkI^u^R!Rm=cMGr$;&y(>6mf`4~1Rg(r zyn0KQ)F~zA5!dqGbMglr`6PWsqFX1*?JoblE}!^1`?|z2E;^m4GRevv^>M5wD4!N z%-!4_?{iuwroG=l-SIa5L;JH~Lw!?-6zy9Vw(j58C^q94Jh-nbuSaih4#a?Rw(*;| z7b^-4J53CGQdCZDNQ?Xq$u>{$Vr?pIH)$H3u-arjc`Ru>EZON7FFx}cOqRN4h6HDq zZ8k1yMc+twXAn+{>>ciD=Ue^opIz$IQi?l(Q)%)mZND|sYN?#HBM@-(5H1Ezv)o3F zfVY!>x=tTE#*mVlDXBd|hLOyw=5`y+ZLG;~$#ZY8PW%L(yI|O^Rio4`kCT~}8MeQB zrv6H_o7|ej)>1eS291m3eAP-~KmEc9^cdG}p(X<_es zsT;p88DBi1uHI3j4~eBt|J*#A^k(THRdO=h#wE09DEsB*w14q3U#B?BQGU=r1)fX+ z5N-IE-rin4K%+$X$!m$AfmbY)Zg8c5t6d=ly zE4Hd9Q?1sn-TfQWOYiZyasO(og84=V)Gz3S*ubk-MW z904Q3eG%FZjxaFHNZn=KnnP-%yJbI*-U5jpwLo~m`Jxkkeq!`_FGNw2y~3>x#al_? z83Yz0hA