+++ /dev/null
-From c1a66c3bc425ff93774fb2f6eefa67b83170dd7e Mon Sep 17 00:00:00 2001
-From: Qiang Yu <qiang.yu@amd.com>
-Date: Mon, 21 Feb 2022 17:53:56 +0800
-Subject: drm/amdgpu: check vm ready by amdgpu_vm->evicting flag
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Qiang Yu <qiang.yu@amd.com>
-
-commit c1a66c3bc425ff93774fb2f6eefa67b83170dd7e upstream.
-
-Workstation application ANSA/META v21.1.4 get this error dmesg when
-running CI test suite provided by ANSA/META:
-[drm:amdgpu_gem_va_ioctl [amdgpu]] *ERROR* Couldn't update BO_VA (-16)
-
-This is caused by:
-1. create a 256MB buffer in invisible VRAM
-2. CPU map the buffer and access it causes vm_fault and try to move
- it to visible VRAM
-3. force visible VRAM space and traverse all VRAM bos to check if
- evicting this bo is valuable
-4. when checking a VM bo (in invisible VRAM), amdgpu_vm_evictable()
- will set amdgpu_vm->evicting, but latter due to not in visible
- VRAM, won't really evict it so not add it to amdgpu_vm->evicted
-5. before next CS to clear the amdgpu_vm->evicting, user VM ops
- ioctl will pass amdgpu_vm_ready() (check amdgpu_vm->evicted)
- but fail in amdgpu_vm_bo_update_mapping() (check
- amdgpu_vm->evicting) and get this error log
-
-This error won't affect functionality as next CS will finish the
-waiting VM ops. But we'd better clear the error log by checking
-the amdgpu_vm->evicting flag in amdgpu_vm_ready() to stop calling
-amdgpu_vm_bo_update_mapping() later.
-
-Another reason is amdgpu_vm->evicted list holds all BOs (both
-user buffer and page table), but only page table BOs' eviction
-prevent VM ops. amdgpu_vm->evicting flag is set only for page
-table BOs, so we should use evicting flag instead of evicted list
-in amdgpu_vm_ready().
-
-The side effect of this change is: previously blocked VM op (user
-buffer in "evicted" list but no page table in it) gets done
-immediately.
-
-v2: update commit comments.
-
-Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
-Reviewed-by: Christian König <christian.koenig@amd.com>
-Signed-off-by: Qiang Yu <qiang.yu@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -715,11 +715,16 @@ int amdgpu_vm_validate_pt_bos(struct amd
- * Check if all VM PDs/PTs are ready for updates
- *
- * Returns:
-- * True if eviction list is empty.
-+ * True if VM is not evicting.
- */
- bool amdgpu_vm_ready(struct amdgpu_vm *vm)
- {
-- return list_empty(&vm->evicted);
-+ bool ret;
-+
-+ amdgpu_vm_eviction_lock(vm);
-+ ret = !vm->evicting;
-+ amdgpu_vm_eviction_unlock(vm);
-+ return ret;
- }
-
- /**
parisc-unaligned-fix-ldw-and-stw-unalignment-handlers.patch
kvm-x86-mmu-make-apf-token-non-zero-to-fix-bug.patch
drm-amdgpu-disable-mmhub-pg-for-picasso.patch
-drm-amdgpu-check-vm-ready-by-amdgpu_vm-evicting-flag.patch
drm-i915-correctly-populate-use_sagv_wm-for-all-pipes.patch
sr9700-sanity-check-for-packet-length.patch
usb-zaurus-support-another-broken-zaurus.patch
+++ /dev/null
-From c1a66c3bc425ff93774fb2f6eefa67b83170dd7e Mon Sep 17 00:00:00 2001
-From: Qiang Yu <qiang.yu@amd.com>
-Date: Mon, 21 Feb 2022 17:53:56 +0800
-Subject: drm/amdgpu: check vm ready by amdgpu_vm->evicting flag
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Qiang Yu <qiang.yu@amd.com>
-
-commit c1a66c3bc425ff93774fb2f6eefa67b83170dd7e upstream.
-
-Workstation application ANSA/META v21.1.4 get this error dmesg when
-running CI test suite provided by ANSA/META:
-[drm:amdgpu_gem_va_ioctl [amdgpu]] *ERROR* Couldn't update BO_VA (-16)
-
-This is caused by:
-1. create a 256MB buffer in invisible VRAM
-2. CPU map the buffer and access it causes vm_fault and try to move
- it to visible VRAM
-3. force visible VRAM space and traverse all VRAM bos to check if
- evicting this bo is valuable
-4. when checking a VM bo (in invisible VRAM), amdgpu_vm_evictable()
- will set amdgpu_vm->evicting, but latter due to not in visible
- VRAM, won't really evict it so not add it to amdgpu_vm->evicted
-5. before next CS to clear the amdgpu_vm->evicting, user VM ops
- ioctl will pass amdgpu_vm_ready() (check amdgpu_vm->evicted)
- but fail in amdgpu_vm_bo_update_mapping() (check
- amdgpu_vm->evicting) and get this error log
-
-This error won't affect functionality as next CS will finish the
-waiting VM ops. But we'd better clear the error log by checking
-the amdgpu_vm->evicting flag in amdgpu_vm_ready() to stop calling
-amdgpu_vm_bo_update_mapping() later.
-
-Another reason is amdgpu_vm->evicted list holds all BOs (both
-user buffer and page table), but only page table BOs' eviction
-prevent VM ops. amdgpu_vm->evicting flag is set only for page
-table BOs, so we should use evicting flag instead of evicted list
-in amdgpu_vm_ready().
-
-The side effect of this change is: previously blocked VM op (user
-buffer in "evicted" list but no page table in it) gets done
-immediately.
-
-v2: update commit comments.
-
-Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
-Reviewed-by: Christian König <christian.koenig@amd.com>
-Signed-off-by: Qiang Yu <qiang.yu@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -768,11 +768,16 @@ int amdgpu_vm_validate_pt_bos(struct amd
- * Check if all VM PDs/PTs are ready for updates
- *
- * Returns:
-- * True if eviction list is empty.
-+ * True if VM is not evicting.
- */
- bool amdgpu_vm_ready(struct amdgpu_vm *vm)
- {
-- return list_empty(&vm->evicted);
-+ bool ret;
-+
-+ amdgpu_vm_eviction_lock(vm);
-+ ret = !vm->evicting;
-+ amdgpu_vm_eviction_unlock(vm);
-+ return ret;
- }
-
- /**
drm-amd-check-if-aspm-is-enabled-from-pcie-subsystem.patch
drm-amdgpu-disable-mmhub-pg-for-picasso.patch
drm-amdgpu-do-not-enable-asic-reset-for-raven2.patch
-drm-amdgpu-check-vm-ready-by-amdgpu_vm-evicting-flag.patch
drm-i915-widen-the-qgv-point-mask.patch
drm-i915-correctly-populate-use_sagv_wm-for-all-pipes.patch
drm-i915-fix-bw-atomic-check-when-switching-between-sagv-vs.-no-sagv.patch
+++ /dev/null
-From c1a66c3bc425ff93774fb2f6eefa67b83170dd7e Mon Sep 17 00:00:00 2001
-From: Qiang Yu <qiang.yu@amd.com>
-Date: Mon, 21 Feb 2022 17:53:56 +0800
-Subject: drm/amdgpu: check vm ready by amdgpu_vm->evicting flag
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Qiang Yu <qiang.yu@amd.com>
-
-commit c1a66c3bc425ff93774fb2f6eefa67b83170dd7e upstream.
-
-Workstation application ANSA/META v21.1.4 get this error dmesg when
-running CI test suite provided by ANSA/META:
-[drm:amdgpu_gem_va_ioctl [amdgpu]] *ERROR* Couldn't update BO_VA (-16)
-
-This is caused by:
-1. create a 256MB buffer in invisible VRAM
-2. CPU map the buffer and access it causes vm_fault and try to move
- it to visible VRAM
-3. force visible VRAM space and traverse all VRAM bos to check if
- evicting this bo is valuable
-4. when checking a VM bo (in invisible VRAM), amdgpu_vm_evictable()
- will set amdgpu_vm->evicting, but latter due to not in visible
- VRAM, won't really evict it so not add it to amdgpu_vm->evicted
-5. before next CS to clear the amdgpu_vm->evicting, user VM ops
- ioctl will pass amdgpu_vm_ready() (check amdgpu_vm->evicted)
- but fail in amdgpu_vm_bo_update_mapping() (check
- amdgpu_vm->evicting) and get this error log
-
-This error won't affect functionality as next CS will finish the
-waiting VM ops. But we'd better clear the error log by checking
-the amdgpu_vm->evicting flag in amdgpu_vm_ready() to stop calling
-amdgpu_vm_bo_update_mapping() later.
-
-Another reason is amdgpu_vm->evicted list holds all BOs (both
-user buffer and page table), but only page table BOs' eviction
-prevent VM ops. amdgpu_vm->evicting flag is set only for page
-table BOs, so we should use evicting flag instead of evicted list
-in amdgpu_vm_ready().
-
-The side effect of this change is: previously blocked VM op (user
-buffer in "evicted" list but no page table in it) gets done
-immediately.
-
-v2: update commit comments.
-
-Acked-by: Paul Menzel <pmenzel@molgen.mpg.de>
-Reviewed-by: Christian König <christian.koenig@amd.com>
-Signed-off-by: Qiang Yu <qiang.yu@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -768,11 +768,16 @@ int amdgpu_vm_validate_pt_bos(struct amd
- * Check if all VM PDs/PTs are ready for updates
- *
- * Returns:
-- * True if eviction list is empty.
-+ * True if VM is not evicting.
- */
- bool amdgpu_vm_ready(struct amdgpu_vm *vm)
- {
-- return list_empty(&vm->evicted);
-+ bool ret;
-+
-+ amdgpu_vm_eviction_lock(vm);
-+ ret = !vm->evicting;
-+ amdgpu_vm_eviction_unlock(vm);
-+ return ret;
- }
-
- /**
drm-amd-check-if-aspm-is-enabled-from-pcie-subsystem.patch
drm-amdgpu-disable-mmhub-pg-for-picasso.patch
drm-amdgpu-do-not-enable-asic-reset-for-raven2.patch
-drm-amdgpu-check-vm-ready-by-amdgpu_vm-evicting-flag.patch
drm-i915-widen-the-qgv-point-mask.patch
drm-i915-disconnect-phys-left-connected-by-bios-on-disabled-ports.patch
drm-i915-correctly-populate-use_sagv_wm-for-all-pipes.patch