linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Paul Gortmaker <paul.gortmaker@windriver.com>
To: davem@davemloft.net, eric.dumazet@gmail.com, therbert@google.com
Cc: netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	Paul Gortmaker <paul.gortmaker@windriver.com>
Subject: [PATCH net-next 0/3] Gianfar byte queue limits
Date: Sun, 18 Mar 2012 12:56:24 -0400	[thread overview]
Message-ID: <1332089787-24086-1-git-send-email-paul.gortmaker@windriver.com> (raw)

The BQL support here is unchanged from what I posted earlier as an
RFC[1] -- with the exception of the fact that I'm now happier with
the runtime testing vs. the simple "hey it boots" that I'd done
for the RFC.  Plus I added a couple trivial cleanup patches.

For testing, I made a couple spiders homeless by reviving an ancient
10baseT hub.  I connected an sbc8349 into that, and connected the
yellowing hub into a GigE 16port, which was also connected to the
recipient x86 box.

Gianfar saw the interface as follows:

fsl-gianfar e0024000.ethernet: eth0: mac: 00:a0:1e:a0:26:5a
fsl-gianfar e0024000.ethernet: eth0: Running with NAPI enabled
fsl-gianfar e0024000.ethernet: eth0: RX BD ring size for Q[0]: 256
fsl-gianfar e0024000.ethernet: eth0: TX BD ring size for Q[0]: 256
PHY: mdio@e0024520:19 - Link is Up - 10/Half

With the sbc8349 being diskless, I simply used an scp of /proc/kcore
to the connected x86 box as a rudimentary Tx heavy workload.

BQL data was collected by changing into the dir:

  /sys/devices/e0000000.soc8349/e0024000.ethernet/net/eth0/queues/tx-0/byte_queue_limits

and running the following:

  for i in * ; do echo -n $i": " ; cat $i ; done

Running with the defaults, data like below was typical:

hold_time: 1000
inflight: 4542
limit: 3456
limit_max: 1879048192
limit_min: 0

hold_time: 1000
inflight: 4542
limit: 3378
limit_max: 1879048192
limit_min: 0

i.e. 2 or 3 MTU sized packets in flight and the limit value lying
somewhere between those two values.

The interesting thing is that the interactive speed reported by scp
seemed somewhat erratic, ranging from ~450 to ~700kB/s. (This was
the only traffic on the old junk - perhaps expected oscillations such
as those seen in isolated ARED tests?)  Average speed for 100M was:

104857600 bytes (105 MB) copied, 172.616 s, 607 kB/s

Anyway, back to BQL testing; setting the values as follows:

hold_time: 1000
inflight: 1514
limit: 1400
limit_max: 1400
limit_min: 1000

had the effect of serializing the interface to a single packet, and
the crusty old hub seemed much happier with this arrangement, keeping
a constant speed and achieving the following on a 100MB Tx block:

104857600 bytes (105 MB) copied, 112.52 s, 932 kB/s

It might be interesting to know more about why the defaults suffer
the slowdown, but the hub could possibly be ancient spec violating
trash.  Definitely something that nobody would ever use for anything
today. (aside from contrived tests like this)

But it did give me an example of where I could see the effects of
changing the BQL settings, and I'm reasonably confident they are
working as expected.

Paul.
---

[1] http://lists.openwall.net/netdev/2012/01/06/64

Paul Gortmaker (3):
  gianfar: Add support for byte queue limits.
  gianfar: constify giant block of status descriptor strings
  gianfar: delete orphaned version strings and dead macros

 drivers/net/ethernet/freescale/gianfar.c         |   22 ++++++++++++++++------
 drivers/net/ethernet/freescale/gianfar.h         |    3 ---
 drivers/net/ethernet/freescale/gianfar_ethtool.c |    2 +-
 3 files changed, 17 insertions(+), 10 deletions(-)

-- 
1.7.9.1

             reply	other threads:[~2012-03-18 16:56 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-18 16:56 Paul Gortmaker [this message]
2012-03-18 16:56 ` [PATCH net-next 1/3] gianfar: Add support for byte queue limits Paul Gortmaker
2012-03-18 20:20   ` Eric Dumazet
2012-03-18 21:04     ` Paul Gortmaker
2012-03-18 16:56 ` [PATCH net-next 2/3] gianfar: constify giant block of status descriptor strings Paul Gortmaker
2012-03-18 16:56 ` [PATCH net-next 3/3] gianfar: delete orphaned version strings and dead macros Paul Gortmaker
2012-03-18 20:30 ` [PATCH net-next 0/3] Gianfar byte queue limits Eric Dumazet
2012-03-18 20:50   ` Paul Gortmaker
2012-03-18 21:39 ` [PATCH v2 net-next 0/4] " Paul Gortmaker
2012-03-18 21:39   ` [PATCH net-next 1/4] gianfar: Add support for " Paul Gortmaker
2012-03-18 21:39   ` [PATCH net-next 2/4] gianfar: constify giant block of status descriptor strings Paul Gortmaker
2012-03-18 21:39   ` [PATCH net-next 3/4] gianfar: delete orphaned version strings and dead macros Paul Gortmaker
2012-03-18 21:39   ` [PATCH net-next 4/4] gianfar: use netif_tx_queue_stopped instead of __netif_subqueue_stopped Paul Gortmaker
2012-03-18 21:55     ` Eric Dumazet
2012-03-18 23:24       ` Paul Gortmaker
2012-03-18 23:53         ` Eric Dumazet
2012-03-19 20:46   ` [PATCH v2 net-next 0/4] Gianfar byte queue limits 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=1332089787-24086-1-git-send-email-paul.gortmaker@windriver.com \
    --to=paul.gortmaker@windriver.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --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).