]> Git Repo - linux.git/commit
drm/xe: memirq infra changes for MSI-X
authorIlia Levi <[email protected]>
Wed, 18 Sep 2024 05:39:41 +0000 (08:39 +0300)
committerMichal Wajdeczko <[email protected]>
Thu, 19 Sep 2024 08:14:20 +0000 (10:14 +0200)
commitef6103d20f97f201d2483f16fea363f87d7caba8
tree99ad86088d056ae76a70bce348cd57dd87b187d6
parent4157849ca3cae488bf0c06184fd3d7c2a5b29dad
drm/xe: memirq infra changes for MSI-X

When using MSI-X, hw engines report interrupt status and source to engine
instance 0. For this scenario, in order to differentiate between the
engines, we need to pass different status/source pointers in the LRC.

The requirements on those pointers are:
- Interrupt status should be 4KiB aligned
- Interrupt source should be 64 bytes aligned

To accommodate this, we duplicate the current memirq page layout -
allocating a page for each engine instance and pass this page in the LRC.
Note that the same page can be reused for different engine types.
For example, an LRC executing on CCS #x will have pointers to page #x,
and an LRC executing on BCS #x will have the same pointers. Thus, to
locate the proper page, the pointer accessors were modified to receive
the hw engine.

Signed-off-by: Ilia Levi <[email protected]>
Reviewed-by: Michal Wajdeczko <[email protected]>
Signed-off-by: Michal Wajdeczko <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
drivers/gpu/drm/xe/xe_device.h
drivers/gpu/drm/xe/xe_lrc.c
drivers/gpu/drm/xe/xe_memirq.c
drivers/gpu/drm/xe/xe_memirq.h
drivers/gpu/drm/xe/xe_memirq_types.h
This page took 0.054939 seconds and 4 git commands to generate.