It consists of two main steps:
1. Generating Bindings with `bindgen`:
- The `build.rs` script uses `bindgen` to generate Rust FFI (Foreign
Function Interface) bindings for the AMD SMI C library. This step
automatically exports all enums, structs, unions, and unsafe functions
from the C library into Rust. This provides a comprehensive low-level
interface to the AMD SMI library.
2. Implementing Safe Rust Wrappers:
- The generated bindings are then wrapped in safe Rust functions. These
safe wrappers handle error checking, resource management, and provide a
more idiomatic Rust interface. This ensures that users of the library
can interact with the AMD SMI functions without dealing with unsafe code
directly.
Change-Id: I7d5e49e59826164fc911ced04ef7ca5706b7cc05
Signed-off-by: Tim Huang <tim.huang@amd.com>
Error handling was not displaying the missing parameter details in
argument type validator functions. Fixed this by passing param name to
AmdSmiMissingParameterValueException.
Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
Update wrapper script is not generating the python wrapper properly.
Fixed how the structure names are parsed.
Signed-off-by: Joseph Narlo <joseph.narlo@amd.com>
Units were off and VCLK/DCLK outputs were not coming in
properly through amdsmi_get_clk_freq()
Now we match units sent back through rsmi_dev_gpu_clk_freq_get (MHz).
CLI now shows maximum of 2 VCLK/DCLKs otherwise shows N/A if there
is no current_freq listed.
Change-Id: I8a7b66cbb5263e8d396f8568c104e1ce3512923d
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
Features added:
- [SWDEV-475244] Add new interface to get max memory bandwidth
Updated API: amdsmi_get_gpu_vram_info
Updated: struct amdsmi_vram_info_t to include vram_max_bandwidth
CLI: amd-smi static --vram
- [SWDEV-488349] Add new interface for XGMI link status
New API: amdsmi_get_gpu_xgmi_link_status
CLI: amd-smi xgmi --link-status
Signed-off-by: Juan Castillo <juan.castillo@amd.com>
Change-Id: I1aa35b741136eb4f02f7ea9a95b865886273eb72
List string should take into account dictionary value types
Change-Id: Icc08288cb0007d43eacd1aff6d44c40a84ea9448
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
Updated changelog to provide options to users on how to fix.
Change-Id: I4fd04b1e65ff9d678b2d13109599f57a03c84d41
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
The xgmi read and write values were displayed in KB. The numbers became
unreadable due to misalignment. So, converted read and write values to
readable units using helper function. Updated Changelog.
Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
Change-Id: I4c90a1de8a58c29cbdf43fe3480a1546f3946673
Reason for this fix:
Navi products use vclk and dclk for both encode and decode.
On MI products, only decode is supported.
Navi products cannot support displaying ENC_UTIL % at this time.
Change-Id: I107bb761794ae4724949ac21c110b23a4f616700
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
Issues include:
SWDEV-480250
SWDEV-480255
SWDEV-480248
Known issue:
`amd-smi event` has threads taking events from the same device
which, in the case of resetting gpus, makes it seem like some gpus have
reset mulitple times and other have not reset at all.
Signed-off-by: gabrpham <Gabriel.Pham@amd.com>
Change-Id: Ic7dcc214e0366fc1532ece579d915d34d35d5407
Earlier amd-smi set was returning different outputs in Linux
and Windows. In Linux it was returning ValueError. As part of
Error Code unification, corrected this output message.
Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
Change-Id: Iba9ddd9c5b2bed0456f303e4373f6771c93608be
The FRU_ID was truncated because the string copied from sysfs
was limited to 32 characters. This limit has been increased to
AMDSMI_MAX_STRING_LENGTH to accommodate longer FRU_IDs. Also
updated the deprecated string length macros.
Signed-off-by: Bindhiya Kanangot Balakrishnan <Bindhiya.KanangotBalakrishnan@amd.com>
Change-Id: I8becaf9f37609b2e5aecdf92b6ae60f4419ad8ef