DPDK patches and discussions
 help / color / mirror / Atom feed
From: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
To: Thomas Monjalon <thomas@monjalon.net>,
	Nicolas Chautru <nicolas.chautru@intel.com>,
	Fiona Trahe <fiona.trahe@intel.com>,
	Ashish Gupta <ashish.gupta@marvell.com>,
	Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com
Subject: [dpdk-dev] [PATCH v3 1/4] config: introduce global rte debug flag
Date: Thu,  9 Jul 2020 15:48:20 +0200	[thread overview]
Message-ID: <20200709134823.9176-2-l.wojciechow@partner.samsung.com> (raw)
In-Reply-To: <20200709134823.9176-1-l.wojciechow@partner.samsung.com>

A new boolean meson build flag is introduced with this patch: rte_debug.
To enable this option add -Drte_debug=true to the meson configure command.

By enabling this flag the globaly defined macro RTE_DEBUG becomes
defined. It should be used for enabling debug code in all dpdk project
components. Using this flag allows to make additional checks or tests
and provide additional logs even in performance sensitive parts of code.

The flag is disabled by default.

Additionally for all enabled to be built libraries
a RTE_DEBUG_{library name} is defined and assigned a value 1.
This standardize names of library specific debug macros. Those can
be used also without rte_debug option by using CFLAGS="-D..." build
parameter.

Code put inside RTE_DEBUG* #ifdef sections should be also put inside
if (rte_log_can_log(...)) condition to allow run-time filtering of
sanity checks, validations, logs and dumps when using rte_debug option.

Libraries will be adjusted to the change in separate patches.

Similarly for all enabled to be built drivers
a RTE_DEBUG_{driver_class}_{driver_name} is defined and assigned value 1.

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>
---
 config/meson.build           | 4 ++++
 drivers/baseband/meson.build | 1 +
 drivers/bus/meson.build      | 1 +
 drivers/common/meson.build   | 1 +
 drivers/compress/meson.build | 1 +
 drivers/crypto/meson.build   | 1 +
 drivers/event/meson.build    | 1 +
 drivers/mempool/meson.build  | 1 +
 drivers/meson.build          | 3 +++
 drivers/net/meson.build      | 1 +
 drivers/raw/meson.build      | 1 +
 drivers/vdpa/meson.build     | 1 +
 lib/meson.build              | 4 ++++
 meson_options.txt            | 2 ++
 14 files changed, 23 insertions(+)

diff --git a/config/meson.build b/config/meson.build
index cff8b33dd..c65c6412a 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -179,6 +179,10 @@ endif
 # add -include rte_config to cflags
 add_project_arguments('-include', 'rte_config.h', language: 'c')
 
+if get_option('rte_debug')
+	dpdk_conf.set('RTE_DEBUG', 1)
+endif
+
 # enable extra warnings and disable any unwanted warnings
 warning_flags = [
 	# -Wall is added by meson by default, so add -Wextra only
diff --git a/drivers/baseband/meson.build b/drivers/baseband/meson.build
index 415b6724b..11ff30e5a 100644
--- a/drivers/baseband/meson.build
+++ b/drivers/baseband/meson.build
@@ -9,3 +9,4 @@ drivers = ['null', 'turbo_sw', 'fpga_lte_fec', 'fpga_5gnr_fec']
 
 config_flag_fmt = 'RTE_LIBRTE_PMD_BBDEV_@0@'
 driver_name_fmt = 'rte_pmd_bbdev_@0@'
+rte_debug_fmt = 'RTE_DEBUG_BASEBAND_@0@'
diff --git a/drivers/bus/meson.build b/drivers/bus/meson.build
index 80de2d91d..8ccbce75b 100644
--- a/drivers/bus/meson.build
+++ b/drivers/bus/meson.build
@@ -5,3 +5,4 @@ drivers = ['dpaa', 'fslmc', 'ifpga', 'pci', 'vdev', 'vmbus']
 std_deps = ['eal']
 config_flag_fmt = 'RTE_LIBRTE_@0@_BUS'
 driver_name_fmt = 'rte_bus_@0@'
+rte_debug_fmt = 'RTE_DEBUG_BUS_@0@'
diff --git a/drivers/common/meson.build b/drivers/common/meson.build
index 5db7e29b1..a72f14905 100644
--- a/drivers/common/meson.build
+++ b/drivers/common/meson.build
@@ -9,3 +9,4 @@ std_deps = ['eal']
 drivers = ['cpt', 'dpaax', 'iavf', 'mlx5', 'mvep', 'octeontx', 'octeontx2', 'qat']
 config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'
 driver_name_fmt = 'rte_common_@0@'
+rte_debug_fmt = 'RTE_DEBUG_COMMON_@0@'
diff --git a/drivers/compress/meson.build b/drivers/compress/meson.build
index ee883c3f9..b446bd988 100644
--- a/drivers/compress/meson.build
+++ b/drivers/compress/meson.build
@@ -10,3 +10,4 @@ drivers = ['isal', 'octeontx', 'qat', 'zlib']
 std_deps = ['compressdev'] # compressdev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
 driver_name_fmt = 'rte_pmd_@0@'
+rte_debug_fmt = 'RTE_DEBUG_COMPRESS_@0@'
diff --git a/drivers/crypto/meson.build b/drivers/crypto/meson.build
index a2423507a..02c2c8752 100644
--- a/drivers/crypto/meson.build
+++ b/drivers/crypto/meson.build
@@ -28,3 +28,4 @@ drivers = ['aesni_gcm',
 std_deps = ['cryptodev'] # cryptodev pulls in all other needed deps
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
 driver_name_fmt = 'rte_pmd_@0@'
+rte_debug_fmt = 'RTE_DEBUG_CRYPTO_@0@'
diff --git a/drivers/event/meson.build b/drivers/event/meson.build
index ebe76a75c..3e3c221c3 100644
--- a/drivers/event/meson.build
+++ b/drivers/event/meson.build
@@ -13,3 +13,4 @@ endif
 std_deps = ['eventdev', 'kvargs']
 config_flag_fmt = 'RTE_LIBRTE_@0@_EVENTDEV_PMD'
 driver_name_fmt = 'rte_pmd_@0@_event'
+rte_debug_fmt = 'RTE_DEBUG_EVENT_@0@'
diff --git a/drivers/mempool/meson.build b/drivers/mempool/meson.build
index c9609f145..ada93a75a 100644
--- a/drivers/mempool/meson.build
+++ b/drivers/mempool/meson.build
@@ -9,3 +9,4 @@ drivers = ['bucket', 'dpaa', 'dpaa2', 'octeontx', 'octeontx2', 'ring', 'stack']
 std_deps = ['mempool']
 config_flag_fmt = 'RTE_LIBRTE_@0@_MEMPOOL'
 driver_name_fmt = 'rte_mempool_@0@'
+rte_debug_fmt = 'RTE_DEBUG_MEMPOOL_@0@'
diff --git a/drivers/meson.build b/drivers/meson.build
index 161cfda04..975e1774b 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -99,6 +99,9 @@ foreach class:dpdk_driver_classes
 				fmt_name = name
 			endif
 			dpdk_conf.set(config_flag_fmt.format(fmt_name.to_upper()),1)
+			if get_option('rte_debug')
+				dpdk_conf.set(rte_debug_fmt.format(fmt_name.to_upper()),1)
+			endif
 			lib_name = driver_name_fmt.format(fmt_name)
 
 			dpdk_extra_ldflags += pkgconfig_extra_libs
diff --git a/drivers/net/meson.build b/drivers/net/meson.build
index d56b24051..0b4037b5f 100644
--- a/drivers/net/meson.build
+++ b/drivers/net/meson.build
@@ -60,3 +60,4 @@ std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std
 std_deps += ['bus_vdev']        # same with vdev bus
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
 driver_name_fmt = 'rte_pmd_@0@'
+rte_debug_fmt = 'RTE_DEBUG_NET_@0@'
diff --git a/drivers/raw/meson.build b/drivers/raw/meson.build
index 2c1e65ec7..703c2b8a8 100644
--- a/drivers/raw/meson.build
+++ b/drivers/raw/meson.build
@@ -13,3 +13,4 @@ drivers = ['dpaa2_cmdif', 'dpaa2_qdma',
 std_deps = ['rawdev']
 config_flag_fmt = 'RTE_LIBRTE_PMD_@0@_RAWDEV'
 driver_name_fmt = 'rte_rawdev_@0@'
+rte_debug_fmt = 'RTE_DEBUG_RAW_@0@'
diff --git a/drivers/vdpa/meson.build b/drivers/vdpa/meson.build
index 798eb3830..7e86a0c49 100644
--- a/drivers/vdpa/meson.build
+++ b/drivers/vdpa/meson.build
@@ -11,3 +11,4 @@ std_deps = ['bus_pci', 'kvargs']
 std_deps += ['vhost']
 config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'
 driver_name_fmt = 'rte_pmd_@0@'
+rte_debug_fmt = 'RTE_DEBUG_VDPA_@0@'
diff --git a/lib/meson.build b/lib/meson.build
index 3852c0156..a06099a15 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -99,6 +99,10 @@ foreach l:libraries
 		dpdk_conf.set('RTE_LIBRTE_' + name.to_upper(), 1)
 		install_headers(headers)
 
+		if get_option('rte_debug')
+			dpdk_conf.set('RTE_DEBUG_' + name.to_upper(), 1)
+		endif
+
 		libname = 'rte_' + name
 		includes += include_directories(dir_name)
 
diff --git a/meson_options.txt b/meson_options.txt
index 9bf18ab6b..fc0fedd69 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -32,6 +32,8 @@ option('max_numa_nodes', type: 'integer', value: 4,
 	description: 'maximum number of NUMA nodes supported by EAL')
 option('enable_trace_fp', type: 'boolean', value: false,
 	description: 'enable fast path trace points.')
+option('rte_debug', type: 'boolean', value: false,
+	description: 'build with additional sanity checks, validations and logs')
 option('tests', type: 'boolean', value: true,
 	description: 'build unit tests')
 option('use_hpet', type: 'boolean', value: false,
-- 
2.17.1


  parent reply	other threads:[~2020-07-09 13:48 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20200417215755eucas1p25660167c57c26ef04a82a8bb981e07b5@eucas1p2.samsung.com>
2020-04-17 21:57 ` [dpdk-dev] [PATCH v1 00/17] introduce global " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215756eucas1p107941824d555cdc91899d529d3c4ee67@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 01/17] config: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215756eucas1p13a995889338901b81bf2a59a5a4f1260@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 02/17] config: remove unused config flags Lukasz Wojciechowski
     [not found]   ` <CGME20200417215759eucas1p1c0fcc3046d87dc9de1d15572ba6b7caa@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 03/17] ethdev: replace library debug flag with global one Lukasz Wojciechowski
2020-04-20  9:04       ` Dumitrescu, Cristian
2020-04-20 13:37         ` Ananyev, Konstantin
2020-04-20 14:21           ` Bruce Richardson
2020-04-20 14:43             ` Lukasz Wojciechowski
2020-04-20 17:11               ` Bruce Richardson
2020-04-20 17:21                 ` Thomas Monjalon
2020-04-20 17:30                   ` Bruce Richardson
2020-04-20 17:34                     ` Lukasz Wojciechowski
2023-06-12 16:23                       ` Stephen Hemminger
2020-04-20 17:35                     ` Thomas Monjalon
2020-04-20 18:57                       ` Bruce Richardson
2020-04-21  0:32                         ` Ananyev, Konstantin
2020-04-21 20:58                           ` Lukasz Wojciechowski
2020-04-21 21:38                             ` Thomas Monjalon
2020-04-22 10:41                               ` Lukasz Wojciechowski
2020-04-22 10:55                                 ` Bruce Richardson
2020-04-22 11:02                                   ` Thomas Monjalon
2020-04-22 11:16                                     ` Bruce Richardson
2020-04-22 11:29                                     ` Ananyev, Konstantin
2020-04-22 12:24                                       ` Thomas Monjalon
2020-07-09 14:09                                         ` Lukasz Wojciechowski
2020-07-14 10:30                                           ` Ananyev, Konstantin
2020-04-22 11:52                                     ` Lukasz Wojciechowski
2020-04-22 12:44                                       ` Bruce Richardson
2020-04-20 17:24                 ` Bruce Richardson
     [not found]   ` <CGME20200417215800eucas1p2f3a71aaf69584fc37c9c4a47c3a2d39d@eucas1p2.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 04/17] eventdev: " Lukasz Wojciechowski
2020-04-18  9:41       ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2020-04-18  9:53         ` Thomas Monjalon
2020-04-18 10:05           ` Jerin Jacob
2020-04-18 13:22             ` Thomas Monjalon
     [not found]   ` <CGME20200417215801eucas1p28aefc04e119aa5de16a7f0771bb0e268@eucas1p2.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 05/17] fib: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215801eucas1p25e56a60eda9b741ba26e686b90ed8e28@eucas1p2.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 06/17] cmdline: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215802eucas1p27d4041768b717226b7161d0b896c3261@eucas1p2.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 07/17] hash: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215803eucas1p16013610674ce6ac58189259f2632f562@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 08/17] ip_frag: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215804eucas1p2c04d6f2141be07b25f0d346c73d4f965@eucas1p2.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 09/17] lpm: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215805eucas1p114b3286afa16d6f12916048234f3a159@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 10/17] mbuf: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215805eucas1p2530efed5c5a73df8cc5fb613b11dfdde@eucas1p2.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 11/17] mempool: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215806eucas1p1df0cf8a6cfe65dd687dde9056854bbad@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 12/17] power: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215807eucas1p14de926321e5a683224f7550ae902af5b@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 13/17] rcu: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215808eucas1p26bb784466131275eeccff018ecac83ca@eucas1p2.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 14/17] timer: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215808eucas1p1aa9a24a464a4470d27b6c770d2e8c297@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 15/17] vhost: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215809eucas1p1d826c921a9880007af4ee4282dda5d32@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 16/17] eal: " Lukasz Wojciechowski
     [not found]   ` <CGME20200417215810eucas1p17a63d33a4d49c8866733a33ce717484b@eucas1p1.samsung.com>
2020-04-17 21:57     ` [dpdk-dev] [PATCH v1 17/17] sched: " Lukasz Wojciechowski
2020-04-20  9:04       ` Dumitrescu, Cristian
     [not found]   ` <CGME20200422214613eucas1p153ed981de395ef1b800364a003da85e5@eucas1p1.samsung.com>
2020-04-22 21:45     ` [dpdk-dev] [PATCH v2 0/3] introduce global debug flag Lukasz Wojciechowski
     [not found]       ` <CGME20200422214614eucas1p1044184e60bcb04469783ef0dd95091c1@eucas1p1.samsung.com>
2020-04-22 21:45         ` [dpdk-dev] [PATCH v2 1/3] config: introduce global rte " Lukasz Wojciechowski
2020-06-26 16:56           ` Bruce Richardson
2020-06-28  8:40             ` Andrew Rybchenko
2020-07-09 13:51             ` Lukasz Wojciechowski
2020-07-09 14:09               ` Bruce Richardson
2020-07-09 14:13                 ` Lukasz Wojciechowski
     [not found]       ` <CGME20200422214614eucas1p2ad5c7a54972cf47f182f51ba3346027b@eucas1p2.samsung.com>
2020-04-22 21:45         ` [dpdk-dev] [PATCH v2 2/3] config: remove unused config flags Lukasz Wojciechowski
2020-06-26 16:56           ` Bruce Richardson
     [not found]       ` <CGME20200422214615eucas1p2a50ce20695a77b5b2888fd4521296094@eucas1p2.samsung.com>
2020-04-22 21:45         ` [dpdk-dev] [PATCH v2 3/3] mbuf: standardize library debug flag Lukasz Wojciechowski
2020-06-26 17:00           ` Bruce Richardson
2020-07-09 13:50             ` Lukasz Wojciechowski
2020-04-24  9:09       ` [dpdk-dev] [PATCH v2 0/3] introduce global " Bruce Richardson
2020-04-24 10:14         ` Lukasz Wojciechowski
     [not found]       ` <CGME20200709134846eucas1p193d963c3f21f0d5c4985024b6d015042@eucas1p1.samsung.com>
2020-07-09 13:48         ` [dpdk-dev] [PATCH v3 0/4] " Lukasz Wojciechowski
     [not found]           ` <CGME20200709134847eucas1p2698cc0b2de3751aba984d306beb9d8f1@eucas1p2.samsung.com>
2020-07-09 13:48             ` Lukasz Wojciechowski [this message]
     [not found]           ` <CGME20200709134847eucas1p2c772544e09360a0b05e95e20c36fb0b8@eucas1p2.samsung.com>
2020-07-09 13:48             ` [dpdk-dev] [PATCH v3 2/4] config: remove unused config flags Lukasz Wojciechowski
2020-07-16  7:43               ` David Marchand
2020-07-16  8:41                 ` Ruifeng Wang
     [not found]           ` <CGME20200709134848eucas1p1b78c9b2d4556ae3047d52e9d6e41b11c@eucas1p1.samsung.com>
2020-07-09 13:48             ` [dpdk-dev] [PATCH v3 3/4] mbuf: standardize library debug flag Lukasz Wojciechowski
     [not found]           ` <CGME20200709134848eucas1p27b4f137a91aa805e84f981802da2a226@eucas1p2.samsung.com>
2020-07-09 13:48             ` [dpdk-dev] [PATCH v3 4/4] app/test: add mbuf perf tests Lukasz Wojciechowski
2020-07-11 15:11           ` [dpdk-dev] [PATCH v3 0/4] introduce global debug flag Thomas Monjalon
2020-07-13  9:04             ` Bruce Richardson
2020-07-13 22:44               ` Lukasz Wojciechowski
2020-07-13 22:39             ` Lukasz Wojciechowski
2020-07-14  1:23               ` 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=20200709134823.9176-2-l.wojciechow@partner.samsung.com \
    --to=l.wojciechow@partner.samsung.com \
    --cc=ashish.gupta@marvell.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=fiona.trahe@intel.com \
    --cc=nicolas.chautru@intel.com \
    --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).