On Fri, Apr 27, 2018 at 11:56:05AM +0800, Jason Wang wrote:
On 2018å04æ25æ 13:15, Tiwei Bie wrote:I agree. I think what one should do is flip the available bit.
Hello everyone,Will have a look at this issue.
This RFC implements packed ring support in virtio driver.
Some simple functional tests have been done with Jason's
packed ring implementation in vhost:
https://lkml.org/lkml/2018/4/23/12
Both of ping and netperf worked as expected (with EVENT_IDX
disabled). But there are below known issues:
1. Reloading the guest driver will break the Tx/Rx;
2. Zeroing the flags when detaching a used desc willI still think zeroing flags is unnecessary or even a bug. At host, I track
break the guest -> host path.
last observed avail wrap counter and detect avail like (what is suggested in
the example code in the spec):
static bool desc_is_avail(struct vhost_virtqueue *vq, __virtio16 flags)
{
ÂÂÂÂÂÂ bool avail = flags & cpu_to_vhost16(vq, DESC_AVAIL);
ÂÂÂÂÂÂ return avail == vq->avail_wrap_counter;
}
So zeroing wrap can not work with this obviously.
Thanks