diff mbox

TUN device performance regression

Message ID 534BF402.6010505@gmail.com
State RFC, archived
Delegated to: David Miller
Headers show

Commit Message

Vladislav Yasevich April 14, 2014, 2:43 p.m. UTC
On 04/14/2014 07:42 AM, Martin Filip wrote:
>> Hello,
>>
>> I've noticed significant TUN device performance drop between 3.13 and
>> 3.14 kernels, problem seems to persist until current git version.
>>
>> With good kernel I can achieve full 100mbps through openvpn without any
>> problem, with problematic kernel TX performance drops down to ~50kbps.
>>
>> According to git bisect it seems that root of all evil is commit
>> 53d6471cef17262d3ad1c7ce8982a234244f68ec.
>>
>> I can confirm that performance is great again with current kernel when I
>> revert this one.
>>
> I've forgot to mention kernel bug:
> https://bugzilla.kernel.org/show_bug.cgi?id=74051
>

Could you please try this patch.

---
 net/core/dev.c      | 2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Martin Filip April 14, 2014, 2:51 p.m. UTC | #1
Vlad Yasevich píše v Po 14. 04. 2014 v 10:43 -0400:
> On 04/14/2014 07:42 AM, Martin Filip wrote:
> >> Hello,
> >>
> >> I've noticed significant TUN device performance drop between 3.13 and
> >> 3.14 kernels, problem seems to persist until current git version.
> >>
> >> With good kernel I can achieve full 100mbps through openvpn without any
> >> problem, with problematic kernel TX performance drops down to ~50kbps.
> >>
> >> According to git bisect it seems that root of all evil is commit
> >> 53d6471cef17262d3ad1c7ce8982a234244f68ec.
> >>
> >> I can confirm that performance is great again with current kernel when I
> >> revert this one.
> >>
> > I've forgot to mention kernel bug:
> > https://bugzilla.kernel.org/show_bug.cgi?id=74051
> >
> 
> Could you please try this patch.
> 
> ---
>  net/core/dev.c      | 2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/net/core/dev.c b/net/core/dev.c
> index 45fa2f1..6088927 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -2289,7 +2289,7 @@ EXPORT_SYMBOL(skb_checksum_help);
>  __be16 skb_network_protocol(struct sk_buff *skb, int *depth)
>  {
>  	__be16 type = skb->protocol;
> -	int vlan_depth = ETH_HLEN;
> +	int vlan_depth = skb->mac_len;
> 
>  	/* Tunnel gso handlers can set protocol to ethernet. */
>  	if (type == htons(ETH_P_TEB)) {

Hello,

thank you for your quick response. This seems to fix the problem, my
test case worked fine with it!
Marc Haber April 21, 2014, 2 p.m. UTC | #2
On Mon, Apr 14, 2014 at 10:43:14AM -0400, Vlad Yasevich wrote:
> Could you please try this patch.

I was recently bitten by this issue as well and I can confirm that
this patch fixes the issue for me as well in 3.14.1.

Greetings
Marc
diff mbox

Patch

diff --git a/net/core/dev.c b/net/core/dev.c
index 45fa2f1..6088927 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2289,7 +2289,7 @@  EXPORT_SYMBOL(skb_checksum_help);
 __be16 skb_network_protocol(struct sk_buff *skb, int *depth)
 {
 	__be16 type = skb->protocol;
-	int vlan_depth = ETH_HLEN;
+	int vlan_depth = skb->mac_len;

 	/* Tunnel gso handlers can set protocol to ethernet. */
 	if (type == htons(ETH_P_TEB)) {