From patchwork Thu Feb 29 21:31:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 727 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6F25343B7D; Thu, 29 Feb 2024 22:32:27 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7937642FD3; Thu, 29 Feb 2024 22:32:13 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id E15B942DDD for ; Thu, 29 Feb 2024 22:32:07 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id D575220B74C0; Thu, 29 Feb 2024 13:32:06 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D575220B74C0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1709242326; bh=Bz+NFFij6vNUCpMZfAb2YkRsr/P+GgrqjDZNG5Xaa7g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LgvHECgw1bOBjQ5cYf4IpAoHw6e/R1aRPkDnskf+J6oPosvhWXDY4FH94GHr/aWoe mROtexdSHJzRXwpUSn17MVJHdD0IFG/2oMd2og51OVmtf+8DoQfkOg9K7fMaz0xfGm SgBk9Dmqfja3ie2KMlF09IZdpWKyGHzUG/uhKPNY= From: Tyler Retzlaff To: dev@dpdk.org Cc: Anatoly Burakov , Ashish Gupta , Chenbo Xia , Cristian Dumitrescu , David Hunt , Fan Zhang , Hemant Agrawal , Honnappa Nagarahalli , Jasvinder Singh , Jerin Jacob , Konstantin Ananyev , Maxime Coquelin , Reshma Pattan , Sachin Saxena , Sivaprasad Tummala , Srikanth Yalavarthi , Stephen Hemminger , Sunil Kumar Kori , bruce.richardson@intel.com, mb@smartsharesystems.com, thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH v5 00/22] stop using variadic argument pack extension Date: Thu, 29 Feb 2024 13:31:43 -0800 Message-Id: <1709242325-17218-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1707774557-16012-1-git-send-email-roretzla@linux.microsoft.com> References: <1707774557-16012-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org RTE_LOG_LINE cannot be augmented with a prefix format and arguments without the user of RTE_LOG_LINE using the args... and ## args compiler extension to conditionally remove trailing comma when the macro receives only a single argument. Provide a new/similar macro RTE_LOG_LINE_PREFIX that accepts the prefix format and arguments as separate parameters allowing them to be expanded at the correct locations inside of RTE_FMT() allowing the rest of the non-prefix format string and arguments to be collapsed to the argument pack which can be directly forwarded with __VA_ARGS__ avoiding the need for conditional comma removal. I've done my best to manually check expansions (preprocessed) and compiled printf of the logs to validate correct output. v5: * add missing newline escape and comma in rte_windows.h macro. v4: * remove unintended addition of prefix to bpf log helper. * use RTE_LOG_LINE_PREFIX in other places using RTE_FMT_HEAD and RTE_FMT_TAIL. * add a checkpatch check to prevent reintroduction of ##args. v3: * remove leading _ from RTE_LOG_COMMA the macro is not internal * add doxygen comment for existing RTE_LOG{,DP}_LINE function-like macros, based on RTE_LOG{,DP} comments. * add doxygen comment for new RTE_LOG{,DP}_LINE_PREFIX function-like macros, based on RTE_LOG{,DP} comments. * merge 2 vhost patches into a single patch (mistake in previous submission) v2: * revamp entire series to be ISO C99 compliant, stop using variadic argument pack extension. Tyler Retzlaff (22): log: add a per line log helper with parameterized prefix cfgfile: stop using variadic argument pack extension cmdline: stop using variadic argument pack extension compressdev: stop using variadic argument pack extension metrics: stop using variadic argument pack extension mldev: stop using variadic argument pack extension net: stop using variadic argument pack extension pdump: stop using variadic argument pack extension power: stop using variadic argument pack extension rawdev: stop using variadic argument pack extension rcu: stop using variadic argument pack extension stack: stop using variadic argument pack extension eal: stop using variadic argument pack extension vhost: stop using variadic argument pack extension ip_frag: stop using variadic argument pack extension bpf: stop using variadic argument pack extension cryptodev: stop using variadic argument pack extension eventdev: stop using variadic argument pack extension graph: stop using variadic argument pack extension member: stop using variadic argument pack extension node: stop using variadic argument pack extension devtools: forbid use argument variadic pack extension devtools/checkpatches.sh | 8 +++ lib/bpf/bpf_impl.h | 4 +- lib/cfgfile/rte_cfgfile.c | 5 +- lib/cmdline/cmdline_parse.c | 2 +- lib/cmdline/cmdline_parse_num.c | 4 +- lib/compressdev/rte_compressdev_internal.h | 4 +- lib/cryptodev/rte_cryptodev.h | 15 ++--- lib/eal/common/eal_trace.h | 8 +-- lib/eal/windows/include/rte_windows.h | 5 +- lib/eventdev/eventdev_pmd.h | 10 ++- lib/eventdev/rte_event_timer_adapter.c | 5 +- lib/graph/graph_private.h | 5 +- lib/ip_frag/ip_frag_common.h | 4 +- lib/log/rte_log.h | 97 ++++++++++++++++++++++++++++++ lib/member/member.h | 5 +- lib/metrics/rte_metrics_telemetry.c | 12 ++-- lib/mldev/rte_mldev.h | 4 +- lib/net/rte_net_crc.c | 4 +- lib/node/node_private.h | 6 +- lib/pdump/rte_pdump.c | 4 +- lib/power/power_common.h | 6 +- lib/rawdev/rte_rawdev_pmd.h | 17 +++--- lib/rcu/rte_rcu_qsbr.c | 4 +- lib/rcu/rte_rcu_qsbr.h | 12 ++-- lib/stack/stack_pvt.h | 16 ++--- lib/vhost/vhost.h | 8 +-- lib/vhost/vhost_crypto.c | 21 ++++--- 27 files changed, 196 insertions(+), 99 deletions(-)