[bpf-next PATCH 2/2] samples/bpf: xdp_rxq_info action XDP_TX must adjust MAC-addrs

2018-06-25 Thread Jesper Dangaard Brouer
. This is practical if wanting to measure the overhead of writing/updating payload for other action types. Signed-off-by: Jesper Dangaard Brouer Signed-off-by: Toke Høiland-Jørgensen --- samples/bpf/xdp_rxq_info_kern.c | 26 +- samples/bpf/xdp_rxq_info_user.c | 11

[bpf-next PATCH 1/2] samples/bpf: extend xdp_rxq_info to read packet payload

2018-06-25 Thread Jesper Dangaard Brouer
either using less RXQs or by reducing NICs the RX-ring size. Signed-off-by: Jesper Dangaard Brouer Signed-off-by: Toke Høiland-Jørgensen --- samples/bpf/xdp_rxq_info_kern.c | 19 +++ samples/bpf/xdp_rxq_info_user.c | 34 -- 2 files changed, 47

[bpf-next PATCH 0/2] xdp/bpf: extend XDP samples/bpf xdp_rxq_info

2018-06-25 Thread Jesper Dangaard Brouer
While writing an article about XDP, the samples/bpf xdp_rxq_info program were extended to cover some more use-cases. --- Jesper Dangaard Brouer (2): samples/bpf: extend xdp_rxq_info to read packet payload samples/bpf: xdp_rxq_info action XDP_TX must adjust MAC-addrs samples/bpf

[PATCH 1/3] ixgbe: split XDP_TX tail and XDP_REDIRECT map flushing

2018-06-26 Thread Jesper Dangaard Brouer
The driver was combining the XDP_TX tail flush and XDP_REDIRECT map flushing (xdp_do_flush_map). This is suboptimal, these two flush operations should be kept separate. Fixes: 11393cc9b9be ("xdp: Add batching support to redirect map") Signed-off-by: Jesper Dangaard Brouer --- d

[PATCH 2/3] i40e: split XDP_TX tail and XDP_REDIRECT map flushing

2018-06-26 Thread Jesper Dangaard Brouer
ned-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 24 +++- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c index 8ffb7454e67c..c1

[PATCH 0/3] xdp: don't mix XDP_TX and XDP_REDIRECT flush ops

2018-06-26 Thread Jesper Dangaard Brouer
ve it up-to the patchwork assigner ;-) Jesper Dangaard Brouer (3): ixgbe: split XDP_TX tail and XDP_REDIRECT map flushing i40e: split XDP_TX tail and XDP_REDIRECT map flushing virtio_net: split XDP_TX kick and XDP_REDIRECT map flushing drivers/net/ethernet/intel/i40e/i40e_t

[PATCH 3/3] virtio_net: split XDP_TX kick and XDP_REDIRECT map flushing

2018-06-26 Thread Jesper Dangaard Brouer
ckets"). Fixes: 9267c430c6b6 ("virtio-net: add missing virtqueue kick when flushing packets") Signed-off-by: Jesper Dangaard Brouer --- drivers/net/virtio_net.c | 30 +++--- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/drivers/net/virtio

Re: [RFC bpf-next 6/6] samples/bpf: Add meta data hash example to xdp_redirect_cpu

2018-06-27 Thread Jesper Dangaard Brouer
/* since we know hash will appear first */ > +if (hash + 1 > data) > + return XDP_ABORTED; > + > +#if 0 > + // Just for testing > + /* We know that vlan will appear after the hash */ > + vlan = (void *)((char *)data_meta + sizeof(*hash)); > + if (vlan + 1 > data) { > + return XDP_ABORTED; > + } > +#endif -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer

Re: [bpf-next PATCH 2/2] samples/bpf: xdp_rxq_info action XDP_TX must adjust MAC-addrs

2018-06-27 Thread Jesper Dangaard Brouer
On Tue, 26 Jun 2018 17:09:01 -0700 Song Liu wrote: > On Mon, Jun 25, 2018 at 7:27 AM, Jesper Dangaard Brouer > wrote: > > XDP_TX requires also changing the MAC-addrs, else some hardware > > may drop the TX packet before reaching the wire. This was > > observed with

Re: [bpf-next PATCH 1/2] samples/bpf: extend xdp_rxq_info to read packet payload

2018-06-27 Thread Jesper Dangaard Brouer
flags added). Sure, and do I handle this correctly in the next patch. I'm uncertain what you want me to change? Do you want me to drop the enum, and use #define instead? -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer

Re: [RFC bpf-next 2/6] net: xdp: RX meta data infrastructure

2018-06-27 Thread Jesper Dangaard Brouer
dp) > xdp->data_meta = xdp->data + 1; > } > > +static __always_inline void > +xdp_reset_data_meta(struct xdp_buff *xdp) > +{ > + xdp->data_meta = xdp->data_hard_start; > +} This is WRONG ... it should be: xdp->data_meta = xdp->data; -- Best reg

Issue with driver i40e stat strings count mismatch

2018-07-10 Thread Jesper Dangaard Brouer
i40e_get_stats_count(netdev) * ETH_GSTRING_LEN, 1907 "stat strings count mismatch!"); 1908} 1909 1910static void i40e_get_priv_flag_strings(struct net_device *netdev, u8 *data) -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Ha

[net-next PATCH] net: ipv4: fix listify ip_rcv_finish in case of forwarding

2018-07-11 Thread Jesper Dangaard Brouer
, and a crash occurs in validate_xmit_skb_list(). This patch only fixes the crash, but there is a huge potential for a performance boost if we can pass an SKB-list through to ip_forward. Fixes: 5fa12739a53d ("net: ipv4: listify ip_rcv_finish") Signed-off-by: Jesper Dangaard Brouer --- Only d

Re: [net-next PATCH] net: ipv4: fix listify ip_rcv_finish in case of forwarding

2018-07-11 Thread Jesper Dangaard Brouer
On Wed, 11 Jul 2018 19:05:20 + Saeed Mahameed wrote: > On Wed, 2018-07-11 at 17:01 +0200, Jesper Dangaard Brouer wrote: > > Only driver sfc actually uses this, but I don't have this NIC, so I > > tested this on mlx5, with my own changes to make it use > > netif_r

Re: [net-next PATCH] net: ipv4: fix listify ip_rcv_finish in case of forwarding

2018-07-11 Thread Jesper Dangaard Brouer
On Wed, 11 Jul 2018 16:41:35 +0100 Edward Cree wrote: > On 11/07/18 16:01, Jesper Dangaard Brouer wrote: > > In commit 5fa12739a53d ("net: ipv4: listify ip_rcv_finish") calling > > dst_input(skb) was split-out. The ip_sublist_rcv_finish() just calls > > dst_in

Re: [PATCH net] tun: Fix use-after-free on XDP_TX

2018-07-12 Thread Jesper Dangaard Brouer
0) > > goto err_redirect; > > rcu_read_unlock(); > > local_bh_enable(); > > Acked-by: Jason Wang Acked-by: Jesper Dangaard Brouer Thanks for catching and fixing this! -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer

Re: [net-next PATCH] net: ipv4: fix listify ip_rcv_finish in case of forwarding

2018-07-13 Thread Jesper Dangaard Brouer
On Thu, 12 Jul 2018 23:10:28 +0300 Or Gerlitz wrote: > On Wed, Jul 11, 2018 at 11:06 PM, Jesper Dangaard Brouer > wrote: > > > Well, I would prefer you to implement those. I just did a quick > > implementation (its trivially easy) so I have something to benchmark >

[bpf-next PATCH] samples/bpf: xdp_redirect_cpu handle parsing of double VLAN tagged packets

2018-07-13 Thread Jesper Dangaard Brouer
Marek Majkowski Signed-off-by: Jesper Dangaard Brouer --- Suricata code pointer: https://github.com/OISF/suricata/blob/master/ebpf/xdp_filter.c#L234-L245 I'm controlled via Twitter: https://twitter.com/majek04/status/1017492418227331073 samples/bpf/xdp_redirect_cpu_kern.c | 11 +

Re: [net-next PATCH] net: ipv4: fix listify ip_rcv_finish in case of forwarding

2018-07-13 Thread Jesper Dangaard Brouer
On Fri, 13 Jul 2018 15:19:40 +0100 Edward Cree wrote: > On 12/07/18 21:10, Or Gerlitz wrote: > > On Wed, Jul 11, 2018 at 11:06 PM, Jesper Dangaard Brouer > > wrote: > >> One reason I didn't "just" send a patch, is that Edward so-fare only > >&

Re: [bpf-next V1 PATCH 09/15] mlx5: register a memory model when XDP is enabled

2018-03-07 Thread Jesper Dangaard Brouer
On Wed, 7 Mar 2018 13:50:19 +0200 Tariq Toukan wrote: > On 06/03/2018 11:48 PM, Jesper Dangaard Brouer wrote: > > Now all the users of ndo_xdp_xmit have been converted to use > > xdp_return_frame. > > This enable a different memory model, thus activating another

Re: [bpf-next V1 PATCH 13/15] mlx5: use page_pool for xdp_return_frame call

2018-03-08 Thread Jesper Dangaard Brouer
On Wed, 7 Mar 2018 14:11:36 +0200 Tariq Toukan wrote: > On 06/03/2018 11:48 PM, Jesper Dangaard Brouer wrote: > > This patch shows how it is possible to have both the driver local page > > cache, which uses elevated refcnt for "catching"/avoiding SKB > > put_pa

[bpf-next V2 PATCH 02/15] xdp: introduce xdp_return_frame API and use in cpumap

2018-03-08 Thread Jesper Dangaard Brouer
Introduce an xdp_return_frame API, and convert over cpumap as the first user, given it have queued XDP frame structure to leverage. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 32 +++ kernel/bpf/cpumap.c | 60

[bpf-next V2 PATCH 00/15] XDP redirect memory return API

2018-03-08 Thread Jesper Dangaard Brouer
and xdp_return_frame APIs to support bulking. As this will address some known limits. V2: Updated according to Tariq's feedback --- Jesper Dangaard Brouer (15): mlx5: basic XDP_REDIRECT forward support xdp: introduce xdp_return_frame API and use in cpumap ixgbe

[bpf-next V2 PATCH 01/15] mlx5: basic XDP_REDIRECT forward support

2018-03-08 Thread Jesper Dangaard Brouer
ff-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox/mlx5/core/en.h|1 + drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 27 --- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/eth

[bpf-next V2 PATCH 03/15] ixgbe: use xdp_return_frame API

2018-03-08 Thread Jesper Dangaard Brouer
Extend struct ixgbe_tx_buffer to store the xdp_mem_info. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe.h |1 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |6 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net

[bpf-next V2 PATCH 09/15] mlx5: register a memory model when XDP is enabled

2018-03-08 Thread Jesper Dangaard Brouer
Now all the users of ndo_xdp_xmit have been converted to use xdp_return_frame. This enable a different memory model, thus activating another code path in the xdp_return_frame API. V2: Fixed issues pointed out by Tariq. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox

[bpf-next V2 PATCH 06/15] tun: convert to use generic xdp_frame and xdp_return_frame API

2018-03-08 Thread Jesper Dangaard Brouer
ot be trused/used when dequeueing the frame. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/tun.c | 45 +++-- drivers/vhost/net.c|7 --- include/linux/if_tun.h |4 ++-- 3 files changed, 29 insertions(+), 27 deletions(-) diff

[bpf-next V2 PATCH 04/15] xdp: move struct xdp_buff from filter.h to xdp.h

2018-03-08 Thread Jesper Dangaard Brouer
This is done to prepare for the next patch, and it is also nice to move this XDP related struct out of filter.h. Signed-off-by: Jesper Dangaard Brouer --- include/linux/filter.h | 24 +--- include/net/xdp.h | 22 ++ 2 files changed, 23 insertions

[bpf-next V2 PATCH 12/15] xdp: allow page_pool as an allocator type in xdp_return_frame

2018-03-08 Thread Jesper Dangaard Brouer
the page_pool helper page_pool_destroy_rcu() (which avoids touching any driver code during the RCU callback, which could happen after the driver have been unloaded). Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h |4 +++- net/core/xdp.c| 23 --- 2 files

[bpf-next V2 PATCH 05/15] xdp: introduce a new xdp_frame type

2018-03-08 Thread Jesper Dangaard Brouer
This is needed to convert drivers tuntap and virtio_net. This is a generalization of what is done inside cpumap, which will be converted later. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 40 1 file changed, 40 insertions(+) diff

[bpf-next V2 PATCH 15/15] xdp: transition into using xdp_frame for ndo_xdp_xmit

2018-03-08 Thread Jesper Dangaard Brouer
Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 21 +++-- drivers/net/tun.c | 11 +-- drivers/net/virtio_net.c | 24 ++-- include/linux/netdevice.h |4 ++-- net

[bpf-next V2 PATCH 07/15] virtio_net: convert to use generic xdp_frame and xdp_return_frame API

2018-03-08 Thread Jesper Dangaard Brouer
allow us to use the xdp_return_frame API, when releasing the frame. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/virtio_net.c | 31 +-- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index

[bpf-next V2 PATCH 11/15] page_pool: refurbish version of page_pool code

2018-03-08 Thread Jesper Dangaard Brouer
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 Signed-off-by: Jesper Dangaard Brouer

[bpf-next V2 PATCH 13/15] mlx5: use page_pool for xdp_return_frame call

2018-03-08 Thread Jesper Dangaard Brouer
age_pool_create return codes not return NULL, only ERR_PTR, as this simplifies err handling in drivers. - Save a branch in mlx5e_page_release - Correct page_pool size calc for MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox/mlx5/

[bpf-next V2 PATCH 10/15] xdp: rhashtable with allocator ID to pointer mapping

2018-03-08 Thread Jesper Dangaard Brouer
allocator pointer or invoking the allocator destructor function. In any case, this must happen via RCU freeing. Use the IDA infrastructure for getting a cyclic increasing ID number, that is used for keeping track of each registered allocator per RX-queue xdp_rxq_info. Signed-off-by: Jesper Dangaard

[bpf-next V2 PATCH 08/15] bpf: cpumap convert to use generic xdp_frame

2018-03-08 Thread Jesper Dangaard Brouer
The generic xdp_frame format, was inspired by the cpumap own internal xdp_pkt format. It is now time to convert it over to the generic xdp_frame format. The cpumap needs one extra field dev_rx. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h |1 + kernel/bpf/cpumap.c | 100

[bpf-next V2 PATCH 14/15] xdp: transition into using xdp_frame for return API

2018-03-08 Thread Jesper Dangaard Brouer
rency protocol about our access pattern. My benchmarks show that this prefetchw is enough to compensate the ixgbe driver. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe.h|4 +--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 +++--

Re: [bpf-next V2 PATCH 06/15] tun: convert to use generic xdp_frame and xdp_return_frame API

2018-03-08 Thread Jesper Dangaard Brouer
Hi Jason, Please see below FIXME, which is actually a question to you. On Thu, 08 Mar 2018 14:08:11 +0100 Jesper Dangaard Brouer wrote: > diff --git a/drivers/net/tun.c b/drivers/net/tun.c > index 475088f947bb..cd046cf31b77 100644 > --- a/drivers/net/tun.c > +++ b/drive

Re: [bpf-next V2 PATCH 00/15] XDP redirect memory return API

2018-03-08 Thread Jesper Dangaard Brouer
On Thu, 8 Mar 2018 07:03:07 -0800 Alexander Duyck wrote: > On Thu, Mar 8, 2018 at 5:07 AM, Jesper Dangaard Brouer > wrote: > > This patchset works towards supporting different XDP RX-ring memory > > allocators. As this will be needed by the AF_XDP zero-copy mode. > > &g

Re: [bpf-next V2 PATCH 06/15] tun: convert to use generic xdp_frame and xdp_return_frame API

2018-03-09 Thread Jesper Dangaard Brouer
On Fri, 9 Mar 2018 15:16:35 +0800 Jason Wang wrote: > On 2018年03月08日 23:16, Jesper Dangaard Brouer wrote: > > Hi Jason, > > > > Please see below FIXME, which is actually a question to you. > > > > On Thu, 08 Mar 2018 14:08:11 +0100 Jesper Dangaard Brouer &g

Re: [bpf-next V2 PATCH 02/15] xdp: introduce xdp_return_frame API and use in cpumap

2018-03-09 Thread Jesper Dangaard Brouer
On Fri, 9 Mar 2018 15:24:10 +0800 Jason Wang wrote: > On 2018年03月08日 21:07, Jesper Dangaard Brouer wrote: > > Introduce an xdp_return_frame API, and convert over cpumap as > > the first user, given it have queued XDP frame structure to leverage. > > > > Signed-off

Re: [bpf-next V2 PATCH 10/15] xdp: rhashtable with allocator ID to pointer mapping

2018-03-09 Thread Jesper Dangaard Brouer
On Fri, 9 Mar 2018 16:08:58 +0800 Jason Wang wrote: > On 2018年03月08日 21:08, Jesper Dangaard Brouer wrote: > > Use the IDA infrastructure for getting a cyclic increasing ID number, > > that is used for keeping track of each registered allocator per > > RX-queue xdp_rxq_info.

Re: [bpf-next V2 PATCH 07/15] virtio_net: convert to use generic xdp_frame and xdp_return_frame API

2018-03-09 Thread Jesper Dangaard Brouer
On Fri, 9 Mar 2018 16:03:28 +0800 Jason Wang wrote: > On 2018年03月08日 21:08, Jesper Dangaard Brouer wrote: > > The virtio_net driver assumes XDP frames are always released based on > > page refcnt (via put_page). Thus, is only queues the XDP data pointer > > address and u

Re: [bpf-next V2 PATCH 02/15] xdp: introduce xdp_return_frame API and use in cpumap

2018-03-09 Thread Jesper Dangaard Brouer
On Fri, 9 Mar 2018 21:04:23 +0800 Jason Wang wrote: > On 2018年03月09日 17:35, Jesper Dangaard Brouer wrote: > > On Fri, 9 Mar 2018 15:24:10 +0800 > > Jason Wang wrote: > > > >> On 2018年03月08日 21:07, Jesper Dangaard Brouer wrote: > >>> Introduce an xdp

Re: [bpf-next V2 PATCH 10/15] xdp: rhashtable with allocator ID to pointer mapping

2018-03-09 Thread Jesper Dangaard Brouer
On Fri, 9 Mar 2018 21:07:36 +0800 Jason Wang wrote: > >>> Use the IDA infrastructure for getting a cyclic increasing ID number, > >>> that is used for keeping track of each registered allocator per > >>> RX-queue xdp_rxq_info. > >>> > >>&

[bpf-next V3 PATCH 01/15] mlx5: basic XDP_REDIRECT forward support

2018-03-09 Thread Jesper Dangaard Brouer
ff-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox/mlx5/core/en.h|1 + drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 27 --- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/eth

[bpf-next V3 PATCH 00/15] XDP redirect memory return API

2018-03-09 Thread Jesper Dangaard Brouer
and xdp_return_frame APIs to support bulking. As this will address some known limits. V2: Updated according to Tariq's feedback V3: Feedback from Jason Wang and Alex Duyck --- Jesper Dangaard Brouer (15): mlx5: basic XDP_REDIRECT forward support xdp: introduce xdp_return_fram

[bpf-next V3 PATCH 05/15] xdp: introduce a new xdp_frame type

2018-03-09 Thread Jesper Dangaard Brouer
This is needed to convert drivers tuntap and virtio_net. This is a generalization of what is done inside cpumap, which will be converted later. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 40 1 file changed, 40 insertions(+) diff

[bpf-next V3 PATCH 04/15] xdp: move struct xdp_buff from filter.h to xdp.h

2018-03-09 Thread Jesper Dangaard Brouer
This is done to prepare for the next patch, and it is also nice to move this XDP related struct out of filter.h. Signed-off-by: Jesper Dangaard Brouer --- include/linux/filter.h | 24 +--- include/net/xdp.h | 22 ++ 2 files changed, 23 insertions

[bpf-next V3 PATCH 03/15] ixgbe: use xdp_return_frame API

2018-03-09 Thread Jesper Dangaard Brouer
Extend struct ixgbe_tx_buffer to store the xdp_mem_info. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe.h |1 + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |6 -- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net

[bpf-next V3 PATCH 06/15] tun: convert to use generic xdp_frame and xdp_return_frame API

2018-03-09 Thread Jesper Dangaard Brouer
ot be trused/used when dequeueing the frame. V3: Remove check based on feedback from Jason Signed-off-by: Jesper Dangaard Brouer --- drivers/net/tun.c | 43 --- drivers/vhost/net.c|7 --- include/linux/if_tun.h |4 ++-- 3 files ch

[bpf-next V3 PATCH 02/15] xdp: introduce xdp_return_frame API and use in cpumap

2018-03-09 Thread Jesper Dangaard Brouer
Introduce an xdp_return_frame API, and convert over cpumap as the first user, given it have queued XDP frame structure to leverage. V3: Cleanup and remove C99 style comments, pointed out by Alex Duyck. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 28

[bpf-next V3 PATCH 11/15] page_pool: refurbish version of page_pool code

2018-03-09 Thread Jesper Dangaard Brouer
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 Signed-off-by: Jesper Dangaard Brouer

[bpf-next V3 PATCH 10/15] xdp: rhashtable with allocator ID to pointer mapping

2018-03-09 Thread Jesper Dangaard Brouer
allocator pointer or invoking the allocator destructor function. In any case, this must happen via RCU freeing. Use the IDA infrastructure for getting a cyclic increasing ID number, that is used for keeping track of each registered allocator per RX-queue xdp_rxq_info. Signed-off-by: Jesper Dangaard

[bpf-next V3 PATCH 09/15] mlx5: register a memory model when XDP is enabled

2018-03-09 Thread Jesper Dangaard Brouer
Now all the users of ndo_xdp_xmit have been converted to use xdp_return_frame. This enable a different memory model, thus activating another code path in the xdp_return_frame API. V2: Fixed issues pointed out by Tariq. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox

[bpf-next V3 PATCH 12/15] xdp: allow page_pool as an allocator type in xdp_return_frame

2018-03-09 Thread Jesper Dangaard Brouer
the page_pool helper page_pool_destroy_rcu() (which avoids touching any driver code during the RCU callback, which could happen after the driver have been unloaded). Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h |3 +++ net/core/xdp.c| 23 --- 2 files

[bpf-next V3 PATCH 14/15] xdp: transition into using xdp_frame for return API

2018-03-09 Thread Jesper Dangaard Brouer
rency protocol about our access pattern. My benchmarks show that this prefetchw is enough to compensate the ixgbe driver. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe.h|4 +--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 +++--

[bpf-next V3 PATCH 07/15] virtio_net: convert to use generic xdp_frame and xdp_return_frame API

2018-03-09 Thread Jesper Dangaard Brouer
allow us to use the xdp_return_frame API, when releasing the frame. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/virtio_net.c | 31 +-- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index

[bpf-next V3 PATCH 08/15] bpf: cpumap convert to use generic xdp_frame

2018-03-09 Thread Jesper Dangaard Brouer
The generic xdp_frame format, was inspired by the cpumap own internal xdp_pkt format. It is now time to convert it over to the generic xdp_frame format. The cpumap needs one extra field dev_rx. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h |1 + kernel/bpf/cpumap.c | 100

[bpf-next V3 PATCH 15/15] xdp: transition into using xdp_frame for ndo_xdp_xmit

2018-03-09 Thread Jesper Dangaard Brouer
Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 21 +++-- drivers/net/tun.c |7 +-- drivers/net/virtio_net.c | 24 ++-- include/linux/netdevice.h |4 ++-- net/core

[bpf-next V3 PATCH 13/15] mlx5: use page_pool for xdp_return_frame call

2018-03-09 Thread Jesper Dangaard Brouer
age_pool_create return codes not return NULL, only ERR_PTR, as this simplifies err handling in drivers. - Save a branch in mlx5e_page_release - Correct page_pool size calc for MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox/mlx5/

Re: [RFC 2/2] page_frag_cache: Store metadata in struct page

2018-03-19 Thread Jesper Dangaard Brouer
y depend on page_frag_cache API, but similar pagecnt_bias tricks). -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer

Re: [bpf-next V2 PATCH 10/15] xdp: rhashtable with allocator ID to pointer mapping

2018-03-19 Thread Jesper Dangaard Brouer
On Fri, 16 Mar 2018 16:45:30 +0800 Jason Wang wrote: > On 2018年03月10日 00:07, Jesper Dangaard Brouer wrote: > > On Fri, 9 Mar 2018 21:07:36 +0800 > > Jason Wang wrote: > > > >>>>> Use the IDA infrastructure for getting a cyclic increasing ID number, &g

Re: [bpf-next V3 PATCH 00/15] XDP redirect memory return API

2018-03-19 Thread Jesper Dangaard Brouer
et, and then we avoid any implicit assumptions. And makes it more clear that XDP_REDIRECT support use the memory model return API. -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer

Re: [bpf-next V3 PATCH 13/15] mlx5: use page_pool for xdp_return_frame call

2018-03-19 Thread Jesper Dangaard Brouer
On Mon, 12 Mar 2018 15:20:06 +0200 Tariq Toukan wrote: > On 12/03/2018 12:16 PM, Tariq Toukan wrote: > > > > On 12/03/2018 12:08 PM, Tariq Toukan wrote: > >> > >> On 09/03/2018 10:56 PM, Jesper Dangaard Brouer wrote: > >>> This patch shows how

Re: [bpf-next V2 PATCH 10/15] xdp: rhashtable with allocator ID to pointer mapping

2018-03-20 Thread Jesper Dangaard Brouer
On Tue, 20 Mar 2018 10:26:50 +0800 Jason Wang wrote: > On 2018年03月19日 17:48, Jesper Dangaard Brouer wrote: > > On Fri, 16 Mar 2018 16:45:30 +0800 > > Jason Wang wrote: > > > >> On 2018年03月10日 00:07, Jesper Dangaard Brouer wrote: > >>> On Fri,

Re: [net-next V7 PATCH 07/16] virtio_net: convert to use generic xdp_frame and xdp_return_frame API

2018-03-31 Thread Jesper Dangaard Brouer
as Jason previously told me that it is not strictly necessary (so lets avoid playing with endianness here). >452 xdpf->len += vi->hdr_len; >453 -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat LinkedIn: http://www.linkedin.com/in/brouer

[net-next V8 PATCH 00/16] XDP redirect memory return API

2018-03-31 Thread Jesper Dangaard Brouer
for perf test V6: Updated based on feedback from Eric Dumazet and Alex Duyck V7: Adapt to i40e that got XDP_REDIRECT support in-between V8: Updated based on feedback kbuild test robot, and adjust for mlx5 changes --- Jesper Dangaard Brouer (16): mlx5: basic XDP_REDIRECT forward sup

[net-next V8 PATCH 02/16] xdp: introduce xdp_return_frame API and use in cpumap

2018-03-31 Thread Jesper Dangaard Brouer
xdp_mem_type (found by kbuild test robot) Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 27 +++ kernel/bpf/cpumap.c | 60 +++ net/core/xdp.c | 18 +++ 3 files changed, 81 insertions(+), 24

[net-next V8 PATCH 03/16] ixgbe: use xdp_return_frame API

2018-03-31 Thread Jesper Dangaard Brouer
Extend struct ixgbe_tx_buffer to store the xdp_mem_info. Notice that this could be optimized further by putting this into a union in the struct ixgbe_tx_buffer, but this patchset works towards removing this again. Thus, this is not done. Signed-off-by: Jesper Dangaard Brouer --- drivers/net

[net-next V8 PATCH 04/16] xdp: move struct xdp_buff from filter.h to xdp.h

2018-03-31 Thread Jesper Dangaard Brouer
This is done to prepare for the next patch, and it is also nice to move this XDP related struct out of filter.h. Signed-off-by: Jesper Dangaard Brouer --- include/linux/filter.h | 24 +--- include/net/xdp.h | 22 ++ 2 files changed, 23 insertions

[net-next V8 PATCH 05/16] xdp: introduce a new xdp_frame type

2018-03-31 Thread Jesper Dangaard Brouer
This is needed to convert drivers tuntap and virtio_net. This is a generalization of what is done inside cpumap, which will be converted later. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 40 1 file changed, 40 insertions(+) diff

[net-next V8 PATCH 01/16] mlx5: basic XDP_REDIRECT forward support

2018-03-31 Thread Jesper Dangaard Brouer
ff-by: Jesper Dangaard Brouer Reviewed-by: Tariq Toukan Acked-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/en.h|1 + drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 27 --- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/drivers/net/eth

[net-next V8 PATCH 08/16] bpf: cpumap convert to use generic xdp_frame

2018-03-31 Thread Jesper Dangaard Brouer
The generic xdp_frame format, was inspired by the cpumap own internal xdp_pkt format. It is now time to convert it over to the generic xdp_frame format. The cpumap needs one extra field dev_rx. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h |1 + kernel/bpf/cpumap.c | 100

[net-next V8 PATCH 15/16] xdp: transition into using xdp_frame for return API

2018-03-31 Thread Jesper Dangaard Brouer
t in dma_sync call") Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/i40e/i40e_txrx.c |5 ++--- drivers/net/ethernet/intel/ixgbe/ixgbe.h|4 +--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 +++-- drivers/net/ethernet/mellanox/mlx5/

[net-next V8 PATCH 14/16] mlx5: use page_pool for xdp_return_frame call

2018-03-31 Thread Jesper Dangaard Brouer
e_pool size calc for MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ V5: Updated patch desc V8: Adjust for b0cedc844c00 ("net/mlx5e: Remove rq_headroom field from params") Signed-off-by: Jesper Dangaard Brouer Reviewed-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/en.h |3 ++ drivers/n

[net-next V8 PATCH 06/16] tun: convert to use generic xdp_frame and xdp_return_frame API

2018-03-31 Thread Jesper Dangaard Brouer
From: Jesper Dangaard Brouer The tuntap driver invented it's own driver specific way of queuing XDP packets, by storing the xdp_buff information in the top of the XDP frame data. Convert it over to use the more generic xdp_frame structure. The main problem with the in-driver method is tha

[net-next V8 PATCH 10/16] mlx5: register a memory model when XDP is enabled

2018-03-31 Thread Jesper Dangaard Brouer
Now all the users of ndo_xdp_xmit have been converted to use xdp_return_frame. This enable a different memory model, thus activating another code path in the xdp_return_frame API. V2: Fixed issues pointed out by Tariq. Signed-off-by: Jesper Dangaard Brouer Reviewed-by: Tariq Toukan Acked-by

[net-next V8 PATCH 13/16] xdp: allow page_pool as an allocator type in xdp_return_frame

2018-03-31 Thread Jesper Dangaard Brouer
Signed-off-by: Jesper Dangaard Brouer --- include/net/page_pool.h | 14 +++ include/net/xdp.h |3 ++ net/core/xdp.c | 60 ++- 3 files changed, 65 insertions(+), 12 deletions(-) diff --git a/include/net/page_pool.h b

[net-next V8 PATCH 07/16] virtio_net: convert to use generic xdp_frame and xdp_return_frame API

2018-03-31 Thread Jesper Dangaard Brouer
allow us to use the xdp_return_frame API, when releasing the frame. V8: Avoid endianness issues (found by kbuild test robot) Signed-off-by: Jesper Dangaard Brouer --- drivers/net/virtio_net.c | 30 -- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a

[net-next V8 PATCH 09/16] i40e: convert to use generic xdp_frame and xdp_return_frame API

2018-03-31 Thread Jesper Dangaard Brouer
Also convert driver i40e, which very recently got XDP_REDIRECT support in commit d9314c474d4f ("i40e: add support for XDP_REDIRECT"). V7: This patch got added in V7 of this patchset. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/i40e/i40e_txr

[net-next V8 PATCH 12/16] page_pool: refurbish version of page_pool code

2018-03-31 Thread Jesper Dangaard Brouer
n two patches Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox/mlx5/core/Kconfig |1 include/net/page_pool.h | 129 + net/Kconfig |3 net/core/Makefile |1 net

[net-next V8 PATCH 11/16] xdp: rhashtable with allocator ID to pointer mapping

2018-03-31 Thread Jesper Dangaard Brouer
should be static warnings (from kbuild test robot) Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |9 + drivers/net/tun.c |6 + drivers/net/virtio_net.c |7 + include

[net-next V8 PATCH 16/16] xdp: transition into using xdp_frame for ndo_xdp_xmit

2018-03-31 Thread Jesper Dangaard Brouer
59655a5b6c83 ("tuntap: XDP_TX can use native XDP") V7: Adjust for commit d9314c474d4f ("i40e: add support for XDP_REDIRECT") Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/i40e/i40e_txrx.c | 30 ++--- drivers/net/ethernet/intel/i40e/

Re: [net-next V8 PATCH 14/16] mlx5: use page_pool for xdp_return_frame call

2018-03-31 Thread Jesper Dangaard Brouer
On Sat, 31 Mar 2018 14:06:57 +0200 Jesper Dangaard Brouer wrote: > This patch shows how it is possible to have both the driver local page > cache, which uses elevated refcnt for "catching"/avoiding SKB > put_page returns the page through the page allocator. And at the >

[net-next V9 PATCH 02/16] xdp: introduce xdp_return_frame API and use in cpumap

2018-04-03 Thread Jesper Dangaard Brouer
xdp_mem_type (found by kbuild test robot) Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 27 +++ kernel/bpf/cpumap.c | 60 +++ net/core/xdp.c | 18 +++ 3 files changed, 81 insertions(+), 24

[net-next V9 PATCH 07/16] virtio_net: convert to use generic xdp_frame and xdp_return_frame API

2018-04-03 Thread Jesper Dangaard Brouer
allow us to use the xdp_return_frame API, when releasing the frame. V8: Avoid endianness issues (found by kbuild test robot) V9: Change __virtnet_xdp_xmit from bool to int return value (found by Dan Carpenter) Signed-off-by: Jesper Dangaard Brouer --- drivers/net/virtio_net.c | 54

[net-next V9 PATCH 03/16] ixgbe: use xdp_return_frame API

2018-04-03 Thread Jesper Dangaard Brouer
Extend struct ixgbe_tx_buffer to store the xdp_mem_info. Notice that this could be optimized further by putting this into a union in the struct ixgbe_tx_buffer, but this patchset works towards removing this again. Thus, this is not done. Signed-off-by: Jesper Dangaard Brouer --- drivers/net

[net-next V9 PATCH 06/16] tun: convert to use generic xdp_frame and xdp_return_frame API

2018-04-03 Thread Jesper Dangaard Brouer
From: Jesper Dangaard Brouer The tuntap driver invented it's own driver specific way of queuing XDP packets, by storing the xdp_buff information in the top of the XDP frame data. Convert it over to use the more generic xdp_frame structure. The main problem with the in-driver method is tha

[net-next V9 PATCH 00/16] XDP redirect memory return API

2018-04-03 Thread Jesper Dangaard Brouer
ler decide what to inline Fix return value in virtio_net driver Adjust for mlx5 changes in-between submissions --- Jesper Dangaard Brouer (16): mlx5: basic XDP_REDIRECT forward support xdp: introduce xdp_return_frame API and use in cpumap ixgbe: use xdp_return_frame API

[net-next V9 PATCH 01/16] mlx5: basic XDP_REDIRECT forward support

2018-04-03 Thread Jesper Dangaard Brouer
t for commit 121e89275471 ("net/mlx5e: Refactor RQ XDP_TX indication") Signed-off-by: Jesper Dangaard Brouer Reviewed-by: Tariq Toukan Acked-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/en.h|1 + drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 27 +++

[net-next V9 PATCH 04/16] xdp: move struct xdp_buff from filter.h to xdp.h

2018-04-03 Thread Jesper Dangaard Brouer
This is done to prepare for the next patch, and it is also nice to move this XDP related struct out of filter.h. Signed-off-by: Jesper Dangaard Brouer --- include/linux/filter.h | 24 +--- include/net/xdp.h | 22 ++ 2 files changed, 23 insertions

[net-next V9 PATCH 08/16] bpf: cpumap convert to use generic xdp_frame

2018-04-03 Thread Jesper Dangaard Brouer
The generic xdp_frame format, was inspired by the cpumap own internal xdp_pkt format. It is now time to convert it over to the generic xdp_frame format. The cpumap needs one extra field dev_rx. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h |1 + kernel/bpf/cpumap.c | 100

[net-next V9 PATCH 05/16] xdp: introduce a new xdp_frame type

2018-04-03 Thread Jesper Dangaard Brouer
This is needed to convert drivers tuntap and virtio_net. This is a generalization of what is done inside cpumap, which will be converted later. Signed-off-by: Jesper Dangaard Brouer --- include/net/xdp.h | 40 1 file changed, 40 insertions(+) diff

[net-next V9 PATCH 12/16] page_pool: refurbish version of page_pool code

2018-04-03 Thread Jesper Dangaard Brouer
n two patches Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/mellanox/mlx5/core/Kconfig |1 include/net/page_pool.h | 129 + net/Kconfig |3 net/core/Makefile |1 net

[net-next V9 PATCH 09/16] i40e: convert to use generic xdp_frame and xdp_return_frame API

2018-04-03 Thread Jesper Dangaard Brouer
Also convert driver i40e, which very recently got XDP_REDIRECT support in commit d9314c474d4f ("i40e: add support for XDP_REDIRECT"). V7: This patch got added in V7 of this patchset. Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/i40e/i40e_txr

[net-next V9 PATCH 10/16] mlx5: register a memory model when XDP is enabled

2018-04-03 Thread Jesper Dangaard Brouer
Now all the users of ndo_xdp_xmit have been converted to use xdp_return_frame. This enable a different memory model, thus activating another code path in the xdp_return_frame API. V2: Fixed issues pointed out by Tariq. Signed-off-by: Jesper Dangaard Brouer Reviewed-by: Tariq Toukan Acked-by

[net-next V9 PATCH 13/16] xdp: allow page_pool as an allocator type in xdp_return_frame

2018-04-03 Thread Jesper Dangaard Brouer
V9: Remove inline from .c file, compiler knows best Signed-off-by: Jesper Dangaard Brouer --- include/net/page_pool.h | 14 +++ include/net/xdp.h |3 ++ net/core/xdp.c | 60 ++- 3 files changed, 65 insertions(+), 12

[net-next V9 PATCH 11/16] xdp: rhashtable with allocator ID to pointer mapping

2018-04-03 Thread Jesper Dangaard Brouer
should be static warnings (from kbuild test robot) Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |9 + drivers/net/tun.c |6 + drivers/net/virtio_net.c |7 + include

[net-next V9 PATCH 15/16] xdp: transition into using xdp_frame for return API

2018-04-03 Thread Jesper Dangaard Brouer
t in dma_sync call") Signed-off-by: Jesper Dangaard Brouer --- drivers/net/ethernet/intel/i40e/i40e_txrx.c |5 ++--- drivers/net/ethernet/intel/ixgbe/ixgbe.h|4 +--- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 17 +++-- drivers/net/ethernet/mellanox/mlx5/

<    3   4   5   6   7   8   9   10   11   12   >