Messages in this thread | | | From | Haiyang Zhang <> | Subject | RE: [PATCH V2,net-next, 1/2] hv_netvsc: Add XDP support | Date | Tue, 21 Jan 2020 13:56:54 +0000 |
| |
> -----Original Message----- > From: linux-hyperv-owner@vger.kernel.org <linux-hyperv- > owner@vger.kernel.org> On Behalf Of David Miller > Sent: Tuesday, January 21, 2020 5:05 AM > To: Haiyang Zhang <haiyangz@microsoft.com> > Cc: sashal@kernel.org; linux-hyperv@vger.kernel.org; netdev@vger.kernel.org; > KY Srinivasan <kys@microsoft.com>; Stephen Hemminger > <sthemmin@microsoft.com>; olaf@aepfle.de; vkuznets > <vkuznets@redhat.com>; linux-kernel@vger.kernel.org > Subject: Re: [PATCH V2,net-next, 1/2] hv_netvsc: Add XDP support > > From: Haiyang Zhang <haiyangz@microsoft.com> > Date: Mon, 20 Jan 2020 14:22:36 -0800 > > > +u32 netvsc_run_xdp(struct net_device *ndev, struct netvsc_channel *nvchan, > > + struct xdp_buff *xdp) > > +{ > > + struct page *page = NULL; > > + void *data = nvchan->rsc.data[0]; > > + u32 len = nvchan->rsc.len[0]; > > + struct bpf_prog *prog; > > + u32 act = XDP_PASS; > > Please use reverse christmas tree ordering of local variables. > > > + xdp->data_hard_start = page_address(page); > > + xdp->data = xdp->data_hard_start + NETVSC_XDP_HDRM; > > + xdp_set_data_meta_invalid(xdp); > > + xdp->data_end = xdp->data + len; > > + xdp->rxq = &nvchan->xdp_rxq; > > + xdp->handle = 0; > > + > > + memcpy(xdp->data, data, len); > > Why can't the program run directly on nvchan->rsc.data[0]? > > This data copy defeats the whole performance gain of using XDP.
Sure I will update this, and the var order.
Thanks - Haiyang
| |