All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC] tun, macvtap: higher order allocations for skbs
@ 2015-06-18 10:20 Michael S. Tsirkin
  2015-06-18 10:54 ` Christian Borntraeger
  2015-06-29  4:50 ` Jason Wang
  0 siblings, 2 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2015-06-18 10:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: David S. Miller, Jason Wang, netdev

Needs more testing. Anyone see anything wrong with this?

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 drivers/net/macvtap.c | 2 +-
 drivers/net/tun.c     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index 928f3f4..80e87e4 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -610,7 +610,7 @@ static inline struct sk_buff *macvtap_alloc_skb(struct sock *sk, size_t prepad,
 		linear = len;
 
 	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
-				   err, 0);
+				   err, 1);
 	if (!skb)
 		return NULL;
 
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index cb376b2d..8f2f1e5 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -1069,7 +1069,7 @@ static struct sk_buff *tun_alloc_skb(struct tun_file *tfile,
 		linear = len;
 
 	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
-				   &err, 0);
+				   &err, 1);
 	if (!skb)
 		return ERR_PTR(err);
 
-- 
MST

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

* Re: [PATCH RFC] tun, macvtap: higher order allocations for skbs
  2015-06-18 10:20 [PATCH RFC] tun, macvtap: higher order allocations for skbs Michael S. Tsirkin
@ 2015-06-18 10:54 ` Christian Borntraeger
  2015-06-18 11:13   ` Michael S. Tsirkin
  2015-06-29  4:50 ` Jason Wang
  1 sibling, 1 reply; 5+ messages in thread
From: Christian Borntraeger @ 2015-06-18 10:54 UTC (permalink / raw)
  To: Michael S. Tsirkin, linux-kernel; +Cc: David S. Miller, Jason Wang, netdev

Am 18.06.2015 um 12:20 schrieb Michael S. Tsirkin:
> Needs more testing. Anyone see anything wrong with this?
Can you explain the motivation? 
FWIW, basic networking between two guest over macvtap still
seems to work on s390 so I dont see any obvious regression.

Christian

> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  drivers/net/macvtap.c | 2 +-
>  drivers/net/tun.c     | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
> index 928f3f4..80e87e4 100644
> --- a/drivers/net/macvtap.c
> +++ b/drivers/net/macvtap.c
> @@ -610,7 +610,7 @@ static inline struct sk_buff *macvtap_alloc_skb(struct sock *sk, size_t prepad,
>  		linear = len;
> 
>  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
> -				   err, 0);
> +				   err, 1);
>  	if (!skb)
>  		return NULL;
> 
> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
> index cb376b2d..8f2f1e5 100644
> --- a/drivers/net/tun.c
> +++ b/drivers/net/tun.c
> @@ -1069,7 +1069,7 @@ static struct sk_buff *tun_alloc_skb(struct tun_file *tfile,
>  		linear = len;
> 
>  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
> -				   &err, 0);
> +				   &err, 1);
>  	if (!skb)
>  		return ERR_PTR(err);
> 


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

* Re: [PATCH RFC] tun, macvtap: higher order allocations for skbs
  2015-06-18 10:54 ` Christian Borntraeger
@ 2015-06-18 11:13   ` Michael S. Tsirkin
  0 siblings, 0 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2015-06-18 11:13 UTC (permalink / raw)
  To: Christian Borntraeger; +Cc: linux-kernel, David S. Miller, Jason Wang, netdev

On Thu, Jun 18, 2015 at 12:54:44PM +0200, Christian Borntraeger wrote:
> Am 18.06.2015 um 12:20 schrieb Michael S. Tsirkin:
> > Needs more testing. Anyone see anything wrong with this?
> Can you explain the motivation? 
> FWIW, basic networking between two guest over macvtap still
> seems to work on s390 so I dont see any obvious regression.
> 
> Christian

Shorter fragment list often makes processing in the net stack more
efficient.

> > 
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >  drivers/net/macvtap.c | 2 +-
> >  drivers/net/tun.c     | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
> > index 928f3f4..80e87e4 100644
> > --- a/drivers/net/macvtap.c
> > +++ b/drivers/net/macvtap.c
> > @@ -610,7 +610,7 @@ static inline struct sk_buff *macvtap_alloc_skb(struct sock *sk, size_t prepad,
> >  		linear = len;
> > 
> >  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
> > -				   err, 0);
> > +				   err, 1);
> >  	if (!skb)
> >  		return NULL;
> > 
> > diff --git a/drivers/net/tun.c b/drivers/net/tun.c
> > index cb376b2d..8f2f1e5 100644
> > --- a/drivers/net/tun.c
> > +++ b/drivers/net/tun.c
> > @@ -1069,7 +1069,7 @@ static struct sk_buff *tun_alloc_skb(struct tun_file *tfile,
> >  		linear = len;
> > 
> >  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
> > -				   &err, 0);
> > +				   &err, 1);
> >  	if (!skb)
> >  		return ERR_PTR(err);
> > 

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

* Re: [PATCH RFC] tun, macvtap: higher order allocations for skbs
  2015-06-18 10:20 [PATCH RFC] tun, macvtap: higher order allocations for skbs Michael S. Tsirkin
  2015-06-18 10:54 ` Christian Borntraeger
@ 2015-06-29  4:50 ` Jason Wang
  2015-06-29 10:30   ` Jason Wang
  1 sibling, 1 reply; 5+ messages in thread
From: Jason Wang @ 2015-06-29  4:50 UTC (permalink / raw)
  To: Michael S. Tsirkin, linux-kernel; +Cc: David S. Miller, netdev



On 06/18/2015 06:20 PM, Michael S. Tsirkin wrote:
> Needs more testing. Anyone see anything wrong with this?
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  drivers/net/macvtap.c | 2 +-
>  drivers/net/tun.c     | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
> index 928f3f4..80e87e4 100644
> --- a/drivers/net/macvtap.c
> +++ b/drivers/net/macvtap.c
> @@ -610,7 +610,7 @@ static inline struct sk_buff *macvtap_alloc_skb(struct sock *sk, size_t prepad,
>  		linear = len;
>  
>  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
> -				   err, 0);
> +				   err, 1);
>  	if (!skb)
>  		return NULL;
>  
> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
> index cb376b2d..8f2f1e5 100644
> --- a/drivers/net/tun.c
> +++ b/drivers/net/tun.c
> @@ -1069,7 +1069,7 @@ static struct sk_buff *tun_alloc_skb(struct tun_file *tfile,
>  		linear = len;
>  
>  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
> -				   &err, 0);
> +				   &err, 1);
>  	if (!skb)
>  		return ERR_PTR(err);
>  

Have a round of netperf testing in tun and ixgbe, can see improvement on
packet size 512 and 2048.

TX:
size/session/+thu%/+normalize%
   64/     1/    0%/    0%
   64/     4/    0%/    0%
  512/     1/   +6%/   +7%
  512/     4/   +2%/   +2%
 2048/     1/  +24%/  +50%
 2048/     4/    0%/   +6%
16384/     1/    0%/   -6%
16384/     4/    0%/   -5%
65535/     1/    0%/   -4%
65535/     4/    0%/   -1%
RX:
size/session/+thu%/+normalize%
   64/     1/   -5%/   -4%
   64/     4/   -2%/   -1%
  512/     1/   -7%/   -8%
  512/     4/    0%/    0%
 2048/     1/   +4%/   +7%
 2048/     4/    0%/   +2%
16384/     1/    0%/   +2%
16384/     4/    0%/  +13%
65535/     1/    0%/    0%
65535/     4/    0%/   -1%
TCP_RR:
size/session/+thu%/+normalize%
    1/    25/    0%/    0%
    1/    50/    0%/    0%
   64/    25/    0%/   -1%
   64/    50/    0%/    0%
  256/    25/    0%/    0%
  256/    50/    0%/    0%


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

* Re: [PATCH RFC] tun, macvtap: higher order allocations for skbs
  2015-06-29  4:50 ` Jason Wang
@ 2015-06-29 10:30   ` Jason Wang
  0 siblings, 0 replies; 5+ messages in thread
From: Jason Wang @ 2015-06-29 10:30 UTC (permalink / raw)
  To: Michael S. Tsirkin, linux-kernel; +Cc: David S. Miller, netdev



On 06/29/2015 12:50 PM, Jason Wang wrote:
>
> On 06/18/2015 06:20 PM, Michael S. Tsirkin wrote:
>> Needs more testing. Anyone see anything wrong with this?
>>
>> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
>> ---
>>  drivers/net/macvtap.c | 2 +-
>>  drivers/net/tun.c     | 2 +-
>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
>> index 928f3f4..80e87e4 100644
>> --- a/drivers/net/macvtap.c
>> +++ b/drivers/net/macvtap.c
>> @@ -610,7 +610,7 @@ static inline struct sk_buff *macvtap_alloc_skb(struct sock *sk, size_t prepad,
>>  		linear = len;
>>  
>>  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
>> -				   err, 0);
>> +				   err, 1);
>>  	if (!skb)
>>  		return NULL;
>>  
>> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
>> index cb376b2d..8f2f1e5 100644
>> --- a/drivers/net/tun.c
>> +++ b/drivers/net/tun.c
>> @@ -1069,7 +1069,7 @@ static struct sk_buff *tun_alloc_skb(struct tun_file *tfile,
>>  		linear = len;
>>  
>>  	skb = sock_alloc_send_pskb(sk, prepad + linear, len - linear, noblock,
>> -				   &err, 0);
>> +				   &err, 1);
>>  	if (!skb)
>>  		return ERR_PTR(err);
>>  
> Have a round of netperf testing in tun and ixgbe, can see improvement on
> packet size 512 and 2048.
>
> TX:
> size/session/+thu%/+normalize%
>    64/     1/    0%/    0%
>    64/     4/    0%/    0%
>   512/     1/   +6%/   +7%
>   512/     4/   +2%/   +2%
>  2048/     1/  +24%/  +50%
>  2048/     4/    0%/   +6%
> 16384/     1/    0%/   -6%
> 16384/     4/    0%/   -5%
> 65535/     1/    0%/   -4%
> 65535/     4/    0%/   -1%
> RX:
> size/session/+thu%/+normalize%
>    64/     1/   -5%/   -4%
>    64/     4/   -2%/   -1%
>   512/     1/   -7%/   -8%
>   512/     4/    0%/    0%
>  2048/     1/   +4%/   +7%
>  2048/     4/    0%/   +2%
> 16384/     1/    0%/   +2%
> 16384/     4/    0%/  +13%
> 65535/     1/    0%/    0%
> 65535/     4/    0%/   -1%
> TCP_RR:
> size/session/+thu%/+normalize%
>     1/    25/    0%/    0%
>     1/    50/    0%/    0%
>    64/    25/    0%/   -1%
>    64/    50/    0%/    0%
>   256/    25/    0%/    0%
>   256/    50/    0%/    0%
>

Done another test through pktgen in guest with my tx interrupt patches,
see little regression with this patch:

size/before(pps)/after(pps)
64/578689/573004
8192/332698/322733
16384/241497/237326



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

end of thread, other threads:[~2015-06-29 10:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-18 10:20 [PATCH RFC] tun, macvtap: higher order allocations for skbs Michael S. Tsirkin
2015-06-18 10:54 ` Christian Borntraeger
2015-06-18 11:13   ` Michael S. Tsirkin
2015-06-29  4:50 ` Jason Wang
2015-06-29 10:30   ` Jason Wang

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.