On Thu, Sep 12, 2024 at 4:04 AM Magnus Karlsson <magnus.karlsson@xxxxxxxxx> wrote: > > On Wed, 11 Sept 2024 at 21:10, Maciej Fijalkowski > <maciej.fijalkowski@xxxxxxxxx> wrote: > > > > In cases when synchronizing DMA operations is necessary, > > xsk_buff_alloc_batch() returns a single buffer instead of the requested > > count. This puts the pressure on drivers that use batch API as they have > > to check for this corner case on their side and take care of allocations > > by themselves, which feels counter productive. Let us improve the core > > by looping over xp_alloc() @max times when slow path needs to be taken. > > > > Another issue with current interface, as spotted and fixed by Dries, was > > that when driver called xsk_buff_alloc_batch() with @max == 0, for slow > > path case it still allocated and returned a single buffer, which should > > not happen. By introducing the logic from first paragraph we kill two > > birds with one stone and address this problem as well. > > Thanks Maciej and Dries for finding and fixing this. > > Acked-by: Magnus Karlsson <magnus.karlsson@xxxxxxxxx> We already did the last bpf and bpf-next/net PRs before the merge window, so reassigning to netdev. Acked-by: Alexei Starovoitov <ast@xxxxxxxxxx>