From patchwork Sun Jun 7 00:04:05 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wiles, Keith" X-Patchwork-Id: 5244 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id AFB093772; Sun, 7 Jun 2015 02:04:14 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 696BB376C for ; Sun, 7 Jun 2015 02:04:12 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP; 06 Jun 2015 17:04:11 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,565,1427785200"; d="scan'208";a="722382253" Received: from alonn-mobl1.ger.corp.intel.com (HELO rkwiles-mac01.local.com) ([10.254.56.243]) by fmsmga001.fm.intel.com with ESMTP; 06 Jun 2015 17:04:10 -0700 From: Keith Wiles To: dev@dpdk.org Date: Sat, 6 Jun 2015 19:04:05 -0500 Message-Id: <1433635446-78275-1-git-send-email-keith.wiles@intel.com> X-Mailer: git-send-email 2.3.0 Subject: [dpdk-dev] [PATCH] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 | 43 ++++++++++++++++++++++++++++++++++----- lib/librte_eal/linuxapp/eal/eal.c | 43 ++++++++++++++++++++++++++++++++++----- 2 files changed, 76 insertions(+), 10 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index 43e8a47..ca10f2c 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,12 @@ 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); + + RTE_LOG(INFO, EAL, "DPDK Version %s\n", rte_version()); if (rte_eal_cpu_init() < 0) rte_panic("Cannot detect lcores\n"); @@ -454,9 +490,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..090ec99 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,12 @@ 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); + + RTE_LOG(INFO, EAL, "DPDK Version %s\n", rte_version()); if (rte_eal_cpu_init() < 0) rte_panic("Cannot detect lcores\n"); @@ -724,9 +760,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 &&