diff options
| author | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 20:49:22 -0400 |
|---|---|---|
| committer | Arthur Hanson Rasmusson <arthur@vgpu.io> | 2026-10-01 20:49:22 -0400 |
| commit | b3fb77cc3c201c9cde1a8b7e87cbfedd0a49194a (patch) | |
| tree | 79e458f8c2b507e1a91ef3ed9b8b77b16f99e7d8 /kernel/Kconfig | |
| parent | 949ee2e02ab541c2f1ad05118a4e87cf3dcbe378 (diff) | |
| download | open-iov-b3fb77cc3c201c9cde1a8b7e87cbfedd0a49194a.tar.gz open-iov-b3fb77cc3c201c9cde1a8b7e87cbfedd0a49194a.zip | |
gsp-phys: drain and decode the status queue on a failed CE submission
After a doorbell the GSP-RM status ring accumulated unconsumed records
that nothing drained: the host readPtr stayed behind the writePtr and
the engine's error text was never decoded. Add a bounded drain (max 64
records) using the existing validated ring walk: each record is logged
with its function/status/seqNum, function 0x1006 (OS_ERROR_LOG) is
decoded into exceptType/runlistId/chid/prevXid/errString, and function
0x1020 (GSP_POST_NOCAT_RECORD) into recType/errorCode/subsystem/
bugcheck/faultingEngine plus a bounded printable view of the diagnostic
buffer. The host read pointer advances per consumed record (the normal
consumer side), so the ring keeps free space. Stage 4's poll-timeout
path drains before returning -ETIMEDOUT, and a new read-only debugfs
file gsp-phys-status-drain triggers one bounded drain per read. No
locks are taken and no device register is written.
Diffstat (limited to 'kernel/Kconfig')
0 files changed, 0 insertions, 0 deletions
