drm/amdkfd: expose host gpu link via sysfs (v2)
Currently host-gpu io link is always reported as PCIe however, on some A+A systems, there could be one xgmi link available. This change exposes xgmi link via sysfs when it is present. v2: fix includes (Alex) Reviewed-by: Oak Zeng <oak.zeng@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
3cbb3a9749
commit
d34184e3e3
|
@ -26,6 +26,7 @@
|
|||
#include "kfd_priv.h"
|
||||
#include "kfd_topology.h"
|
||||
#include "kfd_iommu.h"
|
||||
#include "amdgpu.h"
|
||||
#include "amdgpu_amdkfd.h"
|
||||
|
||||
/* GPU Processor ID base for dGPUs for which VCRAT needs to be created.
|
||||
|
@ -1113,6 +1114,8 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
|
|||
struct crat_subtype_iolink *sub_type_hdr,
|
||||
uint32_t proximity_domain)
|
||||
{
|
||||
struct amdgpu_device *adev = (struct amdgpu_device *)kdev->kgd;
|
||||
|
||||
*avail_size -= sizeof(struct crat_subtype_iolink);
|
||||
if (*avail_size < 0)
|
||||
return -ENOMEM;
|
||||
|
@ -1129,7 +1132,18 @@ static int kfd_fill_gpu_direct_io_link_to_cpu(int *avail_size,
|
|||
/* Fill in IOLINK subtype.
|
||||
* TODO: Fill-in other fields of iolink subtype
|
||||
*/
|
||||
if (adev->gmc.xgmi.connected_to_cpu) {
|
||||
/*
|
||||
* with host gpu xgmi link, host can access gpu memory whether
|
||||
* or not pcie bar type is large, so always create bidirectional
|
||||
* io link.
|
||||
*/
|
||||
sub_type_hdr->flags |= CRAT_IOLINK_FLAGS_BI_DIRECTIONAL;
|
||||
sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_XGMI;
|
||||
} else {
|
||||
sub_type_hdr->io_interface_type = CRAT_IOLINK_TYPE_PCIEXPRESS;
|
||||
}
|
||||
|
||||
sub_type_hdr->proximity_domain_from = proximity_domain;
|
||||
#ifdef CONFIG_NUMA
|
||||
if (kdev->pdev->dev.numa_node == NUMA_NO_NODE)
|
||||
|
|
Loading…
Reference in New Issue