get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 131385,
    "url": "http://patchwork.dpdk.org/api/patches/131385/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230913103600.1935292-11-thomas@monjalon.net/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20230913103600.1935292-11-thomas@monjalon.net>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230913103600.1935292-11-thomas@monjalon.net",
    "date": "2023-09-13T10:34:29",
    "name": "[v2,10/11] eal: remove deprecated thread functions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "9f1fb1754447d2dac57c2d10dc7f89862b3b83d0",
    "submitter": {
        "id": 685,
        "url": "http://patchwork.dpdk.org/api/people/685/?format=api",
        "name": "Thomas Monjalon",
        "email": "thomas@monjalon.net"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230913103600.1935292-11-thomas@monjalon.net/mbox/",
    "series": [
        {
            "id": 29493,
            "url": "http://patchwork.dpdk.org/api/series/29493/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29493",
            "date": "2023-09-13T10:34:19",
            "name": "rework thread management",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/29493/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/131385/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/131385/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 A8AB542589;\n\tWed, 13 Sep 2023 12:38:16 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 2827740A89;\n\tWed, 13 Sep 2023 12:38:07 +0200 (CEST)",
            "from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com\n [64.147.123.21]) by mails.dpdk.org (Postfix) with ESMTP id 7092F40A7A\n for <dev@dpdk.org>; Wed, 13 Sep 2023 12:38:05 +0200 (CEST)",
            "from compute5.internal (compute5.nyi.internal [10.202.2.45])\n by mailout.west.internal (Postfix) with ESMTP id AAD483200805;\n Wed, 13 Sep 2023 06:38:03 -0400 (EDT)",
            "from mailfrontend1 ([10.202.2.162])\n by compute5.internal (MEProxy); Wed, 13 Sep 2023 06:38:04 -0400",
            "by mail.messagingengine.com (Postfix) with ESMTPA; Wed,\n 13 Sep 2023 06:38:01 -0400 (EDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=\n cc:cc:content-transfer-encoding:content-type:content-type:date\n :date:from:from:in-reply-to:in-reply-to:message-id:mime-version\n :references:reply-to:sender:subject:subject:to:to; s=fm2; t=\n 1694601483; x=1694687883; bh=168jX+opV7QFZxlQju1Kt6n1F9xG/ZGzZOi\n hmwVq0vA=; b=cFs0JmXfWgTEa4AK1B6qS+gdUH+g7+gopMyxA5EulMBfkTr/LNW\n i3kHYh60zZnARorAEi8j3eAtTpd/kwNuiP36/zSnuUM9fLfK8yYH3UJfwzubNVcd\n EzzDhFEwDhgH6tnME3lgu6hURrE/7TtpSjO789e7/uFrpWJYgGsT5B1879EXIBbz\n 14PS6JJomtm3TdHCFiJrECew/BZu9SZsIeYLTunf/a4iB+Y2O4zaBk0BQ0WhToQg\n 9f4DiYyP8Zkxqq4z8AYeLKwZ1SWeraiOBG7CnDwBMr8+KoodMqh7ocbDhq7GOGCk\n /9oIEu6Aj2i1Xn/IJ9gCC3bMv4X6WjN7CWg==",
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=\n messagingengine.com; h=cc:cc:content-transfer-encoding\n :content-type:content-type:date:date:feedback-id:feedback-id\n :from:from:in-reply-to:in-reply-to:message-id:mime-version\n :references:reply-to:sender:subject:subject:to:to:x-me-proxy\n :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=\n 1694601483; x=1694687883; bh=168jX+opV7QFZxlQju1Kt6n1F9xG/ZGzZOi\n hmwVq0vA=; b=X3oBpCGIz2XNl5zSzHOHyNaWQ2wxB8MCMCJ0ZMmeEYhzSgqYsrY\n 5mCJiF0rp05FN0wSa73p15qmeEmUuKI14YOwWmjlzJ3oeFMWEadI4Llnz9Peb+1R\n c6ld4R8C16gkWui9p92kVMGoFMg7Dl8Vx4/qDABpGfJC6eMUhtUz+FGKlSQ9Ofz6\n PiPwlF0B9L4ygayR253YXkOiMjos4gRho3byVLqj2GvszTIvx7YdCSUfBYI2DsIR\n YssCtKLg03NOIWUNWhUaJ9WpAn7EzHoTLo199qcbPmMYZ7M0qh69VaBA/UcbVf13\n Q+kRwRZ8baypfQwmZrg6vwT+tAa6ZI0EjPA=="
        ],
        "X-ME-Sender": "<xms:CpEBZdF5glGB2hMylzNa9YPmqrI2QuUuQYMRqTyiSgDesg9EUb3Fqg>\n <xme:CpEBZSXAocAUMzjsHdRKDJw7IGenK4x7pnld0PYgEnJGhklfrGciYzxHZpBthGy8j\n YabxWXB6nvd9BquxQ>",
        "X-ME-Received": "\n <xmr:CpEBZfJl_IafJZKJfv3-Gp8QBuNbMFOt_V6M_LRUdxN_TIjydehpJuL2O6RB3VjHE1el-A>",
        "X-ME-Proxy-Cause": "\n gggruggvucftvghtrhhoucdtuddrgedviedrudeikedgvdelucetufdoteggodetrfdotf\n fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen\n uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne\n cujfgurhephffvvefufffkofgjfhggtgfgsehtkeertdertdejnecuhfhrohhmpefvhhho\n mhgrshcuofhonhhjrghlohhnuceothhhohhmrghssehmohhnjhgrlhhonhdrnhgvtheqne\n cuggftrfgrthhtvghrnheptdeiffffgeefteelhfekueetueduffejgfelvedtieejudek\n gfevheetheehgeejnecuvehluhhsthgvrhfuihiivgepheenucfrrghrrghmpehmrghilh\n hfrhhomhepthhhohhmrghssehmohhnjhgrlhhonhdrnhgvth",
        "X-ME-Proxy": "<xmx:CpEBZTFACllDc62PaXtH06T6zxamEzPagCvbbX7dN7WLb1sgJAXWfA>\n <xmx:CpEBZTUfeQZ0MEsk-FEiDDzRfC7nsgD2xhpuedoohVVy1CSEd5OvnQ>\n <xmx:CpEBZeODXs_2P2ukIAj898QFpMISLkOarbn1EZ2e10ftOHdlQp8h7A>\n <xmx:C5EBZTTPY0OwuRizSCp7Ekm9NLWEVxjxe3sZRZAzwIYuM2vfbbbwFw>",
        "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 =?utf-8?q?Morten_Br=C3=B8rup?= <mb@smartsharesystems.com>,\n Anatoly Burakov <anatoly.burakov@intel.com>,\n Bruce Richardson <bruce.richardson@intel.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 v2 10/11] eal: remove deprecated thread functions",
        "Date": "Wed, 13 Sep 2023 12:34:29 +0200",
        "Message-ID": "<20230913103600.1935292-11-thomas@monjalon.net>",
        "X-Mailer": "git-send-email 2.42.0",
        "In-Reply-To": "<20230913103600.1935292-1-thomas@monjalon.net>",
        "References": "<20230906162226.1618088-1-thomas@monjalon.net>\n <20230913103600.1935292-1-thomas@monjalon.net>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "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 deprecated functions rte_thread_setname() and rte_ctrl_thread_create()\nare replaced with the new rte_thread API:\n\n\trte_thread_setname()\ncan be replaced with\n\trte_thread_set_name()\nor\trte_thread_set_prefixed_name()\n\n\trte_ctrl_thread_create()\ncan be replaced with\n\trte_thread_create_control()\nor\trte_thread_create_internal_control()\n\nSigned-off-by: Thomas Monjalon <thomas@monjalon.net>\nAcked-by: Morten Brørup <mb@smartsharesystems.com>\nAcked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>\n\n---\nv2: clean control thread params struct\n---\n .../prog_guide/env_abstraction_layer.rst      |  2 +-\n doc/guides/rel_notes/deprecation.rst          |  5 -\n doc/guides/rel_notes/release_23_11.rst        |  4 +-\n lib/eal/common/eal_common_thread.c            | 93 +++----------------\n lib/eal/freebsd/eal_thread.c                  |  7 --\n lib/eal/include/rte_lcore.h                   | 42 ---------\n lib/eal/linux/eal_thread.c                    | 16 ----\n lib/eal/version.map                           |  2 -\n lib/eal/windows/eal_thread.c                  |  8 --\n 9 files changed, 18 insertions(+), 161 deletions(-)",
    "diff": "diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst b/doc/guides/prog_guide/env_abstraction_layer.rst\nindex 89014789de..6debf54efb 100644\n--- a/doc/guides/prog_guide/env_abstraction_layer.rst\n+++ b/doc/guides/prog_guide/env_abstraction_layer.rst\n@@ -756,7 +756,7 @@ Control Thread API\n ~~~~~~~~~~~~~~~~~~\n \n It is possible to create Control Threads using the public API\n-``rte_ctrl_thread_create()``.\n+``rte_thread_create_control()``.\n Those threads can be used for management/infrastructure tasks and are used\n internally by DPDK for multi process support and interrupt handling.\n \ndiff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst\nindex 3e48908b51..8c8873006d 100644\n--- a/doc/guides/rel_notes/deprecation.rst\n+++ b/doc/guides/rel_notes/deprecation.rst\n@@ -29,11 +29,6 @@ Deprecation Notices\n   are renamed to ``rte_tel_data_add_array_uint`` and ``rte_tel_data_add_dict_uint`` respectively.\n   As such, the old function names are deprecated and will be removed in a future release.\n \n-* eal: The functions ``rte_thread_setname`` and ``rte_ctrl_thread_create``\n-  are planned to be deprecated starting with the 23.07 release, subject to\n-  the replacement API rte_thread_set_name and rte_thread_create_control being\n-  marked as stable, and planned to be removed by the 23.11 release.\n-\n * eal: ``RTE_CPUFLAG_NUMFLAGS`` will be removed in DPDK 23.11 release.\n   This is to allow new CPU features to be added without ABI breakage.\n \ndiff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst\nindex d7562fd646..9746809a66 100644\n--- a/doc/guides/rel_notes/release_23_11.rst\n+++ b/doc/guides/rel_notes/release_23_11.rst\n@@ -115,7 +115,9 @@ API Changes\n \n * eal: The thread API has changed.\n   The function ``rte_thread_create_control()`` does not take attributes anymore.\n-  The whole thread API was promoted to stable level.\n+  The whole thread API was promoted to stable level,\n+  except ``rte_thread_setname()`` and ``rte_ctrl_thread_create()`` which are\n+  replaced with ``rte_thread_set_name()`` and ``rte_thread_create_control()``.\n \n \n ABI Changes\ndiff --git a/lib/eal/common/eal_common_thread.c b/lib/eal/common/eal_common_thread.c\nindex cd6e00fe8a..a71142662a 100644\n--- a/lib/eal/common/eal_common_thread.c\n+++ b/lib/eal/common/eal_common_thread.c\n@@ -235,25 +235,22 @@ enum __rte_ctrl_thread_status {\n \tCTRL_THREAD_ERROR /* Control thread encountered an error */\n };\n \n-struct rte_thread_ctrl_params {\n-\tunion {\n-\t\tvoid *(*ctrl_start_routine)(void *arg);\n-\t\trte_thread_func control_start_routine;\n-\t} u;\n+struct control_thread_params {\n+\trte_thread_func start_routine;\n \tvoid *arg;\n \tint ret;\n \t/* Control thread status.\n \t * If the status is CTRL_THREAD_ERROR, 'ret' has the error code.\n \t */\n-\tenum __rte_ctrl_thread_status ctrl_thread_status;\n+\tenum __rte_ctrl_thread_status status;\n };\n \n-static int ctrl_thread_init(void *arg)\n+static int control_thread_init(void *arg)\n {\n \tstruct internal_config *internal_conf =\n \t\teal_get_internal_configuration();\n \trte_cpuset_t *cpuset = &internal_conf->ctrl_cpuset;\n-\tstruct rte_thread_ctrl_params *params = arg;\n+\tstruct control_thread_params *params = arg;\n \n \t__rte_thread_init(rte_lcore_id(), cpuset);\n \t/* Set control thread socket ID to SOCKET_ID_ANY\n@@ -262,96 +259,34 @@ static int ctrl_thread_init(void *arg)\n \tRTE_PER_LCORE(_socket_id) = SOCKET_ID_ANY;\n \tparams->ret = rte_thread_set_affinity_by_id(rte_thread_self(), cpuset);\n \tif (params->ret != 0) {\n-\t\t__atomic_store_n(&params->ctrl_thread_status,\n+\t\t__atomic_store_n(&params->status,\n \t\t\tCTRL_THREAD_ERROR, __ATOMIC_RELEASE);\n \t\treturn 1;\n \t}\n \n-\t__atomic_store_n(&params->ctrl_thread_status,\n+\t__atomic_store_n(&params->status,\n \t\tCTRL_THREAD_RUNNING, __ATOMIC_RELEASE);\n \n \treturn 0;\n }\n \n-static void *ctrl_thread_start(void *arg)\n-{\n-\tstruct rte_thread_ctrl_params *params = arg;\n-\tvoid *start_arg = params->arg;\n-\tvoid *(*start_routine)(void *) = params->u.ctrl_start_routine;\n-\n-\tif (ctrl_thread_init(arg) != 0)\n-\t\treturn NULL;\n-\n-\treturn start_routine(start_arg);\n-}\n-\n static uint32_t control_thread_start(void *arg)\n {\n-\tstruct rte_thread_ctrl_params *params = arg;\n+\tstruct control_thread_params *params = arg;\n \tvoid *start_arg = params->arg;\n-\trte_thread_func start_routine = params->u.control_start_routine;\n+\trte_thread_func start_routine = params->start_routine;\n \n-\tif (ctrl_thread_init(arg) != 0)\n+\tif (control_thread_init(arg) != 0)\n \t\treturn 0;\n \n \treturn start_routine(start_arg);\n }\n \n-int\n-rte_ctrl_thread_create(pthread_t *thread, const char *name,\n-\t\tconst pthread_attr_t *attr,\n-\t\tvoid *(*start_routine)(void *), void *arg)\n-{\n-\tstruct rte_thread_ctrl_params *params;\n-\tenum __rte_ctrl_thread_status ctrl_thread_status;\n-\tint ret;\n-\n-\tparams = malloc(sizeof(*params));\n-\tif (!params)\n-\t\treturn -ENOMEM;\n-\n-\tparams->u.ctrl_start_routine = start_routine;\n-\tparams->arg = arg;\n-\tparams->ret = 0;\n-\tparams->ctrl_thread_status = CTRL_THREAD_LAUNCHING;\n-\n-\tret = pthread_create(thread, attr, ctrl_thread_start, (void *)params);\n-\tif (ret != 0) {\n-\t\tfree(params);\n-\t\treturn -ret;\n-\t}\n-\n-\tif (name != NULL)\n-\t\trte_thread_set_name((rte_thread_t){(uintptr_t)*thread}, name);\n-\n-\t/* Wait for the control thread to initialize successfully */\n-\twhile ((ctrl_thread_status =\n-\t\t\t__atomic_load_n(&params->ctrl_thread_status,\n-\t\t\t__ATOMIC_ACQUIRE)) == CTRL_THREAD_LAUNCHING) {\n-\t\t/* Yield the CPU. Using sched_yield call requires maintaining\n-\t\t * another implementation for Windows as sched_yield is not\n-\t\t * supported on Windows.\n-\t\t */\n-\t\trte_delay_us_sleep(1);\n-\t}\n-\n-\t/* Check if the control thread encountered an error */\n-\tif (ctrl_thread_status == CTRL_THREAD_ERROR) {\n-\t\t/* ctrl thread is exiting */\n-\t\trte_thread_join((rte_thread_t){(uintptr_t)*thread}, NULL);\n-\t}\n-\n-\tret = params->ret;\n-\tfree(params);\n-\n-\treturn -ret;\n-}\n-\n int\n rte_thread_create_control(rte_thread_t *thread, const char *name,\n \t\trte_thread_func start_routine, void *arg)\n {\n-\tstruct rte_thread_ctrl_params *params;\n+\tstruct control_thread_params *params;\n \tenum __rte_ctrl_thread_status ctrl_thread_status;\n \tint ret;\n \n@@ -359,10 +294,10 @@ rte_thread_create_control(rte_thread_t *thread, const char *name,\n \tif (params == NULL)\n \t\treturn -ENOMEM;\n \n-\tparams->u.control_start_routine = start_routine;\n+\tparams->start_routine = start_routine;\n \tparams->arg = arg;\n \tparams->ret = 0;\n-\tparams->ctrl_thread_status = CTRL_THREAD_LAUNCHING;\n+\tparams->status = CTRL_THREAD_LAUNCHING;\n \n \tret = rte_thread_create(thread, NULL, control_thread_start, params);\n \tif (ret != 0) {\n@@ -375,7 +310,7 @@ rte_thread_create_control(rte_thread_t *thread, const char *name,\n \n \t/* Wait for the control thread to initialize successfully */\n \twhile ((ctrl_thread_status =\n-\t\t\t__atomic_load_n(&params->ctrl_thread_status,\n+\t\t\t__atomic_load_n(&params->status,\n \t\t\t__ATOMIC_ACQUIRE)) == CTRL_THREAD_LAUNCHING) {\n \t\trte_delay_us_sleep(1);\n \t}\ndiff --git a/lib/eal/freebsd/eal_thread.c b/lib/eal/freebsd/eal_thread.c\nindex ba9b25c2c0..6f97a3c2c1 100644\n--- a/lib/eal/freebsd/eal_thread.c\n+++ b/lib/eal/freebsd/eal_thread.c\n@@ -42,10 +42,3 @@ void rte_thread_set_name(rte_thread_t thread_id, const char *thread_name)\n \n \tpthread_set_name_np((pthread_t)thread_id.opaque_id, truncated);\n }\n-\n-int rte_thread_setname(pthread_t id, const char *name)\n-{\n-\t/* this BSD function returns no error */\n-\tpthread_set_name_np(id, name);\n-\treturn 0;\n-}\ndiff --git a/lib/eal/include/rte_lcore.h b/lib/eal/include/rte_lcore.h\nindex 6ce810b876..7deae47af3 100644\n--- a/lib/eal/include/rte_lcore.h\n+++ b/lib/eal/include/rte_lcore.h\n@@ -385,20 +385,6 @@ void rte_lcore_register_usage_cb(rte_lcore_usage_cb cb);\n void\n rte_lcore_dump(FILE *f);\n \n-/**\n- * Set thread names.\n- *\n- * @note It fails with glibc < 2.12.\n- *\n- * @param id\n- *   Thread id.\n- * @param name\n- *   Thread name to set.\n- * @return\n- *   On success, return 0; otherwise return a negative value.\n- */\n-int rte_thread_setname(pthread_t id, const char *name);\n-\n /**\n  * Register current non-EAL thread as a lcore.\n  *\n@@ -421,34 +407,6 @@ rte_thread_register(void);\n void\n rte_thread_unregister(void);\n \n-/**\n- * Create a control thread.\n- *\n- * Creates a control thread with the given name and attributes. The\n- * affinity of the new thread is based on the CPU affinity retrieved\n- * at the time rte_eal_init() was called, the dataplane and service\n- * lcores are then excluded. If setting the name of the thread fails,\n- * the error is ignored and a debug message is logged.\n- *\n- * @param thread\n- *   Filled with the thread id of the new created thread.\n- * @param name\n- *   The name of the control thread (max 16 characters including '\\0').\n- * @param attr\n- *   Attributes for the new thread.\n- * @param start_routine\n- *   Function to be executed by the new thread.\n- * @param arg\n- *   Argument passed to start_routine.\n- * @return\n- *   On success, returns 0; on error, it returns a negative value\n- *   corresponding to the error number.\n- */\n-int\n-rte_ctrl_thread_create(pthread_t *thread, const char *name,\n-\t\tconst pthread_attr_t *attr,\n-\t\tvoid *(*start_routine)(void *), void *arg);\n-\n #ifdef __cplusplus\n }\n #endif\ndiff --git a/lib/eal/linux/eal_thread.c b/lib/eal/linux/eal_thread.c\nindex b9a126f3a8..880070c627 100644\n--- a/lib/eal/linux/eal_thread.c\n+++ b/lib/eal/linux/eal_thread.c\n@@ -39,19 +39,3 @@ void rte_thread_set_name(rte_thread_t thread_id, const char *thread_name)\n \tif (ret != 0)\n \t\tRTE_LOG(DEBUG, EAL, \"Failed to set thread name\\n\");\n }\n-\n-int rte_thread_setname(pthread_t id, const char *name)\n-{\n-\tint ret = ENOSYS;\n-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)\n-#if __GLIBC_PREREQ(2, 12)\n-\tchar truncated[16];\n-\n-\tstrlcpy(truncated, name, sizeof(truncated));\n-\tret = pthread_setname_np(id, truncated);\n-#endif\n-#endif\n-\tRTE_SET_USED(id);\n-\tRTE_SET_USED(name);\n-\treturn -ret;\n-}\ndiff --git a/lib/eal/version.map b/lib/eal/version.map\nindex 6d32c19286..915057b325 100644\n--- a/lib/eal/version.map\n+++ b/lib/eal/version.map\n@@ -20,7 +20,6 @@ DPDK_24 {\n \trte_cpu_get_flag_enabled;\n \trte_cpu_get_flag_name;\n \trte_cpu_is_supported; # WINDOWS_NO_EXPORT\n-\trte_ctrl_thread_create;\n \trte_cycles_vmware_tsc_map; # WINDOWS_NO_EXPORT\n \trte_delay_us;\n \trte_delay_us_block;\n@@ -278,7 +277,6 @@ DPDK_24 {\n \trte_thread_set_affinity_by_id;\n \trte_thread_set_name;\n \trte_thread_set_priority;\n-\trte_thread_setname;\n \trte_thread_unregister;\n \trte_thread_value_get;\n \trte_thread_value_set;\ndiff --git a/lib/eal/windows/eal_thread.c b/lib/eal/windows/eal_thread.c\nindex 464d510838..9e3df200b9 100644\n--- a/lib/eal/windows/eal_thread.c\n+++ b/lib/eal/windows/eal_thread.c\n@@ -76,11 +76,3 @@ rte_sys_gettid(void)\n {\n \treturn GetCurrentThreadId();\n }\n-\n-int\n-rte_thread_setname(__rte_unused pthread_t id, __rte_unused const char *name)\n-{\n-\t/* TODO */\n-\t/* This is a stub, not the expected result */\n-\treturn 0;\n-}\n",
    "prefixes": [
        "v2",
        "10/11"
    ]
}