Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2268/?format=api
https://patches.dpdk.org/api/patches/2268/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/F6F2A6264E145F47A18AB6DF8E87425D12B809FD@IRSMSX102.ger.corp.intel.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<F6F2A6264E145F47A18AB6DF8E87425D12B809FD@IRSMSX102.ger.corp.intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/F6F2A6264E145F47A18AB6DF8E87425D12B809FD@IRSMSX102.ger.corp.intel.com", "date": "2015-01-14T09:46:55", "name": "[dpdk-dev,1/2] pmd: add DCB for VF for ixgbe", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": true, "hash": "2b591dc7740543e39e9cbc84230731a2e171acc5", "submitter": { "id": 58, "url": "https://patches.dpdk.org/api/people/58/?format=api", "name": "Wodkowski, PawelX", "email": "pawelx.wodkowski@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dpdk/patch/F6F2A6264E145F47A18AB6DF8E87425D12B809FD@IRSMSX102.ger.corp.intel.com/mbox/", "series": [], "comments": "https://patches.dpdk.org/api/patches/2268/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/2268/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id CF2F05A1F;\n\tWed, 14 Jan 2015 10:47:03 +0100 (CET)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id B848F5686\n\tfor <dev@dpdk.org>; Wed, 14 Jan 2015 10:47:00 +0100 (CET)", "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby orsmga102.jf.intel.com with ESMTP; 14 Jan 2015 01:44:17 -0800", "from irsmsx106.ger.corp.intel.com ([163.33.3.31])\n\tby FMSMGA003.fm.intel.com with ESMTP; 14 Jan 2015 01:34:05 -0800", "from irsmsx102.ger.corp.intel.com ([169.254.2.213]) by\n\tIRSMSX106.ger.corp.intel.com ([169.254.8.222]) with mapi id\n\t14.03.0195.001; Wed, 14 Jan 2015 09:46:55 +0000" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"4.97,862,1389772800\"; d=\"scan'208\";a=\"440375772\"", "From": "\"Wodkowski, PawelX\" <pawelx.wodkowski@intel.com>", "To": "\"Ouyang, Changchun\" <changchun.ouyang@intel.com>, Vlad Zolotarov\n\t<vladz@cloudius-systems.com>, \"Jastrzebski, MichalX K\"\n\t<michalx.k.jastrzebski@intel.com>, \"dev@dpdk.org\" <dev@dpdk.org>", "Thread-Topic": "[dpdk-dev] [PATCH 1/2] pmd: add DCB for VF for ixgbe", "Thread-Index": "AQHQLnYf6hHH/oN/7EizLeiLa16Gspy91NsAgAD2pYCAAI5FYA==", "Date": "Wed, 14 Jan 2015 09:46:55 +0000", "Message-ID": "<F6F2A6264E145F47A18AB6DF8E87425D12B809FD@IRSMSX102.ger.corp.intel.com>", "References": "<6c3329$jtfs2e@orsmga002.jf.intel.com>\n\t<54B4EEA2.1020300@cloudius-systems.com>\n\t<F52918179C57134FAEC9EA62FA2F96251196BFB9@shsmsx102.ccr.corp.intel.com>", "In-Reply-To": "<F52918179C57134FAEC9EA62FA2F96251196BFB9@shsmsx102.ccr.corp.intel.com>", "Accept-Language": "pl-PL, en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-originating-ip": "[163.33.239.180]", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "Subject": "Re: [dpdk-dev] [PATCH 1/2] pmd: add DCB for VF for ixgbe", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "> > >\n> > > - split nb_q_per_pool to nb_rx_q_per_pool and nb_tx_q_per_pool\n> > >\n> > > Rationale:\n> > >\n> > > rx and tx number of queue might be different if RX and TX are\n> > >\n> > > configured in different mode. This allow to inform VF about\n> > >\n> > > proper number of queues.\n> >\n> >\n> > Nice move! Ouyang, this is a nice answer to my recent remarks about your\n> > PATCH4 in \"Enable VF RSS for Niantic\" series.\n> \n> After I respond your last comments, I see this, :-), I am sure we both agree it is\n> the right way to resolve it in vmdq dcb case.\n> \n\nI am now dividing this patch with your suggestions and I am little confused.\n\nIn this (DCB in SRIOV) case the primary cause for spliting nb_q_per_pool into\nnb_rx_q_per_pool and nb_tx_q_per_pool was because of this code:\n\n--\n\nThis introduced an issue when RX and TX was configure in different way. The problem was\nthat the RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool as common for RX and TX and it is\nchanged. So I did the above. But when testpmd was adjusted for DCB in SRIOV there \nwas another issue. Testpmd is pre-configuring ports by default and since\nnb_rx_q_per_pool and nb_tx_q_per_pool was already reset to 1 there was no way to \nuse it for DCB in SRIOV. So I did another modification:\n\n> +\t\tuint16_t nb_rx_q_per_pool = RTE_ETH_DEV_SRIOV(dev).nb_rx_q_per_pool;\n> +\t\tuint16_t nb_tx_q_per_pool = RTE_ETH_DEV_SRIOV(dev).nb_tx_q_per_pool;\n> +\n> \t\tswitch (dev_conf->rxmode.mq_mode) {\n> -\t\tcase ETH_MQ_RX_VMDQ_RSS:\n> \t\tcase ETH_MQ_RX_VMDQ_DCB:\n> +\t\t\tbreak;\n> +\t\tcase ETH_MQ_RX_VMDQ_RSS:\n> \t\tcase ETH_MQ_RX_VMDQ_DCB_RSS:\n> -\t\t\t/* DCB/RSS VMDQ in SRIOV mode, not implement yet */\n> +\t\t\t/* RSS, DCB+RSS VMDQ in SRIOV mode, not implement yet */\n> \t\t\tPMD_DEBUG_TRACE(\"ethdev port_id=%\" PRIu8\n> \t\t\t\t\t\" SRIOV active, \"\n> \t\t\t\t\t\"unsupported VMDQ mq_mode rx %u\\n\",\n> @@ -537,37 +560,32 @@ rte_eth_dev_check_mq_mode(uint8_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q,\n> \t\tdefault: /* ETH_MQ_RX_VMDQ_ONLY or ETH_MQ_RX_NONE */\n> \t\t\t/* if nothing mq mode configure, use default scheme */\n> \t\t\tdev->data->dev_conf.rxmode.mq_mode = ETH_MQ_RX_VMDQ_ONLY;\n> -\t\t\tif (RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool > 1)\n> -\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_q_per_pool = 1;\n> +\t\t\tif (nb_rx_q_per_pool > 1)\n> +\t\t\t\tnb_rx_q_per_pool = 1;\n> \t\t\tbreak;\n> \t\t}\n> \n> \t\tswitch (dev_conf->txmode.mq_mode) {\n> -\t\tcase ETH_MQ_TX_VMDQ_DCB:\n> -\t\t\t/* DCB VMDQ in SRIOV mode, not implement yet */\n> -\t\t\tPMD_DEBUG_TRACE(\"ethdev port_id=%\" PRIu8\n> -\t\t\t\t\t\" SRIOV active, \"\n> -\t\t\t\t\t\"unsupported VMDQ mq_mode tx %u\\n\",\n> -\t\t\t\t\tport_id, dev_conf->txmode.mq_mode);\n> -\t\t\treturn (-EINVAL);\n> +\t\tcase ETH_MQ_TX_VMDQ_DCB: /* DCB VMDQ in SRIOV mode*/\n> +\t\t\tbreak;\n> \t\tdefault: /* ETH_MQ_TX_VMDQ_ONLY or ETH_MQ_TX_NONE */\n> \t\t\t/* if nothing mq mode configure, use default scheme */\n> \t\t\tdev->data->dev_conf.txmode.mq_mode = ETH_MQ_TX_VMDQ_ONLY;\n> -\t\t\tif (RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool > 1)\n> -\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_q_per_pool = 1;\n> +\t\t\tif (nb_tx_q_per_pool > 1)\n> +\t\t\t\tnb_tx_q_per_pool = 1;\n> \t\t\tbreak;\n> \t\t}\n> \n> \t\t/* check valid queue number */\n> -\t\tif ((nb_rx_q > RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool) ||\n> -\t\t (nb_tx_q > RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool)) {\n> +\t\tif (nb_rx_q > nb_rx_q_per_pool || nb_tx_q > nb_tx_q_per_pool) {\n> \t\t\tPMD_DEBUG_TRACE(\"ethdev port_id=%d SRIOV active, \"\n> -\t\t\t\t \"queue number must less equal to %d\\n\",\n> -\t\t\t\t\tport_id, RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool);\n> +\t\t\t\t \"rx/tx queue number must less equal to %d/%d\\n\",\n> +\t\t\t\t\tport_id, RTE_ETH_DEV_SRIOV(dev).nb_rx_q_per_pool,\n> +\t\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_tx_q_per_pool);\n> \t\t\treturn (-EINVAL);\n> \t\t}\n\nFor this point I think that splitting RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool might be not\nneeded. From my point of view (DCB), since nb_q_per_pool is untouched, I think I can stay with:\n\n> +\t\tuint16_t nb_rx_q_per_pool = RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool;\n> +\t\tuint16_t nb_tx_q_per_pool = RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool;\n> +\n\nWhat do you think? I noticed that you was discussing some issue about nb_q_per_pool in face\nof RSS functionality. Can you spoke about my doubts in face of that RSS?\n\nPawel", "diff": "diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c\nindex af9e261..be3afe4 100644\n--- a/lib/librte_ether/rte_ethdev.c\n+++ b/lib/librte_ether/rte_ethdev.c\n@@ -537,8 +537,8 @@\n \t\tdefault: /* ETH_MQ_RX_VMDQ_ONLY or ETH_MQ_RX_NONE */\n \t\t\t/* if nothing mq mode configure, use default scheme */\n \t\t\tdev->data->dev_conf.rxmode.mq_mode = ETH_MQ_RX_VMDQ_ONLY;\n-\t\t\tif (RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool > 1)\n-\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_q_per_pool = 1;\n+\t\t\tif (RTE_ETH_DEV_SRIOV(dev).nb_rx_q_per_pool > 1)\n+\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_rx_q_per_pool = 1;\n \t\t\tbreak;\n \t\t}\n \n@@ -553,17 +553,18 @@\n \t\tdefault: /* ETH_MQ_TX_VMDQ_ONLY or ETH_MQ_TX_NONE */\n \t\t\t/* if nothing mq mode configure, use default scheme */\n \t\t\tdev->data->dev_conf.txmode.mq_mode = ETH_MQ_TX_VMDQ_ONLY;\n-\t\t\tif (RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool > 1)\n-\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_q_per_pool = 1;\n+\t\t\tif (RTE_ETH_DEV_SRIOV(dev).nb_tx_q_per_pool > 1)\n+\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_tx_q_per_pool = 1;\n \t\t\tbreak;\n \t\t}\n \n \t\t/* check valid queue number */\n-\t\tif ((nb_rx_q > RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool) ||\n-\t\t (nb_tx_q > RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool)) {\n+\t\tif ((nb_rx_q > RTE_ETH_DEV_SRIOV(dev).nb_rx_q_per_pool) ||\n+\t\t (nb_tx_q > RTE_ETH_DEV_SRIOV(dev).nb_tx_q_per_pool)) {\n \t\t\tPMD_DEBUG_TRACE(\"ethdev port_id=%d SRIOV active, \"\n-\t\t\t\t \"queue number must less equal to %d\\n\",\n-\t\t\t\t\tport_id, RTE_ETH_DEV_SRIOV(dev).nb_q_per_pool);\n+\t\t\t\t \"rx/tx queue number must less equal to %d/%d\\n\",\n+\t\t\t\t\tport_id, RTE_ETH_DEV_SRIOV(dev).nb_rx_q_per_pool,\n+\t\t\t\t\tRTE_ETH_DEV_SRIOV(dev).nb_tx_q_per_pool);\n \t\t\treturn (-EINVAL);\n \t\t}\n \t} else {\n", "prefixes": [ "dpdk-dev", "1/2" ] }{ "id": 2268, "url": "