rte_log: make rte_logs private

Message ID 20200827225414.6623-1-stephen@networkplumber.org (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series rte_log: make rte_logs private |

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot warning Travis build: failed
ci/checkpatch success coding style OK

Commit Message

Stephen Hemminger Aug. 27, 2020, 10:54 p.m. UTC
  As announced in earlier releases, rte_logs can now be made
internal to eal_common_log.

Signed-off-by: Stephen Hemminger <stephen@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(-)
  

Comments

Andrew Rybchenko Aug. 29, 2020, 12:41 p.m. UTC | #1
On 8/28/20 1:54 AM, Stephen Hemminger wrote:
> As announced in earlier releases, rte_logs can now be made
> internal to eal_common_log.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
  
David Marchand Sept. 2, 2020, 8:40 a.m. UTC | #2
On Fri, Aug 28, 2020 at 12:54 AM Stephen Hemminger
<stephen@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@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
>
  
Stephen Hemminger Sept. 2, 2020, 2:49 p.m. UTC | #3
On Wed, 2 Sep 2020 10:40:19 +0200
David Marchand <david.marchand@redhat.com> wrote:

> On Fri, Aug 28, 2020 at 12:54 AM Stephen Hemminger
> <stephen@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.

No intention on doing other cleanups, just saw this while implementing
a log stream provider.

Agree, the rte_log_get_stream() can be permanent API now.
  

Patch

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.
 
 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;
 
-/** 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;