All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP
@ 2018-05-21  8:35 Jason Wang
  2018-05-21  8:35 ` [PATCH net 1/4] virtio-net: correctly redirect linearized packet Jason Wang
                   ` (9 more replies)
  0 siblings, 10 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: virtualization, netdev, linux-kernel

Hi:

Please review the patches that tries to fix sevreal issues of
virtio-net mergeable XDP.

Thanks

Jason Wang (4):
  virtio-net: correctly redirect linearized packet
  virtio-net: correctly transmit XDP buff after linearizing
  virtio-net: reset num_buf to 1 after linearizing packet
  virito-net: fix leaking page for gso packet during mergeable XDP

 drivers/net/virtio_net.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH net 1/4] virtio-net: correctly redirect linearized packet
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
  2018-05-21  8:35 ` [PATCH net 1/4] virtio-net: correctly redirect linearized packet Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21 15:03   ` Michael S. Tsirkin
  2018-05-21 15:03   ` Michael S. Tsirkin
  2018-05-21  8:35 ` [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing Jason Wang
                   ` (7 subsequent siblings)
  9 siblings, 2 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: virtualization, netdev, linux-kernel

After a linearized packet was redirected by XDP, we should not go for
the err path which will try to pop buffers for the next packet and
increase the drop counter. Fixing this by just drop the page refcnt
for the original page.

Fixes: 186b3c998c50 ("virtio-net: support XDP_REDIRECT")
Reported-by: David Ahern <dsahern@gmail.com>
Tested-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 770422e..c15d240 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -787,7 +787,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 			}
 			*xdp_xmit = true;
 			if (unlikely(xdp_page != page))
-				goto err_xdp;
+				put_page(page);
 			rcu_read_unlock();
 			goto xdp_xmit;
 		default:
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH net 1/4] virtio-net: correctly redirect linearized packet
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21  8:35 ` Jason Wang
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: netdev, linux-kernel, virtualization

After a linearized packet was redirected by XDP, we should not go for
the err path which will try to pop buffers for the next packet and
increase the drop counter. Fixing this by just drop the page refcnt
for the original page.

Fixes: 186b3c998c50 ("virtio-net: support XDP_REDIRECT")
Reported-by: David Ahern <dsahern@gmail.com>
Tested-by: David Ahern <dsahern@gmail.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 770422e..c15d240 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -787,7 +787,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 			}
 			*xdp_xmit = true;
 			if (unlikely(xdp_page != page))
-				goto err_xdp;
+				put_page(page);
 			rcu_read_unlock();
 			goto xdp_xmit;
 		default:
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
  2018-05-21  8:35 ` [PATCH net 1/4] virtio-net: correctly redirect linearized packet Jason Wang
  2018-05-21  8:35 ` Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21 15:03   ` Michael S. Tsirkin
  2018-05-21 15:03   ` Michael S. Tsirkin
  2018-05-21  8:35 ` Jason Wang
                   ` (6 subsequent siblings)
  9 siblings, 2 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: virtualization, netdev, linux-kernel, John Fastabend

We should not go for the error path after successfully transmitting a
XDP buffer after linearizing. Since the error path may try to pop and
drop next packet and increase the drop counters. Fixing this by simply
drop the refcnt of original page and go for xmit path.

Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
Cc: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index c15d240..6260d65 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -775,7 +775,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 			}
 			*xdp_xmit = true;
 			if (unlikely(xdp_page != page))
-				goto err_xdp;
+				put_page(page);
 			rcu_read_unlock();
 			goto xdp_xmit;
 		case XDP_REDIRECT:
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
                   ` (2 preceding siblings ...)
  2018-05-21  8:35 ` [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21  8:35 ` [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet Jason Wang
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: netdev, John Fastabend, linux-kernel, virtualization

We should not go for the error path after successfully transmitting a
XDP buffer after linearizing. Since the error path may try to pop and
drop next packet and increase the drop counters. Fixing this by simply
drop the refcnt of original page and go for xmit path.

Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
Cc: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index c15d240..6260d65 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -775,7 +775,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 			}
 			*xdp_xmit = true;
 			if (unlikely(xdp_page != page))
-				goto err_xdp;
+				put_page(page);
 			rcu_read_unlock();
 			goto xdp_xmit;
 		case XDP_REDIRECT:
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
                   ` (4 preceding siblings ...)
  2018-05-21  8:35 ` [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21 14:59   ` Michael S. Tsirkin
  2018-05-21 14:59   ` Michael S. Tsirkin
  2018-05-21  8:35 ` [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP Jason Wang
                   ` (3 subsequent siblings)
  9 siblings, 2 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: virtualization, netdev, linux-kernel

If we successfully linearize the packets, num_buf were set to zero
which was wrong since we now have only 1 buffer to be used for e.g in
the error path of receive_mergeable(). Zero num_buf will lead the code
try to pop the buffers of next packet and drop it. Fixing this by set
num_buf to 1 if we successfully linearize the packet.

Fixes: 4941d472bf95 ("virtio-net: do not reset during XDP set")
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 6260d65..165a922 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -722,6 +722,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 						      &len);
 			if (!xdp_page)
 				goto err_xdp;
+			num_buf = 1;
 			offset = VIRTIO_XDP_HEADROOM;
 		} else {
 			xdp_page = page;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
                   ` (3 preceding siblings ...)
  2018-05-21  8:35 ` Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21  8:35 ` Jason Wang
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: netdev, linux-kernel, virtualization

If we successfully linearize the packets, num_buf were set to zero
which was wrong since we now have only 1 buffer to be used for e.g in
the error path of receive_mergeable(). Zero num_buf will lead the code
try to pop the buffers of next packet and drop it. Fixing this by set
num_buf to 1 if we successfully linearize the packet.

Fixes: 4941d472bf95 ("virtio-net: do not reset during XDP set")
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 6260d65..165a922 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -722,6 +722,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 						      &len);
 			if (!xdp_page)
 				goto err_xdp;
+			num_buf = 1;
 			offset = VIRTIO_XDP_HEADROOM;
 		} else {
 			xdp_page = page;
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
                   ` (5 preceding siblings ...)
  2018-05-21  8:35 ` Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21 15:01     ` Michael S. Tsirkin
  2018-05-21  8:35 ` Jason Wang
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: virtualization, netdev, linux-kernel, John Fastabend

We need to drop refcnt to xdp_page if we see a gso packet. Otherwise
it will be leaked. Fixing this by moving the check of gso packet above
the linearizing logic.

Cc: John Fastabend <john.fastabend@gmail.com>
Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 165a922..f8db809 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -707,6 +707,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 		void *data;
 		u32 act;
 
+		/* Transient failure which in theory could occur if
+		 * in-flight packets from before XDP was enabled reach
+		 * the receive path after XDP is loaded. In practice I
+		 * was not able to create this condition.
+		 */
+		if (unlikely(hdr->hdr.gso_type))
+			goto err_xdp;
+
 		/* This happens when rx buffer size is underestimated
 		 * or headroom is not enough because of the buffer
 		 * was refilled before XDP is set. This should only
@@ -728,14 +736,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 			xdp_page = page;
 		}
 
-		/* Transient failure which in theory could occur if
-		 * in-flight packets from before XDP was enabled reach
-		 * the receive path after XDP is loaded. In practice I
-		 * was not able to create this condition.
-		 */
-		if (unlikely(hdr->hdr.gso_type))
-			goto err_xdp;
-
 		/* Allow consuming headroom but reserve enough space to push
 		 * the descriptor on if we get an XDP_TX return code.
 		 */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
                   ` (6 preceding siblings ...)
  2018-05-21  8:35 ` [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP Jason Wang
@ 2018-05-21  8:35 ` Jason Wang
  2018-05-21 15:04 ` [PATCH net 0/4] Fix several issues of virtio-net " Michael S. Tsirkin
  2018-05-21 15:04 ` Michael S. Tsirkin
  9 siblings, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-21  8:35 UTC (permalink / raw)
  To: mst, jasowang; +Cc: netdev, John Fastabend, linux-kernel, virtualization

We need to drop refcnt to xdp_page if we see a gso packet. Otherwise
it will be leaked. Fixing this by moving the check of gso packet above
the linearizing logic.

Cc: John Fastabend <john.fastabend@gmail.com>
Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/virtio_net.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 165a922..f8db809 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -707,6 +707,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 		void *data;
 		u32 act;
 
+		/* Transient failure which in theory could occur if
+		 * in-flight packets from before XDP was enabled reach
+		 * the receive path after XDP is loaded. In practice I
+		 * was not able to create this condition.
+		 */
+		if (unlikely(hdr->hdr.gso_type))
+			goto err_xdp;
+
 		/* This happens when rx buffer size is underestimated
 		 * or headroom is not enough because of the buffer
 		 * was refilled before XDP is set. This should only
@@ -728,14 +736,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
 			xdp_page = page;
 		}
 
-		/* Transient failure which in theory could occur if
-		 * in-flight packets from before XDP was enabled reach
-		 * the receive path after XDP is loaded. In practice I
-		 * was not able to create this condition.
-		 */
-		if (unlikely(hdr->hdr.gso_type))
-			goto err_xdp;
-
 		/* Allow consuming headroom but reserve enough space to push
 		 * the descriptor on if we get an XDP_TX return code.
 		 */
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet
  2018-05-21  8:35 ` Jason Wang
@ 2018-05-21 14:59   ` Michael S. Tsirkin
  2018-05-22  3:36     ` Jason Wang
  2018-05-22  3:36     ` Jason Wang
  2018-05-21 14:59   ` Michael S. Tsirkin
  1 sibling, 2 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 14:59 UTC (permalink / raw)
  To: Jason Wang; +Cc: virtualization, netdev, linux-kernel

On Mon, May 21, 2018 at 04:35:05PM +0800, Jason Wang wrote:
> If we successfully linearize the packets, num_buf were set to zero
> which was wrong since we now have only 1 buffer to be used for e.g in
> the error path of receive_mergeable(). Zero num_buf will lead the code
> try to pop the buffers of next packet and drop it. Fixing this by set
> num_buf to 1 if we successfully linearize the packet.
> 
> Fixes: 4941d472bf95 ("virtio-net: do not reset during XDP set")
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
>  drivers/net/virtio_net.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 6260d65..165a922 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -722,6 +722,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  						      &len);
>  			if (!xdp_page)
>  				goto err_xdp;
> +			num_buf = 1;

So this is tweaked here for the benefit of err_skb below.
That's confusing and we won't remember to change it
if we change the error handling.

How about fixing the error path?


-        while (--num_buf) {
+        while (num_buf-- > 1) {

Seems more robust to me.


>  			offset = VIRTIO_XDP_HEADROOM;
>  		} else {
>  			xdp_page = page;
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet
  2018-05-21  8:35 ` Jason Wang
  2018-05-21 14:59   ` Michael S. Tsirkin
@ 2018-05-21 14:59   ` Michael S. Tsirkin
  1 sibling, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 14:59 UTC (permalink / raw)
  To: Jason Wang; +Cc: netdev, linux-kernel, virtualization

On Mon, May 21, 2018 at 04:35:05PM +0800, Jason Wang wrote:
> If we successfully linearize the packets, num_buf were set to zero
> which was wrong since we now have only 1 buffer to be used for e.g in
> the error path of receive_mergeable(). Zero num_buf will lead the code
> try to pop the buffers of next packet and drop it. Fixing this by set
> num_buf to 1 if we successfully linearize the packet.
> 
> Fixes: 4941d472bf95 ("virtio-net: do not reset during XDP set")
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
>  drivers/net/virtio_net.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 6260d65..165a922 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -722,6 +722,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  						      &len);
>  			if (!xdp_page)
>  				goto err_xdp;
> +			num_buf = 1;

So this is tweaked here for the benefit of err_skb below.
That's confusing and we won't remember to change it
if we change the error handling.

How about fixing the error path?


-        while (--num_buf) {
+        while (num_buf-- > 1) {

Seems more robust to me.


>  			offset = VIRTIO_XDP_HEADROOM;
>  		} else {
>  			xdp_page = page;
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP
  2018-05-21  8:35 ` [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP Jason Wang
@ 2018-05-21 15:01     ` Michael S. Tsirkin
  0 siblings, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:01 UTC (permalink / raw)
  To: Jason Wang; +Cc: virtualization, netdev, linux-kernel, John Fastabend

On Mon, May 21, 2018 at 04:35:06PM +0800, Jason Wang wrote:
> We need to drop refcnt to xdp_page if we see a gso packet. Otherwise
> it will be leaked. Fixing this by moving the check of gso packet above
> the linearizing logic.
> 
> Cc: John Fastabend <john.fastabend@gmail.com>
> Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
> Signed-off-by: Jason Wang <jasowang@redhat.com>

typo in subject

> ---
>  drivers/net/virtio_net.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 165a922..f8db809 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -707,6 +707,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  		void *data;
>  		u32 act;
>  
> +		/* Transient failure which in theory could occur if
> +		 * in-flight packets from before XDP was enabled reach
> +		 * the receive path after XDP is loaded. In practice I
> +		 * was not able to create this condition.

BTW we should probably drop the last sentence. It says in theory, should be enough.

> +		 */
> +		if (unlikely(hdr->hdr.gso_type))
> +			goto err_xdp;
> +
>  		/* This happens when rx buffer size is underestimated
>  		 * or headroom is not enough because of the buffer
>  		 * was refilled before XDP is set. This should only
> @@ -728,14 +736,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  			xdp_page = page;
>  		}
>  
> -		/* Transient failure which in theory could occur if
> -		 * in-flight packets from before XDP was enabled reach
> -		 * the receive path after XDP is loaded. In practice I
> -		 * was not able to create this condition.
> -		 */
> -		if (unlikely(hdr->hdr.gso_type))
> -			goto err_xdp;
> -
>  		/* Allow consuming headroom but reserve enough space to push
>  		 * the descriptor on if we get an XDP_TX return code.
>  		 */
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP
@ 2018-05-21 15:01     ` Michael S. Tsirkin
  0 siblings, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:01 UTC (permalink / raw)
  To: Jason Wang; +Cc: netdev, John Fastabend, linux-kernel, virtualization

On Mon, May 21, 2018 at 04:35:06PM +0800, Jason Wang wrote:
> We need to drop refcnt to xdp_page if we see a gso packet. Otherwise
> it will be leaked. Fixing this by moving the check of gso packet above
> the linearizing logic.
> 
> Cc: John Fastabend <john.fastabend@gmail.com>
> Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
> Signed-off-by: Jason Wang <jasowang@redhat.com>

typo in subject

> ---
>  drivers/net/virtio_net.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 165a922..f8db809 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -707,6 +707,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  		void *data;
>  		u32 act;
>  
> +		/* Transient failure which in theory could occur if
> +		 * in-flight packets from before XDP was enabled reach
> +		 * the receive path after XDP is loaded. In practice I
> +		 * was not able to create this condition.

BTW we should probably drop the last sentence. It says in theory, should be enough.

> +		 */
> +		if (unlikely(hdr->hdr.gso_type))
> +			goto err_xdp;
> +
>  		/* This happens when rx buffer size is underestimated
>  		 * or headroom is not enough because of the buffer
>  		 * was refilled before XDP is set. This should only
> @@ -728,14 +736,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  			xdp_page = page;
>  		}
>  
> -		/* Transient failure which in theory could occur if
> -		 * in-flight packets from before XDP was enabled reach
> -		 * the receive path after XDP is loaded. In practice I
> -		 * was not able to create this condition.
> -		 */
> -		if (unlikely(hdr->hdr.gso_type))
> -			goto err_xdp;
> -
>  		/* Allow consuming headroom but reserve enough space to push
>  		 * the descriptor on if we get an XDP_TX return code.
>  		 */
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 1/4] virtio-net: correctly redirect linearized packet
  2018-05-21  8:35 ` Jason Wang
  2018-05-21 15:03   ` Michael S. Tsirkin
@ 2018-05-21 15:03   ` Michael S. Tsirkin
  1 sibling, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:03 UTC (permalink / raw)
  To: Jason Wang; +Cc: virtualization, netdev, linux-kernel

On Mon, May 21, 2018 at 04:35:03PM +0800, Jason Wang wrote:
> After a linearized packet was redirected by XDP, we should not go for
> the err path which will try to pop buffers for the next packet and
> increase the drop counter. Fixing this by just drop the page refcnt
> for the original page.
> 
> Fixes: 186b3c998c50 ("virtio-net: support XDP_REDIRECT")
> Reported-by: David Ahern <dsahern@gmail.com>
> Tested-by: David Ahern <dsahern@gmail.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> ---
>  drivers/net/virtio_net.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 770422e..c15d240 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -787,7 +787,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  			}
>  			*xdp_xmit = true;
>  			if (unlikely(xdp_page != page))
> -				goto err_xdp;
> +				put_page(page);
>  			rcu_read_unlock();
>  			goto xdp_xmit;
>  		default:
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 1/4] virtio-net: correctly redirect linearized packet
  2018-05-21  8:35 ` Jason Wang
@ 2018-05-21 15:03   ` Michael S. Tsirkin
  2018-05-21 15:03   ` Michael S. Tsirkin
  1 sibling, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:03 UTC (permalink / raw)
  To: Jason Wang; +Cc: netdev, linux-kernel, virtualization

On Mon, May 21, 2018 at 04:35:03PM +0800, Jason Wang wrote:
> After a linearized packet was redirected by XDP, we should not go for
> the err path which will try to pop buffers for the next packet and
> increase the drop counter. Fixing this by just drop the page refcnt
> for the original page.
> 
> Fixes: 186b3c998c50 ("virtio-net: support XDP_REDIRECT")
> Reported-by: David Ahern <dsahern@gmail.com>
> Tested-by: David Ahern <dsahern@gmail.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> ---
>  drivers/net/virtio_net.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 770422e..c15d240 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -787,7 +787,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  			}
>  			*xdp_xmit = true;
>  			if (unlikely(xdp_page != page))
> -				goto err_xdp;
> +				put_page(page);
>  			rcu_read_unlock();
>  			goto xdp_xmit;
>  		default:
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing
  2018-05-21  8:35 ` [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing Jason Wang
  2018-05-21 15:03   ` Michael S. Tsirkin
@ 2018-05-21 15:03   ` Michael S. Tsirkin
  1 sibling, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:03 UTC (permalink / raw)
  To: Jason Wang; +Cc: virtualization, netdev, linux-kernel, John Fastabend

On Mon, May 21, 2018 at 04:35:04PM +0800, Jason Wang wrote:
> We should not go for the error path after successfully transmitting a
> XDP buffer after linearizing. Since the error path may try to pop and
> drop next packet and increase the drop counters. Fixing this by simply
> drop the refcnt of original page and go for xmit path.
> 
> Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
> Cc: John Fastabend <john.fastabend@gmail.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> ---
>  drivers/net/virtio_net.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index c15d240..6260d65 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -775,7 +775,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  			}
>  			*xdp_xmit = true;
>  			if (unlikely(xdp_page != page))
> -				goto err_xdp;
> +				put_page(page);
>  			rcu_read_unlock();
>  			goto xdp_xmit;
>  		case XDP_REDIRECT:
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing
  2018-05-21  8:35 ` [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing Jason Wang
@ 2018-05-21 15:03   ` Michael S. Tsirkin
  2018-05-21 15:03   ` Michael S. Tsirkin
  1 sibling, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:03 UTC (permalink / raw)
  To: Jason Wang; +Cc: netdev, John Fastabend, linux-kernel, virtualization

On Mon, May 21, 2018 at 04:35:04PM +0800, Jason Wang wrote:
> We should not go for the error path after successfully transmitting a
> XDP buffer after linearizing. Since the error path may try to pop and
> drop next packet and increase the drop counters. Fixing this by simply
> drop the refcnt of original page and go for xmit path.
> 
> Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
> Cc: John Fastabend <john.fastabend@gmail.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>

Acked-by: Michael S. Tsirkin <mst@redhat.com>

> ---
>  drivers/net/virtio_net.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index c15d240..6260d65 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -775,7 +775,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>  			}
>  			*xdp_xmit = true;
>  			if (unlikely(xdp_page != page))
> -				goto err_xdp;
> +				put_page(page);
>  			rcu_read_unlock();
>  			goto xdp_xmit;
>  		case XDP_REDIRECT:
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
                   ` (7 preceding siblings ...)
  2018-05-21  8:35 ` Jason Wang
@ 2018-05-21 15:04 ` Michael S. Tsirkin
  2018-05-21 15:04 ` Michael S. Tsirkin
  9 siblings, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:04 UTC (permalink / raw)
  To: Jason Wang; +Cc: virtualization, netdev, linux-kernel

On Mon, May 21, 2018 at 04:35:02PM +0800, Jason Wang wrote:
> Hi:
> 
> Please review the patches that tries to fix sevreal issues of
> virtio-net mergeable XDP.
> 
> Thanks

I think we should do 3/4 differently.
The rest looks good, and probably needed on stable.

Thanks!

> Jason Wang (4):
>   virtio-net: correctly redirect linearized packet
>   virtio-net: correctly transmit XDP buff after linearizing
>   virtio-net: reset num_buf to 1 after linearizing packet
>   virito-net: fix leaking page for gso packet during mergeable XDP
> 
>  drivers/net/virtio_net.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP
  2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
                   ` (8 preceding siblings ...)
  2018-05-21 15:04 ` [PATCH net 0/4] Fix several issues of virtio-net " Michael S. Tsirkin
@ 2018-05-21 15:04 ` Michael S. Tsirkin
  9 siblings, 0 replies; 23+ messages in thread
From: Michael S. Tsirkin @ 2018-05-21 15:04 UTC (permalink / raw)
  To: Jason Wang; +Cc: netdev, linux-kernel, virtualization

On Mon, May 21, 2018 at 04:35:02PM +0800, Jason Wang wrote:
> Hi:
> 
> Please review the patches that tries to fix sevreal issues of
> virtio-net mergeable XDP.
> 
> Thanks

I think we should do 3/4 differently.
The rest looks good, and probably needed on stable.

Thanks!

> Jason Wang (4):
>   virtio-net: correctly redirect linearized packet
>   virtio-net: correctly transmit XDP buff after linearizing
>   virtio-net: reset num_buf to 1 after linearizing packet
>   virito-net: fix leaking page for gso packet during mergeable XDP
> 
>  drivers/net/virtio_net.c | 21 +++++++++++----------
>  1 file changed, 11 insertions(+), 10 deletions(-)
> 
> -- 
> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet
  2018-05-21 14:59   ` Michael S. Tsirkin
  2018-05-22  3:36     ` Jason Wang
@ 2018-05-22  3:36     ` Jason Wang
  1 sibling, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-22  3:36 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: virtualization, netdev, linux-kernel



On 2018年05月21日 22:59, Michael S. Tsirkin wrote:
> On Mon, May 21, 2018 at 04:35:05PM +0800, Jason Wang wrote:
>> If we successfully linearize the packets, num_buf were set to zero
>> which was wrong since we now have only 1 buffer to be used for e.g in
>> the error path of receive_mergeable(). Zero num_buf will lead the code
>> try to pop the buffers of next packet and drop it. Fixing this by set
>> num_buf to 1 if we successfully linearize the packet.
>>
>> Fixes: 4941d472bf95 ("virtio-net: do not reset during XDP set")
>> Signed-off-by: Jason Wang <jasowang@redhat.com>
>> ---
>>   drivers/net/virtio_net.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>> index 6260d65..165a922 100644
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -722,6 +722,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>>   						      &len);
>>   			if (!xdp_page)
>>   				goto err_xdp;
>> +			num_buf = 1;
> So this is tweaked here for the benefit of err_skb below.
> That's confusing and we won't remember to change it
> if we change the error handling.
>
> How about fixing the error path?
>
>
> -        while (--num_buf) {
> +        while (num_buf-- > 1) {
>
> Seems more robust to me.

Looks good, will do this in V2.

Thanks

>
>>   			offset = VIRTIO_XDP_HEADROOM;
>>   		} else {
>>   			xdp_page = page;
>> -- 
>> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet
  2018-05-21 14:59   ` Michael S. Tsirkin
@ 2018-05-22  3:36     ` Jason Wang
  2018-05-22  3:36     ` Jason Wang
  1 sibling, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-22  3:36 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: netdev, linux-kernel, virtualization



On 2018年05月21日 22:59, Michael S. Tsirkin wrote:
> On Mon, May 21, 2018 at 04:35:05PM +0800, Jason Wang wrote:
>> If we successfully linearize the packets, num_buf were set to zero
>> which was wrong since we now have only 1 buffer to be used for e.g in
>> the error path of receive_mergeable(). Zero num_buf will lead the code
>> try to pop the buffers of next packet and drop it. Fixing this by set
>> num_buf to 1 if we successfully linearize the packet.
>>
>> Fixes: 4941d472bf95 ("virtio-net: do not reset during XDP set")
>> Signed-off-by: Jason Wang <jasowang@redhat.com>
>> ---
>>   drivers/net/virtio_net.c | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>> index 6260d65..165a922 100644
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -722,6 +722,7 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>>   						      &len);
>>   			if (!xdp_page)
>>   				goto err_xdp;
>> +			num_buf = 1;
> So this is tweaked here for the benefit of err_skb below.
> That's confusing and we won't remember to change it
> if we change the error handling.
>
> How about fixing the error path?
>
>
> -        while (--num_buf) {
> +        while (num_buf-- > 1) {
>
> Seems more robust to me.

Looks good, will do this in V2.

Thanks

>
>>   			offset = VIRTIO_XDP_HEADROOM;
>>   		} else {
>>   			xdp_page = page;
>> -- 
>> 2.7.4

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP
  2018-05-21 15:01     ` Michael S. Tsirkin
  (?)
  (?)
@ 2018-05-22  3:37     ` Jason Wang
  -1 siblings, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-22  3:37 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: virtualization, netdev, linux-kernel, John Fastabend



On 2018年05月21日 23:01, Michael S. Tsirkin wrote:
> On Mon, May 21, 2018 at 04:35:06PM +0800, Jason Wang wrote:
>> We need to drop refcnt to xdp_page if we see a gso packet. Otherwise
>> it will be leaked. Fixing this by moving the check of gso packet above
>> the linearizing logic.
>>
>> Cc: John Fastabend <john.fastabend@gmail.com>
>> Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
>> Signed-off-by: Jason Wang <jasowang@redhat.com>
> typo in subject

Let me fix it in V2.

>> ---
>>   drivers/net/virtio_net.c | 16 ++++++++--------
>>   1 file changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>> index 165a922..f8db809 100644
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -707,6 +707,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>>   		void *data;
>>   		u32 act;
>>   
>> +		/* Transient failure which in theory could occur if
>> +		 * in-flight packets from before XDP was enabled reach
>> +		 * the receive path after XDP is loaded. In practice I
>> +		 * was not able to create this condition.
> BTW we should probably drop the last sentence. It says in theory, should be enough.

Ok.

Thanks

>> +		 */
>> +		if (unlikely(hdr->hdr.gso_type))
>> +			goto err_xdp;
>> +
>>   		/* This happens when rx buffer size is underestimated
>>   		 * or headroom is not enough because of the buffer
>>   		 * was refilled before XDP is set. This should only
>> @@ -728,14 +736,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>>   			xdp_page = page;
>>   		}
>>   
>> -		/* Transient failure which in theory could occur if
>> -		 * in-flight packets from before XDP was enabled reach
>> -		 * the receive path after XDP is loaded. In practice I
>> -		 * was not able to create this condition.
>> -		 */
>> -		if (unlikely(hdr->hdr.gso_type))
>> -			goto err_xdp;
>> -
>>   		/* Allow consuming headroom but reserve enough space to push
>>   		 * the descriptor on if we get an XDP_TX return code.
>>   		 */
>> -- 
>> 2.7.4

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP
  2018-05-21 15:01     ` Michael S. Tsirkin
  (?)
@ 2018-05-22  3:37     ` Jason Wang
  -1 siblings, 0 replies; 23+ messages in thread
From: Jason Wang @ 2018-05-22  3:37 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: netdev, John Fastabend, linux-kernel, virtualization



On 2018年05月21日 23:01, Michael S. Tsirkin wrote:
> On Mon, May 21, 2018 at 04:35:06PM +0800, Jason Wang wrote:
>> We need to drop refcnt to xdp_page if we see a gso packet. Otherwise
>> it will be leaked. Fixing this by moving the check of gso packet above
>> the linearizing logic.
>>
>> Cc: John Fastabend <john.fastabend@gmail.com>
>> Fixes: 72979a6c3590 ("virtio_net: xdp, add slowpath case for non contiguous buffers")
>> Signed-off-by: Jason Wang <jasowang@redhat.com>
> typo in subject

Let me fix it in V2.

>> ---
>>   drivers/net/virtio_net.c | 16 ++++++++--------
>>   1 file changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
>> index 165a922..f8db809 100644
>> --- a/drivers/net/virtio_net.c
>> +++ b/drivers/net/virtio_net.c
>> @@ -707,6 +707,14 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>>   		void *data;
>>   		u32 act;
>>   
>> +		/* Transient failure which in theory could occur if
>> +		 * in-flight packets from before XDP was enabled reach
>> +		 * the receive path after XDP is loaded. In practice I
>> +		 * was not able to create this condition.
> BTW we should probably drop the last sentence. It says in theory, should be enough.

Ok.

Thanks

>> +		 */
>> +		if (unlikely(hdr->hdr.gso_type))
>> +			goto err_xdp;
>> +
>>   		/* This happens when rx buffer size is underestimated
>>   		 * or headroom is not enough because of the buffer
>>   		 * was refilled before XDP is set. This should only
>> @@ -728,14 +736,6 @@ static struct sk_buff *receive_mergeable(struct net_device *dev,
>>   			xdp_page = page;
>>   		}
>>   
>> -		/* Transient failure which in theory could occur if
>> -		 * in-flight packets from before XDP was enabled reach
>> -		 * the receive path after XDP is loaded. In practice I
>> -		 * was not able to create this condition.
>> -		 */
>> -		if (unlikely(hdr->hdr.gso_type))
>> -			goto err_xdp;
>> -
>>   		/* Allow consuming headroom but reserve enough space to push
>>   		 * the descriptor on if we get an XDP_TX return code.
>>   		 */
>> -- 
>> 2.7.4

_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2018-05-22  3:37 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-21  8:35 [PATCH net 0/4] Fix several issues of virtio-net mergeable XDP Jason Wang
2018-05-21  8:35 ` [PATCH net 1/4] virtio-net: correctly redirect linearized packet Jason Wang
2018-05-21  8:35 ` Jason Wang
2018-05-21 15:03   ` Michael S. Tsirkin
2018-05-21 15:03   ` Michael S. Tsirkin
2018-05-21  8:35 ` [PATCH net 2/4] virtio-net: correctly transmit XDP buff after linearizing Jason Wang
2018-05-21 15:03   ` Michael S. Tsirkin
2018-05-21 15:03   ` Michael S. Tsirkin
2018-05-21  8:35 ` Jason Wang
2018-05-21  8:35 ` [PATCH net 3/4] virtio-net: reset num_buf to 1 after linearizing packet Jason Wang
2018-05-21  8:35 ` Jason Wang
2018-05-21 14:59   ` Michael S. Tsirkin
2018-05-22  3:36     ` Jason Wang
2018-05-22  3:36     ` Jason Wang
2018-05-21 14:59   ` Michael S. Tsirkin
2018-05-21  8:35 ` [PATCH net 4/4] virito-net: fix leaking page for gso packet during mergeable XDP Jason Wang
2018-05-21 15:01   ` Michael S. Tsirkin
2018-05-21 15:01     ` Michael S. Tsirkin
2018-05-22  3:37     ` Jason Wang
2018-05-22  3:37     ` Jason Wang
2018-05-21  8:35 ` Jason Wang
2018-05-21 15:04 ` [PATCH net 0/4] Fix several issues of virtio-net " Michael S. Tsirkin
2018-05-21 15:04 ` Michael S. Tsirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.