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
