Message ID | alpine.DEB.2.02.1406130111280.1551@tomh.mtv.corp.google.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Hi Tom, On Fri, Jun 13, 2014 at 10:21 AM, Tom Herbert <therbert@google.com> wrote: >> I assume this is the series "[PATCH 0/4] Checksum fixes" >> (marc.info/?l=linux-netdev&m=140261417832399&w=2)? >> > Yes. > >> As I'm not subscribed to netdev, I cannot reply to that thread. >> >> "[PATCH 1/4] net: Fix save software checksum complete" fixes the issue >> for me. >> However, "[PATCH 2/4] udp: call __skb_checksum_complete when doing full >> checksum" reintroduces the exact same bad behavior :-( >> > This implies the problem is happening in UDP path. AFAICT skb->csum is > correct, and I don't seem to be able to reproduce the issue on my setup. > It is possible that an skb copy is happening in which case we don't copy > csum_valid so that checksum_unnecessary would fail in this case. > > Can you try with the patch below. Thanks! > > diff --git a/net/core/skbuff.c b/net/core/skbuff.c > index bf92824..9cd5344 100644 > --- a/net/core/skbuff.c > +++ b/net/core/skbuff.c > @@ -689,6 +689,9 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old) > new->ooo_okay = old->ooo_okay; > new->no_fcs = old->no_fcs; > new->encapsulation = old->encapsulation; > + new->encap_hdr_csum = old->encap_hdr_csum; > + new->csum_valid = old->csum_valid; > + new->csum_complete_sw = old->csum_complete_sw; > #ifdef CONFIG_XFRM > new->sp = secpath_get(old->sp); > #endif Thanks, I applied the series "[PATCH 0/4] Checksum fixes", and the fix above, but it doesn't help. Note that I'm also using NFS root, which doesn't seem to be affected. I can happily run "ls -R /" on the serial console during the 10 s delay in ssh. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RnJvbTogT2YgR2VlcnQgVXl0dGVyaG9ldmVuDQouLi4NCj4gTm90ZSB0aGF0IEknbSBhbHNvIHVz aW5nIE5GUyByb290LCB3aGljaCBkb2Vzbid0IHNlZW0gdG8gYmUgYWZmZWN0ZWQuDQo+IEkgY2Fu IGhhcHBpbHkgcnVuICJscyAtUiAvIiBvbiB0aGUgc2VyaWFsIGNvbnNvbGUgZHVyaW5nIHRoZSAx MCBzIGRlbGF5IGluIHNzaC4NCg0KQXJlIHlvdSBzdXJlIHRoYXQgdGhlIGRlbGF5IGR1cmluZyBz c2ggbG9naW4gaXNuJ3QganVzdA0KYSByZXZlcnNlIEROUyB0aW1lb3V0Pw0KDQoJRGF2aWQNCg0K -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi David, On Fri, Jun 13, 2014 at 10:49 AM, David Laight <David.Laight@aculab.com> wrote: > From: Of Geert Uytterhoeven > ... >> Note that I'm also using NFS root, which doesn't seem to be affected. >> I can happily run "ls -R /" on the serial console during the 10 s delay in ssh. > > Are you sure that the delay during ssh login isn't just > a reverse DNS timeout? Indeed, the ssh server sends a reverse DNS request twice, with 5s in between: 01:01:16.334257 2e:09:0a:00:6d:85 > 00:0c:42:12:75:1d, ethertype IPv4 (0x0800), length 86: <ssh-server-ip>.55318 > <dns-server-ip>.53: 2907+ PTR? <ssh-client-rev-ip>.in-addr.arpa. (44) 01:01:16.337282 00:0c:42:12:75:1d > 2e:09:0a:00:6d:85, ethertype IPv4 (0x0800), length 114: <dns-server-ip>.53 > <ssh-server-ip>.55318: 2907* 1/0/0 PTR <ssh-client-name>. (72) 01:01:16.356440 2e:09:0a:00:6d:85 > 74:d0:2b:c8:05:49, ethertype IPv4 (0x0800), length 66: <ssh-server-ip>.22 > <ssh-client-ip>.53536: Flags [.], ack 2194, win 272, options [nop,nop,TS val 4294938665 ecr 480138541], length 0 01:01:21.342072 2e:09:0a:00:6d:85 > 00:0c:42:12:75:1d, ethertype IPv4 (0x0800), length 86: <ssh-server-ip>.55318 > <dns-server-ip>.53: 2907+ PTR? <ssh-client-rev-ip>.in-addr.arpa. (44) 01:01:21.344844 00:0c:42:12:75:1d > 2e:09:0a:00:6d:85, ethertype IPv4 (0x0800), length 114: <dns-server-ip>.53 > <ssh-server-ip>.55318: 2907* 1/0/0 PTR <ssh-client-name>. (72) 01:01:26.353667 2e:09:0a:00:6d:85 > 74:d0:2b:c8:05:49, ethertype IPv4 (0x0800), length 118: <ssh-server-ip>.22 > <ssh-client-ip>.53536: Flags [P.], seq 1999:2051, ack 2194, win 272, options [nop,nop,TS val 4294939944 ecr 480138541], length 52 Interestingly, I don't see the forward DNS request after that, which does happen in the good case. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RnJvbTogR2VlcnQgVXl0dGVyaG9ldmVuDQo+IEhpIERhdmlkLA0KPiANCj4gT24gRnJpLCBKdW4g MTMsIDIwMTQgYXQgMTA6NDkgQU0sIERhdmlkIExhaWdodCA8RGF2aWQuTGFpZ2h0QGFjdWxhYi5j b20+IHdyb3RlOg0KPiA+IEZyb206IE9mIEdlZXJ0IFV5dHRlcmhvZXZlbg0KPiA+IC4uLg0KPiA+ PiBOb3RlIHRoYXQgSSdtIGFsc28gdXNpbmcgTkZTIHJvb3QsIHdoaWNoIGRvZXNuJ3Qgc2VlbSB0 byBiZSBhZmZlY3RlZC4NCj4gPj4gSSBjYW4gaGFwcGlseSBydW4gImxzIC1SIC8iIG9uIHRoZSBz ZXJpYWwgY29uc29sZSBkdXJpbmcgdGhlIDEwIHMgZGVsYXkgaW4gc3NoLg0KPiA+DQo+ID4gQXJl IHlvdSBzdXJlIHRoYXQgdGhlIGRlbGF5IGR1cmluZyBzc2ggbG9naW4gaXNuJ3QganVzdA0KPiA+ IGEgcmV2ZXJzZSBETlMgdGltZW91dD8NCj4gDQo+IEluZGVlZCwgdGhlIHNzaCBzZXJ2ZXIgc2Vu ZHMgYSByZXZlcnNlIEROUyByZXF1ZXN0IHR3aWNlLCB3aXRoIDVzIGluIGJldHdlZW46DQouLi4g DQo+IEludGVyZXN0aW5nbHksIEkgZG9uJ3Qgc2VlIHRoZSBmb3J3YXJkIEROUyByZXF1ZXN0IGFm dGVyIHRoYXQsIHdoaWNoDQo+IGRvZXMgaGFwcGVuIGluIHRoZSBnb29kIGNhc2UuDQoNClRoZSBm b3J3YXJkcyByZXF1ZXN0IGlzIHByb2JhYmx5IGp1c3QgY29weWluZyBzb21lIHN0cmFuZ2UgY29k ZSBmcm9tICdyc2hkJw0KdGhhdCB0cmllZCB0byB2ZXJpZnkgdGhlIHJldmVyc2UgbG9va3VwIGJ5 IGRvaW5nIGEgZm9yd2FyZHMgbG9va3VwIG9uIHRoZQ0KcmVzdWx0Lg0KVGhhdCBpbiBpdHNlbGYg dXNlZCB0byBjYXVzZSB1cyBncmllZi4NClRoZSBSRE5TIHdvdWxkIChjb3JyZWN0bHkpIGdlbmVy YXRlIGhvc3QuYmFyLmJhei5jby51aywgc2luY2UgdGhlICdkb21haW4nDQppbiBldGMvcmVzb2x2 LmNvbmYgd2FzIGJhci5iYXouY28udWsgdGhlIGZvcndhcmRzIGxvb2t1cCBmaXJzdCB0cmllZA0K aG9zdC5iYXIuYmF6LmNvLnVrLmJhci5iYXouY28udWsgdGhlbiBob3N0LmJhci5iYXouY28udWsu YmF6LmNvLnVrDQpvbmUgb2Ygd2hpY2ggYWx3YXlzIHRpbWVkIG91dCA6LSgNCihXaGVuIHRoZSAn c2VhcmNoJyBjb21tYW5kIHdhcyBhZGRlZCB3ZSBjb3VsZCBhdm9pZCB0aGUgcmVxdWVzdCB0aGF0 DQp0aW1lZCBvdXQuKQ0KDQoJRGF2aWQNCg0K -- To unsubscribe from this list: send the line "unsubscribe linux-sh" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index bf92824..9cd5344 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -689,6 +689,9 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old) new->ooo_okay = old->ooo_okay; new->no_fcs = old->no_fcs; new->encapsulation = old->encapsulation; + new->encap_hdr_csum = old->encap_hdr_csum; + new->csum_valid = old->csum_valid; + new->csum_complete_sw = old->csum_complete_sw; #ifdef CONFIG_XFRM new->sp = secpath_get(old->sp); #endif