List comments

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

[
    {
        "id": 116604,
        "web_url": "https://patches.dpdk.org/comment/116604/",
        "msgid": "<c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>",
        "date": "2020-07-24T13:25:10",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 4,
            "url": "https://patches.dpdk.org/api/people/4/",
            "name": "Burakov, Anatoly",
            "email": "anatoly.burakov@intel.com"
        },
        "content": "On 23-Jul-20 3:48 PM, wangyunjian wrote:\n> From: Yunjian Wang <wangyunjian@huawei.com>\n> \n> Currently, we will create new user mem map entry for the same memory\n> segment, but in fact it has already been added to the user mem maps.\n> It's not necessary to create it twice.\n> \n> To resolve the issue, add support to remove the same entry in the\n> function compact_user_maps().\n> \n> Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n> Cc: stable@dpdk.org\n> \n> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n> ---\n> v2:\n> * Remove the same entry in the function compact_user_maps()\n> ---\n>   lib/librte_eal/linux/eal_vfio.c | 5 +++++\n>   1 file changed, 5 insertions(+)\n> \n> diff --git a/lib/librte_eal/linux/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c\n> index abb12a354..df99307b7 100644\n> --- a/lib/librte_eal/linux/eal_vfio.c\n> +++ b/lib/librte_eal/linux/eal_vfio.c\n> @@ -167,6 +167,10 @@ adjust_map(struct user_mem_map *src, struct user_mem_map *end,\n>   static int\n>   merge_map(struct user_mem_map *left, struct user_mem_map *right)\n>   {\n> +\t/* merge the same maps into one */\n> +\tif (memcmp(left, right, sizeof(struct user_mem_map)) == 0)\n> +\t\tgoto out;\n> +\n\nmerge_map looks for adjacent maps only, but does not handle maps that \nare wholly contained within one another (\"the same map\" also matches \nthis definition). wouldn't it be better to check for that instead of \n*just* handling identical maps?\n\n>   \tif (left->addr + left->len != right->addr)\n>   \t\treturn 0;\n>   \tif (left->iova + left->len != right->iova)\n> @@ -174,6 +178,7 @@ merge_map(struct user_mem_map *left, struct user_mem_map *right)\n>   \n>   \tleft->len += right->len;\n>   \n> +out:\n>   \tmemset(right, 0, sizeof(*right));\n>   \n>   \treturn 1;\n>",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "X-IronPort-AV": [
                "E=McAfee;i=\"6000,8403,9691\"; a=\"235583205\"",
                "E=Sophos;i=\"5.75,390,1589266800\"; d=\"scan'208\";a=\"235583205\"",
                "E=Sophos;i=\"5.75,390,1589266800\"; d=\"scan'208\";a=\"288991646\""
            ],
            "IronPort-SDR": [
                "\n IVlMWgihPmSGImBX8GoxZvPyMnZmLznb2uQ0kLqeF0JBZuvypcjQ8HNoScfmlVRMaqw2FuzPcF\n SQwg3q6827SQ==",
                "\n 9sQSbDmCA5wYp0Ec40xOl7tvog7koPZjDh/KhkrY20QsMFYnTdb09iZ2DzrG1qpHWs2TptOaxJ\n Lw1mW9IhtZTQ=="
            ],
            "X-Amp-File-Uploaded": "False",
            "Precedence": "list",
            "X-Mailman-Version": "2.1.15",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "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": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n Thunderbird/68.10.0",
            "Content-Type": "text/plain; charset=utf-8; format=flowed",
            "From": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 69D05A0526;\n\tFri, 24 Jul 2020 15:25:16 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id A5D2F1C0BE;\n\tFri, 24 Jul 2020 15:25:15 +0200 (CEST)",
                "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n by dpdk.org (Postfix) with ESMTP id 0B19F1C0BD;\n Fri, 24 Jul 2020 15:25:13 +0200 (CEST)",
                "from orsmga006.jf.intel.com ([10.7.209.51])\n by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 24 Jul 2020 06:25:12 -0700",
                "from aburakov-mobl.ger.corp.intel.com (HELO [10.252.35.102])\n ([10.252.35.102])\n by orsmga006.jf.intel.com with ESMTP; 24 Jul 2020 06:25:10 -0700"
            ],
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-ExtLoop1": "1",
            "Message-ID": "<c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>",
            "Date": "Fri, 24 Jul 2020 14:25:10 +0100",
            "Content-Transfer-Encoding": "7bit",
            "To": "wangyunjian <wangyunjian@huawei.com>, dev@dpdk.org,\n david.marchand@redhat.com",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "<1595515713-24640-1-git-send-email-wangyunjian@huawei.com>",
            "Cc": "jerry.lilijun@huawei.com, xudingke@huawei.com, stable@dpdk.org",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "en-US"
        }
    },
    {
        "id": 116632,
        "web_url": "https://patches.dpdk.org/comment/116632/",
        "msgid": "<34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>",
        "date": "2020-07-25T09:59:12",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 551,
            "url": "https://patches.dpdk.org/api/people/551/",
            "name": "wangyunjian",
            "email": "wangyunjian@huawei.com"
        },
        "content": "> -----Original Message-----\n> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n> Sent: Friday, July 24, 2020 9:25 PM\n> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n> david.marchand@redhat.com\n> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n> <xudingke@huawei.com>; stable@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n> repeatedly when it exists\n> \n> On 23-Jul-20 3:48 PM, wangyunjian wrote:\n> > From: Yunjian Wang <wangyunjian@huawei.com>\n> >\n> > Currently, we will create new user mem map entry for the same memory\n> > segment, but in fact it has already been added to the user mem maps.\n> > It's not necessary to create it twice.\n> >\n> > To resolve the issue, add support to remove the same entry in the\n> > function compact_user_maps().\n> >\n> > Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n> > Cc: stable@dpdk.org\n> >\n> > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n> > ---\n> > v2:\n> > * Remove the same entry in the function compact_user_maps()\n> > ---\n> >   lib/librte_eal/linux/eal_vfio.c | 5 +++++\n> >   1 file changed, 5 insertions(+)\n> >\n> > diff --git a/lib/librte_eal/linux/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c\n> > index abb12a354..df99307b7 100644\n> > --- a/lib/librte_eal/linux/eal_vfio.c\n> > +++ b/lib/librte_eal/linux/eal_vfio.c\n> > @@ -167,6 +167,10 @@ adjust_map(struct user_mem_map *src, struct\n> user_mem_map *end,\n> >   static int\n> >   merge_map(struct user_mem_map *left, struct user_mem_map *right)\n> >   {\n> > +\t/* merge the same maps into one */\n> > +\tif (memcmp(left, right, sizeof(struct user_mem_map)) == 0)\n> > +\t\tgoto out;\n> > +\n> \n> merge_map looks for adjacent maps only, but does not handle maps that\n> are wholly contained within one another (\"the same map\" also matches\n> this definition). wouldn't it be better to check for that instead of\n> *just* handling identical maps?\n\nWhat about using the initial implementation?\nWe don't create new user mem map entry for the same memory segment.\n\n@@ -1828,6 +1828,13 @@  container_dma_map(struct vfio_config *vfio_cfg, uint64_t vaddr, uint64_t iova,\n \t\tret = -1;\n \t\tgoto out;\n \t}\n+\n+\t/* we don't need create new user mem map entry\n+\t * for the same memory segment.\n+\t */\n+\tif (errno == EBUSY || errno == EEXIST)\n+\t\tgoto out;\n+\n \t/* create new user mem map entry */\n \tnew_map = &user_mem_maps->maps[user_mem_maps->n_maps++];\n \tnew_map->addr = vaddr;\n\nThanks,\nYunjian\n> \n> >   \tif (left->addr + left->len != right->addr)\n> >   \t\treturn 0;\n> >   \tif (left->iova + left->len != right->iova)\n> > @@ -174,6 +178,7 @@ merge_map(struct user_mem_map *left, struct\n> user_mem_map *right)\n> >\n> >   \tleft->len += right->len;\n> >\n> > +out:\n> >   \tmemset(right, 0, sizeof(*right));\n> >\n> >   \treturn 1;\n> >\n> \n> \n> --\n> Thanks,\n> Anatoly",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Accept-Language": "en-US",
            "X-MS-TNEF-Correlator": "",
            "Thread-Index": "AQHWYQBeKLf/JXFWikCJC/y3HWnXzakWM5gAgAHZYzA=",
            "CC": "\"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>, xudingke\n <xudingke@huawei.com>, \"stable@dpdk.org\" <stable@dpdk.org>",
            "Precedence": "list",
            "Thread-Topic": "[dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "List-Post": "<mailto:dev@dpdk.org>",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "X-Mailman-Version": "2.1.15",
            "MIME-Version": "1.0",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "X-BeenThere": "dev@dpdk.org",
            "References": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "Content-Type": "text/plain; charset=\"utf-8\"",
            "From": "wangyunjian <wangyunjian@huawei.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 7A6B0A0527;\n\tSat, 25 Jul 2020 11:59:31 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 254131C029;\n\tSat, 25 Jul 2020 11:59:30 +0200 (CEST)",
                "from huawei.com (szxga03-in.huawei.com [45.249.212.189])\n by dpdk.org (Postfix) with ESMTP id 03A361C025;\n Sat, 25 Jul 2020 11:59:27 +0200 (CEST)",
                "from DGGEMM401-HUB.china.huawei.com (unknown [172.30.72.56])\n by Forcepoint Email with ESMTP id 92B0B9A0DC3D20E1E199;\n Sat, 25 Jul 2020 17:59:24 +0800 (CST)",
                "from DGGEMM513-MBX.china.huawei.com ([169.254.1.141]) by\n DGGEMM401-HUB.china.huawei.com ([10.3.20.209]) with mapi id 14.03.0487.000;\n Sat, 25 Jul 2020 17:59:12 +0800"
            ],
            "x-originating-ip": "[10.174.185.168]",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-CFilter-Loop": "Reflected",
            "Message-ID": "\n <34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>",
            "Date": "Sat, 25 Jul 2020 09:59:12 +0000",
            "Content-Transfer-Encoding": "base64",
            "To": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>, \"dev@dpdk.org\"\n <dev@dpdk.org>, \"david.marchand@redhat.com\" <david.marchand@redhat.com>",
            "X-MS-Has-Attach": "",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "<c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "zh-CN"
        }
    },
    {
        "id": 116686,
        "web_url": "https://patches.dpdk.org/comment/116686/",
        "msgid": "<a75edde1-a30c-71d1-5191-6c37cad23779@intel.com>",
        "date": "2020-07-27T09:24:29",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 4,
            "url": "https://patches.dpdk.org/api/people/4/",
            "name": "Burakov, Anatoly",
            "email": "anatoly.burakov@intel.com"
        },
        "content": "On 25-Jul-20 10:59 AM, wangyunjian wrote:\n>> -----Original Message-----\n>> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n>> Sent: Friday, July 24, 2020 9:25 PM\n>> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n>> david.marchand@redhat.com\n>> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n>> <xudingke@huawei.com>; stable@dpdk.org\n>> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n>> repeatedly when it exists\n>>\n>> On 23-Jul-20 3:48 PM, wangyunjian wrote:\n>>> From: Yunjian Wang <wangyunjian@huawei.com>\n>>>\n>>> Currently, we will create new user mem map entry for the same memory\n>>> segment, but in fact it has already been added to the user mem maps.\n>>> It's not necessary to create it twice.\n>>>\n>>> To resolve the issue, add support to remove the same entry in the\n>>> function compact_user_maps().\n>>>\n>>> Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n>>> Cc: stable@dpdk.org\n>>>\n>>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n>>> ---\n>>> v2:\n>>> * Remove the same entry in the function compact_user_maps()\n>>> ---\n>>>    lib/librte_eal/linux/eal_vfio.c | 5 +++++\n>>>    1 file changed, 5 insertions(+)\n>>>\n>>> diff --git a/lib/librte_eal/linux/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c\n>>> index abb12a354..df99307b7 100644\n>>> --- a/lib/librte_eal/linux/eal_vfio.c\n>>> +++ b/lib/librte_eal/linux/eal_vfio.c\n>>> @@ -167,6 +167,10 @@ adjust_map(struct user_mem_map *src, struct\n>> user_mem_map *end,\n>>>    static int\n>>>    merge_map(struct user_mem_map *left, struct user_mem_map *right)\n>>>    {\n>>> +\t/* merge the same maps into one */\n>>> +\tif (memcmp(left, right, sizeof(struct user_mem_map)) == 0)\n>>> +\t\tgoto out;\n>>> +\n>>\n>> merge_map looks for adjacent maps only, but does not handle maps that\n>> are wholly contained within one another (\"the same map\" also matches\n>> this definition). wouldn't it be better to check for that instead of\n>> *just* handling identical maps?\n> \n> What about using the initial implementation?\n> We don't create new user mem map entry for the same memory segment.\n\nI don't like this implementation because it relies on particulars of how \nVFIO mapping work without explicitly specifying them. I.e. it's prone to \nbreaking when changing code. That's not even mentioning that we have no \nguarantees on kernel behavior in that particular case being identical on \nall supported platforms.\n\nI would honestly prefer an explicit compaction over implicit one.\n\n> \n> @@ -1828,6 +1828,13 @@  container_dma_map(struct vfio_config *vfio_cfg, uint64_t vaddr, uint64_t iova,\n>   \t\tret = -1;\n>   \t\tgoto out;\n>   \t}\n> +\n> +\t/* we don't need create new user mem map entry\n> +\t * for the same memory segment.\n> +\t */\n> +\tif (errno == EBUSY || errno == EEXIST)\n> +\t\tgoto out;\n> +\n>   \t/* create new user mem map entry */\n>   \tnew_map = &user_mem_maps->maps[user_mem_maps->n_maps++];\n>   \tnew_map->addr = vaddr;\n> \n> Thanks,\n> Yunjian\n>>\n>>>    \tif (left->addr + left->len != right->addr)\n>>>    \t\treturn 0;\n>>>    \tif (left->iova + left->len != right->iova)\n>>> @@ -174,6 +178,7 @@ merge_map(struct user_mem_map *left, struct\n>> user_mem_map *right)\n>>>\n>>>    \tleft->len += right->len;\n>>>\n>>> +out:\n>>>    \tmemset(right, 0, sizeof(*right));\n>>>\n>>>    \treturn 1;\n>>>\n>>\n>>\n>> --\n>> Thanks,\n>> Anatoly",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "X-IronPort-AV": [
                "E=McAfee;i=\"6000,8403,9694\"; a=\"130528886\"",
                "E=Sophos;i=\"5.75,402,1589266800\"; d=\"scan'208\";a=\"130528886\"",
                "E=Sophos;i=\"5.75,402,1589266800\"; d=\"scan'208\";a=\"329613220\""
            ],
            "IronPort-SDR": [
                "\n d/RnKbQdubViGKEGK8h6Q1B/pJ35bWm7Shy0H2NyYnmY0KftNfelNhkj3nbBcgQ9xAGRwsm49h\n RzVKsrLV5oPg==",
                "\n olzxm06AD9LDJFFMxnee/meujt/pEgwwSQo/AQQQSUfWD6wWmSPrBjopsdH9B6KY81nZQMT/fP\n 8MyQy5GFrhyA=="
            ],
            "X-Amp-File-Uploaded": "False",
            "Precedence": "list",
            "X-Mailman-Version": "2.1.15",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "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": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n Thunderbird/68.10.0",
            "Content-Type": "text/plain; charset=utf-8; format=flowed",
            "From": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 43927A0524;\n\tMon, 27 Jul 2020 11:24:39 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id B477A1BFF5;\n\tMon, 27 Jul 2020 11:24:38 +0200 (CEST)",
                "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by dpdk.org (Postfix) with ESMTP id E1EE11BFE0;\n Mon, 27 Jul 2020 11:24:35 +0200 (CEST)",
                "from orsmga007.jf.intel.com ([10.7.209.58])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 27 Jul 2020 02:24:34 -0700",
                "from aburakov-mobl.ger.corp.intel.com (HELO [10.214.224.54])\n ([10.214.224.54])\n by orsmga007.jf.intel.com with ESMTP; 27 Jul 2020 02:24:31 -0700"
            ],
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-ExtLoop1": "1",
            "Message-ID": "<a75edde1-a30c-71d1-5191-6c37cad23779@intel.com>",
            "Date": "Mon, 27 Jul 2020 10:24:29 +0100",
            "Content-Transfer-Encoding": "7bit",
            "To": "wangyunjian <wangyunjian@huawei.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n \"david.marchand@redhat.com\" <david.marchand@redhat.com>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "\n <34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>",
            "Cc": "\"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>,\n xudingke <xudingke@huawei.com>, \"stable@dpdk.org\" <stable@dpdk.org>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "en-US"
        }
    },
    {
        "id": 116936,
        "web_url": "https://patches.dpdk.org/comment/116936/",
        "msgid": "<34EFBCA9F01B0748BEB6B629CE643AE60D0F695F@dggemm513-mbx.china.huawei.com>",
        "date": "2020-07-30T13:16:44",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 551,
            "url": "https://patches.dpdk.org/api/people/551/",
            "name": "wangyunjian",
            "email": "wangyunjian@huawei.com"
        },
        "content": "> -----Original Message-----\n> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n> Sent: Monday, July 27, 2020 5:24 PM\n> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n> david.marchand@redhat.com\n> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n> <xudingke@huawei.com>; stable@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n> repeatedly when it exists\n> \n> On 25-Jul-20 10:59 AM, wangyunjian wrote:\n> >> -----Original Message-----\n> >> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n> >> Sent: Friday, July 24, 2020 9:25 PM\n> >> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n> >> david.marchand@redhat.com\n> >> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n> >> <xudingke@huawei.com>; stable@dpdk.org\n> >> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem\n> >> map repeatedly when it exists\n> >>\n> >> On 23-Jul-20 3:48 PM, wangyunjian wrote:\n> >>> From: Yunjian Wang <wangyunjian@huawei.com>\n> >>>\n> >>> Currently, we will create new user mem map entry for the same memory\n> >>> segment, but in fact it has already been added to the user mem maps.\n> >>> It's not necessary to create it twice.\n> >>>\n> >>> To resolve the issue, add support to remove the same entry in the\n> >>> function compact_user_maps().\n> >>>\n> >>> Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n> >>> Cc: stable@dpdk.org\n> >>>\n> >>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n> >>> ---\n> >>> v2:\n> >>> * Remove the same entry in the function compact_user_maps()\n> >>> ---\n> >>>    lib/librte_eal/linux/eal_vfio.c | 5 +++++\n> >>>    1 file changed, 5 insertions(+)\n> >>>\n> >>> diff --git a/lib/librte_eal/linux/eal_vfio.c\n> >>> b/lib/librte_eal/linux/eal_vfio.c index abb12a354..df99307b7 100644\n> >>> --- a/lib/librte_eal/linux/eal_vfio.c\n> >>> +++ b/lib/librte_eal/linux/eal_vfio.c\n> >>> @@ -167,6 +167,10 @@ adjust_map(struct user_mem_map *src, struct\n> >> user_mem_map *end,\n> >>>    static int\n> >>>    merge_map(struct user_mem_map *left, struct user_mem_map\n> *right)\n> >>>    {\n> >>> +\t/* merge the same maps into one */\n> >>> +\tif (memcmp(left, right, sizeof(struct user_mem_map)) == 0)\n> >>> +\t\tgoto out;\n> >>> +\n> >>\n> >> merge_map looks for adjacent maps only, but does not handle maps that\n> >> are wholly contained within one another (\"the same map\" also matches\n> >> this definition). wouldn't it be better to check for that instead of\n> >> *just* handling identical maps?\n> >\n> > What about using the initial implementation?\n> > We don't create new user mem map entry for the same memory segment.\n> \n> I don't like this implementation because it relies on particulars of how VFIO\n> mapping work without explicitly specifying them. I.e. it's prone to breaking\n> when changing code. That's not even mentioning that we have no guarantees\n> on kernel behavior in that particular case being identical on all supported\n> platforms.\n> \n> I would honestly prefer an explicit compaction over implicit one.\n\nWhat about this implementation?\n\ndiff --git a/lib/librte_eal/linux/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c\nindex e07979936..8dcb04cd9 100644\n--- a/lib/librte_eal/linux/eal_vfio.c\n+++ b/lib/librte_eal/linux/eal_vfio.c\n@@ -179,6 +179,19 @@ merge_map(struct user_mem_map *left, struct user_mem_map *right)\n \treturn 1;\n }\n \n+/* try merging two same maps into one, return 1 if succeeded */\n+static int\n+merge_same_map(struct user_mem_map *left, struct user_mem_map *right)\n+{\n+\tif (memcmp(left, right, sizeof(struct user_mem_map)) != 0) {\n+\t\treturn 0;\n+\t}\n+\n+\tmemset(right, 0, sizeof(*right));\n+\n+\treturn 1;\n+}\n+\n static struct user_mem_map *\n find_user_mem_map(struct user_mem_maps *user_mem_maps, uint64_t addr,\n \t\tuint64_t iova, uint64_t len)\n@@ -232,7 +245,7 @@ compact_user_maps(struct user_mem_maps *user_mem_maps)\n \t\tif (is_null_map(l) || is_null_map(r))\n \t\t\tcontinue;\n \n-\t\tif (merge_map(l, r))\n+\t\tif (merge_map(l, r) || merge_same_map(l, r))\n \t\t\tn_merged++;\n \t}\n\nThanks,\nYunjian\n\n> \n> >\n> > @@ -1828,6 +1828,13 @@  container_dma_map(struct vfio_config\n> *vfio_cfg, uint64_t vaddr, uint64_t iova,\n> >   \t\tret = -1;\n> >   \t\tgoto out;\n> >   \t}\n> > +\n> > +\t/* we don't need create new user mem map entry\n> > +\t * for the same memory segment.\n> > +\t */\n> > +\tif (errno == EBUSY || errno == EEXIST)\n> > +\t\tgoto out;\n> > +\n> >   \t/* create new user mem map entry */\n> >   \tnew_map =\n> &user_mem_maps->maps[user_mem_maps->n_maps++];\n> >   \tnew_map->addr = vaddr;\n> >\n> > Thanks,\n> > Yunjian\n> >>\n> >>>    \tif (left->addr + left->len != right->addr)\n> >>>    \t\treturn 0;\n> >>>    \tif (left->iova + left->len != right->iova) @@ -174,6 +178,7 @@\n> >>> merge_map(struct user_mem_map *left, struct\n> >> user_mem_map *right)\n> >>>\n> >>>    \tleft->len += right->len;\n> >>>\n> >>> +out:\n> >>>    \tmemset(right, 0, sizeof(*right));\n> >>>\n> >>>    \treturn 1;\n> >>>\n> >>\n> >>\n> >> --\n> >> Thanks,\n> >> Anatoly\n> \n> \n> --\n> Thanks,\n> Anatoly",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Accept-Language": "en-US",
            "X-MS-TNEF-Correlator": "",
            "Thread-Index": "AQHWYQBeKLf/JXFWikCJC/y3HWnXzakWM5gAgAHZYzCAAppcgIAFfUTg",
            "CC": "\"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>, xudingke\n <xudingke@huawei.com>, \"stable@dpdk.org\" <stable@dpdk.org>",
            "Precedence": "list",
            "Thread-Topic": "[dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "List-Post": "<mailto:dev@dpdk.org>",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "X-Mailman-Version": "2.1.15",
            "MIME-Version": "1.0",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "X-BeenThere": "dev@dpdk.org",
            "References": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>\n <a75edde1-a30c-71d1-5191-6c37cad23779@intel.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "Content-Type": "text/plain; charset=\"utf-8\"",
            "From": "wangyunjian <wangyunjian@huawei.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 0F2A8A052B;\n\tThu, 30 Jul 2020 15:17:05 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 1D16411A2;\n\tThu, 30 Jul 2020 15:17:03 +0200 (CEST)",
                "from huawei.com (szxga01-in.huawei.com [45.249.212.187])\n by dpdk.org (Postfix) with ESMTP id CC3C13B5;\n Thu, 30 Jul 2020 15:17:00 +0200 (CEST)",
                "from DGGEMM406-HUB.china.huawei.com (unknown [172.30.72.53])\n by Forcepoint Email with ESMTP id 0132A93C300DDEA18802;\n Thu, 30 Jul 2020 21:16:56 +0800 (CST)",
                "from DGGEMM513-MBX.china.huawei.com ([169.254.1.141]) by\n DGGEMM406-HUB.china.huawei.com ([10.3.20.214]) with mapi id 14.03.0487.000;\n Thu, 30 Jul 2020 21:16:45 +0800"
            ],
            "x-originating-ip": "[10.174.185.168]",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-CFilter-Loop": "Reflected",
            "Message-ID": "\n <34EFBCA9F01B0748BEB6B629CE643AE60D0F695F@dggemm513-mbx.china.huawei.com>",
            "Date": "Thu, 30 Jul 2020 13:16:44 +0000",
            "Content-Transfer-Encoding": "base64",
            "To": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>, \"dev@dpdk.org\"\n <dev@dpdk.org>, \"david.marchand@redhat.com\" <david.marchand@redhat.com>",
            "X-MS-Has-Attach": "",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "<a75edde1-a30c-71d1-5191-6c37cad23779@intel.com>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "zh-CN"
        }
    },
    {
        "id": 116994,
        "web_url": "https://patches.dpdk.org/comment/116994/",
        "msgid": "<21d092c3-83ce-a3f4-2411-193a5f46a111@intel.com>",
        "date": "2020-07-31T11:55:23",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 4,
            "url": "https://patches.dpdk.org/api/people/4/",
            "name": "Burakov, Anatoly",
            "email": "anatoly.burakov@intel.com"
        },
        "content": "On 30-Jul-20 2:16 PM, wangyunjian wrote:\n>> -----Original Message-----\n>> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n>> Sent: Monday, July 27, 2020 5:24 PM\n>> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n>> david.marchand@redhat.com\n>> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n>> <xudingke@huawei.com>; stable@dpdk.org\n>> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n>> repeatedly when it exists\n>>\n>> On 25-Jul-20 10:59 AM, wangyunjian wrote:\n>>>> -----Original Message-----\n>>>> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n>>>> Sent: Friday, July 24, 2020 9:25 PM\n>>>> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n>>>> david.marchand@redhat.com\n>>>> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n>>>> <xudingke@huawei.com>; stable@dpdk.org\n>>>> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem\n>>>> map repeatedly when it exists\n>>>>\n>>>> On 23-Jul-20 3:48 PM, wangyunjian wrote:\n>>>>> From: Yunjian Wang <wangyunjian@huawei.com>\n>>>>>\n>>>>> Currently, we will create new user mem map entry for the same memory\n>>>>> segment, but in fact it has already been added to the user mem maps.\n>>>>> It's not necessary to create it twice.\n>>>>>\n>>>>> To resolve the issue, add support to remove the same entry in the\n>>>>> function compact_user_maps().\n>>>>>\n>>>>> Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n>>>>> Cc: stable@dpdk.org\n>>>>>\n>>>>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n>>>>> ---\n>>>>> v2:\n>>>>> * Remove the same entry in the function compact_user_maps()\n>>>>> ---\n>>>>>     lib/librte_eal/linux/eal_vfio.c | 5 +++++\n>>>>>     1 file changed, 5 insertions(+)\n>>>>>\n>>>>> diff --git a/lib/librte_eal/linux/eal_vfio.c\n>>>>> b/lib/librte_eal/linux/eal_vfio.c index abb12a354..df99307b7 100644\n>>>>> --- a/lib/librte_eal/linux/eal_vfio.c\n>>>>> +++ b/lib/librte_eal/linux/eal_vfio.c\n>>>>> @@ -167,6 +167,10 @@ adjust_map(struct user_mem_map *src, struct\n>>>> user_mem_map *end,\n>>>>>     static int\n>>>>>     merge_map(struct user_mem_map *left, struct user_mem_map\n>> *right)\n>>>>>     {\n>>>>> +\t/* merge the same maps into one */\n>>>>> +\tif (memcmp(left, right, sizeof(struct user_mem_map)) == 0)\n>>>>> +\t\tgoto out;\n>>>>> +\n>>>>\n>>>> merge_map looks for adjacent maps only, but does not handle maps that\n>>>> are wholly contained within one another (\"the same map\" also matches\n>>>> this definition). wouldn't it be better to check for that instead of\n>>>> *just* handling identical maps?\n>>>\n>>> What about using the initial implementation?\n>>> We don't create new user mem map entry for the same memory segment.\n>>\n>> I don't like this implementation because it relies on particulars of how VFIO\n>> mapping work without explicitly specifying them. I.e. it's prone to breaking\n>> when changing code. That's not even mentioning that we have no guarantees\n>> on kernel behavior in that particular case being identical on all supported\n>> platforms.\n>>\n>> I would honestly prefer an explicit compaction over implicit one.\n> \n> What about this implementation?\n\nAgain, this works, but i feel like specializing it to just merge the \nexact same maps is missing an opportunity to provide a more general \nsolution that merges same *and* subset maps.\n\n> \n> diff --git a/lib/librte_eal/linux/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c\n> index e07979936..8dcb04cd9 100644\n> --- a/lib/librte_eal/linux/eal_vfio.c\n> +++ b/lib/librte_eal/linux/eal_vfio.c\n> @@ -179,6 +179,19 @@ merge_map(struct user_mem_map *left, struct user_mem_map *right)\n>   \treturn 1;\n>   }\n>   \n> +/* try merging two same maps into one, return 1 if succeeded */\n> +static int\n> +merge_same_map(struct user_mem_map *left, struct user_mem_map *right)\n> +{\n> +\tif (memcmp(left, right, sizeof(struct user_mem_map)) != 0) {\n> +\t\treturn 0;\n> +\t}\n> +\n> +\tmemset(right, 0, sizeof(*right));\n> +\n> +\treturn 1;\n> +}\n> +\n>   static struct user_mem_map *\n>   find_user_mem_map(struct user_mem_maps *user_mem_maps, uint64_t addr,\n>   \t\tuint64_t iova, uint64_t len)\n> @@ -232,7 +245,7 @@ compact_user_maps(struct user_mem_maps *user_mem_maps)\n>   \t\tif (is_null_map(l) || is_null_map(r))\n>   \t\t\tcontinue;\n>   \n> -\t\tif (merge_map(l, r))\n> +\t\tif (merge_map(l, r) || merge_same_map(l, r))\n>   \t\t\tn_merged++;\n>   \t}\n> \n> Thanks,\n> Yunjian\n> \n>>\n>>>\n>>> @@ -1828,6 +1828,13 @@  container_dma_map(struct vfio_config\n>> *vfio_cfg, uint64_t vaddr, uint64_t iova,\n>>>    \t\tret = -1;\n>>>    \t\tgoto out;\n>>>    \t}\n>>> +\n>>> +\t/* we don't need create new user mem map entry\n>>> +\t * for the same memory segment.\n>>> +\t */\n>>> +\tif (errno == EBUSY || errno == EEXIST)\n>>> +\t\tgoto out;\n>>> +\n>>>    \t/* create new user mem map entry */\n>>>    \tnew_map =\n>> &user_mem_maps->maps[user_mem_maps->n_maps++];\n>>>    \tnew_map->addr = vaddr;\n>>>\n>>> Thanks,\n>>> Yunjian\n>>>>\n>>>>>     \tif (left->addr + left->len != right->addr)\n>>>>>     \t\treturn 0;\n>>>>>     \tif (left->iova + left->len != right->iova) @@ -174,6 +178,7 @@\n>>>>> merge_map(struct user_mem_map *left, struct\n>>>> user_mem_map *right)\n>>>>>\n>>>>>     \tleft->len += right->len;\n>>>>>\n>>>>> +out:\n>>>>>     \tmemset(right, 0, sizeof(*right));\n>>>>>\n>>>>>     \treturn 1;\n>>>>>\n>>>>\n>>>>\n>>>> --\n>>>> Thanks,\n>>>> Anatoly\n>>\n>>\n>> --\n>> Thanks,\n>> Anatoly",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "X-IronPort-AV": [
                "E=McAfee;i=\"6000,8403,9698\"; a=\"149588635\"",
                "E=Sophos;i=\"5.75,418,1589266800\"; d=\"scan'208\";a=\"149588635\"",
                "E=Sophos;i=\"5.75,418,1589266800\"; d=\"scan'208\";a=\"331043831\""
            ],
            "IronPort-SDR": [
                "\n mthjHDR4IlOx5LB9aULR6Yaxkova9sjk7+BuIfyGTNG6an+nyUsaUMkkjIc9GDCr99Ou3lMunk\n BYcwpUtjFyNw==",
                "\n Q9Kwaz2Km9W2P3OhiiUEFfgPGDi+q3Q6HocAFb4AQwPb3PGJjWQbxZXezFy6hshoZHKcqEMqPA\n Thd6Jkq55/fQ=="
            ],
            "X-Amp-File-Uploaded": "False",
            "Precedence": "list",
            "X-Mailman-Version": "2.1.15",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "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": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>\n <a75edde1-a30c-71d1-5191-6c37cad23779@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0F695F@dggemm513-mbx.china.huawei.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n Thunderbird/68.10.0",
            "Content-Type": "text/plain; charset=utf-8; format=flowed",
            "From": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 8CFF7A052B;\n\tFri, 31 Jul 2020 13:55:30 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id DDF972BB8;\n\tFri, 31 Jul 2020 13:55:29 +0200 (CEST)",
                "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n by dpdk.org (Postfix) with ESMTP id 68FE311A2;\n Fri, 31 Jul 2020 13:55:27 +0200 (CEST)",
                "from orsmga007.jf.intel.com ([10.7.209.58])\n by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 31 Jul 2020 04:55:26 -0700",
                "from aburakov-mobl.ger.corp.intel.com (HELO [10.213.220.248])\n ([10.213.220.248])\n by orsmga007.jf.intel.com with ESMTP; 31 Jul 2020 04:55:24 -0700"
            ],
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-ExtLoop1": "1",
            "Message-ID": "<21d092c3-83ce-a3f4-2411-193a5f46a111@intel.com>",
            "Date": "Fri, 31 Jul 2020 12:55:23 +0100",
            "Content-Transfer-Encoding": "7bit",
            "To": "wangyunjian <wangyunjian@huawei.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n \"david.marchand@redhat.com\" <david.marchand@redhat.com>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "\n <34EFBCA9F01B0748BEB6B629CE643AE60D0F695F@dggemm513-mbx.china.huawei.com>",
            "Cc": "\"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>,\n xudingke <xudingke@huawei.com>, \"stable@dpdk.org\" <stable@dpdk.org>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "en-US"
        }
    },
    {
        "id": 117152,
        "web_url": "https://patches.dpdk.org/comment/117152/",
        "msgid": "<34EFBCA9F01B0748BEB6B629CE643AE60D110040@DGGEMM533-MBX.china.huawei.com>",
        "date": "2020-08-05T12:58:46",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 551,
            "url": "https://patches.dpdk.org/api/people/551/",
            "name": "wangyunjian",
            "email": "wangyunjian@huawei.com"
        },
        "content": "> -----Original Message-----\n> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n> Sent: Friday, July 31, 2020 7:55 PM\n> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n> david.marchand@redhat.com\n> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n> <xudingke@huawei.com>; stable@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n> repeatedly when it exists\n> \n> On 30-Jul-20 2:16 PM, wangyunjian wrote:\n> >> -----Original Message-----\n> >> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n> >> Sent: Monday, July 27, 2020 5:24 PM\n> >> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n> >> david.marchand@redhat.com\n> >> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n> >> <xudingke@huawei.com>; stable@dpdk.org\n> >> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n> >> repeatedly when it exists\n> >>\n> >> On 25-Jul-20 10:59 AM, wangyunjian wrote:\n> >>>> -----Original Message-----\n> >>>> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n> >>>> Sent: Friday, July 24, 2020 9:25 PM\n> >>>> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n> >>>> david.marchand@redhat.com\n> >>>> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n> >>>> <xudingke@huawei.com>; stable@dpdk.org\n> >>>> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem\n> >>>> map repeatedly when it exists\n> >>>>\n> >>>> On 23-Jul-20 3:48 PM, wangyunjian wrote:\n> >>>>> From: Yunjian Wang <wangyunjian@huawei.com>\n> >>>>>\n> >>>>> Currently, we will create new user mem map entry for the same memory\n> >>>>> segment, but in fact it has already been added to the user mem maps.\n> >>>>> It's not necessary to create it twice.\n> >>>>>\n> >>>>> To resolve the issue, add support to remove the same entry in the\n> >>>>> function compact_user_maps().\n> >>>>>\n> >>>>> Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n> >>>>> Cc: stable@dpdk.org\n> >>>>>\n> >>>>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n> >>>>> ---\n> >>>>> v2:\n> >>>>> * Remove the same entry in the function compact_user_maps()\n> >>>>> ---\n> >>>>>     lib/librte_eal/linux/eal_vfio.c | 5 +++++\n> >>>>>     1 file changed, 5 insertions(+)\n> >>>>>\n> >>>>> diff --git a/lib/librte_eal/linux/eal_vfio.c\n> >>>>> b/lib/librte_eal/linux/eal_vfio.c index abb12a354..df99307b7 100644\n> >>>>> --- a/lib/librte_eal/linux/eal_vfio.c\n> >>>>> +++ b/lib/librte_eal/linux/eal_vfio.c\n> >>>>> @@ -167,6 +167,10 @@ adjust_map(struct user_mem_map *src,\n> struct\n> >>>> user_mem_map *end,\n> >>>>>     static int\n> >>>>>     merge_map(struct user_mem_map *left, struct user_mem_map\n> >> *right)\n> >>>>>     {\n> >>>>> +\t/* merge the same maps into one */\n> >>>>> +\tif (memcmp(left, right, sizeof(struct user_mem_map)) == 0)\n> >>>>> +\t\tgoto out;\n> >>>>> +\n> >>>>\n> >>>> merge_map looks for adjacent maps only, but does not handle maps that\n> >>>> are wholly contained within one another (\"the same map\" also matches\n> >>>> this definition). wouldn't it be better to check for that instead of\n> >>>> *just* handling identical maps?\n> >>>\n> >>> What about using the initial implementation?\n> >>> We don't create new user mem map entry for the same memory segment.\n> >>\n> >> I don't like this implementation because it relies on particulars of how VFIO\n> >> mapping work without explicitly specifying them. I.e. it's prone to breaking\n> >> when changing code. That's not even mentioning that we have no\n> guarantees\n> >> on kernel behavior in that particular case being identical on all supported\n> >> platforms.\n> >>\n> >> I would honestly prefer an explicit compaction over implicit one.\n> >\n> > What about this implementation?\n> \n> Again, this works, but i feel like specializing it to just merge the\n> exact same maps is missing an opportunity to provide a more general\n> solution that merges same *and* subset maps.\n\nCurrently, the problem that I encounter is that a container has many\ndevices and the application will map the same memory many times.\nThe kernel driver returns EEXIST as long as there are overlapping memory\nareas. Therefore, the application needs to ensure that the memory blocks\nof the DMA do not overlap. Otherwise, it will not work normally.\n\nCould you offer me some ideas or advise to fix it?\n\nThanks,\nYunjian\n> \n> >\n> > diff --git a/lib/librte_eal/linux/eal_vfio.c b/lib/librte_eal/linux/eal_vfio.c\n> > index e07979936..8dcb04cd9 100644\n> > --- a/lib/librte_eal/linux/eal_vfio.c\n> > +++ b/lib/librte_eal/linux/eal_vfio.c\n> > @@ -179,6 +179,19 @@ merge_map(struct user_mem_map *left, struct\n> user_mem_map *right)\n> >   \treturn 1;\n> >   }\n> >\n> > +/* try merging two same maps into one, return 1 if succeeded */\n> > +static int\n> > +merge_same_map(struct user_mem_map *left, struct user_mem_map\n> *right)\n> > +{\n> > +\tif (memcmp(left, right, sizeof(struct user_mem_map)) != 0) {\n> > +\t\treturn 0;\n> > +\t}\n> > +\n> > +\tmemset(right, 0, sizeof(*right));\n> > +\n> > +\treturn 1;\n> > +}\n> > +\n> >   static struct user_mem_map *\n> >   find_user_mem_map(struct user_mem_maps *user_mem_maps,\n> uint64_t addr,\n> >   \t\tuint64_t iova, uint64_t len)\n> > @@ -232,7 +245,7 @@ compact_user_maps(struct user_mem_maps\n> *user_mem_maps)\n> >   \t\tif (is_null_map(l) || is_null_map(r))\n> >   \t\t\tcontinue;\n> >\n> > -\t\tif (merge_map(l, r))\n> > +\t\tif (merge_map(l, r) || merge_same_map(l, r))\n> >   \t\t\tn_merged++;\n> >   \t}\n> >\n> > Thanks,\n> > Yunjian\n> >\n> >>\n> >>>\n> >>> @@ -1828,6 +1828,13 @@  container_dma_map(struct vfio_config\n> >> *vfio_cfg, uint64_t vaddr, uint64_t iova,\n> >>>    \t\tret = -1;\n> >>>    \t\tgoto out;\n> >>>    \t}\n> >>> +\n> >>> +\t/* we don't need create new user mem map entry\n> >>> +\t * for the same memory segment.\n> >>> +\t */\n> >>> +\tif (errno == EBUSY || errno == EEXIST)\n> >>> +\t\tgoto out;\n> >>> +\n> >>>    \t/* create new user mem map entry */\n> >>>    \tnew_map =\n> >> &user_mem_maps->maps[user_mem_maps->n_maps++];\n> >>>    \tnew_map->addr = vaddr;\n> >>>\n> >>> Thanks,\n> >>> Yunjian\n> >>>>\n> >>>>>     \tif (left->addr + left->len != right->addr)\n> >>>>>     \t\treturn 0;\n> >>>>>     \tif (left->iova + left->len != right->iova) @@ -174,6 +178,7 @@\n> >>>>> merge_map(struct user_mem_map *left, struct\n> >>>> user_mem_map *right)\n> >>>>>\n> >>>>>     \tleft->len += right->len;\n> >>>>>\n> >>>>> +out:\n> >>>>>     \tmemset(right, 0, sizeof(*right));\n> >>>>>\n> >>>>>     \treturn 1;\n> >>>>>\n> >>>>\n> >>>>\n> >>>> --\n> >>>> Thanks,\n> >>>> Anatoly\n> >>\n> >>\n> >> --\n> >> Thanks,\n> >> Anatoly\n> \n> \n> --\n> Thanks,\n> Anatoly",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Accept-Language": "en-US",
            "X-MS-TNEF-Correlator": "",
            "Thread-Index": "\n AQHWYQBeKLf/JXFWikCJC/y3HWnXzakWM5gAgAHZYzCAAppcgIAFfUTggAD2OYCACG3DUA==",
            "CC": "\"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>, xudingke\n <xudingke@huawei.com>, \"stable@dpdk.org\" <stable@dpdk.org>",
            "Precedence": "list",
            "Thread-Topic": "[dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "List-Post": "<mailto:dev@dpdk.org>",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "X-Mailman-Version": "2.1.15",
            "MIME-Version": "1.0",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "X-BeenThere": "dev@dpdk.org",
            "References": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>\n <a75edde1-a30c-71d1-5191-6c37cad23779@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0F695F@dggemm513-mbx.china.huawei.com>\n <21d092c3-83ce-a3f4-2411-193a5f46a111@intel.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "Content-Type": "text/plain; charset=\"utf-8\"",
            "From": "wangyunjian <wangyunjian@huawei.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 35D90A053A;\n\tWed,  5 Aug 2020 14:59:04 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 768AD37B4;\n\tWed,  5 Aug 2020 14:59:03 +0200 (CEST)",
                "from huawei.com (szxga02-in.huawei.com [45.249.212.188])\n by dpdk.org (Postfix) with ESMTP id A73D02C28;\n Wed,  5 Aug 2020 14:58:59 +0200 (CEST)",
                "from DGGEMM401-HUB.china.huawei.com (unknown [172.30.72.53])\n by Forcepoint Email with ESMTP id 77A3191CA68ECAA6A16C;\n Wed,  5 Aug 2020 20:58:56 +0800 (CST)",
                "from DGGEMM533-MBX.china.huawei.com ([169.254.5.24]) by\n DGGEMM401-HUB.china.huawei.com ([10.3.20.209]) with mapi id 14.03.0487.000;\n Wed, 5 Aug 2020 20:58:46 +0800"
            ],
            "x-originating-ip": "[10.174.185.168]",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-CFilter-Loop": "Reflected",
            "Message-ID": "\n <34EFBCA9F01B0748BEB6B629CE643AE60D110040@DGGEMM533-MBX.china.huawei.com>",
            "Date": "Wed, 5 Aug 2020 12:58:46 +0000",
            "Content-Transfer-Encoding": "base64",
            "To": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>, \"dev@dpdk.org\"\n <dev@dpdk.org>, \"david.marchand@redhat.com\" <david.marchand@redhat.com>",
            "X-MS-Has-Attach": "",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "<21d092c3-83ce-a3f4-2411-193a5f46a111@intel.com>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "zh-CN"
        }
    },
    {
        "id": 118942,
        "web_url": "https://patches.dpdk.org/comment/118942/",
        "msgid": "<eab82e20-b917-1186-7b70-aa91bf1c8b24@intel.com>",
        "date": "2020-09-17T11:33:38",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 4,
            "url": "https://patches.dpdk.org/api/people/4/",
            "name": "Burakov, Anatoly",
            "email": "anatoly.burakov@intel.com"
        },
        "content": "On 05-Aug-20 1:58 PM, wangyunjian wrote:\n>> -----Original Message-----\n>> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n>> Sent: Friday, July 31, 2020 7:55 PM\n>> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n>> david.marchand@redhat.com\n>> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n>> <xudingke@huawei.com>; stable@dpdk.org\n>> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n>> repeatedly when it exists\n>>\n>> On 30-Jul-20 2:16 PM, wangyunjian wrote:\n>>>> -----Original Message-----\n>>>> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n>>>> Sent: Monday, July 27, 2020 5:24 PM\n>>>> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n>>>> david.marchand@redhat.com\n>>>> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n>>>> <xudingke@huawei.com>; stable@dpdk.org\n>>>> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n>>>> repeatedly when it exists\n>>>>\n>>>> On 25-Jul-20 10:59 AM, wangyunjian wrote:\n>>>>>> -----Original Message-----\n>>>>>> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n>>>>>> Sent: Friday, July 24, 2020 9:25 PM\n>>>>>> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n>>>>>> david.marchand@redhat.com\n>>>>>> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n>>>>>> <xudingke@huawei.com>; stable@dpdk.org\n>>>>>> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem\n>>>>>> map repeatedly when it exists\n>>>>>>\n>>>>>> On 23-Jul-20 3:48 PM, wangyunjian wrote:\n>>>>>>> From: Yunjian Wang <wangyunjian@huawei.com>\n>>>>>>>\n>>>>>>> Currently, we will create new user mem map entry for the same memory\n>>>>>>> segment, but in fact it has already been added to the user mem maps.\n>>>>>>> It's not necessary to create it twice.\n>>>>>>>\n>>>>>>> To resolve the issue, add support to remove the same entry in the\n>>>>>>> function compact_user_maps().\n>>>>>>>\n>>>>>>> Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n>>>>>>> Cc: stable@dpdk.org\n>>>>>>>\n>>>>>>> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n>>>>>>> ---\n>>>>>>> v2:\n>>>>>>> * Remove the same entry in the function compact_user_maps()\n>>>>>>> ---\n>>>>>>>      lib/librte_eal/linux/eal_vfio.c | 5 +++++\n>>>>>>>      1 file changed, 5 insertions(+)\n>>>>>>>\n>>>>>>> diff --git a/lib/librte_eal/linux/eal_vfio.c\n>>>>>>> b/lib/librte_eal/linux/eal_vfio.c index abb12a354..df99307b7 100644\n>>>>>>> --- a/lib/librte_eal/linux/eal_vfio.c\n>>>>>>> +++ b/lib/librte_eal/linux/eal_vfio.c\n>>>>>>> @@ -167,6 +167,10 @@ adjust_map(struct user_mem_map *src,\n>> struct\n>>>>>> user_mem_map *end,\n>>>>>>>      static int\n>>>>>>>      merge_map(struct user_mem_map *left, struct user_mem_map\n>>>> *right)\n>>>>>>>      {\n>>>>>>> +\t/* merge the same maps into one */\n>>>>>>> +\tif (memcmp(left, right, sizeof(struct user_mem_map)) == 0)\n>>>>>>> +\t\tgoto out;\n>>>>>>> +\n>>>>>>\n>>>>>> merge_map looks for adjacent maps only, but does not handle maps that\n>>>>>> are wholly contained within one another (\"the same map\" also matches\n>>>>>> this definition). wouldn't it be better to check for that instead of\n>>>>>> *just* handling identical maps?\n>>>>>\n>>>>> What about using the initial implementation?\n>>>>> We don't create new user mem map entry for the same memory segment.\n>>>>\n>>>> I don't like this implementation because it relies on particulars of how VFIO\n>>>> mapping work without explicitly specifying them. I.e. it's prone to breaking\n>>>> when changing code. That's not even mentioning that we have no\n>> guarantees\n>>>> on kernel behavior in that particular case being identical on all supported\n>>>> platforms.\n>>>>\n>>>> I would honestly prefer an explicit compaction over implicit one.\n>>>\n>>> What about this implementation?\n>>\n>> Again, this works, but i feel like specializing it to just merge the\n>> exact same maps is missing an opportunity to provide a more general\n>> solution that merges same *and* subset maps.\n> \n> Currently, the problem that I encounter is that a container has many\n> devices and the application will map the same memory many times.\n> The kernel driver returns EEXIST as long as there are overlapping memory\n> areas. Therefore, the application needs to ensure that the memory blocks\n> of the DMA do not overlap. Otherwise, it will not work normally.\n> \n> Could you offer me some ideas or advise to fix it?\n> \n\nIt sounds like your approach is better if that is indeed the case.",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "X-IronPort-AV": [
                "E=McAfee;i=\"6000,8403,9746\"; a=\"244512696\"",
                "E=Sophos;i=\"5.76,436,1592895600\"; d=\"scan'208\";a=\"244512696\"",
                "E=Sophos;i=\"5.76,436,1592895600\"; d=\"scan'208\";a=\"483712211\""
            ],
            "IronPort-SDR": [
                "\n JvECk8hU1ufRYDba4TMg/7xLsjYyDRLHOhNahFak6wQ3ecCsq9lmW4oKtmW12ygkroQL1eBLjn\n bYSco1iDWgtA==",
                "\n jDuxNs8B/SYVifiyTLCgmEwh6fIoZxaLQSLCwnrjscgAdz5JXdYS6IRB41IfIlUAsphOcWDkyk\n 8mYNutVgzp8g=="
            ],
            "X-Amp-File-Uploaded": "False",
            "Precedence": "list",
            "X-Mailman-Version": "2.1.15",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "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": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <c35b31da-703e-d4d4-6283-0bb4e8ad57e2@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0EAAD8@dggemm513-mbx.china.huawei.com>\n <a75edde1-a30c-71d1-5191-6c37cad23779@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D0F695F@dggemm513-mbx.china.huawei.com>\n <21d092c3-83ce-a3f4-2411-193a5f46a111@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60D110040@DGGEMM533-MBX.china.huawei.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n Thunderbird/68.12.0",
            "Content-Type": "text/plain; charset=utf-8; format=flowed",
            "From": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 17649A04AF;\n\tThu, 17 Sep 2020 13:33:46 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 01FE71D631;\n\tThu, 17 Sep 2020 13:33:46 +0200 (CEST)",
                "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n by dpdk.org (Postfix) with ESMTP id D96D41D605;\n Thu, 17 Sep 2020 13:33:43 +0200 (CEST)",
                "from orsmga005.jf.intel.com ([10.7.209.41])\n by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Sep 2020 04:33:41 -0700",
                "from aburakov-mobl.ger.corp.intel.com (HELO [10.213.206.43])\n ([10.213.206.43])\n by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Sep 2020 04:33:40 -0700"
            ],
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "Message-ID": "<eab82e20-b917-1186-7b70-aa91bf1c8b24@intel.com>",
            "Date": "Thu, 17 Sep 2020 12:33:38 +0100",
            "Content-Transfer-Encoding": "8bit",
            "To": "wangyunjian <wangyunjian@huawei.com>, \"dev@dpdk.org\" <dev@dpdk.org>,\n \"david.marchand@redhat.com\" <david.marchand@redhat.com>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "\n <34EFBCA9F01B0748BEB6B629CE643AE60D110040@DGGEMM533-MBX.china.huawei.com>",
            "Cc": "\"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>,\n xudingke <xudingke@huawei.com>, \"stable@dpdk.org\" <stable@dpdk.org>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "en-US"
        }
    },
    {
        "id": 118944,
        "web_url": "https://patches.dpdk.org/comment/118944/",
        "msgid": "<462bb3d1-7944-6f57-7209-2e1d05491dd9@intel.com>",
        "date": "2020-09-17T11:35:13",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 4,
            "url": "https://patches.dpdk.org/api/people/4/",
            "name": "Burakov, Anatoly",
            "email": "anatoly.burakov@intel.com"
        },
        "content": "On 23-Jul-20 3:48 PM, wangyunjian wrote:\n> From: Yunjian Wang <wangyunjian@huawei.com>\n> \n> Currently, we will create new user mem map entry for the same memory\n> segment, but in fact it has already been added to the user mem maps.\n> It's not necessary to create it twice.\n> \n> To resolve the issue, add support to remove the same entry in the\n> function compact_user_maps().\n> \n> Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n> Cc: stable@dpdk.org\n> \n> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n> ---\n\nAcked-by: Anatoly Burakov <anatoly.burakov@intel.com>",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "X-IronPort-AV": [
                "E=McAfee;i=\"6000,8403,9746\"; a=\"139182951\"",
                "E=Sophos;i=\"5.76,436,1592895600\"; d=\"scan'208\";a=\"139182951\"",
                "E=Sophos;i=\"5.76,436,1592895600\"; d=\"scan'208\";a=\"483712784\""
            ],
            "IronPort-SDR": [
                "\n xqcT/SMQp/vItfFIrNuLl64SYydvMnf6xpjq/wYu3plDVAZYaXCu2liyXjvJtME76kwx1Bfh/i\n 4MZBjVOxWfOA==",
                "\n qDhMS4wUU+Fi44HPZ+razAt8UQBwxYdVGPzXdf9eEFrwYjGZYrRfEetPjTSBwBW0lRqNLUfifQ\n OskeePZW7TIg=="
            ],
            "X-Amp-File-Uploaded": "False",
            "Precedence": "list",
            "X-Mailman-Version": "2.1.15",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "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": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n Thunderbird/68.12.0",
            "Content-Type": "text/plain; charset=utf-8; format=flowed",
            "From": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 1DCB0A04AF;\n\tThu, 17 Sep 2020 13:35:19 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 01C181D655;\n\tThu, 17 Sep 2020 13:35:19 +0200 (CEST)",
                "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by dpdk.org (Postfix) with ESMTP id 47F481D64C;\n Thu, 17 Sep 2020 13:35:17 +0200 (CEST)",
                "from orsmga005.jf.intel.com ([10.7.209.41])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Sep 2020 04:35:16 -0700",
                "from aburakov-mobl.ger.corp.intel.com (HELO [10.213.206.43])\n ([10.213.206.43])\n by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 17 Sep 2020 04:35:14 -0700"
            ],
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "X-Amp-Result": "SKIPPED(no attachment in message)",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "Message-ID": "<462bb3d1-7944-6f57-7209-2e1d05491dd9@intel.com>",
            "Date": "Thu, 17 Sep 2020 12:35:13 +0100",
            "Content-Transfer-Encoding": "7bit",
            "To": "wangyunjian <wangyunjian@huawei.com>, dev@dpdk.org,\n david.marchand@redhat.com",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "<1595515713-24640-1-git-send-email-wangyunjian@huawei.com>",
            "Cc": "jerry.lilijun@huawei.com, xudingke@huawei.com, stable@dpdk.org",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "en-US"
        }
    },
    {
        "id": 121668,
        "web_url": "https://patches.dpdk.org/comment/121668/",
        "msgid": "<34EFBCA9F01B0748BEB6B629CE643AE60DAAE43E@DGGEMM533-MBX.china.huawei.com>",
        "date": "2020-10-15T12:46:21",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 551,
            "url": "https://patches.dpdk.org/api/people/551/",
            "name": "wangyunjian",
            "email": "wangyunjian@huawei.com"
        },
        "content": "Hi David,\n\nCan this patch be merged before RC1?\n\nThanks,\nYunjian\n\n> -----Original Message-----\n> From: Burakov, Anatoly [mailto:anatoly.burakov@intel.com]\n> Sent: Thursday, September 17, 2020 7:35 PM\n> To: wangyunjian <wangyunjian@huawei.com>; dev@dpdk.org;\n> david.marchand@redhat.com\n> Cc: Lilijun (Jerry) <jerry.lilijun@huawei.com>; xudingke\n> <xudingke@huawei.com>; stable@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n> repeatedly when it exists\n> \n> On 23-Jul-20 3:48 PM, wangyunjian wrote:\n> > From: Yunjian Wang <wangyunjian@huawei.com>\n> >\n> > Currently, we will create new user mem map entry for the same memory\n> > segment, but in fact it has already been added to the user mem maps.\n> > It's not necessary to create it twice.\n> >\n> > To resolve the issue, add support to remove the same entry in the\n> > function compact_user_maps().\n> >\n> > Fixes: 0cbce3a167f1 (\"vfio: skip DMA map failure if already mapped\")\n> > Cc: stable@dpdk.org\n> >\n> > Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>\n> > ---\n> \n> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>\n> \n> --\n> Thanks,\n> Anatoly",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Accept-Language": "en-US",
            "X-MS-TNEF-Correlator": "",
            "Thread-Index": "AQHWYQBeKLf/JXFWikCJC/y3HWnXzalshRmAgCyZ9GA=",
            "CC": "\"Burakov, Anatoly\" <anatoly.burakov@intel.com>, \"Lilijun (Jerry)\"\n <jerry.lilijun@huawei.com>, xudingke <xudingke@huawei.com>, \"stable@dpdk.org\"\n <stable@dpdk.org>",
            "Precedence": "list",
            "Thread-Topic": "[dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "List-Post": "<mailto:dev@dpdk.org>",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "X-Mailman-Version": "2.1.15",
            "MIME-Version": "1.0",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "X-BeenThere": "dev@dpdk.org",
            "References": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <462bb3d1-7944-6f57-7209-2e1d05491dd9@intel.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "Content-Type": "text/plain; charset=\"utf-8\"",
            "From": "wangyunjian <wangyunjian@huawei.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 4B312A04DB;\n\tThu, 15 Oct 2020 14:46:39 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 6B5FC1E8A5;\n\tThu, 15 Oct 2020 14:46:36 +0200 (CEST)",
                "from huawei.com (szxga01-in.huawei.com [45.249.212.187])\n by dpdk.org (Postfix) with ESMTP id 26BBF1D5D0;\n Thu, 15 Oct 2020 14:46:34 +0200 (CEST)",
                "from DGGEMM402-HUB.china.huawei.com (unknown [172.30.72.56])\n by Forcepoint Email with ESMTP id 68C8FD923A00A8E004EF;\n Thu, 15 Oct 2020 20:46:31 +0800 (CST)",
                "from DGGEMM422-HUB.china.huawei.com (10.1.198.39) by\n DGGEMM402-HUB.china.huawei.com (10.3.20.210) with Microsoft SMTP Server (TLS)\n id 14.3.487.0; Thu, 15 Oct 2020 20:46:31 +0800",
                "from DGGEMM533-MBX.china.huawei.com ([169.254.5.63]) by\n dggemm422-hub.china.huawei.com ([10.1.198.39]) with mapi id 14.03.0487.000;\n Thu, 15 Oct 2020 20:46:21 +0800"
            ],
            "x-originating-ip": "[10.174.187.156]",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-CFilter-Loop": "Reflected",
            "Message-ID": "\n <34EFBCA9F01B0748BEB6B629CE643AE60DAAE43E@DGGEMM533-MBX.china.huawei.com>",
            "Date": "Thu, 15 Oct 2020 12:46:21 +0000",
            "Content-Transfer-Encoding": "base64",
            "To": "\"dev@dpdk.org\" <dev@dpdk.org>, \"david.marchand@redhat.com\"\n <david.marchand@redhat.com>",
            "X-MS-Has-Attach": "",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "<462bb3d1-7944-6f57-7209-2e1d05491dd9@intel.com>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "zh-CN"
        }
    },
    {
        "id": 121671,
        "web_url": "https://patches.dpdk.org/comment/121671/",
        "msgid": "<CAJFAV8xsY+BEF+v4dO8Qf6y76mQUbRBqa5MqQu3S8dYV7P=jmw@mail.gmail.com>",
        "date": "2020-10-15T12:54:01",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 1173,
            "url": "https://patches.dpdk.org/api/people/1173/",
            "name": "David Marchand",
            "email": "david.marchand@redhat.com"
        },
        "content": "On Thu, Oct 15, 2020 at 2:46 PM wangyunjian <wangyunjian@huawei.com> wrote:\n>\n> Hi David,\n>\n> Can this patch be merged before RC1?\n\nTrying to understand what this is about.\nWhat is the impact from the issue you fix from an application point of view?\n\nGetting a good title / description is important to help stable\nmaintainers later when judging whether they should pick it or not.\nThanks.",
        "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=1602766454;\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=kdfO90FVsRNuLg7TJe40rfI8CD9axP9XW4PG6Nxy4Qw=;\n b=iipZav9ozB9pCg+o/6QI5uG20wRMtqq3d9HiOLYov/l9nswHxcyhLUrZo1sfpORRiXkdpN\n P7VuKT3CkfH6/aSk4H5qGhYJfOQlU5FWvT9uAp+3IxVqjKmy9U7rTPa2Mx7YQQvwm8xFsO\n H4tHM82BYBKUpsaPh1dYjTfuBqDQ4LY=",
            "Precedence": "list",
            "X-Gm-Message-State": "AOAM530gksuoOqP3M9/NM7ZFe9EZ9E1XVfu+WLzaNHMqRFFno4X2+L/i\n nMROKgWEh3thydskhnwV8crw2r3FDbeHvAR61qXUYkj3TLzJc7EPrIXKez74673hUFoglb16YU5\n 1DeNUENNdz7hVl69gOcM=",
            "X-Google-Smtp-Source": "\n ABdhPJxFWy/neCCmh68s5aXncrkl1Bh588yH0kgSYRiF8ggJ/gdiCtSAqxsRonBP9qMTH9x4mdkGJ5/8pnu26mi6d2o=",
            "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": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <462bb3d1-7944-6f57-7209-2e1d05491dd9@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60DAAE43E@DGGEMM533-MBX.china.huawei.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "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 AAF4FA04DB;\n\tThu, 15 Oct 2020 14:54:21 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id E49F11E899;\n\tThu, 15 Oct 2020 14:54:18 +0200 (CEST)",
                "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [63.128.21.124])\n by dpdk.org (Postfix) with ESMTP id 2AC631E8A1\n for <dev@dpdk.org>; Thu, 15 Oct 2020 14:54:16 +0200 (CEST)",
                "from mail-vs1-f71.google.com (mail-vs1-f71.google.com\n [209.85.217.71]) (Using TLS) by relay.mimecast.com with ESMTP id\n us-mta-324-Ui_o4d7dObiOaFYj0qBjzg-1; Thu, 15 Oct 2020 08:54:13 -0400",
                "by mail-vs1-f71.google.com with SMTP id r10so912626vsq.7\n for <dev@dpdk.org>; Thu, 15 Oct 2020 05:54:13 -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=kdfO90FVsRNuLg7TJe40rfI8CD9axP9XW4PG6Nxy4Qw=;\n b=bPFeE6BZf3m5zo6qB798fi96kLPmkQ4UZlY89ArrqxDSRjmqDZKBdjoDY4QaSDpiD0\n ZkE/QyOU608c95plkkYaSYsu3Kw9DE3scMBC1MVQ0nyrexxR7hpVhiaGnXCB9oWMs/1+\n XlfT1laMMPNGCIS+cn0M0uxPq6DlG6KGkS/xEeoc5ZDquqTt4Ao3Z0f7oRK3KcYBzr8Z\n ST3X0wDtyi1QEmvoUU6gqyn4oLq3w7eHvkUbYciB+mjkDiIemdtIplgB/ZghhcyQvEd1\n Ljwi2tLtGyj8cBJCaFgzN5Lj2ankJLIsGXNFpfUvjYiQjQOQ4R8D9m/Gl/wdDdodWd0k\n jy6A==",
            "X-MC-Unique": "Ui_o4d7dObiOaFYj0qBjzg-1",
            "Message-ID": "\n <CAJFAV8xsY+BEF+v4dO8Qf6y76mQUbRBqa5MqQu3S8dYV7P=jmw@mail.gmail.com>",
            "Date": "Thu, 15 Oct 2020 14:54:01 +0200",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "X-Received": [
                "by 2002:a1f:6014:: with SMTP id u20mr2443372vkb.9.1602766452540;\n Thu, 15 Oct 2020 05:54:12 -0700 (PDT)",
                "by 2002:a1f:6014:: with SMTP id u20mr2443363vkb.9.1602766452355;\n Thu, 15 Oct 2020 05:54:12 -0700 (PDT)"
            ],
            "To": "wangyunjian <wangyunjian@huawei.com>",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "\n <34EFBCA9F01B0748BEB6B629CE643AE60DAAE43E@DGGEMM533-MBX.china.huawei.com>",
            "Cc": "\"dev@dpdk.org\" <dev@dpdk.org>, \"Burakov,\n Anatoly\" <anatoly.burakov@intel.com>,\n \"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>, xudingke <xudingke@huawei.com>,\n \"stable@dpdk.org\" <stable@dpdk.org>",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Return-Path": "<dev-bounces@dpdk.org>"
        }
    },
    {
        "id": 121806,
        "web_url": "https://patches.dpdk.org/comment/121806/",
        "msgid": "<34EFBCA9F01B0748BEB6B629CE643AE60DAB08EA@DGGEMM533-MBX.china.huawei.com>",
        "date": "2020-10-16T09:48:51",
        "subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
        "submitter": {
            "id": 551,
            "url": "https://patches.dpdk.org/api/people/551/",
            "name": "wangyunjian",
            "email": "wangyunjian@huawei.com"
        },
        "content": "> -----Original Message-----\n> From: David Marchand [mailto:david.marchand@redhat.com]\n> Sent: Thursday, October 15, 2020 8:54 PM\n> To: wangyunjian <wangyunjian@huawei.com>\n> Cc: dev@dpdk.org; Burakov, Anatoly <anatoly.burakov@intel.com>; Lilijun\n> (Jerry) <jerry.lilijun@huawei.com>; xudingke <xudingke@huawei.com>;\n> stable@dpdk.org\n> Subject: Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n> repeatedly when it exists\n> \n> On Thu, Oct 15, 2020 at 2:46 PM wangyunjian <wangyunjian@huawei.com>\n> wrote:\n> >\n> > Hi David,\n> >\n> > Can this patch be merged before RC1?\n> \n> Trying to understand what this is about.\n> What is the impact from the issue you fix from an application point of view?\n> \n> Getting a good title / description is important to help stable maintainers later\n> when judging whether they should pick it or not.\n> Thanks.\n\nThanks for your suggestion, I have updated commit log and title in new version.\n\nhttps://patchwork.dpdk.org/patch/81069/\n\nYunjian\n> \n> --\n> David Marchand",
        "headers": {
            "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
            "Accept-Language": "en-US",
            "X-MS-TNEF-Correlator": "",
            "Thread-Index": "AQHWYQBeKLf/JXFWikCJC/y3HWnXzalshRmAgCyZ9GD//31XgIAB4A/A",
            "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, \"Burakov, Anatoly\"\n <anatoly.burakov@intel.com>, \"Lilijun (Jerry)\" <jerry.lilijun@huawei.com>,\n xudingke <xudingke@huawei.com>, \"stable@dpdk.org\" <stable@dpdk.org>",
            "Precedence": "list",
            "Thread-Topic": "[dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "List-Post": "<mailto:dev@dpdk.org>",
            "X-Original-To": "patchwork@inbox.dpdk.org",
            "Sender": "\"dev\" <dev-bounces@dpdk.org>",
            "X-Mailman-Version": "2.1.15",
            "MIME-Version": "1.0",
            "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
            "X-BeenThere": "dev@dpdk.org",
            "References": "\n <cdb0d6482a5c3a5d7d23625d230d9ef41d657320.1594903876.git.wangyunjian@huawei.com>\n <1595515713-24640-1-git-send-email-wangyunjian@huawei.com>\n <462bb3d1-7944-6f57-7209-2e1d05491dd9@intel.com>\n <34EFBCA9F01B0748BEB6B629CE643AE60DAAE43E@DGGEMM533-MBX.china.huawei.com>\n <CAJFAV8xsY+BEF+v4dO8Qf6y76mQUbRBqa5MqQu3S8dYV7P=jmw@mail.gmail.com>",
            "Subject": "Re: [dpdk-dev] [PATCH v2] eal/linux: do not create user mem map\n repeatedly when it exists",
            "Content-Type": "text/plain; charset=\"utf-8\"",
            "From": "wangyunjian <wangyunjian@huawei.com>",
            "Received": [
                "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id DB000A04DB;\n\tFri, 16 Oct 2020 11:49:06 +0200 (CEST)",
                "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 421031EC1E;\n\tFri, 16 Oct 2020 11:49:05 +0200 (CEST)",
                "from huawei.com (szxga02-in.huawei.com [45.249.212.188])\n by dpdk.org (Postfix) with ESMTP id 761201EC1D;\n Fri, 16 Oct 2020 11:49:02 +0200 (CEST)",
                "from DGGEMM404-HUB.china.huawei.com (unknown [172.30.72.56])\n by Forcepoint Email with ESMTP id 0E28C96CB5DA51FE32A9;\n Fri, 16 Oct 2020 17:49:00 +0800 (CST)",
                "from DGGEMM423-HUB.china.huawei.com (10.1.198.40) by\n DGGEMM404-HUB.china.huawei.com (10.3.20.212) with Microsoft SMTP Server (TLS)\n id 14.3.487.0; Fri, 16 Oct 2020 17:48:59 +0800",
                "from DGGEMM533-MBX.china.huawei.com ([169.254.5.63]) by\n dggemm423-hub.china.huawei.com ([10.1.198.40]) with mapi id 14.03.0487.000;\n Fri, 16 Oct 2020 17:48:52 +0800"
            ],
            "x-originating-ip": "[10.174.187.156]",
            "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
            "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
            "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
            "X-CFilter-Loop": "Reflected",
            "Message-ID": "\n <34EFBCA9F01B0748BEB6B629CE643AE60DAB08EA@DGGEMM533-MBX.china.huawei.com>",
            "Date": "Fri, 16 Oct 2020 09:48:51 +0000",
            "Content-Transfer-Encoding": "base64",
            "To": "David Marchand <david.marchand@redhat.com>",
            "X-MS-Has-Attach": "",
            "Delivered-To": "patchwork@inbox.dpdk.org",
            "In-Reply-To": "\n <CAJFAV8xsY+BEF+v4dO8Qf6y76mQUbRBqa5MqQu3S8dYV7P=jmw@mail.gmail.com>",
            "Return-Path": "<dev-bounces@dpdk.org>",
            "Errors-To": "dev-bounces@dpdk.org",
            "Content-Language": "zh-CN"
        }
    }
]