From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-oo1-f47.google.com (mail-oo1-f47.google.com [209.85.161.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 640813CF68C for ; Wed, 8 Apr 2026 20:02:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775678574; cv=none; b=lkYscN6g0wF06VK//n66IWRdwaiG7MsNYBKPo3F1z6zSiaE860fb1hEvPQF4Tet0ZfjN+Uk5rhFT3SOTNGVoycmjNQaKBLJRizjbm+PYud1bLwAHrQ7T9R8vIAuzsCwamdX19H+9TVnSMQHjzmG41b5NrBEfsDV4dQSTimTVANY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775678574; c=relaxed/simple; bh=Lz3HqFI7sjTcCXUhEwpag2fwG3Cj2gkwqi1rf6C3f+k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VqobYjxHm8SBBpNyLModgPa0FpEZU2OuXIm7TrJmHePgjrof6jhh5Xf86VbGLeEYAFXSwh/D1BFRFTHu1S/+JMzV0euN1BMZOMq8cR+BNNjP10g5D0lqBA2Jr7AiHNFW3ILEtJKWv17ke6z6tD4PqEFN0GZ9ZoRv/xhXO2WHVq8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ouhfiem2; arc=none smtp.client-ip=209.85.161.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ouhfiem2" Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-688a8e5fc2eso102683eaf.0 for ; Wed, 08 Apr 2026 13:02:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775678571; x=1776283371; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=zN4o2slkpMLzBRxTPQWkZ3+07q4Tlozj8gzJnHB42uk=; b=ouhfiem2Z0PMi83AaQg/DTqK3rSiYh5yWA1yBIxh4Iw3xzlWl4dnIvVLm3va+T3jI7 2PGjRjxpCbC7pp9oD5nLbkbZr41+hA+PAWImQpyS3fy8LTohpZiVHiirzRkqQRAUiPk8 KPooFkMxHbXgOPZp2q1rb7XObZQJhl+BipVPbs0ChtMDbzXYjYW5l4kBiQmKeXqDN8/J In+9hIRGwaeDVTl6deXoF8mv5sj8oOmEFgoHp14p5/mh46BH9XtowZax5/plBdC0UHW1 2HQpf3/FPn5zaE3YFlR9aMbTuMoITLNU8T/JJ/n6zHaSj5m/EIWpnVAKW2DH2FZ8jUbl o7TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775678571; x=1776283371; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=zN4o2slkpMLzBRxTPQWkZ3+07q4Tlozj8gzJnHB42uk=; b=HWtVpOykFUt9O8iDjtDtXzypZiFrTqY1Y4hfQNWgaxADhzeNyCSjeWZvnDkSSO/4AI vo5gmJzFF4esOP6fmiEt05GmEKIWqBPgs93su02FFbRRj9eBQ9fTvrnp009UskpSmxCq YIgj2dYYAnUF1FaH2nB/Xuw3G+ioUDebsORqG7Tg4KYVxsH2J+JjO9dyaXrFToW/uk8s 4z2kpmTEH4nSdh8qMzrac+sla77b67DrVoyvMDh3L9WxslQbNNvHZK/UdmyRhIUGUfT8 B7efmCucyQBwAFN//KQWYGxrY4rJ8Wh4ikYZ+d/bZKmqGMAAzp22qWv/j839VmEYe18C YnSA== X-Gm-Message-State: AOJu0Ywkf9bNctvbXMiNlaEc72npM0fvxVJ5+nbZEV1CksNxasfQoS1V eKd7NyXD95b0+c5oaBMa43nPJaRD1QbjqhttcxyasPBDtwGXd3G5zEbNoDJDKQ== X-Gm-Gg: AeBDietY4FGgotCA1r3KWpOQzVZtqY9lj29unmRdeeUreERqfY+SmXvJIxNvLMfZzC/ 0CQZovE5nMe/gptv2zVBbsSikZPcjjf+QfXg4BLIChlBtLweR67C8QkzmKladE6lx6zn9JOcCFx /ZylfTT01KSYSPL23eqba9gcF9PEhm5O08S4eDOGxSUIbGMSAyTPRnqSuG4Z0JjHdEjZfoDzuXN FZNgdixkUGDupzdu1IDnml007V046WzaHotC7vJE6P++GR+4bukq1bCq8lunce2ALTLugeqoOop eQgd6KCZRsnPvJ/vPVB+FnbK2v1m50VSJxC0vDZlmA8DilAXfGZS0tG1iN3vhzjb41U1XJtSCoc 1zA/5VsHBvbXjzpMBPrrSrT1mq2wLYeF+Vsepgc0JbCafugX5AraReIujABPPQhYq3gSzhGzK4E XaGRM6uLwlFiAM79LjNrGBBUr3RMUt0wEFA86d7XaZbn2IltVSudThS2SLdYJ9vwqRZ1ll7IYHt Og= X-Received: by 2002:a05:6820:1842:b0:67b:f12a:dfcb with SMTP id 006d021491bc7-6822103c55fmr11556047eaf.60.1775678571117; Wed, 08 Apr 2026 13:02:51 -0700 (PDT) Received: from frodo.raven-morpho.ts.net (c-98-38-17-99.hsd1.co.comcast.net. [98.38.17.99]) by smtp.googlemail.com with ESMTPSA id 006d021491bc7-680a63c7fd1sm12254208eaf.8.2026.04.08.13.02.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2026 13:02:50 -0700 (PDT) From: Jim Cromie To: linux-kernel@vger.kernel.org Cc: gregkh@linuxfoundation.org, jbaron@akamai.com, louis.chauvet@bootlin.com, Philipp Hahn , Jim Cromie Subject: [PATCH v13 36/36] dyndbg: Ignore additional arguments from pr_fmt Date: Wed, 8 Apr 2026 14:02:11 -0600 Message-ID: <20260408200211.43821-37-jim.cromie@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260408200211.43821-1-jim.cromie@gmail.com> References: <20260408200211.43821-1-jim.cromie@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Philipp Hahn pr_fmt can be used to add a common prefix to any output from a module: #define pr_fmt(fmt) KBUILD_MODNAME ".%s " fmt, __func__ But adding additional arguments breaks dynamic debug: > error: macro "DEFINE_DYNAMIC_DEBUG_METADATA_CLS" passed 4 arguments, but takes just 3 > | pr_debug_ratelimited("%s", "Hello world!"); > | ^ > note: macro "DEFINE_DYNAMIC_DEBUG_METADATA_CLS" defined here > | #define DEFINE_DYNAMIC_DEBUG_METADATA_CLS(name, cls, fmt) \ > | > error: ‘DEFINE_DYNAMIC_DEBUG_METADATA_CLS’ undeclared (first use in this function) > | DEFINE_DYNAMIC_DEBUG_METADATA_CLS(name, _DPRINTK_CLASS_DFLT, fmt) > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’ > | DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, pr_fmt(fmt)); \ > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > note: in expansion of macro ‘pr_debug_ratelimited’ > | pr_debug_ratelimited("%s", "Hello world!"); > | ^~~~~~~~~~~~~~~~~~~~ Add an additional ', ...' to DEFINE_DYNAMIC_DEBUG_METADATA_CLS to slurp any additional argument, which `pr_fmt` might add. Signed-off-by: Philipp Hahn [pr_fmt change on test_dynamic_debug_submod instead of parent] Reviewed-by: Jim Cromie --- include/linux/dynamic_debug.h | 2 +- lib/test_dynamic_debug.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index 1b401f398a3c..49f37d6a4eab 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h @@ -344,7 +344,7 @@ void __dynamic_ibdev_dbg(struct _ddebug *descriptor, dump_stack(); \ } -#define DEFINE_DYNAMIC_DEBUG_METADATA_CLS(name, cls, fmt) \ +#define DEFINE_DYNAMIC_DEBUG_METADATA_CLS(name, cls, fmt, ...) \ static struct _ddebug __aligned(8) \ __section("__dyndbg_descriptors") name = { \ .modname = KBUILD_MODNAME, \ diff --git a/lib/test_dynamic_debug.c b/lib/test_dynamic_debug.c index 3cb41a3a18e2..72a1a1c89cb2 100644 --- a/lib/test_dynamic_debug.c +++ b/lib/test_dynamic_debug.c @@ -23,7 +23,7 @@ * the usage clearer. */ #if defined(TEST_DYNAMIC_DEBUG_SUBMOD) - #define pr_fmt(fmt) "test_dd_submod: " fmt + #define pr_fmt(fmt) "test_dd_submod: %s " fmt, __func__ #else #define pr_fmt(fmt) "test_dd: " fmt #endif @@ -215,7 +215,7 @@ static int __init test_dynamic_debug_init(void) static void __exit test_dynamic_debug_exit(void) { - pr_debug("exited\n"); + pr_debug_ratelimited("exited\n"); } module_init(test_dynamic_debug_init); -- 2.53.0