Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/44635/?format=api
https://patches.dpdk.org/api/patches/44635/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/FD73C016-5F3F-49BD-865B-50444C1AEB1E@mellanox.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<FD73C016-5F3F-49BD-865B-50444C1AEB1E@mellanox.com>", "list_archive_url": "https://inbox.dpdk.org/dev/FD73C016-5F3F-49BD-865B-50444C1AEB1E@mellanox.com", "date": "2018-09-12T20:56:07", "name": "rte_memcpy() moves data incorrectly on Ubuntu 18.04 on Intel Skylake.", "commit_ref": null, "pull_url": null, "state": "not-applicable", "archived": true, "hash": "dbe963ed7f1e604e79cb7465b6a3cf95bd0fde2d", "submitter": { "id": 636, "url": "https://patches.dpdk.org/api/people/636/?format=api", "name": "Yongseok Koh", "email": "yskoh@mellanox.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dpdk/patch/FD73C016-5F3F-49BD-865B-50444C1AEB1E@mellanox.com/mbox/", "series": [ { "id": 1299, "url": "https://patches.dpdk.org/api/series/1299/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1299", "date": "2018-09-12T20:56:07", "name": "rte_memcpy() moves data incorrectly on Ubuntu 18.04 on Intel Skylake.", "version": 1, "mbox": "https://patches.dpdk.org/series/1299/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/44635/comments/", "check": "fail", "checks": "https://patches.dpdk.org/api/patches/44635/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 1499E4CBD;\n\tWed, 12 Sep 2018 22:56:12 +0200 (CEST)", "from EUR02-VE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr20085.outbound.protection.outlook.com [40.107.2.85])\n\tby dpdk.org (Postfix) with ESMTP id 8FACC4CBB\n\tfor <dev@dpdk.org>; Wed, 12 Sep 2018 22:56:10 +0200 (CEST)", "from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by\n\tDB3PR0502MB4012.eurprd05.prod.outlook.com (52.134.72.141) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1122.17; Wed, 12 Sep 2018 20:56:08 +0000", "from DB3PR0502MB3980.eurprd05.prod.outlook.com\n\t([fe80::452:cfe7:8363:61c1]) by\n\tDB3PR0502MB3980.eurprd05.prod.outlook.com\n\t([fe80::452:cfe7:8363:61c1%2]) with mapi id 15.20.1122.020;\n\tWed, 12 Sep 2018 20:56:08 +0000" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=65cGAGyAKqNjuPuThJoP0zBuoKqHVG/hl6Sne74WWaA=;\n\tb=hv2DMCyZyMl9amLUHqKVN9sDf4txT9wpC/PLZVt2NHz4keUSW470KBn9t+USUvdwkeAzLR2eyG2DjrCVRK02nMC7vP2kDsdIBHX6Izd8s0v65/KlzQD8FS5p/UXaz7oJ2r/7aNIg5E34Usl+uwFRLUffGydYmklzGh0Yp1MZEJg=", "From": "Yongseok Koh <yskoh@mellanox.com>", "To": "Christian Ehrhardt <christian.ehrhardt@canonical.com>", "CC": "Shahaf Shuler <shahafs@mellanox.com>, Olga Shern <olgas@mellanox.com>,\n\tThomas Monjalon <thomasm@mellanox.com>,\n\tTalat Batheesh <talatb@mellanox.com>, \n\tNoa Spanier <noas@mellanox.com>, dev <dev@dpdk.org>", "Thread-Topic": "rte_memcpy() moves data incorrectly on Ubuntu 18.04 on Intel\n\tSkylake.", "Thread-Index": "AQHUStsHwxJwBzukgE2t66MTnwb4hQ==", "Date": "Wed, 12 Sep 2018 20:56:07 +0000", "Message-ID": "<FD73C016-5F3F-49BD-865B-50444C1AEB1E@mellanox.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=yskoh@mellanox.com; ", "x-originating-ip": "[209.116.155.178]", "x-ms-publictraffictype": "Email", "x-microsoft-exchange-diagnostics": "1; DB3PR0502MB4012;\n\t6:AyFHBun4ALeZjGHrJpwDmp/7MjQhTBlO9faqBvG7D3CNe45TftNZncIZT2vT07rvZ7OWtHeBJsD95pBbP+TUrLvgDsOq/C8Cd9fu6xIlnpW5mT1DGpgqEOoAnCXr70CwoLHkL1Smafw+G6NIJMOsuLANBli9T3C48D6tQKquyjA0E13YoUVRrY/+a13rCoEq+fpTDtt8gPzX9AMfSTQolfKWDJG4nXhOID0TxVizb9Nz/FYUJnfod9v5R1oCQyaMXqSWeivhEsx8GAIQ5g1kbaB1afqRUA3Flu6dgXgRICSh/sXgygCtcANZNc4N3htltbfLgvvhljiIpGoWXffo45FaSRjJiYsIxgDUV9rVMOQnPw2fn+Kx2e/fh4izN4rT7AazVsp9G4k3R4Tq8tBJtDhV8uzS5q4Ins2572ZjeVs6Wm4SK4IW5KSmb2uN/yaDU3nmO9by8coT1d6eZRx1Qw==;\n\t5:wtg5pOP5s1URQ+/2w0hKp3EOy+nYwosKRuVl6bJytpza5nV/dp4dU6zKUmaq2JjwqAg8CwcRsU+/vya5qqrMHqApJ2IY+OGzdnxh5YadrEkkUbB2HhTZk6yGQnABvExj6X8TmbpFYeuF/tL674j+GUSR5XV76G87vS4Fbe4Xzk4=;\n\t7:nSMJTRWpAfUkDVu7K5ax74fMh7WoBh/2UDtRqrY3CLpaEamOFTA6OIZq5yrSAhbGLsPrMXS1x6Rjh8DnhFB1OuidiRIeu8easwtnq2CQOwXZAdTnD9e9BDpT817J6aGmExWRNXm2fiJXcuQEp6hBGblRltv0MruqrJTI6GVLHZ258DKqGaBRcNwHiicPAQVFEC+AwQMKE1Nbk7Zxx19Kl++bvbm/0f4xYnxubagUHqeCmv8iebIhrzitKJfAFCup", "x-ms-exchange-antispam-srfa-diagnostics": "SOS;", "x-ms-office365-filtering-correlation-id": "cfa43b9e-d475-4a97-6e6e-08d618f229c7", "x-ms-office365-filtering-ht": "Tenant", "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:DB3PR0502MB4012; ", "x-ms-traffictypediagnostic": "DB3PR0502MB4012:", "x-microsoft-antispam-prvs": "<DB3PR0502MB40128106B8F96EA56333B158C31B0@DB3PR0502MB4012.eurprd05.prod.outlook.com>", "x-exchange-antispam-report-test": "UriScan:(158342451672863)(131327999870524)(155532106045638); ", "x-ms-exchange-senderadcheck": "1", "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(823301075)(3002001)(10201501046)(3231311)(944501410)(52105095)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050);\n\tSRVR:DB3PR0502MB4012; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB4012; ", "x-forefront-prvs": "07935ACF08", "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(136003)(346002)(366004)(39860400002)(376002)(396003)(199004)(189003)(99286004)(6436002)(25786009)(14444005)(5024004)(5660300001)(105586002)(5250100002)(6916009)(86362001)(6512007)(81156014)(4326008)(476003)(8676002)(81166006)(6116002)(2616005)(3846002)(68736007)(8936002)(45954006)(256004)(106356001)(486006)(6486002)(53936002)(33656002)(6506007)(186003)(102836004)(82746002)(14454004)(2906002)(26005)(19627235002)(66066001)(97736004)(54906003)(478600001)(7736002)(305945005)(36756003)(316002)(83716003)(2900100001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB4012;\n\tH:DB3PR0502MB3980.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; \n\tPTR:InfoNoRecords; A:1; MX:1; ", "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)", "x-microsoft-antispam-message-info": "sZpa109o+GR2lVKHT02JH2WHyO20/l7QC8piL9jtxFgMhwvyZO2OohgTCDgjWLIK3BelOfVoyMXk+WxxWeI3xlsYB/xDaVDkb/2BChsivzc2aeTc6d7Hx2OfcjdzBHkq07ieiHP7LaY9Scmven/AH6bO3jsRnpIpMq3rOpZP+vkR8DOoffX0czX6f/WCAOannMJGZvyXe018aUBjDwaXoyHy3a9dXP6BmB6bR5ws7ToK1D5x23YlEgpj9sZoKCX9F7gnLZNd65gYLnO1fKn2NAq3VpLOyBdqtUu0iy6vyR+C79v41RMWXEHR9+lCa4EzU//CxTnQ6T5dExyYA8P7FWku4rJ5NUZUzKAI09NIwVo=", "spamdiagnosticoutput": "1:99", "spamdiagnosticmetadata": "NSPM", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-ID": "<098D0F53CF9FE54A8CEC181BBCCB4131@eurprd05.prod.outlook.com>", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-OriginatorOrg": "Mellanox.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "cfa43b9e-d475-4a97-6e6e-08d618f229c7", "X-MS-Exchange-CrossTenant-originalarrivaltime": "12 Sep 2018 20:56:08.0185\n\t(UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB3PR0502MB4012", "Subject": "[dpdk-dev] rte_memcpy() moves data incorrectly on Ubuntu 18.04 on\n\tIntel Skylake.", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Hi, Christian\n\nWe've recently encountered a weird issue with Ubuntu 18.04 on the Skylake\nserver. I can always reproduce this crash and I could narrowed it down. I guess\nit could be a GCC issue.\n\n\n[1] How to reproduce\n- ConnectX-4Lx/ConnectX-5 with mlx5 PMD in DPDK 18.02.1\n- Ubuntu 18.04 on Intel Skylake server\n- gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0\n- Testpmd crashes when it starts to forward traffic. Easy to reproduce.\n- Only happens on the Skylake server.\n- DPDK 18.05 and later don't have such issue. git-bisect gives no clue.\n\n\n[2] Failure point\n\nThe attached patch gives an insight of why it crashes. The following is the\nresult of the patch and the GDB commands.\n\nIn summary, rte_memcpy() doesn't work as expected. In __mempool_generic_put(),\nthere's rte_memcpy() to move the array of objects to the lcore cache. If I run\nmemcmp() right after rte_memcpy(dst, src, n), data in dst differs from data in\nsrc. And it looks like some of data got shifted by a few bytes as you can see\nbelow.\n\n\t[GDB command]\n\t$dst = 0x7ffff4e09ea8\n\t$src = 0x7fffce3fb970\n\t$n = 256\n\tx/32gx 0x7ffff4e09ea8\n\tx/32gx 0x7fffce3fb970\n\ttestpmd: /home/mlnxtest/dpdk/build/include/rte_mempool.h:1140: __mempool_generic_put: Assertion `0' failed.\n\n\tThread 4 \"lcore-slave-1\" received signal SIGABRT, Aborted.\n\t[Switching to Thread 0x7fffce3ff700 (LWP 69913)]\n\t(gdb) x/32gx 0x7ffff4e09ea8\n\t0x7ffff4e09ea8: 0x00007fffaac38ec0 0x00007fffaac38500\n\t0x7ffff4e09eb8: 0x00007fffaac37b40 0x00007fffaac37180\n\t0x7ffff4e09ec8: 0x850000007fffaac3 0x7b4000007fffaac3\n\t0x7ffff4e09ed8: 0x00007fffaac35440 0x00007fffaac34a80\n\t0x7ffff4e09ee8: 0xaac3850000007fff 0xaac37b4000007fff\n\t0x7ffff4e09ef8: 0x00007fffaac32d40 0x00007fffaac32380\n\t0x7ffff4e09f08: 0x7fffaac385000000 0x7fffaac37b400000\n\t0x7ffff4e09f18: 0x00007fffaac30640 0x00007fffaac2fc80\n\t0x7ffff4e09f28: 0x00007fffaac2f2c0 0x00007fffaac2e900\n\t0x7ffff4e09f38: 0x00007fffaac2df40 0x00007fffaac2d580\n\t0x7ffff4e09f48: 0x00007fffaac2cbc0 0x00007fffaac2c200\n\t0x7ffff4e09f58: 0x00007fffaac2b840 0x00007fffaac2ae80\n\t0x7ffff4e09f68: 0x00007fffaac2a4c0 0x00007fffaac29b00\n\t0x7ffff4e09f78: 0x00007fffaac29140 0x00007fffaac28780\n\t0x7ffff4e09f88: 0x00007fffaac27dc0 0x00007fffaac27400\n\t0x7ffff4e09f98: 0x00007fffaac26a40 0x00007fffaac26080\n\t(gdb) x/32gx 0x7fffce3fb970\n\t0x7fffce3fb970: 0x00007fffaac38ec0 0x00007fffaac38500\n\t0x7fffce3fb980: 0x00007fffaac37b40 0x00007fffaac37180\n\t0x7fffce3fb990: 0x00007fffaac367c0 0x00007fffaac35e00\n\t0x7fffce3fb9a0: 0x00007fffaac35440 0x00007fffaac34a80\n\t0x7fffce3fb9b0: 0x00007fffaac340c0 0x00007fffaac33700\n\t0x7fffce3fb9c0: 0x00007fffaac32d40 0x00007fffaac32380\n\t0x7fffce3fb9d0: 0x00007fffaac319c0 0x00007fffaac31000\n\t0x7fffce3fb9e0: 0x00007fffaac30640 0x00007fffaac2fc80\n\t0x7fffce3fb9f0: 0x00007fffaac2f2c0 0x00007fffaac2e900\n\t0x7fffce3fba00: 0x00007fffaac2df40 0x00007fffaac2d580\n\t0x7fffce3fba10: 0x00007fffaac2cbc0 0x00007fffaac2c200\n\t0x7fffce3fba20: 0x00007fffaac2b840 0x00007fffaac2ae80\n\t0x7fffce3fba30: 0x00007fffaac2a4c0 0x00007fffaac29b00\n\t0x7fffce3fba40: 0x00007fffaac29140 0x00007fffaac28780\n\t0x7fffce3fba50: 0x00007fffaac27dc0 0x00007fffaac27400\n\t0x7fffce3fba60: 0x00007fffaac26a40 0x00007fffaac26080\n\n\nAFAIK, AVX512F support is disabled by default in DPDK as it is still\nexperimental (CONFIG_RTE_ENABLE_AVX512=n). But with gcc optimization, AVX2\nversion of rte_memcpy() seems to be optimized with 512b instructions. If I\ndisable it by adding EXTRA_CFLAGS=\"-mno-avx512f\", then it works fine and doesn't\ncrash.\n\nDo you have any idea regarding this issue or are you already aware of it?\n\n\nThanks,\nYongseok\n\n\n$ git diff", "diff": "diff --git a/config/common_base b/config/common_base\nindex ad03cf433..f512b5a88 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -275,8 +275,8 @@ CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8\n #\n # Compile burst-oriented Mellanox ConnectX-4 & ConnectX-5 (MLX5) PMD\n #\n-CONFIG_RTE_LIBRTE_MLX5_PMD=n\n-CONFIG_RTE_LIBRTE_MLX5_DEBUG=n\n+CONFIG_RTE_LIBRTE_MLX5_PMD=y\n+CONFIG_RTE_LIBRTE_MLX5_DEBUG=y\n CONFIG_RTE_LIBRTE_MLX5_DLOPEN_DEPS=n\n CONFIG_RTE_LIBRTE_MLX5_TX_MP_CACHE=8\n\n@@ -597,7 +597,7 @@ CONFIG_RTE_RING_USE_C11_MEM_MODEL=n\n #\n CONFIG_RTE_LIBRTE_MEMPOOL=y\n CONFIG_RTE_MEMPOOL_CACHE_MAX_SIZE=512\n-CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=n\n+CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=y\n\n #\n # Compile Mempool drivers\ndiff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h\nindex 8b1b7f7ed..9f48028d9 100644\n--- a/lib/librte_mempool/rte_mempool.h\n+++ b/lib/librte_mempool/rte_mempool.h\n@@ -39,6 +39,7 @@\n #include <errno.h>\n #include <inttypes.h>\n #include <sys/queue.h>\n+#include <assert.h>\n\n #include <rte_config.h>\n #include <rte_spinlock.h>\n@@ -1123,6 +1124,22 @@ __mempool_generic_put(struct rte_mempool *mp, void * const *obj_table,\n /* Add elements back into the cache */\n rte_memcpy(&cache_objs[0], obj_table, sizeof(void *) * n);\n\n+ if(memcmp(&cache_objs[0], obj_table, sizeof(void *) * n)) {\n+ printf(\"[GDB command] \\n\"\n+ \"$dst = %p\\n\"\n+ \"$src = %p\\n\"\n+ \"$n = %ld\\n\"\n+ \"x/%ldgx %p\\n\"\n+ \"x/%ldgx %p\\n\",\n+ (void *)&cache_objs[0],\n+ (const void *)obj_table,\n+ sizeof(void *) * n,\n+ sizeof(void *) * n / 8, (void *)&cache_objs[0],\n+ sizeof(void *) * n / 8, (const void *)obj_table\n+ );\n+ assert(0);\n+ }\n+\n cache->len += n;\n\n if (cache->len >= cache->flushthresh) {\n", "prefixes": [] }{ "id": 44635, "url": "