diff --git a/include/hsakmttypes.h b/include/hsakmttypes.h index 5ac51c2208..ab55047739 100644 --- a/include/hsakmttypes.h +++ b/include/hsakmttypes.h @@ -301,7 +301,12 @@ typedef struct _HsaNodeProperties // number hash created by the PSP HSAuint32 NumSdmaEngines; // number of PCIe optimized SDMA engines HSAuint32 NumSdmaXgmiEngines;// number of XGMI optimized SDMA engines - HSAuint32 NumGws; // number of GWS barriers + + HSAuint8 NumSdmaQueuesPerEngine;// number of SDMA queue per one engine + HSAuint8 NumCpQueues; // number of Compute queues + HSAuint8 NumGws; // number of GWS barriers + HSAuint8 Reserved2; + HSAuint32 Domain; // PCI domain of the GPU HSAuint8 Reserved[28]; } HsaNodeProperties; diff --git a/src/topology.c b/src/topology.c index 6aab6323d5..9bcf0ad243 100644 --- a/src/topology.c +++ b/src/topology.c @@ -1026,6 +1026,10 @@ HSAKMT_STATUS topology_sysfs_get_node_props(uint32_t node_id, props->NumSdmaXgmiEngines = prop_val; else if (strcmp(prop_name, "num_gws") == 0) props->NumGws = prop_val; + else if (strcmp(prop_name, "num_sdma_queues_per_engine") == 0) + props->NumSdmaQueuesPerEngine = prop_val; + else if (strcmp(prop_name, "num_cp_queues") == 0) + props->NumCpQueues = prop_val; } hsa_gfxip = find_hsa_gfxip_device(props->DeviceId); diff --git a/tests/kfdtest/src/KFDTestUtil.cpp b/tests/kfdtest/src/KFDTestUtil.cpp index 327d4f6702..f8743cb020 100644 --- a/tests/kfdtest/src/KFDTestUtil.cpp +++ b/tests/kfdtest/src/KFDTestUtil.cpp @@ -145,16 +145,6 @@ void GetHwQueueInfo(const HsaNodeProperties *props, unsigned int *p_num_sdma_engines, unsigned int *p_num_sdma_xgmi_engines, unsigned int *p_num_sdma_queues_per_engine) { - int num_cp_queues = 24; - int num_sdma_queues_per_engine = 2; - - if (props->EngineId.ui32.Major == 9) { - if (props->EngineId.ui32.Stepping == 6) // VEGA20 - num_sdma_queues_per_engine = 8; - } else if (props->EngineId.ui32.Major == 10) { // NAVI - num_sdma_queues_per_engine = 8; - } - if (p_num_sdma_engines) *p_num_sdma_engines = props->NumSdmaEngines; @@ -162,10 +152,10 @@ void GetHwQueueInfo(const HsaNodeProperties *props, *p_num_sdma_xgmi_engines = props->NumSdmaXgmiEngines; if (p_num_sdma_queues_per_engine) - *p_num_sdma_queues_per_engine = num_sdma_queues_per_engine; + *p_num_sdma_queues_per_engine = props->NumSdmaQueuesPerEngine; if (p_num_cp_queues) - *p_num_cp_queues = num_cp_queues; + *p_num_cp_queues = props->NumCpQueues; } bool isTonga(const HsaNodeProperties *props) {