/openbmc/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() 82 static bool vhost_svq_translate_addr(const VhostShadowVirtqueue *svq, in vhost_svq_translate_addr() argument 98 const DMAMap *map = vhost_iova_tree_find_iova(svq->iova_tree, &needle); in vhost_svq_translate_addr() 138 static bool vhost_svq_vring_write_descs(VhostShadowVirtqueue *svq, hwaddr *sg, in vhost_svq_vring_write_descs() argument 142 uint16_t i = svq->free_head, last = svq->free_head; in vhost_svq_vring_write_descs() 145 vring_desc_t *descs = svq->vring.desc; in vhost_svq_vring_write_descs() 152 ok = vhost_svq_translate_addr(svq, sg, iovec, num); in vhost_svq_vring_write_descs() 160 descs[i].next = cpu_to_le16(svq->desc_next[i]); in vhost_svq_vring_write_descs() 168 i = 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, 123 size_t vhost_svq_poll(VhostShadowVirtqueue *svq, size_t num); 125 void vhost_svq_set_svq_kick_fd(VhostShadowVirtqueue *svq, int svq_kick_fd); 126 void vhost_svq_set_svq_call_fd(VhostShadowVirtqueue *svq, int call_fd); 127 void vhost_svq_get_vring_addr(const VhostShadowVirtqueue *svq, 129 size_t vhost_svq_driver_area_size(const VhostShadowVirtqueue *svq); 130 size_t vhost_svq_device_area_size(const VhostShadowVirtqueue *svq); [all …]
|
H A D | vhost-vdpa.c | 587 VhostShadowVirtqueue *svq; in vhost_vdpa_init_svq() local 589 svq = vhost_svq_new(v->shadow_vq_ops, v->shadow_vq_ops_opaque); in vhost_vdpa_init_svq() 590 g_ptr_array_add(shadow_vqs, svq); in vhost_vdpa_init_svq() 1050 VhostShadowVirtqueue *svq, unsigned idx, in vhost_vdpa_svq_set_fds() argument 1056 const EventNotifier *event_notifier = &svq->hdev_kick; in vhost_vdpa_svq_set_fds() 1059 r = event_notifier_init(&svq->hdev_kick, 0); in vhost_vdpa_svq_set_fds() 1065 r = event_notifier_init(&svq->hdev_call, 0); in vhost_vdpa_svq_set_fds() 1078 event_notifier = &svq->hdev_call; in vhost_vdpa_svq_set_fds() 1089 event_notifier_set_handler(&svq->hdev_call, NULL); in vhost_vdpa_svq_set_fds() 1092 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() 931 virtio_delete_queue(s->svq); in virtio_balloon_device_unrealize() 950 virtqueue_unpop(s->svq, s->stats_vq_elem, 0); in virtio_balloon_device_reset() 963 (status & VIRTIO_CONFIG_S_DRIVER_OK) && virtqueue_rewind(s->svq, 1)) { in virtio_balloon_set_status() 966 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"
|
/openbmc/linux/drivers/vhost/ |
H A D | scsi.c | 214 struct vhost_scsi_virtqueue *svq; member 283 struct vhost_scsi_virtqueue *svq; in vhost_scsi_get_inflight() local 285 svq = container_of(vq, struct vhost_scsi_virtqueue, vq); in vhost_scsi_get_inflight() 286 inflight = &svq->inflights[svq->inflight_idx]; in vhost_scsi_get_inflight() 330 struct vhost_scsi_virtqueue *svq = container_of(tv_cmd->tvc_vq, in vhost_scsi_release_cmd_res() local 349 sbitmap_clear_bit(&svq->scsi_tags, se_cmd->map_tag); in vhost_scsi_release_cmd_res() 366 struct vhost_virtqueue *vq = &tmf->svq->vq; in vhost_scsi_release_cmd() 372 struct vhost_scsi_virtqueue *svq = container_of(cmd->tvc_vq, in vhost_scsi_release_cmd() local 375 llist_add(&cmd->tvc_completion_list, &svq->completion_list); in vhost_scsi_release_cmd() 376 vhost_vq_work_queue(&svq->vq, &svq->completion_work); in vhost_scsi_release_cmd() [all …]
|
/openbmc/linux/drivers/rpmsg/ |
H A D | virtio_rpmsg_bus.c | 58 struct virtqueue *rvq, *svq; member 456 ret = virtqueue_get_buf(vrp->svq, &len); in get_a_tx_buf() 487 virtqueue_enable_cb(vrp->svq); in rpmsg_upref_sleepers() 514 virtqueue_disable_cb(vrp->svq); in rpmsg_downref_sleepers() 633 err = virtqueue_add_outbuf(vrp->svq, &sg, 1, msg, GFP_KERNEL); in rpmsg_send_offchannel_raw() 645 virtqueue_kick(vrp->svq); in rpmsg_send_offchannel_raw() 816 static void rpmsg_xmit_done(struct virtqueue *svq) in rpmsg_xmit_done() argument 818 struct virtproc_info *vrp = svq->vdev->priv; in rpmsg_xmit_done() 820 dev_dbg(&svq->vdev->dev, "%s\n", __func__); in rpmsg_xmit_done() 899 vrp->svq = vqs[1]; in rpmsg_probe() [all …]
|
/openbmc/qemu/net/ |
H A D | vhost-vdpa.c | 643 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_cvq_add() local 646 r = vhost_svq_add(svq, out_sg, out_num, in_sg, in_num, NULL); in vhost_vdpa_net_cvq_add() 665 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_svq_poll() local 666 return vhost_svq_poll(svq, cmds_in_flight); in vhost_vdpa_net_svq_poll() 721 VhostShadowVirtqueue *svq = g_ptr_array_index(s->vhost_vdpa.shadow_vqs, 0); in vhost_vdpa_net_load_cmd() local 726 if (vhost_svq_available_slots(svq) < 2 || in vhost_vdpa_net_load_cmd() 1476 static int vhost_vdpa_net_handle_ctrl_avail(VhostShadowVirtqueue *svq, in vhost_vdpa_net_handle_ctrl_avail() argument 1555 virtio_net_handle_ctrl_iov(svq->vdev, &model_in, 1, &out, 1); in vhost_vdpa_net_handle_ctrl_avail() 1566 vhost_svq_push_elem(svq, elem, MIN(in_len, sizeof(status))); in vhost_vdpa_net_handle_ctrl_avail() 1678 bool svq, in net_vhost_vdpa_init() argument [all …]
|
/openbmc/qemu/include/hw/virtio/ |
H A D | virtio-balloon.h | 45 VirtQueue *ivq, *dvq, *svq, *free_page_vq, *reporting_vq; member
|
/openbmc/qemu/qapi/ |
H A D | net.json | 513 # @x-svq: Start device with (experimental) shadow virtqueue. (Since 518 # @unstable: Member @x-svq is experimental. 527 '*x-svq': {'type': 'bool', 'features' : [ 'unstable'] } } }
|