Commit Graph

972 Commits

Author SHA1 Message Date
Charis Poag 0d3558945b [SWDEV-335697] Add RSMI_STATUS_SETTING_UNAVAILABLE for dynamic partition
Updates:
    * Added RSMI_STATUS_SETTING_UNAVAILABLE for
      rsmi_dev_compute_partition_set - gives users
      better error output when attempting to set
      compute partition to values not listed in
      available_compute_partition SYSFS
    * Updated python --setcomputepartition to
      provide better output when receiving
      RSMI_STATUS_SETTING_UNAVAILABLE
    * Updated all test & example files to check for
      RSMI_STATUS_SETTING_UNAVAILABLE when doing
      rsmi_dev_compute_partition_set

Change-Id: Ida5d54880d9b9b6e4a0468cdb962fdc0c18d6257
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
2023-02-27 11:17:44 -06:00
Bill(Shuzhou) Liu 55bc2e2072 Memory usage division by zero
The showAllConcise with division by zero error.

Change-Id: I469f1b9f268842cd51662be6f9036f555a8949b2
2023-02-24 10:12:36 -06:00
Dalibor Stanisavljevic 7b176fc2df SWDEV-380736 - Adjusted ouput for amdsmi_get_vram_usage
Change-Id: I6a2cd2353a0c3fafc3a3690098a1e279ecd30378
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-02-24 14:47:07 +01:00
Marko Oblak b43b6e71c2 SWDEV-384518 - [AMDSMI] [Navi32] [Linux] [BM] [Guest] Fixed RAS enabled Python interface
Signed-off-by: Marko Oblak <Marko.Oblak@amd.com>
Change-Id: Iacdb57ddc63ea3e7ce5c19506577487ab18c0c89
2023-02-23 15:51:45 +01:00
Marko Oblak 7eea4e596b SWDEV-384678 - Resolve issue with amdsmi build failure
Signed-off-by: Marko Oblak <Marko.Oblak@amd.com>
Change-Id: I073113814d2f6740c9eaea1b298d8aff9ea58c72
2023-02-22 11:00:57 +01:00
Bill(Shuzhou) Liu b40933b895 Use Unified Changelog Template
The CHANGELOG.md is added to track changes.

Change-Id: I33547cb7f1596b4b8abf206aebdd664649d4d19f
2023-02-21 14:27:55 -06:00
Marko Oblak 0aadf7eab2 SWDEV-373291 - Added implementation of versioning solution
Signed-off-by: Marko Oblak <Marko.Oblak@amd.com>
Change-Id: Ifd0be3f81902466339b6c098ce16d5e49740056c
2023-02-21 17:37:54 +01:00
Marko Oblak db9d8793be SWDEV-381227 - [AMDSMI][Linux][BM] SMILIB returns wrong temperature value
Signed-off-by: Marko Oblak <Marko.Oblak@amd.com>
Change-Id: Idc9929d1cfd882bb33abf040378587f68d22b31a
2023-02-21 17:21:15 +01:00
Charis Poag 77c950a4bf [SWDEV-381630] Add reset partition functionality
Updates:
    * Added rsmi_dev_compute_partition_reset & rsmi_dev_nps_mode_reset
    * Added --resetcomputepartition and --resetnpsmode python smi calls
    * Added temp data files rocmsmi_boot_compute_partition_<device num>
      & rocmsmi_boot_nps_mode_partition_<device num>, writes UNKNOWN
      if data cannot be read or device does not support
    * Cleaned up NPS & compute API documentation
    * Added creation and reading of API temp files (used in reset
      functionality)
    * Cleaned up output of rocm_smi_example
    * Updated rocm_smi_example to check if running with sudo permission
      before executing write API calls (cleans up erroneous output)
    * Added template specialization for storing temp data, requires
      specific rsmi_type_t enums (restrics what data can be stored)
    * Added storage of temp data, if temp files do not exist
    * Updated google tests for NPS & compute to include reset API calls

Change-Id: I69895a466b97107617e6dbb355737b84499a76c9
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
2023-02-17 12:55:08 -06:00
Galantsev, Dmitrii 3bed2b7b8f Improve Debian packaging recommendation
See: https://cmake.org/cmake/help/latest/cpack_gen/deb.html#variable:CPACK_DEBIAN_PACKAGE_RECOMMENDS

Change-Id: I945cbf2104d108caf0ee6e2e963ecfca9a6320e0
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-02-16 14:40:40 -06:00
Charis Poag 9ef376cd61 SWDEV-342812- Add NPS support
Updates:
    * Added rsmi_dev_nps_mode_set and rsmi_dev_nps_mode_get
    * Added ability to set multiple SYSFS files in debug build
    * Added ability to see user's env variables set for debug build
    * Added tests for rsmi_dev_nps_mode_set and rsmi_dev_nps_mode_get
    * Added ability to restart AMD GPU driver, used in nps_mode_set
    * Updated ROCm_SMI_Manual.pdf to include new APIs
    * Added progress bar for long running python_smi_tools, used
      in setting nps_mode if runs longer than .1 seconds

Change-Id: I6d61bedd28d7cba6aff432ad2d127ba741b7d15a
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
2023-02-14 11:54:24 -06:00
Bill(Shuzhou) Liu ae10e842af rocm-smi --showxgmierr return error instead of error counter values
The rocm-smi pass wrong arguments

Change-Id: I3a3923abdd263d4af87f3ec90670bb16afa2ef9b
2023-02-13 16:36:24 -05:00
Bill(Shuzhou) Liu 00a6c78a51 Dispaly printable device name
Fallback to other methods if the device name in sysfs is not printable.

Change-Id: I20b22950399d4a515d2688b955248a3de3c61d05
2023-02-10 11:32:46 -05:00
Ranjith Ramakrishnan 02141a7f1d SWDEV-366831 - File reorg backward compatibility message changed to #error
Change-Id: I3d3b220b31f42140eab5404df790a130d2c238c4
2023-02-08 14:25:16 -08:00
Ori Messinger 56f9d6bfc0 ROCm SMI CLI: Fix --showproductname bug
This patch fixes a --showproductname bug, which is related to the
device's SKU. If a device with a VBIOS value that cannot be decoded
is used, that device's SKU cannot be parsed out of the VBIOS string.

Now, when the VBIOS value cannot be decoded, an error will be
printed instead of crashing with an 'UnboundLocalError' message.

Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
Change-Id: I680a182e94107e782235b8a2477ab165988f7703
2023-02-02 14:52:13 -05:00
Harish Kasiviswanathan 142dcfa8f4 Don't depend on vbios_version sysfs file
On APU's vbios_version string might not be exposed. Relying on vendor ID
to detect AMDGPU is sufficient

Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Change-Id: I08ef4b4bc7491a40f318791803aeaf261f7fac25
2023-01-29 21:31:13 -05:00
Dalibor Stanisavljevic c469c3d505 SWDEV-375213 - Renamed gpu_device to gpudevice for amdsmi_get_power_cap_info
Change-Id: I8518587f35e4ce897317a09505435eee7a8f81f8
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-26 14:11:26 +01:00
Dalibor Stanisavljevic ff553cdb56 SWDEV-375213 - Separate smi from rocm part inside functions
Change-Id: I81d2e9d02794ac017a74b3273c6f5a8c85b042a0
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-26 07:28:53 -05:00
Dalibor Stanisavljevic 08bcaee3e2 SWDEV-373295 - Updated python interface
Change-Id: I882179d97a4f522deb0e8b9cdbff85d9b23471ab
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-25 14:21:24 +01:00
Dalibor Stanisavljevic 411ef54087 SWDEV-375113 - Fixed process info
The format of the fdinfo file has changed

Change-Id: Iad2e26487e75f3e614e364456e929aa1f6f949a4
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-23 08:13:55 -05:00
Dalibor Stanisavljevic cf7a92f383 SWDEV-373282 - Fixed compiler warnings
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
Change-Id: Ieacf1057ad23f9a31d47a6d1199c90d8fa0d12db
2023-01-23 03:37:29 -05:00
Dalibor Stanisavljevic a926f42599 SWDEV-373295 - Added power_limit field in python api
Change-Id: Ie81e78eb9930fb0d8132ee9f119e291afbcad84f
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-23 03:36:00 -05:00
Galantsev, Dmitrii 6ee793ca03 SWDEV-340919 - Move examples and tests install dir
Previous install locations:
- /opt/rocm/share/example/amd-smi
- /opt/rocm/share/tests/amd-smi

New install locations:
- /opt/rocm/share/amd_smi/example
- /opt/rocm/share/amd_smi/tests

Change-Id: I305477b9f66bdc5963923efe6da1c01f87ea2085
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-01-20 09:49:56 -06:00
Maisam Arif 6aa91da74c Revert "Added AMD-SMI Linux Baremetal"
This reverts commit 013400bee7.

Reason for revert: Branch is still WIP

Change-Id: I75eec813b3d81049f033fe0a534251bd69eeca0e
2023-01-19 11:45:20 -05:00
Dalibor Stanisavljevic ed8f865341 Revert "Adjusted folder naming and moved amdsmi_cli into amdsmi project folder"
This reverts commit 3eadf3a216
because build failed

Change-Id: Id9efa22f3e1167e1b1bb235b449aef60256c0e24
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-19 15:40:28 +01:00
Dalibor Stanisavljevic bf79fe4323 SWDEV-378294 - Fixed failing tests
Change-Id: Ie0f9dedd6901e05b1a5ca7846624c127d92ed67f
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-18 10:28:32 -05:00
Maisam Arif 3eadf3a216 Adjusted folder naming and moved amdsmi_cli into amdsmi project folder
Change-Id: I4b7c42161fc92450f496483e5b49c7def6810437
2023-01-18 08:47:38 -06:00
Maisam Arif 013400bee7 Added AMD-SMI Linux Baremetal
Change-Id: I39ec76f4e4a8ca32eba10f4541585b2284e71539
Signed-off-by: Maisam Arif <Maisam.Arif@amd.com>
2023-01-18 03:32:52 -06:00
Elena Sakhnovitch 2b449fe58d Measure api execution time
Add new test to measure api execution time.

Change-Id: I0ad10c822bad4a2ae04b5785173b4ff21996021d
2023-01-16 17:00:36 -05:00
Bill(Shuzhou) Liu 99034af009 Add missing string header for memcpy
Fix compile error: ‘memcpy’ was not declared

Change-Id: I54d1849a3a18901baac1e24986b82067eb2fd6b4
2023-01-16 12:11:10 -05:00
Jason Albert 86de0f441f Remove tag values from enum/union/struct declarations
The tag values largely were not used and were causing doxygen
generation issues.
In the few cases where the tags were being referenced, clean up
those compile issues.

Signed-off-by: Jason Albert <jason.albert@amd.com>
Change-Id: I7b32eac742fb5af560400c13dda2721705d882bc
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-16 13:14:45 +01:00
Dalibor Stanisavljevic bbcbe896ea SWDEV-375113 - Updated python wrapper
Change-Id: I779cd5d7ff3f3ca231d1fd90dcedcc070540e6e3
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-16 12:24:38 +01:00
Dalibor Stanisavljevic 49aad0f898 SWDEV-375098 - Added check if driver sysfs node exists
Change-Id: I2524f96e5447fd3a34aa16efe3dfc271b7df62b9
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-16 10:58:27 +01:00
Charis Poag 4d7f3f2bc7 SWDEV-335697- Add support for dynamic partitioning
Original updates:
    * Added .gitignore to help with future commits
    * Updated/added copyrights on modified or added files
    * Updated rocm_smi.h/.cc
      - Added 3 new SMI API functions:
          rsmi_dev_compute_partition_set &
          rsmi_dev_compute_partition_get
      - Added helpful maps/enums used in
        new get/set compute_partition API calls
    * Updated rocm_smi.py
      - Added --showcomputepartition
      - Added --setcomputepartition
      - Fixed a few mistypes
    * Updated rsmiBindings.py - added helpful class/dict/list
    * Updated rocm_smi_example.cc
      - Added helpful MACRO to detect if api is not supported.
      - Added current_compute_partition set/get rocm lib calls
      - Added helpful macro to discover future RSMI errors
      - Commented out test_set_freq, was having permission issues
        on a Navi21
    * Updated rocm_smi_main.cc
      - Added helpful map to debug API calls, left in for future use
      - Added comment to better understand a non-class function returns
    * Added computepartition_read_write.cc/.h
      - Added get/set compute partition API test calls
      - Confirmed on devices that do not support the API calls, tests pass
    * Updated rocm_smi_test/main.cc
      - Calls new compute partition gtests

Added following updates from review feedback:
   * Updated rocm_smi.h/cc
       - Removed C++ API calls, adding support for both C/C++
         API calls could cause confusion and adds extra work for us
       - rsmi_dev_compute_partition_get -> Fixed an edge case where
         user gives a small buffer length size (smaller than data
         received), but does not receive the partial buffer back.
         google Tests are updated to reflect this find.
   * Updated rocm_smi_example.cc
       - Fixed test_set_freq, issue was that file was not writable.
         We now indicate this warning, so prior errors make sense.
       - General test code cleanup. Removed extra code,
         by creating loops for tests.
   * Updated rocm_smi_main.cc
     - Moved and got rid of an external reference to a map used
       for debugging RSMI enums, now is a const public reference.
   * Updated rocm_smi.py
     - Updated python code to identify NOT_SUPPORTED due to
       (currently) only a few GPU support the feature

Change-Id: I4a567acbb59d6771fb64df08d19175fe3604fd1b
2023-01-13 10:46:40 -05:00
Bill(Shuzhou) Liu f19da1bb2c Crash when fails to open sysfs file
When it fails to open sysfs file, it may crash. Modify the condition
to check the file descriptor after open the file.

Change-Id: I2acdc55f8194a2d734db20d16e1660a20ba09574
2023-01-13 08:15:58 -06:00
Dalibor Stanisavljevic 4caded6dc4 SWDEV-376644 - Renamed usage to engine_usage
Change-Id: Icaac74800e30c1769a491ef190359490aba757b7
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-12 15:58:29 +01:00
Dalibor Stanisavljevic 943c42f58f SWDEV-374716 - Fixed asic info
Change-Id: I8d806ef09eca4300fcec0ce6a226d13547dfb728
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-11 11:03:17 -05:00
Bill(Shuzhou) Liu ec48312c61 Remove duplicate temperature function
The amdsmi_dev_get_temp_metric() will cover both function:
amdsmi_get_temperature_measure() using AMDSMI_TEMP_CURRENT
and
amdsmi_get_temperature_limit() using AMDSMI_TEMP_CRITICAL
Remove those two function.

It also merge the amdsmi_get_power_limit() into
amdsmi_get_power_measure()

Change-Id: I40d4afeb2ec0ac7b64832729f36adfaae120c990
2023-01-11 08:13:37 -06:00
Dalibor Stanisavljevic e217fff82c SWDEV-375181 - Fixed amdsmi_get_fw_info python output
Change-Id: I4bf4bf49cd921d52849e1bb140e464e2756b07c5
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2023-01-11 11:17:49 +01:00
Ori Messinger 5c478e9eb9 ROCm SMI CLI: Fix --showproductname bugs
This patch fixes a couple of --showproductname bugs, both of which
are related to the device's SKU.
Previously if a device with a non-standard VBIOS name was used,
fetching that device's SKU wasn't working correctly.

A standard VBIOS name should follow the following pattern:
AAA-BBBBBB-CCC
Where the middle section "BBBBBB" between the hypens is the SKU.

Now, SKU can be correctly fetched even with a non-standard VBIOS
name, and return 'unkown' if SKU does not exist.

Signed-off-by: Ori Messinger <Ori.Messinger@amd.com>
Change-Id: I5899a859c6131c6048bb31a4305ddacbac3075a9
2023-01-05 11:53:04 -05:00
Bill(Shuzhou) Liu 79bd9c1d5f change sensor_type in amdsmi_dev_get_temp_metric() to enum
The sensor_type in amdsmi_dev_get_temp_metric() will be changed to
amdsmi_temperature_type_t

Change-Id: I72a7f271b0a55a025acc2ca523062a3d51cc036d
2023-01-04 13:01:04 -06:00
Galantsev, Dmitrii 2184d0c3d7 SWDEV-374138 - Improve ASAN flags
Tests overwritten the linker flags resulting in failed build with clang.
This change improves ASAN linker flag assignment and fixes test issue.

Change-Id: I88f38360d46b20f6cc7298ad0d1fd09ff6ce47d6
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
2023-01-03 16:30:48 -06:00
Dalibor Stanisavljevic 9d345c5797 SWDEV-375271 - Renamed AmdSmiClockType to AmdSmiClkType
Change-Id: I6af34f7c4701584357ae5ec1315fbc425f2a9f82
2022-12-28 12:55:15 +01:00
Dalibor Stanisavljevic 0f7c440d95 SWDEV-373280 - Updated python wrapper
Use ctypes to import types instead of via amdsmi_wrapper

Change-Id: I217e90b74aafdd39eaab5f50edfda80e0bf91cce
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2022-12-28 10:21:54 +01:00
Dalibor Stanisavljevic 36eb2145d9 SWDEV-373280 - Added new generator
Change-Id: I82e3663f8118f17dc6a223a79cadd95634329356
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2022-12-27 10:14:09 +01:00
Dalibor Stanisavljevic cb013d25ff SWDEV-370502 - Reserved fields in structs
Change-Id: I23aed12baf6b3173eb149eb3b969e55d7e4360ee
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2022-12-26 10:51:44 -05:00
Dalibor Stanisavljevic 0bdd45e935 SWDEV-371492 - Updated python wrapper
Change-Id: I04f9f825ecdbe06de9ca95cf19e3f5bca972ec95
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2022-12-23 14:09:50 +01:00
Dalibor Stanisavljevic e22e72d4c3 SWDEV-371492 - Added check that device_handle is valid
Change-Id: Ic1b593fd5f781650528c860c372fa9864624255d
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2022-12-22 12:57:42 +01:00
Dalibor Stanisavljevic 4c56e9e3d6 SWDEV-371199 - Return NOT_INIT when amdsmi initialization fails
Change-Id: Ifb40aef3a62885b08164e9aa944bf9b5c375ebfd
Signed-off-by: Dalibor Stanisavljevic <Dalibor.Stanisavljevic@amd.com>
2022-12-19 16:29:29 +01:00
Bill(Shuzhou) Liu 221d6fdc5c Make amdsmi function name consistent
Some of the amdsmi function have the verb (set or get) at the
end of the function. Move it to the middle to be consistent with
other APIs.

Change-Id: I8053d16f46af951c25aaaf8febf2896a33633fa1
2022-12-16 10:20:49 -06:00