vhost: comment identified issues
1) FIXME: concurrent calls to vhost set mem table from different guests could cause mem_temp to be overrided. 2) TODO: cmpset cost quite some cpu cyles. Allow app to disable this feature if there is no contention in real workload. 3) FIXME: fix scatter gather mbuf copy to vhost vring chained buffers. Signed-off-by: Huawei Xie <huawei.xie@intel.com> Acked-by: Changchun Ouyang <changchun.ouyang@intel.com>
This commit is contained in:
parent
60ddca7654
commit
22c668d494
@ -214,6 +214,7 @@ vhost_net_ioctl(fuse_req_t req, int cmd, void *arg,
|
||||
break;
|
||||
|
||||
case VHOST_SET_MEM_TABLE:
|
||||
/*TODO fix race condition.*/
|
||||
LOG_DEBUG(VHOST_CONFIG, "(%"PRIu64") IOCTL: VHOST_SET_MEM_TABLE\n", ctx.fh);
|
||||
static struct vhost_memory mem_temp;
|
||||
|
||||
|
@ -93,6 +93,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
|
||||
|
||||
res_end_idx = res_base_idx + count;
|
||||
/* vq->last_used_idx_res is atomically updated. */
|
||||
/* TODO: Allow to disable cmpset if no concurrency in application. */
|
||||
success = rte_atomic16_cmpset(&vq->last_used_idx_res,
|
||||
res_base_idx, res_end_idx);
|
||||
} while (unlikely(success == 0));
|
||||
@ -146,6 +147,7 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
|
||||
vq->used->ring[res_cur_idx & (vq->size - 1)].len = packet_len;
|
||||
|
||||
/* Copy mbuf data to buffer */
|
||||
/* FIXME for sg mbuf and the case that desc couldn't hold the mbuf data */
|
||||
rte_memcpy((void *)(uintptr_t)buff_addr,
|
||||
rte_pktmbuf_mtod(buff, const void *),
|
||||
rte_pktmbuf_data_len(buff));
|
||||
|
Loading…
Reference in New Issue
Block a user