summaryrefslogtreecommitdiff
path: root/kernel/dma.c
diff options
context:
space:
mode:
authorFelix Kuehling <Felix.Kuehling@amd.com>2022-03-01 20:40:45 -0500
committerAlex Deucher <alexander.deucher@amd.com>2022-04-07 16:34:24 -0400
commit5273e82c5f47fff94058ff8ee002650476e24719 (patch)
treeb68b3966c57db97d7fefcb88089fca891b3f307d /kernel/dma.c
parent8d2aad983de2a332bf8c22798ab6799f06864fed (diff)
drm/amdkfd: Improve concurrency of event handling
Use rcu_read_lock to read p->event_idr concurrently with other readers and writers. Use p->event_mutex only for creating and destroying events and in kfd_wait_on_events. Protect the contents of the kfd_event structure with a per-event spinlock that can be taken inside the rcu_read_lock critical section. This eliminates contention of p->event_mutex in set_event, which tends to be on the critical path for dispatch latency even when busy waiting is used. It also eliminates lock contention in event interrupt handlers. Since the p->event_mutex is now used much less, the impact of requiring it in kfd_wait_on_events should also be much smaller. This should improve event handling latency for processes using multiple GPUs concurrently. v2: Reschedule the worker periodically to avoid soft lockup warnings Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com> Reviewed-by: Sean Keely <Sean.Keely@amd.com> # v1 Tested-by: Sanjay Tripathi <sanjay.tripathi@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'kernel/dma.c')
0 files changed, 0 insertions, 0 deletions