On Thu, Feb 4, 2021 at 3:06 AM Kevin Hao <haoke...@gmail.com> wrote:
>
> In the current implementation of {netdev,napi}_alloc_frag(), it doesn't
> have any align guarantee for the returned buffer address, But for some
> hardwares they do require the DMA buffer to be aligned correctly,
> so we would have to use some workarounds like below if the buffers
> allocated by the {netdev,napi}_alloc_frag() are used by these hardwares
> for DMA.
>     buf = napi_alloc_frag(really_needed_size + align);
>     buf = PTR_ALIGN(buf, align);
>
> These codes seems ugly and would waste a lot of memories if the buffers
> are used in a network driver for the TX/RX. We have added the align
> support for the page_frag functions, so add the corresponding
> {netdev,napi}_frag functions.
>
> Signed-off-by: Kevin Hao <haoke...@gmail.com>
> ---
> v3: Use align mask and refactor the {netdev,napi}_alloc_frag_align() as
>     suggested by Alexander.
>
>  include/linux/skbuff.h | 36 ++++++++++++++++++++++++++++++++++--
>  net/core/skbuff.c      | 26 ++++++++++----------------
>  2 files changed, 44 insertions(+), 18 deletions(-)

Reviewed-by: Alexander Duyck <alexanderdu...@fb.com>

Reply via email to