List patch comments

GET /api/patches/392/comments/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Link: 
<https://patches.dpdk.org/api/patches/392/comments/?format=api&page=1>; rel="first",
<https://patches.dpdk.org/api/patches/392/comments/?format=api&page=1>; rel="last"
Vary: Accept
[ { "id": 837, "web_url": "https://patches.dpdk.org/comment/837/", "msgid": "<20140917152945.GF4213@localhost.localdomain>", "list_archive_url": "https://inbox.dpdk.org/dev/20140917152945.GF4213@localhost.localdomain", "date": "2014-09-17T15:29:45", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 32, "url": "https://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Wed, Sep 17, 2014 at 11:01:40AM +0100, Bruce Richardson wrote:\n> To improve performance by using bulk alloc or vectored RX routines, we\n> need to set rx free threshold (rxfreet) value to 32, so make this the\n> testpmd default.\n> \n> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>\n> ---\n> app/test-pmd/testpmd.c | 2 +-\n> 1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\n> index 9f6cdc4..5751607 100644\n> --- a/app/test-pmd/testpmd.c\n> +++ b/app/test-pmd/testpmd.c\n> @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> /*\n> * Configurable value of RX free threshold.\n> */\n> -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */\n> +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets */\n> \n\nWhy 32? Was that an experimentally determined value? Does it hold true for all\nPMD's?", "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 42D6E5916;\n\tWed, 17 Sep 2014 17:24:20 +0200 (CEST)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id 3EBF1683A\n\tfor <dev@dpdk.org>; Wed, 17 Sep 2014 17:24:18 +0200 (CEST)", "from nat-pool-rdu-u.redhat.com ([66.187.233.203] helo=localhost)\n\tby smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63)\n\t(envelope-from <nhorman@tuxdriver.com>)\n\tid 1XUHB1-0001MT-Sh; Wed, 17 Sep 2014 11:29:57 -0400" ], "Date": "Wed, 17 Sep 2014 11:29:45 -0400", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "Bruce Richardson <bruce.richardson@intel.com>", "Message-ID": "<20140917152945.GF4213@localhost.localdomain>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<1410948102-12740-4-git-send-email-bruce.richardson@intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<1410948102-12740-4-git-send-email-bruce.richardson@intel.com>", "User-Agent": "Mutt/1.5.23 (2014-03-12)", "X-Spam-Score": "-2.9 (--)", "X-Spam-Status": "No", "Cc": "dev@dpdk.org", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 866, "web_url": "https://patches.dpdk.org/comment/866/", "msgid": "<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com", "date": "2014-09-18T15:53:33", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 20, "url": "https://patches.dpdk.org/api/people/20/?format=api", "name": "Bruce Richardson", "email": "bruce.richardson@intel.com" }, "content": "> -----Original Message-----\n> From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> Sent: Wednesday, September 17, 2014 4:30 PM\n> To: Richardson, Bruce\n> Cc: dev@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> \n> On Wed, Sep 17, 2014 at 11:01:40AM +0100, Bruce Richardson wrote:\n> > To improve performance by using bulk alloc or vectored RX routines, we\n> > need to set rx free threshold (rxfreet) value to 32, so make this the\n> > testpmd default.\n> >\n> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>\n> > ---\n> > app/test-pmd/testpmd.c | 2 +-\n> > 1 file changed, 1 insertion(+), 1 deletion(-)\n> >\n> > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\n> > index 9f6cdc4..5751607 100644\n> > --- a/app/test-pmd/testpmd.c\n> > +++ b/app/test-pmd/testpmd.c\n> > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > /*\n> > * Configurable value of RX free threshold.\n> > */\n> > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */\n> > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets\n> */\n> >\n> \n> Why 32? Was that an experimentally determined value? Does it hold true for all\n> PMD's?\n\nThis is primarily for the ixgbe PMD, which is right now the most highly tuned driver, but it works fine for all other ones too, as far as I'm aware. Basically, this is the minimum setting needed to enable either the bulk alloc or vector RX routines inside the ixgbe driver, so it's best made the default for that reason. Please see \" check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in the same file. \n\n/Bruce", "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 91251B3BF;\n\tThu, 18 Sep 2014 17:49:19 +0200 (CEST)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id EB0B7B3BD\n\tfor <dev@dpdk.org>; Thu, 18 Sep 2014 17:49:17 +0200 (CEST)", "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga102.jf.intel.com with ESMTP; 18 Sep 2014 08:48:26 -0700", "from irsmsx102.ger.corp.intel.com ([163.33.3.155])\n\tby orsmga002.jf.intel.com with ESMTP; 18 Sep 2014 08:54:36 -0700", "from irsmsx109.ger.corp.intel.com (163.33.3.23) by\n\tIRSMSX102.ger.corp.intel.com (163.33.3.155) with Microsoft SMTP\n\tServer (TLS) id 14.3.195.1; Thu, 18 Sep 2014 16:53:34 +0100", "from irsmsx103.ger.corp.intel.com ([169.254.3.112]) by\n\tIRSMSX109.ger.corp.intel.com ([169.254.13.200]) with mapi id\n\t14.03.0195.001; Thu, 18 Sep 2014 16:53:34 +0100" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.04,548,1406617200\"; d=\"scan'208\";a=\"604881239\"", "From": "\"Richardson, Bruce\" <bruce.richardson@intel.com>", "To": "Neil Horman <nhorman@tuxdriver.com>", "Thread-Topic": "[dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "Thread-Index": "AQHP0l5oUFb5FU7UokiprGez8jDZ8pwFYuqAgAASbWA=", "Date": "Thu, 18 Sep 2014 15:53:33 +0000", "Message-ID": "<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<1410948102-12740-4-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>", "In-Reply-To": "<20140917152945.GF4213@localhost.localdomain>", "Accept-Language": "en-GB, 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", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 869, "web_url": "https://patches.dpdk.org/comment/869/", "msgid": "<3289751.t83Qqk3rkH@xps13>", "list_archive_url": "https://inbox.dpdk.org/dev/3289751.t83Qqk3rkH@xps13", "date": "2014-09-18T17:13:52", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 1, "url": "https://patches.dpdk.org/api/people/1/?format=api", "name": "Thomas Monjalon", "email": "thomas.monjalon@6wind.com" }, "content": "2014-09-18 15:53, Richardson, Bruce:\n> > > --- a/app/test-pmd/testpmd.c\n> > > +++ b/app/test-pmd/testpmd.c\n> > > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > > /*\n> > > * Configurable value of RX free threshold.\n> > > */\n> > > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */\n> > > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets\n> > */\n> > >\n> > \n> > Why 32? Was that an experimentally determined value?\n> > Does it hold true for all PMD's?\n> \n> This is primarily for the ixgbe PMD, which is right now the most\n> highly tuned driver, but it works fine for all other ones too,\n> as far as I'm aware.\n\nYes, you are changing this value for all PMDs but you're targetting\nonly one.\nThese thresholds are dependent of the PMD implementation. There's\nsomething wrong here.\n\n> Basically, this is the minimum setting needed to enable either the\n> bulk alloc or vector RX routines inside the ixgbe driver, so it's\n> best made the default for that reason. Please see\n> \"check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and\n> RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in\n> the same file.\n\nSince this parameter is so important, it could be a default value somewhere.\n\nI think we should split generic tuning parameters and tuning parameters\nrelated to driver implementation or specific hardware.\nThen we should provide some good default values for each of them.\nAt last, if needed, applications should be able to easily tune the\npmd-specific parameters.\n\nThoughts?", "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 94B4BB3BE;\n\tThu, 18 Sep 2014 19:08:26 +0200 (CEST)", "from mail-we0-f175.google.com (mail-we0-f175.google.com\n\t[74.125.82.175]) by dpdk.org (Postfix) with ESMTP id 4342EB3BD\n\tfor <dev@dpdk.org>; Thu, 18 Sep 2014 19:08:24 +0200 (CEST)", "by mail-we0-f175.google.com with SMTP id w61so1268525wes.20\n\tfor <dev@dpdk.org>; Thu, 18 Sep 2014 10:14:10 -0700 (PDT)", "from xps13.localnet (14.21.90.92.rev.sfr.net. [92.90.21.14])\n\tby mx.google.com with ESMTPSA id\n\to3sm3684221wiy.18.2014.09.18.10.14.08 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tThu, 18 Sep 2014 10:14:09 -0700 (PDT)" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:organization\n\t:user-agent:in-reply-to:references:mime-version\n\t:content-transfer-encoding:content-type;\n\tbh=SBDNefg+MDXcDa9HHkXGHv1Dyq9KBPyVD64Ypa8SK50=;\n\tb=XNaB1FZF8Y1hi1OMUvqPRkZYJDjaZJYlgfbjItw2Bg1UX3xCHzWHVuF8Hov0PlVAdi\n\tIHGclKapXrxjIwIYbTLk1nbEortHN7oL4+2NyLs0wlXcvlKb+s2zu6v1LVieIpeS9PNQ\n\tAOGyEclJzSBBbfCuST31+rQrLpYiXq2C/MI8vQYvnFbYMrkql/JFRcJXioWF10Myctgw\n\tLbqnt8/RBhvZq1/gV2/PAiWEdCav2BMJi7ep62G7ePaIfIaY5W3/Jfl3CXMU31AHo7P4\n\tc1btmXOO7W3pJ64VEduB+AiMteaTZvdi+0kORnsw7X9KYMM3MvJHqLh/FzBHAtX8TAe+\n\t39/A==", "X-Gm-Message-State": "ALoCoQlmP1E3WfEtFxNCkgHrBiiFJArF0XzZCW7UidrvabuaCMWzRTHkSsCMBr14v/REXWhW5Qme", "X-Received": "by 10.194.77.111 with SMTP id r15mr6542732wjw.27.1411060450546; \n\tThu, 18 Sep 2014 10:14:10 -0700 (PDT)", "From": "Thomas Monjalon <thomas.monjalon@6wind.com>", "To": "\"Richardson, Bruce\" <bruce.richardson@intel.com>", "Date": "Thu, 18 Sep 2014 19:13:52 +0200", "Message-ID": "<3289751.t83Qqk3rkH@xps13>", "Organization": "6WIND", "User-Agent": "KMail/4.13.3 (Linux/3.15.8-1-ARCH; KDE/4.13.3; x86_64; ; )", "In-Reply-To": "<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>\n\t<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "7Bit", "Content-Type": "text/plain; charset=\"us-ascii\"", "Cc": "dev@dpdk.org", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 871, "web_url": "https://patches.dpdk.org/comment/871/", "msgid": "<20140918180336.GM20389@hmsreliant.think-freely.org>", "list_archive_url": "https://inbox.dpdk.org/dev/20140918180336.GM20389@hmsreliant.think-freely.org", "date": "2014-09-18T18:03:36", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 32, "url": "https://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Thu, Sep 18, 2014 at 03:53:33PM +0000, Richardson, Bruce wrote:\n> > -----Original Message-----\n> > From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> > Sent: Wednesday, September 17, 2014 4:30 PM\n> > To: Richardson, Bruce\n> > Cc: dev@dpdk.org\n> > Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> > \n> > On Wed, Sep 17, 2014 at 11:01:40AM +0100, Bruce Richardson wrote:\n> > > To improve performance by using bulk alloc or vectored RX routines, we\n> > > need to set rx free threshold (rxfreet) value to 32, so make this the\n> > > testpmd default.\n> > >\n> > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>\n> > > ---\n> > > app/test-pmd/testpmd.c | 2 +-\n> > > 1 file changed, 1 insertion(+), 1 deletion(-)\n> > >\n> > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c\n> > > index 9f6cdc4..5751607 100644\n> > > --- a/app/test-pmd/testpmd.c\n> > > +++ b/app/test-pmd/testpmd.c\n> > > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > > /*\n> > > * Configurable value of RX free threshold.\n> > > */\n> > > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */\n> > > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets\n> > */\n> > >\n> > \n> > Why 32? Was that an experimentally determined value? Does it hold true for all\n> > PMD's?\n> \n> This is primarily for the ixgbe PMD, which is right now the most highly tuned driver, but it works fine for all other ones too, as far as I'm aware. Basically, this is the minimum setting needed to enable either the bulk alloc or vector RX routines inside the ixgbe driver, so it's best made the default for that reason. Please see \" check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in the same file. \n> \n\nMaybe codify that information as a macro, or with some documentation right above\nthe setting, so people not using ixgbe don't have to wonder where that value\ncame from? :)\n\nNeil\n\n> /Bruce\n> \n>", "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 16D16B3C4;\n\tThu, 18 Sep 2014 19:58:01 +0200 (CEST)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id C9095B3BC\n\tfor <dev@dpdk.org>; Thu, 18 Sep 2014 19:57:58 +0200 (CEST)", "from hmsreliant.think-freely.org\n\t([2001:470:8:a08:7aac:c0ff:fec2:933b] helo=localhost)\n\tby smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63)\n\t(envelope-from <nhorman@tuxdriver.com>)\n\tid 1XUg3O-0003Tb-Iv; Thu, 18 Sep 2014 14:03:44 -0400" ], "Date": "Thu, 18 Sep 2014 14:03:36 -0400", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "\"Richardson, Bruce\" <bruce.richardson@intel.com>", "Message-ID": "<20140918180336.GM20389@hmsreliant.think-freely.org>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<1410948102-12740-4-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>\n\t<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>", "User-Agent": "Mutt/1.5.23 (2014-03-12)", "X-Spam-Score": "-2.9 (--)", "X-Spam-Status": "No", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 872, "web_url": "https://patches.dpdk.org/comment/872/", "msgid": "<20140918180841.GN20389@hmsreliant.think-freely.org>", "list_archive_url": "https://inbox.dpdk.org/dev/20140918180841.GN20389@hmsreliant.think-freely.org", "date": "2014-09-18T18:08:41", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 32, "url": "https://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Thu, Sep 18, 2014 at 07:13:52PM +0200, Thomas Monjalon wrote:\n> 2014-09-18 15:53, Richardson, Bruce:\n> > > > --- a/app/test-pmd/testpmd.c\n> > > > +++ b/app/test-pmd/testpmd.c\n> > > > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > > > /*\n> > > > * Configurable value of RX free threshold.\n> > > > */\n> > > > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by default. */\n> > > > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32 packets\n> > > */\n> > > >\n> > > \n> > > Why 32? Was that an experimentally determined value?\n> > > Does it hold true for all PMD's?\n> > \n> > This is primarily for the ixgbe PMD, which is right now the most\n> > highly tuned driver, but it works fine for all other ones too,\n> > as far as I'm aware.\n> \n> Yes, you are changing this value for all PMDs but you're targetting\n> only one.\n> These thresholds are dependent of the PMD implementation. There's\n> something wrong here.\n> \nI agree. Its fine to do this, but it does seem like the sample application\nshould document why it does this and make note of the fact that other PMDs may\nhave a separate optimal value.\n\n> > Basically, this is the minimum setting needed to enable either the\n> > bulk alloc or vector RX routines inside the ixgbe driver, so it's\n> > best made the default for that reason. Please see\n> > \"check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and\n> > RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in\n> > the same file.\n> \n> Since this parameter is so important, it could be a default value somewhere.\n> \n> I think we should split generic tuning parameters and tuning parameters\n> related to driver implementation or specific hardware.\n> Then we should provide some good default values for each of them.\n> At last, if needed, applications should be able to easily tune the\n> pmd-specific parameters.\n> \nI like this idea. I've not got an idea of how much work it is to do so, but in\nprinciple it makes sense.\n\nPerhaps for the immediate need, since rte_eth_rx_queue_setup allows the config\nstruct to get passed directly to PMDs, we can create a reserved value\nRTE_ETH_RX_FREE_THRESH_OPTIMAL, that instructs the pmd to select whatever\nthreshold is optimal for its own hardware?\n\nNeil\n\n> Thoughts?\n> \n> -- \n> Thomas\n>", "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 551E0B39B;\n\tThu, 18 Sep 2014 20:03:12 +0200 (CEST)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id ADF3E2E81\n\tfor <dev@dpdk.org>; Thu, 18 Sep 2014 20:03:10 +0200 (CEST)", "from hmsreliant.think-freely.org\n\t([2001:470:8:a08:7aac:c0ff:fec2:933b] helo=localhost)\n\tby smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63)\n\t(envelope-from <nhorman@tuxdriver.com>)\n\tid 1XUg8I-0003Ub-7F; Thu, 18 Sep 2014 14:08:54 -0400" ], "Date": "Thu, 18 Sep 2014 14:08:41 -0400", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "Thomas Monjalon <thomas.monjalon@6wind.com>", "Message-ID": "<20140918180841.GN20389@hmsreliant.think-freely.org>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>\n\t<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>\n\t<3289751.t83Qqk3rkH@xps13>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<3289751.t83Qqk3rkH@xps13>", "User-Agent": "Mutt/1.5.23 (2014-03-12)", "X-Spam-Score": "-2.9 (--)", "X-Spam-Status": "No", "Cc": "dev@dpdk.org", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 878, "web_url": "https://patches.dpdk.org/comment/878/", "msgid": "<59AF69C657FD0841A61C55336867B5B0343F38AD@IRSMSX103.ger.corp.intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/59AF69C657FD0841A61C55336867B5B0343F38AD@IRSMSX103.ger.corp.intel.com", "date": "2014-09-19T09:18:26", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 20, "url": "https://patches.dpdk.org/api/people/20/?format=api", "name": "Bruce Richardson", "email": "bruce.richardson@intel.com" }, "content": "> -----Original Message-----\n> From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> Sent: Thursday, September 18, 2014 7:09 PM\n> To: Thomas Monjalon\n> Cc: Richardson, Bruce; dev@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> \n> On Thu, Sep 18, 2014 at 07:13:52PM +0200, Thomas Monjalon wrote:\n> > 2014-09-18 15:53, Richardson, Bruce:\n> > > > > --- a/app/test-pmd/testpmd.c\n> > > > > +++ b/app/test-pmd/testpmd.c\n> > > > > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > > > > /*\n> > > > > * Configurable value of RX free threshold.\n> > > > > */\n> > > > > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by\n> default. */\n> > > > > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32\n> packets\n> > > > */\n> > > > >\n> > > >\n> > > > Why 32? Was that an experimentally determined value?\n> > > > Does it hold true for all PMD's?\n> > >\n> > > This is primarily for the ixgbe PMD, which is right now the most\n> > > highly tuned driver, but it works fine for all other ones too,\n> > > as far as I'm aware.\n> >\n> > Yes, you are changing this value for all PMDs but you're targetting\n> > only one.\n> > These thresholds are dependent of the PMD implementation. There's\n> > something wrong here.\n> >\n> I agree. Its fine to do this, but it does seem like the sample application\n> should document why it does this and make note of the fact that other PMDs\n> may\n> have a separate optimal value.\n> \n> > > Basically, this is the minimum setting needed to enable either the\n> > > bulk alloc or vector RX routines inside the ixgbe driver, so it's\n> > > best made the default for that reason. Please see\n> > > \"check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and\n> > > RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in\n> > > the same file.\n> >\n> > Since this parameter is so important, it could be a default value somewhere.\n> >\n> > I think we should split generic tuning parameters and tuning parameters\n> > related to driver implementation or specific hardware.\n> > Then we should provide some good default values for each of them.\n> > At last, if needed, applications should be able to easily tune the\n> > pmd-specific parameters.\n> >\n> I like this idea. I've not got an idea of how much work it is to do so, but in\n> principle it makes sense.\n> \n> Perhaps for the immediate need, since rte_eth_rx_queue_setup allows the\n> config\n> struct to get passed directly to PMDs, we can create a reserved value\n> RTE_ETH_RX_FREE_THRESH_OPTIMAL, that instructs the pmd to select\n> whatever\n> threshold is optimal for its own hardware?\n> \n> Neil\n> \nActually, looking at the code, I would suggest a couple of options, some of which may be used together.\n\t1) we make NULL a valid value for the rxconf structure parameter to rte_eth_rx_queue_setup. There is little information in it that should really need to be passed in by applications to the drivers, and that would allow the drivers to be completely free to select the best options for their own operation. \n\t2) As a companion to that (or as an alternative), we could also allow each driver to provide its own functions for rte_eth_get_rxconf_default, and rte_eth_get_txconf_default, to be used by applications that want to use known-good values for thresholds but also want to tweak one of the other values e.g. for rx, set the drop_en bit, and for tx set the txqflags to disable offloads.\n\t3) Lastly, we could also consider removing the threshold and other not-generally-used values from the rxconf and txconf structures and make those removed fields completely driver-set values. Optionally, we could provide an alternate API to tune them, but I don't really see this being useful in most cases, and I'd probably omit it unless someone can prove a need for such APIs.\n\nRegards,\n/Bruce", "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 D49A0B392;\n\tFri, 19 Sep 2014 11:12:45 +0200 (CEST)", "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n\tby dpdk.org (Postfix) with ESMTP id 284B4B347\n\tfor <dev@dpdk.org>; Fri, 19 Sep 2014 11:12:42 +0200 (CEST)", "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby fmsmga102.fm.intel.com with ESMTP; 19 Sep 2014 02:18:31 -0700", "from irsmsx101.ger.corp.intel.com ([163.33.3.153])\n\tby fmsmga001.fm.intel.com with ESMTP; 19 Sep 2014 02:18:28 -0700", "from irsmsx103.ger.corp.intel.com ([169.254.3.112]) by\n\tIRSMSX101.ger.corp.intel.com ([169.254.1.194]) with mapi id\n\t14.03.0195.001; Fri, 19 Sep 2014 10:18:27 +0100" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.04,554,1406617200\"; d=\"scan'208\";a=\"593737407\"", "From": "\"Richardson, Bruce\" <bruce.richardson@intel.com>", "To": "Neil Horman <nhorman@tuxdriver.com>, Thomas Monjalon\n\t<thomas.monjalon@6wind.com>", "Thread-Topic": "[dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "Thread-Index": "AQHP0l5oUFb5FU7UokiprGez8jDZ8pwFYuqAgAASbWCAAZz/AIAAD1GAgAEJxXA=", "Date": "Fri, 19 Sep 2014 09:18:26 +0000", "Message-ID": "<59AF69C657FD0841A61C55336867B5B0343F38AD@IRSMSX103.ger.corp.intel.com>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>\n\t<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>\n\t<3289751.t83Qqk3rkH@xps13>\n\t<20140918180841.GN20389@hmsreliant.think-freely.org>", "In-Reply-To": "<20140918180841.GN20389@hmsreliant.think-freely.org>", "Accept-Language": "en-GB, en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-originating-ip": "[163.33.239.182]", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 881, "web_url": "https://patches.dpdk.org/comment/881/", "msgid": "<20140919102435.GC12897@hmsreliant.think-freely.org>", "list_archive_url": "https://inbox.dpdk.org/dev/20140919102435.GC12897@hmsreliant.think-freely.org", "date": "2014-09-19T10:24:35", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 32, "url": "https://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Fri, Sep 19, 2014 at 09:18:26AM +0000, Richardson, Bruce wrote:\n> > -----Original Message-----\n> > From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> > Sent: Thursday, September 18, 2014 7:09 PM\n> > To: Thomas Monjalon\n> > Cc: Richardson, Bruce; dev@dpdk.org\n> > Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> > \n> > On Thu, Sep 18, 2014 at 07:13:52PM +0200, Thomas Monjalon wrote:\n> > > 2014-09-18 15:53, Richardson, Bruce:\n> > > > > > --- a/app/test-pmd/testpmd.c\n> > > > > > +++ b/app/test-pmd/testpmd.c\n> > > > > > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > > > > > /*\n> > > > > > * Configurable value of RX free threshold.\n> > > > > > */\n> > > > > > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by\n> > default. */\n> > > > > > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32\n> > packets\n> > > > > */\n> > > > > >\n> > > > >\n> > > > > Why 32? Was that an experimentally determined value?\n> > > > > Does it hold true for all PMD's?\n> > > >\n> > > > This is primarily for the ixgbe PMD, which is right now the most\n> > > > highly tuned driver, but it works fine for all other ones too,\n> > > > as far as I'm aware.\n> > >\n> > > Yes, you are changing this value for all PMDs but you're targetting\n> > > only one.\n> > > These thresholds are dependent of the PMD implementation. There's\n> > > something wrong here.\n> > >\n> > I agree. Its fine to do this, but it does seem like the sample application\n> > should document why it does this and make note of the fact that other PMDs\n> > may\n> > have a separate optimal value.\n> > \n> > > > Basically, this is the minimum setting needed to enable either the\n> > > > bulk alloc or vector RX routines inside the ixgbe driver, so it's\n> > > > best made the default for that reason. Please see\n> > > > \"check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and\n> > > > RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in\n> > > > the same file.\n> > >\n> > > Since this parameter is so important, it could be a default value somewhere.\n> > >\n> > > I think we should split generic tuning parameters and tuning parameters\n> > > related to driver implementation or specific hardware.\n> > > Then we should provide some good default values for each of them.\n> > > At last, if needed, applications should be able to easily tune the\n> > > pmd-specific parameters.\n> > >\n> > I like this idea. I've not got an idea of how much work it is to do so, but in\n> > principle it makes sense.\n> > \n> > Perhaps for the immediate need, since rte_eth_rx_queue_setup allows the\n> > config\n> > struct to get passed directly to PMDs, we can create a reserved value\n> > RTE_ETH_RX_FREE_THRESH_OPTIMAL, that instructs the pmd to select\n> > whatever\n> > threshold is optimal for its own hardware?\n> > \n> > Neil\n> > \n> Actually, looking at the code, I would suggest a couple of options, some of which may be used together.\n> \t1) we make NULL a valid value for the rxconf structure parameter to rte_eth_rx_queue_setup. There is little information in it that should really need to be passed in by applications to the drivers, and that would allow the drivers to be completely free to select the best options for their own operation. \n> \t2) As a companion to that (or as an alternative), we could also allow each driver to provide its own functions for rte_eth_get_rxconf_default, and rte_eth_get_txconf_default, to be used by applications that want to use known-good values for thresholds but also want to tweak one of the other values e.g. for rx, set the drop_en bit, and for tx set the txqflags to disable offloads.\n> \t3) Lastly, we could also consider removing the threshold and other not-generally-used values from the rxconf and txconf structures and make those removed fields completely driver-set values. Optionally, we could provide an alternate API to tune them, but I don't really see this being useful in most cases, and I'd probably omit it unless someone can prove a need for such APIs.\n> \nThese all sound fairly reasonable to me.\nNeil\n\n> Regards,\n> /Bruce\n>", "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 DB98EB392;\n\tFri, 19 Sep 2014 12:18:55 +0200 (CEST)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id 0C3DAB347\n\tfor <dev@dpdk.org>; Fri, 19 Sep 2014 12:18:54 +0200 (CEST)", "from hmsreliant.think-freely.org\n\t([2001:470:8:a08:7aac:c0ff:fec2:933b] helo=localhost)\n\tby smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63)\n\t(envelope-from <nhorman@tuxdriver.com>)\n\tid 1XUvMh-0000IB-PS; Fri, 19 Sep 2014 06:24:41 -0400" ], "Date": "Fri, 19 Sep 2014 06:24:35 -0400", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "\"Richardson, Bruce\" <bruce.richardson@intel.com>", "Message-ID": "<20140919102435.GC12897@hmsreliant.think-freely.org>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>\n\t<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>\n\t<3289751.t83Qqk3rkH@xps13>\n\t<20140918180841.GN20389@hmsreliant.think-freely.org>\n\t<59AF69C657FD0841A61C55336867B5B0343F38AD@IRSMSX103.ger.corp.intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<59AF69C657FD0841A61C55336867B5B0343F38AD@IRSMSX103.ger.corp.intel.com>", "User-Agent": "Mutt/1.5.23 (2014-03-12)", "X-Spam-Score": "-2.9 (--)", "X-Spam-Status": "No", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 882, "web_url": "https://patches.dpdk.org/comment/882/", "msgid": "<59AF69C657FD0841A61C55336867B5B0343F395C@IRSMSX103.ger.corp.intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/59AF69C657FD0841A61C55336867B5B0343F395C@IRSMSX103.ger.corp.intel.com", "date": "2014-09-19T10:28:31", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 20, "url": "https://patches.dpdk.org/api/people/20/?format=api", "name": "Bruce Richardson", "email": "bruce.richardson@intel.com" }, "content": "> -----Original Message-----\n> From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> Sent: Friday, September 19, 2014 11:25 AM\n> To: Richardson, Bruce\n> Cc: Thomas Monjalon; dev@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> \n> On Fri, Sep 19, 2014 at 09:18:26AM +0000, Richardson, Bruce wrote:\n> > > -----Original Message-----\n> > > From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> > > Sent: Thursday, September 18, 2014 7:09 PM\n> > > To: Thomas Monjalon\n> > > Cc: Richardson, Bruce; dev@dpdk.org\n> > > Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> > >\n> > > On Thu, Sep 18, 2014 at 07:13:52PM +0200, Thomas Monjalon wrote:\n> > > > 2014-09-18 15:53, Richardson, Bruce:\n> > > > > > > --- a/app/test-pmd/testpmd.c\n> > > > > > > +++ b/app/test-pmd/testpmd.c\n> > > > > > > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > > > > > > /*\n> > > > > > > * Configurable value of RX free threshold.\n> > > > > > > */\n> > > > > > > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by\n> > > default. */\n> > > > > > > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32\n> > > packets\n> > > > > > */\n> > > > > > >\n> > > > > >\n> > > > > > Why 32? Was that an experimentally determined value?\n> > > > > > Does it hold true for all PMD's?\n> > > > >\n> > > > > This is primarily for the ixgbe PMD, which is right now the most\n> > > > > highly tuned driver, but it works fine for all other ones too,\n> > > > > as far as I'm aware.\n> > > >\n> > > > Yes, you are changing this value for all PMDs but you're targetting\n> > > > only one.\n> > > > These thresholds are dependent of the PMD implementation. There's\n> > > > something wrong here.\n> > > >\n> > > I agree. Its fine to do this, but it does seem like the sample application\n> > > should document why it does this and make note of the fact that other PMDs\n> > > may\n> > > have a separate optimal value.\n> > >\n> > > > > Basically, this is the minimum setting needed to enable either the\n> > > > > bulk alloc or vector RX routines inside the ixgbe driver, so it's\n> > > > > best made the default for that reason. Please see\n> > > > > \"check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and\n> > > > > RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in\n> > > > > the same file.\n> > > >\n> > > > Since this parameter is so important, it could be a default value\n> somewhere.\n> > > >\n> > > > I think we should split generic tuning parameters and tuning parameters\n> > > > related to driver implementation or specific hardware.\n> > > > Then we should provide some good default values for each of them.\n> > > > At last, if needed, applications should be able to easily tune the\n> > > > pmd-specific parameters.\n> > > >\n> > > I like this idea. I've not got an idea of how much work it is to do so, but in\n> > > principle it makes sense.\n> > >\n> > > Perhaps for the immediate need, since rte_eth_rx_queue_setup allows the\n> > > config\n> > > struct to get passed directly to PMDs, we can create a reserved value\n> > > RTE_ETH_RX_FREE_THRESH_OPTIMAL, that instructs the pmd to select\n> > > whatever\n> > > threshold is optimal for its own hardware?\n> > >\n> > > Neil\n> > >\n> > Actually, looking at the code, I would suggest a couple of options, some of\n> which may be used together.\n> > \t1) we make NULL a valid value for the rxconf structure parameter to\n> rte_eth_rx_queue_setup. There is little information in it that should really need\n> to be passed in by applications to the drivers, and that would allow the drivers to\n> be completely free to select the best options for their own operation.\n> > \t2) As a companion to that (or as an alternative), we could also allow\n> each driver to provide its own functions for rte_eth_get_rxconf_default, and\n> rte_eth_get_txconf_default, to be used by applications that want to use known-\n> good values for thresholds but also want to tweak one of the other values e.g.\n> for rx, set the drop_en bit, and for tx set the txqflags to disable offloads.\n> > \t3) Lastly, we could also consider removing the threshold and other not-\n> generally-used values from the rxconf and txconf structures and make those\n> removed fields completely driver-set values. Optionally, we could provide an\n> alternate API to tune them, but I don't really see this being useful in most cases,\n> and I'd probably omit it unless someone can prove a need for such APIs.\n> >\n> These all sound fairly reasonable to me.\n> Neil\n\nFurther thinking seems to me like 1 doesn't really go very far, so it falls between 2 and 3. Any preference between them?\n\n/Bruce", "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 CCE51B3A3;\n\tFri, 19 Sep 2014 12:23:21 +0200 (CEST)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id C6779B392\n\tfor <dev@dpdk.org>; Fri, 19 Sep 2014 12:23:19 +0200 (CEST)", "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby orsmga102.jf.intel.com with ESMTP; 19 Sep 2014 03:22:56 -0700", "from irsmsx104.ger.corp.intel.com ([163.33.3.159])\n\tby orsmga001.jf.intel.com with ESMTP; 19 Sep 2014 03:28:32 -0700", "from irsmsx105.ger.corp.intel.com (163.33.3.28) by\n\tIRSMSX104.ger.corp.intel.com (163.33.3.159) with Microsoft SMTP\n\tServer (TLS) id 14.3.195.1; Fri, 19 Sep 2014 11:28:32 +0100", "from irsmsx103.ger.corp.intel.com ([169.254.3.112]) by\n\tIRSMSX105.ger.corp.intel.com ([169.254.7.158]) with mapi id\n\t14.03.0195.001; Fri, 19 Sep 2014 11:28:31 +0100" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.04,554,1406617200\"; d=\"scan'208\";a=\"575630296\"", "From": "\"Richardson, Bruce\" <bruce.richardson@intel.com>", "To": "Neil Horman <nhorman@tuxdriver.com>", "Thread-Topic": "[dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "Thread-Index": "AQHP0l5oUFb5FU7UokiprGez8jDZ8pwFYuqAgAASbWCAAZz/AIAAD1GAgAEJxXCAAAbkgIAAEVcg", "Date": "Fri, 19 Sep 2014 10:28:31 +0000", "Message-ID": "<59AF69C657FD0841A61C55336867B5B0343F395C@IRSMSX103.ger.corp.intel.com>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>\n\t<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>\n\t<3289751.t83Qqk3rkH@xps13>\n\t<20140918180841.GN20389@hmsreliant.think-freely.org>\n\t<59AF69C657FD0841A61C55336867B5B0343F38AD@IRSMSX103.ger.corp.intel.com>\n\t<20140919102435.GC12897@hmsreliant.think-freely.org>", "In-Reply-To": "<20140919102435.GC12897@hmsreliant.think-freely.org>", "Accept-Language": "en-GB, en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-originating-ip": "[163.33.239.182]", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null }, { "id": 885, "web_url": "https://patches.dpdk.org/comment/885/", "msgid": "<20140919151850.GD12897@hmsreliant.think-freely.org>", "list_archive_url": "https://inbox.dpdk.org/dev/20140919151850.GD12897@hmsreliant.think-freely.org", "date": "2014-09-19T15:18:50", "subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "submitter": { "id": 32, "url": "https://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Fri, Sep 19, 2014 at 10:28:31AM +0000, Richardson, Bruce wrote:\n> \n> \n> > -----Original Message-----\n> > From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> > Sent: Friday, September 19, 2014 11:25 AM\n> > To: Richardson, Bruce\n> > Cc: Thomas Monjalon; dev@dpdk.org\n> > Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> > \n> > On Fri, Sep 19, 2014 at 09:18:26AM +0000, Richardson, Bruce wrote:\n> > > > -----Original Message-----\n> > > > From: Neil Horman [mailto:nhorman@tuxdriver.com]\n> > > > Sent: Thursday, September 18, 2014 7:09 PM\n> > > > To: Thomas Monjalon\n> > > > Cc: Richardson, Bruce; dev@dpdk.org\n> > > > Subject: Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32\n> > > >\n> > > > On Thu, Sep 18, 2014 at 07:13:52PM +0200, Thomas Monjalon wrote:\n> > > > > 2014-09-18 15:53, Richardson, Bruce:\n> > > > > > > > --- a/app/test-pmd/testpmd.c\n> > > > > > > > +++ b/app/test-pmd/testpmd.c\n> > > > > > > > @@ -225,7 +225,7 @@ struct rte_eth_thresh tx_thresh = {\n> > > > > > > > /*\n> > > > > > > > * Configurable value of RX free threshold.\n> > > > > > > > */\n> > > > > > > > -uint16_t rx_free_thresh = 0; /* Immediately free RX descriptors by\n> > > > default. */\n> > > > > > > > +uint16_t rx_free_thresh = 32; /* Refill RX descriptors once every 32\n> > > > packets\n> > > > > > > */\n> > > > > > > >\n> > > > > > >\n> > > > > > > Why 32? Was that an experimentally determined value?\n> > > > > > > Does it hold true for all PMD's?\n> > > > > >\n> > > > > > This is primarily for the ixgbe PMD, which is right now the most\n> > > > > > highly tuned driver, but it works fine for all other ones too,\n> > > > > > as far as I'm aware.\n> > > > >\n> > > > > Yes, you are changing this value for all PMDs but you're targetting\n> > > > > only one.\n> > > > > These thresholds are dependent of the PMD implementation. There's\n> > > > > something wrong here.\n> > > > >\n> > > > I agree. Its fine to do this, but it does seem like the sample application\n> > > > should document why it does this and make note of the fact that other PMDs\n> > > > may\n> > > > have a separate optimal value.\n> > > >\n> > > > > > Basically, this is the minimum setting needed to enable either the\n> > > > > > bulk alloc or vector RX routines inside the ixgbe driver, so it's\n> > > > > > best made the default for that reason. Please see\n> > > > > > \"check_rx_burst_bulk_alloc_preconditions()\" in ixgbe_rxtx.c, and\n> > > > > > RX function assignment logic in \"ixgbe_dev_rx_queue_setup()\" in\n> > > > > > the same file.\n> > > > >\n> > > > > Since this parameter is so important, it could be a default value\n> > somewhere.\n> > > > >\n> > > > > I think we should split generic tuning parameters and tuning parameters\n> > > > > related to driver implementation or specific hardware.\n> > > > > Then we should provide some good default values for each of them.\n> > > > > At last, if needed, applications should be able to easily tune the\n> > > > > pmd-specific parameters.\n> > > > >\n> > > > I like this idea. I've not got an idea of how much work it is to do so, but in\n> > > > principle it makes sense.\n> > > >\n> > > > Perhaps for the immediate need, since rte_eth_rx_queue_setup allows the\n> > > > config\n> > > > struct to get passed directly to PMDs, we can create a reserved value\n> > > > RTE_ETH_RX_FREE_THRESH_OPTIMAL, that instructs the pmd to select\n> > > > whatever\n> > > > threshold is optimal for its own hardware?\n> > > >\n> > > > Neil\n> > > >\n> > > Actually, looking at the code, I would suggest a couple of options, some of\n> > which may be used together.\n> > > \t1) we make NULL a valid value for the rxconf structure parameter to\n> > rte_eth_rx_queue_setup. There is little information in it that should really need\n> > to be passed in by applications to the drivers, and that would allow the drivers to\n> > be completely free to select the best options for their own operation.\n> > > \t2) As a companion to that (or as an alternative), we could also allow\n> > each driver to provide its own functions for rte_eth_get_rxconf_default, and\n> > rte_eth_get_txconf_default, to be used by applications that want to use known-\n> > good values for thresholds but also want to tweak one of the other values e.g.\n> > for rx, set the drop_en bit, and for tx set the txqflags to disable offloads.\n> > > \t3) Lastly, we could also consider removing the threshold and other not-\n> > generally-used values from the rxconf and txconf structures and make those\n> > removed fields completely driver-set values. Optionally, we could provide an\n> > alternate API to tune them, but I don't really see this being useful in most cases,\n> > and I'd probably omit it unless someone can prove a need for such APIs.\n> > >\n> > These all sound fairly reasonable to me.\n> > Neil\n> \n> Further thinking seems to me like 1 doesn't really go very far, so it falls between 2 and 3. Any preference between them?\n> \nNot to answer a question with a question, but, because I'm not really sure, how\nmuch does an application really need to know or set in regards to hardware queue\nparameters. I ask because I'm inclined to just go with option 3 (since it\nprevents expansion of the application visible API), but I'm not sure if theres\nimportant functionality you loose in doing so.\n\nNeil\n\n> /Bruce\n>", "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 DB3D5B3A6;\n\tFri, 19 Sep 2014 17:13:11 +0200 (CEST)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id 1B1DDB3A5\n\tfor <dev@dpdk.org>; Fri, 19 Sep 2014 17:13:10 +0200 (CEST)", "from hmsreliant.think-freely.org\n\t([2001:470:8:a08:7aac:c0ff:fec2:933b] helo=localhost)\n\tby smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63)\n\t(envelope-from <nhorman@tuxdriver.com>)\n\tid 1XUzxT-0001zM-HM; Fri, 19 Sep 2014 11:18:57 -0400" ], "Date": "Fri, 19 Sep 2014 11:18:50 -0400", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "\"Richardson, Bruce\" <bruce.richardson@intel.com>", "Message-ID": "<20140919151850.GD12897@hmsreliant.think-freely.org>", "References": "<1410948102-12740-1-git-send-email-bruce.richardson@intel.com>\n\t<20140917152945.GF4213@localhost.localdomain>\n\t<59AF69C657FD0841A61C55336867B5B0343F355F@IRSMSX103.ger.corp.intel.com>\n\t<3289751.t83Qqk3rkH@xps13>\n\t<20140918180841.GN20389@hmsreliant.think-freely.org>\n\t<59AF69C657FD0841A61C55336867B5B0343F38AD@IRSMSX103.ger.corp.intel.com>\n\t<20140919102435.GC12897@hmsreliant.think-freely.org>\n\t<59AF69C657FD0841A61C55336867B5B0343F395C@IRSMSX103.ger.corp.intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<59AF69C657FD0841A61C55336867B5B0343F395C@IRSMSX103.ger.corp.intel.com>", "User-Agent": "Mutt/1.5.23 (2014-03-12)", "X-Spam-Score": "-2.9 (--)", "X-Spam-Status": "No", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] [PATCH 3/5] testpmd: Change rxfreet default to 32", "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>" }, "addressed": null } ]