search for: vhost_get_vring_base

Displaying 20 results from an estimated 169 matches for "vhost_get_vring_base".

2023 Jun 05
2
[PATCH] vhost-vdpa: filter VIRTIO_F_RING_PACKED feature
vhost-vdpa IOCTLs (eg. VHOST_GET_VRING_BASE, VHOST_SET_VRING_BASE) don't support packed virtqueue well yet, so let's filter the VIRTIO_F_RING_PACKED feature for now in vhost_vdpa_get_features(). This way, even if the device supports it, we don't risk it being negotiated, then the VMM is unable to set the vring state properly. F...
2023 Jun 05
2
[PATCH] vhost-vdpa: filter VIRTIO_F_RING_PACKED feature
vhost-vdpa IOCTLs (eg. VHOST_GET_VRING_BASE, VHOST_SET_VRING_BASE) don't support packed virtqueue well yet, so let's filter the VIRTIO_F_RING_PACKED feature for now in vhost_vdpa_get_features(). This way, even if the device supports it, we don't risk it being negotiated, then the VMM is unable to set the vring state properly. F...
2019 Sep 03
2
[RFC v3] vhost: introduce mdev based hardware vhost backend
...k; > + > + case VHOST_MDEV_SET_STATE: > + ret = vhost_set_state(vdpa, argp); > + break; > + case VHOST_GET_FEATURES: > + ret = vhost_get_features(vdpa, argp); > + break; > + case VHOST_SET_FEATURES: > + ret = vhost_set_features(vdpa, argp); > + break; > + case VHOST_GET_VRING_BASE: > + ret = vhost_get_vring_base(vdpa, argp); > + break; > + default: > + ret = vhost_dev_ioctl(&vdpa->dev, cmd, argp); > + if (ret == -ENOIOCTLCMD) > + ret = vhost_vring_ioctl(&vdpa->dev, cmd, argp); > + } > + > + return ret; > +} > +EXPORT_SYMBO...
2019 Sep 03
2
[RFC v3] vhost: introduce mdev based hardware vhost backend
...k; > + > + case VHOST_MDEV_SET_STATE: > + ret = vhost_set_state(vdpa, argp); > + break; > + case VHOST_GET_FEATURES: > + ret = vhost_get_features(vdpa, argp); > + break; > + case VHOST_SET_FEATURES: > + ret = vhost_set_features(vdpa, argp); > + break; > + case VHOST_GET_VRING_BASE: > + ret = vhost_get_vring_base(vdpa, argp); > + break; > + default: > + ret = vhost_dev_ioctl(&vdpa->dev, cmd, argp); > + if (ret == -ENOIOCTLCMD) > + ret = vhost_vring_ioctl(&vdpa->dev, cmd, argp); > + } > + > + return ret; > +} > +EXPORT_SYMBO...
2019 Sep 27
5
[PATCH] vhost: introduce mdev based hardware backend
...EV_SET_STATE: > > + r = vhost_set_state(m, argp); > > + break; > > + case VHOST_GET_FEATURES: > > + r = vhost_get_features(m, argp); > > + break; > > + case VHOST_SET_FEATURES: > > + r = vhost_set_features(m, argp); > > + break; > > + case VHOST_GET_VRING_BASE: > > + r = vhost_get_vring_base(m, argp); > > + break; > > > Does it mean the SET_VRING_BASE may only take affect after > VHOST_MEV_SET_STATE? Yeah, in this version, SET_VRING_BASE won't set the base to the device directly. But I plan to not delay this anymore in th...
2019 Sep 27
5
[PATCH] vhost: introduce mdev based hardware backend
...EV_SET_STATE: > > + r = vhost_set_state(m, argp); > > + break; > > + case VHOST_GET_FEATURES: > > + r = vhost_get_features(m, argp); > > + break; > > + case VHOST_SET_FEATURES: > > + r = vhost_set_features(m, argp); > > + break; > > + case VHOST_GET_VRING_BASE: > > + r = vhost_get_vring_base(m, argp); > > + break; > > > Does it mean the SET_VRING_BASE may only take affect after > VHOST_MEV_SET_STATE? Yeah, in this version, SET_VRING_BASE won't set the base to the device directly. But I plan to not delay this anymore in th...
2019 Sep 27
1
[PATCH] vhost: introduce mdev based hardware backend
...break; > > > > + case VHOST_GET_FEATURES: > > > > + r = vhost_get_features(m, argp); > > > > + break; > > > > + case VHOST_SET_FEATURES: > > > > + r = vhost_set_features(m, argp); > > > > + break; > > > > + case VHOST_GET_VRING_BASE: > > > > + r = vhost_get_vring_base(m, argp); > > > > + break; > > > Does it mean the SET_VRING_BASE may only take affect after > > > VHOST_MEV_SET_STATE? > > Yeah, in this version, SET_VRING_BASE won't set the base to the > > device direc...
2019 Sep 26
6
[PATCH] vhost: introduce mdev based hardware backend
...ong vhost_set_features(struct vhost_mdev *m, u64 __user *featurep) +{ + u64 features; + + if (copy_from_user(&features, featurep, sizeof(features))) + return -EFAULT; + + if (features & ~m->features) + return -EINVAL; + + m->acked_features = features; + + return 0; +} + +static long vhost_get_vring_base(struct vhost_mdev *m, void __user *argp) +{ + const struct virtio_mdev_device_ops *ops = mdev_get_dev_ops(m->mdev); + struct vhost_virtqueue *vq; + u32 idx; + long r; + + r = get_user(idx, (u32 __user *)argp); + if (r < 0) + return r; + if (idx >= m->nvqs) + return -ENOBUFS; + + vq =...
2019 Sep 26
6
[PATCH] vhost: introduce mdev based hardware backend
...ong vhost_set_features(struct vhost_mdev *m, u64 __user *featurep) +{ + u64 features; + + if (copy_from_user(&features, featurep, sizeof(features))) + return -EFAULT; + + if (features & ~m->features) + return -EINVAL; + + m->acked_features = features; + + return 0; +} + +static long vhost_get_vring_base(struct vhost_mdev *m, void __user *argp) +{ + const struct virtio_mdev_device_ops *ops = mdev_get_dev_ops(m->mdev); + struct vhost_virtqueue *vq; + u32 idx; + long r; + + r = get_user(idx, (u32 __user *)argp); + if (r < 0) + return r; + if (idx >= m->nvqs) + return -ENOBUFS; + + vq =...
2018 Oct 12
2
[PATCH net-next V2 6/8] vhost: packed ring support
...t the cached index value. */ > vq->avail_idx = vq->last_avail_idx; > + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) { > + vq->last_avail_wrap_counter = wrap_counter; > + vq->avail_wrap_counter = vq->last_avail_wrap_counter; > + } > break; > case VHOST_GET_VRING_BASE: > s.index = idx; > s.num = vq->last_avail_idx; > + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) > + s.num |= vq->last_avail_wrap_counter << 31; > + if (copy_to_user(argp, &s, sizeof(s))) > + r = -EFAULT; > + break; > + case VHOST_SET_VRING_U...
2018 Oct 12
2
[PATCH net-next V2 6/8] vhost: packed ring support
...t the cached index value. */ > vq->avail_idx = vq->last_avail_idx; > + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) { > + vq->last_avail_wrap_counter = wrap_counter; > + vq->avail_wrap_counter = vq->last_avail_wrap_counter; > + } > break; > case VHOST_GET_VRING_BASE: > s.index = idx; > s.num = vq->last_avail_idx; > + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) > + s.num |= vq->last_avail_wrap_counter << 31; > + if (copy_to_user(argp, &s, sizeof(s))) > + r = -EFAULT; > + break; > + case VHOST_SET_VRING_U...
2019 Sep 26
0
[PATCH] vhost: introduce mdev based hardware backend
...> + u64 features; > + > + if (copy_from_user(&features, featurep, sizeof(features))) > + return -EFAULT; > + > + if (features & ~m->features) > + return -EINVAL; > + > + m->acked_features = features; > + > + return 0; > +} > + > +static long vhost_get_vring_base(struct vhost_mdev *m, void __user *argp) > +{ > + const struct virtio_mdev_device_ops *ops = mdev_get_dev_ops(m->mdev); > + struct vhost_virtqueue *vq; > + u32 idx; > + long r; > + > + r = get_user(idx, (u32 __user *)argp); > + if (r < 0) > + return r; > + if (i...
2019 Sep 27
0
[PATCH] vhost: introduce mdev based hardware backend
...> + u64 features; > + > + if (copy_from_user(&features, featurep, sizeof(features))) > + return -EFAULT; > + > + if (features & ~m->features) > + return -EINVAL; > + > + m->acked_features = features; > + > + return 0; > +} > + > +static long vhost_get_vring_base(struct vhost_mdev *m, void __user *argp) > +{ > + const struct virtio_mdev_device_ops *ops = mdev_get_dev_ops(m->mdev); > + struct vhost_virtqueue *vq; > + u32 idx; > + long r; > + > + r = get_user(idx, (u32 __user *)argp); > + if (r < 0) > + return r; > + if (i...
2018 Oct 15
2
[PATCH net-next V2 6/8] vhost: packed ring support
...idx = vq->last_avail_idx; >>> + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) { >>> + vq->last_avail_wrap_counter = wrap_counter; >>> + vq->avail_wrap_counter = vq->last_avail_wrap_counter; >>> + } >>> break; >>> case VHOST_GET_VRING_BASE: >>> s.index = idx; >>> s.num = vq->last_avail_idx; >>> + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) >>> + s.num |= vq->last_avail_wrap_counter << 31; >>> + if (copy_to_user(argp, &s, sizeof(s))) >>> + r = -EF...
2018 Oct 15
2
[PATCH net-next V2 6/8] vhost: packed ring support
...idx = vq->last_avail_idx; >>> + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) { >>> + vq->last_avail_wrap_counter = wrap_counter; >>> + vq->avail_wrap_counter = vq->last_avail_wrap_counter; >>> + } >>> break; >>> case VHOST_GET_VRING_BASE: >>> s.index = idx; >>> s.num = vq->last_avail_idx; >>> + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) >>> + s.num |= vq->last_avail_wrap_counter << 31; >>> + if (copy_to_user(argp, &s, sizeof(s))) >>> + r = -EF...
2019 Sep 27
0
[PATCH] vhost: introduce mdev based hardware backend
...+ r = vhost_set_state(m, argp); >>> + break; >>> + case VHOST_GET_FEATURES: >>> + r = vhost_get_features(m, argp); >>> + break; >>> + case VHOST_SET_FEATURES: >>> + r = vhost_set_features(m, argp); >>> + break; >>> + case VHOST_GET_VRING_BASE: >>> + r = vhost_get_vring_base(m, argp); >>> + break; >> Does it mean the SET_VRING_BASE may only take affect after >> VHOST_MEV_SET_STATE? > Yeah, in this version, SET_VRING_BASE won't set the base to the > device directly. But I plan to not delay this an...
2019 Sep 17
0
[RFC v4 3/3] vhost: introduce mdev based hardware backend
...ong vhost_set_features(struct vhost_mdev *m, u64 __user *featurep) +{ + u64 features; + + if (copy_from_user(&features, featurep, sizeof(features))) + return -EFAULT; + + if (features & ~m->features) + return -EINVAL; + + m->acked_features = features; + + return 0; +} + +static long vhost_get_vring_base(struct vhost_mdev *m, void __user *argp) +{ + struct vhost_virtqueue *vq; + u32 idx; + long r; + + r = get_user(idx, (u32 __user *)argp); + if (r < 0) + return r; + if (idx >= m->nvqs) + return -ENOBUFS; + + vq = &m->vqs[idx]; + + // XXX: we need to support get_vring_base + //vq-&...
2019 Sep 02
2
[RFC v3] vhost: introduce mdev based hardware vhost backend
...es_changed(vdpa); > + return 0; > +} > + > +static int vhost_get_features(struct vhost_mdev *vdpa, u64 __user *featurep) > +{ > + if (copy_to_user(featurep, &vdpa->features, sizeof(vdpa->features))) > + return -EFAULT; > + return 0; > +} > + > +static int vhost_get_vring_base(struct vhost_mdev *vdpa, void __user *argp) > +{ > + struct vhost_virtqueue *vq; > + u32 idx; > + int r; > + > + r = get_user(idx, (u32 __user *)argp); > + if (r < 0) > + return r; > + > + vq = &vdpa->vqs[idx]; > + vq->last_avail_idx = vdpa->ops-&gt...
2019 Sep 02
2
[RFC v3] vhost: introduce mdev based hardware vhost backend
...es_changed(vdpa); > + return 0; > +} > + > +static int vhost_get_features(struct vhost_mdev *vdpa, u64 __user *featurep) > +{ > + if (copy_to_user(featurep, &vdpa->features, sizeof(vdpa->features))) > + return -EFAULT; > + return 0; > +} > + > +static int vhost_get_vring_base(struct vhost_mdev *vdpa, void __user *argp) > +{ > + struct vhost_virtqueue *vq; > + u32 idx; > + int r; > + > + r = get_user(idx, (u32 __user *)argp); > + if (r < 0) > + return r; > + > + vq = &vdpa->vqs[idx]; > + vq->last_avail_idx = vdpa->ops-&gt...
2019 Sep 04
0
[RFC v3] vhost: introduce mdev based hardware vhost backend
...gt; > + ret = vhost_set_state(vdpa, argp); > > + break; > > + case VHOST_GET_FEATURES: > > + ret = vhost_get_features(vdpa, argp); > > + break; > > + case VHOST_SET_FEATURES: > > + ret = vhost_set_features(vdpa, argp); > > + break; > > + case VHOST_GET_VRING_BASE: > > + ret = vhost_get_vring_base(vdpa, argp); > > + break; > > + default: > > + ret = vhost_dev_ioctl(&vdpa->dev, cmd, argp); > > + if (ret == -ENOIOCTLCMD) > > + ret = vhost_vring_ioctl(&vdpa->dev, cmd, argp); > > + } > > + >...