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 7B25CA329F for ; Wed, 23 Oct 2019 20:56:16 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9B25A1D410; Wed, 23 Oct 2019 20:55:20 +0200 (CEST) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) by dpdk.org (Postfix) with ESMTP id D9CF41D415 for ; Wed, 23 Oct 2019 20:55:13 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1571856913; 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=DgRbD52LTAx3TtN6GaNzKi8yEI4r4Gf48b4yPJcUamM=; b=NaOqYwjjFtW9EXVP25VVvz4vJc/pTDjtkLJS/ZxNx+CkKjVr6IBzkTHLG98xd4VGj6haFV lONzrwiZTNPnIGQRGgKmpwd5e3zNSyTQipY+cM6kf/8p/ZrzCDWd/t+gZcV/gs8Wfv/iL1 6OqK/VB9HloP/l6ESCBLjIgcC8jFL2w= 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-229-vKvIopoNOJWXr6Yh3IWdGw-1; Wed, 23 Oct 2019 14:55:10 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1BB8C1005500; Wed, 23 Oct 2019 18:55:09 +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 4CB8560872; Wed, 23 Oct 2019 18:55:07 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: stephen@networkplumber.org, anatoly.burakov@intel.com, thomas@monjalon.net Date: Wed, 23 Oct 2019 20:54:22 +0200 Message-Id: <1571856864-8779-11-git-send-email-david.marchand@redhat.com> In-Reply-To: <1571856864-8779-1-git-send-email-david.marchand@redhat.com> References: <1571736761-32134-1-git-send-email-david.marchand@redhat.com> <1571856864-8779-1-git-send-email-david.marchand@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-MC-Unique: vKvIopoNOJWXr6Yh3IWdGw-1 X-Mimecast-Spam-Score: 0 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable Subject: [dpdk-dev] [PATCH v2 10/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 --- 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 38af260..abd2cf8 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 ca9ace0..e7422d4 100644 --- a/lib/librte_eal/rte_eal_version.map +++ b/lib/librte_eal/rte_eal_version.map @@ -309,6 +309,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