1
0
Fork 0
alistair23-linux/drivers/gpu/drm/amd/amdkfd
Felix Kuehling 26103436da drm/amdkfd: Implement KFD process eviction/restore
When the TTM memory manager in KGD evicts BOs, all user mode queues
potentially accessing these BOs must be evicted temporarily. Once
user mode queues are evicted, the eviction fence is signaled,
allowing the migration of the BO to proceed.

A delayed worker is scheduled to restore all the BOs belonging to
the evicted process and restart its queues.

During suspend/resume of the GPU we also evict all processes to allow
KGD to save BOs in system memory, since VRAM will be lost.

v2:
* Account for eviction when updating of q->is_active in MQD manager

Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Acked-by: Oded Gabbay <oded.gabbay@gmail.com>
Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
2018-02-06 20:32:45 -05:00
..
Kconfig drm/amdkfd: Centralize IOMMUv2 code and make it conditional 2017-12-08 19:22:12 -05:00
Makefile drm/amdkfd: Group up CRAT related functions 2017-12-08 23:08:49 -05:00
cik_event_interrupt.c drm/amdkfd: Use IH context ID for signal lookup 2017-10-27 19:35:28 -04:00
cik_int.h drm/amdkfd: Add SDMA trap src id to the KFD isr wanted list 2017-10-27 19:35:18 -04:00
cik_regs.h drm/amdkfd: Use generic defines in new amd headers 2015-07-20 09:16:49 +03:00
cwsr_trap_handler_gfx8.asm drm/amdkfd: Add trap handler for CWSR 2017-11-14 16:41:18 -05:00
kfd_chardev.c drm/amdkfd: Make sched_policy a per-device setting 2018-01-04 17:17:43 -05:00
kfd_crat.c drm/amdkfd: Module option to disable CRAT table 2017-12-08 23:09:03 -05:00
kfd_crat.h drm/amdkfd: Add topology support for dGPUs 2017-12-08 23:08:59 -05:00
kfd_dbgdev.c drm/amdkfd: Hardware DWORD size is 4 bytes 2017-11-06 14:52:27 -05:00
kfd_dbgdev.h drm/amdkfd: avoid CONFIG_ prefix for non-Kconfig symbols 2015-06-06 20:48:34 +03:00
kfd_dbgmgr.c drm/amdkfd: Make sched_policy a per-device setting 2018-01-04 17:17:43 -05:00
kfd_dbgmgr.h drm/amdkfd: Clean up KFD style errors and warnings v2 2017-08-15 23:00:04 -04:00
kfd_debugfs.c drm/amdkfd: Add debugfs support to KFD 2017-11-27 18:29:49 -05:00
kfd_device.c drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_device_queue_manager.c drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_device_queue_manager.h drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_device_queue_manager_cik.c drm/amdkfd: Add dGPU support to the device queue manager 2018-01-04 17:17:44 -05:00
kfd_device_queue_manager_vi.c drm/amdkfd: Add dGPU support to the device queue manager 2018-01-04 17:17:44 -05:00
kfd_doorbell.c drm/amdkfd: Fix printing pointer cast 2017-12-04 06:50:17 -05:00
kfd_events.c drm/amdkfd: Centralize IOMMUv2 code and make it conditional 2017-12-08 19:22:12 -05:00
kfd_events.h drm/amdkfd: Simplify event ID and signal slot management 2017-10-27 19:35:27 -04:00
kfd_flat_memory.c drm/amdkfd: Support enumerating non-GPU devices 2017-12-08 23:08:53 -05:00
kfd_interrupt.c drm/amdkfd: use a high priority workqueue for IH work 2017-10-27 19:35:34 -04:00
kfd_iommu.c drm/amdkfd: Centralize IOMMUv2 code and make it conditional 2017-12-08 19:22:12 -05:00
kfd_iommu.h drm/amdkfd: Centralize IOMMUv2 code and make it conditional 2017-12-08 19:22:12 -05:00
kfd_kernel_queue.c drm/amdkfd: Add dGPU support to kernel_queue_init 2018-01-04 17:17:46 -05:00
kfd_kernel_queue.h drm/amdkfd: Remove sync_with_hw() from amdkfd 2015-01-15 12:07:48 +02:00
kfd_kernel_queue_cik.c drm/amdkfd: Add initial VI support for KQ 2014-12-02 16:38:57 +02:00
kfd_kernel_queue_vi.c drm/amdkfd: Add initial VI support for KQ 2014-12-02 16:38:57 +02:00
kfd_module.c drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_mqd_manager.c drm/amdkfd: Add dGPU support to the MQD manager 2018-01-04 17:17:45 -05:00
kfd_mqd_manager.h drm/amdkfd: Add debugfs support to KFD 2017-11-27 18:29:49 -05:00
kfd_mqd_manager_cik.c drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_mqd_manager_vi.c drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_packet_manager.c drm/amdkfd: Add debugfs support to KFD 2017-11-27 18:29:49 -05:00
kfd_pasid.c drm/amdkfd: Support enumerating non-GPU devices 2017-12-08 23:08:53 -05:00
kfd_pm4_headers.h drm/amdkfd: Update PM4 packet headers 2017-08-15 23:00:15 -04:00
kfd_pm4_headers_diq.h drm/amdkfd: Add skeleton H/W debugger module support 2015-06-03 11:32:28 +03:00
kfd_pm4_headers_vi.h drm/amdkfd: Update PM4 packet headers 2017-08-15 23:00:15 -04:00
kfd_pm4_opcodes.h amdkfd: Add kernel queue module 2014-07-17 00:45:35 +03:00
kfd_priv.h drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_process.c drm/amdkfd: Implement KFD process eviction/restore 2018-02-06 20:32:45 -05:00
kfd_process_queue_manager.c drm/amdkfd: Make sched_policy a per-device setting 2018-01-04 17:17:43 -05:00
kfd_queue.c drm/amdkfd: Remove BUG_ONs for NULL pointer arguments 2017-08-15 23:00:09 -04:00
kfd_topology.c drm/amdkfd: Use ARRAY_SIZE macro in kfd_build_sysfs_node_entry 2018-01-18 18:39:55 -06:00
kfd_topology.h drm/amdkfd: Add AQL Queue Memory flag on topology 2017-12-08 23:09:02 -05:00