From 6c0ea4b0c5452bfc1e67b74ce723696ef3c80b25 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20K=C3=B6nig?= Date: Tue, 7 Nov 2017 15:31:45 +0100 Subject: [PATCH] amdgpu: use the high VA range if possible MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This frees up the low range for HMM. Signed-off-by: Christian König --- amdgpu/amdgpu_device.c | 9 +++++++-- include/drm/amdgpu_drm.h | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/amdgpu/amdgpu_device.c b/amdgpu/amdgpu_device.c index fa4ab0e..e04424d 100644 --- a/amdgpu/amdgpu_device.c +++ b/amdgpu/amdgpu_device.c @@ -275,8 +275,13 @@ int amdgpu_device_initialize(int fd, amdgpu_vamgr_init(&dev->vamgr_32, start, max, dev->dev_info.virtual_address_alignment); - start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL); - max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL); + if (dev->dev_info.high_va_offset && dev->dev_info.high_va_max) { + start = dev->dev_info.high_va_offset; + max = dev->dev_info.high_va_max; + } else { + start = MAX2(dev->dev_info.virtual_address_offset, 0x100000000ULL); + max = MAX2(dev->dev_info.virtual_address_max, 0x100000000ULL); + } amdgpu_vamgr_init(&dev->vamgr, start, max, dev->dev_info.virtual_address_alignment); diff --git a/include/drm/amdgpu_drm.h b/include/drm/amdgpu_drm.h index 919248f..a023b47 100644 --- a/include/drm/amdgpu_drm.h +++ b/include/drm/amdgpu_drm.h @@ -869,6 +869,10 @@ struct drm_amdgpu_info_device { __u32 _pad1; /* always on cu bitmap */ __u32 cu_ao_bitmap[4][4]; + /** Starting high virtual address for UMDs. */ + __u64 high_va_offset; + /** The maximum high virtual address */ + __u64 high_va_max; }; struct drm_amdgpu_info_hw_ip { -- 2.7.4