From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: [PATCH v2 2/3] virtio: allow nb_desc < vq_size Date: Mon, 20 Jul 2015 10:25:05 -0700 Message-ID: <1437413106-16069-3-git-send-email-stephen@networkplumber.org> References: <1437413106-16069-1-git-send-email-stephen@networkplumber.org> Cc: dev@dpdk.org To: changchun.ouyang@intel.com Return-path: Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by dpdk.org (Postfix) with ESMTP id B6EDE9655 for ; Mon, 20 Jul 2015 19:25:01 +0200 (CEST) Received: by pabkd10 with SMTP id kd10so32287462pab.2 for ; Mon, 20 Jul 2015 10:25:01 -0700 (PDT) In-Reply-To: <1437413106-16069-1-git-send-email-stephen@networkplumber.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" When running on GCE vq_size is 16K but number of Rx descriptors desired maybe less than that. Handle the situtaiton by initializing full ring but only filling the smaller number. Signed-off-by: Stephen Hemminger --- drivers/net/virtio/virtio_ethdev.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 94b7a81..d460d89 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -286,10 +286,6 @@ int virtio_dev_queue_setup(struct rte_eth_dev *dev, return -EINVAL; } - if (nb_desc != vq_size) - PMD_INIT_LOG(ERR, "Warning: nb_desc(%d) is not equal to vq size (%d), fall to vq size", - nb_desc, vq_size); - if (queue_type == VTNET_RQ) { snprintf(vq_name, sizeof(vq_name), "port%d_rvq%d", dev->data->port_id, queue_idx); @@ -317,7 +313,10 @@ int virtio_dev_queue_setup(struct rte_eth_dev *dev, vq->queue_id = queue_idx; vq->vq_queue_index = vtpci_queue_idx; vq->vq_nentries = vq_size; - vq->vq_free_cnt = vq_size; + + if (nb_desc == 0 || nb_desc > vq_size) + nb_desc = vq_size; + vq->vq_free_cnt = nb_desc; /* * Reserve a memzone for vring elements -- 2.1.4