Show a patch.

GET /api/patches/73529/
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 73529,
    "url": "https://patches.dpdk.org/api/patches/73529/",
    "web_url": "https://patches.dpdk.org/patch/73529/",
    "project": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/projects/1/",
        "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"
    },
    "msgid": "<20200708133733.29468-1-l.wojciechow@partner.samsung.com>",
    "date": "2020-07-08T13:37:33",
    "name": "[v2] eal: fix lcore state bug",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "ad45aa0f0c4cf8e41ea6a6f669561c4e1c7449c7",
    "submitter": {
        "id": 1628,
        "url": "https://patches.dpdk.org/api/people/1628/",
        "name": "Lukasz Wojciechowski",
        "email": "l.wojciechow@partner.samsung.com"
    },
    "delegate": {
        "id": 24651,
        "url": "https://patches.dpdk.org/api/users/24651/",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "https://patches.dpdk.org/patch/73529/mbox/",
    "series": [
        {
            "id": 10892,
            "url": "https://patches.dpdk.org/api/series/10892/",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=10892",
            "date": "2020-07-08T13:37:33",
            "name": "[v2] eal: fix lcore state bug",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/10892/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/73529/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/73529/checks/",
    "tags": {},
    "headers": {
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "Return-Path": "<dev-bounces@dpdk.org>",
        "Message-Id": "<20200708133733.29468-1-l.wojciechow@partner.samsung.com>",
        "To": "Harry van Haaren <harry.van.haaren@intel.com>, Jerin Jacob\n <jerin.jacob@caviumnetworks.com>",
        "X-AuditID": "cbfec7f5-371ff700000018ae-a9-5f05cc2d3878",
        "X-Mailer": "git-send-email 2.17.1",
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com\n 20200708133749euoutp02286f5b9e1656cddde252163ede0c892c~fyoXzqVfE0728407284euoutp02X",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1594215469;\n bh=AK2r3wVpGx/3zdcp8dtIclwTnKYEcbzU7S+40t8ZyYo=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=FeEw5OP9yXPGZiOy0d2SdLTzcAImoXVSkCEYbhmqatW2p17aJbXbpOlL+lQofTfSZ\n gXQuB/JGtUfeKe8iio4awxh4HJ/sLicASNCGiaRhZFztuEAgy8upCf1cHBFwtTLKKm\n OAOaSrqpOr+PA/DNccieQ4qsTojBoebt409p+SrA=",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>",
        "X-RootMTR": "20200708133748eucas1p2dbe34d8605d8f618559daee9cbeaa73d",
        "X-EPHeader": "CA",
        "X-BeenThere": "dev@dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 88658A0526;\n\tWed,  8 Jul 2020 15:37:52 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 86EF01D6F7;\n\tWed,  8 Jul 2020 15:37:51 +0200 (CEST)",
            "from mailout2.w1.samsung.com (mailout2.w1.samsung.com\n [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 921A71D6F6\n for <dev@dpdk.org>; Wed,  8 Jul 2020 15:37:50 +0200 (CEST)",
            "from eucas1p2.samsung.com (unknown [182.198.249.207])\n by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id\n 20200708133749euoutp02286f5b9e1656cddde252163ede0c892c~fyoXzqVfE0728407284euoutp02X\n for <dev@dpdk.org>; Wed,  8 Jul 2020 13:37:49 +0000 (GMT)",
            "from eusmges3new.samsung.com (unknown [203.254.199.245]) by\n eucas1p1.samsung.com (KnoxPortal) with ESMTP id\n 20200708133749eucas1p1b79cca1a51871dbf4483cd5c42039553~fyoXi7Hht2906129061eucas1p1o;\n Wed,  8 Jul 2020 13:37:49 +0000 (GMT)",
            "from eucas1p2.samsung.com ( [182.198.249.207]) by\n eusmges3new.samsung.com (EUCPMTA) with SMTP id FF.88.06318.D2CC50F5; Wed,  8\n Jul 2020 14:37:49 +0100 (BST)",
            "from eusmtrp2.samsung.com (unknown [182.198.249.139]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTPA id\n 20200708133748eucas1p2dbe34d8605d8f618559daee9cbeaa73d~fyoXBexvS0380103801eucas1p2s;\n Wed,  8 Jul 2020 13:37:48 +0000 (GMT)",
            "from eusmgms2.samsung.com (unknown [182.198.249.180]) by\n eusmtrp2.samsung.com (KnoxPortal) with ESMTP id\n 20200708133748eusmtrp269d5ed781cf21215dd6c6438821dc3fb~fyoXA6dLP1120011200eusmtrp2r;\n Wed,  8 Jul 2020 13:37:48 +0000 (GMT)",
            "from eusmtip2.samsung.com ( [203.254.199.222]) by\n eusmgms2.samsung.com (EUCPMTA) with SMTP id A6.55.06017.C2CC50F5; Wed,  8\n Jul 2020 14:37:48 +0100 (BST)",
            "from localhost.localdomain (unknown [106.210.88.70]) by\n eusmtip2.samsung.com (KnoxPortal) with ESMTPA id\n 20200708133748eusmtip287b5ad338918b99712f553ed8abf4308~fyoWd9pvW1415614156eusmtip2a;\n Wed,  8 Jul 2020 13:37:48 +0000 (GMT)"
        ],
        "Subject": "[dpdk-dev] [PATCH v2] eal: fix lcore state bug",
        "In-Reply-To": "<20200428012139.32196-1-l.wojciechow@partner.samsung.com>",
        "X-Msg-Generator": "CA",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "X-Brightmail-Tracker": [
            "\n H4sIAAAAAAAAA+NgFnrFIsWRmVeSWpSXmKPExsWy7djP87q6Z1jjDWYvkLB492k7k0Vj/zcW\n i4mTTCye9axjtPjX8YfdgdVjw4l+Vo9fC5ayeize85LJ4+C7PUwBLFFcNimpOZllqUX6dglc\n GX/fCxcsEa/o37GZuYHxhHAXIyeHhICJxJ4jE9i6GLk4hARWMEqsWrCOEcL5wigxbXMTK4Tz\n mVHi255tTDAtG1pPsUMkljNKnHmymR2uas/0LawgVWwCthJHZn4Fs0UEEiVmLDwAZHNwMAs4\n Szz5ygZiCgvoSKzbXABSwSKgKrF85g0WEJtXwFVi5yGQk0B2yUus3nCAGcTmFHCT+N1zBWyV\n hMBtNok9U++AjZQQcJH40OIGUS8s8er4FnYIW0bi/875TBD12xglrv7+yQjh7GeUuN67AqrK\n WuLwv99sELdpSqzfpQ8RdpSYMOMUC8R8PokbbwVBwsxA5qRt05khwrwSHW1CENV6Ek97pjLC\n rP2z9gkLhO0hcffoWmjozmSU2D7pP9MERvlZCMsWMDKuYhRPLS3OTU8tNs5LLdcrTswtLs1L\n 10vOz93ECEwBp/8d/7qDcd+fpEOMAhyMSjy8LzaxxguxJpYVV+YeYpTgYFYS4XU6ezpOiDcl\n sbIqtSg/vqg0J7X4EKM0B4uSOK/xopexQgLpiSWp2ampBalFMFkmDk6pBkYp5i8xEVM2bo1y\n UV+eMPXvM/FZ4YqX5v17lCXUIpyv84hx7xWPNZsDF2+Tsfin13rU2Of9fbkDjaXvu/tUU12l\n WHL/vUm5WyZn18baskDx/o1bZyfuFytz9fPlk22YdG+FXuaOT/d4lVfX6CxoO69vukSDqdGl\n 8/phZ95roomblHqOPv6j2KjEUpyRaKjFXFScCAB2zhBb/QIAAA==",
            "\n H4sIAAAAAAAAA+NgFjrNLMWRmVeSWpSXmKPExsVy+t/xe7o6Z1jjDd73mVm8+7SdyaKx/xuL\n xcRJJhbPetYxWvzr+MPuwOqx4UQ/q8evBUtZPRbvecnkcfDdHqYAlig9m6L80pJUhYz84hJb\n pWhDCyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9jL/vhQuWiFf079jM3MB4QriL\n kZNDQsBEYkPrKfYuRi4OIYGljBKTH7cBORxACRmJD5cEIGqEJf5c62KDqPnIKNG+bA4LSIJN\n wFbiyMyvrCC2iECixP37MxhBbGYBd4kti6cyg8wRFtCRWLe5ACTMIqAqsXzmDbBWXgFXiZ2H\n JrBBzJeXWL3hADOIzSngJvG75wo7iC0EVLN/RRvrBEa+BYwMqxhFUkuLc9Nzi430ihNzi0vz\n 0vWS83M3MQIDctuxn1t2MHa9Cz7EKMDBqMTD+2ITa7wQa2JZcWXuIUYJDmYlEV6ns6fjhHhT\n EiurUovy44tKc1KLDzGaAh01kVlKNDkfGC15JfGGpobmFpaG5sbmxmYWSuK8HQIHY4QE0hNL\n UrNTUwtSi2D6mDg4pRoYjzLN/vvc5GnB6bOvtoefmVXpt2pmy7yqSt/repFH2euTM+WrvKY1\n 7w9L3bQh91xaY9yrEvt9Ei5f34jzHDxyUiS98uenzT6vNr49f+T727lid3fp8pTmG/fyvZ1p\n sWZLodWXvsdPJqZcFr7/hLfqrJr30o6r/7m2BTmzsf9VfZd4dPaKpWVvRJVYijMSDbWYi4oT\n AfbkEgxeAgAA"
        ],
        "List-Post": "<mailto:dev@dpdk.org>",
        "Cc": "dev@dpdk.org, l.wojciechow@partner.samsung.com, stable@dpdk.org",
        "Precedence": "list",
        "From": "Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>",
        "CMS-TYPE": "201P",
        "X-CMS-MailID": "20200708133748eucas1p2dbe34d8605d8f618559daee9cbeaa73d",
        "References": "<20200428012139.32196-1-l.wojciechow@partner.samsung.com>\n <CGME20200708133748eucas1p2dbe34d8605d8f618559daee9cbeaa73d@eucas1p2.samsung.com>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "X-CMS-RootMailID": "20200708133748eucas1p2dbe34d8605d8f618559daee9cbeaa73d",
        "Errors-To": "dev-bounces@dpdk.org",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Date": "Wed,  8 Jul 2020 15:37:33 +0200",
        "X-Mailman-Version": "2.1.15"
    },
    "content": "The rte_service_lcore_reset_all function stops execution of services\non all lcores and switches them back from ROLE_SERVICE to ROLE_RTE.\nHowever the thread loop for slave lcores (eal_thread_loop) distincts these\nroles to set lcore state after processing delegated function.\nIt sets WAIT state for ROLE_SERVICE, but FINISHED for ROLE_RTE.\nSo changing the role to RTE before stopping work in slave lcores\ncauses lcores to end in FINISHED state. That is why the rte_eal_lcore_wait\nmust be run after rte_service_lcore_reset_all to bring back lcores to\nlaunchable (WAIT) state.\nThis has been fixed in test app and clarified in API documentation.\n\nSetting the state to WAIT in rte_service_runner_func is premature\nas the rte_service_runner_func function is still a part of the lcore\nfunction delegated to slave lcore. The state is overwritten anyway in\nslave lcore thread loop. This premature setting state to WAIT might\nhowever cause rte_eal_lcore_wait, that was called by the application,\nto return before slave lcore thread set the FINISHED state. That's\nwhy it is removed from librte_eal rte_service_runner_func function.\n\nBugzilla ID: 464\nFixes: 21698354c832 (\"service: introduce service cores concept\")\nFixes: f038a81e1c56 (\"service: add unit tests\")\nCc: harry.van.haaren@intel.com\nCc: stable@dpdk.org\n\nSigned-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>\n---\n app/test/test_service_cores.c        | 1 +\n lib/librte_eal/common/rte_service.c  | 2 --\n lib/librte_eal/include/rte_service.h | 4 ++++\n 3 files changed, 5 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/app/test/test_service_cores.c b/app/test/test_service_cores.c\nindex 981e21213..6764a5d2c 100644\n--- a/app/test/test_service_cores.c\n+++ b/app/test/test_service_cores.c\n@@ -114,6 +114,7 @@ unregister_all(void)\n \t}\n \n \trte_service_lcore_reset_all();\n+\trte_eal_mp_wait_lcore();\n \n \treturn TEST_SUCCESS;\n }\ndiff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c\nindex 6123a2124..b16698f21 100644\n--- a/lib/librte_eal/common/rte_service.c\n+++ b/lib/librte_eal/common/rte_service.c\n@@ -475,8 +475,6 @@ service_runner_func(void *arg)\n \t\tcs->loops++;\n \t}\n \n-\tlcore_config[lcore].state = WAIT;\n-\n \treturn 0;\n }\n \ndiff --git a/lib/librte_eal/include/rte_service.h b/lib/librte_eal/include/rte_service.h\nindex 3a1c735c5..e2d0a6dd3 100644\n--- a/lib/librte_eal/include/rte_service.h\n+++ b/lib/librte_eal/include/rte_service.h\n@@ -304,6 +304,10 @@ int32_t rte_service_lcore_count(void);\n  * from duty, just unmaps all services / cores, and stops() the service cores.\n  * The runstate of services is not modified.\n  *\n+ * The cores that are stopped with this call, are in FINISHED state and\n+ * the application must take care of bringing them back to a launchable state:\n+ * e.g. call *rte_eal_lcore_wait* on the lcore_id.\n+ *\n  * @retval 0 Success\n  */\n int32_t rte_service_lcore_reset_all(void);\n",
    "prefixes": [
        "v2"
    ]
}