On 2017-10-25 02:57 AM, Oded Gabbay wrote: > On Sat, Oct 21, 2017 at 3:23 AM, Felix Kuehling <Felix.Kuehling at amd.com> wrote: >> 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. > Hi Felix, > I don't have enough data to say whether it is important in terms of > whether there are actual users out there. > I *can* say that the no.1 rule of the kernel is *never break userspace* > > Even if I want to take the relevant patches, I can't really do it, > especially since you mentioned that there is a possible fix for it. Right. FWIW, the only patch that causes the problem is your "increase limit of signal events to 4096..." patch. ;) The rest should be safe. I'll fix up your patch to maintain backwards compatibility. Regards, Â Felix > > I know its a bit more work, but I suggest you add an additional patch > that supports the old thunk. > > Thanks, > Oded > >> 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 (8): >> drm/amdkfd: Don't dereference kfd_process.mm >> 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 >> >> 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 | 588 ++++++++++------------- >> 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 | 32 +- >> drivers/gpu/drm/amd/amdkfd/kfd_process.c | 6 +- >> include/uapi/linux/kfd_ioctl.h | 2 +- >> 10 files changed, 332 insertions(+), 415 deletions(-) >> >> -- >> 2.7.4 >>