From patchwork Wed Apr 22 21:45:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Wojciechowski X-Patchwork-Id: 69154 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 583D2A00C2; Wed, 22 Apr 2020 23:46:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0CAD01D166; Wed, 22 Apr 2020 23:46:19 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 12FB31C2EC for ; Wed, 22 Apr 2020 23:46:16 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200422214615euoutp01b1f265e359e0e3327b8aadeb38d0abc7~IQn2GYmQ21855618556euoutp01D for ; Wed, 22 Apr 2020 21:46:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200422214615euoutp01b1f265e359e0e3327b8aadeb38d0abc7~IQn2GYmQ21855618556euoutp01D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1587591975; bh=rSVA9K7s4KDty17e5koTI8u67FJxUQ6xYh1s7FtkPVU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=POQn8Q+fO20h5VhJC2sIixU9gkzuDYtH+wSxvmSDUuEzizM/9kzMqlMfHTmaGrTwg QL/G7kn/6bH7c0iP12ttbib+lfhj/+bWPp4OTi3bPtXs0aPxahJpe22r3dzJj2yu2o 1qibY8tvgkQQtmMRZqIGGAYdMyyPrAleD2+wL4Wg= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200422214615eucas1p1930a814fbbc65fec257817f550b56ff0~IQn1mjP9Z0073700737eucas1p1S; Wed, 22 Apr 2020 21:46:15 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id FA.4B.60679.62BB0AE5; Wed, 22 Apr 2020 22:46:14 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200422214614eucas1p1044184e60bcb04469783ef0dd95091c1~IQn06AhSZ0612206122eucas1p17; Wed, 22 Apr 2020 21:46:14 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200422214614eusmtrp145b69957ddced74fa9d7c66c299fb6af~IQn05gCWT3110331103eusmtrp1W; Wed, 22 Apr 2020 21:46:14 +0000 (GMT) X-AuditID: cbfec7f4-0e5ff7000001ed07-e7-5ea0bb264ae4 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id BD.7A.08375.62BB0AE5; Wed, 22 Apr 2020 22:46:14 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200422214613eusmtip1a4bc0398dc925a7344d6d5b1353127f9~IQn0gWoTO0760407604eusmtip1T; Wed, 22 Apr 2020 21:46:13 +0000 (GMT) From: Lukasz Wojciechowski To: Thomas Monjalon , Bruce Richardson Cc: dev@dpdk.org Date: Wed, 22 Apr 2020 23:45:53 +0200 Message-Id: <20200422214555.11837-2-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200422214555.11837-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrHIsWRmVeSWpSXmKPExsWy7djP87pquxfEGUzqNrO4scre4t2n7UwW nx6cYHFg9vi1YCmrx+I9L5k8jt2cxh7AHMVlk5Kak1mWWqRvl8CVsfDCZ+aCvWIVN+Z+YWlg vCfUxcjJISFgInHo2AOWLkYuDiGBFYwSqw4/YAVJCAl8YZTYMoUTIvGZUaJ/VzczTMe1VSsY IRLLGSWmHL7DDFe17899NpAqNgFbiSMzv4KNEhGIkti55ygTiM0sICDx+N4zsLiwgL1E+4UG FhCbRUBV4vmeRnYQm1fAVaL1VD/UNnmJ1RsOgNmcAm4Sp4+2gN0qIXCETeL/pscsEEUuEtvu b2GFsIUlXh3fwg5hy0icntwD1bCNUeLq75+MEM5+RonrvSugqqwlDv/7DXQ2B9B5mhLrd+lD hB0lrm27wwoSlhDgk7jxVhDiAT6JSdumM0OEeSU62qDhqCfxtGcqI8zaP2ufQJ3mIbHucQMb JICuMkrMbZ/NNoFRfhbCsgWMjKsYxVNLi3PTU4uN8lLL9YoTc4tL89L1kvNzNzECY/30v+Nf djDu+pN0iFGAg1GJhzdCcUGcEGtiWXFl7iFGCQ5mJRHeDQ/nxQnxpiRWVqUW5ccXleakFh9i lOZgURLnNV70MlZIID2xJDU7NbUgtQgmy8TBKdXAyH424hDviXs3V7xO3HrKyqSM5YvHCy+e BVsKzmS90Fmko3vo1uTSyakmhScDNy3zeGUVm7PaeMU7lQ0hwdPMoyMk1e5Z3Ejc8lt151n1 9ZtWJbmKT776Om/z0i7vsDWai28+TzRVvCOVsuEQJ8svM/biywXdDC0X1LsP3FdgZG+xv9k2 9+Cz40osxRmJhlrMRcWJAIZ05j3xAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrPLMWRmVeSWpSXmKPExsVy+t/xu7pquxfEGRw7yGdxY5W9xbtP25ks Pj04weLA7PFrwVJWj8V7XjJ5HLs5jT2AOUrPpii/tCRVISO/uMRWKdrQwkjP0NJCz8jEUs/Q 2DzWyshUSd/OJiU1J7MstUjfLkEvY+GFz8wFe8Uqbsz9wtLAeE+oi5GTQ0LAROLaqhWMXYxc HEICSxklpu38yNLFyAGUkJH4cEkAokZY4s+1LjaImo+MEg9/t7GCJNgEbCWOzPwKZosIREn0 7FoOZjMLCEg8vvcMzBYWsJdov9DAAmKzCKhKPN/TyA5i8wq4SrSe6meGWCAvsXrDATCbU8BN 4vTRFhaIZY2MEtcnH2WawMi3gJFhFaNIamlxbnpusaFecWJucWleul5yfu4mRmDgbTv2c/MO xksbgw8xCnAwKvHwRiguiBNiTSwrrsw9xCjBwawkwrvh4bw4Id6UxMqq1KL8+KLSnNTiQ4ym QFdNZJYSTc4HRkVeSbyhqaG5haWhubG5sZmFkjhvh8DBGCGB9MSS1OzU1ILUIpg+Jg5OqQZG 45872rbbhRb9231t1g7fW5OPant5V2ukt+7b5j3lVPrv1QxZW/fGm88yTjy0sqKrkvuOfzrH vTXPhJnimCOdzCYZ6SuwX7xxrN6R9RhnCXviLp95r1uSA799EfwvdG5+bMMLjXzl/9wJQk6x QbxfS38duSje5/4rYVY5a9bU/50Se+t/dAQpsRRnJBpqMRcVJwIAX+xmA1ICAAA= X-CMS-MailID: 20200422214614eucas1p1044184e60bcb04469783ef0dd95091c1 X-Msg-Generator: CA X-RootMTR: 20200422214614eucas1p1044184e60bcb04469783ef0dd95091c1 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200422214614eucas1p1044184e60bcb04469783ef0dd95091c1 References: <20200417215739.23180-1-l.wojciechow@partner.samsung.com> <20200422214555.11837-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH v2 1/3] config: introduce global rte debug flag X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. Suggested-by: Bruce Richardson Signed-off-by: Lukasz Wojciechowski Reviewed-by: Bruce Richardson Acked-by: Bruce Richardson Acked-by: Andrew Rybchenko --- config/meson.build | 4 ++++ lib/meson.build | 4 ++++ meson_options.txt | 2 ++ 3 files changed, 10 insertions(+) diff --git a/config/meson.build b/config/meson.build index 224d29e1c..5ab510009 100644 --- a/config/meson.build +++ b/config/meson.build @@ -183,6 +183,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/lib/meson.build b/lib/meson.build index 63c17ee75..8e0abca1e 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -88,6 +88,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 9e4923a4f..a14f0efdb 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -30,6 +30,8 @@ option('max_lcores', type: 'integer', value: 128, description: 'maximum number of cores/threads supported by EAL') option('max_numa_nodes', type: 'integer', value: 4, description: 'maximum number of NUMA nodes supported by EAL') +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,