FAILED: patch "[PATCH] drm/amdgpu: revert "use more than 64KB fragment size if" failed to apply to 4.8-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.8-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
8036617e92e3fad49eef9bbe868b661c58249affMon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20K=C3=B6nig?= <[email protected]>
Date: Tue, 4 Oct 2016 13:39:43 +0200
Subject: [PATCH] drm/amdgpu: revert "use more than 64KB fragment size if
possible"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit 1dcd32fb9c54334ec948a0f18174a748d6b14364.
The block size is indeed an equal match, so this can cause performance regressions.
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +4 -8
@@ -878,13 +878,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)) {
@@ -893,10 +893,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,
@@ -906,7 +902,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) {