From: Andrew Gallatin <gallatin@myri.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, Andrew Gallatin <gallatin@myri.com>
Subject: [PATCH net-next 0/1] fix vlan transmit performance
Date: Thu, 6 Dec 2012 15:54:55 -0500 [thread overview]
Message-ID: <1354827296-12009-1-git-send-email-gallatin@myri.com> (raw)
Hi,
When doing some 10GbE perf measurments on very old athlon64
machines with myri10ge, I noticed that I was seeing CPU saturation
when transmitting vlan tagged traffic. I think I traced the
problem to this line in netif_skb_features():
features &= (skb->dev->vlan_features | NETIF_F_HW_VLAN_TX);
The problem seems to be that packets travel through this function
twice, first on their way to the vlan xmit handler, and then on
their way to the backing device's xmit handler. On the first
pass, "skb->dev" is the vlan device, and skb->dev->vlan_features
is blank. This causes netif_skb_features() to strip the offloads
away.
The following patch (just copy dev->features to dev->vlan_features in
vlan_dev_init()) seems to be the simplest way to fix it. Perhaps this
is wrong, and there is a better way? Given that this has apparently
been broken for nearly 2 years (since f01a5236), I'm worried that
either I'm doing something wrong in myri10ge, or that I'm missing
something in general.
At any rate, performance jumps from 5.6Gb/s with one CPU entirely
saturated on the sender, to 9Gb/s with idle time:
Recv Send Send Utilization Service Demand
Socket Socket Message Elapsed Send Recv Send Recv
Size Size Size Time Throughput local remote local remote
bytes bytes bytes secs. 10^6bits/s % S % S us/KB us/KB
before:
87380 65536 65536 10.00 5660.66 25.54 51.41 1.478 1.488
after:
87380 65536 65536 10.00 9081.39 15.66 76.42 0.565 1.379
Andrew Gallatin (1):
vlan: restore offload use on vlan transmit
net/8021q/vlan_dev.c | 1 +
1 file changed, 1 insertion(+)
--
1.7.9.5
next reply other threads:[~2012-12-06 20:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-06 20:54 Andrew Gallatin [this message]
2012-12-06 20:54 ` [PATCH net-next 1/1] vlan: restore offload use on vlan transmit Andrew Gallatin
2012-12-06 23:43 ` Ben Hutchings
2012-12-06 23:42 ` [PATCH net-next 0/1] fix vlan transmit performance Ben Hutchings
2012-12-07 0:10 ` Andrew Gallatin
2012-12-07 17:32 ` Andrew Gallatin
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=1354827296-12009-1-git-send-email-gallatin@myri.com \
--to=gallatin@myri.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/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