netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net-next PATCH v3 0/6] XDP for virtio_net
@ 2016-11-29 20:05 John Fastabend
  2016-11-30 18:35 ` Michael S. Tsirkin
  0 siblings, 1 reply; 5+ messages in thread
From: John Fastabend @ 2016-11-29 20:05 UTC (permalink / raw)
  To: tgraf, shm, alexei.starovoitov, daniel, davem
  Cc: john.r.fastabend, netdev, bblanco, john.fastabend, brouer

This implements virtio_net for the mergeable buffers and big_packet
modes. I tested this with vhost_net running on qemu and did not see
any issues. For testing num_buf > 1 I added a hack to vhost driver
to only but 100 bytes per buffer.

There are some restrictions for XDP to be enabled and work well
(see patch 3) for more details.

  1. LRO must be off
  2. MTU must be less than PAGE_SIZE
  3. queues must be available to dedicate to XDP
  4. num_bufs received in mergeable buffers must be 1
  5. big_packet mode must have all data on single page

Please review any comments/feedback welcome as always.

v2, fixes rcu usage throughout thanks to Eric and the use of
num_online_cpus() usage thanks to Jakub.

v3, add slowpath patch to handle num_bufs > 1

Thanks,
John
---

John Fastabend (6):
      net: virtio dynamically disable/enable LRO
      net: xdp: add invalid buffer warning
      virtio_net: Add XDP support
      virtio_net: add dedicated XDP transmit queues
      virtio_net: add XDP_TX support
      virtio_net: xdp, add slowpath case for non contiguous buffers


 drivers/net/virtio_net.c |  344 +++++++++++++++++++++++++++++++++++++++++++++-
 include/linux/filter.h   |    1 
 net/core/filter.c        |    6 +
 3 files changed, 346 insertions(+), 5 deletions(-)

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

* Re: [net-next PATCH v3 0/6] XDP for virtio_net
  2016-11-29 20:05 [net-next PATCH v3 0/6] XDP for virtio_net John Fastabend
@ 2016-11-30 18:35 ` Michael S. Tsirkin
  2016-11-30 18:41   ` John Fastabend
  0 siblings, 1 reply; 5+ messages in thread
From: Michael S. Tsirkin @ 2016-11-30 18:35 UTC (permalink / raw)
  To: John Fastabend
  Cc: tgraf, shm, alexei.starovoitov, daniel, davem, john.r.fastabend,
	netdev, bblanco, brouer

On Tue, Nov 29, 2016 at 12:05:20PM -0800, John Fastabend wrote:
> This implements virtio_net for the mergeable buffers and big_packet
> modes. I tested this with vhost_net running on qemu and did not see
> any issues. For testing num_buf > 1 I added a hack to vhost driver
> to only but 100 bytes per buffer.
> 
> There are some restrictions for XDP to be enabled and work well
> (see patch 3) for more details.
> 
>   1. LRO must be off
>   2. MTU must be less than PAGE_SIZE
>   3. queues must be available to dedicate to XDP
>   4. num_bufs received in mergeable buffers must be 1
>   5. big_packet mode must have all data on single page
> 
> Please review any comments/feedback welcome as always.
> 
> v2, fixes rcu usage throughout thanks to Eric and the use of
> num_online_cpus() usage thanks to Jakub.
> 
> v3, add slowpath patch to handle num_bufs > 1
> 
> Thanks,
> John

BTW this is threaded incorrectly: patch 1/6 isn't a reply to 0/6,
patches 2 and on are replies to patch 1.

I'm busy until end of week, I'll review Monday. Sorry about the delay.

> ---
> 
> John Fastabend (6):
>       net: virtio dynamically disable/enable LRO
>       net: xdp: add invalid buffer warning
>       virtio_net: Add XDP support
>       virtio_net: add dedicated XDP transmit queues
>       virtio_net: add XDP_TX support
>       virtio_net: xdp, add slowpath case for non contiguous buffers
> 
> 
>  drivers/net/virtio_net.c |  344 +++++++++++++++++++++++++++++++++++++++++++++-
>  include/linux/filter.h   |    1 
>  net/core/filter.c        |    6 +
>  3 files changed, 346 insertions(+), 5 deletions(-)
> 
> --
> Signature

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

* Re: [net-next PATCH v3 0/6] XDP for virtio_net
  2016-11-30 18:35 ` Michael S. Tsirkin
@ 2016-11-30 18:41   ` John Fastabend
  2016-11-30 18:56     ` Michael S. Tsirkin
  0 siblings, 1 reply; 5+ messages in thread
From: John Fastabend @ 2016-11-30 18:41 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: tgraf, shm, alexei.starovoitov, daniel, davem, john.r.fastabend,
	netdev, bblanco, brouer

On 16-11-30 10:35 AM, Michael S. Tsirkin wrote:
> On Tue, Nov 29, 2016 at 12:05:20PM -0800, John Fastabend wrote:
>> This implements virtio_net for the mergeable buffers and big_packet
>> modes. I tested this with vhost_net running on qemu and did not see
>> any issues. For testing num_buf > 1 I added a hack to vhost driver
>> to only but 100 bytes per buffer.
>>
>> There are some restrictions for XDP to be enabled and work well
>> (see patch 3) for more details.
>>
>>   1. LRO must be off
>>   2. MTU must be less than PAGE_SIZE
>>   3. queues must be available to dedicate to XDP
>>   4. num_bufs received in mergeable buffers must be 1
>>   5. big_packet mode must have all data on single page
>>
>> Please review any comments/feedback welcome as always.
>>
>> v2, fixes rcu usage throughout thanks to Eric and the use of
>> num_online_cpus() usage thanks to Jakub.
>>
>> v3, add slowpath patch to handle num_bufs > 1
>>
>> Thanks,
>> John
> 
> BTW this is threaded incorrectly: patch 1/6 isn't a reply to 0/6,
> patches 2 and on are replies to patch 1.
> 

Ah yep, if you mangle the command line git will send the
cover letter even if you have mangled 'to' email addresses but when
it hits a real patch it aborts. At least on my version of git.

> I'm busy until end of week, I'll review Monday. Sorry about the delay.

In the meantime I'll post a v4 with better commit message (Alexei) and
address a corner cases Jakub pointed out.

> 
>> ---
>>
>> John Fastabend (6):
>>       net: virtio dynamically disable/enable LRO
>>       net: xdp: add invalid buffer warning
>>       virtio_net: Add XDP support
>>       virtio_net: add dedicated XDP transmit queues
>>       virtio_net: add XDP_TX support
>>       virtio_net: xdp, add slowpath case for non contiguous buffers
>>
>>
>>  drivers/net/virtio_net.c |  344 +++++++++++++++++++++++++++++++++++++++++++++-
>>  include/linux/filter.h   |    1 
>>  net/core/filter.c        |    6 +
>>  3 files changed, 346 insertions(+), 5 deletions(-)
>>
>> --
>> Signature

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

* Re: [net-next PATCH v3 0/6] XDP for virtio_net
  2016-11-30 18:41   ` John Fastabend
@ 2016-11-30 18:56     ` Michael S. Tsirkin
  2016-12-01  4:26       ` John Fastabend
  0 siblings, 1 reply; 5+ messages in thread
From: Michael S. Tsirkin @ 2016-11-30 18:56 UTC (permalink / raw)
  To: John Fastabend
  Cc: tgraf, shm, alexei.starovoitov, daniel, davem, john.r.fastabend,
	netdev, bblanco, brouer

On Wed, Nov 30, 2016 at 10:41:04AM -0800, John Fastabend wrote:
> On 16-11-30 10:35 AM, Michael S. Tsirkin wrote:
> > On Tue, Nov 29, 2016 at 12:05:20PM -0800, John Fastabend wrote:
> >> This implements virtio_net for the mergeable buffers and big_packet
> >> modes. I tested this with vhost_net running on qemu and did not see
> >> any issues. For testing num_buf > 1 I added a hack to vhost driver
> >> to only but 100 bytes per buffer.
> >>
> >> There are some restrictions for XDP to be enabled and work well
> >> (see patch 3) for more details.
> >>
> >>   1. LRO must be off
> >>   2. MTU must be less than PAGE_SIZE
> >>   3. queues must be available to dedicate to XDP
> >>   4. num_bufs received in mergeable buffers must be 1
> >>   5. big_packet mode must have all data on single page
> >>
> >> Please review any comments/feedback welcome as always.
> >>
> >> v2, fixes rcu usage throughout thanks to Eric and the use of
> >> num_online_cpus() usage thanks to Jakub.
> >>
> >> v3, add slowpath patch to handle num_bufs > 1
> >>
> >> Thanks,
> >> John
> > 
> > BTW this is threaded incorrectly: patch 1/6 isn't a reply to 0/6,
> > patches 2 and on are replies to patch 1.
> > 
> 
> Ah yep, if you mangle the command line git will send the
> cover letter even if you have mangled 'to' email addresses but when
> it hits a real patch it aborts. At least on my version of git.
> 
> > I'm busy until end of week, I'll review Monday. Sorry about the delay.
> 
> In the meantime I'll post a v4 with better commit message (Alexei) and
> address a corner cases Jakub pointed out.

I did a quick look and found some too, but a detailed review will
have to wait till next week.

> > 
> >> ---
> >>
> >> John Fastabend (6):
> >>       net: virtio dynamically disable/enable LRO
> >>       net: xdp: add invalid buffer warning
> >>       virtio_net: Add XDP support
> >>       virtio_net: add dedicated XDP transmit queues
> >>       virtio_net: add XDP_TX support
> >>       virtio_net: xdp, add slowpath case for non contiguous buffers
> >>
> >>
> >>  drivers/net/virtio_net.c |  344 +++++++++++++++++++++++++++++++++++++++++++++-
> >>  include/linux/filter.h   |    1 
> >>  net/core/filter.c        |    6 +
> >>  3 files changed, 346 insertions(+), 5 deletions(-)
> >>
> >> --
> >> Signature

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

* Re: [net-next PATCH v3 0/6] XDP for virtio_net
  2016-11-30 18:56     ` Michael S. Tsirkin
@ 2016-12-01  4:26       ` John Fastabend
  0 siblings, 0 replies; 5+ messages in thread
From: John Fastabend @ 2016-12-01  4:26 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: tgraf, shm, alexei.starovoitov, daniel, davem, john.r.fastabend,
	netdev, bblanco, brouer

On 16-11-30 10:56 AM, Michael S. Tsirkin wrote:
> On Wed, Nov 30, 2016 at 10:41:04AM -0800, John Fastabend wrote:
>> On 16-11-30 10:35 AM, Michael S. Tsirkin wrote:
>>> On Tue, Nov 29, 2016 at 12:05:20PM -0800, John Fastabend wrote:
>>>> This implements virtio_net for the mergeable buffers and big_packet
>>>> modes. I tested this with vhost_net running on qemu and did not see
>>>> any issues. For testing num_buf > 1 I added a hack to vhost driver
>>>> to only but 100 bytes per buffer.
>>>>
>>>> There are some restrictions for XDP to be enabled and work well
>>>> (see patch 3) for more details.
>>>>
>>>>   1. LRO must be off
>>>>   2. MTU must be less than PAGE_SIZE
>>>>   3. queues must be available to dedicate to XDP
>>>>   4. num_bufs received in mergeable buffers must be 1
>>>>   5. big_packet mode must have all data on single page
>>>>
>>>> Please review any comments/feedback welcome as always.
>>>>
>>>> v2, fixes rcu usage throughout thanks to Eric and the use of
>>>> num_online_cpus() usage thanks to Jakub.
>>>>
>>>> v3, add slowpath patch to handle num_bufs > 1
>>>>
>>>> Thanks,
>>>> John
>>>
>>> BTW this is threaded incorrectly: patch 1/6 isn't a reply to 0/6,
>>> patches 2 and on are replies to patch 1.
>>>
>>
>> Ah yep, if you mangle the command line git will send the
>> cover letter even if you have mangled 'to' email addresses but when
>> it hits a real patch it aborts. At least on my version of git.
>>
>>> I'm busy until end of week, I'll review Monday. Sorry about the delay.
>>
>> In the meantime I'll post a v4 with better commit message (Alexei) and
>> address a corner cases Jakub pointed out.
> 
> I did a quick look and found some too, but a detailed review will
> have to wait till next week.

Thanks! I'll address all the comments and have a v4 by then.

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

end of thread, other threads:[~2016-12-01  4:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-29 20:05 [net-next PATCH v3 0/6] XDP for virtio_net John Fastabend
2016-11-30 18:35 ` Michael S. Tsirkin
2016-11-30 18:41   ` John Fastabend
2016-11-30 18:56     ` Michael S. Tsirkin
2016-12-01  4:26       ` John Fastabend

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).