From patchwork Wed Apr 3 17:16:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 52218 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D3E3D1B552; Wed, 3 Apr 2019 19:16:43 +0200 (CEST) Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) by dpdk.org (Postfix) with ESMTP id 4F33B1B4ED for ; Wed, 3 Apr 2019 19:16:23 +0200 (CEST) Received: by mail-pl1-f172.google.com with SMTP id cv12so8355862plb.9 for ; Wed, 03 Apr 2019 10:16:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1Wyg4VdHfKq4QGssJQdDeYpiRXh7Nvcr53RdAB9586o=; b=RjTYdXZBshmmzJqa0wiIJ+DrM8wSwTBqGX1/uzyp54zk1h4CV3/g1v+OslZxt9jY14 G5NhVFyq9VMWu6iFzIPR5pETrKveoGAkzWZ5za6eGiUOYi+i2klV125ZMh+ovUyMEUXL /Tpof4fE92Qbxk5X9z4/+Ml4l7dZX4Id460ahxpyD4hb31pXX0DTsoEt8a5/+DnvgTPh 3MRIt5m6MoVL+yvIRhjuRyb5bKbxJEn3olCD9TNMk3yjxFiE0k5ozseZjPk0DVdelvRd 1qVdlvvKFsPd80EhXu+nFGX7b9IeMo8/jscOs30thdMUI61FPBR6uRpDDRjPI/NtuEP4 BF8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1Wyg4VdHfKq4QGssJQdDeYpiRXh7Nvcr53RdAB9586o=; b=ToV7mqKmYj8JyOmivrnNVtvg6QUfkJ64cv/v9y+qMN9wld/pdrl9OjUuaOsKYzeJYc 3RlVK9RlVDDIlX95aoN4pjxj8cl/UFTuf112t1hNuvIQryXKEtQoXcU+53r3dcAuY4zm rpqRcDiH/CKAHmD2aHeyPer9alm+/AZFX/uV7r4YZ/L0aTQUtG71wlzZunRYmql9L3t6 XkbLgkohoGAPtsz0srnRxw7QylMf4mt0PNGVKFuOJSSAz+FuTRoL0Pd0vg60dv//U2Vh UTYthLIUs2tC0PRTMO+bo+kxZ+8dz5GDc7wWWmFvdN5pXFBFfPFImhK0yXN8N1GwOch9 lwIw== X-Gm-Message-State: APjAAAWOObkVyFJ3dyURlJWUgJGpPVyNeO6au45ut+VH705IoRS4SlU6 Hje7UDqFrWeGN977Sn+Lu4F4EOlwHDKP/A== X-Google-Smtp-Source: APXvYqxfo1teMIlQr4CFDz52PC+g6Fb/RVL/GS68nomuCJ+Tcl644cRYhn6PWKoR4naTuw4B4Cti8Q== X-Received: by 2002:a17:902:bd92:: with SMTP id q18mr1159957pls.136.1554311782179; Wed, 03 Apr 2019 10:16:22 -0700 (PDT) Received: from shemminger-XPS-13-9360.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id k14sm23041693pfb.125.2019.04.03.10.16.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Apr 2019 10:16:20 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Date: Wed, 3 Apr 2019 10:16:10 -0700 Message-Id: <20190403171610.23970-6-stephen@networkplumber.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190403171610.23970-1-stephen@networkplumber.org> References: <20190403171610.23970-1-stephen@networkplumber.org> Subject: [dpdk-dev] [RFC 5/5] eal: make lcore_config private 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" The internal structure of lcore_config should not be part of visible API/ABI. Make it private to EAL. Rearrange and resize the fields in the structure so it takes less memory (and cache footprint). Signed-off-by: Stephen Hemminger --- lib/librte_eal/common/eal_common_launch.c | 2 ++ lib/librte_eal/common/eal_private.h | 22 +++++++++++++++++++++ lib/librte_eal/common/include/rte_lcore.h | 24 ----------------------- lib/librte_eal/common/rte_service.c | 2 ++ lib/librte_eal/rte_eal_version.map | 1 - 5 files changed, 26 insertions(+), 25 deletions(-) diff --git a/lib/librte_eal/common/eal_common_launch.c b/lib/librte_eal/common/eal_common_launch.c index fe0ba3f0d617..cf52d717f68e 100644 --- a/lib/librte_eal/common/eal_common_launch.c +++ b/lib/librte_eal/common/eal_common_launch.c @@ -15,6 +15,8 @@ #include #include +#include "eal_private.h" + /* * Wait until a lcore finished its job. */ diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h index 798ede553b21..25e80547904f 100644 --- a/lib/librte_eal/common/eal_private.h +++ b/lib/librte_eal/common/eal_private.h @@ -10,6 +10,28 @@ #include #include +#include + +/** + * Structure storing internal configuration (per-lcore) + */ +struct lcore_config { + uint32_t core_id; /**< core number on socket for this lcore */ + uint32_t core_index; /**< relative index, starting from 0 */ + uint16_t socket_id; /**< physical socket id for this lcore */ + uint8_t core_role; /**< role of core eg: OFF, RTE, SERVICE */ + uint8_t detected; /**< true if lcore was detected */ + volatile enum rte_lcore_state_t state; /**< lcore state */ + rte_cpuset_t cpuset; /**< cpu set which the lcore affinity to */ + pthread_t thread_id; /**< pthread identifier */ + int pipe_master2slave[2]; /**< communication pipe with master */ + int pipe_slave2master[2]; /**< communication pipe with master */ + lcore_function_t * volatile f; /**< function to call */ + void * volatile arg; /**< argument of function */ + volatile int ret; /**< return value of function */ +}; + +extern struct lcore_config lcore_config[RTE_MAX_LCORE]; /** * Initialize the memzone subsystem (private to eal). diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h index 7477ed2d9550..0b157b3e07ce 100644 --- a/lib/librte_eal/common/include/rte_lcore.h +++ b/lib/librte_eal/common/include/rte_lcore.h @@ -37,30 +37,6 @@ typedef cpuset_t rte_cpuset_t; } while (0) #endif -/** - * Structure storing internal configuration (per-lcore) - */ -struct lcore_config { - unsigned detected; /**< true if lcore was detected */ - pthread_t thread_id; /**< pthread identifier */ - int pipe_master2slave[2]; /**< communication pipe with master */ - int pipe_slave2master[2]; /**< communication pipe with master */ - lcore_function_t * volatile f; /**< function to call */ - void * volatile arg; /**< argument of function */ - volatile int ret; /**< return value of function */ - volatile enum rte_lcore_state_t state; /**< lcore state */ - unsigned socket_id; /**< physical socket id for this lcore */ - unsigned core_id; /**< core number on socket for this lcore */ - int core_index; /**< relative index, starting from 0 */ - rte_cpuset_t cpuset; /**< cpu set which the lcore affinity to */ - uint8_t core_role; /**< role of core eg: OFF, RTE, SERVICE */ -}; - -/** - * Internal configuration (per-lcore) - */ -extern struct lcore_config lcore_config[RTE_MAX_LCORE]; - RTE_DECLARE_PER_LCORE(unsigned, _lcore_id); /**< Per thread "lcore id". */ RTE_DECLARE_PER_LCORE(rte_cpuset_t, _cpuset); /**< Per thread "cpuset". */ diff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c index 5f75e5a53fbf..8d53d966446a 100644 --- a/lib/librte_eal/common/rte_service.c +++ b/lib/librte_eal/common/rte_service.c @@ -21,6 +21,8 @@ #include #include +#include "eal_private.h" + #define RTE_SERVICE_NUM_MAX 64 #define SERVICE_F_REGISTERED (1 << 0) diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map index d6e375135ad1..291e56dabc91 100644 --- a/lib/librte_eal/rte_eal_version.map +++ b/lib/librte_eal/rte_eal_version.map @@ -4,7 +4,6 @@ DPDK_2.0 { __rte_panic; eal_parse_sysfs_value; eal_timer_source; - lcore_config; per_lcore__lcore_id; per_lcore__rte_errno; rte_calloc;