On 26 Aug 2019, at 19:25, Kevin Laatz wrote: > From: Maxim Mikityanskiy <maximmi@xxxxxxxxxxxx> > > Relax the requirements to the XSK frame size to allow it to be smaller > than a page and even not a power of two. The current implementation can > work in this mode, both with Striding RQ and without it. > > The code that checks `mtu + headroom <= XSK frame size` is modified > accordingly. Any frame size between 2048 and PAGE_SIZE is accepted. > > Functions that worked with pages only now work with XSK frames, even if > their size is different from PAGE_SIZE. > > With XSK queues, regardless of the frame size, Striding RQ uses the > stride size of PAGE_SIZE, and UMR MTTs are posted using starting > addresses of frames, but PAGE_SIZE as page size. MTU guarantees that no > packet data will overlap with other frames. UMR MTT size is made equal > to the stride size of the RQ, because UMEM frames may come in random > order, and we need to handle them one by one. PAGE_SIZE is just a power > of two that is bigger than any allowed XSK frame size, and also it > doesn't require making additional changes to the code. > > Signed-off-by: Maxim Mikityanskiy <maximmi@xxxxxxxxxxxx> > Reviewed-by: Saeed Mahameed <saeedm@xxxxxxxxxxxx> Acked-by: Jonathan Lemon <jonathan.lemon@xxxxxxxxx>