mbox series

[v2,0/5] accel/ivpu: Replace IPC kthread with threaded IRQ

Message ID 20231113170252.758137-1-jacek.lawrynowicz@linux.intel.com (mailing list archive)
Headers show
Series accel/ivpu: Replace IPC kthread with threaded IRQ | expand

Message

Jacek Lawrynowicz Nov. 13, 2023, 5:02 p.m. UTC
Use threaded IRQ to handle incoming IPC messages. IPC consumers can now
provide optional callback that will be executed once message is received.
This allows to handle multiple message types in a generic manner.

Removing kthread also simplifies synchronization as disable_irq() will block
until all pending messages are handled.

v2:
  - Don't do bit operations on enum irqreturn

v1: https://lore.kernel.org/all/20231107123514.2218850-1-jacek.lawrynowicz@linux.intel.com

Jacek Lawrynowicz (1):
  accel/ivpu: Use threaded IRQ to handle JOB done messages

Stanislaw Gruszka (4):
  accel/ivpu: Rename cons->rx_msg_lock
  accel/ivpu: Do not use irqsave in ivpu_ipc_dispatch
  accel/ivpu: Do not use cons->aborted for job_done_thread
  accel/ivpu: Use dedicated work for job timeout detection

 drivers/accel/ivpu/ivpu_drv.c     |  30 ++--
 drivers/accel/ivpu/ivpu_drv.h     |   3 +-
 drivers/accel/ivpu/ivpu_hw_37xx.c |  29 ++--
 drivers/accel/ivpu/ivpu_hw_40xx.c |  30 ++--
 drivers/accel/ivpu/ivpu_ipc.c     | 223 +++++++++++++++++-------------
 drivers/accel/ivpu/ivpu_ipc.h     |  24 +++-
 drivers/accel/ivpu/ivpu_job.c     |  99 +++----------
 drivers/accel/ivpu/ivpu_job.h     |   6 +-
 drivers/accel/ivpu/ivpu_pm.c      |  31 +++++
 drivers/accel/ivpu/ivpu_pm.h      |   3 +
 10 files changed, 251 insertions(+), 227 deletions(-)

--
2.42.0

Comments

Jacek Lawrynowicz Nov. 16, 2023, 12:45 p.m. UTC | #1
Applied to drm-misc-next

On 13.11.2023 18:02, Jacek Lawrynowicz wrote:
> Use threaded IRQ to handle incoming IPC messages. IPC consumers can now
> provide optional callback that will be executed once message is received.
> This allows to handle multiple message types in a generic manner.
> 
> Removing kthread also simplifies synchronization as disable_irq() will block
> until all pending messages are handled.
> 
> v2:
>   - Don't do bit operations on enum irqreturn
> 
> v1: https://lore.kernel.org/all/20231107123514.2218850-1-jacek.lawrynowicz@linux.intel.com
> 
> Jacek Lawrynowicz (1):
>   accel/ivpu: Use threaded IRQ to handle JOB done messages
> 
> Stanislaw Gruszka (4):
>   accel/ivpu: Rename cons->rx_msg_lock
>   accel/ivpu: Do not use irqsave in ivpu_ipc_dispatch
>   accel/ivpu: Do not use cons->aborted for job_done_thread
>   accel/ivpu: Use dedicated work for job timeout detection
> 
>  drivers/accel/ivpu/ivpu_drv.c     |  30 ++--
>  drivers/accel/ivpu/ivpu_drv.h     |   3 +-
>  drivers/accel/ivpu/ivpu_hw_37xx.c |  29 ++--
>  drivers/accel/ivpu/ivpu_hw_40xx.c |  30 ++--
>  drivers/accel/ivpu/ivpu_ipc.c     | 223 +++++++++++++++++-------------
>  drivers/accel/ivpu/ivpu_ipc.h     |  24 +++-
>  drivers/accel/ivpu/ivpu_job.c     |  99 +++----------
>  drivers/accel/ivpu/ivpu_job.h     |   6 +-
>  drivers/accel/ivpu/ivpu_pm.c      |  31 +++++
>  drivers/accel/ivpu/ivpu_pm.h      |   3 +
>  10 files changed, 251 insertions(+), 227 deletions(-)
> 
> --
> 2.42.0