This patch series improves interrupt handling latency, signal event processing overhead and replaces some custom data structures with standard kernel data structures (idr, kfifo, waitqueue). It also increases the capacity of the number of signals that can be processed from 256 to 4096. This breaks ancient versions of the Thunk that support only 256 signal events. The current WIP-version on github supports both sizes. If support for ancient Thunks is considered important, this could be fixed by allowing mappings that are smaller than 4096 signals, and limiting the number of signals per process depending on the size of the mapped events page. v2: * Don't break ABI when changing KFD_SIGNAL_EVENT_LIMIT * Integrated review feedback for "Use wait_queue_t to implement event waiting" * Integrated review feedback for "Don't dereference kfd_process.mm" Andres Rodriguez (4): drm/amdkfd: use standard kernel kfifo for IH drm/amdkfd: increase IH num entries to 8192 drm/amdkfd: wait only for IH work on IH exit drm/amdkfd: use a high priority workqueue for IH work Besar Wicaksono (1): drm/amdkfd: Add SDMA trap src id to the KFD isr wanted list Felix Kuehling (9): drm/amdkfd: Don't dereference kfd_process.mm v2 drm/amdkfd: Clean up kfd_wait_on_events drm/amdkfd: Fix event destruction with pending waiters drm/amdkfd: remove redundant kfd_event_waiter.input_index drm/amdkfd: Use wait_queue_t to implement event waiting drm/amdkfd: Simplify events page allocator drm/amdkfd: Simplify event ID and signal slot management drm/amdkfd: Use IH context ID for signal lookup drm/amdkfd: Make event limit dependent on user mode mapping size Oded Gabbay (1): drm/amdkfd: increase limit of signal events to 4096 per process Sean Keely (2): drm/amdkfd: Short cut for kfd_wait_on_events without waiting drm/amdkfd: Fix scheduler race in kfd_wait_on_events sleep loop drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c | 8 +- drivers/gpu/drm/amd/amdkfd/cik_int.h | 3 +- drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 5 +- drivers/gpu/drm/amd/amdkfd/kfd_device.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_events.c | 615 +++++++++++------------ drivers/gpu/drm/amd/amdkfd/kfd_events.h | 18 +- drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c | 83 ++- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 33 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 1 - include/uapi/linux/kfd_ioctl.h | 2 +- 10 files changed, 350 insertions(+), 420 deletions(-) -- 2.7.4