From: Rick Jones <rick.jones2@hp.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "Alexander Duyck" <alexander.h.duyck@intel.com>,
"Alexander Duyck" <alexander.duyck@gmail.com>,
"David Miller" <davem@davemloft.net>,
netdev <netdev@vger.kernel.org>,
"Neal Cardwell" <ncardwell@google.com>,
"Tom Herbert" <therbert@google.com>,
"Jeff Kirsher" <jeffrey.t.kirsher@intel.com>,
"Michael Chan" <mchan@broadcom.com>,
"Matt Carlson" <mcarlson@broadcom.com>,
"Herbert Xu" <herbert@gondor.apana.org.au>,
"Ben Hutchings" <bhutchings@solarflare.com>,
"Ilpo Järvinen" <ilpo.jarvinen@helsinki.fi>,
"Maciej Żenczykowski" <maze@google.com>
Subject: Re: [PATCH 3/4 v2 net-next] net: make GRO aware of skb->head_frag
Date: Wed, 02 May 2012 10:16:23 -0700 [thread overview]
Message-ID: <4FA16BE7.7030407@hp.com> (raw)
In-Reply-To: <1335947084.22133.134.camel@edumazet-glaptop>
On 05/02/2012 01:24 AM, Eric Dumazet wrote:
> On Tue, 2012-05-01 at 12:45 -0700, Alexander Duyck wrote:
>
>> I have a hacked together ixgbe up and running now with the new build_skb
>> logic and RSC/LRO disabled. It looks like it is giving me a 5%
>> performance boost for small packet routing, but I am using more CPU for
>> netperf TCP receive tests and I was wondering if you had seen anything
>> similar on the tg3 driver?
>
> Really hard to say, numbers are so small on Gb link :
>
> what do you use to make your numbers ?
>
> netperf -H 172.30.42.23 -t OMNI -C -c
> OMNI Send TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 172.30.42.23 (172.30.42.23) port 0 AF_INET
> Local Local Local Elapsed Throughput Throughput Local Local Remote Remote Local Remote Service
> Send Socket Send Socket Send Time Units CPU CPU CPU CPU Service Service Demand
> Size Size Size (sec) Util Util Util Util Demand Demand Units
> Final Final % Method % Method
> 1700840 1700840 16384 10.01 931.60 10^6bits/s 4.50 S 1.32 S 1.582 2.783 usec/KB
If there is so little CPU consumed, I'm a bit surprised the throughput
wasn't 940 Gbit/s.
It might be a good idea to fix the local and remote socket buffer sizes
for these sorts of A-B comparisons to take the variability of the
autotuning out.
And then, to see if the small differences are "real" one can light-up
the confidence intervals. For example (using kernels unrelated to the
patch discussion):
raj@tardy:~/netperf2_trunk/src$ ./netperf -H 192.168.1.3 -t omni -c -C
-I 99,1 -i 30,3 -- -s 256K -S 256K -m 16K -O
throughput,local_cpu_util,local_sd,remote_cpu_util,remote_sd,throughput_confid,local_cpu_confid,remote_cpu_confid,confidence_iteration
OMNI Send TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.3 ()
port 0 AF_INET : +/-0.500% @ 99% conf. : interval : demo
Throughput Local Local Remote Remote Throughput Local Remote
Confidence
CPU Service CPU Service Confidence CPU CPU
Iterations
Util Demand Util Demand Width (%) Confidence
Confidence Run
% % Width (%) Width (%)
941.36 8.70 3.030 45.36 7.895 0.006 18.836 0.209
30
In this instance, I asked to be 99% confident the throughput and CPU
util were within +/- 0.5% of the "real" mean. The confidence intervals
were hit for throughput and remote CPU util, but not for local CPU util
- netperf was running on my personal workstation, which also receives
email etc. Presumably a more isolated and idle system would have hit
the confidence intervals.
Other sources of variation to consider eliminating when looking for
small differences in CPU utilization might be the multiqueue support in
the NIC. I'll often just terminate irqbalance and set all the IRQs to a
single CPU (when doing single stream tests). Or, one can fully specify
the four-tuple for the netperf data connection.
rick jones
of course there is also the whole question of the effect of HW threading
on the meaningfulness of OS-determined utilization...
next prev parent reply other threads:[~2012-05-02 17:16 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-27 10:37 [PATCH 3/4 net-next] net: make GRO aware of skb->head_frag Eric Dumazet
2012-04-30 17:54 ` Eric Dumazet
2012-04-30 18:10 ` [PATCH 3/4 v2 " Eric Dumazet
2012-04-30 23:36 ` Alexander Duyck
2012-05-01 1:27 ` Eric Dumazet
2012-05-01 5:33 ` Alexander Duyck
2012-05-01 6:39 ` Eric Dumazet
2012-05-01 16:17 ` Alexander Duyck
2012-05-01 17:04 ` Eric Dumazet
2012-05-01 19:45 ` Alexander Duyck
2012-05-02 2:45 ` Eric Dumazet
2012-05-02 8:24 ` Eric Dumazet
2012-05-02 16:16 ` Alexander Duyck
2012-05-02 16:19 ` Eric Dumazet
2012-05-02 16:27 ` Eric Dumazet
2012-05-02 17:04 ` Alexander Duyck
2012-05-02 17:02 ` Alexander Duyck
2012-05-02 17:16 ` Rick Jones [this message]
2012-05-01 22:58 ` Alexander Duyck
2012-05-01 23:10 ` Alexander Duyck
2012-05-02 2:47 ` Eric Dumazet
2012-05-02 3:54 ` Eric Dumazet
2012-05-02 8:13 ` [PATCH net-next] net: take care of cloned skbs in tcp_try_coalesce() Eric Dumazet
2012-05-02 15:52 ` Alexander Duyck
2012-05-02 16:12 ` Eric Dumazet
2012-05-02 16:27 ` Alexander Duyck
2012-05-02 16:46 ` Eric Dumazet
2012-05-02 17:55 ` [PATCH v2 " Eric Dumazet
2012-05-02 19:58 ` [PATCH net-next] net: implement tcp coalescing in tcp_queue_rcv() Eric Dumazet
2012-05-02 20:11 ` Joe Perches
2012-05-02 20:23 ` Eric Dumazet
2012-05-02 20:34 ` Joe Perches
2012-05-03 0:32 ` David Miller
2012-05-03 1:11 ` David Miller
2012-05-03 2:14 ` Eric Dumazet
2012-05-03 2:21 ` David Miller
2012-05-03 1:11 ` [PATCH v2 net-next] net: take care of cloned skbs in tcp_try_coalesce() David Miller
2012-05-02 18:05 ` [PATCH " Alexander Duyck
2012-05-02 18:15 ` Eric Dumazet
2012-05-02 20:55 ` Alexander Duyck
2012-05-03 1:52 ` Eric Dumazet
2012-05-03 3:00 ` Alexander Duyck
2012-05-03 3:14 ` Eric Dumazet
2012-05-03 3:28 ` Alexander Duyck
2012-05-01 1:48 ` [PATCH 3/4 v2 net-next] net: make GRO aware of skb->head_frag David Miller
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=4FA16BE7.7030407@hp.com \
--to=rick.jones2@hp.com \
--cc=alexander.duyck@gmail.com \
--cc=alexander.h.duyck@intel.com \
--cc=bhutchings@solarflare.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=herbert@gondor.apana.org.au \
--cc=ilpo.jarvinen@helsinki.fi \
--cc=jeffrey.t.kirsher@intel.com \
--cc=maze@google.com \
--cc=mcarlson@broadcom.com \
--cc=mchan@broadcom.com \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=therbert@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).