Home
last modified time | relevance | path

Searched refs:vq (Results 1 – 25 of 101) sorted by relevance

12345

/qemu/hw/virtio/
H A Dvirtio.c227 static void virtio_virtqueue_reset_region_cache(struct VirtQueue *vq) in virtio_virtqueue_reset_region_cache() argument
231 caches = qatomic_read(&vq->vring.caches); in virtio_virtqueue_reset_region_cache()
232 qatomic_rcu_set(&vq->vring.caches, NULL); in virtio_virtqueue_reset_region_cache()
240 VirtQueue *vq = &vdev->vq[n]; in virtio_init_region_cache() local
241 VRingMemoryRegionCaches *old = vq->vring.caches; in virtio_init_region_cache()
248 addr = vq->vring.desc; in virtio_init_region_cache()
254 packed = virtio_vdev_has_feature(vq->vdev, VIRTIO_F_RING_PACKED) ? in virtio_init_region_cache()
265 vq->vring.used, size, true); in virtio_init_region_cache()
273 vq->vring.avail, size, false); in virtio_init_region_cache()
279 qatomic_rcu_set(&vq->vring.caches, new); in virtio_init_region_cache()
[all …]
H A Diothread-vq-mapping.c23 uint16List *vq; in iothread_vq_mapping_validate() local
45 for (vq = node->value->vqs; vq; vq = vq->next) { in iothread_vq_mapping_validate()
46 if (vq->value >= num_queues) { in iothread_vq_mapping_validate()
49 vq->value, name, num_queues); in iothread_vq_mapping_validate()
53 if (test_and_set_bit(vq->value, vqs)) { in iothread_vq_mapping_validate()
55 "because it is already assigned", vq->value, name); in iothread_vq_mapping_validate()
101 uint16List *vq; in iothread_vq_mapping_apply() local
104 for (vq = node->value->vqs; vq; vq = vq->next) { in iothread_vq_mapping_apply()
105 assert(vq->value < num_queues); in iothread_vq_mapping_apply()
106 vq_aio_context[vq->value] = ctx; in iothread_vq_mapping_apply()
H A Dvhost.c221 struct vhost_virtqueue *vq = dev->vqs + i; in vhost_sync_dirty_bitmap() local
223 if (!vq->used_phys && !vq->used_size) { in vhost_sync_dirty_bitmap()
229 hwaddr used_phys = vq->used_phys, used_size = vq->used_size; in vhost_sync_dirty_bitmap()
269 end_addr, vq->used_phys, in vhost_sync_dirty_bitmap()
270 range_get_last(vq->used_phys, vq->used_size)); in vhost_sync_dirty_bitmap()
524 struct vhost_virtqueue *vq = dev->vqs + i; in vhost_verify_ring_mappings() local
526 if (vq->desc_phys == 0) { in vhost_verify_ring_mappings()
532 vq->desc, vq->desc_phys, vq->desc_size, in vhost_verify_ring_mappings()
540 vq->avail, vq->avail_phys, vq->avail_size, in vhost_verify_ring_mappings()
548 vq->used, vq->used_phys, vq->used_size, in vhost_verify_ring_mappings()
[all …]
/qemu/subprojects/libvduse/
H A Dlibvduse.c185 VduseDev *vduse_queue_get_dev(VduseVirtq *vq) in vduse_queue_get_dev() argument
187 return vq->dev; in vduse_queue_get_dev()
190 int vduse_queue_get_fd(VduseVirtq *vq) in vduse_queue_get_fd() argument
192 return vq->fd; in vduse_queue_get_fd()
228 static int vduse_queue_check_inflights(VduseVirtq *vq) in vduse_queue_check_inflights() argument
231 VduseDev *dev = vq->dev; in vduse_queue_check_inflights()
233 vq->used_idx = le16toh(vq->vring.used->idx); in vduse_queue_check_inflights()
234 vq->resubmit_num = 0; in vduse_queue_check_inflights()
235 vq->resubmit_list = NULL; in vduse_queue_check_inflights()
236 vq->counter = 0; in vduse_queue_check_inflights()
[all …]
H A Dlibvduse.h30 void (*enable_queue)(VduseDev *dev, VduseVirtq *vq);
32 void (*disable_queue)(VduseDev *dev, VduseVirtq *vq);
67 VduseDev *vduse_queue_get_dev(VduseVirtq *vq);
77 int vduse_queue_get_fd(VduseVirtq *vq);
89 void *vduse_queue_pop(VduseVirtq *vq, size_t sz);
99 void vduse_queue_push(VduseVirtq *vq, const VduseVirtqElement *elem,
107 void vduse_queue_notify(VduseVirtq *vq);
/qemu/tests/qtest/libqos/
H A Dvirtio.c146 void qvirtqueue_cleanup(const QVirtioBus *bus, QVirtQueue *vq, in qvirtqueue_cleanup() argument
149 return bus->virtqueue_cleanup(vq, alloc); in qvirtqueue_cleanup()
182 QVirtQueue *vq, gint64 timeout_us) in qvirtio_wait_queue_isr() argument
187 if (d->bus->get_queue_isr_status(d, vq)) { in qvirtio_wait_queue_isr()
200 QVirtQueue *vq, in qvirtio_wait_status_byte_no_isr() argument
208 g_assert(!d->bus->get_queue_isr_status(d, vq)); in qvirtio_wait_status_byte_no_isr()
224 QVirtQueue *vq, in qvirtio_wait_used_elem() argument
235 if (d->bus->get_queue_isr_status(d, vq) && in qvirtio_wait_used_elem()
236 qvirtqueue_get_buf(qts, vq, &got_desc_idx, len)) { in qvirtio_wait_used_elem()
249 void qvring_init(QTestState *qts, const QGuestAllocator *alloc, QVirtQueue *vq, in qvring_init() argument
[all …]
H A Dvirtio-mmio.c92 static bool qvirtio_mmio_get_queue_isr_status(QVirtioDevice *d, QVirtQueue *vq) in qvirtio_mmio_get_queue_isr_status() argument
146 static void qvirtio_mmio_set_queue_address(QVirtioDevice *d, QVirtQueue *vq) in qvirtio_mmio_set_queue_address() argument
149 uint64_t pfn = vq->desc / dev->page_size; in qvirtio_mmio_set_queue_address()
158 QVirtQueue *vq; in qvirtio_mmio_virtqueue_setup() local
161 vq = g_malloc0(sizeof(*vq)); in qvirtio_mmio_virtqueue_setup()
162 vq->vdev = d; in qvirtio_mmio_virtqueue_setup()
166 vq->index = index; in qvirtio_mmio_virtqueue_setup()
167 vq->size = qvirtio_mmio_get_queue_size(d); in qvirtio_mmio_virtqueue_setup()
168 vq->free_head = 0; in qvirtio_mmio_virtqueue_setup()
169 vq->num_free = vq->size; in qvirtio_mmio_virtqueue_setup()
[all …]
H A Dvirtio.h72 bool (*get_queue_isr_status)(QVirtioDevice *d, QVirtQueue *vq);
84 void (*set_queue_address)(QVirtioDevice *d, QVirtQueue *vq);
91 void (*virtqueue_cleanup)(QVirtQueue *vq, QGuestAllocator *alloc);
94 void (*virtqueue_kick)(QVirtioDevice *d, QVirtQueue *vq);
118 QVirtQueue *vq, gint64 timeout_us);
120 QVirtQueue *vq,
124 QVirtQueue *vq,
131 void qvirtqueue_cleanup(const QVirtioBus *bus, QVirtQueue *vq,
134 void qvring_init(QTestState *qts, const QGuestAllocator *alloc, QVirtQueue *vq,
142 uint32_t qvirtqueue_add(QTestState *qts, QVirtQueue *vq, uint64_t data,
[all …]
H A Dvirtio-pci.c122 static bool qvirtio_pci_get_queue_isr_status(QVirtioDevice *d, QVirtQueue *vq) in qvirtio_pci_get_queue_isr_status() argument
125 QVirtQueuePCI *vqpci = (QVirtQueuePCI *)vq; in qvirtio_pci_get_queue_isr_status()
193 static void qvirtio_pci_set_queue_address(QVirtioDevice *d, QVirtQueue *vq) in qvirtio_pci_set_queue_address() argument
196 uint64_t pfn = vq->desc / VIRTIO_PCI_VRING_ALIGN; in qvirtio_pci_set_queue_address()
214 vqpci->vq.vdev = d; in qvirtio_pci_virtqueue_setup_common()
215 vqpci->vq.index = index; in qvirtio_pci_virtqueue_setup_common()
216 vqpci->vq.size = d->bus->get_queue_size(d); in qvirtio_pci_virtqueue_setup_common()
217 vqpci->vq.free_head = 0; in qvirtio_pci_virtqueue_setup_common()
218 vqpci->vq.num_free = vqpci->vq.size; in qvirtio_pci_virtqueue_setup_common()
219 vqpci->vq.align = VIRTIO_PCI_VRING_ALIGN; in qvirtio_pci_virtqueue_setup_common()
[all …]
H A Dvirtio-pci-modern.c148 static bool get_queue_isr_status(QVirtioDevice *d, QVirtQueue *vq) in get_queue_isr_status() argument
153 QVirtQueuePCI *vqpci = container_of(vq, QVirtQueuePCI, vq); in get_queue_isr_status()
200 static void set_queue_address(QVirtioDevice *d, QVirtQueue *vq) in set_queue_address() argument
206 vq->desc); in set_queue_address()
209 vq->desc >> 32); in set_queue_address()
213 vq->avail); in set_queue_address()
216 vq->avail >> 32); in set_queue_address()
220 vq->used); in set_queue_address()
223 vq->used >> 32); in set_queue_address()
230 QVirtQueue *vq; in virtqueue_setup() local
[all …]
/qemu/linux-headers/asm-arm64/
H A Dsve_context.h42 #define __sve_vl_from_vq(vq) ((vq) * __SVE_VQ_BYTES) argument
44 #define __SVE_ZREG_SIZE(vq) ((__u32)(vq) * __SVE_VQ_BYTES) argument
45 #define __SVE_PREG_SIZE(vq) ((__u32)(vq) * (__SVE_VQ_BYTES / 8)) argument
46 #define __SVE_FFR_SIZE(vq) __SVE_PREG_SIZE(vq) argument
49 #define __SVE_ZREG_OFFSET(vq, n) \ argument
50 (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n))
51 #define __SVE_ZREGS_SIZE(vq) \ argument
52 (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET)
54 #define __SVE_PREGS_OFFSET(vq) \ argument
55 (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq))
[all …]
/qemu/subprojects/libvhost-user/
H A Dlibvhost-user.c287 map_ring(VuDev *dev, VuVirtq *vq) in map_ring() argument
289 vq->vring.desc = qva_to_va(dev, vq->vra.desc_user_addr); in map_ring()
290 vq->vring.used = qva_to_va(dev, vq->vra.used_user_addr); in map_ring()
291 vq->vring.avail = qva_to_va(dev, vq->vra.avail_user_addr); in map_ring()
294 DPRINT(" vring_desc at %p\n", vq->vring.desc); in map_ring()
295 DPRINT(" vring_used at %p\n", vq->vring.used); in map_ring()
296 DPRINT(" vring_avail at %p\n", vq->vring.avail); in map_ring()
298 return !(vq->vring.desc && vq->vring.used && vq->vring.avail); in map_ring()
302 vu_is_vq_usable(VuDev *dev, VuVirtq *vq) in vu_is_vq_usable() argument
308 if (likely(vq->vring.avail)) { in vu_is_vq_usable()
[all …]
H A Dlibvhost-user.h400 VuVirtq *vq; member
540 void vu_set_queue_handler(VuDev *dev, VuVirtq *vq,
555 bool vu_set_queue_host_notifier(VuDev *dev, VuVirtq *vq, int fd,
604 void vu_queue_set_notification(VuDev *dev, VuVirtq *vq, int enable);
613 bool vu_queue_enabled(VuDev *dev, VuVirtq *vq);
622 bool vu_queue_started(const VuDev *dev, const VuVirtq *vq);
631 bool vu_queue_empty(VuDev *dev, VuVirtq *vq);
640 void vu_queue_notify(VuDev *dev, VuVirtq *vq);
652 void vu_queue_notify_sync(VuDev *dev, VuVirtq *vq);
663 void *vu_queue_pop(VuDev *dev, VuVirtq *vq, size_t sz);
[all …]
/qemu/tests/qtest/
H A Dvirtio-blk-test.c124 QVirtQueue *vq; in test_basic() local
136 vq = qvirtqueue_setup(dev, alloc, 0); in test_basic()
152 free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true); in test_basic()
153 qvirtqueue_add(qts, vq, req_addr + 16, 512, false, true); in test_basic()
154 qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false); in test_basic()
156 qvirtqueue_kick(qts, dev, vq, free_head); in test_basic()
158 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in test_basic()
175 free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true); in test_basic()
176 qvirtqueue_add(qts, vq, req_addr + 16, 512, true, true); in test_basic()
177 qvirtqueue_add(qts, vq, req_addr + 528, 1, true, false); in test_basic()
[all …]
H A Dvhost-user-blk-test.c100 QVirtQueue *vq, in test_invalid_discard_write_zeroes() argument
125 free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true); in test_invalid_discard_write_zeroes()
126 qvirtqueue_add(qts, vq, req_addr + 16, sizeof(dwz_hdr2), false, true); in test_invalid_discard_write_zeroes()
127 qvirtqueue_add(qts, vq, req_addr + 16 + sizeof(dwz_hdr2), 1, true, in test_invalid_discard_write_zeroes()
130 qvirtqueue_kick(qts, dev, vq, free_head); in test_invalid_discard_write_zeroes()
132 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in test_invalid_discard_write_zeroes()
150 free_head = qvirtqueue_add(qts, vq, req_addr, 16, false, true); in test_invalid_discard_write_zeroes()
151 qvirtqueue_add(qts, vq, req_addr + 16, sizeof(dwz_hdr), false, true); in test_invalid_discard_write_zeroes()
152 qvirtqueue_add(qts, vq, req_addr + 16 + sizeof(dwz_hdr), 1, true, in test_invalid_discard_write_zeroes()
155 qvirtqueue_kick(qts, dev, vq, free_head); in test_invalid_discard_write_zeroes()
[all …]
H A Dvirtio-net-test.c32 QGuestAllocator *alloc, QVirtQueue *vq, in rx_test() argument
54 free_head = qvirtqueue_add(qts, vq, req_addr, 64, true, false); in rx_test()
55 qvirtqueue_kick(qts, dev, vq, free_head); in rx_test()
60 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in rx_test()
69 QGuestAllocator *alloc, QVirtQueue *vq, in tx_test() argument
82 free_head = qvirtqueue_add(qts, vq, req_addr, 64, false, false); in tx_test()
83 qvirtqueue_kick(qts, dev, vq, free_head); in tx_test()
85 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in tx_test()
99 QGuestAllocator *alloc, QVirtQueue *vq, in rx_stop_cont_test() argument
122 free_head = qvirtqueue_add(qts, vq, req_addr, 64, true, false); in rx_stop_cont_test()
[all …]
H A Dvirtio-iommu-test.c63 QVirtQueue *vq = v_iommu->vq; in send_attach_detach() local
80 free_head = qvirtqueue_add(qts, vq, ro_addr, ro_size, false, true); in send_attach_detach()
81 qvirtqueue_add(qts, vq, wr_addr, wr_size, true, false); in send_attach_detach()
82 qvirtqueue_kick(qts, dev, vq, free_head); in send_attach_detach()
83 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in send_attach_detach()
105 QVirtQueue *vq = v_iommu->vq; in send_map() local
125 free_head = qvirtqueue_add(qts, vq, ro_addr, ro_size, false, true); in send_map()
126 qvirtqueue_add(qts, vq, wr_addr, wr_size, true, false); in send_map()
127 qvirtqueue_kick(qts, dev, vq, free_head); in send_map()
128 qvirtio_wait_used_elem(qts, dev, vq, free_head, NULL, in send_map()
[all …]
/qemu/linux-user/aarch64/
H A Dtarget_prctl.h32 uint32_t vq, old_vq; in do_prctl_sve_set_vl() local
42 vq = MAX(arg2 / 16, 1); in do_prctl_sve_set_vl()
43 vq = MIN(vq, ARM_MAX_VQ); in do_prctl_sve_set_vl()
44 env->vfp.zcr_el[1] = vq - 1; in do_prctl_sve_set_vl()
47 vq = sve_vq(env); in do_prctl_sve_set_vl()
48 if (vq < old_vq) { in do_prctl_sve_set_vl()
49 aarch64_sve_narrow_vq(env, vq); in do_prctl_sve_set_vl()
51 return vq * 16; in do_prctl_sve_set_vl()
76 int vq, old_vq; in do_prctl_sme_set_vl() local
86 vq = MAX(arg2 / 16, 1); in do_prctl_sme_set_vl()
[all …]
H A Dsignal.c198 int i, j, vq = sve_vq(env); in target_setup_sve_record() local
203 __put_user(vq * TARGET_SVE_VQ_BYTES, &sve->vl); in target_setup_sve_record()
213 uint64_t *z = (void *)sve + TARGET_SVE_SIG_ZREG_OFFSET(vq, i); in target_setup_sve_record()
214 for (j = 0; j < vq * 2; ++j) { in target_setup_sve_record()
219 uint16_t *p = (void *)sve + TARGET_SVE_SIG_PREG_OFFSET(vq, i); in target_setup_sve_record()
220 for (j = 0; j < vq; ++j) { in target_setup_sve_record()
230 int vq = sme_vq(env); in target_setup_za_record() local
231 int vl = vq * TARGET_SVE_VQ_BYTES; in target_setup_za_record()
242 assert(size == TARGET_ZA_SIG_CONTEXT_SIZE(vq)); in target_setup_za_record()
249 uint64_t *z = (void *)za + TARGET_ZA_SIG_ZAV_OFFSET(vq, i); in target_setup_za_record()
[all …]
/qemu/block/export/
H A Dvduse-blk.c40 VduseVirtq *vq; member
64 vduse_queue_push(req->vq, &req->elem, in_len); in vduse_blk_req_complete()
65 vduse_queue_notify(req->vq); in vduse_blk_req_complete()
73 VduseVirtq *vq = req->vq; in vduse_blk_virtio_process_req() local
74 VduseDev *dev = vduse_queue_get_dev(vq); in vduse_blk_virtio_process_req()
95 static void vduse_blk_vq_handler(VduseDev *dev, VduseVirtq *vq) in vduse_blk_vq_handler() argument
102 req = vduse_queue_pop(vq, sizeof(VduseBlkReq)); in vduse_blk_vq_handler()
106 req->vq = vq; in vduse_blk_vq_handler()
118 VduseVirtq *vq = opaque; in on_vduse_vq_kick() local
119 VduseDev *dev = vduse_queue_get_dev(vq); in on_vduse_vq_kick()
[all …]
/qemu/include/hw/virtio/
H A Dvirtio.h133 VirtQueue *vq; member
258 void virtio_delete_queue(VirtQueue *vq);
260 void virtqueue_push(VirtQueue *vq, const VirtQueueElement *elem,
262 void virtqueue_flush(VirtQueue *vq, unsigned int count);
263 void virtqueue_detach_element(VirtQueue *vq, const VirtQueueElement *elem,
265 void virtqueue_unpop(VirtQueue *vq, const VirtQueueElement *elem,
267 bool virtqueue_rewind(VirtQueue *vq, unsigned int num);
268 void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem,
272 void *virtqueue_pop(VirtQueue *vq, size_t sz);
273 unsigned int virtqueue_drop_all(VirtQueue *vq);
[all …]
/qemu/target/arm/
H A Dgdbstub64.c144 int vq, len = 0; in aarch64_gdb_get_sve_reg() local
145 for (vq = 0; vq < cpu->sve_max_vq; vq++) { in aarch64_gdb_get_sve_reg()
147 env->vfp.zregs[reg].d[vq * 2 + 1], in aarch64_gdb_get_sve_reg()
148 env->vfp.zregs[reg].d[vq * 2]); in aarch64_gdb_get_sve_reg()
160 int vq, len = 0; in aarch64_gdb_get_sve_reg() local
161 for (vq = 0; vq < cpu->sve_max_vq; vq = vq + 4) { in aarch64_gdb_get_sve_reg()
162 len += gdb_get_reg64(buf, env->vfp.pregs[preg].p[vq / 4]); in aarch64_gdb_get_sve_reg()
172 int vq = sve_vqm1_for_el(env, arm_current_el(env)) + 1; in aarch64_gdb_get_sve_reg() local
173 return gdb_get_reg64(buf, vq * 2); in aarch64_gdb_get_sve_reg()
194 int vq, len = 0; in aarch64_gdb_set_sve_reg() local
[all …]
H A Dcpu64.c60 uint32_t tmp, vq, max_vq = 0; in arm_cpu_sve_finalize() local
128 vq = ctz32(tmp) + 1; in arm_cpu_sve_finalize()
130 max_vq = vq <= ARM_MAX_VQ ? vq - 1 : ARM_MAX_VQ; in arm_cpu_sve_finalize()
135 error_setg(errp, "cannot disable sve%d", vq * 128); in arm_cpu_sve_finalize()
138 vq * 128); in arm_cpu_sve_finalize()
181 vq = 32 - clz32(tmp); in arm_cpu_sve_finalize()
182 if (vq_map & (1 << (vq - 1))) { in arm_cpu_sve_finalize()
186 "the vector length %d-bits.\n", vq * 128); in arm_cpu_sve_finalize()
191 error_setg(errp, "cannot enable sve%d", vq * 128); in arm_cpu_sve_finalize()
194 "the vector length %d-bits.\n", vq * 128); in arm_cpu_sve_finalize()
[all …]
H A Darch_dump.c146 static off_t sve_zreg_offset(uint32_t vq, int n) in sve_zreg_offset() argument
149 return ROUND_UP(off, 16) + vq * 16 * n; in sve_zreg_offset()
152 static off_t sve_preg_offset(uint32_t vq, int n) in sve_preg_offset() argument
154 return sve_zreg_offset(vq, 32) + vq * 16 / 8 * n; in sve_preg_offset()
157 static off_t sve_fpsr_offset(uint32_t vq) in sve_fpsr_offset() argument
159 off_t off = sve_preg_offset(vq, 17); in sve_fpsr_offset()
163 static off_t sve_fpcr_offset(uint32_t vq) in sve_fpcr_offset() argument
165 return sve_fpsr_offset(vq) + sizeof(uint32_t); in sve_fpcr_offset()
173 static size_t sve_size_vq(uint32_t vq) in sve_size_vq() argument
175 off_t off = sve_fpcr_offset(vq) + sizeof(uint32_t); in sve_size_vq()
[all …]
/qemu/hw/char/
H A Dvirtio-serial-bus.c54 static VirtIOSerialPort *find_port_by_vq(VirtIOSerial *vser, VirtQueue *vq) in find_port_by_vq() argument
59 if (port->ivq == vq || port->ovq == vq) in find_port_by_vq()
104 VirtQueue *vq; in write_to_port() local
107 vq = port->ivq; in write_to_port()
108 if (!virtio_queue_ready(vq)) { in write_to_port()
116 elem = virtqueue_pop(vq, sizeof(VirtQueueElement)); in write_to_port()
125 virtqueue_push(vq, elem, len); in write_to_port()
129 virtio_notify(VIRTIO_DEVICE(port->vser), vq); in write_to_port()
133 static void discard_vq_data(VirtQueue *vq, VirtIODevice *vdev) in discard_vq_data() argument
137 if (!virtio_queue_ready(vq)) { in discard_vq_data()
[all …]

12345