List comments

GET /api/patches/73594/comments/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
        "id": 115612,
        "web_url": "https://patches.dpdk.org/comment/115612/",
        "msgid": "<CAJFAV8zKAC3u7MKV3N7bswRK7Qo+sNNTv=jCXSAM=Ns1DB1EGw@mail.gmail.com>",
        "date": "2020-07-09T11:49:53",
        "subject": "Re: [dpdk-dev] [PATCH v8 1/3] lib/lpm: integrate RCU QSBR",
        "submitter": {
            "id": 1173,
            "url": "https://patches.dpdk.org/api/people/1173/?format=api",
            "name": "David Marchand",
            "email": "david.marchand@redhat.com"
        },
        "content": "Hello Ruifeng,\n\nOn Thu, Jul 9, 2020 at 10:03 AM Ruifeng Wang <ruifeng.wang@arm.com> wrote:\n> diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c\n> index 38ab512a4..4fbf5b6df 100644\n> --- a/lib/librte_lpm/rte_lpm.c\n> +++ b/lib/librte_lpm/rte_lpm.c\n> @@ -1,5 +1,6 @@\n>  /* SPDX-License-Identifier: BSD-3-Clause\n>   * Copyright(c) 2010-2014 Intel Corporation\n> + * Copyright(c) 2020 Arm Limited\n>   */\n>\n>  #include <string.h>\n> @@ -39,6 +40,17 @@ enum valid_flag {\n>         VALID\n>  };\n>\n> +/** @internal LPM structure. */\n> +struct __rte_lpm {\n> +       /* LPM metadata. */\n> +       struct rte_lpm lpm;\n> +\n> +       /* RCU config. */\n> +       struct rte_rcu_qsbr *v;         /* RCU QSBR variable. */\n> +       enum rte_lpm_qsbr_mode rcu_mode;/* Blocking, defer queue. */\n> +       struct rte_rcu_qsbr_dq *dq;     /* RCU QSBR defer queue. */\n> +};\n> +\n>  /* Macro to enable/disable run-time checks. */\n>  #if defined(RTE_LIBRTE_LPM_DEBUG)\n>  #include <rte_debug.h>\n> @@ -122,6 +134,7 @@ rte_lpm_create(const char *name, int socket_id,\n>                 const struct rte_lpm_config *config)\n>  {\n>         char mem_name[RTE_LPM_NAMESIZE];\n> +       struct __rte_lpm *internal_lpm = NULL;\n\nNit: internal_lpm does not need to be initialised to NULL.\n\n\n>         struct rte_lpm *lpm = NULL;\n>         struct rte_tailq_entry *te;\n>         uint32_t mem_size, rules_size, tbl8s_size;\n> @@ -140,12 +153,6 @@ rte_lpm_create(const char *name, int socket_id,\n>\n>         snprintf(mem_name, sizeof(mem_name), \"LPM_%s\", name);\n>\n> -       /* Determine the amount of memory to allocate. */\n> -       mem_size = sizeof(*lpm);\n> -       rules_size = sizeof(struct rte_lpm_rule) * config->max_rules;\n> -       tbl8s_size = (sizeof(struct rte_lpm_tbl_entry) *\n> -                       RTE_LPM_TBL8_GROUP_NUM_ENTRIES * config->number_tbl8s);\n> -\n>         rte_mcfg_tailq_write_lock();\n>\n>         /* guarantee there's no existing */\n> @@ -161,6 +168,12 @@ rte_lpm_create(const char *name, int socket_id,\n>                 goto exit;\n>         }\n>\n> +       /* Determine the amount of memory to allocate. */\n> +       mem_size = sizeof(*internal_lpm);\n> +       rules_size = sizeof(struct rte_lpm_rule) * config->max_rules;\n> +       tbl8s_size = (sizeof(struct rte_lpm_tbl_entry) *\n> +                       RTE_LPM_TBL8_GROUP_NUM_ENTRIES * config->number_tbl8s);\n> +\n>         /* allocate tailq entry */\n>         te = rte_zmalloc(\"LPM_TAILQ_ENTRY\", sizeof(*te), 0);\n>         if (te == NULL) {\n> @@ -170,22 +183,23 @@ rte_lpm_create(const char *name, int socket_id,\n>         }\n>\n>         /* Allocate memory to store the LPM data structures. */\n> -       lpm = rte_zmalloc_socket(mem_name, mem_size,\n> +       internal_lpm = rte_zmalloc_socket(mem_name, mem_size,\n>                         RTE_CACHE_LINE_SIZE, socket_id);\n> -       if (lpm == NULL) {\n> +       if (internal_lpm == NULL) {\n>                 RTE_LOG(ERR, LPM, \"LPM memory allocation failed\\n\");\n>                 rte_free(te);\n>                 rte_errno = ENOMEM;\n>                 goto exit;\n>         }\n>\n> +       lpm = &internal_lpm->lpm;\n\nFrom this point...\n\n>         lpm->rules_tbl = rte_zmalloc_socket(NULL,\n>                         (size_t)rules_size, RTE_CACHE_LINE_SIZE, socket_id);\n>\n>         if (lpm->rules_tbl == NULL) {\n>                 RTE_LOG(ERR, LPM, \"LPM rules_tbl memory allocation failed\\n\");\n> -               rte_free(lpm);\n> -               lpm = NULL;\n> +               rte_free(internal_lpm);\n> +               internal_lpm = NULL;\n\n... lpm is set to &internal_lpm->lpm and will be returned by jumping\nto the exit label.\nSo freeing internal_lpm is necessary, but the lpm variable must be set\nto NULL too.\n\n\n>                 rte_free(te);\n>                 rte_errno = ENOMEM;\n>                 goto exit;\n> @@ -197,8 +211,8 @@ rte_lpm_create(const char *name, int socket_id,\n>         if (lpm->tbl8 == NULL) {\n>                 RTE_LOG(ERR, LPM, \"LPM tbl8 memory allocation failed\\n\");\n>                 rte_free(lpm->rules_tbl);\n> -               rte_free(lpm);\n> -               lpm = NULL;\n> +               rte_free(internal_lpm);\n> +               internal_lpm = NULL;\n\nDitto.\n\n\n>                 rte_free(te);\n>                 rte_errno = ENOMEM;\n>                 goto exit;",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "X-Mailman-Version": "2.1.15",
            "X-Mimecast-Originator": "redhat.com",
            "Authentication-Results": "relay.mimecast.com;\n auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dmarchan@redhat.com",
            "X-Mimecast-Spam-Score": "0",
            "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1594295407;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=LCK+Np25HjGvGrPT/pxvJ2hPTtLwsR3KubdKLBeTZgM=;\n b=LUUyJ48Z7/Aj2F0QYULPlNwBj7nQBAS6ul63DH93mNemUHIr2Y3DROTiTjEO3l9IBFDuYe\n n9mXzJjgmmeoVPAf7g1l/wWSQV1nUD2nrsTDwS7ymQYOW4ZipwOEyFZeL93ur9TtZP6+Nu\n Kgq+kDICZlebiarprzW49p9taGeBV70=",
            "Precedence": "list",
            "X-Gm-Message-State": "AOAM533w2cY8rzcXanGB1ZHEmaAUrE8gYTbfMWQOpKafCxFFfFUkUQZu\n pEYPCFZfywfsxupH5SabnuSAjYE1HS7i9k90M+eepTE982Z4xm5kFh49aKML0z9iF5n0Buwst0H\n oB8rinzPusDRnrS0lY3E=",
            "X-Google-Smtp-Source": "\n ABdhPJxQ+1R56lCmKkHpzkaN1JwBAK6+rzJVR1gE/BcLtL/i+d/lqmAtuovLRt9Mk1f0OeH0Bfe+22g0RDoy6SbVBhU=",
            "List-Post": "<mailto:dev@dpdk.org>",
            "MIME-Version": "1.0",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "X-BeenThere": "dev@dpdk.org",
            "References": "<20190906094534.36060-1-ruifeng.wang@arm.com>\n <20200709080250.200166-1-ruifeng.wang@arm.com>\n <20200709080250.200166-2-ruifeng.wang@arm.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v8 1/3] lib/lpm: integrate RCU QSBR",
            "Content-Type": "text/plain; charset=\"UTF-8\"",
            "From": "David Marchand <david.marchand@redhat.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 0A2A6A0528;\n\tThu,  9 Jul 2020 13:50:09 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id CD9911E537;\n\tThu,  9 Jul 2020 13:50:08 +0200 (CEST)",
                "from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com\n [207.211.31.120]) by dpdk.org (Postfix) with ESMTP id D6CDA1E535\n for <dev@dpdk.org>; Thu,  9 Jul 2020 13:50:07 +0200 (CEST)",
                "from mail-vk1-f199.google.com (mail-vk1-f199.google.com\n [209.85.221.199]) (Using TLS) by relay.mimecast.com with ESMTP id\n us-mta-429-7BRT-SjVPKqoD8Eptu3Dqg-1; Thu, 09 Jul 2020 07:50:05 -0400",
                "by mail-vk1-f199.google.com with SMTP id 131so371224vkw.6\n for <dev@dpdk.org>; Thu, 09 Jul 2020 04:50:05 -0700 (PDT)"
            ],
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:mime-version:references:in-reply-to:from:date\n :message-id:subject:to:cc;\n bh=LCK+Np25HjGvGrPT/pxvJ2hPTtLwsR3KubdKLBeTZgM=;\n b=XRgfx6OJh45q70A/xayD267J0xbvufa3+h1E5vdGjqKfVV1XJCHdAlZ0gJFxDR4bRK\n gXlSV4eqJ/oo5Vy3IX18oBA0Fhr4w7abqZ4fAAW91ahfbC+wA2LPuUhAorIe/f/mZUmb\n GKiJ5V94qONJ/6Zl26y5OSx+P/uNyU/NEKZ3AHz++IO+FcBlbyVeN7bAiArrlwrnRYc+\n Dpk76GzNE9m6j4t/E3ab+QV0AqBYNz2cNKIqV/1tjfB25LtUFJ3S5y14o/2qi0GsXbzb\n obhOG/R8B6fxUX2xrS0f1iqfOu036wO6cCJEmGbnwxqint1Zazln0aeNFhSXxTL0Dr4b\n 0Nzw==",
            "X-MC-Unique": "7BRT-SjVPKqoD8Eptu3Dqg-1",
            "Message-ID": "\n <CAJFAV8zKAC3u7MKV3N7bswRK7Qo+sNNTv=jCXSAM=Ns1DB1EGw@mail.gmail.com>",
            "Date": "Thu, 9 Jul 2020 13:49:53 +0200",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "X-Received": [
                "by 2002:a67:c990:: with SMTP id\n y16mr48625076vsk.105.1594295405150;\n Thu, 09 Jul 2020 04:50:05 -0700 (PDT)",
                "by 2002:a67:c990:: with SMTP id\n y16mr48625059vsk.105.1594295404884;\n Thu, 09 Jul 2020 04:50:04 -0700 (PDT)"
            ],
            "To": "Ruifeng Wang <ruifeng.wang@arm.com>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "<20200709080250.200166-2-ruifeng.wang@arm.com>",
            "Cc": "Bruce Richardson <bruce.richardson@intel.com>,\n Vladimir Medvedkin <vladimir.medvedkin@intel.com>,\n John McNamara <john.mcnamara@intel.com>,\n Marko Kovacevic <marko.kovacevic@intel.com>, Ray Kinsella <mdr@ashroe.eu>,\n Neil Horman <nhorman@tuxdriver.com>, dev <dev@dpdk.org>,\n \"Ananyev, Konstantin\" <konstantin.ananyev@intel.com>,\n Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>, nd <nd@arm.com>",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Return-Path": "<dev-bounces@dpdk.org>"
        }
    },
    {
        "id": 115639,
        "web_url": "https://patches.dpdk.org/comment/115639/",
        "msgid": "<HE1PR0801MB20258C7D93F08628DFFF7EEA9E640@HE1PR0801MB2025.eurprd08.prod.outlook.com>",
        "date": "2020-07-09T14:35:18",
        "subject": "Re: [dpdk-dev] [PATCH v8 1/3] lib/lpm: integrate RCU QSBR",
        "submitter": {
            "id": 1198,
            "url": "https://patches.dpdk.org/api/people/1198/?format=api",
            "name": "Ruifeng Wang",
            "email": "ruifeng.wang@arm.com"
        },
        "content": "> -----Original Message-----\n> From: David Marchand <david.marchand@redhat.com>\n> Sent: Thursday, July 9, 2020 7:50 PM\n> To: Ruifeng Wang <Ruifeng.Wang@arm.com>\n> Cc: Bruce Richardson <bruce.richardson@intel.com>; Vladimir Medvedkin\n> <vladimir.medvedkin@intel.com>; John McNamara\n> <john.mcnamara@intel.com>; Marko Kovacevic\n> <marko.kovacevic@intel.com>; Ray Kinsella <mdr@ashroe.eu>; Neil Horman\n> <nhorman@tuxdriver.com>; dev <dev@dpdk.org>; Ananyev, Konstantin\n> <konstantin.ananyev@intel.com>; Honnappa Nagarahalli\n> <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>\n> Subject: Re: [dpdk-dev] [PATCH v8 1/3] lib/lpm: integrate RCU QSBR\n> \n> Hello Ruifeng,\n> \nHi David,\n\nThanks for your review and suggestions.\n\n> On Thu, Jul 9, 2020 at 10:03 AM Ruifeng Wang <ruifeng.wang@arm.com>\n> wrote:\n> > diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index\n> > 38ab512a4..4fbf5b6df 100644\n> > --- a/lib/librte_lpm/rte_lpm.c\n> > +++ b/lib/librte_lpm/rte_lpm.c\n> > @@ -1,5 +1,6 @@\n> >  /* SPDX-License-Identifier: BSD-3-Clause\n> >   * Copyright(c) 2010-2014 Intel Corporation\n> > + * Copyright(c) 2020 Arm Limited\n> >   */\n> >\n> >  #include <string.h>\n> > @@ -39,6 +40,17 @@ enum valid_flag {\n> >         VALID\n> >  };\n> >\n> > +/** @internal LPM structure. */\n> > +struct __rte_lpm {\n> > +       /* LPM metadata. */\n> > +       struct rte_lpm lpm;\n> > +\n> > +       /* RCU config. */\n> > +       struct rte_rcu_qsbr *v;         /* RCU QSBR variable. */\n> > +       enum rte_lpm_qsbr_mode rcu_mode;/* Blocking, defer queue. */\n> > +       struct rte_rcu_qsbr_dq *dq;     /* RCU QSBR defer queue. */\n> > +};\n> > +\n> >  /* Macro to enable/disable run-time checks. */  #if\n> > defined(RTE_LIBRTE_LPM_DEBUG)  #include <rte_debug.h> @@ -122,6\n> +134,7\n> > @@ rte_lpm_create(const char *name, int socket_id,\n> >                 const struct rte_lpm_config *config)  {\n> >         char mem_name[RTE_LPM_NAMESIZE];\n> > +       struct __rte_lpm *internal_lpm = NULL;\n> \n> Nit: internal_lpm does not need to be initialised to NULL.\n> \nAgreed.\n\n> \n> >         struct rte_lpm *lpm = NULL;\n> >         struct rte_tailq_entry *te;\n> >         uint32_t mem_size, rules_size, tbl8s_size; @@ -140,12 +153,6\n> > @@ rte_lpm_create(const char *name, int socket_id,\n> >\n> >         snprintf(mem_name, sizeof(mem_name), \"LPM_%s\", name);\n> >\n> > -       /* Determine the amount of memory to allocate. */\n> > -       mem_size = sizeof(*lpm);\n> > -       rules_size = sizeof(struct rte_lpm_rule) * config->max_rules;\n> > -       tbl8s_size = (sizeof(struct rte_lpm_tbl_entry) *\n> > -                       RTE_LPM_TBL8_GROUP_NUM_ENTRIES * config-\n> >number_tbl8s);\n> > -\n> >         rte_mcfg_tailq_write_lock();\n> >\n> >         /* guarantee there's no existing */ @@ -161,6 +168,12 @@\n> > rte_lpm_create(const char *name, int socket_id,\n> >                 goto exit;\n> >         }\n> >\n> > +       /* Determine the amount of memory to allocate. */\n> > +       mem_size = sizeof(*internal_lpm);\n> > +       rules_size = sizeof(struct rte_lpm_rule) * config->max_rules;\n> > +       tbl8s_size = (sizeof(struct rte_lpm_tbl_entry) *\n> > +                       RTE_LPM_TBL8_GROUP_NUM_ENTRIES *\n> > + config->number_tbl8s);\n> > +\n> >         /* allocate tailq entry */\n> >         te = rte_zmalloc(\"LPM_TAILQ_ENTRY\", sizeof(*te), 0);\n> >         if (te == NULL) {\n> > @@ -170,22 +183,23 @@ rte_lpm_create(const char *name, int socket_id,\n> >         }\n> >\n> >         /* Allocate memory to store the LPM data structures. */\n> > -       lpm = rte_zmalloc_socket(mem_name, mem_size,\n> > +       internal_lpm = rte_zmalloc_socket(mem_name, mem_size,\n> >                         RTE_CACHE_LINE_SIZE, socket_id);\n> > -       if (lpm == NULL) {\n> > +       if (internal_lpm == NULL) {\n> >                 RTE_LOG(ERR, LPM, \"LPM memory allocation failed\\n\");\n> >                 rte_free(te);\n> >                 rte_errno = ENOMEM;\n> >                 goto exit;\n> >         }\n> >\n> > +       lpm = &internal_lpm->lpm;\n> \n> From this point...\n> \n> >         lpm->rules_tbl = rte_zmalloc_socket(NULL,\n> >                         (size_t)rules_size, RTE_CACHE_LINE_SIZE,\n> > socket_id);\n> >\n> >         if (lpm->rules_tbl == NULL) {\n> >                 RTE_LOG(ERR, LPM, \"LPM rules_tbl memory allocation failed\\n\");\n> > -               rte_free(lpm);\n> > -               lpm = NULL;\n> > +               rte_free(internal_lpm);\n> > +               internal_lpm = NULL;\n> \n> ... lpm is set to &internal_lpm->lpm and will be returned by jumping to the\n> exit label.\n> So freeing internal_lpm is necessary, but the lpm variable must be set to\n> NULL too.\n> \nYes. lpm will be returned instead of internal_lpm. It must be set to NULL.\nWill add this in next version.\n\n> \n> >                 rte_free(te);\n> >                 rte_errno = ENOMEM;\n> >                 goto exit;\n> > @@ -197,8 +211,8 @@ rte_lpm_create(const char *name, int socket_id,\n> >         if (lpm->tbl8 == NULL) {\n> >                 RTE_LOG(ERR, LPM, \"LPM tbl8 memory allocation failed\\n\");\n> >                 rte_free(lpm->rules_tbl);\n> > -               rte_free(lpm);\n> > -               lpm = NULL;\n> > +               rte_free(internal_lpm);\n> > +               internal_lpm = NULL;\n> \n> Ditto.\n> \nWill do.\nThanks.\n\n> \n> >                 rte_free(te);\n> >                 rte_errno = ENOMEM;\n> >                 goto exit;\n> \n> --\n> David Marchand",
        "headers": {
            "Accept-Language": "en-US",
            "X-Mailman-Version": "2.1.15",
            "x-ms-oob-tlc-oobclassifiers": "OLM:7219;OLM:7219;",
            "X-CR-MTA-TID": "64aa7808",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
            "Precedence": "list",
            "X-Forefront-Antispam-Report-Untrusted": "CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR0801MB2025.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE; SFTY:;\n SFS:(4636009)(136003)(346002)(376002)(396003)(366004)(39860400002)(2906002)(33656002)(66476007)(186003)(4326008)(7696005)(53546011)(6506007)(55016002)(83380400001)(26005)(5660300002)(6916009)(86362001)(54906003)(52536014)(8936002)(316002)(9686003)(8676002)(71200400001)(76116006)(66946007)(478600001)(64756008)(66556008)(66446008);\n DIR:OUT; SFP:1101;",
            "List-Post": "<mailto:dev@dpdk.org>",
            "Date": "Thu, 9 Jul 2020 14:35:18 +0000",
            "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];\n Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]",
            "Subject": "Re: [dpdk-dev] [PATCH v8 1/3] lib/lpm: integrate RCU QSBR",
            "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [
                "HE1PR08MB2636",
                "AM6PR08MB3304"
            ],
            "Content-Transfer-Encoding": "base64",
            "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "From": "Ruifeng Wang <Ruifeng.Wang@arm.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 2F29BA0528;\n\tThu,  9 Jul 2020 16:36:33 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 093611E8F4;\n\tThu,  9 Jul 2020 16:36:33 +0200 (CEST)",
                "from EUR01-HE1-obe.outbound.protection.outlook.com\n (mail-eopbgr130059.outbound.protection.outlook.com [40.107.13.59])\n by dpdk.org (Postfix) with ESMTP id C51B91E8BC\n for <dev@dpdk.org>; Thu,  9 Jul 2020 16:36:31 +0200 (CEST)",
                "from AM6P195CA0019.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:81::32)\n by AM6PR08MB3304.eurprd08.prod.outlook.com (2603:10a6:209:49::19) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21; Thu, 9 Jul\n 2020 14:36:28 +0000",
                "from AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com\n (2603:10a6:209:81:cafe::fc) by AM6P195CA0019.outlook.office365.com\n (2603:10a6:209:81::32) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend\n Transport; Thu, 9 Jul 2020 14:36:28 +0000",
                "from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by\n AM5EUR03FT051.mail.protection.outlook.com (10.152.16.246) with\n Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.3174.21 via Frontend Transport; Thu, 9 Jul 2020 14:36:28 +0000",
                "(\"Tessian outbound c83312565ef4:v62\");\n Thu, 09 Jul 2020 14:36:28 +0000",
                "from 147d8004d8b3.2\n by 64aa7808-outbound-1.mta.getcheckrecipient.com id\n 29A152A1-FA6E-451F-A5E4-F831A02B0E19.1;\n Thu, 09 Jul 2020 14:36:23 +0000",
                "from EUR05-AM6-obe.outbound.protection.outlook.com\n by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id\n 147d8004d8b3.2\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);\n Thu, 09 Jul 2020 14:36:23 +0000",
                "from HE1PR0801MB2025.eurprd08.prod.outlook.com (2603:10a6:3:50::14)\n by HE1PR08MB2636.eurprd08.prod.outlook.com (2603:10a6:7:39::15) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.20; Thu, 9 Jul\n 2020 14:35:18 +0000",
                "from HE1PR0801MB2025.eurprd08.prod.outlook.com\n ([fe80::e863:15c9:b803:6533]) by HE1PR0801MB2025.eurprd08.prod.outlook.com\n ([fe80::e863:15c9:b803:6533%7]) with mapi id 15.20.3174.021; Thu, 9 Jul 2020\n 14:35:18 +0000"
            ],
            "x-originating-ip": "[222.68.170.231]",
            "X-MS-Office365-Filtering-HT": "Tenant",
            "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 63.35.35.123)\n smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified)\n header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none\n header.from=arm.com;",
            "x-ms-exchange-transport-forked": "True",
            "X-MS-Exchange-CrossTenant-AuthSource": "\n AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "x-checkrecipientchecked": "true",
            "x-ts-tracking-id": "9405f7be-8bec-4ecf-a146-d31afb8b1629.0",
            "DKIM-Signature": [
                "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=VatVB0Pi39HxGbhCMkq85sSRuSrPSt6rM5FHDPM/lPA=;\n b=RveTPL1rdoJaCbL/RfUpUs35fqJfbfDIEVrVQG57PVjn4yTbTtE5KlcLrNDfMn1jy5lg9UYBVBZnSgS4P1Em47FzQ70jWHWCc5dm3LIFjnONK8CnHpxTv8daImNtZ4mBlTnGIPqSUxUU1EUEBk5Hi3IM6GPaZiOfJ9wJqW+/srY=",
                "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=VatVB0Pi39HxGbhCMkq85sSRuSrPSt6rM5FHDPM/lPA=;\n b=RveTPL1rdoJaCbL/RfUpUs35fqJfbfDIEVrVQG57PVjn4yTbTtE5KlcLrNDfMn1jy5lg9UYBVBZnSgS4P1Em47FzQ70jWHWCc5dm3LIFjnONK8CnHpxTv8daImNtZ4mBlTnGIPqSUxUU1EUEBk5Hi3IM6GPaZiOfJ9wJqW+/srY="
            ],
            "Message-ID": "\n <HE1PR0801MB20258C7D93F08628DFFF7EEA9E640@HE1PR0801MB2025.eurprd08.prod.outlook.com>",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "Received-SPF": "Pass (protection.outlook.com: domain of arm.com designates\n 63.35.35.123 as permitted sender) receiver=protection.outlook.com;\n client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;",
            "To": "David Marchand <david.marchand@redhat.com>",
            "Original-Authentication-Results": "redhat.com; dkim=none (message not signed)\n header.d=none;redhat.com; dmarc=none action=none header.from=arm.com;",
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "x-checkrecipientrouted": "true",
            "x-ms-publictraffictype": "Email",
            "Content-Language": "en-US",
            "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none",
            "X-MS-TNEF-Correlator": "",
            "X-EOPAttributedMessage": "0",
            "X-Microsoft-Antispam-Untrusted": "BCL:0;",
            "Thread-Index": "AQHWVcdqHgSZUt6i20aLTUna53wzi6j/Io6AgAArlHA=",
            "CC": "Bruce Richardson <bruce.richardson@intel.com>, Vladimir Medvedkin\n <vladimir.medvedkin@intel.com>, John McNamara <john.mcnamara@intel.com>,\n Marko Kovacevic <marko.kovacevic@intel.com>, Ray Kinsella <mdr@ashroe.eu>,\n Neil Horman <nhorman@tuxdriver.com>, dev <dev@dpdk.org>, \"Ananyev,\n Konstantin\" <konstantin.ananyev@intel.com>, Honnappa Nagarahalli\n <Honnappa.Nagarahalli@arm.com>, nd <nd@arm.com>, nd <nd@arm.com>",
            "X-OriginatorOrg": "arm.com",
            "Thread-Topic": "[dpdk-dev] [PATCH v8 1/3] lib/lpm: integrate RCU QSBR",
            "Authentication-Results-Original": "redhat.com; dkim=none (message not signed)\n header.d=none;redhat.com; dmarc=none action=none header.from=arm.com;",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "X-Microsoft-Antispam-PRVS": "\n <AM6PR08MB33042F7D2F1A3C2A244D3F669E640@AM6PR08MB3304.eurprd08.prod.outlook.com>",
            "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AM5EUR03FT051.eop-EUR03.prod.protection.outlook.com",
            "x-ms-traffictypediagnostic": "HE1PR08MB2636:|AM6PR08MB3304:",
            "MIME-Version": "1.0",
            "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d",
            "X-BeenThere": "dev@dpdk.org",
            "References": "<20190906094534.36060-1-ruifeng.wang@arm.com>\n <20200709080250.200166-1-ruifeng.wang@arm.com>\n <20200709080250.200166-2-ruifeng.wang@arm.com>\n <CAJFAV8zKAC3u7MKV3N7bswRK7Qo+sNNTv=jCXSAM=Ns1DB1EGw@mail.gmail.com>",
            "Content-Type": "text/plain; charset=\"utf-8\"",
            "X-Microsoft-Antispam-Message-Info-Original": "\n BNUh+oVOXivn2n182OsWVvS+quqHo1a3Fy+iUP+6aG7m84Pr1eXEJaiCc2xdQMZ7E7l9oAaisFsPMuosod8OozE5Zv6qmB2DgB4Qi34x2EJ3LYcatE9G8p4Y08yaRBE6KcsMejbaxddi2rAhgMSpG9It1af+00rH3bw+FBQXO7iYJNIgYyF8AqtN/B5oJ9TSS9A/ODqvJ/giWVwNuY7UFNiMkSguTePmDZnnwZtBC085u4VUiQ6XiCGTFVFOb6NuCMsfvkmLwExtu99x/fKK9doxkrIogI241ZuUgxTtqDsqIhBlnYJIZKY0suU+FGpsznfQC2WfjU/A9sitX/tstQ==",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "X-Forefront-Antispam-Report": "CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com;\n PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:;\n SFS:(4636009)(46966005)(70586007)(47076004)(82310400002)(336012)(52536014)(356005)(86362001)(83380400001)(7696005)(26005)(498600001)(70206006)(8936002)(4326008)(55016002)(54906003)(8676002)(81166007)(9686003)(186003)(6862004)(33656002)(5660300002)(53546011)(6506007)(36906005)(2906002);\n DIR:OUT; SFP:1101;",
            "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=VatVB0Pi39HxGbhCMkq85sSRuSrPSt6rM5FHDPM/lPA=;\n b=B8W+oWCb1X5Z8HzY9/p5OELRIEUVdctNGK6ADgwHeKtKDpbbuwmUjR4uRmW9S5VHD8qdE2AhVe1S7JarJy7Rw8Cm5QQqv0jae2jdC1EUblvvGaK/d5Chr/k2B29SmODZEYv4usmFNW++KRtJFYJ+2NQwepys8P1uXvf6gddCNj+8rND37O+cPC6alYp+a1v+X5okyNGZ0wpeLesTb1jrO2WvbW1Qp3TGouriXpqwqX8KAuBRdEajA81Uw+wggNCl036xi4fXeMxFCq9vycHCLjfVW9vE6Asj40ZdpQ2TXt+Ki/k8re2vJhWNIu7pfY4GY4P3CaOMOYcZSjxCe0mBBg==",
            "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 5ec0f1d0-eabf-4a81-b6da-08d824157735",
            "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n e63730e0-f6c4-40e2-a2ec-08d824154d6e",
            "nodisclaimer": "true",
            "X-MS-Office365-Filtering-Correlation-Id": "5ec0f1d0-eabf-4a81-b6da-08d824157735",
            "X-MS-Has-Attach": "",
            "X-Microsoft-Antispam-Message-Info": "\n iMrLy/5nlO4FNxuSxtiFfQplAYeVO+iJLTrZ5rnJIAfmjIKIUK0w+BBTVbhKxsdq7RWmlXWP/8k98i4piX+oy/YOcn8esNjTmo5PBUpGS3rfPPPxGhBmlf1Bz1rXLy7cz2dekVee0cK2ft3oQx+KkqsvBg65IDPDEoQTmzG+6pAuzW9v0xSilD8eZnwP6HcySr4Fk1WskwBcuMAgHhWCoLA8/kD4wa6cv9LSULqJKUXUqlSzpPCli8IQGdgZV2ws7Lz5+/UTtmWaxACaLMFEMuBduO7zTo+UFw1iLjsDRuo1TaYPJIpmfTXQj9zcbzm68ppMnQPGUlLEYgDrgGEXgC0rixHd+niu+NwDWHMrRLlNU775aS4zi4LR94E66eyA74OkKkS2yFx7e/4R6aWVkQ==",
            "x-ms-exchange-antispam-messagedata": "\n BZdBcZf63rrdjazCbWBNM8SZJywqsm6o2Q/KVOSE3wOQIlX9aB+Y4dhlWGGzJknyd6jUoVtThrihvo3sKz6GA9IciTMgq3UKbWwxASs5XNfIPKJJ7pciAo8A5OxF05zFg5oLkuaDZ6gincPEvmx4k6v7zWSwt1AUP1nkRe6gg6GMdjIh0u1qZaWbkF0fPaYWFsOCqeem8DS8jq3L6xu8HHY24822Zel/rEsi0ZzKXH5fERLUeYoodL7xIq+ncClzYb8XIrrLKgytvDmNXmyXyMppPnYl/IuCnmn7Wovx9S1iHUw9NVpxA0vL1MU1aoPEQse92iP7bY6hge9IhYqksd3j5pKHkBPFZmQzc2Jfm9WwXMuUkx+aR0mz+14hCLyYF8xpADpD537jMoUwH+0KxHbDiVhiZaYOA0GnXpL/AAd9mR+Y9qitwptFrk0HLgwx3DCZYFIIDv3YqoTUVDfOo0Z90DQ2ZD94TUZ1ph0f2oLJTvqEa7h5mAAWmiFCJMOr",
            "X-MS-Exchange-SenderADCheck": "1",
            "In-Reply-To": "\n <CAJFAV8zKAC3u7MKV3N7bswRK7Qo+sNNTv=jCXSAM=Ns1DB1EGw@mail.gmail.com>",
            "X-Microsoft-Antispam": "BCL:0;",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Tt6ZOLsR8u0wS13A4WLhaggC+vwsq4Vm/tsaADCCgyZDu81/Yc5j6sTSOqoyZCUgEGVjlaDAr9yWNsLbBq4gWdd46nUe/9/IHdojb9G74uW12UrMETJK3zxlP3AydHci2oKf9qF+gCnp5AQm9y4S1Z10wK9YQD7QKeA6oqU+4VqPkuStgzCqQ7UuMlsRxTKSWfqxfA/4rm5OE2AklP205lrJostzid6SedNx7jWXZmm7YhZArfo9T8QbRSvGuKoaWakXhoe05NUQU7bhPJ4qUH2M3DDGrqvk/WtbSPcCJx5BqFaqnW88ZzV91ABG5mVVi61TpPpTbIKLiALM/GaJwQ==",
            "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "09 Jul 2020 14:36:28.4987 (UTC)"
        }
    }
]