From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by dpdk.org (Postfix) with ESMTP id 3ABD65A7F for ; Tue, 13 Jan 2015 11:15:56 +0100 (CET) Received: by mail-wi0-f169.google.com with SMTP id n3so3972430wiv.0 for ; Tue, 13 Jan 2015 02:15:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:references:in-reply-to:content-type :content-transfer-encoding; bh=SzaVYFTjSggk6V3aNs4eCaWbM+rAYaJzwTGynBqaF3E=; b=DWCeSVkIOsOJTkTNCV3hCMjFvOEzREMtCKHj0AR3n0Hhi0icHWIqcKDphHmWmo4tQl 31osjrsn2+CxupTAaVtX+OCWty6jHRAZWJ1LZ1UXmSDFPDFVJvZpxlDfLWxc7EAalbBe HsxaNuskxPehXPV38VPtBdoHXlYzyqbd94QcZFLzsnAX0APNrOKujHbPt64IWnCR6KPF VGAay6J3FtE7CDWYA+7wSQG8n1o1RW8mqAbPmukgJexNDqNrywLnOy0o/S/k2z2h6fkv OhVSmbq+Un1n53EFTB/Ypcb0xcA4clToW8tP6H/B+TNdqNCEm5sIx1bwzLwEDdzyxdAL mKcQ== X-Gm-Message-State: ALoCoQlsntrXI/hWjeVXIX6n9KNYQBNQi2E8XcCANjfCgc4kf0rMlLWxiZz7u9PpCury+A/fHbQk X-Received: by 10.194.19.131 with SMTP id f3mr36234138wje.46.1421144156048; Tue, 13 Jan 2015 02:15:56 -0800 (PST) Received: from [10.0.0.4] ([109.66.137.113]) by mx.google.com with ESMTPSA id ep9sm13703398wid.3.2015.01.13.02.15.55 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Jan 2015 02:15:55 -0800 (PST) Message-ID: <54B4F05A.90006@cloudius-systems.com> Date: Tue, 13 Jan 2015 12:15:54 +0200 From: Vlad Zolotarov User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Michal Jastrzebski , dev@dpdk.org References: <1421077843-8492-1-git-send-email-michalx.k.jastrzebski@intel.com> <1421077843-8492-3-git-send-email-michalx.k.jastrzebski@intel.com> In-Reply-To: <1421077843-8492-3-git-send-email-michalx.k.jastrzebski@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH 2/2] testpmd: fix dcb in vt mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jan 2015 10:15:56 -0000 On 01/12/15 17:50, Michal Jastrzebski wrote: > From: Pawel Wodkowski > > This patch incorporate fixes to support DCB in SRIOV mode for testpmd. > It also clean up some old code that is not needed or wrong. The same here: could u, pls., separate the "cleanup" part of the patch from the "fixes" part into separate patches? thanks, vlad > > Signed-off-by: Pawel Wodkowski > --- > app/test-pmd/cmdline.c | 4 ++-- > app/test-pmd/testpmd.c | 39 +++++++++++++++++++++++++++++---------- > app/test-pmd/testpmd.h | 10 ---------- > 3 files changed, 31 insertions(+), 22 deletions(-) > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c > index 882a5a2..3c60087 100644 > --- a/app/test-pmd/cmdline.c > +++ b/app/test-pmd/cmdline.c > @@ -1947,9 +1947,9 @@ cmd_config_dcb_parsed(void *parsed_result, > > /* DCB in VT mode */ > if (!strncmp(res->vt_en, "on",2)) > - dcb_conf.dcb_mode = DCB_VT_ENABLED; > + dcb_conf.vt_en = 1; > else > - dcb_conf.dcb_mode = DCB_ENABLED; > + dcb_conf.vt_en = 0; > > if (!strncmp(res->pfc_en, "on",2)) { > dcb_conf.pfc_en = 1; > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index 8c69756..6677a5e 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -1733,7 +1733,8 @@ const uint16_t vlan_tags[] = { > }; > > static int > -get_eth_dcb_conf(struct rte_eth_conf *eth_conf, struct dcb_config *dcb_conf) > +get_eth_dcb_conf(struct rte_eth_conf *eth_conf, struct dcb_config *dcb_conf, > + uint16_t sriov) > { > uint8_t i; > > @@ -1741,7 +1742,7 @@ get_eth_dcb_conf(struct rte_eth_conf *eth_conf, struct dcb_config *dcb_conf) > * Builds up the correct configuration for dcb+vt based on the vlan tags array > * given above, and the number of traffic classes available for use. > */ > - if (dcb_conf->dcb_mode == DCB_VT_ENABLED) { > + if (dcb_conf->vt_en == 1) { > struct rte_eth_vmdq_dcb_conf vmdq_rx_conf; > struct rte_eth_vmdq_dcb_tx_conf vmdq_tx_conf; > > @@ -1758,9 +1759,17 @@ get_eth_dcb_conf(struct rte_eth_conf *eth_conf, struct dcb_config *dcb_conf) > vmdq_rx_conf.pool_map[i].vlan_id = vlan_tags[ i ]; > vmdq_rx_conf.pool_map[i].pools = 1 << (i % vmdq_rx_conf.nb_queue_pools); > } > - for (i = 0; i < ETH_DCB_NUM_USER_PRIORITIES; i++) { > - vmdq_rx_conf.dcb_queue[i] = i; > - vmdq_tx_conf.dcb_queue[i] = i; > + > + if (sriov == 0) { > + for (i = 0; i < ETH_DCB_NUM_USER_PRIORITIES; i++) { > + vmdq_rx_conf.dcb_queue[i] = i; > + vmdq_tx_conf.dcb_queue[i] = i; > + } > + } else { > + for (i = 0; i < ETH_DCB_NUM_USER_PRIORITIES; i++) { > + vmdq_rx_conf.dcb_queue[i] = i % dcb_conf->num_tcs; > + vmdq_tx_conf.dcb_queue[i] = i % dcb_conf->num_tcs; > + } > } > > /*set DCB mode of RX and TX of multiple queues*/ > @@ -1818,22 +1827,32 @@ init_port_dcb_config(portid_t pid,struct dcb_config *dcb_conf) > uint16_t nb_vlan; > uint16_t i; > > - /* rxq and txq configuration in dcb mode */ > - nb_rxq = 128; > - nb_txq = 128; > rx_free_thresh = 64; > > + rte_port = &ports[pid]; > memset(&port_conf,0,sizeof(struct rte_eth_conf)); > /* Enter DCB configuration status */ > dcb_config = 1; > > nb_vlan = sizeof( vlan_tags )/sizeof( vlan_tags[ 0 ]); > /*set configuration of DCB in vt mode and DCB in non-vt mode*/ > - retval = get_eth_dcb_conf(&port_conf, dcb_conf); > + retval = get_eth_dcb_conf(&port_conf, dcb_conf, rte_port->dev_info.max_vfs); > + > + /* rxq and txq configuration in dcb mode */ > + nb_rxq = rte_port->dev_info.max_rx_queues; > + nb_txq = rte_port->dev_info.max_tx_queues; > + > + if (rte_port->dev_info.max_vfs) { > + if (port_conf.rxmode.mq_mode == ETH_MQ_RX_VMDQ_DCB) > + nb_rxq /= port_conf.rx_adv_conf.vmdq_dcb_conf.nb_queue_pools; > + > + if (port_conf.txmode.mq_mode == ETH_MQ_TX_VMDQ_DCB) > + nb_txq /= port_conf.tx_adv_conf.vmdq_dcb_tx_conf.nb_queue_pools; > + } > + > if (retval < 0) > return retval; > > - rte_port = &ports[pid]; > memcpy(&rte_port->dev_conf, &port_conf,sizeof(struct rte_eth_conf)); > > rte_port->rx_conf.rx_thresh = rx_thresh; > diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h > index f8b0740..8976acc 100644 > --- a/app/test-pmd/testpmd.h > +++ b/app/test-pmd/testpmd.h > @@ -227,20 +227,10 @@ struct fwd_config { > portid_t nb_fwd_ports; /**< Nb. of ports involved. */ > }; > > -/** > - * DCB mode enable > - */ > -enum dcb_mode_enable > -{ > - DCB_VT_ENABLED, > - DCB_ENABLED > -}; > - > /* > * DCB general config info > */ > struct dcb_config { > - enum dcb_mode_enable dcb_mode; > uint8_t vt_en; > enum rte_eth_nb_tcs num_tcs; > uint8_t pfc_en;