From: Tyler Retzlaff <roretzla@linux.microsoft.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, david.marchand@redhat.com,
stephen@networkplumber.org, olivier.matz@6wind.com,
hofors@lysator.liu.se,
Tyler Retzlaff <roretzla@linux.microsoft.com>
Subject: [PATCH v4 2/3] test: add rte control thread create API test
Date: Thu, 8 Dec 2022 15:19:35 -0800 [thread overview]
Message-ID: <1670541576-18008-3-git-send-email-roretzla@linux.microsoft.com> (raw)
In-Reply-To: <1670541576-18008-1-git-send-email-roretzla@linux.microsoft.com>
Duplicate the rte_ctrl_thread_create test adapted to use
rte_control_thread create to keep both apis under test until
rte_ctrl_thread_create is removed.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
---
app/test/test_lcores.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/app/test/test_lcores.c b/app/test/test_lcores.c
index a6bb412..375ecdb 100644
--- a/app/test/test_lcores.c
+++ b/app/test/test_lcores.c
@@ -8,6 +8,7 @@
#include <rte_common.h>
#include <rte_errno.h>
#include <rte_lcore.h>
+#include <rte_thread.h>
#include "test.h"
@@ -352,6 +353,18 @@ static void *ctrl_thread_loop(void *arg)
return NULL;
}
+static uint32_t control_thread_loop(void *arg)
+{
+ struct thread_context *t = arg;
+
+ printf("Control thread running successfully\n");
+
+ /* Set the thread state to DONE */
+ t->state = Thread_DONE;
+
+ return 0;
+}
+
static int
test_ctrl_thread(void)
{
@@ -379,6 +392,32 @@ static void *ctrl_thread_loop(void *arg)
}
static int
+test_control_thread(void)
+{
+ struct thread_context ctrl_thread_context;
+ struct thread_context *t;
+
+ /* Create one control thread */
+ t = &ctrl_thread_context;
+ t->state = Thread_INIT;
+ if (rte_control_thread_create((rte_thread_t *)&t->id, "test_control_threads",
+ NULL, control_thread_loop, t) != 0)
+ return -1;
+
+ /* Wait till the control thread exits.
+ * This also acts as the barrier such that the memory operations
+ * in control thread are visible to this thread.
+ */
+ rte_thread_join((rte_thread_t){(uintptr_t)t->id}, NULL);
+
+ /* Check if the control thread set the correct state */
+ if (t->state != Thread_DONE)
+ return -1;
+
+ return 0;
+}
+
+static int
test_lcores(void)
{
unsigned int eal_threads_count = 0;
@@ -411,6 +450,9 @@ static void *ctrl_thread_loop(void *arg)
if (test_ctrl_thread() < 0)
return TEST_FAILED;
+ if (test_control_thread() < 0)
+ return TEST_FAILED;
+
return TEST_SUCCESS;
}
--
1.8.3.1
next prev parent reply other threads:[~2022-12-08 23:19 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-05 20:24 [PATCH 0/3] eal: rte_ctrl_thread_create API replacement Tyler Retzlaff
2022-12-05 20:24 ` [PATCH 1/3] eal: add rte control thread create API Tyler Retzlaff
2022-12-05 21:11 ` Stephen Hemminger
2022-12-06 0:21 ` Tyler Retzlaff
2022-12-06 17:35 ` Tyler Retzlaff
2022-12-07 0:49 ` Stephen Hemminger
2022-12-05 20:24 ` [PATCH 2/3] test: add rte control thread create API test Tyler Retzlaff
2022-12-05 20:24 ` [PATCH 3/3] eal: deprecate pthread control thread create API Tyler Retzlaff
2022-12-05 21:18 ` Stephen Hemminger
2022-12-06 0:24 ` Tyler Retzlaff
2022-12-05 20:34 ` [PATCH 0/3] eal: rte_ctrl_thread_create API replacement Morten Brørup
2022-12-06 17:28 ` [PATCH v2 " Tyler Retzlaff
2022-12-06 17:28 ` [PATCH v2 1/3] eal: add rte control thread create API Tyler Retzlaff
2022-12-07 9:13 ` Mattias Rönnblom
2022-12-07 16:38 ` Tyler Retzlaff
2022-12-07 20:37 ` Tyler Retzlaff
2022-12-08 21:59 ` Mattias Rönnblom
2022-12-08 22:15 ` Tyler Retzlaff
2022-12-09 1:09 ` Stephen Hemminger
2022-12-09 19:49 ` Tyler Retzlaff
2022-12-06 17:28 ` [PATCH v2 2/3] test: add rte control thread create API test Tyler Retzlaff
2022-12-06 17:28 ` [PATCH v2 3/3] eal: deprecate pthread control thread create API Tyler Retzlaff
2022-12-07 20:31 ` [PATCH v3 0/3] eal: rte_ctrl_thread_create API replacement Tyler Retzlaff
2022-12-07 20:31 ` [PATCH v3 1/3] eal: add rte control thread create API Tyler Retzlaff
2022-12-07 20:31 ` [PATCH v3 2/3] test: add rte control thread create API test Tyler Retzlaff
2022-12-07 20:31 ` [PATCH v3 3/3] eal: deprecate pthread control thread create API Tyler Retzlaff
2022-12-08 23:19 ` [PATCH v4 0/3] eal: rte_ctrl_thread_create API replacement Tyler Retzlaff
2022-12-08 23:19 ` [PATCH v4 1/3] eal: add rte control thread create API Tyler Retzlaff
2022-12-08 23:19 ` Tyler Retzlaff [this message]
2022-12-08 23:19 ` [PATCH v4 3/3] eal: deprecate pthread " Tyler Retzlaff
2022-12-10 14:31 ` [PATCH v4 0/3] eal: rte_ctrl_thread_create API replacement Mattias Rönnblom
2023-01-31 19:46 ` [PATCH v5 0/3] eal: deprecate last use of pthread_t in public API Tyler Retzlaff
2023-01-31 19:46 ` [PATCH v5 1/3] eal: add rte control thread create API Tyler Retzlaff
2023-01-31 19:46 ` [PATCH v5 2/3] doc: add missing index entry for thread Tyler Retzlaff
2023-01-31 19:46 ` [PATCH v5 3/3] doc: announce deprecation of thread ctrl create function Tyler Retzlaff
2023-01-31 20:30 ` [PATCH v5 0/3] eal: deprecate last use of pthread_t in public API Tyler Retzlaff
2023-01-31 20:30 ` [PATCH v5 1/3] eal: add rte control thread create API Tyler Retzlaff
2023-02-07 13:12 ` David Marchand
2023-02-07 21:41 ` Tyler Retzlaff
2023-01-31 20:30 ` [PATCH v5 2/3] doc: add missing index entry for thread Tyler Retzlaff
2023-02-07 15:39 ` David Marchand
2023-02-07 21:39 ` Tyler Retzlaff
2023-01-31 20:30 ` [PATCH v5 3/3] doc: announce deprecation of thread ctrl create function Tyler Retzlaff
2023-02-07 15:40 ` David Marchand
2023-01-31 20:33 ` [PATCH v5 0/3] eal: deprecate last use of pthread_t in public API Tyler Retzlaff
2023-02-08 21:26 ` [PATCH v6 " Tyler Retzlaff
2023-02-08 21:26 ` [PATCH v6 1/3] eal: add rte thread create control API Tyler Retzlaff
2023-02-24 5:52 ` Li, WeiyuanX
2023-02-24 8:13 ` David Marchand
2023-02-24 19:04 ` Tyler Retzlaff
2023-02-24 20:52 ` Tyler Retzlaff
2023-02-08 21:26 ` [PATCH v6 2/3] doc: add missing index entry for thread Tyler Retzlaff
2023-02-08 21:26 ` [PATCH v6 3/3] doc: announce deprecation of thread ctrl create function Tyler Retzlaff
2023-02-09 8:59 ` Bruce Richardson
2023-02-09 8:51 ` [PATCH v6 0/3] eal: deprecate last use of pthread_t in public API David Marchand
2023-02-09 11:55 ` David Marchand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1670541576-18008-3-git-send-email-roretzla@linux.microsoft.com \
--to=roretzla@linux.microsoft.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=hofors@lysator.liu.se \
--cc=olivier.matz@6wind.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).