From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0E11EA32A4 for ; Fri, 25 Oct 2019 15:57:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A55C51C2A3; Fri, 25 Oct 2019 15:57:11 +0200 (CEST) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by dpdk.org (Postfix) with ESMTP id 57AA91C25E for ; Fri, 25 Oct 2019 15:57:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1572011823; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KnY2Y51SevAsP+9NEJ90fDewZjRPOJvtI+2I5mhre2c=; b=OzgR1r+FHUONC3Kp3q0m7EKhslm7AX6XkCnBATopmMeY6lVv4NJdIXlO8Jubx0kLwv1xwF M4Wi5pNF/kkwBJ3Hov6gvEJhF40Tx91p5i2gkibEgEX+J+Nrkkp3wsgBI9whz4JJqYlUOX XcMa8m8CUKT/k7EiSm0Jp+7dm0HtobE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-253-84ZdfKyrOhSGYl4WLNodHg-1; Fri, 25 Oct 2019 09:57:02 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0B2201005509; Fri, 25 Oct 2019 13:57:01 +0000 (UTC) Received: from dmarchan.remote.csb (ovpn-204-129.brq.redhat.com [10.40.204.129]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1411E10013A1; Fri, 25 Oct 2019 13:56:58 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: stephen@networkplumber.org, anatoly.burakov@intel.com, thomas@monjalon.net, ktraynor@redhat.com Date: Fri, 25 Oct 2019 15:56:08 +0200 Message-Id: <1572011772-23271-10-git-send-email-david.marchand@redhat.com> In-Reply-To: <1572011772-23271-1-git-send-email-david.marchand@redhat.com> References: <1571736761-32134-1-git-send-email-david.marchand@redhat.com> <1572011772-23271-1-git-send-email-david.marchand@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-MC-Unique: 84ZdfKyrOhSGYl4WLNodHg-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Subject: [dpdk-dev] [PATCH v3 09/12] eal: deinline lcore APIs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Those functions are used to setup or take control decisions. Move them into the EAL common code and put them directly in the stable ABI. Signed-off-by: David Marchand Acked-by: Thomas Monjalon --- lib/librte_eal/common/eal_common_lcore.c | 38 +++++++++++++++++++++++++++= + lib/librte_eal/common/include/rte_lcore.h | 41 +++------------------------= ---- lib/librte_eal/rte_eal_version.map | 10 ++++++++ 3 files changed, 52 insertions(+), 37 deletions(-) diff --git a/lib/librte_eal/common/eal_common_lcore.c b/lib/librte_eal/comm= on/eal_common_lcore.c index 59a2fd1..b01a210 100644 --- a/lib/librte_eal/common/eal_common_lcore.c +++ b/lib/librte_eal/common/eal_common_lcore.c @@ -16,6 +16,16 @@ #include "eal_private.h" #include "eal_thread.h" =20 +unsigned int rte_get_master_lcore(void) +{ +=09return rte_eal_get_configuration()->master_lcore; +} + +unsigned int rte_lcore_count(void) +{ +=09return rte_eal_get_configuration()->lcore_count; +} + int rte_lcore_index(int lcore_id) { =09if (unlikely(lcore_id >=3D RTE_MAX_LCORE)) @@ -43,6 +53,34 @@ rte_cpuset_t rte_lcore_cpuset(unsigned int lcore_id) =09return lcore_config[lcore_id].cpuset; } =20 +int rte_lcore_is_enabled(unsigned int lcore_id) +{ +=09struct rte_config *cfg =3D rte_eal_get_configuration(); + +=09if (lcore_id >=3D RTE_MAX_LCORE) +=09=09return 0; +=09return cfg->lcore_role[lcore_id] =3D=3D ROLE_RTE; +} + +unsigned int rte_get_next_lcore(unsigned int i, int skip_master, int wrap) +{ +=09i++; +=09if (wrap) +=09=09i %=3D RTE_MAX_LCORE; + +=09while (i < RTE_MAX_LCORE) { +=09=09if (!rte_lcore_is_enabled(i) || +=09=09 (skip_master && (i =3D=3D rte_get_master_lcore()))) { +=09=09=09i++; +=09=09=09if (wrap) +=09=09=09=09i %=3D RTE_MAX_LCORE; +=09=09=09continue; +=09=09} +=09=09break; +=09} +=09return i; +} + unsigned int rte_lcore_to_socket_id(unsigned int lcore_id) { diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/com= mon/include/rte_lcore.h index 0c68391..ea40c25 100644 --- a/lib/librte_eal/common/include/rte_lcore.h +++ b/lib/librte_eal/common/include/rte_lcore.h @@ -93,11 +93,7 @@ rte_lcore_id(void) * @return * the id of the master lcore */ -static inline unsigned -rte_get_master_lcore(void) -{ -=09return rte_eal_get_configuration()->master_lcore; -} +unsigned int rte_get_master_lcore(void); =20 /** * Return the number of execution units (lcores) on the system. @@ -105,12 +101,7 @@ rte_get_master_lcore(void) * @return * the number of execution units (lcores) on the system. */ -static inline unsigned -rte_lcore_count(void) -{ -=09const struct rte_config *cfg =3D rte_eal_get_configuration(); -=09return cfg->lcore_count; -} +unsigned int rte_lcore_count(void); =20 /** * Return the index of the lcore starting from zero. @@ -215,14 +206,7 @@ rte_lcore_cpuset(unsigned int lcore_id); * @return * True if the given lcore is enabled; false otherwise. */ -static inline int -rte_lcore_is_enabled(unsigned int lcore_id) -{ -=09struct rte_config *cfg =3D rte_eal_get_configuration(); -=09if (lcore_id >=3D RTE_MAX_LCORE) -=09=09return 0; -=09return cfg->lcore_role[lcore_id] =3D=3D ROLE_RTE; -} +int rte_lcore_is_enabled(unsigned int lcore_id); =20 /** * Get the next enabled lcore ID. @@ -237,25 +221,8 @@ rte_lcore_is_enabled(unsigned int lcore_id) * @return * The next lcore_id or RTE_MAX_LCORE if not found. */ -static inline unsigned int -rte_get_next_lcore(unsigned int i, int skip_master, int wrap) -{ -=09i++; -=09if (wrap) -=09=09i %=3D RTE_MAX_LCORE; +unsigned int rte_get_next_lcore(unsigned int i, int skip_master, int wrap)= ; =20 -=09while (i < RTE_MAX_LCORE) { -=09=09if (!rte_lcore_is_enabled(i) || -=09=09 (skip_master && (i =3D=3D rte_get_master_lcore()))) { -=09=09=09i++; -=09=09=09if (wrap) -=09=09=09=09i %=3D RTE_MAX_LCORE; -=09=09=09continue; -=09=09} -=09=09break; -=09} -=09return i; -} /** * Macro to browse all running lcores. */ diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_ve= rsion.map index 6d7e0e4..d88649e 100644 --- a/lib/librte_eal/rte_eal_version.map +++ b/lib/librte_eal/rte_eal_version.map @@ -310,6 +310,16 @@ DPDK_19.08 { =20 } DPDK_19.05; =20 +DPDK_19.11 { +=09global: + +=09rte_get_master_lcore; +=09rte_get_next_lcore; +=09rte_lcore_count; +=09rte_lcore_is_enabled; + +} DPDK_19.08; + EXPERIMENTAL { =09global: =20 --=20 1.8.3.1