From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BD975A00C2; Thu, 3 Nov 2022 10:02:12 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3D60140694; Thu, 3 Nov 2022 10:02:12 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 43EDD40693 for ; Thu, 3 Nov 2022 10:02:10 +0100 (CET) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Subject: RE: [dpdk-dev] [PATCH v6 06/10] eal: register non-EAL threads as lcores Date: Thu, 3 Nov 2022 10:02:09 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D8747E@smartserver.smartshare.dk> In-Reply-To: <20200706205234.8040-7-david.marchand@redhat.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH v6 06/10] eal: register non-EAL threads as lcores Thread-Index: AdZT15JJTJ1qhSNvQn6m3Jkgp/8qboU3EYQg References: <20200610144506.30505-1-david.marchand@redhat.com> <20200706205234.8040-1-david.marchand@redhat.com> <20200706205234.8040-7-david.marchand@redhat.com> From: =?iso-8859-1?Q?Morten_Br=F8rup?= To: "David Marchand" , , , Cc: , , , , , , , , , "John McNamara" , "Marko Kovacevic" , "Anatoly Burakov" , "Neil Horman" , "Harini Ramakrishnan" , "Omar Cardona" , "Pallavi Kadam" , "Ranjit Menon" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of David Marchand > Sent: Monday, 6 July 2020 22.53 >=20 > DPDK allows calling some part of its API from a non-EAL thread but = this > has some limitations. > OVS (and other applications) has its own thread management but still > want to avoid such limitations by hacking RTE_PER_LCORE(_lcore_id) and > faking EAL threads potentially unknown of some DPDK component. >=20 > Introduce a new API to register non-EAL thread and associate them to a > free lcore with a new NON_EAL role. > This role denotes lcores that do not run DPDK mainloop and as such > prevents use of rte_eal_wait_lcore() and consorts. >=20 > Multiprocess is not supported as the need for cohabitation with this > new > feature is unclear at the moment. >=20 > Signed-off-by: David Marchand > Acked-by: Andrew Rybchenko > Acked-by: Thomas Monjalon > --- Following up on a two+ years old patch series, triggered by the = discussion [1] about statistics counters in the mempool library... The rte_lcore_role_t enum values are missing the RTE_ prefix, and the = meanings of the four values should be documented with comments in the = source code. Also, the documentation [2] could benefit from some elaboration about = the lcore roles. I had to read the source code in depth to understand = that each "registered non-EAL thread" has a unique lcore_id, which is = not used by any other EAL or non-EAL thread. [1]: = http://inbox.dpdk.org/dev/98CBD80474FA8B44BF855DF32C47DC35D8747D@smartser= ver.smartshare.dk/T/#u [2]: = http://doc.dpdk.org/guides/prog_guide/env_abstraction_layer.html#multiple= -pthread