On 9 December 2017 at 14:08, Felix Kuehling <felix.kuehl...@amd.com> wrote: > From: Harish Kasiviswanathan <harish.kasiviswanat...@amd.com> > > Implement new kgd-kfd interface function get_local_mem_info. > > Signed-off-by: Harish Kasiviswanathan <harish.kasiviswanat...@amd.com> > Signed-off-by: Ben Goz <ben....@amd.com> > Signed-off-by: Felix Kuehling <felix.kuehl...@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 30 > +++++++++++++++++++++++ > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 2 ++ > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c | 1 + > 4 files changed, 34 insertions(+) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > index cfb7827..56f6c12 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c > @@ -252,6 +252,36 @@ uint64_t get_vmem_size(struct kgd_dev *kgd) > return adev->mc.real_vram_size; > } > > +void get_local_mem_info(struct kgd_dev *kgd, > + struct kfd_local_mem_info *mem_info) > +{ > + struct amdgpu_device *adev = (struct amdgpu_device *)kgd; > + uint64_t address_mask = adev->dev->dma_mask ? ~*adev->dev->dma_mask : > + ~((1ULL << 32) - 1); > + resource_size_t aper_limit = adev->mc.aper_base + adev->mc.aper_size; > + > + memset(mem_info, 0, sizeof(*mem_info)); > + if (!(adev->mc.aper_base & address_mask || aper_limit & > address_mask)) { > + mem_info->local_mem_size_public = adev->mc.visible_vram_size; > + mem_info->local_mem_size_private = adev->mc.real_vram_size - > + adev->mc.visible_vram_size; > + } else { > + mem_info->local_mem_size_public = 0; > + mem_info->local_mem_size_private = adev->mc.real_vram_size; > + } > + mem_info->vram_width = adev->mc.vram_width; > + > + pr_debug("Address base: 0x%llx limit 0x%llx public 0x%llx private > 0x%llx\n", > + adev->mc.aper_base, aper_limit, > + > mem_in/home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.cfo->local_mem_size_public, > + mem_info->local_mem_size_private);
This patches introduces: In file included from /home/airlied/devel/kernel/drm-next/include/linux/kernel.h:14:0, from /home/airlied/devel/kernel/drm-next/include/asm-generic/bug.h:18, from /home/airlied/devel/kernel/drm-next/arch/arm/include/asm/bug.h:60, from /home/airlied/devel/kernel/drm-next/include/linux/bug.h:5, from /home/airlied/devel/kernel/drm-next/include/linux/thread_info.h:12, from /home/airlied/devel/kernel/drm-next/include/asm-generic/current.h:5, from ./arch/arm/include/generated/asm/current.h:1, from /home/airlied/devel/kernel/drm-next/include/linux/sched.h:12, from /home/airlied/devel/kernel/drm-next/arch/arm/include/asm/mmu_context.h:17, from /home/airlied/devel/kernel/drm-next/include/linux/mmu_context.h:5, from /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h:29, from /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c:23: /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c: In function ‘get_local_mem_info’: /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c:297:11: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 3 has type ‘resource_size_t {aka unsigned int}’ [-Wformat=] pr_debug("Address base: 0x%llx limit 0x%llx public 0x%llx private 0x%llx\n", ^ /home/airlied/devel/kernel/drm-next/include/linux/printk.h:285:21: note: in definition of macro ‘pr_fmt’ #define pr_fmt(fmt) fmt ^~~ /home/airlied/devel/kernel/drm-next/include/linux/printk.h:333:2: note: in expansion of macro ‘dynamic_pr_debug’ dynamic_pr_debug(fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~ /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c:297:2: note: in expansion of macro ‘pr_debug’ pr_debug("Address base: 0x%llx limit 0x%llx public 0x%llx private 0x%llx\n", ^~~~~~~~ /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c:297:11: warning: format ‘%llx’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘resource_size_t {aka unsigned int}’ [-Wformat=] pr_debug("Address base: 0x%llx limit 0x%llx public 0x%llx private 0x%llx\n", ^ /home/airlied/devel/kernel/drm-next/include/linux/printk.h:285:21: note: in definition of macro ‘pr_fmt’ #define pr_fmt(fmt) fmt ^~~ /home/airlied/devel/kernel/drm-next/include/linux/printk.h:333:2: note: in expansion of macro ‘dynamic_pr_debug’ dynamic_pr_debug(fmt, ##__VA_ARGS__) ^~~~~~~~~~~~~~~~ /home/airlied/devel/kernel/drm-next/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c:297:2: note: in expansion of macro ‘pr_debug’ pr_debug("Address base: 0x%llx limit 0x%llx public 0x%llx private 0x%llx\n", ^~~~~~~~ On 32-bit arm build. Dave. _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx