[PATCH 00/17] KFD interrupt and signal event handling improvements v2

Felix Kuehling Felix.Kuehling at amd.com
Fri Oct 27 23:35:17 UTC 2017


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



More information about the amd-gfx mailing list