mbox series

[v3,00/11] packed ring virtio-net backends support

Message ID 1550064346-17012-1-git-send-email-wexu@redhat.com
Headers show
Series packed ring virtio-net backends support | expand

Message

Wei Xu Feb. 13, 2019, 1:25 p.m. UTC
From: Wei Xu <wexu@redhat.com>

https://github.com/Whishay/qemu.git 

Userspace and vhost-net backedn test has been done with upstream kernel
in guest.

v2->v3
    v2/01 - drop it since the header has been synchronized from kernel.(mst & jason)
    v3/01 - rename 'avail_wrap_counter' to 'last_avail_wrap_counter',
            'event_wrap_counter' to 'avail_wrap_counter' to make it easier
            to understand.(Jason)
          - revise commit message.(Jason)
    v3/02 - split packed ring areas size calculation to next patch.(Jason)
            to not break bisect(Jason).
    v3/03 - initialize packed ring region with correct size and attribute.
          - remove unnecessary 'else' checks. (Jason)
    v3/06 - add commit log.
          - replace 'event_wrap-counter' with 'avail_wrap_counter'.
          - merge common memory cache size check to virtqueue_get_avail_bytes().(Jason)
          - revise memory barrier comment.(Jason) 
          - check indirect descriptors by desc.len/sizeof(desc).(Jason)
          - flip wrap counter with '^=1'.(Jason)
    v3/07 - move desc.id/len initialization to the declaration.(Jason)
          - flip wrap counter '!' with '^=1'.(Jason)
          - add memory barrier comments in commit message.
    v3/08 - use offsetof() when writing cache.(Jason)
          - avoid duplicated memory region write when turning off event_idx
            supported notification.(Jason)
          - add commit log.(Jason)
          - add avail & last_avail wrap counter difference description in commit log.
    v3/09 - remove unnecessary used/avail idx/wrap-counter from subsection.
          - put new subsection to the end of vmstate_virtio.(Jason)
          - squash the two userspace and vhost-net migration patches in v2.(Jason)
    v3/10 - reword commit message.
          - this is a help not a bug fix so I would like to keep it as a
            separate patch still.(Proposed a merge it by Jason)
          - the virtqueue_fill() is also not like an API so I would prefer not
            to touch it, please correct me if I did not get it in the right
            way.(Proposed a squash by Jason)
    v3/11 - squash feature bits for user space and vhost kernel/user backends.
          - enable packed ring feature bit provision on host by default.(Jason)

Wei Xu (11):
  virtio: rename structure for packed ring
  virtio: device/driver area size calculation helper for split ring
  virtio: initialize packed ring region
  virtio: initialize wrap counter for packed ring
  virtio: queue/descriptor check helpers for packed ring
  virtio: get avail bytes check for packed ring
  virtio: fill/flush/pop for packed ring
  virtio: event suppression support for packed ring
  virtio-net: update the head descriptor in a chain lastly
  virtio: migration support for packed ring
  virtio: CLI and provide packed ring feature bit by default

 hw/net/vhost_net.c         |   2 +
 hw/net/virtio-net.c        |  11 +-
 hw/virtio/virtio.c         | 798 +++++++++++++++++++++++++++++++++++++++++----
 include/hw/virtio/virtio.h |   4 +-
 4 files changed, 757 insertions(+), 58 deletions(-)

Comments

Michael S. Tsirkin Feb. 13, 2019, 2:17 p.m. UTC | #1
On Wed, Feb 13, 2019 at 08:25:35AM -0500, wexu@redhat.com wrote:
> From: Wei Xu <wexu@redhat.com>
> 
> https://github.com/Whishay/qemu.git 
> 
> Userspace and vhost-net backedn test has been done with upstream kernel
> in guest.

Just a general comment: please format *all* patches
with --subject-prefix "PATCH v3", or with -v3.

Do not manually change patch 0 subject adding version there.

This makes it possible to figure out where does each patch go.


> v2->v3
>     v2/01 - drop it since the header has been synchronized from kernel.(mst & jason)
>     v3/01 - rename 'avail_wrap_counter' to 'last_avail_wrap_counter',
>             'event_wrap_counter' to 'avail_wrap_counter' to make it easier
>             to understand.(Jason)
>           - revise commit message.(Jason)
>     v3/02 - split packed ring areas size calculation to next patch.(Jason)
>             to not break bisect(Jason).
>     v3/03 - initialize packed ring region with correct size and attribute.
>           - remove unnecessary 'else' checks. (Jason)
>     v3/06 - add commit log.
>           - replace 'event_wrap-counter' with 'avail_wrap_counter'.
>           - merge common memory cache size check to virtqueue_get_avail_bytes().(Jason)
>           - revise memory barrier comment.(Jason) 
>           - check indirect descriptors by desc.len/sizeof(desc).(Jason)
>           - flip wrap counter with '^=1'.(Jason)
>     v3/07 - move desc.id/len initialization to the declaration.(Jason)
>           - flip wrap counter '!' with '^=1'.(Jason)
>           - add memory barrier comments in commit message.
>     v3/08 - use offsetof() when writing cache.(Jason)
>           - avoid duplicated memory region write when turning off event_idx
>             supported notification.(Jason)
>           - add commit log.(Jason)
>           - add avail & last_avail wrap counter difference description in commit log.
>     v3/09 - remove unnecessary used/avail idx/wrap-counter from subsection.
>           - put new subsection to the end of vmstate_virtio.(Jason)
>           - squash the two userspace and vhost-net migration patches in v2.(Jason)
>     v3/10 - reword commit message.
>           - this is a help not a bug fix so I would like to keep it as a
>             separate patch still.(Proposed a merge it by Jason)
>           - the virtqueue_fill() is also not like an API so I would prefer not
>             to touch it, please correct me if I did not get it in the right
>             way.(Proposed a squash by Jason)
>     v3/11 - squash feature bits for user space and vhost kernel/user backends.
>           - enable packed ring feature bit provision on host by default.(Jason)
> 
> Wei Xu (11):
>   virtio: rename structure for packed ring
>   virtio: device/driver area size calculation helper for split ring
>   virtio: initialize packed ring region
>   virtio: initialize wrap counter for packed ring
>   virtio: queue/descriptor check helpers for packed ring
>   virtio: get avail bytes check for packed ring
>   virtio: fill/flush/pop for packed ring
>   virtio: event suppression support for packed ring
>   virtio-net: update the head descriptor in a chain lastly
>   virtio: migration support for packed ring
>   virtio: CLI and provide packed ring feature bit by default
> 
>  hw/net/vhost_net.c         |   2 +
>  hw/net/virtio-net.c        |  11 +-
>  hw/virtio/virtio.c         | 798 +++++++++++++++++++++++++++++++++++++++++----
>  include/hw/virtio/virtio.h |   4 +-
>  4 files changed, 757 insertions(+), 58 deletions(-)
> 
> -- 
> 1.8.3.1
Wei Xu Feb. 14, 2019, 3:52 a.m. UTC | #2
On Wed, Feb 13, 2019 at 09:17:57AM -0500, Michael S. Tsirkin wrote:
> On Wed, Feb 13, 2019 at 08:25:35AM -0500, wexu@redhat.com wrote:
> > From: Wei Xu <wexu@redhat.com>
> > 
> > https://github.com/Whishay/qemu.git 
> > 
> > Userspace and vhost-net backedn test has been done with upstream kernel
> > in guest.
> 
> Just a general comment: please format *all* patches
> with --subject-prefix "PATCH v3", or with -v3.
> 
> Do not manually change patch 0 subject adding version there.
> 
> This makes it possible to figure out where does each patch go.
> 
OK, thanks a lot.

Wei
> 
> > v2->v3
> >     v2/01 - drop it since the header has been synchronized from kernel.(mst & jason)
> >     v3/01 - rename 'avail_wrap_counter' to 'last_avail_wrap_counter',
> >             'event_wrap_counter' to 'avail_wrap_counter' to make it easier
> >             to understand.(Jason)
> >           - revise commit message.(Jason)
> >     v3/02 - split packed ring areas size calculation to next patch.(Jason)
> >             to not break bisect(Jason).
> >     v3/03 - initialize packed ring region with correct size and attribute.
> >           - remove unnecessary 'else' checks. (Jason)
> >     v3/06 - add commit log.
> >           - replace 'event_wrap-counter' with 'avail_wrap_counter'.
> >           - merge common memory cache size check to virtqueue_get_avail_bytes().(Jason)
> >           - revise memory barrier comment.(Jason) 
> >           - check indirect descriptors by desc.len/sizeof(desc).(Jason)
> >           - flip wrap counter with '^=1'.(Jason)
> >     v3/07 - move desc.id/len initialization to the declaration.(Jason)
> >           - flip wrap counter '!' with '^=1'.(Jason)
> >           - add memory barrier comments in commit message.
> >     v3/08 - use offsetof() when writing cache.(Jason)
> >           - avoid duplicated memory region write when turning off event_idx
> >             supported notification.(Jason)
> >           - add commit log.(Jason)
> >           - add avail & last_avail wrap counter difference description in commit log.
> >     v3/09 - remove unnecessary used/avail idx/wrap-counter from subsection.
> >           - put new subsection to the end of vmstate_virtio.(Jason)
> >           - squash the two userspace and vhost-net migration patches in v2.(Jason)
> >     v3/10 - reword commit message.
> >           - this is a help not a bug fix so I would like to keep it as a
> >             separate patch still.(Proposed a merge it by Jason)
> >           - the virtqueue_fill() is also not like an API so I would prefer not
> >             to touch it, please correct me if I did not get it in the right
> >             way.(Proposed a squash by Jason)
> >     v3/11 - squash feature bits for user space and vhost kernel/user backends.
> >           - enable packed ring feature bit provision on host by default.(Jason)
> > 
> > Wei Xu (11):
> >   virtio: rename structure for packed ring
> >   virtio: device/driver area size calculation helper for split ring
> >   virtio: initialize packed ring region
> >   virtio: initialize wrap counter for packed ring
> >   virtio: queue/descriptor check helpers for packed ring
> >   virtio: get avail bytes check for packed ring
> >   virtio: fill/flush/pop for packed ring
> >   virtio: event suppression support for packed ring
> >   virtio-net: update the head descriptor in a chain lastly
> >   virtio: migration support for packed ring
> >   virtio: CLI and provide packed ring feature bit by default
> > 
> >  hw/net/vhost_net.c         |   2 +
> >  hw/net/virtio-net.c        |  11 +-
> >  hw/virtio/virtio.c         | 798 +++++++++++++++++++++++++++++++++++++++++----
> >  include/hw/virtio/virtio.h |   4 +-
> >  4 files changed, 757 insertions(+), 58 deletions(-)
> > 
> > -- 
> > 1.8.3.1