Re: [PATCH net-next 07/11] tuntap: move XDP flushing out of tun_do_xdp()
From: Jason Wang <hidden>
Date: 2018-09-07 03:31:37
On 2018年09月07日 01:48, Michael S. Tsirkin wrote:
On Thu, Sep 06, 2018 at 12:05:22PM +0800, Jason Wang wrote:quoted
This will allow adding batch flushing on top. Signed-off-by: Jason Wang <redacted> --- drivers/net/tun.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 21b125020b3b..ff1cbf3ebd50 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c@@ -1646,7 +1646,6 @@ static u32 tun_do_xdp(struct tun_struct *tun, switch (act) { case XDP_REDIRECT: *err = xdp_do_redirect(tun->dev, xdp, xdp_prog); - xdp_do_flush_map(); if (*err) break; goto out;@@ -1735,6 +1734,9 @@ static struct sk_buff *tun_build_skb(struct tun_struct *tun, act = tun_do_xdp(tun, tfile, xdp_prog, &xdp, &err); if (err) goto err_xdp; + + if (act == XDP_REDIRECT) + xdp_do_flush_map(); if (act != XDP_PASS) goto out;At this point the switch statement which used to contain all XDP things seems to be gone completely. Just rewrite with a bunch of if statements and all xdp handling spread out to where it makes sense?
But tun_do_xdp() will be reused in the batching path. Thanks
quoted
-- 2.17.1
_______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization