Lines Matching defs:vsession
65 struct spdk_vhost_session vsession;
114 to_blk_session(struct spdk_vhost_session *vsession)
116 assert(vsession->vdev->backend->type == VHOST_BACKEND_BLK);
117 return (struct spdk_vhost_blk_session *)vsession;
123 task->bvsession->vsession.task_cnt++;
129 assert(task->bvsession->vsession.task_cnt > 0);
130 task->bvsession->vsession.task_cnt--;
156 vhost_vq_packed_ring_enqueue(&task->bvsession->vsession, task->vq,
161 vhost_vq_used_ring_enqueue(&task->bvsession->vsession, task->vq,
203 struct spdk_vhost_session *vsession = &bvsession->vsession;
204 struct spdk_vhost_dev *vdev = vsession->vdev;
211 rc = vhost_vq_get_desc(vsession, vq, req_idx, &desc, &desc_table, &desc_table_size);
225 vsession->name, req_idx);
229 if (spdk_unlikely(vhost_vring_desc_to_iov(vsession, iovs, &cnt, desc))) {
231 vsession->name, req_idx, cnt);
242 vsession->name, req_idx);
252 vsession->name, desc_table_size, desc_handled_cnt);
272 blk_iovs_packed_desc_setup(struct spdk_vhost_session *vsession,
295 vsession->name, req_idx);
299 if (spdk_unlikely(vhost_vring_packed_desc_to_iov(vsession, iovs, &cnt, desc))) {
301 vsession->name, req_idx, cnt);
335 struct spdk_vhost_session *vsession = &bvsession->vsession;
336 struct spdk_vhost_dev *vdev = vsession->vdev;
341 rc = vhost_vq_get_desc_packed(vsession, vq, req_idx, &desc,
348 return blk_iovs_packed_desc_setup(vsession, vq, req_idx, desc_table, desc_table_size,
357 struct spdk_vhost_session *vsession = &bvsession->vsession;
358 struct spdk_vhost_dev *vdev = vsession->vdev;
365 rc = vhost_inflight_queue_get_desc(vsession, vq->vring_inflight.inflight_packed->desc,
373 return blk_iovs_packed_desc_setup(vsession, vq, req_idx, desc_table, desc_table_size,
384 vsession->name, req_idx);
388 if (spdk_unlikely(vhost_vring_inflight_desc_to_iov(vsession, iovs, &cnt, inflight_desc))) {
390 vsession->name, req_idx, cnt);
664 task->bvsession->vsession.name, req_idx);
721 task->bvsession->vsession.name, task_idx);
731 rte_vhost_set_inflight_desc_packed(task->bvsession->vsession.vid, vq->vring_idx,
784 task->bvsession->vsession.name, task_idx);
822 struct spdk_vhost_session *vsession;
835 vsession = &bvsession->vsession;
844 vsession->name, req_idx, vq->vring.size);
845 vhost_vq_used_ring_enqueue(vsession, vq, req_idx, 0);
863 struct spdk_vhost_session *vsession = &bvsession->vsession;
881 vsession->name, reqs[i], vq->vring.size);
882 vhost_vq_used_ring_enqueue(vsession, vq, reqs[i], 0);
886 rte_vhost_set_inflight_desc_split(vsession->vid, vq->vring_idx, reqs[i]);
917 struct spdk_vhost_session *vsession = vq->vsession;
918 struct spdk_vhost_blk_session *bvsession = to_blk_session(vsession);
947 struct spdk_vhost_session *vsession = &bvsession->vsession;
951 for (q_idx = 0; q_idx < vsession->max_queues; q_idx++) {
952 rc += _vdev_vq_worker(&vsession->virtqueue[q_idx]);
961 struct spdk_vhost_session *vsession = &bvsession->vsession;
976 vhost_vq_used_ring_enqueue(vsession, vq, req_idx, 0);
982 struct spdk_vhost_session *vsession = &bvsession->vsession;
998 vsession->name, req_idx);
999 vhost_vq_packed_ring_enqueue(vsession, vq, num_descs,
1017 vhost_vq_packed_ring_enqueue(vsession, vq, num_descs,
1025 struct spdk_vhost_session *vsession = vq->vsession;
1026 struct spdk_vhost_blk_session *bvsession = to_blk_session(vsession);
1038 if (vsession->task_cnt == 0 && bvsession->io_channel) {
1058 struct spdk_vhost_session *vsession = &bvsession->vsession;
1061 for (q_idx = 0; q_idx < vsession->max_queues; q_idx++) {
1062 _no_bdev_vdev_vq_worker(&vsession->virtqueue[q_idx]);
1071 struct spdk_vhost_session *vsession = &bvsession->vsession;
1076 for (i = 0; i < vsession->max_queues; i++) {
1077 vq = &vsession->virtqueue[i];
1092 struct spdk_vhost_session *vsession = vq->vsession;
1093 struct spdk_vhost_blk_dev *bvdev = to_blk_dev(vsession->vdev);
1111 vhost_blk_vq_enable(struct spdk_vhost_session *vsession, struct spdk_vhost_virtqueue *vq)
1114 spdk_thread_send_msg(vsession->vdev->thread, _vhost_blk_vq_register_interrupt, vq);
1123 struct spdk_vhost_session *vsession = &bvsession->vsession;
1128 for (i = 0; i < vsession->max_queues; i++) {
1129 vq = &vsession->virtqueue[i];
1152 vhost_user_session_set_interrupt_mode(&bvsession->vsession, interrupt_mode);
1173 struct spdk_vhost_session *vsession,
1176 SPDK_NOTICELOG("bdev send slave msg to vid(%d)\n", vsession->vid);
1178 rte_vhost_backend_config_change(vsession->vid, false);
1180 rte_vhost_slave_config_change(vsession->vid, false);
1195 struct spdk_vhost_session *vsession,
1201 bvsession = to_blk_session(vsession);
1208 SPDK_ERRLOG("%s: Interrupt register failed\n", vsession->name);
1275 struct spdk_vhost_session *vsession = &bvsession->vsession;
1279 for (i = 0; i < vsession->max_queues; i++) {
1280 vq = &vsession->virtqueue[i];
1291 alloc_vq_task_pool(struct spdk_vhost_session *vsession, uint16_t qid)
1293 struct spdk_vhost_blk_session *bvsession = to_blk_session(vsession);
1303 vq = &vsession->virtqueue[qid];
1312 vsession->name, qid, task_cnt, SPDK_VHOST_MAX_VQ_SIZE);
1320 vsession->name, task_cnt, qid);
1336 struct spdk_vhost_session *vsession, void *unused)
1338 struct spdk_vhost_blk_session *bvsession = to_blk_session(vsession);
1344 SPDK_INFOLOG(vhost, "%s: start in progress\n", vsession->name);
1349 for (i = 0; i < vsession->max_queues; i++) {
1353 if (vsession->virtqueue[i].vring.desc == NULL) {
1354 SPDK_ERRLOG("%s: queue %"PRIu32" is empty\n", vsession->name, i);
1367 SPDK_ERRLOG("%s: I/O channel allocation failed\n", vsession->name);
1378 vsession->name, spdk_env_get_current_core());
1390 struct spdk_vhost_session *vsession = &bvsession->vsession;
1391 struct spdk_vhost_user_dev *user_dev = to_user_dev(vsession->vdev);
1394 if (vsession->task_cnt > 0 || (pthread_mutex_trylock(&user_dev->lock) != 0)) {
1395 assert(vsession->stop_retry_count > 0);
1396 vsession->stop_retry_count--;
1397 if (vsession->stop_retry_count == 0) {
1398 SPDK_ERRLOG("%s: Timedout when destroy session (task_cnt %d)\n", vsession->name,
1399 vsession->task_cnt);
1401 vhost_user_session_stop_done(vsession, -ETIMEDOUT);
1407 for (i = 0; i < vsession->max_queues; i++) {
1408 vsession->virtqueue[i].next_event_time = 0;
1409 vhost_vq_used_signal(vsession, &vsession->virtqueue[i]);
1413 vsession->name, spdk_env_get_current_core());
1422 vhost_user_session_stop_done(vsession, 0);
1430 struct spdk_vhost_session *vsession, void *unused)
1432 struct spdk_vhost_blk_session *bvsession = to_blk_session(vsession);
1442 bvsession->vsession.stop_retry_count = (SPDK_VHOST_SESSION_STOP_RETRY_TIMEOUT_IN_SEC * 1000 *