[SWDEV-518325/SWDEV-518320/SWDEV-443309] Fix Partition Enumeration

* Changes:
  - Updates to DRM renderD* / card* pathing for partition
  - Now use KFD to discover AMD devices and populate accordingly
    Device MUST have an accessible KFD node (via cgroups)
  - Updated serveral AMD SMI CLI outputs to handle SYSFS files
    which are not accessible on partition nodes
  - Tests are updated to handle not supported features
  - Added new method to help get card/drm info
    (rsmi_dev_device_identifiers_get) from ROCm SMI
  - Renamed device->get_card_id() & device->get_drm_render_minor()
    These can now be used on internal AMD SMI calls.
  - Removed warnings shown in build

Change-Id: Ice882fd9b97fb625a5bd4ef327f3ceaf247dc570
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
This commit is contained in:
Charis Poag
2025-04-02 14:08:48 -05:00
committed by Arif, Maisam
parent af943ac05c
commit 4782528770
15 changed files with 764 additions and 580 deletions
+5 -3
View File
@@ -60,6 +60,8 @@ class AMDSmiGPUDevice: public AMDSmiProcessor {
pthread_mutex_t* get_mutex();
uint32_t get_gpu_id() const;
uint32_t get_gpu_fd() const;
uint32_t get_card_id(); // -e feature + we can get card_id for our internal functions
uint32_t get_drm_render_minor(); // -e feature + we can get card_id for our internal functions
std::string& get_gpu_path();
amdsmi_bdf_t get_bdf();
bool check_if_drm_is_supported() { return drm_.check_if_drm_is_supported(); }
@@ -80,9 +82,7 @@ class AMDSmiGPUDevice: public AMDSmiProcessor {
amdsmi_status_t amdgpu_query_driver_date(std::string& date) const;
// New methods for -e feature
std::string bdf_to_string() const;
uint32_t get_card_from_bdf() const;
uint32_t get_render_id() const;
std::string bdf_to_string() const; // -e feature
private:
uint32_t gpu_id_;
@@ -91,6 +91,8 @@ class AMDSmiGPUDevice: public AMDSmiProcessor {
amdsmi_bdf_t bdf_;
uint32_t vendor_id_;
AMDSmiDrm& drm_;
uint32_t card_index_;
uint32_t drm_render_minor_;
GPUComputeProcessList_t compute_process_list_;
int32_t get_compute_process_list_impl(GPUComputeProcessList_t& compute_process_list,
ComputeProcessListType_t list_type);