[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180322172156.zmd33sbzggqggkkj@ast-mbp.dhcp.thefacebook.com>
Date: Thu, 22 Mar 2018 10:21:58 -0700
From: Alexei Starovoitov <alexei.starovoitov@...il.com>
To: Jesper Dangaard Brouer <brouer@...hat.com>
Cc: netdev@...r.kernel.org,
BjörnTöpel <bjorn.topel@...el.com>,
magnus.karlsson@...el.com, eugenia@...lanox.com,
Jason Wang <jasowang@...hat.com>,
John Fastabend <john.fastabend@...il.com>,
Eran Ben Elisha <eranbe@...lanox.com>,
Saeed Mahameed <saeedm@...lanox.com>, galp@...lanox.com,
Daniel Borkmann <borkmann@...earbox.net>,
Tariq Toukan <tariqt@...lanox.com>
Subject: Re: [bpf-next V4 PATCH 11/15] page_pool: refurbish version of
page_pool code
On Thu, Mar 22, 2018 at 03:22:04PM +0100, Jesper Dangaard Brouer wrote:
> Need a fast page recycle mechanism for ndo_xdp_xmit API for returning
> pages on DMA-TX completion time, which have good cross CPU
> performance, given DMA-TX completion time can happen on a remote CPU.
>
> Refurbish my page_pool code, that was presented[1] at MM-summit 2016.
> Adapted page_pool code to not depend the page allocator and
> integration into struct page. The DMA mapping feature is kept,
> even-though it will not be activated/used in this patchset.
>
> [1] http://people.netfilter.org/hawk/presentations/MM-summit2016/generic_page_pool_mm_summit2016.pdf
>
> V2: Adjustments requested by Tariq
> - Changed page_pool_create return codes, don't return NULL, only
> ERR_PTR, as this simplifies err handling in drivers.
>
> V4: many small improvements and cleanups
> - Add DOC comment section, that can be used by kernel-doc
> - Improve fallback mode, to work better with refcnt based recycling
> e.g. remove a WARN as pointed out by Tariq
> e.g. quicker fallback if ptr_ring is empty.
>
> Signed-off-by: Jesper Dangaard Brouer <brouer@...hat.com>
...
> diff --git a/include/net/page_pool.h b/include/net/page_pool.h
> new file mode 100644
> index 000000000000..1ff11e641b2e
> --- /dev/null
> +++ b/include/net/page_pool.h
> @@ -0,0 +1,133 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
...
> diff --git a/net/core/page_pool.c b/net/core/page_pool.c
> new file mode 100644
> index 000000000000..04112feb2df6
> --- /dev/null
> +++ b/net/core/page_pool.c
> @@ -0,0 +1,329 @@
> +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
These are kernel internal files. 'WITH ...' doesn't apply.
See LICENSES/exceptions/Linux-syscall-note
Powered by blists - more mailing lists