mirror of https://github.com/torvalds/linux.git
Revert "drm/amdkfd: Improve signal event slow path"
To fix regression report on gfx8, which requires the exhaustive search
path for signaled event.
The high CPU usage of KFD interrupt wq issue is gone after HIP/ROCr add
option to reduce HW event interrupts, safe to revert this optimization
patch now.
This reverts commit de844846f7.
Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
f19bbecd34
commit
88ef4de35f
|
|
@ -748,16 +748,6 @@ void kfd_signal_event_interrupt(u32 pasid, uint32_t partial_id,
|
||||||
uint64_t *slots = page_slots(p->signal_page);
|
uint64_t *slots = page_slots(p->signal_page);
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
|
|
||||||
/*
|
|
||||||
* If id is valid but slot is not signaled, GPU may signal the same event twice
|
|
||||||
* before driver have chance to process the first interrupt, then signal slot is
|
|
||||||
* auto-reset after set_event wakeup the user space, just drop the second event as
|
|
||||||
* the application only need wakeup once.
|
|
||||||
*/
|
|
||||||
if ((valid_id_bits > 31 || (1U << valid_id_bits) >= KFD_SIGNAL_EVENT_LIMIT) &&
|
|
||||||
partial_id < KFD_SIGNAL_EVENT_LIMIT && slots[partial_id] == UNSIGNALED_EVENT_SLOT)
|
|
||||||
goto out_unlock;
|
|
||||||
|
|
||||||
if (valid_id_bits)
|
if (valid_id_bits)
|
||||||
pr_debug_ratelimited("Partial ID invalid: %u (%u valid bits)\n",
|
pr_debug_ratelimited("Partial ID invalid: %u (%u valid bits)\n",
|
||||||
partial_id, valid_id_bits);
|
partial_id, valid_id_bits);
|
||||||
|
|
@ -786,7 +776,6 @@ void kfd_signal_event_interrupt(u32 pasid, uint32_t partial_id,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out_unlock:
|
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
kfd_unref_process(p);
|
kfd_unref_process(p);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue