Commit d0a502bc authored by Dariusz Stojaczyk's avatar Dariusz Stojaczyk Committed by Jim Harris
Browse files

bdev_virtio: removed virtio_rxtx.h header



Change-Id: I1553b86e1cd1b2032931260c26f2d1cb87df2b2b
Signed-off-by: default avatarDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/375002


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 0b13fffc
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -121,10 +121,10 @@ bdev_virtio_rw(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io)
		to_be16(&req->cdb[7], bdev_io->u.write.len / disk->block_size);
	}

	virtio_xmit_pkts(disk->hw->tx_queues[2], &vreq);
	virtio_xmit_pkts(disk->hw->vqs[2], &vreq);

	do {
		cnt = virtio_recv_pkts(disk->hw->tx_queues[2], &complete, 1);
		cnt = virtio_recv_pkts(disk->hw->vqs[2], &complete, 1);
	} while (cnt == 0);

	spdk_bdev_io_complete(bdev_io, SPDK_BDEV_IO_STATUS_SUCCESS);
@@ -243,10 +243,10 @@ scan_target(struct virtio_hw *hw, uint8_t target)
	iov[1].iov_len = sizeof(struct virtio_scsi_cmd_resp);
	iov[2].iov_len = 255;

	virtio_xmit_pkts(hw->tx_queues[2], &vreq);
	virtio_xmit_pkts(hw->vqs[2], &vreq);

	do {
		cnt = virtio_recv_pkts(hw->tx_queues[2], &complete, 1);
		cnt = virtio_recv_pkts(hw->vqs[2], &complete, 1);
	} while (cnt == 0);

	if (resp->response != VIRTIO_SCSI_S_OK || resp->status != SPDK_SCSI_STATUS_GOOD) {
@@ -265,10 +265,10 @@ scan_target(struct virtio_hw *hw, uint8_t target)
	iov[2].iov_len = 32;
	to_be32(&req->cdb[10], iov[2].iov_len);

	virtio_xmit_pkts(hw->tx_queues[2], &vreq);
	virtio_xmit_pkts(hw->vqs[2], &vreq);

	do {
		cnt = virtio_recv_pkts(hw->tx_queues[2], &complete, 1);
		cnt = virtio_recv_pkts(hw->vqs[2], &complete, 1);
	} while (cnt == 0);

	disk = calloc(1, sizeof(*disk));
+2 −8
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@
#include "virtio_pci.h"
#include "virtio_logs.h"
#include "virtqueue.h"
#include "virtio_rxtx.h"

/*
 * The set of PCI devices this driver supports
@@ -108,7 +107,6 @@ virtio_init_queue(struct virtio_hw *hw, uint16_t vtpci_queue_idx)
	char vq_name[VIRTQUEUE_MAX_NAME_SZ];
	const struct rte_memzone *mz = NULL;
	unsigned int vq_size, size;
	struct virtnet_tx *txvq = NULL;
	struct virtqueue *vq;
	int ret;

@@ -180,10 +178,7 @@ virtio_init_queue(struct virtio_hw *hw, uint16_t vtpci_queue_idx)

	virtio_init_vring(vq);

	txvq = &vq->txq;
	txvq->vq = vq;
	txvq->port_id = hw->port_id;
	txvq->mz = mz;
	vq->mz = mz;

	/* For virtio_user case (that is when hw->dev is NULL), we use
	 * virtual address. And we need properly set _offset_, please see
@@ -222,7 +217,7 @@ virtio_free_queues(struct virtio_hw *hw)
		if (!vq)
			continue;

		rte_memzone_free(vq->txq.mz);
		rte_memzone_free(vq->mz);

		rte_free(vq);
		hw->vqs[i] = NULL;
@@ -367,7 +362,6 @@ eth_virtio_dev_init(struct virtio_hw *hw, int num_queues)
	if (ret < 0)
		return ret;

	hw->tx_queues = rte_zmalloc("tx_queues", sizeof(hw->tx_queues[0]) * num_queues, RTE_CACHE_LINE_SIZE);
	hw->nb_tx_queues = num_queues;

	for (i = 0; i < num_queues; i++) {
+2 −2
Original line number Diff line number Diff line
@@ -66,10 +66,10 @@ struct virtio_req {
int  virtio_dev_tx_queue_setup(struct virtio_hw *hw, uint16_t tx_queue_id,
		uint16_t nb_tx_desc, unsigned int socket_id);

uint16_t virtio_recv_pkts(void *rx_queue, struct virtio_req **reqs,
uint16_t virtio_recv_pkts(struct virtqueue *vq, struct virtio_req **reqs,
		uint16_t nb_pkts);

uint16_t virtio_xmit_pkts(void *tx_queue, struct virtio_req *req);
uint16_t virtio_xmit_pkts(struct virtqueue *vq, struct virtio_req *req);

int eth_virtio_dev_init(struct virtio_hw *hw, int num_queues);
int virtio_dev_start(struct virtio_hw *hw);
+0 −1
Original line number Diff line number Diff line
@@ -230,7 +230,6 @@ struct virtio_hw {
	void	    *virtio_user_dev;

	struct virtqueue **vqs;
	void **tx_queues;
	uint32_t nb_tx_queues;
};

+4 −16
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@
#include "virtio_ethdev.h"
#include "virtio_pci.h"
#include "virtqueue.h"
#include "virtio_rxtx.h"

#include "spdk/env.h"

@@ -129,10 +128,9 @@ virtqueue_dequeue_burst_rx(struct virtqueue *vq, struct virtio_req **rx_pkts,
} while (0)

static inline void
virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct virtio_req *req)
virtqueue_enqueue_xmit(struct virtqueue *vq, struct virtio_req *req)
{
	struct vq_desc_extra *dxp;
	struct virtqueue *vq = txvq->vq;
	struct vring_desc *start_dp;
	uint32_t i;
	uint16_t head_idx, idx;
@@ -181,28 +179,20 @@ virtio_dev_tx_queue_setup(struct virtio_hw *hw,
			unsigned int socket_id __rte_unused)
{
	struct virtqueue *vq = hw->vqs[queue_idx];
	struct virtnet_tx *txvq;

	PMD_INIT_FUNC_TRACE();

	if (nb_desc == 0 || nb_desc > vq->vq_nentries)
		nb_desc = vq->vq_nentries;
	vq->vq_free_cnt = RTE_MIN(vq->vq_free_cnt, nb_desc);

	txvq = &vq->txq;
	txvq->queue_id = queue_idx;

	hw->tx_queues[queue_idx] = txvq;
	return 0;
}

#define VIRTIO_MBUF_BURST_SZ 64
#define DESC_PER_CACHELINE (RTE_CACHE_LINE_SIZE / sizeof(struct vring_desc))
uint16_t
virtio_recv_pkts(void *rx_queue, struct virtio_req **reqs, uint16_t nb_pkts)
virtio_recv_pkts(struct virtqueue *vq, struct virtio_req **reqs, uint16_t nb_pkts)
{
	struct virtnet_tx *rxvq = rx_queue;
	struct virtqueue *vq = rxvq->vq;
	struct virtio_hw *hw = vq->hw;
	struct virtio_req *rxm;
	uint16_t nb_used, num, nb_rx;
@@ -240,10 +230,8 @@ virtio_recv_pkts(void *rx_queue, struct virtio_req **reqs, uint16_t nb_pkts)
}

uint16_t
virtio_xmit_pkts(void *tx_queue, struct virtio_req *req)
virtio_xmit_pkts(struct virtqueue *vq, struct virtio_req *req)
{
	struct virtnet_tx *txvq = tx_queue;
	struct virtqueue *vq = txvq->vq;
	struct virtio_hw *hw = vq->hw;

	if (unlikely(hw->started == 0))
@@ -251,7 +239,7 @@ virtio_xmit_pkts(void *tx_queue, struct virtio_req *req)

	virtio_rmb();

	virtqueue_enqueue_xmit(txvq, req);
	virtqueue_enqueue_xmit(vq, req);

	vq_update_avail_idx(vq);

Loading