All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesper Dangaard Brouer <brouer@redhat.com>
To: "Björn Töpel" <bjorn.topel@gmail.com>
Cc: magnus.karlsson@intel.com, alexander.h.duyck@intel.com,
	alexander.duyck@gmail.com, john.fastabend@gmail.com, ast@fb.com,
	willemdebruijn.kernel@gmail.com, daniel@iogearbox.net,
	netdev@vger.kernel.org, "Björn Töpel" <bjorn.topel@intel.com>,
	michael.lundkvist@ericsson.com, jesse.brandeburg@intel.com,
	anjali.singhai@intel.com, jeffrey.b.shaw@intel.com,
	ferruh.yigit@intel.com, qi.z.zhang@intel.com, brouer@redhat.com
Subject: Re: [RFC PATCH 00/24] Introducing AF_XDP support
Date: Fri, 2 Feb 2018 11:31:34 +0100	[thread overview]
Message-ID: <20180202113134.4739ce91@redhat.com> (raw)
In-Reply-To: <20180131135356.19134-1-bjorn.topel@gmail.com>

On Wed, 31 Jan 2018 14:53:32 +0100
Björn Töpel <bjorn.topel@gmail.com> wrote:

> Below are the results in Mpps of the I40E NIC benchmark runs for 64
> byte packets, generated by commercial packet generator HW that is
> generating packets at full 40 Gbit/s line rate.
>  
> XDP baseline numbers without this RFC:
> xdp_rxq_info --action XDP_DROP 31.3 Mpps
> xdp_rxq_info --action XDP_TX   16.7 Mpps
>  
> XDP performance with this RFC i.e. with the buffer allocator:
> XDP_DROP 21.0 Mpps
> XDP_TX   11.9 Mpps
>  
> AF_PACKET V4 performance from previous RFC on 4.14-rc7:
> Benchmark   V2     V3     V4     V4+ZC
> rxdrop      0.67   0.73   0.74   33.7
> txpush      0.98   0.98   0.91   19.6
> l2fwd       0.66   0.71   0.67   15.5

My numbers from before:
        V4+ZC
rxdrop  35.2 Mpps
txpush  20.7 Mpps
l2fwd   16.9 Mpps

> AF_XDP performance:
> Benchmark   XDP_SKB   XDP_DRV    XDP_DRV_ZC (all in Mpps)
> rxdrop      3.3        11.6         16.9
> txpush      2.2         NA*         21.8
> l2fwd       1.7         NA*         10.4

The numbers on my system are better than your system, and compared to
the my-own before results, the txpush is almost the same, and the gap
between l2fwd is smaller for me.

The surprise is the drop in the 'rxdrop' performance.

        XDP_DRV_ZC
rxdrop  22.0 Mpps
txpush  20.9 Mpps
l2fwd   14.2 Mpps


BUT is also seems you have generally slowed down the XDP_DROP results
for i40e:

Before:
 sudo ./xdp_bench01_mem_access_cost --dev i40e1
 XDP_DROP     35878204   35,878,204         no_touch  

After this patchset:
 $ sudo ./xdp_bench01_mem_access_cost --dev i40e1
 XDP_action   pps        pps-human-readable mem      
 XDP_DROP     28992009   28,992,009         no_touch  

And if I read data:
 sudo ./xdp_bench01_mem_access_cost --dev i40e1 --read
 XDP_action   pps        pps-human-readable mem      
 XDP_DROP     25107793   25,107,793         read      


BTW, see you soon in Brussels (FOSDEM18) ...
-- 
Best regards,
  Jesper Dangaard Brouer
  MSc.CS, Principal Kernel Engineer at Red Hat
  LinkedIn: http://www.linkedin.com/in/brouer

$ sudo ./xdpsock --rxdrop --interface=i40e1 --queue=11
[...]
i40e1:11 rxdrop 	
                pps         pkts        60.01      
rx              22,040,099  1,322,572,352
tx              0           0          

$ sudo ./xdpsock --txonly --interface=i40e1 --queue=11
[...]
i40e1:11 txonly 	
                pps         pkts        239.03     
rx              0           0          
tx              20,937,885  5,004,790,500


$ sudo ./xdpsock --l2fwd --interface=i40e1 --queue=11
[...]
i40e1:11 l2fwd 	
                pps         pkts        152.02     
rx              14,244,719  2,165,460,044
tx              14,244,718  2,165,459,915



My before results:

 $ sudo ./bench_all.sh
 You might want to change the parameters in ./bench_all.sh
 i40e1 cpu5 duration 30s zc 16
 i40e1 v2 rxdrop    duration 29.27s rx:    62959986pkts @  2150794.94pps
 i40e1 v3 rxdrop    duration 29.18s rx:    68470248pkts @  2346658.86pps
 i40e1 v4 rxdrop    duration 29.45s rx:    68900864pkts @  2339633.99pps
 i40e1 v4 rxdrop zc duration 29.36s rx:  1033722048pkts @ 35206198.62pps

 i40e1 v2 txonly    duration 29.16s tx:  63272640pkts @     2169632.53pps.
 i40e1 v3 txonly    duration 29.14s tx:  62531968pkts @     2145714.21pps.
 i40e1 v4 txonly    duration 29.48s tx:  40587316pkts @     1376761.87pps.
 i40e1 v4 txonly zc duration 29.36s tx: 608794761pkts @    20738953.62pps.

 i40e1 v2 l2fwd    duration 29.19s rx:  57532736pkts @  1970885.56pps
                                   tx   57532672pkts @  1970883.37pps.
 i40e1 v3 l2fwd    duration 29.16s rx:  57675961pkts @  1978149.64pps
                                   tx:  57675897pkts @  1978147.44pps.
 i40e1 v4 l2fwd    duration 29.51s rx:     29732pkts @     1007.58pps
                                   tx:     28708pkts @      972.88pps.
 i40e1 v4 l2fwd zc duration 29.32s rx: 497528256pkts @ 16969091.01pps
                                   tx: 497527296pkts @ 16969058.27pps.

  parent reply	other threads:[~2018-02-02 10:31 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-31 13:53 [RFC PATCH 00/24] Introducing AF_XDP support Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 01/24] xsk: AF_XDP sockets buildable skeleton Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 02/24] xsk: add user memory registration sockopt Björn Töpel
2018-02-07 16:00   ` Willem de Bruijn
2018-02-07 21:39     ` Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 03/24] xsk: added XDP_{R,T}X_RING sockopt and supporting structures Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 04/24] xsk: add bind support and introduce Rx functionality Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 05/24] bpf: added bpf_xdpsk_redirect Björn Töpel
2018-02-05 13:42   ` Jesper Dangaard Brouer
2018-02-07 21:11     ` Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 06/24] net: wire up xsk support in the XDP_REDIRECT path Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 07/24] xsk: introduce Tx functionality Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 08/24] i40e: add support for XDP_REDIRECT Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 09/24] samples/bpf: added xdpsock program Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 10/24] netdevice: added XDP_{UN,}REGISTER_XSK command to ndo_bpf Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 11/24] netdevice: added ndo for transmitting a packet from an XDP socket Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 12/24] xsk: add iterator functions to xsk_ring Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 13/24] i40e: introduce external allocator support Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 14/24] i40e: implemented page recycling buff_pool Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 15/24] i40e: start using " Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 16/24] i40e: separated buff_pool interface from i40e implementaion Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 17/24] xsk: introduce xsk_buff_pool Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 18/24] xdp: added buff_pool support to struct xdp_buff Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 19/24] xsk: add support for zero copy Rx Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 20/24] xsk: add support for zero copy Tx Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 21/24] i40e: implement xsk sub-commands in ndo_bpf for zero copy Rx Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 22/24] i40e: introduced a clean_tx callback function Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 23/24] i40e: introduced Tx completion callbacks Björn Töpel
2018-01-31 13:53 ` [RFC PATCH 24/24] i40e: Tx support for zero copy allocator Björn Töpel
2018-02-01 16:42 ` [RFC PATCH 00/24] Introducing AF_XDP support Jesper Dangaard Brouer
2018-02-02 10:31 ` Jesper Dangaard Brouer [this message]
2018-02-05 15:05 ` Björn Töpel
2018-02-07 15:54   ` Willem de Bruijn
2018-02-07 21:28     ` Björn Töpel
2018-02-08 23:16       ` Willem de Bruijn
2018-02-07 17:59 ` Tom Herbert
2018-02-07 21:38   ` Björn Töpel
2018-03-26 16:06 ` William Tu
2018-03-26 16:38   ` Jesper Dangaard Brouer
2018-03-26 21:58     ` William Tu
2018-03-27  6:09       ` Björn Töpel
2018-03-27  9:37       ` Jesper Dangaard Brouer
2018-03-28  0:06         ` William Tu
2018-03-28  8:01           ` Jesper Dangaard Brouer
2018-03-28 15:05             ` William Tu
2018-03-26 22:54     ` Tushar Dave
2018-03-26 23:03       ` Alexander Duyck
2018-03-26 23:20         ` Tushar Dave
2018-03-28  0:49           ` William Tu
2018-03-27  6:30         ` Björn Töpel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180202113134.4739ce91@redhat.com \
    --to=brouer@redhat.com \
    --cc=alexander.duyck@gmail.com \
    --cc=alexander.h.duyck@intel.com \
    --cc=anjali.singhai@intel.com \
    --cc=ast@fb.com \
    --cc=bjorn.topel@gmail.com \
    --cc=bjorn.topel@intel.com \
    --cc=daniel@iogearbox.net \
    --cc=ferruh.yigit@intel.com \
    --cc=jeffrey.b.shaw@intel.com \
    --cc=jesse.brandeburg@intel.com \
    --cc=john.fastabend@gmail.com \
    --cc=magnus.karlsson@intel.com \
    --cc=michael.lundkvist@ericsson.com \
    --cc=netdev@vger.kernel.org \
    --cc=qi.z.zhang@intel.com \
    --cc=willemdebruijn.kernel@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.