From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 057BB1DB1 for ; Mon, 8 Jun 2015 23:56:02 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP; 08 Jun 2015 14:56:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,575,1427785200"; d="scan'208";a="707540846" Received: from alonn-mobl1.ger.corp.intel.com ([10.254.56.243]) by orsmga001.jf.intel.com with ESMTP; 08 Jun 2015 14:56:01 -0700 From: Keith Wiles To: dev@dpdk.org Date: Mon, 8 Jun 2015 16:55:52 -0500 Message-Id: <1433800552-90338-1-git-send-email-keith.wiles@intel.com> X-Mailer: git-send-email 2.3.0 In-Reply-To: <1433635446-78275-1-git-send-email-keith.wiles@intel.com> References: <1433635446-78275-1-git-send-email-keith.wiles@intel.com> Subject: [dpdk-dev] [PATCH v2] eal:Fix log messages always being printed from rte_eal_cpu_init 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: Mon, 08 Jun 2015 21:56:03 -0000 The RTE_LOG(DEBUG, ...) messages in rte_eal_cpu_init() are printed even when the log level on the command line was set to INFO or lower. The problem is the rte_eal_cpu_init() routine was called before the command line args are scanned. Setting --log-level=7 now correctly does not print the messages from the rte_eal_cpu_init() routine. Signed-off-by: Keith Wiles --- lib/librte_eal/bsdapp/eal/eal.c | 42 ++++++++++++++++++++++++++++++++++----- lib/librte_eal/linuxapp/eal/eal.c | 42 ++++++++++++++++++++++++++++++++++----- 2 files changed, 74 insertions(+), 10 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index 43e8a47..0112617 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -306,6 +306,38 @@ eal_get_hugepage_mem_size(void) return (size < SIZE_MAX) ? (size_t)(size) : SIZE_MAX; } +/* Parse the arguments for --log-level only */ +static void +eal_log_level_parse(int argc, char **argv) +{ + int opt; + char **argvopt; + int option_index; + + argvopt = argv; + + eal_reset_internal_config(&internal_config); + + while ((opt = getopt_long(argc, argvopt, eal_short_options, + eal_long_options, &option_index)) != EOF) { + + int ret; + + /* getopt is not happy, stop right now */ + if (opt == '?') + break; + + ret = (opt == OPT_LOG_LEVEL_NUM)? + eal_parse_common_option(opt, optarg, &internal_config) : 0; + + /* common parser is not happy */ + if (ret < 0) + break; + } + + optind = 0; /* reset getopt lib */ +} + /* Parse the argument given in the command line of the application */ static int eal_parse_args(int argc, char **argv) @@ -317,8 +349,6 @@ eal_parse_args(int argc, char **argv) argvopt = argv; - eal_reset_internal_config(&internal_config); - while ((opt = getopt_long(argc, argvopt, eal_short_options, eal_long_options, &option_index)) != EOF) { @@ -447,6 +477,11 @@ rte_eal_init(int argc, char **argv) if (rte_eal_log_early_init() < 0) rte_panic("Cannot init early logs\n"); + eal_log_level_parse(argc, argv); + + /* set log level as early as possible */ + rte_set_log_level(internal_config.log_level); + if (rte_eal_cpu_init() < 0) rte_panic("Cannot detect lcores\n"); @@ -454,9 +489,6 @@ rte_eal_init(int argc, char **argv) if (fctret < 0) exit(1); - /* set log level as early as possible */ - rte_set_log_level(internal_config.log_level); - if (internal_config.no_hugetlbfs == 0 && internal_config.process_type != RTE_PROC_SECONDARY && eal_hugepage_info_init() < 0) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index bd770cf..4f8d0d9 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -499,6 +499,38 @@ eal_get_hugepage_mem_size(void) return (size < SIZE_MAX) ? (size_t)(size) : SIZE_MAX; } +/* Parse the arguments for --log-level only */ +static void +eal_log_level_parse(int argc, char **argv) +{ + int opt; + char **argvopt; + int option_index; + + argvopt = argv; + + eal_reset_internal_config(&internal_config); + + while ((opt = getopt_long(argc, argvopt, eal_short_options, + eal_long_options, &option_index)) != EOF) { + + int ret; + + /* getopt is not happy, stop right now */ + if (opt == '?') + break; + + ret = (opt == OPT_LOG_LEVEL_NUM)? + eal_parse_common_option(opt, optarg, &internal_config) : 0; + + /* common parser is not happy */ + if (ret < 0) + break; + } + + optind = 0; /* reset getopt lib */ +} + /* Parse the argument given in the command line of the application */ static int eal_parse_args(int argc, char **argv) @@ -511,8 +543,6 @@ eal_parse_args(int argc, char **argv) argvopt = argv; - eal_reset_internal_config(&internal_config); - while ((opt = getopt_long(argc, argvopt, eal_short_options, eal_long_options, &option_index)) != EOF) { @@ -717,6 +747,11 @@ rte_eal_init(int argc, char **argv) if (rte_eal_log_early_init() < 0) rte_panic("Cannot init early logs\n"); + eal_log_level_parse(argc, argv); + + /* set log level as early as possible */ + rte_set_log_level(internal_config.log_level); + if (rte_eal_cpu_init() < 0) rte_panic("Cannot detect lcores\n"); @@ -724,9 +759,6 @@ rte_eal_init(int argc, char **argv) if (fctret < 0) exit(1); - /* set log level as early as possible */ - rte_set_log_level(internal_config.log_level); - if (internal_config.no_hugetlbfs == 0 && internal_config.process_type != RTE_PROC_SECONDARY && internal_config.xen_dom0_support == 0 && -- 2.3.0