drm/amdkfd: Relocate TBA/TMA to opposite side of VM hole
authorJay Cornwall <jay.cornwall@amd.com>
Wed, 12 Jul 2023 20:53:44 +0000 (15:53 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 7 Aug 2023 21:14:06 +0000 (17:14 -0400)
commit96c211f1f9ef82183493f4ceed4e347b52849149
tree06597017c50a6e26b8c72e80bbf27bdeb8562cae
parent631ddc35533530cde0ee099d0de74ebd0f20ff8c
drm/amdkfd: Relocate TBA/TMA to opposite side of VM hole

The TBA and TMA, along with an unused IB allocation, reside at low
addresses in the VM address space. A stray VM fault which hits these
pages must be serviced by making their page table entries invalid.
The scheduler depends upon these pages being resident and fails,
preventing a debugger from inspecting the failure state.

By relocating these pages above 47 bits in the VM address space they
can only be reached when bits [63:48] are set to 1. This makes it much
less likely for a misbehaving program to generate accesses to them.
The current placement at VA (PAGE_SIZE*2) is readily hit by a NULL
access with a small offset.

Signed-off-by: Jay Cornwall <jay.cornwall@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c