[PATCH 00/16] KFD interrupt and signal event handling improvements
Felix Kuehling
felix.kuehling at amd.com
Wed Oct 25 16:04:34 UTC 2017
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
>>
More information about the amd-gfx
mailing list