Displaying 20 results from an estimated 33 matches for "cpu_physical_memory_map".
2012 Jul 23
2
[PATCH V2] qemu-xen-traditionnal, Fix dirty logging during migration.
This moves the xen_modified_memory call from cpu_physical_memory_map to
cpu_physical_memory_unmap because the memory could be migrated before the
device model have written to it.
But because we need to know the guest address and to avoid rewriting a new
function, the call is moved to qemu_invalidate_entry. So this later has to new
parameters, the length of the mapp...
2013 Apr 03
1
[PATCH] vhost: Add vhost_commit callback for SeaBIOS ROM region re-mapping
From: Nicholas Bellinger <nab at linux-iscsi.org>
This patch follows MST's recommendation to move checks for
vhost_verify_ring_mappings() -> cpu_physical_memory_map() operations
from MemoryListener->region_[add,del]() -> vhost_set_memory() into
final MemoryListener->commit() -> vhost_commit() callback.
It addresses the case where virtio-scsi vq ioport RAM re-mapping
to read-only SeaBIOS ROM triggers a cpu_physical_memory_map()
NIL MemoryRegionSect...
2013 Apr 03
1
[PATCH] vhost: Add vhost_commit callback for SeaBIOS ROM region re-mapping
From: Nicholas Bellinger <nab at linux-iscsi.org>
This patch follows MST's recommendation to move checks for
vhost_verify_ring_mappings() -> cpu_physical_memory_map() operations
from MemoryListener->region_[add,del]() -> vhost_set_memory() into
final MemoryListener->commit() -> vhost_commit() callback.
It addresses the case where virtio-scsi vq ioport RAM re-mapping
to read-only SeaBIOS ROM triggers a cpu_physical_memory_map()
NIL MemoryRegionSect...
2009 Aug 13
0
[PATCHv2 3/3] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2009 Aug 13
0
[PATCHv2 3/3] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2009 Aug 17
1
[PATCHv3 3/4] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2009 Aug 17
1
[PATCHv3 3/4] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2009 Aug 10
0
[PATCH 3/3] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2009 Aug 10
0
[PATCH 3/3] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2015 May 12
2
[Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio
...> + vhost_vq_index);
> + if (r) {
> + return -errno;
> + }
> + }
> +
> s = l = virtio_queue_get_desc_size(vdev, idx);
> a = virtio_queue_get_desc_addr(vdev, idx);
> vq->desc = cpu_physical_memory_map(a, &l, 0);
2015 May 12
2
[Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio
...> + vhost_vq_index);
> + if (r) {
> + return -errno;
> + }
> + }
> +
> s = l = virtio_queue_get_desc_size(vdev, idx);
> a = virtio_queue_get_desc_addr(vdev, idx);
> vq->desc = cpu_physical_memory_map(a, &l, 0);
2009 Nov 02
2
[PATCHv4 6/6] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2009 Nov 02
2
[PATCHv4 6/6] qemu-kvm: vhost-net implementation
..., 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_KICK, &file);
+ if (r)
+ return -errno;
+ file.fd = vq->call = eventfd(0, 0);
+ r = ioctl(dev->control, VHOST_SET_VRING_CALL, &file);
+ if (r)
+ return -errno;
+
+ s = l = sizeof(struct vring_desc) * q->vring.num;
+ vq->desc = cpu_physical_memory_map(q->vring.desc, &l, 0);
+ if (!vq->desc || l != s)
+ return -ENOMEM;
+ addr.user_addr = (u_int64_t)(unsigned long)vq->desc;
+ r = ioctl(dev->control, VHOST_SET_VRING_DESC, &addr);
+ if (r < 0)
+ return -errno;
+ s = l = offsetof(struct vring_avail, ring) +
+ sizeof(u_int64_...
2015 May 06
0
[PATCH RFC 4/7] vhost: set vring endianness for legacy virtio
...virtio_is_big_endian(vdev),
+ vhost_vq_index);
+ if (r) {
+ return -errno;
+ }
+ }
+
s = l = virtio_queue_get_desc_size(vdev, idx);
a = virtio_queue_get_desc_addr(vdev, idx);
vq->desc = cpu_physical_memory_map(a, &l, 0);
@@ -747,8 +780,9 @@ static void vhost_virtqueue_stop(struct vhost_dev *dev,
struct vhost_virtqueue *vq,
unsigned idx)
{
+ int vhost_vq_index = idx - dev->vq_index;
struct vhost_vring_state state = {...
2015 May 12
0
[Qemu-devel] [PATCH RFC 4/7] vhost: set vring endianness for legacy virtio
...vhost_vq_index);
> > + if (r) {
> > + return -errno;
> > + }
> > + }
> > +
> > s = l = virtio_queue_get_desc_size(vdev, idx);
> > a = virtio_queue_get_desc_addr(vdev, idx);
> > vq->desc = cpu_physical_memory_map(a, &l, 0);
2009 Jun 04
3
TODO list for qemu+KVM networking performance v2
...[ avi: short timers are very expensive in the guest: need to exit to
set the timer, another to fire, yet another to to EOI ]
Packets are polled from virtio ring, walking descriptor linked list.
[ mst: optimize for completing in order? ]
Packet addresses are converted to guest iovec, using
cpu_physical_memory_map
[ mst: cpu_physical_memory_map could be optimized
to only handle what we actually use this for:
single page in RAM ]
With tap, we pass this to vlan and eventually call writev
on tap device
[ mst: if there's a single vlan, as is common,
we could optimize the vlan scan...
2009 Jun 04
3
TODO list for qemu+KVM networking performance v2
...[ avi: short timers are very expensive in the guest: need to exit to
set the timer, another to fire, yet another to to EOI ]
Packets are polled from virtio ring, walking descriptor linked list.
[ mst: optimize for completing in order? ]
Packet addresses are converted to guest iovec, using
cpu_physical_memory_map
[ mst: cpu_physical_memory_map could be optimized
to only handle what we actually use this for:
single page in RAM ]
With tap, we pass this to vlan and eventually call writev
on tap device
[ mst: if there's a single vlan, as is common,
we could optimize the vlan scan...
2019 Mar 25
1
[RFC PATCH] virtio_ring: Use DMA API if guest memory is encrypted
On Sat, Mar 23, 2019 at 05:01:35PM -0400, Michael S. Tsirkin wrote:
> On Thu, Mar 21, 2019 at 09:05:04PM -0300, Thiago Jung Bauermann wrote:
> > Michael S. Tsirkin <mst at redhat.com> writes:
[snip]
> > >> > Is there any justification to doing that beyond someone putting
> > >> > out slow code in the past?
> > >>
> > >> The
2013 Mar 29
8
[PATCH 0/3] virtio/vhost: Add checks for uninitialized VQs
From: Nicholas Bellinger <nab at linux-iscsi.org>
Hi folks,
This series adds a virtio_queue_valid() for use by virtio-pci code in
order to prevent opreations upon uninitialized VQs, that is currently
expected to occur during seabios setup of virtio-scsi.
This also includes a vhost specific check for uninitialized VQs in
vhost_verify_ring_mappings() to avoid this same case.
Please review.
2013 Mar 29
8
[PATCH 0/3] virtio/vhost: Add checks for uninitialized VQs
From: Nicholas Bellinger <nab at linux-iscsi.org>
Hi folks,
This series adds a virtio_queue_valid() for use by virtio-pci code in
order to prevent opreations upon uninitialized VQs, that is currently
expected to occur during seabios setup of virtio-scsi.
This also includes a vhost specific check for uninitialized VQs in
vhost_verify_ring_mappings() to avoid this same case.
Please review.