The Panthor CSF firmware and hardware interfaces provide additional
metadata when faults occur. In particular, there are three relevant
categories of faults here:
* faults raised at the address space level. These are fatal and each
group bound to that AS is affected.
* fatal faults raised on one of the queues in that group, preventing
further submissions on the group.
* recoverable faults raised on one of the queues in that group.
The queue may progress further after this point, so multiple such
faults may be generated.
Each of these categories provides fault information containing
sources of the error, read/write/execute bits and potentially virtual
addresses at which these faults occurred.
This series extends the GROUP_GET_STATE ioctl to propagate the fault
metadata to enable the VK_EXT_device_fault(3) extension.
Lukas Zapolskas (4):
drm/panthor: Store queue fault and fatal information
drm/panthor: Track VM faults
drm/panthor: Propagate VM-level faults to groups
drm/panthor: Use GROUP_GET_STATE to provide group and queue errors
Paul Toadere (1):
drm/panthor: Implement CS_FAULT propagation to userspace
drivers/gpu/drm/panthor/panthor_drv.c | 85 ++++++++-
drivers/gpu/drm/panthor/panthor_mmu.c | 24 ++-
drivers/gpu/drm/panthor/panthor_mmu.h | 22 +++
drivers/gpu/drm/panthor/panthor_regs.h | 3 +
drivers/gpu/drm/panthor/panthor_sched.c | 237 ++++++++++++++++++++----
drivers/gpu/drm/panthor/panthor_sched.h | 4 +-
include/uapi/drm/panthor_drm.h | 52 +++++-
7 files changed, 378 insertions(+), 49 deletions(-)
--
2.33.0.dirty