Re: [PATCH v2 bpf 3/4] bpf: Read producer_pos before overwrite_pos in ringbuf_avail_data_sz()
Israel Téllez <[email protected]>
| Newsgroups | org.kernel.vger.bpf,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Please drop this patch from the series; patches 1, 2 and 4 stand on their own. Reading producer_pos first does follow the contract documented in __bpf_ringbuf_reserve(), but it also allows overwrite_pos to be observed ahead of the producer_pos snapshot, and then prod_pos - over_pos underflows and min() falls back to prod_pos - cons_pos, which in overwrite mode is not bounded by the ring size. That trades a bounded staleness for an unbounded overestimate, which is worse than what it fixes. Making the documented order safe needs an additional guard for over_pos running ahead of the snapshot, so it belongs in its own patch rather than here.