/qemu/hw/virtio/ |
H A D | vhost-shadow-virtqueue.c | 69 uint16_t vhost_svq_available_slots(const VhostShadowVirtqueue *svq) in vhost_svq_available_slots() argument 71 return svq->num_free; in vhost_svq_available_slots() 83 static bool vhost_svq_translate_addr(const VhostShadowVirtqueue *svq, in vhost_svq_translate_addr() argument 104 map = vhost_iova_tree_find_gpa(svq->iova_tree, &needle); in vhost_svq_translate_addr() 111 map = vhost_iova_tree_find_iova(svq->iova_tree, &needle); in vhost_svq_translate_addr() 154 static bool vhost_svq_vring_write_descs(VhostShadowVirtqueue *svq, hwaddr *sg, in vhost_svq_vring_write_descs() argument 159 uint16_t i = svq->free_head, last = svq->free_head; in vhost_svq_vring_write_descs() 162 vring_desc_t *descs = svq->vring.desc; in vhost_svq_vring_write_descs() 169 ok = vhost_svq_translate_addr(svq, sg, iovec, num, addr); in vhost_svq_vring_write_descs() 177 descs[i].next = cpu_to_le16(svq->desc_next[i]); in vhost_svq_vring_write_descs() [all …]
|
H A D | vhost-shadow-virtqueue.h | 41 typedef int (*VirtQueueAvailCallback)(VhostShadowVirtqueue *svq, 117 uint16_t vhost_svq_available_slots(const VhostShadowVirtqueue *svq); 118 void vhost_svq_push_elem(VhostShadowVirtqueue *svq, 120 int vhost_svq_add(VhostShadowVirtqueue *svq, const struct iovec *out_sg, 124 size_t vhost_svq_poll(VhostShadowVirtqueue *svq, size_t num); 126 void vhost_svq_set_svq_kick_fd(VhostShadowVirtqueue *svq, int svq_kick_fd); 127 void vhost_svq_set_svq_call_fd(VhostShadowVirtqueue *svq, int call_fd); 128 void vhost_svq_get_vring_addr(const VhostShadowVirtqueue *svq, 130 size_t vhost_svq_driver_area_size(const VhostShadowVirtqueue *svq); 131 size_t vhost_svq_device_area_size(const VhostShadowVirtqueue *svq); [all …]
|
H A D | vhost-vdpa.c | 593 VhostShadowVirtqueue *svq; in vhost_vdpa_init_svq() local 595 svq = vhost_svq_new(v->shadow_vq_ops, v->shadow_vq_ops_opaque); in vhost_vdpa_init_svq() 596 g_ptr_array_add(shadow_vqs, svq); in vhost_vdpa_init_svq() 1068 VhostShadowVirtqueue *svq, unsigned idx, in vhost_vdpa_svq_set_fds() argument 1074 const EventNotifier *event_notifier = &svq->hdev_kick; in vhost_vdpa_svq_set_fds() 1077 r = event_notifier_init(&svq->hdev_kick, 0); in vhost_vdpa_svq_set_fds() 1083 r = event_notifier_init(&svq->hdev_call, 0); in vhost_vdpa_svq_set_fds() 1096 event_notifier = &svq->hdev_call; in vhost_vdpa_svq_set_fds() 1107 event_notifier_set_handler(&svq->hdev_call, NULL); in vhost_vdpa_svq_set_fds() 1110 event_notifier_cleanup(&svq->hdev_kick); in vhost_vdpa_svq_set_fds() [all …]
|
H A D | virtio-balloon.c | 248 virtqueue_push(s->svq, s->stats_vq_elem, 0); in balloon_stats_poll_cb() 249 virtio_notify(vdev, s->svq); in balloon_stats_poll_cb() 894 s->svq = virtio_add_queue(vdev, 128, virtio_balloon_receive_stats); in virtio_balloon_device_realize() 934 virtio_delete_queue(s->svq); in virtio_balloon_device_unrealize() 953 virtqueue_unpop(s->svq, s->stats_vq_elem, 0); in virtio_balloon_device_reset() 966 (status & VIRTIO_CONFIG_S_DRIVER_OK) && virtqueue_rewind(s->svq, 1)) { in virtio_balloon_set_status() 969 virtio_balloon_receive_stats(vdev, s->svq); in virtio_balloon_set_status()
|
H A D | trace-events | 61 …base(void *dev, unsigned int index, unsigned int num, bool svq) "dev: %p index: %u num: %u svq: %d" 62 …base(void *dev, unsigned int index, unsigned int num, bool svq) "dev: %p index: %u num: %u svq: %d"
|
/qemu/net/ |
H A D | vhost-vdpa.c | 624 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_cvq_add() local 627 r = vhost_svq_add(svq, out_sg, out_num, NULL, in_sg, in_num, NULL, NULL); in vhost_vdpa_net_cvq_add() 646 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_svq_poll() local 647 return vhost_svq_poll(svq, cmds_in_flight); in vhost_vdpa_net_svq_poll() 702 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_load_cmd() local 707 if (vhost_svq_available_slots(svq) < 2 || in vhost_vdpa_net_load_cmd() 1457 static int vhost_vdpa_net_handle_ctrl_avail(VhostShadowVirtqueue *svq, in vhost_vdpa_net_handle_ctrl_avail() argument 1536 virtio_net_handle_ctrl_iov(svq->vdev, &model_in, 1, &out, 1); in vhost_vdpa_net_handle_ctrl_avail() 1547 vhost_svq_push_elem(svq, elem, MIN(in_len, sizeof(status))); in vhost_vdpa_net_handle_ctrl_avail() 1659 bool svq, in net_vhost_vdpa_init() argument [all …]
|
/qemu/include/hw/virtio/ |
H A D | virtio-balloon.h | 46 VirtQueue *ivq, *dvq, *svq, *free_page_vq, *reporting_vq; member
|
/qemu/qapi/ |
H A D | net.json | 513 # @x-svq: Start device with (experimental) shadow virtqueue. 518 # @unstable: Member @x-svq is experimental. 527 '*x-svq': {'type': 'bool', 'features' : [ 'unstable'] } } }
|