[PATCH 0/7] accel/qaic: Extend uAPI to support undoing ATTACH_SLICE_BO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


A BO for a QAIC device has two states -
1. Allocated
2. Sliced

A BO can be allocated at any time, and is initialized in the allocated state.
A BO can transition to the sliced state via ATTACH_SLICE_BO.  This prepares the
BO for use with an active workload.  Currently a BO in the sliced state can
only be used with a single workload, and will only transition back to the
allocated state once the workload is deactivated.

Userspace would like the ability to trigger a BO transition from the sliced
state to the allocated state. This would support the usecase of a userspace
client that has two active workloads, where the output of the first workload
becomes the input of the second workload. Currently, the client would need
two BOs, once for each workload, and copy from one BO to the other.

To support this usecase, we create the detach slice concept which is the
inverse operation of ATTACH_SLICE_BO.  We extend the uAPI with a new
DETACH_SLICE_BO ioctl that allows userspace to perform this operation.

Since ATTACH_SLICE_BO and DETACH_SLICE_BO are related operations, they share
a decent amount of code. This series starts with restructuring the common code
for use in both ioctls before finally adding the DETACH_SLICE_BO.

Pranjal Ramajor Asha Kanojiya (7):
  accel/qaic: Remove ->size field from struct qaic_bo
  accel/qaic: Update BO metadata in a central location
  accel/qaic: Declare BO 'sliced' after all the operations are complete
  accel/qaic: Undo slicing setup done in qaic_attach_slicing_bo()
  accel/qaic: Clean up BO during flushing of transfer list
  accel/qaic: Create a function to initialize BO

 Documentation/accel/qaic/qaic.rst |  10 ++
 drivers/accel/qaic/qaic.h         |   6 +-
 drivers/accel/qaic/qaic_data.c    | 187 +++++++++++++++++++++++-------
 drivers/accel/qaic/qaic_drv.c     |   1 +
 include/uapi/drm/qaic_accel.h     |  24 +++-
 5 files changed, 175 insertions(+), 53 deletions(-)


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux