From patchwork Tue Feb 7 23:04:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Hemminger X-Patchwork-Id: 123395 X-Patchwork-Delegate: thomas@monjalon.net 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 9581541C34; Wed, 8 Feb 2023 00:06:01 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4522F42D59; Wed, 8 Feb 2023 00:05:18 +0100 (CET) Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) by mails.dpdk.org (Postfix) with ESMTP id C770F42D40 for ; Wed, 8 Feb 2023 00:05:15 +0100 (CET) Received: by mail-pj1-f47.google.com with SMTP id j1so10707156pjd.0 for ; Tue, 07 Feb 2023 15:05:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eVSpNaCMpdSLcdDy2JPj4FQ20idLaspbXmJCNoYTWJU=; b=Doo8k/oxbv0q8kTMmI7hjjr0uRMSxkaF2gaEdUZj0sHnHlAAgTqzykz4xY7bCXnlQ+ C92bKbuewM6jWaDRBbRVBXU3QP/V96F4UqmhQq+u3NirX5D7L1CVkBoybTa2sH3zl5ew rlKhVzvPFjzBKVyJ45lNFxXk1UzukLKmDxFzyxk/Oiko/WlWFRfmUK1WKp3TRnpslzU8 x/4wYL/275dIam7Gg6you0kTCtXC0espwvmfBf0cUGPkYSIWJU9PEfJem4ikxfdsWmB5 pFciQSiq2R7ydc24Q6uIfx3r2fHNVN8JoS+9yLGzi6RH84NJQTThIFO7q28ykgCzsG+D X5/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eVSpNaCMpdSLcdDy2JPj4FQ20idLaspbXmJCNoYTWJU=; b=2zd8l+zUfVaekURVpzNTsOGpjNqo6sAhlfDtSl/Z4udl9HgFEQ9b6ieon07rqEpy9l 1H3Wrb9ZkHEAIGTAaRZYUMfVh0SxF4GfEdRExetriG4GzhF0UFOABCf6+cjtFIS6LJtj z3UkS6dBQeUz/xTyOsnMQCsowcaX6/8wja4v/iuiZksM6sYAeumwsn7tZKZCkDokf2Fx b3uFm81mvrMZ+4pU+rHZIOXFk4Ax+gsU/KGfq+w/zW+UCyzeDTDKdPSvzxT1wOOagcsP 7QQDqLTeB+NK6HCxEhzk5H2WpgbsPbL5rJTjffjXySObWfAx5B24LHsmDzFeTw8t7Ncp f9zQ== X-Gm-Message-State: AO0yUKULij7YLvGTbwXtetdESiPj8pdT3MFz+gLf+sI3n1jMN2PaX8/4 3sQtYwtqil57BS9ohdU6/iZfPZ01PTYLE1fFwmI= X-Google-Smtp-Source: AK7set+X0OFqGJsb0/A3+ZOFLF2n4n9VbVWgZyzBwFAdozZLWIRe3VFOPLaxbbhSE7CW1yKFyTRgTw== X-Received: by 2002:a17:90a:1c4:b0:22c:1920:27e5 with SMTP id 4-20020a17090a01c400b0022c192027e5mr417925pjd.41.1675811114616; Tue, 07 Feb 2023 15:05:14 -0800 (PST) Received: from hermes.local (204-195-120-218.wavecable.com. [204.195.120.218]) by smtp.gmail.com with ESMTPSA id gq17-20020a17090b105100b0020dc318a43esm71189pjb.25.2023.02.07.15.05.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Feb 2023 15:05:14 -0800 (PST) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger , Konstantin Ananyev Subject: [RFC v2 09/17] acl: replace LOGTYPE_ACL with dynamic type Date: Tue, 7 Feb 2023 15:04:30 -0800 Message-Id: <20230207230438.1617331-10-stephen@networkplumber.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230207230438.1617331-1-stephen@networkplumber.org> References: <20230207204151.1503491-1-stephen@networkplumber.org> <20230207230438.1617331-1-stephen@networkplumber.org> MIME-Version: 1.0 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 Get rid of RTE_LOGTYPE_ACL and RTE_LOGTYPE_MALLOC. For ACL library use a dynamic type. The one message using RTE_LOGTYPE_MALLOC should have been under the ACL logtype anyway. The test code should not have been using fixed log type so just change that to stderr. Signed-off-by: Stephen Hemminger --- app/test/test_acl.c | 3 ++- lib/acl/acl_bld.c | 35 +++++++++++++++++---------------- lib/acl/acl_gen.c | 20 ++++++++++--------- lib/acl/acl_log.h | 13 ++++++++++++ lib/acl/rte_acl.c | 14 ++++++++----- lib/acl/tb_mem.c | 8 ++++++-- lib/eal/common/eal_common_log.c | 2 -- lib/eal/include/rte_log.h | 4 ++-- 8 files changed, 61 insertions(+), 38 deletions(-) create mode 100644 lib/acl/acl_log.h diff --git a/app/test/test_acl.c b/app/test/test_acl.c index 623f34682e69..75588978a720 100644 --- a/app/test/test_acl.c +++ b/app/test/test_acl.c @@ -154,7 +154,8 @@ rte_acl_ipv4vlan_add_rules(struct rte_acl_ctx *ctx, for (i = 0; i != num; i++) { rc = acl_ipv4vlan_check_rule(rules + i); if (rc != 0) { - RTE_LOG(ERR, ACL, "%s: rule #%u is invalid\n", + fprintf(stderr, + "%s: rule #%u is invalid\n", __func__, i + 1); return rc; } diff --git a/lib/acl/acl_bld.c b/lib/acl/acl_bld.c index 2816632803bd..143564151e29 100644 --- a/lib/acl/acl_bld.c +++ b/lib/acl/acl_bld.c @@ -5,6 +5,7 @@ #include #include "tb_mem.h" #include "acl.h" +#include "acl_log.h" #define ACL_POOL_ALIGN 8 #define ACL_POOL_ALLOC_MIN 0x800000 @@ -1014,8 +1015,8 @@ build_trie(struct acl_build_context *context, struct rte_acl_build_rule *head, break; default: - RTE_LOG(ERR, ACL, - "Error in rule[%u] type - %hhu\n", + ACL_LOG(ERR, + "Error in rule[%u] type - %hhu", rule->f->data.userdata, rule->config->defs[n].type); return NULL; @@ -1371,7 +1372,7 @@ acl_build_tries(struct acl_build_context *context, last = build_one_trie(context, rule_sets, n, context->node_max); if (context->bld_tries[n].trie == NULL) { - RTE_LOG(ERR, ACL, "Build of %u-th trie failed\n", n); + ACL_LOG(ERR, "Build of %u-th trie failed", n); return -ENOMEM; } @@ -1380,8 +1381,7 @@ acl_build_tries(struct acl_build_context *context, break; if (num_tries == RTE_DIM(context->tries)) { - RTE_LOG(ERR, ACL, - "Exceeded max number of tries: %u\n", + ACL_LOG(ERR, "Exceeded max number of tries: %u", num_tries); return -ENOMEM; } @@ -1406,7 +1406,7 @@ acl_build_tries(struct acl_build_context *context, */ last = build_one_trie(context, rule_sets, n, INT32_MAX); if (context->bld_tries[n].trie == NULL || last != NULL) { - RTE_LOG(ERR, ACL, "Build of %u-th trie failed\n", n); + ACL_LOG(ERR, "Build of %u-th trie failed", n); return -ENOMEM; } @@ -1421,10 +1421,11 @@ acl_build_log(const struct acl_build_context *ctx) { uint32_t n; - RTE_LOG(DEBUG, ACL, "Build phase for ACL \"%s\":\n" + ACL_LOG(DEBUG, + "Build phase for ACL \"%s\":\n" "node limit for tree split: %u\n" "nodes created: %u\n" - "memory consumed: %zu\n", + "memory consumed: %zu", ctx->acx->name, ctx->node_max, ctx->num_nodes, @@ -1432,7 +1433,7 @@ acl_build_log(const struct acl_build_context *ctx) for (n = 0; n < RTE_DIM(ctx->tries); n++) { if (ctx->tries[n].count != 0) - RTE_LOG(DEBUG, ACL, + ACL_LOG(DEBUG, "trie %u: number of rules: %u, indexes: %u\n", n, ctx->tries[n].count, ctx->tries[n].num_data_indexes); @@ -1523,8 +1524,8 @@ acl_bld(struct acl_build_context *bcx, struct rte_acl_ctx *ctx, /* build phase runs out of memory. */ if (rc != 0) { - RTE_LOG(ERR, ACL, - "ACL context: %s, %s() failed with error code: %d\n", + ACL_LOG(ERR, + "ACL context: %s, %s() failed with error code: %d", bcx->acx->name, __func__, rc); return rc; } @@ -1565,9 +1566,9 @@ acl_check_bld_param(struct rte_acl_ctx *ctx, const struct rte_acl_config *cfg) for (i = 0; i != cfg->num_fields; i++) { if (cfg->defs[i].type > RTE_ACL_FIELD_TYPE_BITMASK) { - RTE_LOG(ERR, ACL, - "ACL context: %s, invalid type: %hhu for %u-th field\n", - ctx->name, cfg->defs[i].type, i); + ACL_LOG(ERR, + "ACL context: %s, invalid type: %hhu for %u-th field", + ctx->name, cfg->defs[i].type, i); return -EINVAL; } for (j = 0; @@ -1577,9 +1578,9 @@ acl_check_bld_param(struct rte_acl_ctx *ctx, const struct rte_acl_config *cfg) ; if (j == RTE_DIM(field_sizes)) { - RTE_LOG(ERR, ACL, - "ACL context: %s, invalid size: %hhu for %u-th field\n", - ctx->name, cfg->defs[i].size, i); + ACL_LOG(ERR, + "ACL context: %s, invalid size: %hhu for %u-th field\n", + ctx->name, cfg->defs[i].size, i); return -EINVAL; } } diff --git a/lib/acl/acl_gen.c b/lib/acl/acl_gen.c index e759a2ca1598..84369b103947 100644 --- a/lib/acl/acl_gen.c +++ b/lib/acl/acl_gen.c @@ -4,6 +4,7 @@ #include #include "acl.h" +#include "acl_log.h" #define QRANGE_MIN ((uint8_t)INT8_MIN) @@ -32,18 +33,19 @@ struct rte_acl_indices { static void acl_gen_log_stats(const struct rte_acl_ctx *ctx, - const struct acl_node_counters *counts, - const struct rte_acl_indices *indices, - size_t max_size) + const struct acl_node_counters *counts, + const struct rte_acl_indices *indices, + size_t max_size) { - RTE_LOG(DEBUG, ACL, "Gen phase for ACL \"%s\":\n" + ACL_LOG(DEBUG, + "Gen phase for ACL \"%s\":\n" "runtime memory footprint on socket %d:\n" "single nodes/bytes used: %d/%zu\n" "quad nodes/vectors/bytes used: %d/%d/%zu\n" "DFA nodes/group64/bytes used: %d/%d/%zu\n" "match nodes/bytes used: %d/%zu\n" "total: %zu bytes\n" - "max limit: %zu bytes\n", + "max limit: %zu bytes", ctx->name, ctx->socket_id, counts->single, counts->single * sizeof(uint64_t), counts->quad, counts->quad_vectors, @@ -470,9 +472,9 @@ rte_acl_gen(struct rte_acl_ctx *ctx, struct rte_acl_trie *trie, XMM_SIZE; if (total_size > max_size) { - RTE_LOG(DEBUG, ACL, + ACL_LOG(DEBUG, "Gen phase for ACL ctx \"%s\" exceeds max_size limit, " - "bytes required: %zu, allowed: %zu\n", + "bytes required: %zu, allowed: %zu", ctx->name, total_size, max_size); return -ERANGE; } @@ -480,8 +482,8 @@ rte_acl_gen(struct rte_acl_ctx *ctx, struct rte_acl_trie *trie, mem = rte_zmalloc_socket(ctx->name, total_size, RTE_CACHE_LINE_SIZE, ctx->socket_id); if (mem == NULL) { - RTE_LOG(ERR, ACL, - "allocation of %zu bytes on socket %d for %s failed\n", + ACL_LOG(ERR, + "allocation of %zu bytes on socket %d for %s failed", total_size, ctx->socket_id, ctx->name); return -ENOMEM; } diff --git a/lib/acl/acl_log.h b/lib/acl/acl_log.h new file mode 100644 index 000000000000..4d5adf965cd2 --- /dev/null +++ b/lib/acl/acl_log.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2014 Intel Corporation + */ + +#ifndef _ACL_LOG_H_ +#define _ACL_LOG_H_ + +extern int acl_logtype; +#define ACL_LOG(level, fmt, args...) \ + rte_log(RTE_LOG_ ## level, acl_logtype, \ + "%s(): " fmt "\n", __func__, ##args) + +#endif /* _ACL_LOG_H_ */ diff --git a/lib/acl/rte_acl.c b/lib/acl/rte_acl.c index a61c3ba188da..5c8a9cd2f693 100644 --- a/lib/acl/rte_acl.c +++ b/lib/acl/rte_acl.c @@ -6,8 +6,10 @@ #include #include #include +#include #include "acl.h" +#include "acl_log.h" TAILQ_HEAD(rte_acl_list, rte_tailq_entry); @@ -400,15 +402,15 @@ rte_acl_create(const struct rte_acl_param *param) te = rte_zmalloc("ACL_TAILQ_ENTRY", sizeof(*te), 0); if (te == NULL) { - RTE_LOG(ERR, ACL, "Cannot allocate tailq entry!\n"); + ACL_LOG(ERR, "Cannot allocate tailq entry!"); goto exit; } ctx = rte_zmalloc_socket(name, sz, RTE_CACHE_LINE_SIZE, param->socket_id); if (ctx == NULL) { - RTE_LOG(ERR, ACL, - "allocation of %zu bytes on socket %d for %s failed\n", + ACL_LOG(ERR, + "allocation of %zu bytes on socket %d for %s failed", sz, param->socket_id, name); rte_free(te); goto exit; @@ -474,8 +476,8 @@ rte_acl_add_rules(struct rte_acl_ctx *ctx, const struct rte_acl_rule *rules, ((uintptr_t)rules + i * ctx->rule_sz); rc = acl_check_rule(&rv->data); if (rc != 0) { - RTE_LOG(ERR, ACL, "%s(%s): rule #%u is invalid\n", - __func__, ctx->name, i + 1); + ACL_LOG(ERR, "%s: rule #%u is invalid", + ctx->name, i + 1); return rc; } } @@ -544,3 +546,5 @@ rte_acl_list_dump(void) } rte_mcfg_tailq_read_unlock(); } + +RTE_LOG_REGISTER_DEFAULT(acl_logtype, INFO); diff --git a/lib/acl/tb_mem.c b/lib/acl/tb_mem.c index f14d7b4fa26e..74a12159b868 100644 --- a/lib/acl/tb_mem.c +++ b/lib/acl/tb_mem.c @@ -3,6 +3,9 @@ */ #include "tb_mem.h" +#include "acl_log.h" + +#include /* * Memory management routines for temporary memory. @@ -25,8 +28,9 @@ tb_pool(struct tb_mem_pool *pool, size_t sz) size = sz + pool->alignment - 1; block = calloc(1, size + sizeof(*pool->block)); if (block == NULL) { - RTE_LOG(ERR, MALLOC, "%s(%zu)\n failed, currently allocated " - "by pool: %zu bytes\n", __func__, sz, pool->alloc); + ACL_LOG(ERR, + "allocation size %zu failed, currently allocated by pool: %zu bytes\n", + sz, pool->alloc); siglongjmp(pool->fail, -ENOMEM); return NULL; } diff --git a/lib/eal/common/eal_common_log.c b/lib/eal/common/eal_common_log.c index 128bfabd94e1..871f2c38298c 100644 --- a/lib/eal/common/eal_common_log.c +++ b/lib/eal/common/eal_common_log.c @@ -349,14 +349,12 @@ struct logtype { static const struct logtype logtype_strings[] = { {RTE_LOGTYPE_EAL, "lib.eal"}, - {RTE_LOGTYPE_MALLOC, "lib.malloc"}, {RTE_LOGTYPE_RING, "lib.ring"}, {RTE_LOGTYPE_MEMPOOL, "lib.mempool"}, {RTE_LOGTYPE_PMD, "pmd"}, {RTE_LOGTYPE_HASH, "lib.hash"}, {RTE_LOGTYPE_LPM, "lib.lpm"}, {RTE_LOGTYPE_KNI, "lib.kni"}, - {RTE_LOGTYPE_ACL, "lib.acl"}, {RTE_LOGTYPE_POWER, "lib.power"}, {RTE_LOGTYPE_METER, "lib.meter"}, {RTE_LOGTYPE_SCHED, "lib.sched"}, diff --git a/lib/eal/include/rte_log.h b/lib/eal/include/rte_log.h index 1f259b2abc5a..d707098b6359 100644 --- a/lib/eal/include/rte_log.h +++ b/lib/eal/include/rte_log.h @@ -27,7 +27,7 @@ extern "C" { /* SDK log type */ #define RTE_LOGTYPE_EAL 0 /**< Log related to eal. */ -#define RTE_LOGTYPE_MALLOC 1 /**< Log related to malloc. */ + /* was RTE_LOGTYPE_MALLOC */ #define RTE_LOGTYPE_RING 2 /**< Log related to ring. */ #define RTE_LOGTYPE_MEMPOOL 3 /**< Log related to mempool. */ /* was RTE_LOGTYPE_TIMER */ @@ -35,7 +35,7 @@ extern "C" { #define RTE_LOGTYPE_HASH 6 /**< Log related to hash table. */ #define RTE_LOGTYPE_LPM 7 /**< Log related to LPM. */ #define RTE_LOGTYPE_KNI 8 /**< Log related to KNI. */ -#define RTE_LOGTYPE_ACL 9 /**< Log related to ACL. */ + /* was RTE_LOGTYPE_ACL */ #define RTE_LOGTYPE_POWER 10 /**< Log related to power. */ #define RTE_LOGTYPE_METER 11 /**< Log related to QoS meter. */ #define RTE_LOGTYPE_SCHED 12 /**< Log related to QoS port scheduler. */