From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: [PATCH v2] eal: restrict cores detection Date: Wed, 31 Aug 2016 08:30:40 -0700 Message-ID: <20160831083040.252b4dd5@xeon-e3> References: <1453661393-85704-1-git-send-email-jianfeng.tan@intel.com> <1472612830-131693-1-git-send-email-jianfeng.tan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: dev@dpdk.org, david.marchand@6wind.com, pmatilai@redhat.com, thomas.monjalon@6wind.com To: Jianfeng Tan Return-path: Received: from mail-pa0-f50.google.com (mail-pa0-f50.google.com [209.85.220.50]) by dpdk.org (Postfix) with ESMTP id B76451DB1 for ; Wed, 31 Aug 2016 17:30:29 +0200 (CEST) Received: by mail-pa0-f50.google.com with SMTP id fu3so11894764pad.3 for ; Wed, 31 Aug 2016 08:30:29 -0700 (PDT) In-Reply-To: <1472612830-131693-1-git-send-email-jianfeng.tan@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Wed, 31 Aug 2016 03:07:10 +0000 Jianfeng Tan wrote: > This patch uses pthread_getaffinity_np() to narrow down detected > cores before parsing coremask (-c), corelist (-l), and coremap > (--lcores). > > The purpose of this patch is to leave out these core related options > when DPDK applications are deployed under container env, so that > users only specify core restriction as starting the instance. > > Note: previously, some users are using isolated CPUs, which could > be excluded by default. Please add commands like taskset to use > those cores. > > Test example: > $ taskset 0xc0000 ./examples/helloworld/build/helloworld -m 1024 > > Signed-off-by: Jianfeng Tan > Acked-by: Neil Horman > --- > v2: > - Make it as default instead of adding the new options. > lib/librte_eal/common/eal_common_lcore.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/lib/librte_eal/common/eal_common_lcore.c b/lib/librte_eal/common/eal_common_lcore.c > index 2cd4132..62e4f67 100644 > --- a/lib/librte_eal/common/eal_common_lcore.c > +++ b/lib/librte_eal/common/eal_common_lcore.c > @@ -57,6 +57,14 @@ rte_eal_cpu_init(void) > struct rte_config *config = rte_eal_get_configuration(); > unsigned lcore_id; > unsigned count = 0; > + rte_cpuset_t cs; > + pthread_t tid = pthread_self(); > + > + /* Add below method to obtain core restrictions, like ulimit, > + * cgroup.cpuset, etc. Will not use those cores, which are rebuffed. > + */ > + if (pthread_getaffinity_np(tid, sizeof(rte_cpuset_t), &cs) < 0) > + CPU_ZERO(&cs); > This patch makes sense but the comment is hard to read because of wording and grammar. If you choose variable names better then there really is no need for a comment in many cases. Code is often easier to read/write than comments for non-native English speakers. Remove the comment and rename 'cs' as 'affinity_set' or something equally as descriptive.