On Fri, Jun 22, 2018 at 5:10 AM, Michel Dänzer <[email protected]> wrote: > From: Michel Dänzer <[email protected]> > > start / last / max_entries are numbers of GPU pages, pfn / count are > numbers of CPU pages. Convert between them accordingly. > > Fixes badness on systems with > 4K page size. > > Cc: [email protected] > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106258 > Reported-by: Matt Corallo <[email protected]> > Tested-by: [email protected] > Signed-off-by: Michel Dänzer <[email protected]>
Reviewed-by: Alex Deucher <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index 7c30451ba897..590db78b8c72 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -1577,7 +1577,9 @@ static int amdgpu_vm_bo_split_mapping(struct > amdgpu_device *adev, > uint64_t count; > > max_entries = min(max_entries, 16ull * 1024ull); > - for (count = 1; count < max_entries; ++count) { > + for (count = 1; > + count < max_entries / (PAGE_SIZE / > AMDGPU_GPU_PAGE_SIZE); > + ++count) { > uint64_t idx = pfn + count; > > if (pages_addr[idx] != > @@ -1590,7 +1592,7 @@ static int amdgpu_vm_bo_split_mapping(struct > amdgpu_device *adev, > dma_addr = pages_addr; > } else { > addr = pages_addr[pfn]; > - max_entries = count; > + max_entries = count * (PAGE_SIZE / > AMDGPU_GPU_PAGE_SIZE); > } > > } else if (flags & AMDGPU_PTE_VALID) { > @@ -1605,7 +1607,7 @@ static int amdgpu_vm_bo_split_mapping(struct > amdgpu_device *adev, > if (r) > return r; > > - pfn += last - start + 1; > + pfn += (last - start + 1) / (PAGE_SIZE / > AMDGPU_GPU_PAGE_SIZE); > if (nodes && nodes->size == pfn) { > pfn = 0; > ++nodes; > -- > 2.17.1 > > _______________________________________________ > amd-gfx mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/amd-gfx
