List patch comments

GET /api/patches/37/comments/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Link: 
<http://patches.dpdk.org/api/patches/37/comments/?format=api&page=1>; rel="first",
<http://patches.dpdk.org/api/patches/37/comments/?format=api&page=1>; rel="last"
Vary: Accept
[ { "id": 208, "web_url": "http://patches.dpdk.org/comment/208/", "msgid": "<1409471.9EROF7RsSj@xps13>", "list_archive_url": "https://inbox.dpdk.org/dev/1409471.9EROF7RsSj@xps13", "date": "2014-07-23T08:33:03", "subject": "Re: [dpdk-dev] [PATCH] Added Spinlock to l3fwd-vf example to\n\tprevent race conditioning", "submitter": { "id": 1, "url": "http://patches.dpdk.org/api/people/1/?format=api", "name": "Thomas Monjalon", "email": "thomas.monjalon@6wind.com" }, "content": "Hi Daniel,\n\nSome explanations are missing here.\n\n> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>\n> \n> --- a/examples/l3fwd-vf/main.c\n> +++ b/examples/l3fwd-vf/main.c\n> @@ -54,6 +54,7 @@\n> #include <rte_per_lcore.h>\n> #include <rte_launch.h>\n> #include <rte_atomic.h>\n> +#include <rte_spinlock.h>\n> #include <rte_cycles.h>\n> #include <rte_prefetch.h>\n> #include <rte_lcore.h>\n> @@ -328,7 +329,7 @@ struct lcore_conf {\n> } __rte_cache_aligned;\n> \n> static struct lcore_conf lcore_conf[RTE_MAX_LCORE];\n> -\n> +static rte_spinlock_t spinlock_conf[RTE_MAX_ETHPORTS]={RTE_SPINLOCK_INITIALIZER};\n> /* Send burst of packets on an output interface */\n> static inline int\n> send_burst(struct lcore_conf *qconf, uint16_t n, uint8_t port)\n> @@ -340,7 +341,10 @@ send_burst(struct lcore_conf *qconf, uint16_t n, uint8_t port)\n> \tqueueid = qconf->tx_queue_id;\n> \tm_table = (struct rte_mbuf **)qconf->tx_mbufs[port].m_table;\n> \n> +\trte_spinlock_lock(&spinlock_conf[port]) ;\n> \tret = rte_eth_tx_burst(port, queueid, m_table, n);\n> +\trte_spinlock_unlock(&spinlock_conf[port]);\n> +\t\n> \tif (unlikely(ret < n)) {\n> \t\tdo {\n> \t\t\trte_pktmbuf_free(m_table[ret]);\n>", "headers": { "Return-Path": "<thomas.monjalon@6wind.com>", "Received": [ "from mail-wg0-f49.google.com (mail-wg0-f49.google.com\n\t[74.125.82.49]) by dpdk.org (Postfix) with ESMTP id BED3E6896\n\tfor <dev@dpdk.org>; Wed, 23 Jul 2014 10:31:48 +0200 (CEST)", "by mail-wg0-f49.google.com with SMTP id k14so788518wgh.8\n\tfor <dev@dpdk.org>; Wed, 23 Jul 2014 01:33:11 -0700 (PDT)", "from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136])\n\tby mx.google.com with ESMTPSA id\n\tgi15sm4230099wjc.20.2014.07.23.01.33.09 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 23 Jul 2014 01:33:10 -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=LFEMw0doEpQqKFBUM/AYEUXeF+Ad2195Quo8WOm/4M4=;\n\tb=hAsDB8V7fvqqi7VPnZi99BpQjWhx/gBdkFQ+aM02t34slWEdhzHdA5hbUpaFwGR8vF\n\toATWPrjPxtxZBbX6INFo1frOhm0o0EcpGthsZD5kj+7KG0rAE7uu91ee0ERb4iiyxWqq\n\tN4VoE6naVq/lV0zsa4Zcn8NNbE9SAnShGzhhLk9YdPRRStgn980CQI8TFD/cvxRhQ4x3\n\tr/HKvtY0mIRap7aWsyFaflYKfoEp+MBN85GAWBdAWTwhb0jj1xe8SB1REYJh/wf18uPu\n\toRqyuJSZj5pxQa/c08XCm/JW75j3Y9gaTCC+QanELTdyVUOXK/WIY7FCx51qdEsjmN6O\n\tHJwQ==", "X-Gm-Message-State": "ALoCoQnUBQs7UqiYuJiFgp1yWsjvx1xb03Nc8kmWYfhLz5XtqsqKFSRn0G88E36lh5oBAPKIJiDN", "X-Received": "by 10.194.63.37 with SMTP id d5mr42447124wjs.92.1406104391376;\n\tWed, 23 Jul 2014 01:33:11 -0700 (PDT)", "From": "Thomas Monjalon <thomas.monjalon@6wind.com>", "To": "Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>", "Date": "Wed, 23 Jul 2014 10:33:03 +0200", "Message-ID": "<1409471.9EROF7RsSj@xps13>", "Organization": "6WIND", "User-Agent": "KMail/4.13.2 (Linux/3.15.5-2-ARCH; KDE/4.13.2; x86_64; ; )", "In-Reply-To": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@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] Added Spinlock to l3fwd-vf example to\n\tprevent race conditioning", "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>", "X-List-Received-Date": "Wed, 23 Jul 2014 08:31:48 -0000" }, "addressed": null }, { "id": 2567, "web_url": "http://patches.dpdk.org/comment/2567/", "msgid": "<1800110.lhpGsJ8ic2@xps13>", "list_archive_url": "https://inbox.dpdk.org/dev/1800110.lhpGsJ8ic2@xps13", "date": "2014-11-11T22:56:30", "subject": "Re: [dpdk-dev] [PATCH] Added Spinlock to l3fwd-vf example to\n\tprevent race conditioning", "submitter": { "id": 1, "url": "http://patches.dpdk.org/api/people/1/?format=api", "name": "Thomas Monjalon", "email": "thomas.monjalon@6wind.com" }, "content": "Hi Daniel,\n\nThis old patch is probably good but I'd like you explain it please.\nReviewers are also welcome.\n\nThanks", "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 437BC7F80;\n\tTue, 11 Nov 2014 23:46:58 +0100 (CET)", "from mail-wi0-f180.google.com (mail-wi0-f180.google.com\n\t[209.85.212.180]) by dpdk.org (Postfix) with ESMTP id 459897F78\n\tfor <dev@dpdk.org>; Tue, 11 Nov 2014 23:46:56 +0100 (CET)", "by mail-wi0-f180.google.com with SMTP id hi2so3131502wib.13\n\tfor <dev@dpdk.org>; Tue, 11 Nov 2014 14:56:47 -0800 (PST)", "from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136])\n\tby mx.google.com with ESMTPSA id\n\tkn5sm21534045wjb.48.2014.11.11.14.56.46 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tTue, 11 Nov 2014 14:56:46 -0800 (PST)" ], "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=hqffy30tW/VdXH9iKVnJ+b3GYadrs8f6/iBBUGue1lQ=;\n\tb=DooW1CTCwYBFXnyZR+yYjVM36liMr+ixW++6sK4HqhnlWgJrsPABCqCodCxRm9sCRK\n\t0ak32sNHPNILsEc1z3ZYh0W6GU9J+UAyMJbGTqdtjjBWtkXf5lx+Dsw+YQqWw8d9UMKA\n\tm2sZ8YqVdIfHpvtkDV6SvRxDpe241m+r16bqj/2Grwo8tj9bY1rw1OrmVVzMutkHZc/H\n\tJ/QJTa6ls8KT479MHE6Gbys71jnNgugDdBT1d4UJBzhvBSWm5hcZ56JFcvoy3saaIEqN\n\tgng9MQRgdVAuIAB8CywRL40SPiKxepWNQIyKymnImxJoVDbsgW2f/XRz0P26GbTE2teq\n\trZqQ==", "X-Gm-Message-State": "ALoCoQkbmnGZs2VGuwqD5iEwNGyrN9Zz9OhyZY7ekk41bj9RMlsFo5V6asX+VViMtVyWYKgOVhYS", "X-Received": "by 10.194.8.73 with SMTP id p9mr58408416wja.87.1415746607877;\n\tTue, 11 Nov 2014 14:56:47 -0800 (PST)", "From": "Thomas Monjalon <thomas.monjalon@6wind.com>", "To": "Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>", "Date": "Tue, 11 Nov 2014 23:56:30 +0100", "Message-ID": "<1800110.lhpGsJ8ic2@xps13>", "Organization": "6WIND", "User-Agent": "KMail/4.14.2 (Linux/3.17.2-1-ARCH; KDE/4.14.2; x86_64; ; )", "In-Reply-To": "<1409471.9EROF7RsSj@xps13>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<1409471.9EROF7RsSj@xps13>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "7Bit", "Content-Type": "text/plain; charset=\"us-ascii\"", "Cc": "dev@dpdk.org", "Subject": "Re: [dpdk-dev] [PATCH] Added Spinlock to l3fwd-vf example to\n\tprevent race conditioning", "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": 2569, "web_url": "http://patches.dpdk.org/comment/2569/", "msgid": "<C37D651A908B024F974696C65296B57B0F2F1AEB@SHSMSX101.ccr.corp.intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/C37D651A908B024F974696C65296B57B0F2F1AEB@SHSMSX101.ccr.corp.intel.com", "date": "2014-11-11T23:18:15", "subject": "Re: [dpdk-dev] [PATCH] Added Spinlock to l3fwd-vf example\n\tto\tprevent race conditioning", "submitter": { "id": 16, "url": "http://patches.dpdk.org/api/people/16/?format=api", "name": "Huawei Xie", "email": "huawei.xie@intel.com" }, "content": "> -----Original Message-----\n> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon\n> Sent: Tuesday, November 11, 2014 3:57 PM\n> To: Mrzyglod, DanielX T\n> Cc: dev@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH] Added Spinlock to l3fwd-vf example to prevent\n> race conditioning\n> \n> Hi Daniel,\n> \n> This old patch is probably good but I'd like you explain it please.\n> Reviewers are also welcome.\n> \n> Thanks\n> --\n> Thomas\n> \n> 2014-07-23 10:33, Thomas Monjalon:\n> > Hi Daniel,\n> >\n> > Some explanations are missing here.\n> >\n> > > Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>\n> > >\n> > > --- a/examples/l3fwd-vf/main.c\n> > > +++ b/examples/l3fwd-vf/main.c\n> > > @@ -54,6 +54,7 @@\n> > > #include <rte_per_lcore.h>\n> > > #include <rte_launch.h>\n> > > #include <rte_atomic.h>\n> > > +#include <rte_spinlock.h>\n> > > #include <rte_cycles.h>\n> > > #include <rte_prefetch.h>\n> > > #include <rte_lcore.h>\n> > > @@ -328,7 +329,7 @@ struct lcore_conf {\n> > > } __rte_cache_aligned;\n> > >\n> > > static struct lcore_conf lcore_conf[RTE_MAX_LCORE];\n> > > -\n> > > +static rte_spinlock_t\n> spinlock_conf[RTE_MAX_ETHPORTS]={RTE_SPINLOCK_INITIALIZER};\n> > > /* Send burst of packets on an output interface */\n> > > static inline int\n> > > send_burst(struct lcore_conf *qconf, uint16_t n, uint8_t port)\n> > > @@ -340,7 +341,10 @@ send_burst(struct lcore_conf *qconf, uint16_t n,\n> uint8_t port)\n> > > \tqueueid = qconf->tx_queue_id;\n> > > \tm_table = (struct rte_mbuf **)qconf->tx_mbufs[port].m_table;\n> > >\n> > > +\trte_spinlock_lock(&spinlock_conf[port]) ;\n> > > \tret = rte_eth_tx_burst(port, queueid, m_table, n);\n> > > +\trte_spinlock_unlock(&spinlock_conf[port]);\n\nIt might not be good choice for here, but how about we also provide spin_trylock as alternative API?\n\n> > > +\n> > > \tif (unlikely(ret < n)) {\n> > > \t\tdo {\n> > > \t\t\trte_pktmbuf_free(m_table[ret]);\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 429437F6D;\n\tWed, 12 Nov 2014 00:08:32 +0100 (CET)", "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id 548997F0C\n\tfor <dev@dpdk.org>; Wed, 12 Nov 2014 00:08:29 +0100 (CET)", "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga102.jf.intel.com with ESMTP; 11 Nov 2014 15:16:26 -0800", "from pgsmsx103.gar.corp.intel.com ([10.221.44.82])\n\tby orsmga002.jf.intel.com with ESMTP; 11 Nov 2014 15:18:18 -0800", "from pgsmsx102.gar.corp.intel.com (10.221.44.80) by\n\tPGSMSX103.gar.corp.intel.com (10.221.44.82) with Microsoft SMTP\n\tServer (TLS) id 14.3.195.1; Wed, 12 Nov 2014 07:18:18 +0800", "from shsmsx151.ccr.corp.intel.com (10.239.6.50) by\n\tPGSMSX102.gar.corp.intel.com (10.221.44.80) with Microsoft SMTP\n\tServer (TLS) id 14.3.195.1; Wed, 12 Nov 2014 07:18:17 +0800", "from shsmsx101.ccr.corp.intel.com ([169.254.1.130]) by\n\tSHSMSX151.ccr.corp.intel.com ([169.254.3.3]) with mapi id\n\t14.03.0195.001; Wed, 12 Nov 2014 07:18:16 +0800" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.07,362,1413270000\"; d=\"scan'208\";a=\"635351615\"", "From": "\"Xie, Huawei\" <huawei.xie@intel.com>", "To": "Thomas Monjalon <thomas.monjalon@6wind.com>, \"Mrzyglod, DanielX T\"\n\t<danielx.t.mrzyglod@intel.com>", "Thread-Topic": "[dpdk-dev] [PATCH] Added Spinlock to l3fwd-vf example to\n\tprevent race conditioning", "Thread-Index": "AQHP/gLjFgZBwaRPsEatGnS4uvD5FJxcDIZg", "Date": "Tue, 11 Nov 2014 23:18:15 +0000", "Message-ID": "<C37D651A908B024F974696C65296B57B0F2F1AEB@SHSMSX101.ccr.corp.intel.com>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<1409471.9EROF7RsSj@xps13> <1800110.lhpGsJ8ic2@xps13>", "In-Reply-To": "<1800110.lhpGsJ8ic2@xps13>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-originating-ip": "[10.239.127.40]", "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] Added Spinlock to l3fwd-vf example\n\tto\tprevent race conditioning", "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": 3799, "web_url": "http://patches.dpdk.org/comment/3799/", "msgid": "<20141208144545.GD3237@localhost.localdomain>", "list_archive_url": "https://inbox.dpdk.org/dev/20141208144545.GD3237@localhost.localdomain", "date": "2014-12-08T14:45:45", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 32, "url": "http://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Tue, Jul 08, 2014 at 12:16:24PM +0100, Daniel Mrzyglod wrote:\n> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>\n> \n> ---\n> examples/l3fwd-vf/main.c | 6 +++++-\n> 1 file changed, 5 insertions(+), 1 deletion(-)\n> \n> diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c\n> index 2ca5c21..57852d0 100644\n> --- a/examples/l3fwd-vf/main.c\n> +++ b/examples/l3fwd-vf/main.c\n> @@ -54,6 +54,7 @@\n> #include <rte_per_lcore.h>\n> #include <rte_launch.h>\n> #include <rte_atomic.h>\n> +#include <rte_spinlock.h>\n> #include <rte_cycles.h>\n> #include <rte_prefetch.h>\n> #include <rte_lcore.h>\n> @@ -328,7 +329,7 @@ struct lcore_conf {\n> } __rte_cache_aligned;\n> \n> static struct lcore_conf lcore_conf[RTE_MAX_LCORE];\n> -\n> +static rte_spinlock_t spinlock_conf[RTE_MAX_ETHPORTS]={RTE_SPINLOCK_INITIALIZER};\n> /* Send burst of packets on an output interface */\n> static inline int\n> send_burst(struct lcore_conf *qconf, uint16_t n, uint8_t port)\n> @@ -340,7 +341,10 @@ send_burst(struct lcore_conf *qconf, uint16_t n, uint8_t port)\n> \tqueueid = qconf->tx_queue_id;\n> \tm_table = (struct rte_mbuf **)qconf->tx_mbufs[port].m_table;\n> \n> +\trte_spinlock_lock(&spinlock_conf[port]) ;\n> \tret = rte_eth_tx_burst(port, queueid, m_table, n);\n> +\trte_spinlock_unlock(&spinlock_conf[port]);\n> +\t\n> \tif (unlikely(ret < n)) {\n> \t\tdo {\n> \t\t\trte_pktmbuf_free(m_table[ret]);\n\nAcked-by: Neil Horman <nhorman@tuxdriver.com>\n\nThough, that said, doesn't it seem to anyone else like serialization of enqueue\nto a port should be the responsibility of the library, not the application?\n\nNeil", "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 959D358F4;\n\tMon, 8 Dec 2014 15:46:13 +0100 (CET)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id 1A6E5CE7\n\tfor <dev@dpdk.org>; Mon, 8 Dec 2014 15:46:11 +0100 (CET)", "from rrcs-70-62-112-196.midsouth.biz.rr.com ([70.62.112.196]\n\thelo=localhost)\n\tby smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63)\n\t(envelope-from <nhorman@tuxdriver.com>)\n\tid 1XxzZQ-0000t4-FH; Mon, 08 Dec 2014 09:46:00 -0500" ], "Date": "Mon, 8 Dec 2014 09:45:45 -0500", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>", "Message-ID": "<20141208144545.GD3237@localhost.localdomain>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@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] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 3943, "web_url": "http://patches.dpdk.org/comment/3943/", "msgid": "<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com", "date": "2014-12-10T08:18:36", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 58, "url": "http://patches.dpdk.org/api/people/58/?format=api", "name": "Wodkowski, PawelX", "email": "pawelx.wodkowski@intel.com" }, "content": "> Though, that said, doesn't it seem to anyone else like serialization of enqueue\n> to a port should be the responsibility of the library, not the application?\n> \n> Neil\n\nFrom my knowledge it is an application responsibility to serialize access to\nqueue on particular port.\n\nPawel", "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 AA2AC6A8B;\n\tWed, 10 Dec 2014 09:18:45 +0100 (CET)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id DD74F3F9\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 09:18:43 +0100 (CET)", "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby orsmga103.jf.intel.com with ESMTP; 10 Dec 2014 00:16:45 -0800", "from irsmsx109.ger.corp.intel.com ([163.33.3.23])\n\tby orsmga002.jf.intel.com with ESMTP; 10 Dec 2014 00:18:41 -0800", "from irsmsx106.ger.corp.intel.com ([169.254.8.18]) by\n\tIRSMSX109.ger.corp.intel.com ([169.254.13.244]) with mapi id\n\t14.03.0195.001; Wed, 10 Dec 2014 08:18:40 +0000" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.07,551,1413270000\"; d=\"scan'208\";a=\"651427809\"", "From": "\"Wodkowski, PawelX\" <pawelx.wodkowski@intel.com>", "To": "Neil Horman <nhorman@tuxdriver.com>, \"Mrzyglod, DanielX T\"\n\t<danielx.t.mrzyglod@intel.com>", "Thread-Topic": "[dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "Thread-Index": "AQHQEvXO2fJqynX8P0ONnxz6nzmI7ZyIfRpA", "Date": "Wed, 10 Dec 2014 08:18:36 +0000", "Message-ID": "<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>", "In-Reply-To": "<20141208144545.GD3237@localhost.localdomain>", "Accept-Language": "pl-PL, en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-originating-ip": "[163.33.239.181]", "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] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 3957, "web_url": "http://patches.dpdk.org/comment/3957/", "msgid": "<88638638.zyQcmssdg6@xps13>", "list_archive_url": "https://inbox.dpdk.org/dev/88638638.zyQcmssdg6@xps13", "date": "2014-12-10T10:53:46", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 1, "url": "http://patches.dpdk.org/api/people/1/?format=api", "name": "Thomas Monjalon", "email": "thomas.monjalon@6wind.com" }, "content": "2014-12-08 09:45, Neil Horman:\n> On Tue, Jul 08, 2014 at 12:16:24PM +0100, Daniel Mrzyglod wrote:\n> > Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>\n> Acked-by: Neil Horman <nhorman@tuxdriver.com>\n\nSomeone to provide an explanation for commit log?\n\nThanks", "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 E7BC26A95;\n\tWed, 10 Dec 2014 11:53:48 +0100 (CET)", "from mail-wi0-f174.google.com (mail-wi0-f174.google.com\n\t[209.85.212.174]) by dpdk.org (Postfix) with ESMTP id A13B2282\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 11:53:47 +0100 (CET)", "by mail-wi0-f174.google.com with SMTP id h11so10762790wiw.13\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 02:53:47 -0800 (PST)", "from xps13.localnet ([78.188.139.117])\n\tby mx.google.com with ESMTPSA id\n\td2sm5344188wjs.32.2014.12.10.02.53.40 for <multiple recipients>\n\t(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);\n\tWed, 10 Dec 2014 02:53:46 -0800 (PST)" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:organization\n\t:user-agent:in-reply-to:references:mime-version\n\t:content-transfer-encoding:content-type;\n\tbh=2o4MSw1wkOcfbvT7BtuRBF3gqsVXhH55Oirqupznw8Q=;\n\tb=V5VacxnqcTKIlvx2canptjb0UOnt03Xv+RfXPI8IETTpvzViwQy9pmhEZrDxi9NCvU\n\tSP9Lxasznuq4IHsrXtrykDOSWP6p6N4u09P4h9zaiaBuyPb4g6Uwg/JGqppM0OAS/uwn\n\tt2U5+5On/6szKFSEH2xYPIxzbg2UepoY+wbsoHcbMOdIelOs3IfWpuDITyF+oXP0AQJP\n\tlZDSGhA+2v2oHyTZebxd3eiyuPs6IDC4seKJboIbYpD4cB/MfHzug208Sj/FG7TSVG9p\n\t2XlDSpMQSffM4zEypzB23+uQjQoYvYbGKe6rVotxdKxAVbLnZuqc4bTSGoSrbx7bX982\n\tdBpw==", "X-Gm-Message-State": "ALoCoQl6aXXbYflWN3rhdpt58KH+sg5h0+xPxFDhxF+9h8o55d3dicHPV88JsPgDGrAehJ/iiLfK", "X-Received": "by 10.194.184.199 with SMTP id ew7mr5507040wjc.85.1418208827477; \n\tWed, 10 Dec 2014 02:53:47 -0800 (PST)", "Date": "Wed, 10 Dec 2014 02:53:46 -0800 (PST)", "X-Google-Original-Date": "Wed, 10 Dec 2014 11:51 +0100", "From": "Thomas Monjalon <thomas.monjalon@6wind.com>", "To": "Neil Horman <nhorman@tuxdriver.com>,\n\tDaniel Mrzyglod <danielx.t.mrzyglod@intel.com>", "Message-ID": "<88638638.zyQcmssdg6@xps13>", "Organization": "6WIND", "User-Agent": "KMail/4.14.3 (Linux/3.17.4-1-ARCH; KDE/4.14.3; x86_64; ; )", "In-Reply-To": "<20141208144545.GD3237@localhost.localdomain>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "7Bit", "Content-Type": "text/plain; charset=\"us-ascii\"", "Cc": "dev@dpdk.org", "Subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 3975, "web_url": "http://patches.dpdk.org/comment/3975/", "msgid": "<20141210144745.GC17040@localhost.localdomain>", "list_archive_url": "https://inbox.dpdk.org/dev/20141210144745.GC17040@localhost.localdomain", "date": "2014-12-10T14:47:45", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 32, "url": "http://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Wed, Dec 10, 2014 at 08:18:36AM +0000, Wodkowski, PawelX wrote:\n> > Though, that said, doesn't it seem to anyone else like serialization of enqueue\n> > to a port should be the responsibility of the library, not the application?\n> > \n> > Neil\n> \n> From my knowledge it is an application responsibility to serialize access to\n> queue on particular port.\n> \nI understand thats the way it currently is, I'm advocating for the fact that it\nshould not be.\nNeil\n\n> Pawel\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 666566A95;\n\tWed, 10 Dec 2014 15:48:30 +0100 (CET)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id D84FF6A8B\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 15:48:27 +0100 (CET)", "from nat-pool-rdu-t.redhat.com ([66.187.233.202] 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 1XyiYe-00027b-4f; Wed, 10 Dec 2014 09:48:11 -0500" ], "Date": "Wed, 10 Dec 2014 09:47:45 -0500", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "\"Wodkowski, PawelX\" <pawelx.wodkowski@intel.com>", "Message-ID": "<20141210144745.GC17040@localhost.localdomain>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>\n\t<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.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] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 3976, "web_url": "http://patches.dpdk.org/comment/3976/", "msgid": "<20141210145455.GC1632@bricha3-MOBL3>", "list_archive_url": "https://inbox.dpdk.org/dev/20141210145455.GC1632@bricha3-MOBL3", "date": "2014-12-10T14:54:56", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 20, "url": "http://patches.dpdk.org/api/people/20/?format=api", "name": "Bruce Richardson", "email": "bruce.richardson@intel.com" }, "content": "On Wed, Dec 10, 2014 at 09:47:45AM -0500, Neil Horman wrote:\n> On Wed, Dec 10, 2014 at 08:18:36AM +0000, Wodkowski, PawelX wrote:\n> > > Though, that said, doesn't it seem to anyone else like serialization of enqueue\n> > > to a port should be the responsibility of the library, not the application?\n> > > \n> > > Neil\n> > \n> > From my knowledge it is an application responsibility to serialize access to\n> > queue on particular port.\n> > \n> I understand thats the way it currently is, I'm advocating for the fact that it\n> should not be.\n> Neil\n>\nIt could be done, but I think we'd need to add a new API (or new parameter to\nexisting API) to do so, as the cost of adding the locks would be severe, even in\nthe uncontented case. \nThis is why it hasn't been done up till now, obviously enough. In general, where\nwe don't provide performant multi-thread safe APIs, we generally don't try and\nprovide versions with locks, we just document the limitation and then leave it \nup to the app to determine how best to handle things.\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 B1EC26A95;\n\tWed, 10 Dec 2014 15:55:01 +0100 (CET)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby dpdk.org (Postfix) with ESMTP id F30686A8B\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 15:54:59 +0100 (CET)", "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby orsmga103.jf.intel.com with ESMTP; 10 Dec 2014 06:53:01 -0800", "from bricha3-mobl3.ger.corp.intel.com ([10.243.20.31])\n\tby orsmga003.jf.intel.com with SMTP; 10 Dec 2014 06:51:10 -0800", "by (sSMTP sendmail emulation); Wed, 10 Dec 2014 14:54:56 +0025" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.04,691,1406617200\"; d=\"scan'208\";a=\"496673335\"", "Date": "Wed, 10 Dec 2014 14:54:56 +0000", "From": "Bruce Richardson <bruce.richardson@intel.com>", "To": "Neil Horman <nhorman@tuxdriver.com>", "Message-ID": "<20141210145455.GC1632@bricha3-MOBL3>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>\n\t<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>\n\t<20141210144745.GC17040@localhost.localdomain>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<20141210144745.GC17040@localhost.localdomain>", "Organization": "Intel Shannon Ltd.", "User-Agent": "Mutt/1.5.23 (2014-03-12)", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 3978, "web_url": "http://patches.dpdk.org/comment/3978/", "msgid": "<7ADD74816B4C8A45B56203CBA65FE5A6097CABC3@IRSMSX107.ger.corp.intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/7ADD74816B4C8A45B56203CBA65FE5A6097CABC3@IRSMSX107.ger.corp.intel.com", "date": "2014-12-10T15:53:52", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 23, "url": "http://patches.dpdk.org/api/people/23/?format=api", "name": "Daniel Mrzyglod", "email": "danielx.t.mrzyglod@intel.com" }, "content": "> -----Original Message-----\n> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson\n> Sent: Wednesday, December 10, 2014 3:55 PM\n> To: Neil Horman\n> Cc: dev@dpdk.org\n> Subject: Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n> conditioning\n> \n> On Wed, Dec 10, 2014 at 09:47:45AM -0500, Neil Horman wrote:\n> > On Wed, Dec 10, 2014 at 08:18:36AM +0000, Wodkowski, PawelX wrote:\n> > > > Though, that said, doesn't it seem to anyone else like serialization of\n> enqueue\n> > > > to a port should be the responsibility of the library, not the application?\n> > > >\n> > > > Neil\n> > >\n> > > From my knowledge it is an application responsibility to serialize access to\n> > > queue on particular port.\n> > >\n> > I understand thats the way it currently is, I'm advocating for the fact that it\n> > should not be.\n> > Neil\n> >\n> It could be done, but I think we'd need to add a new API (or new parameter to\n> existing API) to do so, as the cost of adding the locks would be severe, even in\n> the uncontented case.\n> This is why it hasn't been done up till now, obviously enough. In general, where\n> we don't provide performant multi-thread safe APIs, we generally don't try and\n> provide versions with locks, we just document the limitation and then leave it\n> up to the app to determine how best to handle things.\n> \n> /Bruce\n\n\nthe problem is when the routing is through the same queue the app crashed. \nexample: traffic to 1.1.1.1 from port 0 and 1.1.1.1 from port 1.\nYou all are right :)\nSo the only solution are spinlocks, or we must modify \nintel-dpdk-sample-applications-user-guide.pdf to inform users about limitations.", "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 051D36A95;\n\tWed, 10 Dec 2014 16:54:08 +0100 (CET)", "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby dpdk.org (Postfix) with ESMTP id 977B7DE0\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 16:53:58 +0100 (CET)", "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby fmsmga101.fm.intel.com with ESMTP; 10 Dec 2014 07:53:53 -0800", "from irsmsx152.ger.corp.intel.com ([163.33.192.66])\n\tby FMSMGA003.fm.intel.com with ESMTP; 10 Dec 2014 07:43:10 -0800", "from irsmsx107.ger.corp.intel.com ([169.254.10.190]) by\n\tIRSMSX152.ger.corp.intel.com ([169.254.6.56]) with mapi id\n\t14.03.0195.001; Wed, 10 Dec 2014 15:53:52 +0000" ], "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"4.97,862,1389772800\"; d=\"scan'208\";a=\"427387425\"", "From": "\"Mrzyglod, DanielX T\" <danielx.t.mrzyglod@intel.com>", "To": "\"dev@dpdk.org\" <dev@dpdk.org>", "Thread-Topic": "[dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "Thread-Index": "AQHQEvXO2fJqynX8P0ONnxz6nzmI7ZyIfRpAgABtfoCAAAICAIAADhLw", "Date": "Wed, 10 Dec 2014 15:53:52 +0000", "Message-ID": "<7ADD74816B4C8A45B56203CBA65FE5A6097CABC3@IRSMSX107.ger.corp.intel.com>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>\n\t<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>\n\t<20141210144745.GC17040@localhost.localdomain>\n\t<20141210145455.GC1632@bricha3-MOBL3>", "In-Reply-To": "<20141210145455.GC1632@bricha3-MOBL3>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-originating-ip": "[163.33.239.181]", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "Subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 3979, "web_url": "http://patches.dpdk.org/comment/3979/", "msgid": "<20141210161646.GE17040@localhost.localdomain>", "list_archive_url": "https://inbox.dpdk.org/dev/20141210161646.GE17040@localhost.localdomain", "date": "2014-12-10T16:16:46", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 32, "url": "http://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Wed, Dec 10, 2014 at 02:54:56PM +0000, Bruce Richardson wrote:\n> On Wed, Dec 10, 2014 at 09:47:45AM -0500, Neil Horman wrote:\n> > On Wed, Dec 10, 2014 at 08:18:36AM +0000, Wodkowski, PawelX wrote:\n> > > > Though, that said, doesn't it seem to anyone else like serialization of enqueue\n> > > > to a port should be the responsibility of the library, not the application?\n> > > > \n> > > > Neil\n> > > \n> > > From my knowledge it is an application responsibility to serialize access to\n> > > queue on particular port.\n> > > \n> > I understand thats the way it currently is, I'm advocating for the fact that it\n> > should not be.\n> > Neil\n> >\n> It could be done, but I think we'd need to add a new API (or new parameter to\n> existing API) to do so, as the cost of adding the locks would be severe, even in\n> the uncontented case. \n> This is why it hasn't been done up till now, obviously enough. In general, where\n> we don't provide performant multi-thread safe APIs, we generally don't try and\n> provide versions with locks, we just document the limitation and then leave it \n> up to the app to determine how best to handle things.\n> \nThis really seems like a false savings to me. If an application intends to use\nmultiple processes (which by all rights it seems like the use case that the dpdk\nis mostly designed for) then you need locking one way or another, and you've\njust made application coding harder, because the application now needs to know\nwhich functions might have internal critical sections that they need to provide\nlocking for.\n\nI agree that, in the single process case, there might be a slight performance\nloss (though I contend it wouldn't be greatly significant). That said, I would\nargue that the right approach is to do the locking internally to the DPDK, then\nprovide a configuration point which toggles the spinlock defintions to either do\nproper locking, or just reduce to empty definitions, the same way the Linux and\nBSD kernels do in the uniprocessor case. That way applications never have to\nworry about internal locking, and you can still build for the optimal case when\nyou need to.\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 0708D6A95;\n\tWed, 10 Dec 2014 17:17:30 +0100 (CET)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id 7A02BDE0\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 17:17:27 +0100 (CET)", "from nat-pool-rdu-t.redhat.com ([66.187.233.202] 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 1Xyjwk-0004jK-1v; Wed, 10 Dec 2014 11:17:10 -0500" ], "Date": "Wed, 10 Dec 2014 11:16:46 -0500", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "Bruce Richardson <bruce.richardson@intel.com>", "Message-ID": "<20141210161646.GE17040@localhost.localdomain>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>\n\t<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>\n\t<20141210144745.GC17040@localhost.localdomain>\n\t<20141210145455.GC1632@bricha3-MOBL3>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<20141210145455.GC1632@bricha3-MOBL3>", "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] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 4001, "web_url": "http://patches.dpdk.org/comment/4001/", "msgid": "<20141210153837.1f30eed8@urahara>", "list_archive_url": "https://inbox.dpdk.org/dev/20141210153837.1f30eed8@urahara", "date": "2014-12-10T23:38:37", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 27, "url": "http://patches.dpdk.org/api/people/27/?format=api", "name": "Stephen Hemminger", "email": "stephen@networkplumber.org" }, "content": "On Wed, 10 Dec 2014 11:16:46 -0500\nNeil Horman <nhorman@tuxdriver.com> wrote:\n\n> This really seems like a false savings to me. If an application intends to use\n> multiple processes (which by all rights it seems like the use case that the dpdk\n> is mostly designed for) then you need locking one way or another, and you've\n> just made application coding harder, because the application now needs to know\n> which functions might have internal critical sections that they need to provide\n> locking for.\n\nThe DPDK is not Linux.\nSee the examples of how to route without using locks by doing asymmetric multiprocessing.\nI.e queues are only serviced by one CPU.\n\nThe cost of a locked operation (even uncontended) is often enough to drop\npacket performance by several million PPS.", "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 E7EEA6A95;\n\tThu, 11 Dec 2014 00:38:50 +0100 (CET)", "from mail-pd0-f169.google.com (mail-pd0-f169.google.com\n\t[209.85.192.169]) by dpdk.org (Postfix) with ESMTP id 279BC6A87\n\tfor <dev@dpdk.org>; Thu, 11 Dec 2014 00:38:48 +0100 (CET)", "by mail-pd0-f169.google.com with SMTP id z10so3781075pdj.0\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 15:38:47 -0800 (PST)", "from urahara (static-50-53-82-155.bvtn.or.frontiernet.net.\n\t[50.53.82.155]) by mx.google.com with ESMTPSA id\n\tri3sm5194727pdb.58.2014.12.10.15.38.44 for <multiple recipients>\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 10 Dec 2014 15:38:46 -0800 (PST)" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to\n\t:references:mime-version:content-type:content-transfer-encoding;\n\tbh=iQhla/p3yfDHFuw3A68708Ln+fB3BvD7Dnt+QUFEPuA=;\n\tb=dazlaIJ1JITb9OGIms0/V1kVMCZFjYS+iQgzbhSaG1XrhU/x0baBXFHi2OkXZfvGtG\n\twV/MWaUEnKwDTWFAq7bkCmLEmkk1t4VexfUH3JidWV3PddUb4UszKIKBCYsrgh38AuPX\n\t9cL2DiSxECzJBrRDNE9EKUUpFrKJW+UZ4+Ur1tJsmOaHB1RBAE5Hmu7dgufv8KxU6S8b\n\tfgXt95RZTV38MdyqNqONTF7+XphUCuMk2oGgG7OrRf8j6qf7Fe4g0DqH6mskgYIw4scx\n\ty+Dz49FIpx96IQtcgHHH//YtH5NjyaP1v2fJUBRhZHy+YXNaZVYyrBXwb8U9h628oxDg\n\t2UOA==", "X-Gm-Message-State": "ALoCoQlYI2mYH0e058CbarBg1Ekijs4ypUf/WgDgtwmODER0cMoMnelEZJQRhu6tdkeHlfWnzd4z", "X-Received": "by 10.68.88.3 with SMTP id bc3mr11810832pbb.150.1418254727286;\n\tWed, 10 Dec 2014 15:38:47 -0800 (PST)", "Date": "Wed, 10 Dec 2014 15:38:37 -0800", "From": "Stephen Hemminger <stephen@networkplumber.org>", "To": "Neil Horman <nhorman@tuxdriver.com>", "Message-ID": "<20141210153837.1f30eed8@urahara>", "In-Reply-To": "<20141210161646.GE17040@localhost.localdomain>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>\n\t<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>\n\t<20141210144745.GC17040@localhost.localdomain>\n\t<20141210145455.GC1632@bricha3-MOBL3>\n\t<20141210161646.GE17040@localhost.localdomain>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=US-ASCII", "Content-Transfer-Encoding": "7bit", "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>", "Subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 4004, "web_url": "http://patches.dpdk.org/comment/4004/", "msgid": "<20141211003416.GB24240@localhost.localdomain>", "list_archive_url": "https://inbox.dpdk.org/dev/20141211003416.GB24240@localhost.localdomain", "date": "2014-12-11T00:34:16", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 32, "url": "http://patches.dpdk.org/api/people/32/?format=api", "name": "Neil Horman", "email": "nhorman@tuxdriver.com" }, "content": "On Wed, Dec 10, 2014 at 03:38:37PM -0800, Stephen Hemminger wrote:\n> On Wed, 10 Dec 2014 11:16:46 -0500\n> Neil Horman <nhorman@tuxdriver.com> wrote:\n> \n> > This really seems like a false savings to me. If an application intends to use\n> > multiple processes (which by all rights it seems like the use case that the dpdk\n> > is mostly designed for) then you need locking one way or another, and you've\n> > just made application coding harder, because the application now needs to know\n> > which functions might have internal critical sections that they need to provide\n> > locking for.\n> \n> The DPDK is not Linux.\nI never indicated that it was.\n\n> See the examples of how to route without using locks by doing asymmetric multiprocessing.\n> I.e queues are only serviced by one CPU.\n> \nYes, I've seen it.\n\n> The cost of a locked operation (even uncontended) is often enough to drop\n> packet performance by several million PPS.\nPlease re-read my note, I clearly stated that a single process use case was a\nvalid one, but that didn't preclude the need to provide mutual exclusion\ninternally to the api. Theres no reason that this locking can't be moved into\nthe api, and the spinlock api itself either be defined to do locking at compile\ntime, or defined out as empty macros based on a build variable\n(CONFIG_SINGLE_ACCESSOR or some such). That way you save the application the\nheadache of having to guess which api calls need locking around them, and you\nstill get maximal performance if the application being written can guarantee\nsingle accessor status to the dpdk library.\n\nNeil", "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 E955C7E79;\n\tThu, 11 Dec 2014 01:36:57 +0100 (CET)", "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id 53B376A87\n\tfor <dev@dpdk.org>; Thu, 11 Dec 2014 01:36:48 +0100 (CET)", "from [2001:470:8:a08:215:ff:fecc:4872] (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 1XyriS-00026M-A8; Wed, 10 Dec 2014 19:35:18 -0500" ], "Date": "Wed, 10 Dec 2014 19:34:16 -0500", "From": "Neil Horman <nhorman@tuxdriver.com>", "To": "Stephen Hemminger <stephen@networkplumber.org>", "Message-ID": "<20141211003416.GB24240@localhost.localdomain>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>\n\t<F6F2A6264E145F47A18AB6DF8E87425D12B6C944@IRSMSX106.ger.corp.intel.com>\n\t<20141210144745.GC17040@localhost.localdomain>\n\t<20141210145455.GC1632@bricha3-MOBL3>\n\t<20141210161646.GE17040@localhost.localdomain>\n\t<20141210153837.1f30eed8@urahara>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=us-ascii", "Content-Disposition": "inline", "In-Reply-To": "<20141210153837.1f30eed8@urahara>", "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] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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": 4017, "web_url": "http://patches.dpdk.org/comment/4017/", "msgid": "<1444843.bUb3XjPkOK@xps13>", "list_archive_url": "https://inbox.dpdk.org/dev/1444843.bUb3XjPkOK@xps13", "date": "2014-12-11T01:08:57", "subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "submitter": { "id": 1, "url": "http://patches.dpdk.org/api/people/1/?format=api", "name": "Thomas Monjalon", "email": "thomas.monjalon@6wind.com" }, "content": "> > Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>\n> \n> Acked-by: Neil Horman <nhorman@tuxdriver.com>\n\nApplied\n\nThanks", "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 616A6804B;\n\tThu, 11 Dec 2014 02:09:37 +0100 (CET)", "from mail-wi0-f174.google.com (mail-wi0-f174.google.com\n\t[209.85.212.174]) by dpdk.org (Postfix) with ESMTP id B0616804A\n\tfor <dev@dpdk.org>; Thu, 11 Dec 2014 02:09:35 +0100 (CET)", "by mail-wi0-f174.google.com with SMTP id h11so13052276wiw.1\n\tfor <dev@dpdk.org>; Wed, 10 Dec 2014 17:09:35 -0800 (PST)", "from xps13.localnet ([88.249.222.12])\n\tby mx.google.com with ESMTPSA id\n\tbs2sm7883124wjc.43.2014.12.10.17.09.34 for <multiple recipients>\n\t(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);\n\tWed, 10 Dec 2014 17:09:34 -0800 (PST)" ], "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=F5ygEPBbTMwb+tp5gcwg2lzubS1Vcn1KD7FQiz0e6m4=;\n\tb=Kcdup32gVkJrUnHdIeLSWmt8VQVutXCHcZepLPZ21rmXngV5S2yELr5vRmztK3Gb67\n\tRStWLYEsAQ9H0vNaylECi8jFNyDvFqVuxE6JP29q5663Iighjd290PECDmu8szpvwwBb\n\tQHXzp3nisN/FEKgrzFcY0lLRs0BZIyfc4lc/ir0q4RsluDhX9mml8mwQkiYPwJKWuSdY\n\tCwwfgC8W1MjEGZqjtz11hqEOkGE5w/MXvwOA3QdtoCeagvCBFDm+HXoEpdi8h/ajXi/y\n\t79ws5m/vxPVzVGW9Rac6ImUqgjWz+VxWatUThFPm0Pj4OWpfnKmdDn5YqF1RZEI423jh\n\t9Gmg==", "X-Gm-Message-State": "ALoCoQktfKS/rXjyVvb5Zmgpo6sZK9edBjiwfABvq81LQ2rRKyKVKyAu4yjHmhrT0wR3A0SQBUIo", "X-Received": "by 10.180.14.163 with SMTP id q3mr18059897wic.54.1418260175598; \n\tWed, 10 Dec 2014 17:09:35 -0800 (PST)", "From": "Thomas Monjalon <thomas.monjalon@6wind.com>", "To": "Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>", "Date": "Thu, 11 Dec 2014 02:08:57 +0100", "Message-ID": "<1444843.bUb3XjPkOK@xps13>", "Organization": "6WIND", "User-Agent": "KMail/4.14.3 (Linux/3.17.4-1-ARCH; KDE/4.14.3; x86_64; ; )", "In-Reply-To": "<20141208144545.GD3237@localhost.localdomain>", "References": "<1404818184-29388-1-git-send-email-danielx.t.mrzyglod@intel.com>\n\t<20141208144545.GD3237@localhost.localdomain>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "7Bit", "Content-Type": "text/plain; charset=\"us-ascii\"", "Cc": "dev@dpdk.org", "Subject": "Re: [dpdk-dev] Added Spinlock to l3fwd-vf example to prevent race\n\tconditioning", "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 } ]