The used-bytes count is nextPut - nextGet everywhere else in this file (epicsRingBytesPut, epicsRingBytesUsedBytes), but epicsRingBytesResetHighWaterMark computed nextGet - nextPut. For a ring holding u bytes it therefore stored size-u; since Put only raises the mark, the high-water mark stayed permanently inflated and wrong. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>