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

From: Jason Wang
Date: Thu Jun 24 2021 - 04:14:16 EST



在 2021/6/24 下午12:46, Yongji Xie 写道:
So we need to deal with both FEATURES_OK and reset, but probably not
DRIVER_OK.

OK, I see. Thanks for the explanation. One more question is how about
clearing the corresponding status bit in get_status() rather than
making set_status() fail. Since the spec recommends this way for
validation which is done in virtio_dev_remove() and
virtio_finalize_features().

Thanks,
Yongji


I think you can. Or it would be even better that we just don't set the bit during set_status().

I just realize that in vdpa_reset() we had:

static inline void vdpa_reset(struct vdpa_device *vdev)
{
        const struct vdpa_config_ops *ops = vdev->config;

        vdev->features_valid = false;
        ops->set_status(vdev, 0);
}

We probably need to add the synchronization here. E.g re-read with a timeout.

Thanks