>From 0aa52d88bdf6bc22fed80beb175a6dfe420dfabd Mon Sep 17 00:00:00 2001
From: Cong Wang <amw...@redhat.com<mailto:amw...@redhat.com>>
Date: Wed, 6 Feb 2013 14:40:36 -0800
Subject: [PATCH] datapath: adjust skb_gso_segment() for calling in rx path

skb_gso_segment() is almost always called in tx path,
except for openvswitch. It calls this function when
it receives the packet and tries to queue it to user-space.
In this special case, the ->ip_summed check inside
skb_gso_segment() is no longer true, as ->ip_summed value
has different meanings on rx path.

This patch adjusts skb_gso_segment() so that we can at least
avoid such warnings on checksum.

Cc: Jesse Gross <je...@nicira.com<mailto:je...@nicira.com>>
Cc: David S. Miller <da...@davemloft.net<mailto:da...@davemloft.net>>
Signed-off-by: Cong Wang <amw...@redhat.com<mailto:amw...@redhat.com>>
Signed-off-by: David S. Miller <da...@davemloft.net<mailto:da...@davemloft.net>>
[jesse: backport to kernels before 3.9 and add to tunnel.c]
Signed-off-by: Jesse Gross <je...@nicira.com<mailto:je...@nicira.com>>
---


...

diff --git a/datapath/tunnel.c b/datapath/tunnel.c
index 6193891..7c2560f 100644
--- a/datapath/tunnel.c
+++ b/datapath/tunnel.c
@@ -435,7 +435,7 @@ static struct sk_buff *handle_offloads(struct sk_buff *skb,
        if (skb_is_gso(skb)) {
                struct sk_buff *nskb;

-               nskb = skb_gso_segment(skb, 0);
+               nskb = __skb_gso_segment(skb, 0, false);
                if (IS_ERR(nskb)) {
                        kfree_skb(skb);
                        err = PTR_ERR(nskb);
--
1.7.9.5


What is the logic of using bool tx_path = false on this call in tunnel.c, as 
this is called on ovs_tnl_send() which is on the tx path?

Is it so that this avoids the (skb->ip_summed != CHECKSUM_PARTIAL) comparison 
that leads to skb_warn_bad_offload(skb)?

If this is the case, how likely is the new comparison (skb->ip_summed == 
CHECKSUM_NONE) in Linux 3.9 to resolve the problem with these warnings?

We have a case in which an OpenStack (grizzly) controller node is filling the 
disk with these kernel warnings and it would be nice to have this resolved. I 
guess turning off GSO on the nic involved should work as an interim solution, 
but it would be nice to understand what is going on here.

  Jarno

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to