search for: vhost_set_vring_addr

Displaying 20 results from an estimated 61 matches for "vhost_set_vring_addr".

2018 May 22
2
[RFC V4 PATCH 7/8] vhost: packed ring support
...st_dev *d, unsigned int ioctl, void __user *arg > s.num = vq->last_avail_idx; > if (copy_to_user(argp, &s, sizeof s)) > r = -EFAULT; > + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) > + s.num |= vq->avail_wrap_counter << 31; > break; > case VHOST_SET_VRING_ADDR: > if (copy_from_user(&a, argp, sizeof a)) { 'last_used_idx' also needs to be saved/restored here. I have figured out the root cause of broken device after reloading 'virtio-net' module, all indices have been reset for a reloading but 'last_used_idx' is not prope...
2018 May 22
2
[RFC V4 PATCH 7/8] vhost: packed ring support
...st_dev *d, unsigned int ioctl, void __user *arg > s.num = vq->last_avail_idx; > if (copy_to_user(argp, &s, sizeof s)) > r = -EFAULT; > + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) > + s.num |= vq->avail_wrap_counter << 31; > break; > case VHOST_SET_VRING_ADDR: > if (copy_from_user(&a, argp, sizeof a)) { 'last_used_idx' also needs to be saved/restored here. I have figured out the root cause of broken device after reloading 'virtio-net' module, all indices have been reset for a reloading but 'last_used_idx' is not prope...
2018 May 23
1
[RFC V4 PATCH 7/8] vhost: packed ring support
...s.num = vq->last_avail_idx; > >> if (copy_to_user(argp, &s, sizeof s)) > >> r = -EFAULT; > >>+ if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) > >>+ s.num |= vq->avail_wrap_counter << 31; > >> break; > >> case VHOST_SET_VRING_ADDR: > >> if (copy_from_user(&a, argp, sizeof a)) { > >'last_used_idx' also needs to be saved/restored here. > > > >I have figured out the root cause of broken device after reloading > >'virtio-net' module, all indices have been reset for a reload...
2018 May 23
0
[RFC V4 PATCH 7/8] vhost: packed ring support
...id __user *arg >> s.num = vq->last_avail_idx; >> if (copy_to_user(argp, &s, sizeof s)) >> r = -EFAULT; >> + if (vhost_has_feature(vq, VIRTIO_F_RING_PACKED)) >> + s.num |= vq->avail_wrap_counter << 31; >> break; >> case VHOST_SET_VRING_ADDR: >> if (copy_from_user(&a, argp, sizeof a)) { > 'last_used_idx' also needs to be saved/restored here. > > I have figured out the root cause of broken device after reloading > 'virtio-net' module, all indices have been reset for a reloading but > 'las...
2020 Oct 01
0
[PATCH v2 0/2] vhost: Skip access checks on GIOVAs
On Tue, Sep 29, 2020 at 06:30:20PM +0200, Greg Kurz wrote: > This series addresses some misuse around vring addresses provided by > userspace when using an IOTLB device. The misuse cause failures of > the VHOST_SET_VRING_ADDR ioctl on POWER, which in turn causes QEMU > to crash at migration time. > > While digging some more I realized that log_access_ok() can also be > passed a GIOVA (vq->log_addr) even though log_used() will never log > anything at that address. I could observe addresses beyond the...
2020 Apr 14
0
[PATCH] vhost: do not enable VHOST_MENU by default
...(ioctl) { feebcaeac79ad8 Jason Wang 2019-05-24 1504 case VHOST_SET_VRING_NUM: feebcaeac79ad8 Jason Wang 2019-05-24 1505 r = vhost_vring_set_num(d, vq, argp); feebcaeac79ad8 Jason Wang 2019-05-24 1506 break; feebcaeac79ad8 Jason Wang 2019-05-24 1507 case VHOST_SET_VRING_ADDR: feebcaeac79ad8 Jason Wang 2019-05-24 1508 r = vhost_vring_set_addr(d, vq, argp); feebcaeac79ad8 Jason Wang 2019-05-24 1509 break; feebcaeac79ad8 Jason Wang 2019-05-24 1510 default: feebcaeac79ad8 Jason Wang 2019-05-24 1511 BUG(); feebcaeac79ad8 Jason...
2019 Jul 03
0
[RFC v2] vhost: introduce mdev based hardware vhost backend
..._REGION_INDEX: > + done = vdpa_handle_config_read(mdev, buf, count, ppos); > + break; > + } > + > + if (done > 0) > + *ppos += done; > + > + mutex_unlock(&vdpa->ops_lock); > + > + return done; > +} > +EXPORT_SYMBOL(vdpa_read); > + > +static int vhost_set_vring_addr(struct mdev_device *mdev, > + struct vhost_vring_addr *addr) > +{ > + struct vdpa_dev *vdpa; > + int qid = addr->index; > + struct vdpa_vring_info *vring; > + > + vdpa = mdev_get_drvdata(mdev); > + if (!vdpa) > + return -ENODEV; > + > + if (qid >= vdpa->m...
2019 Jul 03
4
[RFC v2] vhost: introduce mdev based hardware vhost backend
...ST_OFFSET_TO_INDEX(pos); + + switch (index) { + case VFIO_VHOST_CONFIG_REGION_INDEX: + done = vdpa_handle_config_read(mdev, buf, count, ppos); + break; + } + + if (done > 0) + *ppos += done; + + mutex_unlock(&vdpa->ops_lock); + + return done; +} +EXPORT_SYMBOL(vdpa_read); + +static int vhost_set_vring_addr(struct mdev_device *mdev, + struct vhost_vring_addr *addr) +{ + struct vdpa_dev *vdpa; + int qid = addr->index; + struct vdpa_vring_info *vring; + + vdpa = mdev_get_drvdata(mdev); + if (!vdpa) + return -ENODEV; + + if (qid >= vdpa->max_vrings) + return -EINVAL; + + if (qid >= vdpa-&g...
2019 Jul 03
4
[RFC v2] vhost: introduce mdev based hardware vhost backend
...ST_OFFSET_TO_INDEX(pos); + + switch (index) { + case VFIO_VHOST_CONFIG_REGION_INDEX: + done = vdpa_handle_config_read(mdev, buf, count, ppos); + break; + } + + if (done > 0) + *ppos += done; + + mutex_unlock(&vdpa->ops_lock); + + return done; +} +EXPORT_SYMBOL(vdpa_read); + +static int vhost_set_vring_addr(struct mdev_device *mdev, + struct vhost_vring_addr *addr) +{ + struct vdpa_dev *vdpa; + int qid = addr->index; + struct vdpa_vring_info *vring; + + vdpa = mdev_get_drvdata(mdev); + if (!vdpa) + return -ENODEV; + + if (qid >= vdpa->max_vrings) + return -EINVAL; + + if (qid >= vdpa-&g...
2016 Apr 28
2
[RFC PATCH V2 2/2] vhost: device IOTLB API
On Thu, Apr 28, 2016 at 02:37:16PM +0800, Jason Wang wrote: > > > On 04/27/2016 07:45 PM, Michael S. Tsirkin wrote: > > On Fri, Mar 25, 2016 at 10:34:34AM +0800, Jason Wang wrote: > >> This patch tries to implement an device IOTLB for vhost. This could be > >> used with for co-operation with userspace(qemu) implementation of DMA > >> remapping. >
2016 Apr 28
2
[RFC PATCH V2 2/2] vhost: device IOTLB API
On Thu, Apr 28, 2016 at 02:37:16PM +0800, Jason Wang wrote: > > > On 04/27/2016 07:45 PM, Michael S. Tsirkin wrote: > > On Fri, Mar 25, 2016 at 10:34:34AM +0800, Jason Wang wrote: > >> This patch tries to implement an device IOTLB for vhost. This could be > >> used with for co-operation with userspace(qemu) implementation of DMA > >> remapping. >
2018 Apr 10
0
[RFC] vhost: introduce mdev based hardware vhost backend
...) > + return -ENOMEM; > + > + memcpy(mem_table, mem, size); > + > + kfree(vdpa->mem_table); > + > + vdpa->mem_table = mem_table; > + > + vdpa->ops->dma_unmap(vdpa); > + vdpa->ops->dma_map(vdpa); > + > + return 0; > +} > + > +static int vhost_set_vring_addr(struct mdev_device *mdev, > + struct vhost_vring_addr *addr) > +{ > + struct vdpa_dev *vdpa; > + int qid = addr->index; > + struct vdpa_vring_info *vring; > + > + vdpa = mdev_get_drvdata(mdev); > + if (!vdpa) > + return -ENODEV; > + > + if (qid >= vdpa->m...
2018 Apr 02
2
[RFC] vhost: introduce mdev based hardware vhost backend
...egions); + + mem_table = kzalloc(size, GFP_KERNEL); + if (mem_table == NULL) + return -ENOMEM; + + memcpy(mem_table, mem, size); + + kfree(vdpa->mem_table); + + vdpa->mem_table = mem_table; + + vdpa->ops->dma_unmap(vdpa); + vdpa->ops->dma_map(vdpa); + + return 0; +} + +static int vhost_set_vring_addr(struct mdev_device *mdev, + struct vhost_vring_addr *addr) +{ + struct vdpa_dev *vdpa; + int qid = addr->index; + struct vdpa_vring_info *vring; + + vdpa = mdev_get_drvdata(mdev); + if (!vdpa) + return -ENODEV; + + if (qid >= vdpa->max_vrings) + return -EINVAL; + + /* FIXME to be fixed...
2018 Apr 02
2
[RFC] vhost: introduce mdev based hardware vhost backend
...egions); + + mem_table = kzalloc(size, GFP_KERNEL); + if (mem_table == NULL) + return -ENOMEM; + + memcpy(mem_table, mem, size); + + kfree(vdpa->mem_table); + + vdpa->mem_table = mem_table; + + vdpa->ops->dma_unmap(vdpa); + vdpa->ops->dma_map(vdpa); + + return 0; +} + +static int vhost_set_vring_addr(struct mdev_device *mdev, + struct vhost_vring_addr *addr) +{ + struct vdpa_dev *vdpa; + int qid = addr->index; + struct vdpa_vring_info *vring; + + vdpa = mdev_get_drvdata(mdev); + if (!vdpa) + return -ENODEV; + + if (qid >= vdpa->max_vrings) + return -EINVAL; + + /* FIXME to be fixed...
2020 Apr 14
5
[PATCH] vhost: do not enable VHOST_MENU by default
We try to keep the defconfig untouched after decoupling CONFIG_VHOST out of CONFIG_VIRTUALIZATION in commit 20c384f1ea1a ("vhost: refine vhost and vringh kconfig") by enabling VHOST_MENU by default. Then the defconfigs can keep enabling CONFIG_VHOST_NET without the caring of CONFIG_VHOST. But this will leave a "CONFIG_VHOST_MENU=y" in all defconfigs and even for the ones that
2020 Apr 14
5
[PATCH] vhost: do not enable VHOST_MENU by default
We try to keep the defconfig untouched after decoupling CONFIG_VHOST out of CONFIG_VIRTUALIZATION in commit 20c384f1ea1a ("vhost: refine vhost and vringh kconfig") by enabling VHOST_MENU by default. Then the defconfigs can keep enabling CONFIG_VHOST_NET without the caring of CONFIG_VHOST. But this will leave a "CONFIG_VHOST_MENU=y" in all defconfigs and even for the ones that
2016 Apr 29
0
[RFC PATCH V2 2/2] vhost: device IOTLB API
...ll HVA. > > Without an iommu, we ask for them to be contigious and > since bus address == GPA, this means contigious GPA => > contigious HVA. With an IOMMU you can map contigious > bus address but non contigious GPA and non contigious HVA. Yes, so the issue is we should not reuse VHOST_SET_VRING_ADDR and invent a new ioctl to set bus addr (guest iova). The access the VQ through device IOTLB too. > > Another concern: what if guest changes the GPA while keeping bus address > constant? Normal devices will work because they only use > bus addresses, but virtio will break. If we access...
2019 Apr 23
7
[RFC PATCH V3 0/6] vhost: accelerate metadata access
This series tries to access virtqueue metadata through kernel virtual address instead of copy_user() friends since they had too much overheads like checks, spec barriers or even hardware feature toggling. This is done through setup kernel address through direct mapping and co-opreate VM management with MMU notifiers. Test shows about 23% improvement on TX PPS. TCP_STREAM doesn't see obvious
2019 May 24
10
[PATCH net-next 0/6] vhost: accelerate metadata access
Hi: This series tries to access virtqueue metadata through kernel virtual address instead of copy_user() friends since they had too much overheads like checks, spec barriers or even hardware feature toggling like SMAP. This is done through setup kernel address through direct mapping and co-opreate VM management with MMU notifiers. Test shows about 23% improvement on TX PPS. TCP_STREAM
2019 May 24
10
[PATCH net-next 0/6] vhost: accelerate metadata access
Hi: This series tries to access virtqueue metadata through kernel virtual address instead of copy_user() friends since they had too much overheads like checks, spec barriers or even hardware feature toggling like SMAP. This is done through setup kernel address through direct mapping and co-opreate VM management with MMU notifiers. Test shows about 23% improvement on TX PPS. TCP_STREAM