On 04/11, David Marchand wrote: >Hello Xiaolong, > >On Thu, Apr 11, 2019 at 4:30 AM Ye Xiaolong <xiaolong...@intel.com> wrote: > >> On 04/10, David Marchand wrote: >> >If we reserve N slots, but only submit n slots, we end up with an >> incorrect >> >opinion of the number of available slots later. >> >Either xsk_ring_prod__submit should also update cached_prod (but I am not >> >sure it was the intent of this api), or we must ensure that both reserve >> >and submit are consistent. >> >> I think you are right, current design does have the flaw, I haven't >> thought of >> it before :( So in order to make sure both reserve and submit are >> consistent, what >> about we check the valid count of mbuf at the beginning, then reserve the >> valid >> count slots? >> >> >Ok, I can see other places to inspect in the driver: reserve_fill_queue() >for the same issue, and eth_af_xdp_rx() for a similar issue but with >xsk_ring_cons__peek()/xsk_ring_cons__release() ? >Validating the needed slots count before reserving/peeking in the prod/cons >rings seems the most simple fix.
Ok, then I'll handle them in a following patch. Thanks, Xiaolong > > >-- >David Marchand