Re: [PATCH RESEND v2 00/17] KVM: Dirty ring interface

Jason Wang
2019-12-24T06:35:04Z

On 2019/12/21 上午9:49, Peter Xu wrote:
> * Why not virtio?
>
> There's already some discussion during v1 patchset on whether it's
> good to use virtio for the data path of delivering dirty pages [1].
> I'd confess the only thing that we might consider to use is the vring
> layout (because virtqueue is tightly bound to devices, while we don't
> have a device contet here), however it's a pity that even we only use
> the most low-level vring api it'll be at least iov based which is
> already an overkill for dirty ring (which is literally an array of
> addresses). So I just kept things easy.

If iov is the only reason, we can simple extend vringh helper to access
the descriptor directly.

For split ring, it has some redundant stuffs.

- dirty ring has simple assumption used_idx = last_avail_idx (which is
fetch_index), so no need for having two rings
- descriptor is self contained (dirty_gfns), no need to another
indirection (but we can reuse vring descriptors for sure)

For packed ring, it looks not, but I'm not sure it's worthwhile to try.

Thanks