From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3wvH7Q6KsMzDqhp for ; Fri, 23 Jun 2017 21:59:46 +1000 (AEST) Message-ID: <1498219181.2611.6.camel@redhat.com> Subject: Re: DNS (?) not working on G5 (64-bit powerpc) (was [net-next,v3,3/3] udp: try to avoid 2 cache miss on dequeue) From: Paolo Abeni To: Michael Ellerman , Hannes Frederic Sowa Cc: "David S. Miller" , Eric Dumazet , netdev@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Fri, 23 Jun 2017 13:59:41 +0200 In-Reply-To: <87r2ybp4ud.fsf@concordia.ellerman.id.au> References: <87shisqihz.fsf@concordia.ellerman.id.au> <1498165026.2503.21.camel@redhat.com> <1498166297.111795.1018373424.5E414246@webmail.messagingengine.com> <87r2ybp4ud.fsf@concordia.ellerman.id.au> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Fri, 2017-06-23 at 16:59 +1000, Michael Ellerman wrote: > Hannes Frederic Sowa writes: > > > On Thu, Jun 22, 2017, at 22:57, Paolo Abeni wrote: > > > > > > Can you please check if the following patch fixes the issue? Only > > > compiled tested here. > > > > > > Thanks!!! > > > --- > > > diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c > > > index 067a607..80d89fe 100644 > > > --- a/net/ipv4/udp.c > > > +++ b/net/ipv4/udp.c > > > @@ -1446,16 +1446,19 @@ static struct sk_buff > > > *__first_packet_length(struct sock *sk, > > >  { > > >   struct sk_buff *skb; > > >   > > > - while ((skb = skb_peek(rcvq)) != NULL && > > > -        udp_lib_checksum_complete(skb)) { > > > - __UDP_INC_STATS(sock_net(sk), UDP_MIB_CSUMERRORS, > > > - IS_UDPLITE(sk)); > > > - __UDP_INC_STATS(sock_net(sk), UDP_MIB_INERRORS, > > > - IS_UDPLITE(sk)); > > > - atomic_inc(&sk->sk_drops); > > > - __skb_unlink(skb, rcvq); > > > - *total += skb->truesize; > > > - kfree_skb(skb); > > > + while ((skb = skb_peek(rcvq)) != NULL) { > > > + if (udp_lib_checksum_complete(skb)) { > > > + __UDP_INC_STATS(sock_net(sk), UDP_MIB_CSUMERRORS, > > > + IS_UDPLITE(sk)); > > > + __UDP_INC_STATS(sock_net(sk), UDP_MIB_INERRORS, > > > + IS_UDPLITE(sk)); > > > + atomic_inc(&sk->sk_drops); > > > + __skb_unlink(skb, rcvq); > > > + *total += skb->truesize; > > > + kfree_skb(skb); > > > + } else { > > > + udp_set_dev_scratch(skb); > > > > It needs a "break;" here. > > > > > + } > > >   } > > >   return skb; > > >  } > > That works! > > $ wget google.com > --2017-06-23 16:56:31-- http://google.com/ > Resolving proxy.pmdw.com (proxy.pmdw.com)... 10.1.2.3 > Connecting to proxy.pmdw.com (proxy.pmdw.com)|10.1.2.3|:3128... connected. > Proxy request sent, awaiting response... 302 Found > Location: http://www.google.com.au/?gfe_rd=cr&ei=n7tMWeb9JYPr8wfg4LXYAQ [following] > --2017-06-23 16:56:31-- http://www.google.com.au/?gfe_rd=cr&ei=n7tMWeb9JYPr8wfg4LXYAQ > Reusing existing connection to proxy.pmdw.com:3128. > Proxy request sent, awaiting response... 200 OK > Length: unspecified [text/html] > Saving to: ‘index.html’ > > > The patch had whitespace issues or something and I had to apply it by > hand, here's what I actually tested. Thank you! I'll submit formally the patch after some more testing. I noticed this version has entered the ppc patchwork, but I think that the formal submission should go towards the net-next tree. Cheers, Paolo