]> git.baikalelectronics.ru Git - kernel.git/commit
xsk: add support to allow unaligned chunk placement
authorKevin Laatz <kevin.laatz@intel.com>
Tue, 27 Aug 2019 02:25:22 +0000 (02:25 +0000)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 30 Aug 2019 23:08:26 +0000 (01:08 +0200)
commit33b04ef35b44e3325eb98c843ab3cddaad986d88
tree9b22aa9bc0d6109c85ed4f0658fca09193618707
parent301048947bfed97dfb3c4fafa169b2805825d189
xsk: add support to allow unaligned chunk placement

Currently, addresses are chunk size aligned. This means, we are very
restricted in terms of where we can place chunk within the umem. For
example, if we have a chunk size of 2k, then our chunks can only be placed
at 0,2k,4k,6k,8k... and so on (ie. every 2k starting from 0).

This patch introduces the ability to use unaligned chunks. With these
changes, we are no longer bound to having to place chunks at a 2k (or
whatever your chunk size is) interval. Since we are no longer dealing with
aligned chunks, they can now cross page boundaries. Checks for page
contiguity have been added in order to keep track of which pages are
followed by a physically contiguous page.

Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
include/net/xdp_sock.h
include/uapi/linux/if_xdp.h
net/xdp/xdp_umem.c
net/xdp/xsk.c
net/xdp/xsk_diag.c
net/xdp/xsk_queue.h