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 | 41c8bf7a43888ac679e9851453fa9ff845693149 (patch) | |
| tree | ad3e9fd161d58f422f05bfc9c5cbccaab8cdca59 /validate.sh | |
| parent | cd0c888fd96a3772817f25044379eb064a2f4f4e (diff) | |
| download | open-iov-41c8bf7a43888ac679e9851453fa9ff845693149.tar.gz open-iov-41c8bf7a43888ac679e9851453fa9ff845693149.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 'validate.sh')
0 files changed, 0 insertions, 0 deletions
