Thread (8 messages) 8 messages, 2 authors, 2020-01-22

Re: [PATCH V2,net-next, 1/2] hv_netvsc: Add XDP support

From: David Miller <davem@davemloft.net>
Date: 2020-01-21 10:04:59
Also in: linux-hyperv, lkml

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help