[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support reg
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers |
Date: |
Thu, 19 Apr 2018 20:27:24 +0300 |
On Thu, Apr 19, 2018 at 06:59:39PM +0200, Paolo Bonzini wrote:
> On 19/04/2018 18:52, Liang, Cunming wrote:
> >>> Oh you are right.
> >>>
> >>> So it's only needed for non-intel platforms or when packets are
> >>> in WC memory then. And I don't know whether dpdk ever puts
> >>> packets in WC memory.
> >>>
> >>> I guess we'll cross this bridge when we get to it.
> >> Non-TSO architectures seem important...
> >
> > I'm not familiar with Non-TSO, trying to understand the difference
> > according to the feature set. Let's say non-TSO architectures do not
> > set 'weak_barriers'. Then mandatory barrier is used for software. HW
> > offload on that platform would choose different feature set against
> > software? If it's not, essentially we're worried about live migration
> > from a TSO to a non-TSO architectures platform?
>
> I'm worried about live migration from software virtio to hardware virtio
> on non-TSO architectures. For example, on ARM you would have a "dmb
> ishst" (smp_wmb) for software virtio and a "dsb st" (wmb) or "dmb oshst"
> (dma_wmb) for hardware virtio.
>
> For this to work, you would have to set up the VM so that it uses the
> heavier barriers from the beginning, even when backed by software virtio.
>
> Paolo
Right. Or disallow hardware to software migrations.
But generally the mandatory and even dma barriers in Linux are often an
overkill.
See ARM for example:
#if defined(CONFIG_ARM_DMA_MEM_BUFFERABLE) || defined(CONFIG_SMP)
#define mb() __arm_heavy_mb()
#define rmb() dsb()
#define wmb() __arm_heavy_mb(st)
#define dma_rmb() dmb(osh)
#define dma_wmb() dmb(oshst)
#else
#define mb() barrier()
#define rmb() barrier()
#define wmb() barrier()
#define dma_rmb() barrier()
#define dma_wmb() barrier()
#endif
That CONFIG_SMP here is clearly wrong but I don't really know what
to set it to. Also, we probably should switch virtio_wmb to dma_XX
barriers.
That's actually easy. Will try to do.
--
MST
- Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers, (continued)
- Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers, Liang, Cunming, 2018/04/19
- Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers, Michael S. Tsirkin, 2018/04/19
- Re: [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers, Michael S. Tsirkin, 2018/04/19
- Re: [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers, Paolo Bonzini, 2018/04/19
- Re: [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers, Michael S. Tsirkin, 2018/04/19
- Re: [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers, Liang, Cunming, 2018/04/19
- Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers, Paolo Bonzini, 2018/04/19
- Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers,
Michael S. Tsirkin <=
- Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers, Paolo Bonzini, 2018/04/19
- Re: [Qemu-devel] [virtio-dev] RE: [PATCH v3 6/6] vhost-user: support registering external host notifiers, Michael S. Tsirkin, 2018/04/19
- Re: [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers, Michael S. Tsirkin, 2018/04/19
- Re: [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers, Liang, Cunming, 2018/04/19
- Re: [Qemu-devel] [PATCH v3 6/6] vhost-user: support registering external host notifiers, Liang, Cunming, 2018/04/19