> -----Original Message----- > From: David Miller [mailto:da...@davemloft.net] > Sent: Tuesday, April 11, 2017 10:13 PM > To: Haiyang Zhang <haiya...@microsoft.com>; Haiyang Zhang > <haiya...@microsoft.com> > Cc: net...@vger.kernel.org; KY Srinivasan <k...@microsoft.com>; > o...@aepfle.de; vkuzn...@redhat.com; linux-kernel@vger.kernel.org > Subject: Re: [PATCH net-next,1/3] hv_netvsc: Use per socket hash when > available > > From: Haiyang Zhang <haiya...@exchange.microsoft.com> > Date: Sat, 8 Apr 2017 17:53:59 -0700 > > > diff --git a/drivers/net/hyperv/netvsc_drv.c > b/drivers/net/hyperv/netvsc_drv.c > > index f24c289..0a129cb 100644 > > --- a/drivers/net/hyperv/netvsc_drv.c > > +++ b/drivers/net/hyperv/netvsc_drv.c > > @@ -211,9 +211,14 @@ static u16 netvsc_select_queue(struct net_device > *ndev, struct sk_buff *skb, > > int q_idx = sk_tx_queue_get(sk); > > > > if (q_idx < 0 || skb->ooo_okay || q_idx >= num_tx_queues) { > > - u16 hash = __skb_tx_hash(ndev, skb, VRSS_SEND_TAB_SIZE); > > + u16 hash; > > int new_idx; > > > > + if (sk) > > + skb_set_hash_from_sk(skb, sk); > > + > > + hash = __skb_tx_hash(ndev, skb, VRSS_SEND_TAB_SIZE); > > Please do not do this. > > TCP performs this operation for you for every pack it emits. > > And also every socket family that uses skb_set_owner_w() either > directly or indirectly gets this done as well. > > I do not want to see drivers start to get peppered with calls to this > thing. > > Explain the case which is missing that matters, and we can address > that instead. > > Thanks.
Thanks for pointing this out. I did some tests, the skb->hash is indeed set to the sk->sk_txhash by upper layer. I will remove this patch, and re-submit other patches. Thanks, - Haiyang