From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C1D40A0597; Wed, 8 Apr 2020 08:12:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C44191BF44; Wed, 8 Apr 2020 08:11:59 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 7AA5B1BF3C for ; Wed, 8 Apr 2020 08:11:57 +0200 (CEST) IronPort-SDR: wnoGdvynbH5JSLe1xIRHwS7LU2vKB1gPL1Syaxc+CKVaJXhZnzyFnGX1KMH/ZCoQ8suFcVaJxK CaNZW/M6qBYg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Apr 2020 23:11:56 -0700 IronPort-SDR: cUhAxrrcBJ4XnZSbRqO2wFghWEMa4FyYh5jfZWbPYfzJq60LyPu3UN0hAKXNFjq9lpUDDJaR+F mzdPzr/7YWmA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,357,1580803200"; d="scan'208";a="252248762" Received: from yexl-server.sh.intel.com (HELO localhost) ([10.67.117.17]) by orsmga008.jf.intel.com with ESMTP; 07 Apr 2020 23:11:55 -0700 Date: Wed, 8 Apr 2020 14:08:09 +0800 From: Ye Xiaolong To: Marvin Liu Cc: maxime.coquelin@redhat.com, zhihong.wang@intel.com, harry.van.haaren@intel.com, dev@dpdk.org Message-ID: <20200408060809.GB114503@intel.com> References: <20200313174230.74661-1-yong.liu@intel.com> <20200408085313.4487-1-yong.liu@intel.com> <20200408085313.4487-2-yong.liu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200408085313.4487-2-yong.liu@intel.com> User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [dpdk-dev] [PATCH v3 1/7] net/virtio: add Rx free threshold setting X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 04/08, Marvin Liu wrote: >Introduce free threshold setting in Rx queue, default value of it is 32. >Limiated threshold size to multiple of four as only vectorized packed Rx s/Limiated/Limit >function will utilize it. Virtio driver will rearm Rx queue when more >than rx_free_thresh descs were dequeued. > >Signed-off-by: Marvin Liu > >diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c >index 752faa0f6..3a2dbc2e0 100644 >--- a/drivers/net/virtio/virtio_rxtx.c >+++ b/drivers/net/virtio/virtio_rxtx.c >@@ -936,6 +936,7 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev, > struct virtio_hw *hw = dev->data->dev_private; > struct virtqueue *vq = hw->vqs[vtpci_queue_idx]; > struct virtnet_rx *rxvq; >+ uint16_t rx_free_thresh; > > PMD_INIT_FUNC_TRACE(); > >@@ -944,6 +945,28 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev, > return -EINVAL; > } > >+ rx_free_thresh = rx_conf->rx_free_thresh; >+ if (rx_free_thresh == 0) >+ rx_free_thresh = >+ RTE_MIN(vq->vq_nentries / 4, DEFAULT_RX_FREE_THRESH); >+ >+ if (rx_free_thresh & 0x3) { >+ RTE_LOG(ERR, PMD, "rx_free_thresh must be multiples of four." >+ " (rx_free_thresh=%u port=%u queue=%u)\n", >+ rx_free_thresh, dev->data->port_id, queue_idx); >+ return -EINVAL; >+ } >+ >+ if (rx_free_thresh >= vq->vq_nentries) { >+ RTE_LOG(ERR, PMD, "rx_free_thresh must be less than the " >+ "number of RX entries (%u)." >+ " (rx_free_thresh=%u port=%u queue=%u)\n", >+ vq->vq_nentries, >+ rx_free_thresh, dev->data->port_id, queue_idx); >+ return -EINVAL; >+ } >+ vq->vq_free_thresh = rx_free_thresh; >+ > 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); >diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h >index 58ad7309a..6301c56b2 100644 >--- a/drivers/net/virtio/virtqueue.h >+++ b/drivers/net/virtio/virtqueue.h >@@ -18,6 +18,8 @@ > > struct rte_mbuf; > >+#define DEFAULT_RX_FREE_THRESH 32 What about naming it VIRITO_DEFAULT_RX_FREE_THRESH? Thanks, Xiaolong >+ > /* > * Per virtio_ring.h in Linux. > * For virtio_pci on SMP, we don't need to order with respect to MMIO >-- >2.17.1 >