[dpdk-dev] [PATCH] rte_log: make rte_logs private

David Marchand david.marchand at redhat.com
Wed Sep 2 10:40:19 CEST 2020


On Fri, Aug 28, 2020 at 12:54 AM Stephen Hemminger
<stephen at networkplumber.org> wrote:
>
> As announced in earlier releases, rte_logs can now be made
> internal to eal_common_log.

I had prepared this cleanup before my PTO and was about to send it.
Just to avoid duplicate work, do you intend to work on other cleanups ?


Hiding this symbol is fine, but we must remove the experimental tag on
rte_log_get_stream since it becomes the only way to access the log
stream.

More comments below.
Thanks.


>
> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
> ---
>  doc/guides/rel_notes/deprecation.rst   |  4 ----
>  doc/guides/rel_notes/release_20_11.rst |  2 ++
>  lib/librte_eal/common/eal_common_log.c | 11 ++++++++---
>  lib/librte_eal/include/rte_log.h       | 16 ++--------------
>  lib/librte_eal/rte_eal_version.map     |  1 -
>  5 files changed, 12 insertions(+), 22 deletions(-)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index 345c38d5b630..5445a4f0a061 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -77,10 +77,6 @@ Deprecation Notices
>  * eal: The function ``rte_eal_remote_launch`` will return new error codes
>    after read or write error on the pipe, instead of calling ``rte_panic``.
>
> -* eal: The ``rte_logs`` struct and global symbol will be made private to
> -  remove it from the externally visible ABI and allow it to be updated in the
> -  future.
> -
>  * eal: The ``rte_dev_event`` structure will be made private to the EAL as no
>    public API makes use of it.
>
> diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst
> index df227a1773b8..e422ac790912 100644
> --- a/doc/guides/rel_notes/release_20_11.rst
> +++ b/doc/guides/rel_notes/release_20_11.rst
> @@ -84,6 +84,8 @@ API Changes
>     Also, make sure to start the actual text at the margin.
>     =======================================================
>
> +* eal: The ``rte_logs`` struct and global symbol was made private
> +  and is no longer part of the API.

Missing double empty line.


>
>  ABI Changes
>  -----------
> diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c
> index 8835c8fff897..a25766de181a 100644
> --- a/lib/librte_eal/common/eal_common_log.c
> +++ b/lib/librte_eal/common/eal_common_log.c
> @@ -17,11 +17,16 @@
>
>  #include "eal_private.h"
>
> -/* global log structure */
> -struct rte_logs rte_logs = {
> +/** The rte_log structure. */
> +static struct rte_logs {
> +       uint32_t type;  /**< Bitfield with enabled logs. */
> +       uint32_t level; /**< Log level. */
> +       FILE *file;     /**< Output file set by rte_openlog_stream, or NULL. */
> +       size_t dynamic_types_len;
> +       struct rte_log_dynamic_type *dynamic_types;
> +} rte_logs = {
>         .type = ~0,
>         .level = RTE_LOG_DEBUG,
> -       .file = NULL,
>  };
>
>  struct rte_eal_opt_loglevel {
> diff --git a/lib/librte_eal/include/rte_log.h b/lib/librte_eal/include/rte_log.h
> index eaf66e4f61de..655c3b39c29e 100644
> --- a/lib/librte_eal/include/rte_log.h
> +++ b/lib/librte_eal/include/rte_log.h
> @@ -29,18 +29,6 @@ extern "C" {
>
>  struct rte_log_dynamic_type;

No need for rte_log_dynamic_type forward declaration anymore if you
simply move rte_logs or this type declaration in eal_common_log.c.


>
> -/** The rte_log structure. */
> -struct rte_logs {
> -       uint32_t type;  /**< Bitfield with enabled logs. */
> -       uint32_t level; /**< Log level. */
> -       FILE *file;     /**< Output file set by rte_openlog_stream, or NULL. */
> -       size_t dynamic_types_len;
> -       struct rte_log_dynamic_type *dynamic_types;
> -};
> -
> -/** Global log information */
> -extern struct rte_logs rte_logs;
> -
>  /* SDK log type */
>  #define RTE_LOGTYPE_EAL        0 /**< Log related to eal. */
>  #define RTE_LOGTYPE_MALLOC     1 /**< Log related to malloc. */
> @@ -274,7 +262,7 @@ void rte_log_dump(FILE *f);
>   * to rte_openlog_stream().
>   *
>   * The level argument determines if the log should be displayed or
> - * not, depending on the global rte_logs variable.
> + * not, depending on the loglevel settings.
>   *
>   * The preferred alternative is the RTE_LOG() because it adds the
>   * level and type in the logged string.
> @@ -305,7 +293,7 @@ int rte_log(uint32_t level, uint32_t logtype, const char *format, ...)
>   * to rte_openlog_stream().
>   *
>   * The level argument determines if the log should be displayed or
> - * not, depending on the global rte_logs variable. A trailing
> + * not, depending on the loglevel settings. A trailing
>   * newline may be added if needed.
>   *
>   * The preferred alternative is the RTE_LOG() because it adds the
> diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map
> index 0b18e2ef85f9..6b0dfdd9667c 100644
> --- a/lib/librte_eal/rte_eal_version.map
> +++ b/lib/librte_eal/rte_eal_version.map
> @@ -114,7 +114,6 @@ DPDK_21 {
>         rte_log_set_level;
>         rte_log_set_level_pattern;
>         rte_log_set_level_regexp;
> -       rte_logs;
>         rte_malloc;
>         rte_malloc_dump_stats;
>         rte_malloc_get_socket_stats;
> --
> 2.27.0
>



-- 
David Marchand



More information about the dev mailing list