Please ignore this patch.

> -----Original Message-----
> From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of Alex
> Sierra
> Sent: Wednesday, March 30, 2022 4:24 PM
> To: j...@nvidia.com
> Cc: rcampb...@nvidia.com; wi...@infradead.org; da...@redhat.com;
> Kuehling, Felix <felix.kuehl...@amd.com>; apop...@nvidia.com; amd-
> g...@lists.freedesktop.org; linux-...@vger.kernel.org; linux...@kvack.org;
> jgli...@redhat.com; dri-de...@lists.freedesktop.org; akpm@linux-
> foundation.org; linux-e...@vger.kernel.org; h...@lst.de
> Subject: [PATCH] drm/amdkfd: Add SVM API support capability bits
> 
> From: Philip Yang <philip.y...@amd.com>
> 
> 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.y...@amd.com>
> Reviewed-by: Felix Kuehling <felix.kuehl...@amd.com>
> Signed-off-by: Felix Kuehling <felix.kuehl...@amd.com>
> Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
> ---
>  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

Reply via email to