Message ID | 1670271868-11364-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 865FCA0547; Mon, 5 Dec 2022 21:24:44 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 22A2B42D20; Mon, 5 Dec 2022 21:24:35 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 34E3640395 for <dev@dpdk.org>; Mon, 5 Dec 2022 21:24:32 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 2101F20B83CB; Mon, 5 Dec 2022 12:24:31 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 2101F20B83CB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1670271871; bh=bvaBMFjzUCJePVqlBYDk7EFCCce2QtPDsoSimpxf+no=; h=From:To:Cc:Subject:Date:From; b=Ei0W7OhBNnfX/IqXceUy/Yhn6cV8GUUTHGcXcXm0HKl73INgYTVc94sTpLFjA9i/u ksOW+sIR5/VHZ35s+6lBiZwuKDcOdiHQA1UP6YDwUiIUmgt5ng1u5YYxydhCpOLL6U 4yALncvV7jy+Z2pwZYa30H3jXhKottd8Hx3SuCVA= From: Tyler Retzlaff <roretzla@linux.microsoft.com> To: dev@dpdk.org, thomas@monjalon.net, david.marchand@redhat.com, stephen@networkplumber.org, olivier.matz@6wind.com Cc: Tyler Retzlaff <roretzla@linux.microsoft.com> Subject: [PATCH 0/3] eal: rte_ctrl_thread_create API replacement Date: Mon, 5 Dec 2022 12:24:25 -0800 Message-Id: <1670271868-11364-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 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 |
eal: rte_ctrl_thread_create API replacement
|
|
Message
Tyler Retzlaff
Dec. 5, 2022, 8:24 p.m. UTC
Remove rte_ctrl_thread_create API which exposes pthread_t and provide new rte_control_thread_create API based on EALs rte_thread_t. To limit compatibility regression risk and ease of removal of the existing rte_ctrl_thread_create in the future duplicate most of the existing implementation. The duplication will be removed when rte_ctrl_thread_create is finally duplicated/removed. The unit test for rte_ctrl_thread_create has been duplicated to exercise both the old and the new API during transition, as with the API the duplicate test will be removed when the rte_ctrl_thread_create API is removed. Tyler Retzlaff (3): eal: add rte control thread create API test: add rte control thread create API test eal: deprecate pthread control thread create API app/test/test_lcores.c | 44 +++++++++++++++++ doc/guides/rel_notes/deprecation.rst | 4 ++ lib/eal/common/eal_common_thread.c | 93 ++++++++++++++++++++++++++++++++---- lib/eal/include/rte_thread.h | 29 +++++++++++ lib/eal/version.map | 3 ++ 5 files changed, 165 insertions(+), 8 deletions(-)
Comments
> From: Tyler Retzlaff [mailto:roretzla@linux.microsoft.com] > Sent: Monday, 5 December 2022 21.24 > > Remove rte_ctrl_thread_create API which exposes pthread_t and provide > new rte_control_thread_create API based on EALs rte_thread_t. > > To limit compatibility regression risk and ease of removal of the > existing rte_ctrl_thread_create in the future duplicate most of the > existing implementation. The duplication will be removed when > rte_ctrl_thread_create is finally duplicated/removed. > > The unit test for rte_ctrl_thread_create has been duplicated to > exercise > both the old and the new API during transition, as with the API the > duplicate test will be removed when the rte_ctrl_thread_create API is > removed. > > Tyler Retzlaff (3): > eal: add rte control thread create API > test: add rte control thread create API test > eal: deprecate pthread control thread create API > > app/test/test_lcores.c | 44 +++++++++++++++++ > doc/guides/rel_notes/deprecation.rst | 4 ++ > lib/eal/common/eal_common_thread.c | 93 > ++++++++++++++++++++++++++++++++---- > lib/eal/include/rte_thread.h | 29 +++++++++++ > lib/eal/version.map | 3 ++ > 5 files changed, 165 insertions(+), 8 deletions(-) > > -- > 1.8.3.1 > Series-Acked-by: Morten Brørup <mb@smartsharesystems.com>
Announce deprecation of rte_ctrl_thread_create API which is the final
remaining stable API exposing pthread_t.
Provide an equivalent replacement API rte_control_thread_create that
uses the new rte_thread_t type.
Provide a unit test for the new rte_control_thread_create API.
Add missing doxygen index for thread / rte_thread.h.
Notice!
To limit compatibility regression risk and ease removal of the
existing rte_ctrl_thread_create in the future duplicate most of the
existing implementation rather than try to have it accommodate both
public API contracts.
The duplication, the union introduced to support it along with remaining
internal pthread_xxx calls will be removed when rte_ctrl_thread_create is
finally removed.
The old unit test for rte_ctrl_thread_create is kept in place to guarantee
correct behavior while deprecated and will be removed when
rte_ctrl_thread_create is finally removed.
Series-acked-by: Morten Brørup <mb@smartsharesystems.com>
Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
v5:
* rebase series now that rte_thread_set_name has been merged,
remove now unnecessary casts.
* combine patch adding rte_control_thread_create and patch
adding unit test into patch 1.
* reword deprecation notice to indicate which release we
intend to mark rte_ctrl_thread_create deprecated and which
release we intend to remove the same.
* adjust deprecation notice commit subject based on previous
deprecation notice series feedback.
* add (mostly unrelated) patch to series to add thread / rte_thread.h
to doxygen index (an oversight missed from previous series).
v4:
* fix missing whitespace in deprecation notice text
* remove comment in rte_control_thread_create implementation
referring to sched_yield as requested by community feedback
* add missing parameter name to function pointer declaration
v3:
* use {ctrl,control}_start_routine for start_routine field names
* fix conditional evaluation style p == NULL instead of !p
* tweak documentation comment for rte_control_thread_create
- "the EAL threads are then excluded"
- note RTE_MAX_THREAD_NAME_LEN preprocessor definition
is the name size (including terminating NUL) limit
* add missing cast to uintptr_t
v2:
* correct style error void * (*foo) -> void *(*foo)
* place retval on lhs of comparison 0 != foo() -> foo() != 0
* add missing commit description on patch 3/3
* add cast uintptr_t to pthread_t where appropriate
* fix doxygen @param names to match parameter names
Tyler Retzlaff (3):
eal: add rte control thread create API
doc: add missing index entry for thread
doc: announce deprecation of thread ctrl create function
app/test/test_lcores.c | 41 +++++++++++++++++
doc/api/doxy-api-index.md | 1 +
doc/guides/rel_notes/deprecation.rst | 5 +++
lib/eal/common/eal_common_thread.c | 85 ++++++++++++++++++++++++++++++++----
lib/eal/include/rte_thread.h | 33 ++++++++++++++
lib/eal/version.map | 1 +
6 files changed, 158 insertions(+), 8 deletions(-)
top-post this is a re-submission of v5 of the series due to a mistake i made in the first submission that caused it not to be correctly submitted to patchwork. apologies for the noise. On Tue, Jan 31, 2023 at 12:30:14PM -0800, Tyler Retzlaff wrote: > Announce deprecation of rte_ctrl_thread_create API which is the final > remaining stable API exposing pthread_t. > > Provide an equivalent replacement API rte_control_thread_create that > uses the new rte_thread_t type. > > Provide a unit test for the new rte_control_thread_create API. > > Add missing doxygen index for thread / rte_thread.h. > > Notice! > > To limit compatibility regression risk and ease removal of the > existing rte_ctrl_thread_create in the future duplicate most of the > existing implementation rather than try to have it accommodate both > public API contracts. > > The duplication, the union introduced to support it along with remaining > internal pthread_xxx calls will be removed when rte_ctrl_thread_create is > finally removed. > > The old unit test for rte_ctrl_thread_create is kept in place to guarantee > correct behavior while deprecated and will be removed when > rte_ctrl_thread_create is finally removed. > > Series-acked-by: Morten Brørup <mb@smartsharesystems.com> > Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> > > v5: > * rebase series now that rte_thread_set_name has been merged, > remove now unnecessary casts. > * combine patch adding rte_control_thread_create and patch > adding unit test into patch 1. > * reword deprecation notice to indicate which release we > intend to mark rte_ctrl_thread_create deprecated and which > release we intend to remove the same. > * adjust deprecation notice commit subject based on previous > deprecation notice series feedback. > * add (mostly unrelated) patch to series to add thread / rte_thread.h > to doxygen index (an oversight missed from previous series). > > v4: > * fix missing whitespace in deprecation notice text > * remove comment in rte_control_thread_create implementation > referring to sched_yield as requested by community feedback > * add missing parameter name to function pointer declaration > > v3: > * use {ctrl,control}_start_routine for start_routine field names > * fix conditional evaluation style p == NULL instead of !p > * tweak documentation comment for rte_control_thread_create > - "the EAL threads are then excluded" > - note RTE_MAX_THREAD_NAME_LEN preprocessor definition > is the name size (including terminating NUL) limit > * add missing cast to uintptr_t > > v2: > * correct style error void * (*foo) -> void *(*foo) > * place retval on lhs of comparison 0 != foo() -> foo() != 0 > * add missing commit description on patch 3/3 > * add cast uintptr_t to pthread_t where appropriate > * fix doxygen @param names to match parameter names > > Tyler Retzlaff (3): > eal: add rte control thread create API > doc: add missing index entry for thread > doc: announce deprecation of thread ctrl create function > > app/test/test_lcores.c | 41 +++++++++++++++++ > doc/api/doxy-api-index.md | 1 + > doc/guides/rel_notes/deprecation.rst | 5 +++ > lib/eal/common/eal_common_thread.c | 85 ++++++++++++++++++++++++++++++++---- > lib/eal/include/rte_thread.h | 33 ++++++++++++++ > lib/eal/version.map | 1 + > 6 files changed, 158 insertions(+), 8 deletions(-) > > -- > 1.8.3.1