Thread (68 messages) flat view 68 messages, 6 authors, 2021-07-08

Re: [PATCH v8 09/10] vduse: Introduce VDUSE - vDPA Device in Userspace

From: Jason Wang <hidden>
Date: 2021-06-29 03:29:52
Also in: kvm, linux-fsdevel, linux-iommu, lkml, virtualization

在 2021/6/29 上午10:26, Yongji Xie 写道:
On Mon, Jun 28, 2021 at 12:40 PM Jason Wang [off-list ref] wrote:
quoted
在 2021/6/25 下午12:19, Yongji Xie 写道:
quoted
quoted
2b) for set_status(): simply relay the message to userspace, reply is no
needed. Userspace will use a command to update the status when the
datapath is stop. The the status could be fetched via get_stats().

2b looks more spec complaint.
Looks good to me. And I think we can use the reply of the message to
update the status instead of introducing a new command.
Just notice this part in virtio_finalize_features():

          virtio_add_status(dev, VIRTIO_CONFIG_S_FEATURES_OK);
          status = dev->config->get_status(dev);
          if (!(status & VIRTIO_CONFIG_S_FEATURES_OK)) {

So we no reply doesn't work for FEATURES_OK.

So my understanding is:

1) We must not use noreply for set_status()
2) We can use noreply for get_status(), but it requires a new ioctl to
update the status.

So it looks to me we need synchronize for both get_status() and
set_status().
We should not send messages to userspace in the FEATURES_OK case. So
the synchronization is not necessary.

As discussed previously, there could be a device that mandates some 
features (VIRTIO_F_RING_PACKED). So it can choose to not accept 
FEATURES_OK is packed virtqueue is not negotiated.

In this case we need to relay the message to userspace.

Thanks

Thanks,
Yongji
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help