[PATCH] mbuf: replace RTE_LOGTYPE_MBUF with dynamic type
David Marchand
david.marchand at redhat.com
Tue Feb 7 09:34:13 CET 2023
On Mon, Feb 6, 2023 at 6:39 PM Stephen Hemminger
<stephen at networkplumber.org> wrote:
>
> Introduce a new dynamic logtype for mbuf related messages.
> Since this is used in multiple files put one macro in mbuf_log.h
>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
> lib/mbuf/mbuf_log.h | 10 ++++++++++
> lib/mbuf/rte_mbuf.c | 20 ++++++++++++--------
> lib/mbuf/rte_mbuf_dyn.c | 14 +++++++-------
> lib/mbuf/rte_mbuf_pool_ops.c | 5 +++--
> 4 files changed, 32 insertions(+), 17 deletions(-)
> create mode 100644 lib/mbuf/mbuf_log.h
>
> diff --git a/lib/mbuf/mbuf_log.h b/lib/mbuf/mbuf_log.h
> new file mode 100644
> index 000000000000..fe97f338c9b7
> --- /dev/null
> +++ b/lib/mbuf/mbuf_log.h
> @@ -0,0 +1,10 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2010-2014 Intel Corporation.
> + * Copyright 2014 6WIND S.A.
> + */
> +
> +extern int mbuf_logtype;
> +
> +#define MBUF_LOG(level, fmt, args...) \
> + rte_log(RTE_LOG_ ## level, mbuf_logtype, \
> + "%s(): " fmt "\n", __func__, ##args)
> diff --git a/lib/mbuf/rte_mbuf.c b/lib/mbuf/rte_mbuf.c
> index cfd8062f1e6a..64847afbf931 100644
> --- a/lib/mbuf/rte_mbuf.c
> +++ b/lib/mbuf/rte_mbuf.c
> @@ -20,6 +20,8 @@
> #include <rte_errno.h>
> #include <rte_memcpy.h>
>
> +#include "mbuf_log.h"
> +
> /*
> * pktmbuf pool constructor, given as a callback function to
> * rte_mempool_create(), or called directly if using
> @@ -227,8 +229,8 @@ rte_pktmbuf_pool_create_by_ops(const char *name, unsigned int n,
> int ret;
>
> if (RTE_ALIGN(priv_size, RTE_MBUF_PRIV_ALIGN) != priv_size) {
> - RTE_LOG(ERR, MBUF, "mbuf priv_size=%u is not aligned\n",
> - priv_size);
> + MBUF_LOG(ERR, "mbuf priv_size=%u is not aligned",
> + priv_size);
> rte_errno = EINVAL;
> return NULL;
> }
> @@ -247,7 +249,7 @@ rte_pktmbuf_pool_create_by_ops(const char *name, unsigned int n,
> mp_ops_name = rte_mbuf_best_mempool_ops();
> ret = rte_mempool_set_ops_byname(mp, mp_ops_name, NULL);
> if (ret != 0) {
> - RTE_LOG(ERR, MBUF, "error setting mempool handler\n");
> + MBUF_LOG(ERR, "error setting mempool handler");
> rte_mempool_free(mp);
> rte_errno = -ret;
> return NULL;
> @@ -293,7 +295,7 @@ rte_pktmbuf_pool_create_extbuf(const char *name, unsigned int n,
> int ret;
>
> if (RTE_ALIGN(priv_size, RTE_MBUF_PRIV_ALIGN) != priv_size) {
> - RTE_LOG(ERR, MBUF, "mbuf priv_size=%u is not aligned\n",
> + MBUF_LOG(ERR, "mbuf priv_size=%u is not aligned",
> priv_size);
> rte_errno = EINVAL;
> return NULL;
> @@ -303,12 +305,12 @@ rte_pktmbuf_pool_create_extbuf(const char *name, unsigned int n,
> const struct rte_pktmbuf_extmem *extm = ext_mem + i;
>
> if (!extm->elt_size || !extm->buf_len || !extm->buf_ptr) {
> - RTE_LOG(ERR, MBUF, "invalid extmem descriptor\n");
> + MBUF_LOG(ERR, "invalid extmem descriptor");
> rte_errno = EINVAL;
> return NULL;
> }
> if (data_room_size > extm->elt_size) {
> - RTE_LOG(ERR, MBUF, "ext elt_size=%u is too small\n",
> + MBUF_LOG(ERR, "ext elt_size=%u is too small",
> priv_size);
> rte_errno = EINVAL;
> return NULL;
> @@ -317,7 +319,7 @@ rte_pktmbuf_pool_create_extbuf(const char *name, unsigned int n,
> }
> /* Check whether enough external memory provided. */
> if (n_elts < n) {
> - RTE_LOG(ERR, MBUF, "not enough extmem\n");
> + MBUF_LOG(ERR, "not enough extmem");
> rte_errno = ENOMEM;
> return NULL;
> }
> @@ -338,7 +340,7 @@ rte_pktmbuf_pool_create_extbuf(const char *name, unsigned int n,
> mp_ops_name = rte_mbuf_best_mempool_ops();
> ret = rte_mempool_set_ops_byname(mp, mp_ops_name, NULL);
> if (ret != 0) {
> - RTE_LOG(ERR, MBUF, "error setting mempool handler\n");
> + MBUF_LOG(ERR, "error setting mempool handler");
> rte_mempool_free(mp);
> rte_errno = -ret;
> return NULL;
> @@ -936,3 +938,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
>
> return 0;
> }
> +
> +RTE_LOG_REGISTER(mbuf_logtype, "lib/mbuf", INFO);
?!
Why do we need a new naming convention?
Please use RTE_LOG_REGISTER_DEFAULT.
And we should invalidate/deprecate the use of RTE_LOGTYPE_MBUF + avoid
it is registered statically.
lib/eal/common/eal_common_log.c: {RTE_LOGTYPE_MBUF, "lib.mbuf"},
lib/eal/include/rte_log.h:#define RTE_LOGTYPE_MBUF 16 /**< Log
related to mbuf. */
These comments apply to the EFD patch too.
--
David Marchand
More information about the dev
mailing list