Please ignore this patch. > -----Original Message----- > From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Alex > Sierra > Sent: Wednesday, March 30, 2022 4:24 PM > To: jgg@xxxxxxxxxx > Cc: rcampbell@xxxxxxxxxx; willy@xxxxxxxxxxxxx; david@xxxxxxxxxx; > Kuehling, Felix <Felix.Kuehling@xxxxxxx>; apopple@xxxxxxxxxx; amd- > gfx@xxxxxxxxxxxxxxxxxxxxx; linux-xfs@xxxxxxxxxxxxxxx; linux-mm@xxxxxxxxx; > jglisse@xxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; akpm@linux- > foundation.org; linux-ext4@xxxxxxxxxxxxxxx; hch@xxxxxx > Subject: [PATCH] drm/amdkfd: Add SVM API support capability bits > > From: Philip Yang <Philip.Yang@xxxxxxx> > > SVMAPISupported property added to HSA_CAPABILITY, the value match > HSA_CAPABILITY defined in Thunk spec: > > SVMAPISupported: it will not be supported on older kernels that don't have > HMM or on systems with GFXv8 or older GPUs without support for 48-bit > virtual addresses. > > CoherentHostAccess property added to HSA_MEMORYPROPERTY, the value > match HSA_MEMORYPROPERTY defined in Thunk spec: > > CoherentHostAccess: whether or not device memory can be coherently > accessed by the host CPU. > > Signed-off-by: Philip Yang <Philip.Yang@xxxxxxx> > Reviewed-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> > Signed-off-by: Felix Kuehling <Felix.Kuehling@xxxxxxx> > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 6 ++++++ > drivers/gpu/drm/amd/amdkfd/kfd_topology.h | 10 ++++++---- > 2 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > index cdef608db4f4..083ac9babfa8 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > @@ -1419,6 +1419,12 @@ int kfd_topology_add_device(struct kfd_dev > *gpu) > dev->node_props.capability |= (adev->ras_features != 0) ? > HSA_CAP_RASEVENTNOTIFY : 0; > > + /* SVM API and HMM page migration work together, device memory > type > + * is initialized to not 0 when page migration register device memory. > + */ > + if (adev->kfd.dev->pgmap.type != 0) > + dev->node_props.capability |= > HSA_CAP_SVMAPI_SUPPORTED; > + > kfd_debug_print_topology(); > > if (!res) > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h > b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h > index b8b68087bd7a..6bd6380b0ee0 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.h > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.h > @@ -53,8 +53,9 @@ > #define HSA_CAP_ASIC_REVISION_MASK 0x03c00000 > #define HSA_CAP_ASIC_REVISION_SHIFT 22 > #define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000 > +#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000 > > -#define HSA_CAP_RESERVED 0xf80f8000 > +#define HSA_CAP_RESERVED 0xf00f8000 > > struct kfd_node_properties { > uint64_t hive_id; > @@ -98,9 +99,10 @@ struct kfd_node_properties { > #define HSA_MEM_HEAP_TYPE_GPU_LDS 4 > #define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5 > > -#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001 > -#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002 > -#define HSA_MEM_FLAGS_RESERVED 0xfffffffc > +#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001 > +#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002 > +#define HSA_MEM_FLAGS_COHERENTHOSTACCESS 0x00000004 > +#define HSA_MEM_FLAGS_RESERVED 0xfffffff8 > > struct kfd_mem_properties { > struct list_head list; > -- > 2.32.0