From patchwork Tue Mar 23 10:19:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 89677 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 098A6A0562; Tue, 23 Mar 2021 11:20:05 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E302B140D17; Tue, 23 Mar 2021 11:20:04 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mails.dpdk.org (Postfix) with ESMTP id 9CA82140D04 for ; Tue, 23 Mar 2021 11:20:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1616494801; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=CWPw8sCxC6Yj1hO/7SS47M5XEGCV1AWq4ZpIMSacwQA=; b=YIi7HFxGpGIvczF8bmbgO21Mpio3bhHDIQJOOx6jHUCNh7/neOxya81NbzBCfJdRPWfZLA 7sPcRIf4F8uLcRPraM0ZdpKcaTjHabEL0uyYPA42K/p6zBx4YMT2NopApwdgmSA5oRYSZX WXKPGeI/1nyNifOgAGwmlIovDc8Cmog= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-405--exyjwGGOpqKp12D_bVJRQ-1; Tue, 23 Mar 2021 06:19:59 -0400 X-MC-Unique: -exyjwGGOpqKp12D_bVJRQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9E6F383DD22; Tue, 23 Mar 2021 10:19:58 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.233]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9483A437F; Tue, 23 Mar 2021 10:19:57 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: arybchenko@solarflare.com, l.wojciechow@partner.samsung.com Date: Tue, 23 Mar 2021 11:19:26 +0100 Message-Id: <20210323101928.2403-2-david.marchand@redhat.com> In-Reply-To: <20210323101928.2403-1-david.marchand@redhat.com> References: <20200626114751.22523-1-david.marchand@redhat.com> <20210323101928.2403-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH 1/3] test/log: check levels X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" Add checks on log levels: - default values for rte_log_register and RTE_LOG_REGISTER, - level changes with rte_log_set_level and consorts Signed-off-by: David Marchand --- app/test/test_logs.c | 53 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/app/test/test_logs.c b/app/test/test_logs.c index 425ae03cb9..db754465c0 100644 --- a/app/test/test_logs.c +++ b/app/test/test_logs.c @@ -20,6 +20,10 @@ #define RTE_LOGTYPE_TESTAPP1 RTE_LOGTYPE_USER1 #define RTE_LOGTYPE_TESTAPP2 RTE_LOGTYPE_USER2 +static int logtype1; +static int logtype2; +RTE_LOG_REGISTER(logtype3, logtype3, ERR) + /* * Logs * ==== @@ -61,9 +65,24 @@ test_legacy_logs(void) static int test_logs(void) { - int logtype1, logtype2; int ret; +#define CHECK_LEVELS(exp_logtype1, exp_logtype2, exp_logtype3) do \ +{ \ + ret = rte_log_get_level(logtype1); \ + TEST_ASSERT_EQUAL(ret, exp_logtype1, \ + "%s:%d, invalid level for logtype1 %d, expecting %d\n", \ + __FILE__, __LINE__, ret, exp_logtype1); \ + ret = rte_log_get_level(logtype2); \ + TEST_ASSERT_EQUAL(ret, exp_logtype2, \ + "%s:%d, invalid level for logtype2 %d, expecting %d\n", \ + __FILE__, __LINE__, ret, exp_logtype2); \ + ret = rte_log_get_level(logtype3); \ + TEST_ASSERT_EQUAL(ret, exp_logtype3, \ + "%s:%d, invalid level for logtype3 %d, expecting %d\n", \ + __FILE__, __LINE__, ret, exp_logtype3); \ +} while (0) + printf("== dynamic log types\n"); logtype1 = rte_log_register("logtype1"); @@ -71,15 +90,41 @@ test_logs(void) printf("Cannot register logtype1\n"); return -1; } + ret = rte_log_get_level(logtype1); + TEST_ASSERT_EQUAL(ret, RTE_LOG_INFO, + "invalid default level for logtype1 %d, expecting %d\n", + ret, RTE_LOG_INFO); + logtype2 = rte_log_register("logtype2"); if (logtype2 < 0) { printf("Cannot register logtype2\n"); return -1; } + ret = rte_log_get_level(logtype2); + TEST_ASSERT_EQUAL(ret, RTE_LOG_INFO, + "invalid default level for logtype2 %d, expecting %d\n", + ret, RTE_LOG_INFO); + + ret = rte_log_get_level(logtype3); + TEST_ASSERT_EQUAL(ret, RTE_LOG_ERR, + "invalid default level for logtype3 %d, expecting %d\n", + ret, RTE_LOG_ERR); + + rte_log_set_level(logtype1, RTE_LOG_ERR); + CHECK_LEVELS(RTE_LOG_ERR, RTE_LOG_INFO, RTE_LOG_ERR); + + rte_log_set_level_regexp("type$", RTE_LOG_EMERG); + CHECK_LEVELS(RTE_LOG_ERR, RTE_LOG_INFO, RTE_LOG_ERR); + + rte_log_set_level_regexp("type[23]", RTE_LOG_EMERG); + CHECK_LEVELS(RTE_LOG_ERR, RTE_LOG_EMERG, RTE_LOG_EMERG); + + rte_log_set_level_pattern("logtype", RTE_LOG_DEBUG); + CHECK_LEVELS(RTE_LOG_ERR, RTE_LOG_EMERG, RTE_LOG_EMERG); /* set logtype level low to so we can test global level */ - rte_log_set_level(logtype1, RTE_LOG_DEBUG); - rte_log_set_level(logtype2, RTE_LOG_DEBUG); + rte_log_set_level_pattern("logtype*", RTE_LOG_DEBUG); + CHECK_LEVELS(RTE_LOG_DEBUG, RTE_LOG_DEBUG, RTE_LOG_DEBUG); /* log in error level */ rte_log_set_global_level(RTE_LOG_ERR); @@ -103,6 +148,8 @@ test_logs(void) if (ret < 0) return ret; +#undef CHECK_LEVELS + return 0; } From patchwork Tue Mar 23 10:19:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 89678 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7A41BA0562; Tue, 23 Mar 2021 11:20:17 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 94301140D08; Tue, 23 Mar 2021 11:20:14 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 74514140D1C for ; Tue, 23 Mar 2021 11:20:13 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1616494813; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=6DWuOrUyy1Cj7YM8SMgLF5eavLKDDw+SH2P4CmtfuC8=; b=g26/vijmWQLB3XGj2kW4ff5Abea3flTwTJCWhQTH96kBipFHVSpIgt11zFRDaUNbVKNbiV 2Wegcpx50+e89pkBqugdMftBGmqc43Qh5a98fKER02PRVIjVE8HdLvPhX2SCCzLITXGTDC jQ95wsQAeoaqLqPVOU9cSE+ahfjG28Q= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-254-939x4Lb2OrqbRU11foW8SA-1; Tue, 23 Mar 2021 06:20:09 -0400 X-MC-Unique: 939x4Lb2OrqbRU11foW8SA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 20B951084D6B; Tue, 23 Mar 2021 10:20:08 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.233]) by smtp.corp.redhat.com (Postfix) with ESMTP id 96EE960C5D; Tue, 23 Mar 2021 10:20:06 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: arybchenko@solarflare.com, l.wojciechow@partner.samsung.com, Ilya Maximets Date: Tue, 23 Mar 2021 11:19:27 +0100 Message-Id: <20210323101928.2403-3-david.marchand@redhat.com> In-Reply-To: <20210323101928.2403-1-david.marchand@redhat.com> References: <20200626114751.22523-1-david.marchand@redhat.com> <20210323101928.2403-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH 2/3] log: track log level changes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" Add a log message when changing log levels. Example: $ DPDK_TEST=logs_autotest ./build/app/test/dpdk-test --no-huge -m 512 \ --log-level=lib.eal:debug ... RTE>>logs_autotest == dynamic log types EAL: logtype1 logtype level changed from disabled to info EAL: logtype2 logtype level changed from disabled to info EAL: logtype1 logtype level changed from info to error EAL: logtype3 logtype level changed from error to emerg EAL: logtype2 logtype level changed from info to emerg EAL: logtype3 logtype level changed from emerg to debug EAL: logtype1 logtype level changed from error to debug EAL: logtype2 logtype level changed from emerg to debug error message critical message critical message error message == static log types TESTAPP1: error message TESTAPP1: critical message TESTAPP2: critical message TESTAPP1: error message Test OK Suggested-by: Ilya Maximets Signed-off-by: David Marchand Acked-by: Andrew Rybchenko Acked-by: Lukasz Wojciechowski --- lib/librte_eal/common/eal_common_log.c | 113 +++++++++++++------------ 1 file changed, 58 insertions(+), 55 deletions(-) diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c index c5554badb2..b64a1b9381 100644 --- a/lib/librte_eal/common/eal_common_log.c +++ b/lib/librte_eal/common/eal_common_log.c @@ -135,6 +135,38 @@ rte_log_can_log(uint32_t logtype, uint32_t level) return true; } +static const char * +loglevel_to_string(uint32_t level) +{ + switch (level) { + case 0: return "disabled"; + case RTE_LOG_EMERG: return "emerg"; + case RTE_LOG_ALERT: return "alert"; + case RTE_LOG_CRIT: return "critical"; + case RTE_LOG_ERR: return "error"; + case RTE_LOG_WARNING: return "warning"; + case RTE_LOG_NOTICE: return "notice"; + case RTE_LOG_INFO: return "info"; + case RTE_LOG_DEBUG: return "debug"; + default: return "unknown"; + } +} + +static void +logtype_set_level(uint32_t type, uint32_t level) +{ + uint32_t current = rte_logs.dynamic_types[type].loglevel; + + if (current != level) { + rte_logs.dynamic_types[type].loglevel = level; + RTE_LOG(DEBUG, EAL, "%s logtype level changed from %s to %s\n", + rte_logs.dynamic_types[type].name == NULL ? + "" : rte_logs.dynamic_types[type].name, + loglevel_to_string(current), + loglevel_to_string(level)); + } +} + int rte_log_set_level(uint32_t type, uint32_t level) { @@ -143,7 +175,7 @@ rte_log_set_level(uint32_t type, uint32_t level) if (level > RTE_LOG_DEBUG) return -1; - rte_logs.dynamic_types[type].loglevel = level; + logtype_set_level(type, level); return 0; } @@ -166,7 +198,7 @@ rte_log_set_level_regexp(const char *regex, uint32_t level) continue; if (regexec(&r, rte_logs.dynamic_types[i].name, 0, NULL, 0) == 0) - rte_logs.dynamic_types[i].loglevel = level; + logtype_set_level(i, level); } regfree(&r); @@ -226,7 +258,7 @@ rte_log_set_level_pattern(const char *pattern, uint32_t level) continue; if (fnmatch(pattern, rte_logs.dynamic_types[i].name, 0) == 0) - rte_logs.dynamic_types[i].loglevel = level; + logtype_set_level(i, level); } return 0; @@ -264,29 +296,11 @@ rte_log_lookup(const char *name) return -1; } -/* register an extended log type, assuming table is large enough, and id - * is not yet registered. - */ static int -__rte_log_register(const char *name, int id) -{ - char *dup_name = strdup(name); - - if (dup_name == NULL) - return -ENOMEM; - - rte_logs.dynamic_types[id].name = dup_name; - rte_logs.dynamic_types[id].loglevel = RTE_LOG_INFO; - - return id; -} - -/* register an extended log type */ -int -rte_log_register(const char *name) +__rte_log_register(const char *name, uint32_t level) { struct rte_log_dynamic_type *new_dynamic_types; - int id, ret; + int id; id = rte_log_lookup(name); if (id >= 0) @@ -299,13 +313,24 @@ rte_log_register(const char *name) return -ENOMEM; rte_logs.dynamic_types = new_dynamic_types; - ret = __rte_log_register(name, rte_logs.dynamic_types_len); - if (ret < 0) - return ret; + id = rte_logs.dynamic_types_len; + memset(&rte_logs.dynamic_types[id], 0, + sizeof(rte_logs.dynamic_types[id])); + rte_logs.dynamic_types[id].name = strdup(name); + if (rte_logs.dynamic_types[id].name == NULL) + return -ENOMEM; + logtype_set_level(id, level); rte_logs.dynamic_types_len++; - return ret; + return id; +} + +/* register an extended log type */ +int +rte_log_register(const char *name) +{ + return __rte_log_register(name, RTE_LOG_INFO); } /* Register an extended log type and try to pick its level from EAL options */ @@ -314,11 +339,6 @@ rte_log_register_type_and_pick_level(const char *name, uint32_t level_def) { struct rte_eal_opt_loglevel *opt_ll; uint32_t level = level_def; - int type; - - type = rte_log_register(name); - if (type < 0) - return type; TAILQ_FOREACH(opt_ll, &opt_loglevel_list, next) { if (opt_ll->level > RTE_LOG_DEBUG) @@ -333,9 +353,7 @@ rte_log_register_type_and_pick_level(const char *name, uint32_t level_def) } } - rte_logs.dynamic_types[type].loglevel = level; - - return type; + return __rte_log_register(name, level); } struct logtype { @@ -388,30 +406,15 @@ RTE_INIT_PRIO(rte_log_init, LOG) return; /* register legacy log types */ - for (i = 0; i < RTE_DIM(logtype_strings); i++) - __rte_log_register(logtype_strings[i].logtype, - logtype_strings[i].log_id); + for (i = 0; i < RTE_DIM(logtype_strings); i++) { + rte_logs.dynamic_types[logtype_strings[i].log_id].name = + strdup(logtype_strings[i].logtype); + logtype_set_level(logtype_strings[i].log_id, RTE_LOG_INFO); + } rte_logs.dynamic_types_len = RTE_LOGTYPE_FIRST_EXT_ID; } -static const char * -loglevel_to_string(uint32_t level) -{ - switch (level) { - case 0: return "disabled"; - case RTE_LOG_EMERG: return "emerg"; - case RTE_LOG_ALERT: return "alert"; - case RTE_LOG_CRIT: return "critical"; - case RTE_LOG_ERR: return "error"; - case RTE_LOG_WARNING: return "warning"; - case RTE_LOG_NOTICE: return "notice"; - case RTE_LOG_INFO: return "info"; - case RTE_LOG_DEBUG: return "debug"; - default: return "unknown"; - } -} - /* dump global level and registered log types */ void rte_log_dump(FILE *f) From patchwork Tue Mar 23 10:19:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 89679 X-Patchwork-Delegate: david.marchand@redhat.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 169E3A0562; Tue, 23 Mar 2021 11:20:28 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0276D140D5D; Tue, 23 Mar 2021 11:20:28 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mails.dpdk.org (Postfix) with ESMTP id 5DFE3140D1C for ; Tue, 23 Mar 2021 11:20:26 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1616494825; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=RdQUVT2BGoBHmjRaBOGkSfitzMy/W3KI4tFH5HT4jbw=; b=Rb9bZDZPh15k7/+7eGs7N6NKDkrkWSHat8MGizR1jMpsS5IFx0Nvilzs9cLxCO00CeqSzc /dG2+s3f8L2O2JPERwiSxMJyBiVgTtiKAMncwJt8eCoyWOjxixtsUS6pmEGRVJSjI+hLzP Bh5JtI5DmHPdHdbsw4nHlnTnzPvpax8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-263-fAemAps6N7W5d-cuX18osA-1; Tue, 23 Mar 2021 06:20:21 -0400 X-MC-Unique: fAemAps6N7W5d-cuX18osA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A5AF383DD21; Tue, 23 Mar 2021 10:20:19 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.193.233]) by smtp.corp.redhat.com (Postfix) with ESMTP id B0D9A60C5D; Tue, 23 Mar 2021 10:20:15 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: arybchenko@solarflare.com, l.wojciechow@partner.samsung.com, stable@dpdk.org, Bruce Richardson , Dmitry Kozlyuk , Narcisa Ana Maria Vasile , Dmitry Malloy , Pallavi Kadam , Keith Wiles , Ranjit Menon Date: Tue, 23 Mar 2021 11:19:28 +0100 Message-Id: <20210323101928.2403-4-david.marchand@redhat.com> In-Reply-To: <20210323101928.2403-1-david.marchand@redhat.com> References: <20200626114751.22523-1-david.marchand@redhat.com> <20210323101928.2403-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH 3/3] eal: fix evaluation of log level option X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" --log-level option is handled early, no need to reevaluate it later in EAL init. Before: $ echo quit | ./build/app/test/dpdk-test --no-huge -m 512 \ --log-level=lib.eal:debug \ --log-level=lib.ethdev:debug --log-level=lib.ethdev:info \ |& grep -i logtype.level EAL: lib.eal logtype level changed from info to debug EAL: lib.ethdev logtype level changed from info to debug EAL: lib.ethdev logtype level changed from debug to info EAL: lib.ethdev logtype level changed from info to debug EAL: lib.ethdev logtype level changed from debug to info After: $ echo quit | ./build/app/test/dpdk-test --no-huge -m 512 \ --log-level=lib.eal:debug \ --log-level=lib.ethdev:debug --log-level=lib.ethdev:info \ |& grep -i logtype.level EAL: lib.eal logtype level changed from info to debug EAL: lib.ethdev logtype level changed from info to debug EAL: lib.ethdev logtype level changed from debug to info Fixes: 6c7216eefd63 ("eal: fix log level of early messages") Fixes: 1c806ae5c3ac ("eal/windows: support command line options parsing") Cc: stable@dpdk.org Signed-off-by: David Marchand Acked-by: Thomas Monjalon Acked-by: Lukasz Wojciechowski Tested-by: Lukasz Wojciechowski --- lib/librte_eal/freebsd/eal.c | 4 ++++ lib/librte_eal/linux/eal.c | 4 ++++ lib/librte_eal/windows/eal.c | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/lib/librte_eal/freebsd/eal.c b/lib/librte_eal/freebsd/eal.c index 62320d610f..817961d8d6 100644 --- a/lib/librte_eal/freebsd/eal.c +++ b/lib/librte_eal/freebsd/eal.c @@ -521,6 +521,10 @@ eal_parse_args(int argc, char **argv) goto out; } + /* eal_log_level_parse() already handled this option */ + if (opt == OPT_LOG_LEVEL_NUM) + continue; + ret = eal_parse_common_option(opt, optarg, internal_conf); /* common parser is not happy */ if (ret < 0) { diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c index 9ffb4b3314..8070e0f632 100644 --- a/lib/librte_eal/linux/eal.c +++ b/lib/librte_eal/linux/eal.c @@ -704,6 +704,10 @@ eal_parse_args(int argc, char **argv) goto out; } + /* eal_log_level_parse() already handled this option */ + if (opt == OPT_LOG_LEVEL_NUM) + continue; + ret = eal_parse_common_option(opt, optarg, internal_conf); /* common parser is not happy */ if (ret < 0) { diff --git a/lib/librte_eal/windows/eal.c b/lib/librte_eal/windows/eal.c index 2fc3d6141c..e3b6a6ea61 100644 --- a/lib/librte_eal/windows/eal.c +++ b/lib/librte_eal/windows/eal.c @@ -149,6 +149,10 @@ eal_parse_args(int argc, char **argv) return -1; } + /* eal_log_level_parse() already handled this option */ + if (opt == OPT_LOG_LEVEL_NUM) + continue; + ret = eal_parse_common_option(opt, optarg, internal_conf); /* common parser is not happy */ if (ret < 0) {