Re: [PATCH] drm/amdkfd: Allow building KFD on ARM64
Am 03.01.19 um 04:42 schrieb Alex Deucher: On Wed, Jan 2, 2019 at 5:26 PM Kuehling, Felix wrote: ifdef x86_64 specific code. Allow enabling CONFIG_HSA_AMD on ARM64. CC: Mark Nutter Signed-off-by: Felix Kuehling Acked-by: Alex Deucher Nice to see that we finally pick up some ARM support. Acked-by: Christian König as well. --- drivers/gpu/drm/amd/amdkfd/Kconfig| 4 ++-- drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 8 drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 8 +--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/Kconfig b/drivers/gpu/drm/amd/amdkfd/Kconfig index fbf0ee5..c361360 100644 --- a/drivers/gpu/drm/amd/amdkfd/Kconfig +++ b/drivers/gpu/drm/amd/amdkfd/Kconfig @@ -4,8 +4,8 @@ config HSA_AMD bool "HSA kernel driver for AMD GPU devices" - depends on DRM_AMDGPU && X86_64 - imply AMD_IOMMU_V2 + depends on DRM_AMDGPU && (X86_64 || ARM64) + imply AMD_IOMMU_V2 if X86_64 select MMU_NOTIFIER help Enable this if you want to use HSA features on AMD GPU devices. diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c index c02adbb..d7ddb35 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c @@ -863,6 +863,7 @@ static int kfd_fill_mem_info_for_cpu(int numa_node_id, int *avail_size, return 0; } +#if CONFIG_X86_64 static int kfd_fill_iolink_info_for_cpu(int numa_node_id, int *avail_size, uint32_t *num_entries, struct crat_subtype_iolink *sub_type_hdr) @@ -905,6 +906,7 @@ static int kfd_fill_iolink_info_for_cpu(int numa_node_id, int *avail_size, return 0; } +#endif /* kfd_create_vcrat_image_cpu - Create Virtual CRAT for CPU * @@ -920,7 +922,9 @@ static int kfd_create_vcrat_image_cpu(void *pcrat_image, size_t *size) struct crat_subtype_generic *sub_type_hdr; int avail_size = *size; int numa_node_id; +#ifdef CONFIG_X86_64 uint32_t entries = 0; +#endif int ret = 0; if (!pcrat_image || avail_size < VCRAT_SIZE_FOR_CPU) @@ -982,6 +986,7 @@ static int kfd_create_vcrat_image_cpu(void *pcrat_image, size_t *size) sub_type_hdr->length); /* Fill in Subtype: IO Link */ +#ifdef CONFIG_X86_64 ret = kfd_fill_iolink_info_for_cpu(numa_node_id, _size, , (struct crat_subtype_iolink *)sub_type_hdr); @@ -992,6 +997,9 @@ static int kfd_create_vcrat_image_cpu(void *pcrat_image, size_t *size) sub_type_hdr = (typeof(sub_type_hdr))((char *)sub_type_hdr + sub_type_hdr->length * entries); +#else + pr_info("IO link not available for non x86 platforms\n"); +#endif crat_table->num_domains++; } diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c index 5f5b2ac..8afc592 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c @@ -1400,9 +1400,11 @@ static int kfd_cpumask_to_apic_id(const struct cpumask *cpumask) first_cpu_of_numa_node = cpumask_first(cpumask); if (first_cpu_of_numa_node >= nr_cpu_ids) return -1; - cpuinfo = _data(first_cpu_of_numa_node); - - return cpuinfo->apicid; +#ifdef CONFIG_X86_64 + return cpu_data(first_cpu_of_numa_node).apicid; +#else + return first_cpu_of_numa_node; +#endif } /* kfd_numa_node_to_apic_id - Returns the APIC ID of the first logical processor -- 2.7.4 ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx
Re: [PATCH] drm/amdkfd: Allow building KFD on ARM64
On Wed, Jan 2, 2019 at 5:26 PM Kuehling, Felix wrote: > > ifdef x86_64 specific code. > Allow enabling CONFIG_HSA_AMD on ARM64. > > CC: Mark Nutter > Signed-off-by: Felix Kuehling Acked-by: Alex Deucher > --- > drivers/gpu/drm/amd/amdkfd/Kconfig| 4 ++-- > drivers/gpu/drm/amd/amdkfd/kfd_crat.c | 8 > drivers/gpu/drm/amd/amdkfd/kfd_topology.c | 8 +--- > 3 files changed, 15 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/Kconfig > b/drivers/gpu/drm/amd/amdkfd/Kconfig > index fbf0ee5..c361360 100644 > --- a/drivers/gpu/drm/amd/amdkfd/Kconfig > +++ b/drivers/gpu/drm/amd/amdkfd/Kconfig > @@ -4,8 +4,8 @@ > > config HSA_AMD > bool "HSA kernel driver for AMD GPU devices" > - depends on DRM_AMDGPU && X86_64 > - imply AMD_IOMMU_V2 > + depends on DRM_AMDGPU && (X86_64 || ARM64) > + imply AMD_IOMMU_V2 if X86_64 > select MMU_NOTIFIER > help > Enable this if you want to use HSA features on AMD GPU devices. > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > index c02adbb..d7ddb35 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_crat.c > @@ -863,6 +863,7 @@ static int kfd_fill_mem_info_for_cpu(int numa_node_id, > int *avail_size, > return 0; > } > > +#if CONFIG_X86_64 > static int kfd_fill_iolink_info_for_cpu(int numa_node_id, int *avail_size, > uint32_t *num_entries, > struct crat_subtype_iolink *sub_type_hdr) > @@ -905,6 +906,7 @@ static int kfd_fill_iolink_info_for_cpu(int numa_node_id, > int *avail_size, > > return 0; > } > +#endif > > /* kfd_create_vcrat_image_cpu - Create Virtual CRAT for CPU > * > @@ -920,7 +922,9 @@ static int kfd_create_vcrat_image_cpu(void *pcrat_image, > size_t *size) > struct crat_subtype_generic *sub_type_hdr; > int avail_size = *size; > int numa_node_id; > +#ifdef CONFIG_X86_64 > uint32_t entries = 0; > +#endif > int ret = 0; > > if (!pcrat_image || avail_size < VCRAT_SIZE_FOR_CPU) > @@ -982,6 +986,7 @@ static int kfd_create_vcrat_image_cpu(void *pcrat_image, > size_t *size) > sub_type_hdr->length); > > /* Fill in Subtype: IO Link */ > +#ifdef CONFIG_X86_64 > ret = kfd_fill_iolink_info_for_cpu(numa_node_id, _size, > , > (struct crat_subtype_iolink *)sub_type_hdr); > @@ -992,6 +997,9 @@ static int kfd_create_vcrat_image_cpu(void *pcrat_image, > size_t *size) > > sub_type_hdr = (typeof(sub_type_hdr))((char *)sub_type_hdr + > sub_type_hdr->length * entries); > +#else > + pr_info("IO link not available for non x86 platforms\n"); > +#endif > > crat_table->num_domains++; > } > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > index 5f5b2ac..8afc592 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_topology.c > @@ -1400,9 +1400,11 @@ static int kfd_cpumask_to_apic_id(const struct cpumask > *cpumask) > first_cpu_of_numa_node = cpumask_first(cpumask); > if (first_cpu_of_numa_node >= nr_cpu_ids) > return -1; > - cpuinfo = _data(first_cpu_of_numa_node); > - > - return cpuinfo->apicid; > +#ifdef CONFIG_X86_64 > + return cpu_data(first_cpu_of_numa_node).apicid; > +#else > + return first_cpu_of_numa_node; > +#endif > } > > /* kfd_numa_node_to_apic_id - Returns the APIC ID of the first logical > processor > -- > 2.7.4 > > ___ > amd-gfx mailing list > amd-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx ___ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx