DPDK patches and discussions
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, ferruh.yigit@amd.com,
	bruce.richardson@intel.com, stephen@networkplumber.org
Subject: [RFC 0/3] Detect superfluous newline in logs
Date: Fri, 17 Nov 2023 14:18:21 +0100	[thread overview]
Message-ID: <20231117131824.1977792-1-david.marchand@redhat.com> (raw)

Getting readable and consistent logs is important when running a DPDK
application, especially when troubleshooting.
A common issue with logs is when a DPDK change do not add (or on the
contrary add too many \n) in the format string.

This issue would only get noticed when actually hitting this log (which
may be something difficult to do).

This series proposes to introduce a new RTE_LOG helper that is
responsible for logging a one line message and spews a build error (with
gcc) if any \n is part of the format string.


Note:
- the first patch is intentionnally sent as a single block: splitting it
  into per library commits with correct Fixes: tags is a tedious work.
  I would split it for a non RFC series. For now, it is enough to show
  case the idea.
- the last patch shows how an existing log macro is converted,


-- 
David Marchand

David Marchand (3):
  lib: remove redundant newline from logs
  log: add a per line log helper
  lib: use per line logging

 drivers/crypto/ipsec_mb/ipsec_mb_ops.c     |   2 +-
 lib/bbdev/rte_bbdev.c                      |   9 +-
 lib/cfgfile/rte_cfgfile.c                  |  18 ++--
 lib/compressdev/rte_compressdev_internal.h |   5 +-
 lib/compressdev/rte_compressdev_pmd.c      |   4 +-
 lib/cryptodev/rte_cryptodev.c              |   5 +-
 lib/cryptodev/rte_cryptodev.h              |  16 ++--
 lib/dispatcher/rte_dispatcher.c            |  12 +--
 lib/dmadev/rte_dmadev.c                    |   8 +-
 lib/eventdev/eventdev_pmd.h                |  14 +--
 lib/eventdev/rte_event_crypto_adapter.c    |  12 +--
 lib/eventdev/rte_event_dma_adapter.c       |  18 ++--
 lib/eventdev/rte_event_eth_rx_adapter.c    |  30 +++---
 lib/eventdev/rte_event_eth_tx_adapter.c    |   2 +-
 lib/eventdev/rte_event_timer_adapter.c     |  21 +++--
 lib/eventdev/rte_eventdev.c                |  10 +-
 lib/gpudev/gpudev.c                        |   6 +-
 lib/graph/graph_private.h                  |   5 +-
 lib/log/rte_log.h                          |  21 +++++
 lib/metrics/rte_metrics_telemetry.c        |   6 +-
 lib/mldev/rte_mldev.c                      | 102 ++++++++++-----------
 lib/mldev/rte_mldev.h                      |   5 +-
 lib/net/rte_net_crc.c                      |  14 +--
 lib/node/ethdev_rx.c                       |   4 +-
 lib/node/ip4_lookup.c                      |   2 +-
 lib/node/ip6_lookup.c                      |   2 +-
 lib/node/kernel_rx.c                       |   8 +-
 lib/node/kernel_tx.c                       |   4 +-
 lib/node/node_private.h                    |   6 +-
 lib/rawdev/rte_rawdev_pmd.h                |   4 +-
 lib/rcu/rte_rcu_qsbr.c                     |   4 +-
 lib/rcu/rte_rcu_qsbr.h                     |  17 ++--
 lib/stack/rte_stack.c                      |   8 +-
 lib/stack/stack_pvt.h                      |   4 +-
 34 files changed, 220 insertions(+), 188 deletions(-)

-- 
2.41.0


             reply	other threads:[~2023-11-17 13:18 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-17 13:18 David Marchand [this message]
2023-11-17 13:18 ` [RFC 1/3] lib: remove redundant newline from logs David Marchand
2023-11-17 13:18 ` [RFC 2/3] log: add a per line log helper David Marchand
2023-11-17 13:18 ` [RFC 3/3] lib: use per line logging David Marchand
2023-11-17 13:27 ` [RFC 0/3] Detect superfluous newline in logs Bruce Richardson
2023-11-17 13:48   ` David Marchand
2023-11-17 14:11     ` Bruce Richardson
2023-11-17 14:21       ` David Marchand
2023-11-17 13:47 ` Morten Brørup
2023-11-17 14:09   ` David Marchand
2023-11-17 14:17     ` Morten Brørup
2023-12-08 14:59 ` [RFC v2 00/14] " David Marchand
2023-12-08 14:59   ` [RFC v2 01/14] hash: remove some dead code David Marchand
2023-12-08 16:53     ` Stephen Hemminger
2023-12-08 20:46     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 02/14] regexdev: fix logtype register David Marchand
2023-12-08 16:58     ` Stephen Hemminger
2023-12-08 20:46     ` Tyler Retzlaff
2023-12-14 10:11     ` Ori Kam
2023-12-08 14:59   ` [RFC v2 03/14] lib: use dedicated logtypes David Marchand
2023-12-08 17:00     ` Stephen Hemminger
2023-12-08 20:49     ` Tyler Retzlaff
2023-12-16  9:47     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 04/14] lib: add newline in logs David Marchand
2023-12-08 17:01     ` Stephen Hemminger
2023-12-11 12:38       ` David Marchand
2023-12-08 20:50     ` Tyler Retzlaff
2023-12-16  9:43     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 05/14] lib: remove redundant newline from logs David Marchand
2023-12-08 17:02     ` Stephen Hemminger
2023-12-09  7:15     ` fengchengwen
2023-12-11  8:48     ` Mattias Rönnblom
2023-12-08 14:59   ` [RFC v2 06/14] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-08 17:03     ` Stephen Hemminger
2023-12-08 20:54     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 07/14] bpf: remove log level in internal helper David Marchand
2023-12-08 17:04     ` Stephen Hemminger
2023-12-08 21:02     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 08/14] lib: simplify multilines log messages David Marchand
2023-12-08 17:05     ` Stephen Hemminger
2023-12-16  9:26       ` Andrew Rybchenko
2023-12-08 21:03     ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 09/14] rcu: introduce a logging helper David Marchand
2023-12-08 17:08     ` Stephen Hemminger
2023-12-08 18:26     ` Honnappa Nagarahalli
2023-12-08 21:27     ` Tyler Retzlaff
2023-12-12 15:00       ` David Marchand
2023-12-12 19:11         ` Tyler Retzlaff
2023-12-18  9:37           ` David Marchand
2023-12-18 19:52             ` Tyler Retzlaff
2023-12-08 14:59   ` [RFC v2 10/14] vhost: improve log for memory dumping configuration David Marchand
2023-12-08 17:14     ` Stephen Hemminger
2023-12-08 14:59   ` [RFC v2 11/14] log: add a per line log helper David Marchand
2023-12-08 17:15     ` Stephen Hemminger
2023-12-09  7:21     ` fengchengwen
2023-12-08 14:59   ` [RFC v2 12/14] lib: convert to per line logging David Marchand
2023-12-08 17:16     ` Stephen Hemminger
2023-12-11 12:34       ` David Marchand
2023-12-16  9:30     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 13/14] lib: replace logging helpers David Marchand
2023-12-08 17:18     ` Stephen Hemminger
2023-12-11 12:36       ` David Marchand
2023-12-16  9:42     ` Andrew Rybchenko
2023-12-08 14:59   ` [RFC v2 14/14] lib: use per line logging in helpers David Marchand
2023-12-09  7:19     ` fengchengwen
2023-12-16  9:41     ` Andrew Rybchenko
2023-12-18  9:27 ` [PATCH v3 00/14] Detect superfluous newline in logs David Marchand
2023-12-18  9:27   ` [PATCH v3 01/14] hash: remove some dead code David Marchand
2023-12-18  9:27   ` [PATCH v3 02/14] regexdev: fix logtype register David Marchand
2023-12-18  9:27   ` [PATCH v3 03/14] lib: use dedicated logtypes and macros David Marchand
2023-12-18  9:27   ` [PATCH v3 04/14] lib: add newline in logs David Marchand
2023-12-18  9:27   ` [PATCH v3 05/14] lib: remove redundant newline from logs David Marchand
2023-12-18  9:27   ` [PATCH v3 06/14] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-18  9:27   ` [PATCH v3 07/14] bpf: remove log level in internal helper David Marchand
2023-12-18  9:27   ` [PATCH v3 08/14] lib: simplify multilines log messages David Marchand
2023-12-18 10:05     ` Andrew Rybchenko
2023-12-18  9:27   ` [PATCH v3 09/14] rcu: introduce a logging helper David Marchand
2023-12-18  9:27   ` [PATCH v3 10/14] vhost: improve log for memory dumping configuration David Marchand
2023-12-18  9:27   ` [PATCH v3 11/14] log: add a per line log helper David Marchand
2023-12-18  9:27   ` [PATCH v3 12/14] lib: convert to per line logging David Marchand
2023-12-18  9:27   ` [PATCH v3 13/14] lib: replace logging helpers David Marchand
2023-12-18  9:27   ` [PATCH v3 14/14] lib: use per line logging in helpers David Marchand
2023-12-18 14:37 ` [PATCH v4 00/14] Detect superfluous newline in logs David Marchand
2023-12-18 14:37   ` [PATCH v4 01/14] hash: remove some dead code David Marchand
2023-12-18 14:37   ` [PATCH v4 02/14] regexdev: fix logtype register David Marchand
2023-12-18 16:46     ` Stephen Hemminger
2023-12-18 14:37   ` [PATCH v4 03/14] lib: use dedicated logtypes and macros David Marchand
2023-12-18 14:37   ` [PATCH v4 04/14] lib: add newline in logs David Marchand
2023-12-18 14:37   ` [PATCH v4 05/14] lib: remove redundant newline from logs David Marchand
2023-12-18 14:37   ` [PATCH v4 06/14] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-18 14:37   ` [PATCH v4 07/14] bpf: remove log level in internal helper David Marchand
2023-12-18 14:37   ` [PATCH v4 08/14] lib: simplify multilines log messages David Marchand
2023-12-18 14:37   ` [PATCH v4 09/14] rcu: introduce a logging helper David Marchand
2023-12-18 14:37   ` [PATCH v4 10/14] vhost: improve log for memory dumping configuration David Marchand
2023-12-18 14:38   ` [PATCH v4 11/14] log: add a per line log helper David Marchand
2023-12-19 15:45     ` Thomas Monjalon
2023-12-19 17:16       ` Stephen Hemminger
2023-12-20  8:26         ` David Marchand
2023-12-18 14:38   ` [PATCH v4 12/14] lib: convert to per line logging David Marchand
2023-12-20 13:46     ` Thomas Monjalon
2023-12-20 14:00       ` David Marchand
2023-12-18 14:38   ` [PATCH v4 13/14] lib: replace logging helpers David Marchand
2023-12-18 14:38   ` [PATCH v4 14/14] lib: use per line logging in helpers David Marchand
2023-12-20 15:35 ` [PATCH v5 00/13] Detect superfluous newline in logs David Marchand
2023-12-20 15:35   ` [PATCH v5 01/13] hash: remove some dead code David Marchand
2023-12-21  5:58     ` Ruifeng Wang
2023-12-21  6:26     ` Ruifeng Wang
2023-12-20 15:35   ` [PATCH v5 02/13] regexdev: fix logtype register David Marchand
2023-12-20 15:35   ` [PATCH v5 03/13] lib: use dedicated logtypes and macros David Marchand
2023-12-20 15:35   ` [PATCH v5 04/13] lib: add newline in logs David Marchand
2023-12-20 15:35   ` [PATCH v5 05/13] lib: remove redundant newline from logs David Marchand
2023-12-20 15:35   ` [PATCH v5 06/13] eal/linux: remove log paraphrasing the doc David Marchand
2023-12-20 15:36   ` [PATCH v5 07/13] bpf: remove log level in internal helper David Marchand
2023-12-20 15:36   ` [PATCH v5 08/13] lib: simplify multilines log messages David Marchand
2023-12-20 15:36   ` [PATCH v5 09/13] lib: add more logging helpers David Marchand
2023-12-20 15:36   ` [PATCH v5 10/13] vhost: improve log for memory dumping configuration David Marchand
2023-12-20 15:36   ` [PATCH v5 11/13] log: add a per line log helper David Marchand
2023-12-20 15:42     ` David Marchand
2023-12-20 15:36   ` [PATCH v5 12/13] lib: replace logging helpers David Marchand
2023-12-20 15:36   ` [PATCH v5 13/13] lib: use per line logging in helpers David Marchand
2023-12-21  9:31   ` [PATCH v5 00/13] Detect superfluous newline in logs David Marchand
2023-12-21 16:32   ` Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231117131824.1977792-1-david.marchand@redhat.com \
    --to=david.marchand@redhat.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).