From patchwork Thu Jul 9 13:48:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Wojciechowski X-Patchwork-Id: 73647 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 CD8AEA0528; Thu, 9 Jul 2020 15:48:59 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8EF481E927; Thu, 9 Jul 2020 15:48:51 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 6E60F1E900 for ; Thu, 9 Jul 2020 15:48:48 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200709134847euoutp01d0d45999255157f736e1b0aff42f98e6~gGbPAyg8l1173611736euoutp01n for ; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200709134847euoutp01d0d45999255157f736e1b0aff42f98e6~gGbPAyg8l1173611736euoutp01n DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1594302527; bh=g1fSwYQHBAyH8yGNrkb2XK5cSpAROgnJI60WqgCWRIw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ENbwA+r4dAXfJFy7Fcnxwlg+QaHNq6Soo54DDh8+QoV5Z+hUyGY/O41mLsuxM6EEO EW7Hpxx0kRY+Ip34y+YVhas9Ft1OVFBbzHpOjQhdbxW/vo+y/FuOfD1AxXIGC19viP u5RrTelhzHlZwdNO+hX0rIplfPzOl4JXABviJAGU= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200709134847eucas1p24ce1c73a1d236021308c00160a5b3a77~gGbOuLRua2824828248eucas1p2i; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id FC.9D.05997.F30270F5; Thu, 9 Jul 2020 14:48:47 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200709134847eucas1p2698cc0b2de3751aba984d306beb9d8f1~gGbOQDdiM2967529675eucas1p2V; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200709134847eusmtrp117fc7944434155fd3950649767240e23~gGbOPYk6B1312913129eusmtrp1C; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) X-AuditID: cbfec7f4-677ff7000000176d-4d-5f07203fa149 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 4F.CE.06314.E30270F5; Thu, 9 Jul 2020 14:48:46 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200709134846eusmtip2f1a8bd5caf94a78ed0d576de91549de8~gGbNh5rPK2403024030eusmtip2z; Thu, 9 Jul 2020 13:48:46 +0000 (GMT) From: Lukasz Wojciechowski To: Thomas Monjalon , Nicolas Chautru , Fiona Trahe , Ashish Gupta , Bruce Richardson Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com Date: Thu, 9 Jul 2020 15:48:20 +0200 Message-Id: <20200709134823.9176-2-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200709134823.9176-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrDIsWRmVeSWpSXmKPExsWy7djP87r2CuzxBjMPKFi8fLiS1eLGKnuL d5+2M1m8uXKe2eJZzzpGi/4tJxgtPj04weLA7vFrwVJWj8V7XjJ5TF54kdnj2M1p7B4H3+1h CmCN4rJJSc3JLEst0rdL4MqYfngyY8FF24oFM5awNTAuMeli5OSQEDCR+NA3nbWLkYtDSGAF o8TdtkXsEM4XRokFPw4zQTifGSWeXr/JCtNyrOUbVNVyRonZUxYjVC3o+cQCUsUmYCtxZOZX sMEiAjcZJV72LGMESTALGEm87J7IDGILC9hLvNhxlh3EZhFQlVi19SqYzSvgIjHnwjeodfIS qzccAKvnFHCV2Lp9HyPIUAmBz2wS+28eZoQocpG4OP8GG4QtLPHq+BZ2CFtG4vTkHhaIhm2M Eld//4Tq3s8ocb13BVSVtcThf7+BujmAztOUWL9LHyLsKDF55UdWkLCEAJ/EjbeCEA/wSUza Np0ZIswr0dEmBFGtJ/G0ZyojzNo/a5+wQJR4SHTe9wEJCwlcYZSYfyd5AqP8LIRVCxgZVzGK p5YW56anFhvlpZbrFSfmFpfmpesl5+duYgSmidP/jn/ZwbjrT9IhRgEORiUe3oS/bPFCrIll xZW5hxglOJiVRHidzp6OE+JNSaysSi3Kjy8qzUktPsQozcGiJM5rvOhlrJBAemJJanZqakFq EUyWiYNTqoGxf98pZhXOfTunXZ+ZrT5dgmutR02HgRtT9rJNzF0hs49+dxdfcCv38Y/v+ret V84+/6d5mbVhNK/4u40HpwnVqB9uPdPR2tjwikNwelF7vdQsniub9xl/XbOokMFy5+0f2pdv LAg9u/VWu7LY9gV7VjWcP3k48u1im12zFj9Kt+xdofr3UODMHUosxRmJhlrMRcWJAAQZoSMP AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLLMWRmVeSWpSXmKPExsVy+t/xe7p2CuzxBr822li8fLiS1eLGKnuL d5+2M1m8uXKe2eJZzzpGi/4tJxgtPj04weLA7vFrwVJWj8V7XjJ5TF54kdnj2M1p7B4H3+1h CmCN0rMpyi8tSVXIyC8usVWKNrQw0jO0tNAzMrHUMzQ2j7UyMlXSt7NJSc3JLEst0rdL0MuY fngyY8FF24oFM5awNTAuMeli5OSQEDCRONbyjR3EFhJYyiix7ENqFyMHUFxG4sMlAYgSYYk/ 17rYuhi5gEo+Mkr83XUUrJ5NwFbiyMyvrCAJEYHbjBKdN68ygSSYgYbentfEBmILC9hLvNhx FqyBRUBVYtXWq2A2r4CLxJwL31ghNshLrN5wgBnE5hRwldi6fR8jxLYGRonPf/exTmDkW8DI sIpRJLW0ODc9t9hQrzgxt7g0L10vOT93EyMwaLcd+7l5B+OljcGHGAU4GJV4eHf8Z4sXYk0s K67MPcQowcGsJMLrdPZ0nBBvSmJlVWpRfnxRaU5q8SFGU6CrJjJLiSbnAyMqryTe0NTQ3MLS 0NzY3NjMQkmct0PgYIyQQHpiSWp2ampBahFMHxMHp1QDo/7V+bMvuqtrPrlvmXhuswTvH3+7 z/wHd78Ssl71e6Wmqpvkke3lgqL5Pvy5s142PH8/dXbZjrpn3bvORM3Yt8ysfOr16w27GiSl MybOLG8UPhnC9Plb0oJnQYd1e1S6ivafV7ljo+QjOtNLbEpWNc/rZtd5O3Ufyi+2XFuUUKrc /CZWaj1PuBJLcUaioRZzUXEiAHmHkvNwAgAA X-CMS-MailID: 20200709134847eucas1p2698cc0b2de3751aba984d306beb9d8f1 X-Msg-Generator: CA X-RootMTR: 20200709134847eucas1p2698cc0b2de3751aba984d306beb9d8f1 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200709134847eucas1p2698cc0b2de3751aba984d306beb9d8f1 References: <20200422214555.11837-1-l.wojciechow@partner.samsung.com> <20200709134823.9176-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH v3 1/4] 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. 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 Signed-off-by: Lukasz Wojciechowski --- 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, From patchwork Thu Jul 9 13:48:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Wojciechowski X-Patchwork-Id: 73648 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 170E3A0528; Thu, 9 Jul 2020 15:49:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CD51C1E92B; Thu, 9 Jul 2020 15:48:52 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id B00EB1E900 for ; Thu, 9 Jul 2020 15:48:48 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200709134848euoutp01653a302ff85c2bfa8bb0389b482f4c9d~gGbPTV0jV1173611736euoutp01o for ; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200709134848euoutp01653a302ff85c2bfa8bb0389b482f4c9d~gGbPTV0jV1173611736euoutp01o DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1594302528; bh=5rEMFmclgkoPjDuc2asNpeyXBNgVCJfHoBTSB0WKakg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Dr7Lbs+zmIoF5vIQHoXGsQciS7Bys/W7prOj4udWYQMY1u/EPs29QUap2dt5r0Cf7 +ZaNYLkI36dUiPsbkNfnz93i7v95MMfGR/3bI/MrrGeLiszG3TIB4sefE44qL/17lI HIel2/CHgFHDmZ8/DdOpGi/SMq1rcCGZjuYA8o7A= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200709134848eucas1p21158f73abbce17efdae4b26e2ada7443~gGbPKLH682825228252eucas1p2x; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id BD.95.06456.F30270F5; Thu, 9 Jul 2020 14:48:47 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200709134847eucas1p2c772544e09360a0b05e95e20c36fb0b8~gGbOtt0ef0110401104eucas1p2L; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200709134847eusmtrp1cb2585678252b635a5bcd667a1b1cbf2~gGbOtKsOM1329113291eusmtrp1O; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) X-AuditID: cbfec7f2-809ff70000001938-7a-5f07203fd0b4 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id DF.CE.06314.F30270F5; Thu, 9 Jul 2020 14:48:47 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200709134847eusmtip2fdedf6505f07d92cecba69bdd126266e~gGbOSMzCq2598125981eusmtip2E; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) From: Lukasz Wojciechowski To: Thomas Monjalon Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com Date: Thu, 9 Jul 2020 15:48:21 +0200 Message-Id: <20200709134823.9176-3-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200709134823.9176-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLIsWRmVeSWpSXmKPExsWy7djP87r2CuzxBvd/WVq8+7SdyeJZzzpG i08PTrA4MHv8WrCU1ePYzWnsHgff7WEKYI7isklJzcksSy3St0vgyji0Vr5gLWfFjCX3WRsY v7F3MXJySAiYSPy78ZcZxBYSWMEosXOzahcjF5D9hVGiYfpedgjnM6NE0+ePQA4HWMeOpVBF yxkl5q7sY4UrmrN1HthYNgFbiSMzv7KC2CICmhK3v89iBLGZBYwkXnZPBFsnLGAlse36cbAa FgFViaY7r8F6eQVcJCbPOcgEcZ68xOoNB8DqOQVcJbZu38cIskxC4AibxK4TnxkhilwkFk3f zwxhC0u8Or4F6jcZidOTe1ggGrYxSlz9/ROqez+jxPXeFVBV1hKH//1mA/mNGejU9bv0IcKO EpeeXmeGeJlP4sZbQYgH+CQmbZsOFeaV6GgTgqjWk3jaM5URZu2ftU9YIGwPiTmtm5khAXSF UeL8jVbWCYzysxCWLWBkXMUonlpanJueWmyYl1quV5yYW1yal66XnJ+7iREY6af/Hf+0g/Hr paRDjAIcjEo8vDv+s8ULsSaWFVfmHmKU4GBWEuF1Ons6Tog3JbGyKrUoP76oNCe1+BCjNAeL kjiv8aKXsUIC6YklqdmpqQWpRTBZJg5OqQZGsYeBe98JneTZ3OHTG+1cPsf62su1ARGzxH6d Ll1z9P7T0x8eTLlwzmGrgbuWz/OPk37+YHPfGMUq9+5B7KSJqw5fP+6xw37rr94LsQmrhQPb +ud9s/UO2PPvdO6K2PeOfHM3skdH3rlwsVbvWsg9nf3lZwqbC78s3varcsfHS0+z42dckqpZ k6nEUpyRaKjFXFScCADxEOpY8AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrHLMWRmVeSWpSXmKPExsVy+t/xe7r2CuzxBpM2KFq8+7SdyeJZzzpG i08PTrA4MHv8WrCU1ePYzWnsHgff7WEKYI7SsynKLy1JVcjILy6xVYo2tDDSM7S00DMysdQz NDaPtTIyVdK3s0lJzcksSy3St0vQyzi0Vr5gLWfFjCX3WRsYv7F3MXJwSAiYSOxYqtrFyMUh JLCUUeLf8+fMEHEZiQ+XBLoYOYFMYYk/17rYIGo+MkpcfXWGCSTBJmArcWTmV1YQW0RAU+L2 91mMIDYz0Mzb85rYQGxhASuJbdePg9WwCKhKNN15zQ5i8wq4SEyec5AJYoG8xOoNB5hBbE4B V4mt2/cxQixrYJT4/Hcf6wRGvgWMDKsYRVJLi3PTc4sN9YoTc4tL89L1kvNzNzECw27bsZ+b dzBe2hh8iFGAg1GJh3fHf7Z4IdbEsuLK3EOMEhzMSiK8TmdPxwnxpiRWVqUW5ccXleakFh9i NAW6aiKzlGhyPjAm8kriDU0NzS0sDc2NzY3NLJTEeTsEDsYICaQnlqRmp6YWpBbB9DFxcEo1 MBrzvlx4MHmel8/jIwtb/tn22t4TOCt/9vKd15In26LkPLW1k5lVJ1+Z51N/6UKJzsQXv80O 5KjtC18lxlMuuVd4uqlm58/oM2Wn5k4rZvi8j3FBwsFwnrxpzkfTHEKXnRFVsVl3em688wl5 6Wtxvi+dAvWnXE6wT50T8aR+ruSi6tjoRbq2S5RYijMSDbWYi4oTAXjC3jdRAgAA X-CMS-MailID: 20200709134847eucas1p2c772544e09360a0b05e95e20c36fb0b8 X-Msg-Generator: CA X-RootMTR: 20200709134847eucas1p2c772544e09360a0b05e95e20c36fb0b8 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200709134847eucas1p2c772544e09360a0b05e95e20c36fb0b8 References: <20200422214555.11837-1-l.wojciechow@partner.samsung.com> <20200709134823.9176-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH v3 2/4] config: remove unused config flags 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" Following flags were still present in the common_base config, but they were not used anywhere in the code: * CONFIG_RTE_LIBRTE_ACL_DEBUG * CONFIG_RTE_LIBRTE_NFP_DEBUG_TX * CONFIG_RTE_LIBRTE_NFP_DEBUG_RX * CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO_DEBUG Signed-off-by: Lukasz Wojciechowski --- config/common_base | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config/common_base b/config/common_base index cc9d034be..897100887 100644 --- a/config/common_base +++ b/config/common_base @@ -388,8 +388,6 @@ CONFIG_RTE_IBVERBS_LINK_STATIC=n # Compile burst-oriented Netronome NFP PMD driver # CONFIG_RTE_LIBRTE_NFP_PMD=n -CONFIG_RTE_LIBRTE_NFP_DEBUG_TX=n -CONFIG_RTE_LIBRTE_NFP_DEBUG_RX=n # QLogic 10G/25G/40G/50G/100G PMD # @@ -599,7 +597,6 @@ CONFIG_RTE_CRYPTO_MAX_DEVS=64 # Compile PMD for ARMv8 Crypto device # CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO=n -CONFIG_RTE_LIBRTE_PMD_ARMV8_CRYPTO_DEBUG=n # # Compile NXP CAAM JR crypto Driver @@ -967,7 +964,6 @@ CONFIG_RTE_LIBRTE_LPM_DEBUG=n # Compile librte_acl # CONFIG_RTE_LIBRTE_ACL=y -CONFIG_RTE_LIBRTE_ACL_DEBUG=n # # Compile librte_power From patchwork Thu Jul 9 13:48:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Wojciechowski X-Patchwork-Id: 73649 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 7FEC9A0528; Thu, 9 Jul 2020 15:49:18 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 076071E934; Thu, 9 Jul 2020 15:48:54 +0200 (CEST) Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id 2AF9E1E918 for ; Thu, 9 Jul 2020 15:48:49 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20200709134848euoutp01efe1bb89aea2b80fe6bc98606829fd01~gGbP-DAT-1242712427euoutp01K for ; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20200709134848euoutp01efe1bb89aea2b80fe6bc98606829fd01~gGbP-DAT-1242712427euoutp01K DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1594302528; bh=nvWmHR/6HrU12HNzSl3vJCP8XCRUUjVBIxeP85Lho/k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m+Y4RN/da5n630pMBv6bOF9T8NXFC4pHDatFJLeA4X5gjo4AkrdttlSTGFCnk4BJd TXHQAIQDkIAvKv/f+XGIjKzzpYqT7VpWZOy7M0BoSrj4x16OvwAo6/tChEosM/xT3E T3llnPCddSCRUvDpXlaqFqWIy4NK58k6I7O+PrOg= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200709134848eucas1p17b3719913cbc495c9e5f8baa21b5be9a~gGbPvuwMK0638806388eucas1p1U; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id CD.9D.05997.040270F5; Thu, 9 Jul 2020 14:48:48 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200709134848eucas1p1b78c9b2d4556ae3047d52e9d6e41b11c~gGbPdw8vp1071310713eucas1p1J; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200709134848eusmtrp19f6e2a09955ae0a304a98045233ed7d6~gGbPc-4Cw1329113291eusmtrp1Q; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) X-AuditID: cbfec7f4-677ff7000000176d-4f-5f072040983e Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 60.DE.06314.040270F5; Thu, 9 Jul 2020 14:48:48 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200709134847eusmtip2d20098f3158d0331f5c01672ba546542~gGbO1uTto2597825978eusmtip2E; Thu, 9 Jul 2020 13:48:47 +0000 (GMT) From: Lukasz Wojciechowski To: Olivier Matz , Thomas Monjalon , John McNamara , Marko Kovacevic Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com Date: Thu, 9 Jul 2020 15:48:22 +0200 Message-Id: <20200709134823.9176-4-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200709134823.9176-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBIsWRmVeSWpSXmKPExsWy7djP87oOCuzxBstPq1m8+7SdyeL8vK2s Fs961jFanN/Yy2qxtWkjk8WnBydYHNg8LvbfYfT4tWApq8fiPS+ZPI7dnMbucfDdHqYA1igu m5TUnMyy1CJ9uwSujBkXWtgL/stUdMwxbWBcJNHFyMkhIWAiMeH5QtYuRi4OIYEVjBK/d65h g3C+MEp8+7aABcL5zCixavIfRpiWpZs2MkIkljNKdM/7yQRXtWfPDGaQKjYBW4kjM7+CDRYR WMUo0XfnEBtIglnASOJl90SwImEBG4nFE0C2c3KwCKhK/N5wkwXE5hVwkVj8bgHUOnmJ1RsO gNVzCrhKbN2+D2y1hMB7NolfBw4CNXMAOS4S3Y/tIOqFJV4d38IOYctInJ7cwwJRv41R4urv n1DN+xklrveugKqyljj87zcbyCBmAU2J9bv0IcKOEk3HWpkh5vNJ3HgrCHE/n8SkbdOhwrwS HW1CENV6Ek97pjLCrP2z9gkLhO0hsaXpPDSArwBD6+VPpgmM8rMQli1gZFzFKJ5aWpybnlps lJdarlecmFtcmpeul5yfu4kRmB5O/zv+ZQfjrj9JhxgFOBiVeHgT/rLFC7EmlhVX5h5ilOBg VhLhdTp7Ok6INyWxsiq1KD++qDQntfgQozQHi5I4r/Gil7FCAumJJanZqakFqUUwWSYOTqkG xoYT/IuYvF63Tv+Xxap4zHf2Vr1AcaWfS03vFzCvOTP/z9GP7/5cqT5jnXiTR+vip5U2b6Zz rztXE2Wy59nDy+23f11ueBY+UWNjR9LMrSVG5lONZ2U+cpt8Z8OHk+cU1QMWxFZtjj7q33yO N1D556wbF6u5Ypd92fj5wQk2AX6bQzte7117+6WKEktxRqKhFnNRcSIAvmhCCgsDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrBLMWRmVeSWpSXmKPExsVy+t/xe7oOCuzxBscnCVu8+7SdyeL8vK2s Fs961jFanN/Yy2qxtWkjk8WnBydYHNg8LvbfYfT4tWApq8fiPS+ZPI7dnMbucfDdHqYA1ig9 m6L80pJUhYz84hJbpWhDCyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9jBkXWtgL /stUdMwxbWBcJNHFyMkhIWAisXTTRkYQW0hgKaPEuxbnLkYOoLiMxIdLAhAlwhJ/rnWxdTFy AZV8ZJT4+OEfM0iCTcBW4sjMr6wgCRGBNYwSJzd8BhvEDDT09rwmNhBbWMBGYvGEhawgNouA qsTvDTdZQGxeAReJxe8WMEJskJdYveEA2FBOAVeJrdv3MUJsa2CU+Px3H+sERr4FjAyrGEVS S4tz03OLDfWKE3OLS/PS9ZLzczcxAkN127Gfm3cwXtoYfIhRgINRiYd3x3+2eCHWxLLiytxD jBIczEoivE5nT8cJ8aYkVlalFuXHF5XmpBYfYjQFumois5Rocj4wjvJK4g1NDc0tLA3Njc2N zSyUxHk7BA7GCAmkJ5akZqemFqQWwfQxcXBKNTAmlF5s+7k7aybnGbGIi6JeZ6fsW5PM3/Oy x8f2rnvJPZ59Tem7yhK3y/G/q2Q8/zLR9c/K1n9zMg22f9rTmvjl9O8J/5gX869ZeyBlMlfm qtx7ATMctlR99Z3MNPlepfLlV0kZoXty/bYaKZ174brltI7lSoeTjza82vfiWWZIsZe2aHYl 86xnSizFGYmGWsxFxYkAEYFesmsCAAA= X-CMS-MailID: 20200709134848eucas1p1b78c9b2d4556ae3047d52e9d6e41b11c X-Msg-Generator: CA X-RootMTR: 20200709134848eucas1p1b78c9b2d4556ae3047d52e9d6e41b11c X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200709134848eucas1p1b78c9b2d4556ae3047d52e9d6e41b11c References: <20200422214555.11837-1-l.wojciechow@partner.samsung.com> <20200709134823.9176-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH v3 3/4] mbuf: standardize library 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" Use standardized debug macro RTE_DEBUG_MBUF instead of RTE_LIBRTE_MBUF_DEBUG for wrapping sanity checks. Add runtime control of running sanity checks basing on rte_log_can_log() function. To run mbuf sanity checks all following conditions must occur: 1) RTE_DEBUG_MBUF - must be defined, this can be done by enabling meson rte_debug option or defining CFLAGS="-DRTE_DEBUG_MBUF" 2) global log level must be set to RTE_LOG_DEBUG 3) mbuf library logtype log level (lib.mbuf) must be set to RTE_LOG_DEBUG Tests and documentation were also updated. Signed-off-by: Lukasz Wojciechowski --- app/test/test_mbuf.c | 3 ++- config/common_base | 2 +- doc/guides/prog_guide/mbuf_lib.rst | 2 +- lib/librte_mbuf/rte_mbuf.h | 12 ++++++++---- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c index 06e44f0a7..b8cdd6efb 100644 --- a/app/test/test_mbuf.c +++ b/app/test/test_mbuf.c @@ -994,7 +994,8 @@ test_pktmbuf_free_segment(struct rte_mempool *pktmbuf_pool) /* * Stress test for rte_mbuf atomic refcnt. * Implies that RTE_MBUF_REFCNT_ATOMIC is defined. - * For more efficiency, recommended to run with RTE_LIBRTE_MBUF_DEBUG defined. + * For more efficiency, recommended to run with RTE_DEBUG_MBUF defined + * or using rte_debug meson build option. */ #ifdef RTE_MBUF_REFCNT_ATOMIC diff --git a/config/common_base b/config/common_base index 897100887..2805c1c2b 100644 --- a/config/common_base +++ b/config/common_base @@ -874,7 +874,7 @@ CONFIG_RTE_LIBRTE_OCTEONTX2_MEMPOOL=y # Compile librte_mbuf # CONFIG_RTE_LIBRTE_MBUF=y -CONFIG_RTE_LIBRTE_MBUF_DEBUG=n +CONFIG_RTE_DEBUG_MBUF=n CONFIG_RTE_MBUF_DEFAULT_MEMPOOL_OPS="ring_mp_mc" CONFIG_RTE_MBUF_REFCNT_ATOMIC=y CONFIG_RTE_PKTMBUF_HEADROOM=128 diff --git a/doc/guides/prog_guide/mbuf_lib.rst b/doc/guides/prog_guide/mbuf_lib.rst index c3dbfb922..86ee29e07 100644 --- a/doc/guides/prog_guide/mbuf_lib.rst +++ b/doc/guides/prog_guide/mbuf_lib.rst @@ -266,7 +266,7 @@ can be found in several of the sample applications, for example, the IPv4 Multic Debug ----- -In debug mode (CONFIG_RTE_MBUF_DEBUG is enabled), +In debug mode (RTE_DEBUG_MBUF is enabled, e.g. by using "rte_debug" option during meson build), the functions of the mbuf library perform sanity checks before any operation (such as, buffer corruption, bad type, and so on). Use Cases diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index f8e492e59..f27d5e26e 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -341,17 +342,20 @@ rte_pktmbuf_priv_flags(struct rte_mempool *mp) #define RTE_MBUF_HAS_PINNED_EXTBUF(mb) \ (rte_pktmbuf_priv_flags(mb->pool) & RTE_PKTMBUF_POOL_F_PINNED_EXT_BUF) -#ifdef RTE_LIBRTE_MBUF_DEBUG +#ifdef RTE_DEBUG_MBUF /** check mbuf type in debug mode */ -#define __rte_mbuf_sanity_check(m, is_h) rte_mbuf_sanity_check(m, is_h) +#define __rte_mbuf_sanity_check(m, is_h) do { \ + if (rte_log_can_log(RTE_LOGTYPE_MBUF, RTE_LOG_DEBUG)) \ + rte_mbuf_sanity_check(m, is_h); \ +} while (0) -#else /* RTE_LIBRTE_MBUF_DEBUG */ +#else /* RTE_DEBUG_MBUF */ /** check mbuf type in debug mode */ #define __rte_mbuf_sanity_check(m, is_h) do { } while (0) -#endif /* RTE_LIBRTE_MBUF_DEBUG */ +#endif /* RTE_DEBUG_MBUF */ #ifdef RTE_MBUF_REFCNT_ATOMIC From patchwork Thu Jul 9 13:48:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Wojciechowski X-Patchwork-Id: 73650 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 181A9A0528; Thu, 9 Jul 2020 15:49:28 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4FC5B1E93A; Thu, 9 Jul 2020 15:48:55 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 5CB8B1E924 for ; Thu, 9 Jul 2020 15:48:50 +0200 (CEST) Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200709134849euoutp02d43038f23482caf985dd05d8010ed4c2~gGbQyJsnj0760107601euoutp028 for ; Thu, 9 Jul 2020 13:48:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200709134849euoutp02d43038f23482caf985dd05d8010ed4c2~gGbQyJsnj0760107601euoutp028 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1594302529; bh=L62l8vjdc/mUenW5FZgIVhIRM0nnakDs74jsGifdkCU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=b6+9nYFf/DA/qzppZIveG40w5QjsDjw7fSny88cyWSBtKmesqVrZQdIZ9dtazOTqv 9tXnxVSejt9QoetPJU4V4X5yeXlVrJj2Ng9IUMy8imdYguu7HsX2Agnn/IzU+purT+ L17klKSXiJyOZpq9CjLm+lkW4CMHCjxCRepfTugg= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20200709134849eucas1p120f36cf319df7e185d8ab51c840f95a6~gGbQfYG340727507275eucas1p1W; Thu, 9 Jul 2020 13:48:49 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 7E.95.06456.140270F5; Thu, 9 Jul 2020 14:48:49 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200709134848eucas1p27b4f137a91aa805e84f981802da2a226~gGbP7TAzn2009620096eucas1p2-; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20200709134848eusmtrp1d725511c4fa3085bdc7252d460423319~gGbP6xn3s1312913129eusmtrp1G; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) X-AuditID: cbfec7f2-7efff70000001938-7f-5f0720412f3c Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id D0.DE.06314.040270F5; Thu, 9 Jul 2020 14:48:48 +0100 (BST) Received: from localhost.localdomain (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200709134848eusmtip2797172b8620476ec6653047788a9c8ca~gGbPhxa6f2591525915eusmtip2N; Thu, 9 Jul 2020 13:48:48 +0000 (GMT) From: Lukasz Wojciechowski To: Cc: dev@dpdk.org, l.wojciechow@partner.samsung.com Date: Thu, 9 Jul 2020 15:48:23 +0200 Message-Id: <20200709134823.9176-5-l.wojciechow@partner.samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200709134823.9176-1-l.wojciechow@partner.samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKIsWRmVeSWpSXmKPExsWy7djP87qOCuzxBk83yFi8+7SdyeJZzzpG ByaPXwuWsnocfLeHKYApissmJTUnsyy1SN8ugSvj7oeXLAVPnCuWdE9iaWA8a9rFyMkhIWAi cf14H3MXIxeHkMAKRolV25ezQzhfGCW2rn7IBOF8ZpT49PgkM0xL28rdUInljBJtxzaywFW9 +LCBHaSKTcBW4sjMr6wgtogAi8TK799ZQGxmASOJl90TwSYJC5hKbG/bA2azCKhKnDjTxwZi 8wq4SLy4dJgdYpu8xOoNB8BqOAVcJbZu38cIEd/BJtF1gw3CdpF42bEa6jphiVfHt0D1ykic ntwDdpyEwDZGiau/fzJCOPsZJa73roCqspY4/O830CQOoOs0Jdbv0ocIO0o8vTSXFSQsIcAn ceOtIMT9fBKTtk1nhgjzSnS0CUFU60k87ZnKCLP2z9onLBC2h8TbBdtYIeFzhVHixp/HbBMY 5WchLFvAyLiKUTy1tDg3PbXYMC+1XK84Mbe4NC9dLzk/dxMjMLJP/zv+aQfj10tJhxgFOBiV eHh3/GeLF2JNLCuuzD3EKMHBrCTC63T2dJwQb0piZVVqUX58UWlOavEhRmkOFiVxXuNFL2OF BNITS1KzU1MLUotgskwcnFINjEnveJbH1wRqy5xXOxjcm7DBMd7ztvsP/kWLp3C3fGJYd3m/ hKrg8VP3hOdu1uaVUc1bLBK9encww0T/uyvt/heW7/vu0P3WZR/Tm+U35vJvk77/Iiv/fiM3 2+JFWb85my+2/zqtf+T9q2szv+2yPPUl4OhW/9QJ6ZLd+ctMz53sF0tSb+zwPqrEUpyRaKjF XFScCACBV35p6AIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrGLMWRmVeSWpSXmKPExsVy+t/xe7oOCuzxBn+uGlq8+7SdyeJZzzpG ByaPXwuWsnocfLeHKYApSs+mKL+0JFUhI7+4xFYp2tDCSM/Q0kLPyMRSz9DYPNbKyFRJ384m JTUnsyy1SN8uQS/j7oeXLAVPnCuWdE9iaWA8a9rFyMkhIWAi0bZyN1MXIxeHkMBSRom2NSdZ uhg5gBIyEh8uCUDUCEv8udbFBlHzkVFiQ9tbFpAEm4CtxJGZX1lBbBEBFomV37+DxZmBht6e 18QGYgsLmEpsb9vDDGKzCKhKnDjTBxbnFXCReHHpMDvEAnmJ1RsOgNVwCrhKbN2+jxFiWQOj xOe/+1gnMPItYGRYxSiSWlqcm55bbKhXnJhbXJqXrpecn7uJERhm24793LyD8dLG4EOMAhyM Sjy8O/6zxQuxJpYVV+YeYpTgYFYS4XU6ezpOiDclsbIqtSg/vqg0J7X4EKMp0FUTmaVEk/OB MZBXEm9oamhuYWlobmxubGahJM7bIXAwRkggPbEkNTs1tSC1CKaPiYNTqoFx3vFDVZ2ntvZk MLnXnlFLrPLSCdm4cN6JI0c+1y9s2N1z5PCiU0vN9vRkd+glVNdMXhmt5igppxv3e8ODKLfv f+0up0yJ8ihx3Pj/unai2a0JDQmr6n/6WdvHxWz/LPmp4IvLHZlbThu6PN8p736858uyxFB2 h5CyRMZ/7yr+TrRJl8/ayhyrxFKckWioxVxUnAgABZatYUkCAAA= X-CMS-MailID: 20200709134848eucas1p27b4f137a91aa805e84f981802da2a226 X-Msg-Generator: CA X-RootMTR: 20200709134848eucas1p27b4f137a91aa805e84f981802da2a226 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200709134848eucas1p27b4f137a91aa805e84f981802da2a226 References: <20200422214555.11837-1-l.wojciechow@partner.samsung.com> <20200709134823.9176-1-l.wojciechow@partner.samsung.com> Subject: [dpdk-dev] [PATCH v3 4/4] app/test: add mbuf perf tests 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" This patch adds new test command mbuf_perf_autotest to test app, which executes six basic performance tests: * alloc_free - allocation and freeing mbufs one by one * bulk_alloc_free - as above but in bulks * data_manipulation - few command modifying mbuf * sanity_checks_without_header - only sanity checks with unset header flag * sanity_checks_with_header - as above but with header flag set * sanity_checks_with_header_in_chain - as above but all mbufs are chained into one list Purpose of this patch is to measure drop of performance, when using realtime checks with rte_log_can_log in rte_debug enabled configuration. Signed-off-by: Lukasz Wojciechowski --- app/test/Makefile | 1 + app/test/meson.build | 4 +- app/test/test_mbuf_perf.c | 273 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 277 insertions(+), 1 deletion(-) create mode 100644 app/test/test_mbuf_perf.c diff --git a/app/test/Makefile b/app/test/Makefile index e5440774b..09567a239 100644 --- a/app/test/Makefile +++ b/app/test/Makefile @@ -111,6 +111,7 @@ SRCS-y += test_mempool.c SRCS-y += test_mempool_perf.c SRCS-y += test_mbuf.c +SRCS-y += test_mbuf_perf.c SRCS-y += test_logs.c SRCS-y += test_memcpy.c diff --git a/app/test/meson.build b/app/test/meson.build index 39f295d73..b64bc4684 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -74,6 +74,7 @@ test_sources = files('commands.c', 'test_lpm_perf.c', 'test_malloc.c', 'test_mbuf.c', + 'test_mbuf_perf.c', 'test_member.c', 'test_member_perf.c', 'test_memcpy.c', @@ -295,7 +296,8 @@ perf_test_names = [ 'hash_readwrite_perf_autotest', 'hash_readwrite_lf_perf_autotest', 'trace_perf_autotest', - 'ipsec_perf_autotest', + 'ipsec_perf_autotest', + 'mbuf_perf_autotest', ] driver_test_names = [ diff --git a/app/test/test_mbuf_perf.c b/app/test/test_mbuf_perf.c new file mode 100644 index 000000000..42f2079ac --- /dev/null +++ b/app/test/test_mbuf_perf.c @@ -0,0 +1,273 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright (c) 2020 Samsung Electronics Co., Ltd All Rights Reserved + */ + +#include +#include + +#include +#include +#include + +#include "test.h" + +#define NB_MBUF 1024 +#define MEMPOOL_CACHE_SIZE 0 +#define MBUF_DATA_SIZE 2048 +#define MBUF_PRIV_SIZE 128 +#define REPEAT (1024*1024) + +static int +case_mbuf_alloc_free(struct rte_mempool *pktmbuf_pool) +{ + unsigned int i; + int ret = TEST_SUCCESS; + int r; + + struct rte_mbuf *m[NB_MBUF]; + for (i = 0; i < NB_MBUF; i++) + m[i] = NULL; + + for (r = 0; r < REPEAT; r++) { + for (i = 0; i < NB_MBUF; i++) { + m[i] = rte_pktmbuf_alloc(pktmbuf_pool); + if (m[i] == NULL) { + printf("rte_pktmbuf_alloc() failed (%u)" + " at repetition %d\n", i, r); + ret = TEST_FAILED; + goto end; + } + } + for (i = 0; i < NB_MBUF; i++) { + if (m[i] != NULL) { + rte_pktmbuf_free(m[i]); + m[i] = NULL; + } + } + } + +end: + for (i = 0; i < NB_MBUF; i++) { + if (m[i] != NULL) + rte_pktmbuf_free(m[i]); + } + return ret; +} + +static int +case_mbuf_bulk_alloc_free(struct rte_mempool *pktmbuf_pool) +{ + int ret = TEST_SUCCESS; + int r; + struct rte_mbuf *m[NB_MBUF]; + + for (r = 0; r < REPEAT; r++) { + ret = rte_pktmbuf_alloc_bulk(pktmbuf_pool, m, NB_MBUF); + if (ret != 0) { + printf("rte_pktmbuf_alloc_bulk() failed" + " at repetition %d\n", r); + ret = TEST_FAILED; + break; + } + rte_pktmbuf_free_bulk(m, NB_MBUF); + } + return ret; +} + +static int +case_mbuf_data_manipulation(struct rte_mempool *pktmbuf_pool) +{ + unsigned int i; + int ret = TEST_SUCCESS; + int r; + + struct rte_mbuf *m[NB_MBUF]; + ret = rte_pktmbuf_alloc_bulk(pktmbuf_pool, m, NB_MBUF); + if (ret != 0) { + printf("rte_pktmbuf_alloc_bulk() failed\n"); + return TEST_FAILED; + } + + for (r = 0; r < REPEAT; r++) { + for (i = 0; i < NB_MBUF; i++) { + if (!rte_pktmbuf_is_contiguous(m[i])) { + printf("rte_pktmbuf_is_contiguous() failed" + " (%u)\n", i); + ret = TEST_FAILED; + goto end; + } + if (rte_pktmbuf_append(m[i], 0) == NULL) { + printf("rte_pktmbuf_append() failed" + " (%u)\n", i); + ret = TEST_FAILED; + goto end; + } + if (rte_pktmbuf_trim(m[i], 0) < 0) { + printf("rte_pktmbuf_trim() failed (%u)\n", i); + ret = TEST_FAILED; + goto end; + } + if (rte_pktmbuf_prepend(m[i], 0) == NULL) { + printf("rte_pktmbuf_prepend() failed" + " (%u)\n", i); + ret = TEST_FAILED; + goto end; + } + if (rte_pktmbuf_adj(m[i], 0) == NULL) { + printf("rte_pktmbuf_adj() failed (%u)\n", i); + ret = TEST_FAILED; + goto end; + } + } + } + +end: + rte_pktmbuf_free_bulk(m, NB_MBUF); + return ret; +} + +static int +case_mbuf_sanity_checks_without_header(struct rte_mempool *pktmbuf_pool) +{ + unsigned int i; + int ret = TEST_SUCCESS; + int r; + + struct rte_mbuf *m[NB_MBUF]; + ret = rte_pktmbuf_alloc_bulk(pktmbuf_pool, m, NB_MBUF); + if (ret != 0) { + printf("rte_pktmbuf_alloc_bulk() failed\n"); + return TEST_FAILED; + } + + for (r = 0; r < REPEAT; r++) + for (i = 0; i < NB_MBUF; i++) + rte_mbuf_sanity_check(m[i], 0); + + rte_pktmbuf_free_bulk(m, NB_MBUF); + return ret; +} + +static int +case_mbuf_sanity_checks_with_header(struct rte_mempool *pktmbuf_pool) +{ + unsigned int i; + int ret = TEST_SUCCESS; + int r; + + struct rte_mbuf *m[NB_MBUF]; + ret = rte_pktmbuf_alloc_bulk(pktmbuf_pool, m, NB_MBUF); + if (ret != 0) { + printf("rte_pktmbuf_alloc_bulk() failed\n"); + return TEST_FAILED; + } + + for (r = 0; r < REPEAT; r++) + for (i = 0; i < NB_MBUF; i++) + rte_mbuf_sanity_check(m[i], 1); + + rte_pktmbuf_free_bulk(m, NB_MBUF); + return ret; +} + +static int +case_mbuf_sanity_checks_with_header_in_chain(struct rte_mempool *pktmbuf_pool) +{ + unsigned int i; + int ret = TEST_SUCCESS; + int r; + + struct rte_mbuf *m[NB_MBUF]; + ret = rte_pktmbuf_alloc_bulk(pktmbuf_pool, m, NB_MBUF); + if (ret != 0) { + printf("rte_pktmbuf_alloc_bulk() failed\n"); + return TEST_FAILED; + } + + for (i = 1; i < NB_MBUF; i++) { + ret = rte_pktmbuf_chain(m[0], m[i]); + if (ret != 0) { + printf("rte_pktmbuf_chain() failed: %d\n", ret); + goto end; + } + m[i] = NULL; + } + + for (r = 0; r < REPEAT; r++) + rte_mbuf_sanity_check(m[0], 1); + +end: + rte_pktmbuf_free_bulk(m, NB_MBUF); + return ret; +} + +struct testcase { + int (*func)(struct rte_mempool *pktmbuf_pool); + const char *name; + double time; + int ret; +}; + +#define TC(F) {.func = F, .name = RTE_STR(F), .time = 0.0, .ret = TEST_SKIPPED} + +static int +test_mbuf_perf(void) +{ + int ret = TEST_SUCCESS; + struct timeval tv_begin, tv_end; + struct testcase cases[] = { + TC(case_mbuf_alloc_free), + TC(case_mbuf_bulk_alloc_free), + TC(case_mbuf_data_manipulation), + TC(case_mbuf_sanity_checks_without_header), + TC(case_mbuf_sanity_checks_with_header), + TC(case_mbuf_sanity_checks_with_header_in_chain), + }; + int i, n = RTE_DIM(cases); + const char *status_ok = "[ OK ]"; + const char *status_skip = "[SKIP]"; + const char *status_fail = "[FAIL]"; + const char *status; + struct rte_mempool *pktmbuf_pool = NULL; + + pktmbuf_pool = rte_pktmbuf_pool_create("test_pktmbuf_pool", + NB_MBUF, MEMPOOL_CACHE_SIZE, MBUF_PRIV_SIZE, + MBUF_DATA_SIZE, SOCKET_ID_ANY); + if (pktmbuf_pool == NULL) { + printf("cannot allocate mbuf pool\n"); + ret = TEST_FAILED; + goto end; + } + + for (i = 0; i < n; i++) { + printf("=== running %s ===\n", cases[i].name); + gettimeofday(&tv_begin, NULL); + cases[i].ret = cases[i].func(pktmbuf_pool); + gettimeofday(&tv_end, NULL); + cases[i].time = (double)(tv_end.tv_sec - tv_begin.tv_sec) + + ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000; + } + + printf("%-50s %-10s %s:\n", "TestName", "Status", "Time(seconds)"); + for (i = 0; i < n; i++) { + if (cases[i].ret == TEST_SKIPPED) + status = status_skip; + else if (cases[i].ret == TEST_SUCCESS) + status = status_ok; + else { + status = status_fail; + ret = TEST_FAILED; + } + printf("%-50s %-10s %8.3f\n", cases[i].name, status, + cases[i].time); + } + +end: + if (pktmbuf_pool != NULL) + rte_mempool_free(pktmbuf_pool); + + return ret; +} + +REGISTER_TEST_COMMAND(mbuf_perf_autotest, test_mbuf_perf); +