From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 69F352E8B for ; Tue, 25 Nov 2014 11:33:19 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 25 Nov 2014 02:44:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,455,1413270000"; d="scan'208";a="627901954" Received: from bricha3-mobl3.ger.corp.intel.com ([10.243.20.15]) by fmsmga001.fm.intel.com with SMTP; 25 Nov 2014 02:44:01 -0800 Received: by (sSMTP sendmail emulation); Tue, 25 Nov 2014 10:44:00 +0025 Date: Tue, 25 Nov 2014 10:44:00 +0000 From: Bruce Richardson To: Thomas Monjalon Message-ID: <20141125104400.GF5260@bricha3-MOBL3> References: <1416692622-28886-1-git-send-email-thomas.monjalon@6wind.com> <1416692622-28886-7-git-send-email-thomas.monjalon@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1416692622-28886-7-git-send-email-thomas.monjalon@6wind.com> Organization: Intel Shannon Ltd. User-Agent: Mutt/1.5.23 (2014-03-12) Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH 06/10] eal: factorize configuration adjustment X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Nov 2014 10:33:21 -0000 On Sat, Nov 22, 2014 at 10:43:38PM +0100, Thomas Monjalon wrote: > Some adjustments are done after options parsing and are common > to Linux and BSD. > > Remove process_type adjustment in rte_config_init() because > it is already done in eal_parse_args(). > eal_proc_type_detect() is kept duplicated because it open a > file descriptor which is used later in each eal.c. > > Signed-off-by: Thomas Monjalon Acked-by: Bruce Richardson > --- > lib/librte_eal/bsdapp/eal/eal.c | 18 +++++------------- > lib/librte_eal/common/eal_common_options.c | 16 ++++++++++++++++ > lib/librte_eal/common/eal_options.h | 2 ++ > lib/librte_eal/linuxapp/eal/eal.c | 18 +++++------------- > 4 files changed, 28 insertions(+), 26 deletions(-) > > diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c > index 20a9c5f..69f3c03 100644 > --- a/lib/librte_eal/bsdapp/eal/eal.c > +++ b/lib/librte_eal/bsdapp/eal/eal.c > @@ -224,7 +224,7 @@ rte_eal_config_attach(void) > } > > /* Detect if we are a primary or a secondary process */ > -static enum rte_proc_type_t > +enum rte_proc_type_t > eal_proc_type_detect(void) > { > enum rte_proc_type_t ptype = RTE_PROC_PRIMARY; > @@ -247,9 +247,7 @@ eal_proc_type_detect(void) > static void > rte_config_init(void) > { > - rte_config.process_type = (internal_config.process_type == RTE_PROC_AUTO) ? > - eal_proc_type_detect() : /* for auto, detect the type */ > - internal_config.process_type; /* otherwise use what's already set */ > + rte_config.process_type = internal_config.process_type; > > switch (rte_config.process_type){ > case RTE_PROC_PRIMARY: > @@ -313,7 +311,7 @@ eal_get_hugepage_mem_size(void) > static int > eal_parse_args(int argc, char **argv) > { > - int opt, ret, i; > + int opt, ret; > char **argvopt; > int option_index; > char *prgname = argv[0]; > @@ -360,8 +358,8 @@ eal_parse_args(int argc, char **argv) > } > } > > - if (internal_config.process_type == RTE_PROC_AUTO) > - internal_config.process_type = eal_proc_type_detect(); > + if (eal_adjust_config(&internal_config) != 0) > + return -1; > > /* sanity checks */ > if (eal_check_common_options(&internal_config) != 0) { > @@ -371,12 +369,6 @@ eal_parse_args(int argc, char **argv) > > if (optind >= 0) > argv[optind-1] = prgname; > - > - /* if no memory amounts were requested, this will result in 0 and > - * will be overriden later, right after eal_hugepage_info_init() */ > - for (i = 0; i < RTE_MAX_NUMA_NODES; i++) > - internal_config.memory += internal_config.socket_mem[i]; > - > ret = optind-1; > optind = 0; /* reset getopt lib */ > return ret; > diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c > index 630dfe0..63710b0 100644 > --- a/lib/librte_eal/common/eal_common_options.c > +++ b/lib/librte_eal/common/eal_common_options.c > @@ -400,6 +400,22 @@ eal_parse_common_option(int opt, const char *optarg, > } > > int > +eal_adjust_config(struct internal_config *internal_cfg) > +{ > + int i; > + > + if (internal_config.process_type == RTE_PROC_AUTO) > + internal_config.process_type = eal_proc_type_detect(); > + > + /* if no memory amounts were requested, this will result in 0 and > + * will be overridden later, right after eal_hugepage_info_init() */ > + for (i = 0; i < RTE_MAX_NUMA_NODES; i++) > + internal_cfg->memory += internal_cfg->socket_mem[i]; > + > + return 0; > +} > + > +int > eal_check_common_options(struct internal_config *internal_cfg) > { > struct rte_config *cfg = rte_eal_get_configuration(); > diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h > index 75351c0..f58965c 100644 > --- a/lib/librte_eal/common/eal_options.h > +++ b/lib/librte_eal/common/eal_options.h > @@ -83,7 +83,9 @@ extern const struct option eal_long_options[]; > > int eal_parse_common_option(int opt, const char *argv, > struct internal_config *conf); > +int eal_adjust_config(struct internal_config *internal_cfg); > int eal_check_common_options(struct internal_config *internal_cfg); > void eal_common_usage(void); > +enum rte_proc_type_t eal_proc_type_detect(void); > > #endif /* EAL_OPTIONS_H */ > diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c > index f5de277..5e5a7a0 100644 > --- a/lib/librte_eal/linuxapp/eal/eal.c > +++ b/lib/librte_eal/linuxapp/eal/eal.c > @@ -284,7 +284,7 @@ rte_eal_config_reattach(void) > } > > /* Detect if we are a primary or a secondary process */ > -static enum rte_proc_type_t > +enum rte_proc_type_t > eal_proc_type_detect(void) > { > enum rte_proc_type_t ptype = RTE_PROC_PRIMARY; > @@ -307,9 +307,7 @@ eal_proc_type_detect(void) > static void > rte_config_init(void) > { > - rte_config.process_type = (internal_config.process_type == RTE_PROC_AUTO) ? > - eal_proc_type_detect() : /* for auto, detect the type */ > - internal_config.process_type; /* otherwise use what's already set */ > + rte_config.process_type = internal_config.process_type; > > switch (rte_config.process_type){ > case RTE_PROC_PRIMARY: > @@ -504,7 +502,7 @@ eal_get_hugepage_mem_size(void) > static int > eal_parse_args(int argc, char **argv) > { > - int opt, ret, i; > + int opt, ret; > char **argvopt; > int option_index; > char *prgname = argv[0]; > @@ -616,8 +614,8 @@ eal_parse_args(int argc, char **argv) > } > } > > - if (internal_config.process_type == RTE_PROC_AUTO) > - internal_config.process_type = eal_proc_type_detect(); > + if (eal_adjust_config(&internal_config) != 0) > + return -1; > > /* sanity checks */ > if (eal_check_common_options(&internal_config) != 0) { > @@ -635,12 +633,6 @@ eal_parse_args(int argc, char **argv) > > if (optind >= 0) > argv[optind-1] = prgname; > - > - /* if no memory amounts were requested, this will result in 0 and > - * will be overriden later, right after eal_hugepage_info_init() */ > - for (i = 0; i < RTE_MAX_NUMA_NODES; i++) > - internal_config.memory += internal_config.socket_mem[i]; > - > ret = optind-1; > optind = 0; /* reset getopt lib */ > return ret; > -- > 2.1.3 >