drm/amdkfd: Add some eveiction debugging code
authorPhilip Cox <Philip.Cox@amd.com>
Mon, 29 Jun 2020 13:49:59 +0000 (09:49 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 18 Sep 2020 01:22:16 +0000 (21:22 -0400)
Extending the module parameter debug_evictions to also print a stack
trace when the eviction code path is called.

Signed-off-by: Philip Cox <Philip.Cox@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
drivers/gpu/drm/amd/amdkfd/kfd_process.c

index 20ef048..cafbc3a 100644 (file)
@@ -1966,6 +1966,7 @@ int kfd_process_vm_fault(struct device_queue_manager *dqm,
 
        if (!p)
                return -EINVAL;
+       WARN(debug_evictions, "Evicting pid %d", p->lead_thread->pid);
        pdd = kfd_get_process_device_data(dqm->dev, p);
        if (pdd)
                ret = dqm->ops.evict_process_queues(dqm, &pdd->qpd);
index a0e12a7..1e15aa7 100644 (file)
@@ -1488,6 +1488,7 @@ void kfd_suspend_all_processes(void)
        unsigned int temp;
        int idx = srcu_read_lock(&kfd_processes_srcu);
 
+       WARN(debug_evictions, "Evicting all processes");
        hash_for_each_rcu(kfd_processes_table, temp, p, kfd_processes) {
                cancel_delayed_work_sync(&p->eviction_work);
                cancel_delayed_work_sync(&p->restore_work);