[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 00/16] packed ring virtio-net backend support
From: |
Wei Xu |
Subject: |
Re: [Qemu-devel] [PATCH v1 00/16] packed ring virtio-net backend support |
Date: |
Fri, 23 Nov 2018 13:57:37 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Thu, Nov 22, 2018 at 06:57:31PM +0100, Maxime Coquelin wrote:
> Hi Wei,
>
> I just tested your series with Tiwei's v3, and it fails
> with ctrl vq enabled:
> qemu-system-x86_64: virtio-net ctrl missing headers
OK, I haven't tried Tiwei's v3 yet, will give it a try.
Wei
>
> Regards,
> Maxime
>
> On 11/22/18 3:06 PM, address@hidden wrote:
> >From: Wei Xu <address@hidden>
> >
> >Code base:
> > https://github.com/Whishay/qemu.git
> >
> >rfc v3 -> v1
> >- migration support for both userspace and vhost-net, need tweak vhost
> > ioctl() to make it work(the code is pasted in the commit message of
> > vhost migration patch #13).
> >
> >Note:
> > the high 32-bit guest feature bit is saved as a subsection for
> > virtio devices which makes packed ring feature bit check unusable when
> > loading the saved per-queue variables(this is done before loading
> > subsection which is the last action for device during migration),
> > so I save and load all the things generally for now, any idea to fix this?
> >
> >- Fixed comments from Jason for rfc v3 sorted by patch #, two comments I
> > didn't take were(from patch) listed here:
> >09: - introduce new API(virtqueue_fill_n()).
> > - Didn't take it since userspace backend does not support batching,
> > so only one element is popped and current API should be enough.
> >06 & 07: Refactor split and packed pop()/get_avail_bytes().
> > - the duplicated code interwined with split/packed ring specific
> > things and it might make it unclear, so I only extracted the few
> > common parts out side rcu and keep the others separate.
> >
> >The other revised comments:
> >02: - reuse current 'avail/used' for 'driver/device' in
> >VRingMemoryRegionCache.
> > - remove event_idx since shadow_avail_idx works.
> >03: - move size recalculation to a separate patch.
> > - keep 'avail/used' in current calculation function name.
> > - initialize 'desc' memory region as 'false' for 1.0('true' for 1.1)
> >04: - delete 'event_idx'
> >05: - rename 'wc' to wrap_counter.
> >06: - converge common part outside rcu section for 1.0/1.1.
> > - move memory barrier for the first 'desc' in between checking flag
> > and read other fields.
> > - remove unnecessary memory barriers for indirect descriptors.
> > - no need to destroy indirect memory cache since it is generally done
> > before return from the function.
> > - remove redundant maximum chained descriptors limitation check.
> > - there are some differences(desc name, wrap idx/counter, flags) between
> > split and packed rings, so keep them separate for now.
> > - amend the comment when recording index and wrap counter for a kick
> > from guest.
> >07: - calculate fields in descriptor instead of read it when filling.
> > - put memory barrier correctly before filling the flags in descriptor.
> > - replace full memory barrier with a write barrier in fill.
> > - shift to read descriptor flags and descriptor necessarily and
> > separately in packed_pop().
> > - correct memory barrier in packed_pop() as in packed_fill().
> >08: - reuse 'shadow_avail_idx' instead of adding a new 'event_idx'.
> > - use the compact and verified vring_packed_need_event()
> > version for vhost net/user.
> >12: - remove the odd cherry-pick comment.
> > - used bit '15' for wrap_counters.
> >
> >rfc v2->v3
> >- addressed performance issue
> >- fixed feedback from v2
> >
> >rfc v1->v2
> >- sync to tiwei's v5
> >- reuse memory cache function with 1.0
> >- dropped detach patch and notification helper(04 & 05 in v1)
> >- guest virtio-net driver unload/reload support
> >- event suppression support(not tested)
> >- addressed feedback from v1
> >
> >Wei Xu (15):
> > virtio: introduce packed ring definitions
> > virtio: redefine structure & memory cache for packed ring
> > virtio: expand offset calculation for packed ring
> > virtio: add memory region init for packed ring
> > virtio: init wrap counter for packed ring
> > virtio: init and desc empty check 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: fill head desc after done all in a chain
> > virtio: add userspace migration of packed ring
> > virtio: add vhost-net migration of packed ring
> > virtio: packed ring feature bit for userspace backend
> > vhost: enable packed ring
> > virtio: enable packed ring via a new command line
> >
> > VERSION | 2 +-
> > hw/net/vhost_net.c | 2 +
> > hw/net/virtio-net.c | 11 +-
> > hw/virtio/virtio.c | 756
> > +++++++++++++++++++++++--
> > include/hw/virtio/virtio.h | 8 +-
> > include/standard-headers/linux/virtio_config.h | 15 +
> > include/standard-headers/linux/virtio_ring.h | 43 ++
> > 7 files changed, 783 insertions(+), 54 deletions(-)
> >
- [Qemu-devel] [PATCH v1 09/16] virtio: fill/flush/pop for packed ring, (continued)
- [Qemu-devel] [PATCH v1 09/16] virtio: fill/flush/pop for packed ring, wexu, 2018/11/22
- [Qemu-devel] [PATCH v1 10/16] virtio: event suppression support for packed ring, wexu, 2018/11/22
- [Qemu-devel] [PATCH v1 12/16] virtio: add userspace migration of packed ring, wexu, 2018/11/22
- [Qemu-devel] [PATCH v1 11/16] virtio-net: fill head desc after done all in a chain, wexu, 2018/11/22
- [Qemu-devel] [PATCH v1 13/16] virtio: add vhost-net migration of packed ring, wexu, 2018/11/22
- [Qemu-devel] [PATCH v1 14/16] virtio: packed ring feature bit for userspace backend, wexu, 2018/11/22
- [Qemu-devel] [PATCH v1 16/16] virtio: enable packed ring via a new command line, wexu, 2018/11/22
- [Qemu-devel] [PATCH v1 15/16] vhost: enable packed ring, wexu, 2018/11/22
- Re: [Qemu-devel] [PATCH v1 00/16] packed ring virtio-net backend support, Maxime Coquelin, 2018/11/22
- Re: [Qemu-devel] [PATCH v1 00/16] packed ring virtio-net backend support,
Wei Xu <=
- Re: [Qemu-devel] [PATCH v1 00/16] packed ring virtio-net backend support, no-reply, 2018/11/23
- Re: [Qemu-devel] [PATCH v1 00/16] packed ring virtio-net backend support, no-reply, 2018/11/23