Files
rocm-systems/projects/rocprofiler-systems/tests/generate_papi_nic_events.sh
T
ajanicijamd 259ef6348b Fixed issues with nic-performance test (#1168)
- On some hosts the wget can finish too soon and PAPI doesn't catch even a single network event.
- On some hosts, there are multiple default NICs and the scripts didn't work in that case.
- The test script was writing the output of wget to /tmp directory, which causes a problem if another user tries to run the same test. Because the output file with the same name already exists in the same directory, but with a different owner, the test fails

---------

Co-authored-by: David Galiffi <David.Galiffi@amd.com>
2025-10-14 23:45:08 -04:00

35 rader
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright (c) Advanced Micro Devices, Inc.
# SPDX-License-Identifier: MIT
# This script gets a list of default NICs from ip command
# and generates a list of PAPI events, 4 for each NIC.
# and generates a list of PAPI events; 4 for each NIC.
# For example, if the NIC is enp7s0, the PAPI events are:
# net:::enp7s0:tx:byte net:::enp7s0:rx:byte net:::enp7s0:tx:packet net:::enp7s0:rx:packet
# Get the directory where this script is located
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
if [ ! -x "$script_dir/get_default_nic.sh" ]; then
echo "Error: helper script get_default_nic.sh not found or not executable in $script_dir" >&2
exit 1
fi
# Call the `get_default_nic.sh`` script to get the list of default NICs
# and store it in the nic_list variable
nic_list="$("$script_dir/get_default_nic.sh")"
if [ $? -ne 0 ]; then
echo "Error: failed to get default NICs" >&2
exit 1
fi
events=()
for nic in $nic_list; do
events+=("net:::${nic}:tx:byte" "net:::${nic}:rx:byte" "net:::${nic}:tx:packet" "net:::${nic}:rx:packet")
done
event_list="${events[*]}"
echo $event_list