DPDK patches and discussions
 help / color / mirror / Atom feed
From: Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>
To: dev@dpdk.org, thomas@monjalon.net, dmitry.kozliuk@gmail.com,
	khot@microsoft.com, navasile@microsoft.com,
	dmitrym@microsoft.com, roretzla@microsoft.com, talshn@nvidia.com,
	ocardona@microsoft.com
Cc: bruce.richardson@intel.com, david.marchand@redhat.com,
	pallavi.kadam@intel.com
Subject: [dpdk-dev] [PATCH v14 9/9] Add unit tests for thread API
Date: Thu, 19 Aug 2021 14:31:34 -0700
Message-ID: <1629408694-31803-10-git-send-email-navasile@linux.microsoft.com> (raw)
In-Reply-To: <1629408694-31803-1-git-send-email-navasile@linux.microsoft.com>

From: Narcisa Vasile <navasile@microsoft.com>

As a new API for threading is introduced,
a set of unit tests have been added to test the new interface.

Signed-off-by: Narcisa Vasile <navasile@microsoft.com>
---
 app/test/meson.build    |   2 +
 app/test/test_threads.c | 419 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 421 insertions(+)
 create mode 100644 app/test/test_threads.c

diff --git a/app/test/meson.build b/app/test/meson.build
index a7611686ad..57e61ce601 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -140,6 +140,7 @@ test_sources = files(
         'test_table_tables.c',
         'test_tailq.c',
         'test_thash.c',
+        'test_threads.c',
         'test_timer.c',
         'test_timer_perf.c',
         'test_timer_racecond.c',
@@ -276,6 +277,7 @@ fast_tests = [
         ['reorder_autotest', true],
         ['service_autotest', true],
         ['thash_autotest', true],
+        ['threads_autotest', true],
         ['trace_autotest', true],
 ]
 
diff --git a/app/test/test_threads.c b/app/test/test_threads.c
new file mode 100644
index 0000000000..beaa303506
--- /dev/null
+++ b/app/test/test_threads.c
@@ -0,0 +1,419 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2021 Microsoft.
+ */
+
+#include <pthread.h>
+
+#include <rte_thread.h>
+
+#include "test.h"
+
+#define THREADS_COUNT 20
+
+#define TEST_THREADS_LOG(func) \
+		printf("Error at line %d. %s failed!\n", __LINE__, func)
+
+static void *
+thread_loop_self(void *arg)
+{
+	rte_thread_t *id = arg;
+
+	*id = rte_thread_self();
+
+	return NULL;
+}
+
+static int
+test_thread_self(void)
+{
+	rte_thread_t threads_ids[THREADS_COUNT];
+	rte_thread_t self_ids[THREADS_COUNT] = {};
+	size_t i;
+	size_t j;
+	int ret = 0;
+
+	for (i = 0; i < THREADS_COUNT; ++i) {
+		if (rte_thread_create(&threads_ids[i], NULL, thread_loop_self,
+				&self_ids[i]) != 0) {
+			printf("Error, Only %zu threads created.\n", i);
+			break;
+		}
+	}
+
+	for (j = 0; j < i; ++j) {
+		ret = rte_thread_join(threads_ids[j], NULL);
+		if (ret != 0) {
+			TEST_THREADS_LOG("rte_thread_join()");
+			return -1;
+		}
+
+		if (rte_thread_equal(threads_ids[j], self_ids[j]) == 0)
+			ret = -1;
+	}
+
+	return ret;
+}
+
+struct thread_context {
+	rte_thread_barrier *barrier;
+	size_t *thread_count;
+};
+
+static void *
+thread_loop_barrier(void *arg)
+{
+
+	struct thread_context *ctx = arg;
+
+	(void)__atomic_add_fetch(ctx->thread_count, 1, __ATOMIC_RELAXED);
+
+	if (rte_thread_barrier_wait(ctx->barrier) > 0)
+		TEST_THREADS_LOG("rte_thread_barrier_wait()");
+
+	return NULL;
+}
+
+static int
+test_thread_barrier(void)
+{
+	rte_thread_t threads_ids[THREADS_COUNT];
+	struct thread_context ctx[THREADS_COUNT] = {};
+	rte_thread_barrier barrier;
+	size_t count = 0;
+	size_t i;
+	size_t j;
+	int ret = 0;
+
+	ret = rte_thread_barrier_init(&barrier, THREADS_COUNT + 1);
+	if (ret != 0) {
+		TEST_THREADS_LOG("rte_thread_barrier_init()");
+		return -1;
+	}
+
+	for (i = 0; i < THREADS_COUNT; ++i) {
+		ctx[i].thread_count = &count;
+		ctx[i].barrier = &barrier;
+		if (rte_thread_create(&threads_ids[i], NULL,
+				thread_loop_barrier, &ctx[i]) != 0) {
+			printf("Error, Only %zu threads created.\n", i);
+			ret = -1;
+			goto error;
+		}
+	}
+
+	ret = rte_thread_barrier_wait(ctx->barrier);
+	if (ret > 0) {
+		TEST_THREADS_LOG("rte_thread_barrier_wait()");
+		ret = -1;
+		goto error;
+	}
+
+	if (count != i) {
+		ret = -1;
+		printf("Error, expected thread count(%zu) to be equal "
+			"to the number of threads that wait at the barrier(%zu)\n",
+			count, i);
+		goto error;
+	}
+
+error:
+	for (j = 0; j < i; ++j) {
+		ret = rte_thread_join(threads_ids[j], NULL);
+		if (ret != 0) {
+			TEST_THREADS_LOG("rte_thread_join()");
+			ret = -1;
+			break;
+		}
+	}
+
+	ret = rte_thread_barrier_destroy(&barrier);
+	if (ret != 0) {
+		TEST_THREADS_LOG("rte_thread_barrier_destroy()");
+		ret = -1;
+	}
+
+	return ret;
+}
+
+static size_t val;
+
+static void *
+thread_loop_mutex(void *arg)
+{
+	rte_thread_mutex *mutex = arg;
+
+	rte_thread_mutex_lock(mutex);
+	val++;
+	rte_thread_mutex_unlock(mutex);
+
+	return NULL;
+}
+
+static int
+test_thread_mutex(void)
+{
+	rte_thread_t threads_ids[THREADS_COUNT];
+	rte_thread_mutex mutex;
+	size_t i;
+	size_t j;
+	int ret = 0;
+
+	/*
+	 * The value that each thread will increment while holding the mutex.
+	 */
+	val = 0;
+
+	ret = rte_thread_mutex_init(&mutex);
+	if (ret != 0) {
+		TEST_THREADS_LOG("rte_thread_mutex_init()");
+		return -1;
+	}
+
+	for (i = 0; i < THREADS_COUNT; ++i) {
+		if (rte_thread_create(&threads_ids[i], NULL,
+				thread_loop_mutex, &mutex) != 0) {
+			printf("Error, created only %zu threads\n", i);
+			ret = -1;
+			goto error;
+		}
+	}
+
+error:
+	for (j = 0; j < i; ++j) {
+		ret = rte_thread_join(threads_ids[j], NULL);
+		if (ret != 0) {
+			TEST_THREADS_LOG("rte_thread_join()");
+			ret = -1;
+		}
+	}
+
+	ret = rte_thread_mutex_destroy(&mutex);
+	if (ret != 0) {
+		TEST_THREADS_LOG("rte_thread_mutex_destroy()");
+		ret = -1;
+	}
+
+	if (i != val) {
+		printf("Unexpected value: %zu!. Expected %zu. "
+			"Each thread should increment the value once.\n",
+			val, i);
+		ret = -1;
+	}
+
+	return ret;
+}
+
+struct thread_affinity_ctx {
+	size_t idx;
+	unsigned int result;
+};
+
+static void *
+thread_loop_attributes_affinity(void *arg)
+{
+	struct thread_affinity_ctx *ctx = arg;
+	rte_cpuset_t cpuset;
+	size_t i;
+
+	ctx->result = 0;
+
+	CPU_ZERO(&cpuset);
+	if (pthread_getaffinity_np(pthread_self(), sizeof(cpuset),
+			&cpuset) != 0) {
+		ctx->result = 1;
+		TEST_THREADS_LOG("pthread_getaffinity_np()");
+		return NULL;
+	}
+
+	if (!CPU_ISSET(ctx->idx, &cpuset)) {
+		ctx->result = 1;
+		printf("CPU %zu should be set for thread %zu\n",
+			ctx->idx, ctx->idx);
+		return NULL;
+	}
+
+	for (i = 0; i < CPU_SETSIZE; ++i) {
+		if (i != ctx->idx && CPU_ISSET(i, &cpuset)) {
+			ctx->result = 1;
+			printf("CPU %zu should not be set for thread %zu\n",
+				i, ctx->idx);
+			return NULL;
+		}
+	}
+	return NULL;
+}
+
+static int
+test_thread_attributes_affinity(void)
+{
+	rte_thread_t threads_ids[THREADS_COUNT];
+	struct thread_affinity_ctx ctx[THREADS_COUNT] = {};
+	rte_thread_attr_t attr;
+	rte_cpuset_t cpuset;
+	size_t i;
+	size_t j;
+	int ret = 0;
+
+	ret = rte_thread_attr_init(&attr);
+	if (ret != 0) {
+		TEST_THREADS_LOG("rte_thread_attr_init()");
+		return -1;
+	}
+
+	for (i = 0; i < THREADS_COUNT; ++i) {
+		CPU_ZERO(&cpuset);
+		CPU_SET(i, &cpuset);
+
+		ret = rte_thread_attr_set_affinity(&attr, &cpuset);
+		if (ret != 0) {
+			ret = -1;
+			TEST_THREADS_LOG("rte_thread_attr_set_affinity()");
+			goto error;
+		}
+
+		ctx[i].idx = i;
+		if (rte_thread_create(&threads_ids[i], &attr,
+				thread_loop_attributes_affinity,
+				&ctx[i]) != 0) {
+			printf("Error, created only %zu threads\n", i);
+			ret = -1;
+			goto error;
+		}
+
+	}
+
+error:
+	for (j = 0; j < i; ++j) {
+		ret = rte_thread_join(threads_ids[j], NULL);
+		if (ret != 0) {
+			TEST_THREADS_LOG("rte_thread_join()");
+			ret = -1;
+			break;
+		}
+
+		if (ctx[j].result != 0)
+			ret = -1;
+	}
+
+	return ret;
+}
+
+static void *
+thread_loop_return(void *arg)
+{
+	RTE_SET_USED(arg);
+	return NULL;
+}
+
+static int
+test_thread_attributes_priority(void)
+{
+	rte_thread_t threads_ids[THREADS_COUNT];
+	rte_thread_attr_t attr;
+	size_t i;
+	size_t j;
+	int ret = 0;
+	int policy;
+	struct sched_param param;
+
+	ret = rte_thread_attr_init(&attr);
+	if (ret != 0) {
+		TEST_THREADS_LOG("rte_thread_attr_init()");
+		return -1;
+	}
+
+	ret = rte_thread_attr_set_priority(&attr, RTE_THREAD_PRIORITY_NORMAL);
+	if (ret != 0) {
+		TEST_THREADS_LOG("rte_thread_attr_set_priority()");
+		return -1;
+	}
+
+	for (i = 0; i < THREADS_COUNT; ++i) {
+		if (rte_thread_create(&threads_ids[i], &attr,
+				thread_loop_return, NULL) != 0) {
+			printf("Error, created only %zu threads\n", i);
+			ret = -1;
+			goto error;
+		}
+
+		ret = pthread_getschedparam(
+				(pthread_t)threads_ids[i].opaque_id,
+				&policy, &param);
+		if (ret != 0) {
+			ret = -1;
+			TEST_THREADS_LOG("pthread_getschedparam()");
+			goto error;
+		}
+
+		if (policy != SCHED_OTHER || param.sched_priority != 0) {
+			ret = -1;
+			printf("Unexpected priority: %d or policy: %d\n",
+					param.sched_priority, SCHED_OTHER);
+			goto error;
+		}
+
+	}
+
+error:
+	for (j = 0; j < i; ++j) {
+		ret = rte_thread_join(threads_ids[j], NULL);
+		if (ret != 0) {
+			TEST_THREADS_LOG("rte_thread_join()");
+			ret = -1;
+			break;
+		}
+	}
+
+	return ret;
+}
+
+static int
+test_thread_detach(void)
+{
+	rte_thread_t threads_ids[THREADS_COUNT];
+	size_t i;
+	size_t j;
+	int ret = 0;
+
+	for (i = 0; i < THREADS_COUNT; ++i) {
+		if (rte_thread_create(&threads_ids[i], NULL,
+				thread_loop_return, NULL) != 0) {
+			printf("Error, Only %zu threads created.\n", i);
+			goto error;
+		}
+	}
+
+error:
+	for (j = 0; j < i; ++j) {
+		ret = rte_thread_detach(threads_ids[j]);
+		if (ret != 0) {
+			TEST_THREADS_LOG("rte_thread_detach()");
+			return -1;
+		}
+	}
+
+	return ret;
+}
+
+static struct unit_test_suite threads_test_suite = {
+	.suite_name = "threads autotest",
+	.setup = NULL,
+	.teardown = NULL,
+	.unit_test_cases = {
+			TEST_CASE(test_thread_self),
+			TEST_CASE(test_thread_barrier),
+			TEST_CASE(test_thread_mutex),
+			TEST_CASE(test_thread_attributes_affinity),
+			TEST_CASE(test_thread_attributes_priority),
+			TEST_CASE(test_thread_detach),
+			TEST_CASES_END()
+	}
+};
+
+static int
+test_threads(void)
+{
+	return unit_test_suite_runner(&threads_test_suite);
+}
+
+REGISTER_TEST_COMMAND(threads_autotest, test_threads);
-- 
2.31.0.vfs.0.1


  parent reply	other threads:[~2021-08-19 21:32 UTC|newest]

Thread overview: 247+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-18  1:00 [dpdk-dev] [PATCH 0/3] eal: Add new API for threading Narcisa Ana Maria Vasile
2021-03-18  1:00 ` [dpdk-dev] [PATCH 1/3] Add EAL threads API Narcisa Ana Maria Vasile
2021-03-18 14:48   ` Tal Shnaiderman
2021-03-18 19:42     ` Narcisa Ana Maria Vasile
2021-03-18 20:04     ` Tyler Retzlaff
2021-03-18 15:48   ` David Marchand
2021-03-18 19:40     ` Narcisa Ana Maria Vasile
2021-03-23  0:20   ` [dpdk-dev] [PATCH v2 00/10] eal: Add new API for threading Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-03-23  2:54       ` Stephen Hemminger
2021-03-23 15:53         ` Tyler Retzlaff
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 03/10] windows/eal: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-03-23  0:20     ` [dpdk-dev] [PATCH v2 10/10] Enable the new EAL thread API Narcisa Ana Maria Vasile
2021-03-25  3:46     ` [dpdk-dev] [PATCH v3 00/10] eal: Add new API for threading Narcisa Ana Maria Vasile
2021-03-25  3:46       ` [dpdk-dev] [PATCH v3 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-03-25  3:46       ` [dpdk-dev] [PATCH v3 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-03-25  3:46       ` [dpdk-dev] [PATCH v3 03/10] windows/eal: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-03-25  3:47       ` [dpdk-dev] [PATCH v3 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-03-25  3:47       ` [dpdk-dev] [PATCH v3 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-03-25  3:47       ` [dpdk-dev] [PATCH v3 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-03-25  3:47       ` [dpdk-dev] [PATCH v3 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-03-25  3:47       ` [dpdk-dev] [PATCH v3 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-03-25  3:47       ` [dpdk-dev] [PATCH v3 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-03-25  3:47       ` [dpdk-dev] [PATCH v3 10/10] Enable the new EAL thread API Narcisa Ana Maria Vasile
2021-03-26 23:52         ` [dpdk-dev] [PATCH v4 00/10] eal: Add new API for threading Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 03/10] windows/eal: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-03-27 16:04             ` Stephen Hemminger
2021-03-29 22:40             ` [dpdk-dev] [PATCH v5 00/10] eal: Add new API for threading Narcisa Ana Maria Vasile
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-04-03  1:38                 ` [dpdk-dev] [PATCH v6 00/10] eal: Add new API for threading Narcisa Ana Maria Vasile
2021-04-03  1:38                   ` [dpdk-dev] [PATCH v6 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-04-29  0:50                     ` Dmitry Kozlyuk
2021-04-29  7:44                       ` Thomas Monjalon
2021-04-29 12:05                         ` Kinsella, Ray
2021-04-29 16:00                           ` Tyler Retzlaff
2021-04-29 16:28                           ` Dmitry Kozlyuk
2021-04-30  6:37                             ` Narcisa Ana Maria Vasile
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-04-29  0:50                     ` Dmitry Kozlyuk
2021-04-29  7:48                       ` Thomas Monjalon
2021-04-29 15:52                         ` [dpdk-dev] [EXTERNAL] " Tyler Retzlaff
2021-04-30 23:00                           ` Dmitry Kozlyuk
2021-04-29 16:28                         ` [dpdk-dev] " Dmitry Kozlyuk
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 03/10] windows/eal: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-04-29  0:50                     ` Dmitry Kozlyuk
2021-04-30  2:39                       ` Narcisa Ana Maria Vasile
2021-04-30 23:05                         ` Dmitry Kozlyuk
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-05-02  0:41                     ` Dmitry Kozlyuk
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-04-29 20:44                     ` Dmitry Kozlyuk
2021-04-29 21:31                       ` [dpdk-dev] [EXTERNAL] " Dmitry Malloy
2021-04-30 17:22                         ` Dmitry Kozlyuk
2021-04-30 17:51                           ` Dmitry Kozlyuk
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-04-30 17:47                     ` Dmitry Kozlyuk
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-04-30 18:06                     ` Dmitry Kozlyuk
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-04-03  1:39                   ` [dpdk-dev] [PATCH v6 10/10] Enable the new EAL thread API Narcisa Ana Maria Vasile
2021-04-12  7:56                   ` [dpdk-dev] [PATCH v6 00/10] eal: Add new API for threading David Marchand
2021-04-16 20:30                     ` Narcisa Ana Maria Vasile
2021-06-01 20:55                   ` [dpdk-dev] [PATCH v7 00/10] eal: Add EAL " Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 03/10] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-06-01 20:55                     ` [dpdk-dev] [PATCH v7 10/10] Enable the new EAL thread API Narcisa Ana Maria Vasile
2021-06-02 15:50                       ` Tal Shnaiderman
2021-06-02 16:16                         ` Narcisa Ana Maria Vasile
2021-06-04 23:38                     ` [dpdk-dev] [PATCH v8 00/10] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 03/10] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-06-08 23:04                         ` Dmitry Kozlyuk
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-06-04 23:38                       ` [dpdk-dev] [PATCH v8 10/10] Enable the new EAL thread API Narcisa Ana Maria Vasile
2021-06-04 23:44                       ` [dpdk-dev] [PATCH v9 00/10] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 01/10] eal: add thread id and simple thread functions Narcisa Ana Maria Vasile
2021-06-08 23:03                           ` Dmitry Kozlyuk
2021-06-18 21:30                             ` Narcisa Ana Maria Vasile
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-06-08 23:03                           ` Dmitry Kozlyuk
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 03/10] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-06-08 23:03                           ` Dmitry Kozlyuk
2021-06-18 21:44                             ` Narcisa Ana Maria Vasile
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-06-08 23:04                           ` Dmitry Kozlyuk
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-06-08 23:04                           ` Dmitry Kozlyuk
2021-06-18 21:41                             ` Narcisa Ana Maria Vasile
2021-06-18 22:48                               ` Dmitry Kozlyuk
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-06-08 23:04                           ` Dmitry Kozlyuk
2021-06-09 22:37                             ` Dmitry Kozlyuk
2021-06-12  2:39                               ` Narcisa Ana Maria Vasile
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-06-04 23:44                         ` [dpdk-dev] [PATCH v9 10/10] Enable the new EAL thread API Narcisa Ana Maria Vasile
2021-06-08  5:50                           ` Narcisa Ana Maria Vasile
2021-06-08  7:45                             ` David Marchand
2021-06-18 21:53                               ` Narcisa Ana Maria Vasile
2021-06-08 23:08                             ` Dmitry Kozlyuk
2021-06-18 21:50                               ` Narcisa Ana Maria Vasile
2021-06-18 21:26                         ` [dpdk-dev] [PATCH v10 0/9] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 1/9] eal: add basic threading functions Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 2/9] eal: add thread attributes Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 3/9] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 4/9] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 5/9] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 6/9] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 7/9] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 8/9] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-06-18 21:26                           ` [dpdk-dev] [PATCH v10 9/9] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-07-30 22:31                           ` [dpdk-dev] [PATCH v11 00/10] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 01/10] eal: add basic threading functions Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 03/10] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-07-30 22:31                             ` [dpdk-dev] [PATCH v11 10/10] Add unit tests for thread API Narcisa Ana Maria Vasile
2021-08-02 17:32                             ` [dpdk-dev] [PATCH v12 00/10] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 01/10] eal: add basic threading functions Narcisa Ana Maria Vasile
2021-08-02 21:08                                 ` Narcisa Ana Maria Vasile
2021-08-02 21:37                                   ` Dmitry Kozlyuk
2021-08-03 15:11                                     ` [dpdk-dev] [dpdk-ci] " Owen Hilyard
2021-08-03 15:38                                       ` Dmitry Kozlyuk
2021-08-03 15:57                                         ` Owen Hilyard
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 03/10] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-08-02 17:32                               ` [dpdk-dev] [PATCH v12 10/10] Add unit tests for thread API Narcisa Ana Maria Vasile
2021-08-03 19:01                               ` [dpdk-dev] [PATCH v13 00/10] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 01/10] eal: add basic threading functions Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 03/10] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-08-15 19:56                                   ` Dmitry Kozlyuk
2021-08-18 21:28                                   ` Stephen Hemminger
2021-08-19  9:06                                     ` Bruce Richardson
2021-08-19 21:30                                       ` Narcisa Ana Maria Vasile
2021-08-19 21:33                                         ` Stephen Hemminger
2021-08-03 19:01                                 ` [dpdk-dev] [PATCH v13 10/10] Add unit tests for thread API Narcisa Ana Maria Vasile
2021-08-19 21:31                                 ` [dpdk-dev] [PATCH v14 0/9] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 1/9] eal: add basic threading functions Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 2/9] eal: add thread attributes Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 3/9] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 4/9] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 5/9] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 6/9] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 7/9] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` [dpdk-dev] [PATCH v14 8/9] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-08-19 21:31                                   ` Narcisa Ana Maria Vasile [this message]
2021-08-20 16:10                                     ` [dpdk-dev] [PATCH v14 9/9] Add unit tests for thread API Narcisa Ana Maria Vasile
2021-08-20 16:54                                       ` Dmitry Kozlyuk
2021-08-23 20:25                                     ` Dmitry Kozlyuk
2021-10-08 22:40                                   ` [dpdk-dev] [PATCH v15 0/9] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 1/9] eal: add basic threading functions Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 2/9] eal: add thread attributes Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 3/9] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 4/9] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 5/9] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 6/9] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 7/9] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 8/9] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-10-08 22:40                                     ` [dpdk-dev] [PATCH v15 9/9] Add unit tests for thread API Narcisa Ana Maria Vasile
2021-10-09  7:41                                     ` [dpdk-dev] [PATCH v16 0/9] eal: Add EAL API for threading Narcisa Ana Maria Vasile
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 1/9] eal: add basic threading functions Narcisa Ana Maria Vasile
2021-10-12 16:09                                         ` Thomas Monjalon
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 2/9] eal: add thread attributes Narcisa Ana Maria Vasile
2021-10-12 16:12                                         ` Thomas Monjalon
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 3/9] eal/windows: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-10-12 16:16                                         ` Thomas Monjalon
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 4/9] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-10-12 16:20                                         ` Thomas Monjalon
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 5/9] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 6/9] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 7/9] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-10-12 16:28                                         ` Thomas Monjalon
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 8/9] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-10-12 16:32                                         ` Thomas Monjalon
2021-10-09  7:41                                       ` [dpdk-dev] [PATCH v16 9/9] Add unit tests for thread API Narcisa Ana Maria Vasile
2021-10-12 16:33                                         ` Thomas Monjalon
2021-10-12 16:07                                       ` [dpdk-dev] [PATCH v16 0/9] eal: Add EAL API for threading Thomas Monjalon
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 02/10] eal: add thread attributes Narcisa Ana Maria Vasile
2021-03-30 21:14                 ` Stephen Hemminger
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 03/10] windows/eal: translate Windows errors to errno-style errors Narcisa Ana Maria Vasile
2021-03-31 13:56                 ` Tal Shnaiderman
2021-03-31 21:19                   ` Nick Connolly
2021-04-01 12:29                     ` Tal Shnaiderman
2021-04-01 19:07                   ` Narcisa Ana Maria Vasile
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 04/10] eal: implement functions for thread affinity management Narcisa Ana Maria Vasile
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 05/10] eal: implement thread priority management functions Narcisa Ana Maria Vasile
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 06/10] eal: add thread lifetime management Narcisa Ana Maria Vasile
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 07/10] eal: implement functions for mutex management Narcisa Ana Maria Vasile
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 08/10] eal: implement functions for thread barrier management Narcisa Ana Maria Vasile
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 09/10] eal: add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-03-30 21:11                 ` Stephen Hemminger
2021-03-31  8:21                   ` Tal Shnaiderman
2021-03-31 21:12                   ` Dmitry Kozlyuk
2021-03-31 22:09                     ` Stephen Hemminger
2021-03-31 22:42                       ` [dpdk-dev] [EXTERNAL] " Dmitry Malloy
2021-03-29 22:40               ` [dpdk-dev] [PATCH v5 10/10] Enable the new EAL thread API Narcisa Ana Maria Vasile
2021-03-26 23:52           ` [dpdk-dev] [PATCH v4 " Narcisa Ana Maria Vasile
2021-03-18  1:00 ` [dpdk-dev] [PATCH 2/3] Add EAL argument for setting thread priority Narcisa Ana Maria Vasile
2021-03-18  1:00 ` [dpdk-dev] [PATCH 3/3] Enable the new EAL thread API and rename Narcisa Ana Maria Vasile

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=1629408694-31803-10-git-send-email-navasile@linux.microsoft.com \
    --to=navasile@linux.microsoft.com \
    --cc=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=dmitry.kozliuk@gmail.com \
    --cc=dmitrym@microsoft.com \
    --cc=khot@microsoft.com \
    --cc=navasile@microsoft.com \
    --cc=ocardona@microsoft.com \
    --cc=pallavi.kadam@intel.com \
    --cc=roretzla@microsoft.com \
    --cc=talshn@nvidia.com \
    --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

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git