get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 131200,
    "url": "http://patches.dpdk.org/api/patches/131200/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230906162226.1618088-4-thomas@monjalon.net/",
    "project": {
        "id": 1,
        "url": "http://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": "<20230906162226.1618088-4-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230906162226.1618088-4-thomas@monjalon.net",
    "date": "2023-09-06T16:12:20",
    "name": "[03/11] eal: remove attributes from control thread creation",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "5e5d47224c5cc083ef3abd7a9172e16a67508059",
    "submitter": {
        "id": 685,
        "url": "http://patches.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230906162226.1618088-4-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 29438,
            "url": "http://patches.dpdk.org/api/series/29438/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=29438",
            "date": "2023-09-06T16:12:17",
            "name": "rework thread management",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/29438/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/131200/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/131200/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 915E642529;\n\tWed,  6 Sep 2023 18:23:12 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8CBA0402DB;\n\tWed,  6 Sep 2023 18:23:12 +0200 (CEST)",
            "from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com\n [64.147.123.19]) by mails.dpdk.org (Postfix) with ESMTP id 69C28402D9\n for <dev@dpdk.org>; Wed,  6 Sep 2023 18:23:11 +0200 (CEST)",
            "from compute4.internal (compute4.nyi.internal [10.202.2.44])\n by mailout.west.internal (Postfix) with ESMTP id E57103200962;\n Wed,  6 Sep 2023 12:23:08 -0400 (EDT)",
            "from mailfrontend2 ([10.202.2.163])\n by compute4.internal (MEProxy); Wed, 06 Sep 2023 12:23:10 -0400",
            "by mail.messagingengine.com (Postfix) with ESMTPA; Wed,\n 6 Sep 2023 12:23:04 -0400 (EDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n cc:cc:content-transfer-encoding:content-type:date:date:from:from\n :in-reply-to:in-reply-to:message-id:mime-version:references\n :reply-to:sender:subject:subject:to:to; s=fm1; t=1694017388; x=\n 1694103788; bh=mwxBovMGR9M0BztQPLX3+3QDroZ7I5vVRzNtOcoP37o=; b=f\n m0iX98QWLnzbEstvqQ7TV4U60rbja1WLwGMDjWtf6LQMSRbugo5hHZDNciXT/ACs\n qnJ1qxMYHSOF015xmbNPIieVBu0b6rKdElbjzvJ3TZRsMgu6BRaY6OXTiEcE8GMT\n n4EfVRxYRB37sf9ISCNwQghJdJXO41WVtfkcAR1qXmZtiLlZczv7ri4ZkfN/GL/Q\n gM+2zwIo8xd6flytywwSjfZw9QuPnOxy5181GJqK3fuysdPh/zFaW8naNkD953JM\n 9ipGeu0EAXEAKXbA+YTRgiUKFf8kTim+qjrzoII2WOkCi9y8iswLfkrtwwv6Xzq8\n VOrWPDl47OvQTF91HZmdg==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:cc:content-transfer-encoding\n :content-type:date:date:feedback-id:feedback-id:from:from\n :in-reply-to:in-reply-to:message-id:mime-version:references\n :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy\n :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1694017388; x=\n 1694103788; bh=mwxBovMGR9M0BztQPLX3+3QDroZ7I5vVRzNtOcoP37o=; b=B\n BN1mKPN95cLmEhfxXscdEPp0alhlwCexewJbNdhSJMta8ewM4wfl+6v1kbrOSpsq\n D27ognCwDnRsw9XtXirGmdQJ7tc5sBHVNmFuve6ajO3y3pbT9tZ0B6u+8bhaquA2\n 9BFEFebJH/L9cqpJmX8IWGP9sPBYeWIgPyQrSe4VomfJ/7dDJN9cdFbcmW3hcaz/\n fG7wzbxqko+F3VHJ551uIBpRPkiUXCP44T3KVszbnTG3bXGgNtBSVIi3AHMd8NaK\n cN1qUsAU39UOwNBqiXIQJuAFXRksTuNc5NMICqRsJwyY3HxplL9ePfUijCqcMOpA\n EfeDMjQrGli0XeOEfudFA=="
        ],
        "X-ME-Sender": "<xms:a6f4ZJH3XIIkPyOBiGKbdzwd-Bw-mos-v4ZXzBK6DgHTxpqyxCp9Cg>\n <xme:a6f4ZOXKo0dOO9iROnw4k17Ikxm0HYkvHd2vjL85RuTSY2Ot1AK-W5RhH8NxyfH18\n G-0VQPB-M9mz1fZ5g>",
        "X-ME-Received": "\n <xmr:a6f4ZLJ5g0GLb9WHLwUSvHqaH2snptwsxM67NMWR-gdScRGv3ZnJ6o5KKxN9j_OL7VfN_d-OIbW_MQ_2-FAIJVIuOyKkTHk>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedviedrudehfedgleelucetufdoteggodetrfdotf\n fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen\n uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne\n cujfgurhephffvvefufffkofgjfhgggfestdekredtredttdenucfhrhhomhepvfhhohhm\n rghsucfoohhnjhgrlhhonhcuoehthhhomhgrshesmhhonhhjrghlohhnrdhnvghtqeenuc\n ggtffrrghtthgvrhhnpedvjefhudeghedvtdeijeeigeetuedugfejueekieeltdfhteev\n keehhfeilefhtdenucevlhhushhtvghrufhiiigvpedunecurfgrrhgrmhepmhgrihhlfh\n hrohhmpehthhhomhgrshesmhhonhhjrghlohhnrdhnvght",
        "X-ME-Proxy": "<xmx:a6f4ZPEoTNVWe4i5MMJCTi7ZNfCWEv2mzsrMSh8YFIlHvwOrSS28iA>\n <xmx:a6f4ZPW4pTbYjmhBDQjZVJeykdtA-4bodZa5u7t5zSx2NuKQkZ7Dug>\n <xmx:a6f4ZKN6fqFhTjgOMwghhMQUW28sm4GBU-iHi8vEjLGnR_vn2CFGzw>\n <xmx:bKf4ZBZOBcco3p6RjAei4CE_Iw6y17PJ1ttsheLkUs8VNCZejB964g>",
        "Feedback-ID": "i47234305:Fastmail",
        "From": "Thomas Monjalon <thomas@monjalon.net>",
        "To": "dev@dpdk.org",
        "Cc": "Tyler Retzlaff <roretzla@linux.microsoft.com>,\n David Marchand <david.marchand@redhat.com>,\n Ferruh Yigit <ferruh.yigit@amd.com>,\n Chengwen Feng <fengchengwen@huawei.com>,\n Kevin Laatz <kevin.laatz@intel.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Jingjing Wu <jingjing.wu@intel.com>, Beilei Xing <beilei.xing@intel.com>,\n Qiming Yang <qiming.yang@intel.com>, Qi Zhang <qi.z.zhang@intel.com>,\n Wenjun Wu <wenjun1.wu@intel.com>, Jiawen Wu <jiawenwu@trustnetic.com>,\n Jian Wang <jianwang@trustnetic.com>, Harman Kalra <hkalra@marvell.com>,\n Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>,\n Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>,\n Dmitry Malloy <dmitrym@microsoft.com>,\n Pallavi Kadam <pallavi.kadam@intel.com>",
        "Subject": "[PATCH 03/11] eal: remove attributes from control thread creation",
        "Date": "Wed,  6 Sep 2023 18:12:20 +0200",
        "Message-ID": "<20230906162226.1618088-4-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20230906162226.1618088-1-thomas@monjalon.net>",
        "References": "<20230906162226.1618088-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "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>",
        "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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "The experimental function rte_thread_create_control()\nis supposed to wrap actions needed to create a control thread in DPDK.\nThis function should be easy to port on any OS.\n\nAs such, the thread attributes should not be customizable in this API.\nThe thread priority should be normal, and the affinity is on \"free cores\".\nThat's why the custom attributes parameter thread_attr is dropped.\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\n---\n app/test/test_threads.c                | 2 +-\n doc/guides/rel_notes/release_23_11.rst | 3 +++\n drivers/dma/skeleton/skeleton_dmadev.c | 3 +--\n drivers/net/iavf/iavf_vchnl.c          | 2 +-\n drivers/net/ice/ice_dcf_parent.c       | 2 +-\n drivers/net/ixgbe/ixgbe_ethdev.c       | 1 -\n drivers/net/txgbe/txgbe_ethdev.c       | 2 +-\n lib/eal/common/eal_common_thread.c     | 5 ++---\n lib/eal/include/rte_thread.h           | 5 +----\n lib/eal/windows/eal_interrupts.c       | 2 +-\n 10 files changed, 12 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/app/test/test_threads.c b/app/test/test_threads.c\nindex 8c27e2bae1..4ac3f2671a 100644\n--- a/app/test/test_threads.c\n+++ b/app/test/test_threads.c\n@@ -240,7 +240,7 @@ test_thread_control_create_join(void)\n \n \tthread_id_ready = 0;\n \tRTE_TEST_ASSERT(rte_thread_create_control(&thread_id, \"dpdk-test-thcc\",\n-\t\tNULL, thread_main, &thread_main_id) == 0,\n+\t\tthread_main, &thread_main_id) == 0,\n \t\t\"Failed to create thread.\");\n \n \twhile (__atomic_load_n(&thread_id_ready, __ATOMIC_ACQUIRE) == 0)\ndiff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst\nindex 333e1d95a2..d3d500f294 100644\n--- a/doc/guides/rel_notes/release_23_11.rst\n+++ b/doc/guides/rel_notes/release_23_11.rst\n@@ -113,6 +113,9 @@ API Changes\n    Also, make sure to start the actual text at the margin.\n    =======================================================\n \n+* eal: The thread API has changed.\n+  The function ``rte_thread_create_control()`` does not take attributes anymore.\n+\n \n ABI Changes\n -----------\ndiff --git a/drivers/dma/skeleton/skeleton_dmadev.c b/drivers/dma/skeleton/skeleton_dmadev.c\nindex 493224542f..4fc2319668 100644\n--- a/drivers/dma/skeleton/skeleton_dmadev.c\n+++ b/drivers/dma/skeleton/skeleton_dmadev.c\n@@ -128,8 +128,7 @@ skeldma_start(struct rte_dma_dev *dev)\n \trte_mb();\n \n \tsnprintf(name, sizeof(name), \"dpdk-dma-skel%d\", dev->data->dev_id);\n-\tret = rte_thread_create_control(&hw->thread, name, NULL,\n-\t\t\t\t     cpucopy_thread, dev);\n+\tret = rte_thread_create_control(&hw->thread, name, cpucopy_thread, dev);\n \tif (ret) {\n \t\tSKELDMA_LOG(ERR, \"Start cpucopy thread fail!\");\n \t\treturn -EINVAL;\ndiff --git a/drivers/net/iavf/iavf_vchnl.c b/drivers/net/iavf/iavf_vchnl.c\nindex c31a6d5c98..6baa6d5955 100644\n--- a/drivers/net/iavf/iavf_vchnl.c\n+++ b/drivers/net/iavf/iavf_vchnl.c\n@@ -136,7 +136,7 @@ iavf_dev_event_handler_init(void)\n \tpthread_mutex_init(&handler->lock, NULL);\n \n \tif (rte_thread_create_control(&handler->tid, \"dpdk-iavf-event\",\n-\t\t\t\tNULL, iavf_dev_event_handle, NULL)) {\n+\t\t\t\tiavf_dev_event_handle, NULL)) {\n \t\t__atomic_fetch_sub(&handler->ndev, 1, __ATOMIC_RELAXED);\n \t\treturn -1;\n \t}\ndiff --git a/drivers/net/ice/ice_dcf_parent.c b/drivers/net/ice/ice_dcf_parent.c\nindex ad98a531de..d3bb65874f 100644\n--- a/drivers/net/ice/ice_dcf_parent.c\n+++ b/drivers/net/ice/ice_dcf_parent.c\n@@ -182,7 +182,7 @@ start_vsi_reset_thread(struct ice_dcf_hw *dcf_hw, bool vfr, uint16_t vf_id)\n \tparam->vf_id = vf_id;\n \n \tsnprintf(name, sizeof(name), \"dpdk-ice-rst%u\", vf_id);\n-\tret = rte_thread_create_control(&thread, name, NULL,\n+\tret = rte_thread_create_control(&thread, name,\n \t\t\t\t     ice_dcf_vsi_update_service_handler, param);\n \tif (ret != 0) {\n \t\tPMD_DRV_LOG(ERR, \"Failed to start the thread for reset handling\");\ndiff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c\nindex 7eac05ee60..64e7e5d7d6 100644\n--- a/drivers/net/ixgbe/ixgbe_ethdev.c\n+++ b/drivers/net/ixgbe/ixgbe_ethdev.c\n@@ -4330,7 +4330,6 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,\n \t\t\t\tintr->flags |= IXGBE_FLAG_NEED_LINK_CONFIG;\n \t\t\t\tif (rte_thread_create_control(&ad->link_thread_tid,\n \t\t\t\t\t\"dpdk-ixgbe-link\",\n-\t\t\t\t\tNULL,\n \t\t\t\t\tixgbe_dev_setup_link_thread_handler,\n \t\t\t\t\tdev) < 0) {\n \t\t\t\t\tPMD_DRV_LOG(ERR,\ndiff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c\nindex 6f2f5a1841..198fac8318 100644\n--- a/drivers/net/txgbe/txgbe_ethdev.c\n+++ b/drivers/net/txgbe/txgbe_ethdev.c\n@@ -2897,7 +2897,7 @@ txgbe_dev_link_update_share(struct rte_eth_dev *dev,\n \t\t\t\t */\n \t\t\t\tintr->flags |= TXGBE_FLAG_NEED_LINK_CONFIG;\n \t\t\t\tif (rte_thread_create_control(&ad->link_thread_tid,\n-\t\t\t\t\t\"dpdk-txgbe-link\", NULL,\n+\t\t\t\t\t\"dpdk-txgbe-link\",\n \t\t\t\t\ttxgbe_dev_setup_link_thread_handler, dev) < 0) {\n \t\t\t\t\tPMD_DRV_LOG(ERR, \"Create link thread failed!\");\n \t\t\t\t\t__atomic_clear(&ad->link_thread_running, __ATOMIC_SEQ_CST);\ndiff --git a/lib/eal/common/eal_common_thread.c b/lib/eal/common/eal_common_thread.c\nindex 6605bd017e..07ac721da1 100644\n--- a/lib/eal/common/eal_common_thread.c\n+++ b/lib/eal/common/eal_common_thread.c\n@@ -349,8 +349,7 @@ rte_ctrl_thread_create(pthread_t *thread, const char *name,\n \n int\n rte_thread_create_control(rte_thread_t *thread, const char *name,\n-\tconst rte_thread_attr_t *attr, rte_thread_func start_routine,\n-\tvoid *arg)\n+\t\trte_thread_func start_routine, void *arg)\n {\n \tstruct rte_thread_ctrl_params *params;\n \tenum __rte_ctrl_thread_status ctrl_thread_status;\n@@ -365,7 +364,7 @@ rte_thread_create_control(rte_thread_t *thread, const char *name,\n \tparams->ret = 0;\n \tparams->ctrl_thread_status = CTRL_THREAD_LAUNCHING;\n \n-\tret = rte_thread_create(thread, attr, control_thread_start, params);\n+\tret = rte_thread_create(thread, NULL, control_thread_start, params);\n \tif (ret != 0) {\n \t\tfree(params);\n \t\treturn -ret;\ndiff --git a/lib/eal/include/rte_thread.h b/lib/eal/include/rte_thread.h\nindex 6233142322..28cc5220a4 100644\n--- a/lib/eal/include/rte_thread.h\n+++ b/lib/eal/include/rte_thread.h\n@@ -116,8 +116,6 @@ int rte_thread_create(rte_thread_t *thread_id,\n  * @param name\n  *   The name of the control thread\n  *   (max RTE_THREAD_NAME_SIZE characters including '\\0').\n- * @param thread_attr\n- *   Attributes for the new thread.\n  * @param thread_func\n  *   Function to be executed by the new thread.\n  * @param arg\n@@ -129,8 +127,7 @@ int rte_thread_create(rte_thread_t *thread_id,\n __rte_experimental\n int\n rte_thread_create_control(rte_thread_t *thread, const char *name,\n-\tconst rte_thread_attr_t *thread_attr, rte_thread_func thread_func,\n-\tvoid *arg);\n+\t\trte_thread_func thread_func, void *arg);\n \n /**\n  * @warning\ndiff --git a/lib/eal/windows/eal_interrupts.c b/lib/eal/windows/eal_interrupts.c\nindex b1b1228c2b..66a49c844a 100644\n--- a/lib/eal/windows/eal_interrupts.c\n+++ b/lib/eal/windows/eal_interrupts.c\n@@ -98,7 +98,7 @@ rte_eal_intr_init(void)\n \t\treturn -1;\n \t}\n \n-\tret = rte_thread_create_control(&intr_thread, \"dpdk-intr\", NULL,\n+\tret = rte_thread_create_control(&intr_thread, \"dpdk-intr\",\n \t\t\teal_intr_thread_main, NULL);\n \tif (ret != 0) {\n \t\trte_errno = -ret;\n",
    "prefixes": [
        "03/11"
    ]
}