> -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Christian König > Sent: Tuesday, October 04, 2016 7:40 AM > To: amd-gfx at lists.freedesktop.org > Subject: [PATCH] drm/amdgpu: revert "use more than 64KB fragment size if > possible" > > From: Christian König <christian.koenig at amd.com> > > This reverts commit 1dcd32fb9c54334ec948a0f18174a748d6b14364. > > The block size is indeed an equal match, so this can cause performance > regressions. > > Signed-off-by: Christian König <christian.koenig at amd.com> Reviewed-by: Alex Deucher <alexander.deucher at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 12 ++++-------- > 1 file changed, 4 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > index 5d9b108..f4b78b6 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c > @@ -882,13 +882,13 @@ static void amdgpu_vm_frag_ptes(struct > amdgpu_pte_update_params *params, > * allocation size to the fragment size. > */ > > - const uint64_t frag_align = 1 << AMDGPU_LOG2_PAGES_PER_FRAG; > + /* SI and newer are optimized for 64KB */ > + uint64_t frag_flags = > AMDGPU_PTE_FRAG(AMDGPU_LOG2_PAGES_PER_FRAG); > + uint64_t frag_align = 1 << AMDGPU_LOG2_PAGES_PER_FRAG; > > uint64_t frag_start = ALIGN(start, frag_align); > uint64_t frag_end = end & ~(frag_align - 1); > > - uint32_t frag; > - > /* system pages are non continuously */ > if (params->src || !(flags & AMDGPU_PTE_VALID) || > (frag_start >= frag_end)) { > @@ -897,10 +897,6 @@ static void amdgpu_vm_frag_ptes(struct > amdgpu_pte_update_params *params, > return; > } > > - /* use more than 64KB fragment size if possible */ > - frag = lower_32_bits(frag_start | frag_end); > - frag = likely(frag) ? __ffs(frag) : 31; > - > /* handle the 4K area at the beginning */ > if (start != frag_start) { > amdgpu_vm_update_ptes(params, vm, start, frag_start, > @@ -910,7 +906,7 @@ static void amdgpu_vm_frag_ptes(struct > amdgpu_pte_update_params *params, > > /* handle the area in the middle */ > amdgpu_vm_update_ptes(params, vm, frag_start, frag_end, dst, > - flags | AMDGPU_PTE_FRAG(frag)); > + flags | frag_flags); > > /* handle the 4K area at the end */ > if (frag_end != end) { > -- > 2.5.0 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx