The purpose of this patch is to add Json functionality to showPids
by modifying the print2DArray function to use printSysLog.
Change-Id: Ie834d209b29332777c3f13f776f81c37d94b01b6
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: d9da490214]
Enums referenced in the test did not match what's in rocm_smi.h.
Added static assert to try to catch this. Also moved enum string
map to test_common.cc/h where other such maps are.
Also, fixed some cpplint issues.
Change-Id: I683553248ceb2fabb28ce1a1208bc9744aaf88d6
[ROCm/rocm_smi_lib commit: 7e17684532]
rocm_smi.py had an issue where it gets process information
in 2 different places. If the process disappears in between
those 2 places, a crash would occur.
This fix gracefully returns in this scenario.
Reading the file information from /proc instead of using
the python subProcess() call was considered, but it has the
drawback of not being able to read the process names of
processes not owned by the caller.
Change-Id: If812c4641f00da37e99defb0740f670107c8a797
[ROCm/rocm_smi_lib commit: db6d8d36ea]
Some rsmi apps fail without much explanation when
rsmi_init() fails. This patch hopes to provide some clues to
the reason for the failure.
Change-Id: Id51308dc327b9871d537dd3e709b677db4ef10bc
[ROCm/rocm_smi_lib commit: 6377e0258d]
Previously, when a process holding a shared mutex was killed,
the next time an RSMI application was started, it would not be
able to obtain the mutex--the application would have to exit.
This fix uses pthread_mutexattr_setrobust() to detect this
situation and act accordingingly.
Also, add some missing, needed mutexes and move mutexes
closer to where the protect resource is used.
Change-Id: Icfdc3a246f4cfa3fd008e3f13472199abd76fd35
[ROCm/rocm_smi_lib commit: f4938b0ac9]
A special mode of operation to achieve minimal performance variation by letting
the user have the ability to provide the desired frequency to be set as the soft limit.
The user can control the entry and exit to the mode via rocm-smi a mechanism to
enter / exit performance determinism mode as below.
Enter performance determinism mode:
- hold a lock
- write performance_determinism to power_dpm_force_performance_level
- write input clk_freq to pp_dpm_sclk
- release lock
Exit performance determinism_mode:
- hold a lock
- write auto to power_dpm_force_performance_level
- release lock
Signed-off-by: Divya Shikre <DivyaUday.Shikre@amd.com>
Change-Id: Ia24e27954cdf1c4337ffc83d8948fbdfaf4552d2
[ROCm/rocm_smi_lib commit: 60d0f3052f]
The purpose of this patch is to fix a bug present when using the
--gpureset option on a machine that has both an AMD GPU and a
non-AMD GPU (such as a motherboard's integrated graphics).
This bug occurs due to non-AMD GPUs being ignored by the LIB when
enumerating a list of valid AMD GPUs, causing the gpuReset method
to attempt a reset on the integrated graphics.
Change-Id: I1c03a3c41f905786e3c8246ec0c2b42786ff1770
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: c0c1fd2098]
Update the event notification tests to handle both GPU pre reset
and GPU post reset events. GPU post reset event takes sometime to
be generated after the pre reset event, so issue another
notification read to wait for post reset event.
Change-Id: I2812760b184d5357130e478cc35d27b14592abb3
[ROCm/rocm_smi_lib commit: 446ab5c8c7]
The purpose of this patch is to fix a bug present when using the
--showproducname option, resulting in the following error:
undefined symbol: rsmi_dev_sku_get
This bug fix uses a substring from vbios version instead of using the
LIB's rsmi_dev_sku_get to avoid getting the undefined symbol error.
Change-Id: I56d72a481d5dde44c56106ae297f4bcff40ac15f
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: 015c7d59d0]
This implementation is copied directly from the previous rocm_smi.py
script; This feature is experimental and will be updated or removed with
feauture releases.
Signed-off-by: Elena Saknovitch
Change-Id: I5cd38266946302bc4123aeafaa825e13f704235e
[ROCm/rocm_smi_lib commit: 4117719edd]
The purpose of this patch is to add CU occupancy functionality to showPids
by calling rsmi_compute_process_info_get from the LIB.
Now showPids shows the following information on (KFD compute) processes:
PID, process name, GPU(s), VRAM used, SDMA used, and CU occupancy.
Change-Id: Ie005901e0eb946ef0fbb3523245ca451c4eed595
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: 20ae72b078]
The purpose of this patch is to check for amdgpu driver initialization
before attempting to initialize rocmsmi in the CLI.
Additionally, since the '--help' functionality does not rely on anything
external to the CLI, it can now be called without the driver initialized.
Change-Id: I2fcce60ca6d9f77835549e3558c4bb1747499c5c
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: e3c9aec714]
We already grab the mutex before getting the device name, so we don't
need to grab it again
Change-Id: Ib627ba3a39c485f6069af052cfd3e6c522873d43
[ROCm/rocm_smi_lib commit: e350278b68]
This reverts commit 8acd845e5b.
Temporarily reverting until the driver side of this is upstream
Change-Id: I2d8243208c1271ebad90bc2ee0fda2dfefb0831b
[ROCm/rocm_smi_lib commit: ae6d3fbdd0]
WKS and server cards have an FRU with product information, so try to use
that for product name and product SKU if it exists.
Signed-off-by: Kent Russell <kent.russell@amd.com>
Change-Id: I40bbd3bf62f4cb02e96015ed1630112691cacbc3
[ROCm/rocm_smi_lib commit: df7c3434cd]
The purpose of this patch is to implement --setclock functionality for
all of the valid clocks (can be set with --setclock TYPE LEVEL).
The valid clocks are: dcefclk, fclk, mclk, pcie, sclk, socclk.
This functionality uses the existing 'setClocks' method.
Change-Id: I1d62baf372427ac1c0642c26a949663b673ef335
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: 4ed1c1d492]
VRAM and SDMA usage can be 64-bit long numbers. Use stoull()
instead of stoi() to convert the VRAM and SDMA usage strings to
numbers.
Change-Id: Ifadbada9f33320fc67666036ce8439823c1d1fb7
[ROCm/rocm_smi_lib commit: fb2ed24372]
Add handling for both pre GPU reset and post GPU reset SMI
events.
Change-Id: I64d5e006bef58cb28b1c580c75f482a4590427da
[ROCm/rocm_smi_lib commit: 8b95705e6f]
Add handling for receiving thermal throttling SMI event from the
kernel.
Also, update the event notification test to work with the new event.
Change-Id: Ib89c12b244f90998ccbae0a38b37f25705d156e0
[ROCm/rocm_smi_lib commit: aff75c955f]
Event bitmask in KFD SMI event is now replaced with event index in
the SMI event message. Sending a event bitmask, which was a 64-bit
field with only 1 bit set, was quite wasteful of memory and also
potentially limiting to 64 events. Instead the kernel would send
event index in the SMI event message. As a result, update the
KFD SMI event handling to expect the event index in the message.
Change-Id: I3e74620788d3c1f7c0bdaa69e9d9ab3d1aba2c92
[ROCm/rocm_smi_lib commit: 406859ca8a]
There may not be label files for some sensors on older
devices. We need to make sure there is a valid dummy
mapping in these cases.
Change-Id: Id6a8b71e554552be84a0e42a477070b504151e7f
[ROCm/rocm_smi_lib commit: b015052a07]
-Add divider between devices for --showclocks to increase readibility.
-Fix fan rounding error
-Fix spaces to comply with coding standard
-Fix @param description error in topo functions
-JSON result for topology:
{
"card0": {
"(Topology) Numa Node": "0",
"(Topology) Numa Affinity": "4294967295"
},
"card1": {
"(Topology) Numa Node": "0",
"(Topology) Numa Affinity": "4294967295"
},
"system": {
"(Topology) Weight between DRM devices 0 and 1": "40",
"(Topology) Hops between DRM devices 0 and 1": "2",
"(Topology) Link type between DRM devices 0 and 1": "PCIE"
}
}
Signed-off-by: Elena Sakhnovitch <Elena.Sakhnovitch@amd.com>
Change-Id: I711c100362826ed729ff90edd407009237d64f8f
[ROCm/rocm_smi_lib commit: 91f8fcb7b1]
During rocm_smi_lib installation the path should be set using ldconfig
Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Change-Id: I0cab18f492013b783d1ce632591ce295f934a168
[ROCm/rocm_smi_lib commit: f1786a3095]
The purpose of this patch is to implement show and set mclk OverDrive.
This implementation is copied directly from the previous rocm_smi.py
script since this functionality is mostly deprecated.
Change-Id: I705430f873a73f954b6812c222a385ff4e9b6eb2
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: 95d43e30e3]
The purpose of this patch is to implement the remaining valid clocks.
The valid clocks are: dcefclk, fclk, mclk, pcie, sclk, socclk
This functionality is needed for the 'setClocks' method.
Change-Id: Ie648fb29dbbd61f0f064d4462ac566911f1ca2aa
Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
[ROCm/rocm_smi_lib commit: 2d59d0877b]