Message ID | 1652361270-27116-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive) |
---|---|
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]) by inbox.dpdk.org (Postfix) with ESMTP id B7A25A00C3; Thu, 12 May 2022 15:14:35 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 61788410EF; Thu, 12 May 2022 15:14:35 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 7B62240E64 for <dev@dpdk.org>; Thu, 12 May 2022 15:14:33 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id C501020ECB88; Thu, 12 May 2022 06:14:32 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C501020ECB88 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1652361272; bh=jlMqMusjenGnxUOHoBwD9TrgldrD9yW56tuq7LLplzo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=co94EHUAVLikybM29JZr3rWmMb2ZOGBZCb7wnoDMT/MByyCH4ebaMYnWVlHyAWiL8 cJv8TzRR6QCX2HhwXR9hfikYQXzFfQKTLKeg22qMc6rkFhb3NyqIthcIWxFRgAsxCW ZRmHTTVa0d7gkCyjt6ck5fUlbPRAHXpRh9rOv8rg= From: Tyler Retzlaff <roretzla@linux.microsoft.com> To: dev@dpdk.org Cc: thomas@monjalon.net, dmitry.kozliuk@gmail.com, anatoly.burakov@intel.com, Tyler Retzlaff <roretzla@linux.microsoft.com> Subject: [PATCH v6 0/3] add eal functions for thread affinity and self Date: Thu, 12 May 2022 06:14:27 -0700 Message-Id: <1652361270-27116-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1648819793-18948-1-git-send-email-roretzla@linux.microsoft.com> References: <1648819793-18948-1-git-send-email-roretzla@linux.microsoft.com> 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>, <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>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org |
Series |
add eal functions for thread affinity and self
|
|
Message
Tyler Retzlaff
May 12, 2022, 1:14 p.m. UTC
this series provides basic dependencies for additional eal thread api additions. series includes * basic platform error number conversion. * function to get current thread identifier. * functions to get and set affinity with platform agnostic thread identifier. * minimal unit test of get and set affinity demonstrating usage. note: previous series introducing these functions is now superseded by this series. http://patches.dpdk.org/project/dpdk/list/?series=20472&state=* v6: * rebase for asan flag addition to app/test/meson.build * RTE_BUILD_BUG_ON(sizeof(pthread_t) > sizeof(uintptr_t)) to raise attention if pthread_t implementation exceeds storage available from uintptr_t. note: the macro is placed in rte_thread_self() body because it not valid syntax at file scope of the translation unit. ordinarily the macro would be used in headers but that would leak the pthread_t implementation detail into the public header. v5: * use rte_log instead of log_early. it appears that logging is now initialized before the call to eal_query_group_affinity. note: removal of log_early is off-topic for this series and will be done separately. * rte_log DEBUG for failure related to limitation where all processors must be in the same processor group. * remove redundant tests. get/get/compare, set/get/compare are both retained. v4: * combine patch eal/windows: translate Windows errors to errno-style errors into eal: implement functions for get/set thread affinity patch. the former introduced static functions that were not used without eal: implement functions for get/set thread affinity which would cause a build break when applied standalone. * remove struct tag from rte_thread_t struct typedef. * remove rte_ prefix from rte_convert_cpuset_to_affinity static function. v3: * fix memory leak on eal_create_cpu_map error paths. v2: * add missing boilerplate comments warning of experimental api for rte_thread_{set,get}_affinity_by_id(). * don't break literal format string to log_early to improve searchability. * fix multi-line comment style to match file. * return ENOTSUP instead of EINVAL from rte_convert_cpuset_to_affinity() if cpus in set are not part of the same processor group and note limitation in commit message. * expand series to include rte_thread_self(). * modify unit test to remove use of implementation detail and get thread identifier use added rte_thread_self(). * move literal value to rhs when using memcmp in RTE_TEST_ASSERT Tyler Retzlaff (3): eal: add basic thread ID and current thread identifier API eal: implement functions for get/set thread affinity test/threads: add unit test for thread API app/test/meson.build | 2 + app/test/test_threads.c | 81 +++++++++++++++++ lib/eal/include/rte_thread.h | 64 +++++++++++++ lib/eal/unix/rte_thread.c | 29 ++++++ lib/eal/version.map | 5 + lib/eal/windows/eal_lcore.c | 181 +++++++++++++++++++++++++++---------- lib/eal/windows/eal_windows.h | 10 ++ lib/eal/windows/include/rte_os.h | 2 + lib/eal/windows/rte_thread.c | 191 ++++++++++++++++++++++++++++++++++++++- 9 files changed, 517 insertions(+), 48 deletions(-) create mode 100644 app/test/test_threads.c
Comments
Hello Tyler, On Thu, May 12, 2022 at 3:14 PM Tyler Retzlaff <roretzla@linux.microsoft.com> wrote: > > this series provides basic dependencies for additional eal thread api > additions. series includes > > * basic platform error number conversion. > * function to get current thread identifier. > * functions to get and set affinity with platform agnostic thread > identifier. > * minimal unit test of get and set affinity demonstrating usage. > > note: previous series introducing these functions is now superseded by > this series. > http://patches.dpdk.org/project/dpdk/list/?series=20472&state=* > > v6: > * rebase for asan flag addition to app/test/meson.build > * RTE_BUILD_BUG_ON(sizeof(pthread_t) > sizeof(uintptr_t)) to raise > attention if pthread_t implementation exceeds storage available > from uintptr_t. > note: > the macro is placed in rte_thread_self() body because it not > valid syntax at file scope of the translation unit. ordinarily > the macro would be used in headers but that would leak the > pthread_t implementation detail into the public header. There was a missing update of MAINTAINERS in patch 3 that I fixed. Series lgtm, applied, thanks. Looking at the generated documentation, rte_thread.h is not exposed, but this was already the case before the series. Could you look into it?