From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A06B2C282DE for ; Thu, 13 Mar 2025 16:53:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E83DC280004; Thu, 13 Mar 2025 12:53:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E3205280001; Thu, 13 Mar 2025 12:53:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D20E7280004; Thu, 13 Mar 2025 12:53:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B6615280001 for ; Thu, 13 Mar 2025 12:53:22 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 423901A0301 for ; Thu, 13 Mar 2025 16:53:23 +0000 (UTC) X-FDA: 83217123486.17.F3D9ACD Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf10.hostedemail.com (Postfix) with ESMTP id 7094EC000E for ; Thu, 13 Mar 2025 16:53:21 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf10.hostedemail.com: domain of "SRS0=sHGN=WA=goodmis.org=rostedt@kernel.org" designates 147.75.193.91 as permitted sender) smtp.mailfrom="SRS0=sHGN=WA=goodmis.org=rostedt@kernel.org" ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741884801; a=rsa-sha256; cv=none; b=8gcmM0UsSVobfuuyr4WB+TyIvfjweX5PFM4jj315wgIfAU5jCBJA1M+0Ew3CVkt5x8nqxJ PyggXu8/HSxqsahmjKCM9ljBsbTOZfmOWHWQS1jJTPqS077hHhSq8paptPswBYCb081zIN 4QVDEJ7pNbT2buI7LqnzcSSe2aaqH7o= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf10.hostedemail.com: domain of "SRS0=sHGN=WA=goodmis.org=rostedt@kernel.org" designates 147.75.193.91 as permitted sender) smtp.mailfrom="SRS0=sHGN=WA=goodmis.org=rostedt@kernel.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741884801; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PJwTzKI4nvXOvzczsrxxMGTBTBy1ijZNfuP40QYQpSE=; b=bLWdy3Niw53ps1/+NBL2uNuu8c4W5yeK6UN79TovKvjUWdL9RbD9XtYQL4aYXeYTtZ9hGK WJAR02rDU7letAe6AQthTtk2q7uXbxarBKdOG8RHk19I91Zmd+5Dc6nhZp9ZCTgDkaYIZt UfcOwXuu8MHWkk5XjwReivH21ZeiuNc= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DD3D0A477C1; Thu, 13 Mar 2025 16:47:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5988C4CEDD; Thu, 13 Mar 2025 16:53:16 +0000 (UTC) Date: Thu, 13 Mar 2025 12:53:13 -0400 From: Steven Rostedt To: Petr Mladek Cc: LKML , Linux Trace Kernel , linux-mm@kvack.org, Masami Hiramatsu , Mathieu Desnoyers , Andrew Morton , Michael Petlan , Veronika Molnarova , Suren Baghdasaryan , Rasmus Villemoes , Andy Shevchenko , Tamir Duberstein , Linus Torvalds Subject: Re: [RESEND][PATCH] tracing: gfp: Remove duplication of recording GFP flags Message-ID: <20250313125313.4f3d98f4@batman.local.home> In-Reply-To: References: <20250225135611.1942b65c@gandalf.local.home> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Queue-Id: 7094EC000E X-Stat-Signature: wbdxwo834xwq8rp9jt6zap96sz6okktu X-Rspamd-Server: rspam06 X-HE-Tag: 1741884801-754918 X-HE-Meta: U2FsdGVkX1/f16KeyBkrgEHKWU1v0YLRzzTZBLukFwJEXj0v8DIkw5il0PllPh99XSyRW+JBZwKa1KuhRMDS/O3hMp0dI5a2fkfH5583BHVdWevEouJ9TctmCP58bSmERIGD2B8jNNryEJAKNqmZFF96Pw5hPdywgV1vXI9ZCdWDDo2Yr8uP/zz5nl7SLawCAIw9TBA1t90mrjnMgbMTKfYKO+w1hLlFWieY1Hn7kG+0wO9gHGkyJWjNqPzOVMYIianyAQJrz6nhf/8BQ0Uj4g6wj2LyDMeBOvitsX7oXQnqtfCWI2jnqVjY2lqhuw+ir3QYSKJqkPiuWh7U7MddBAY6COUULRLdNlbFbQ/LefJXZgdCzJ+HUiCHsKHBVzcoQxhs6ZMu4Ay71LAxlQcu3/KUbrdkqKLaBIGI7HuLuc/HOQ4v4fL6b9jYpzu/l/BwCHWJL8EOrFTXss/FUq148Tp+pZh8AMgAzT8Us9bnIiKFR/a3Z+kTr+bI5obwS6bdQsYh5/T912oCjVEoUsTsptxg2hJMTseQwm4ceD+Uusxb+jeU38sm1q5NLy3lQcuwnPwYqKugZl+48PjmXHLQmDhomDze56tmtH3iEVCBsB1+pPXXAGg5KBwjerTCwt+Mc66ZwsG59ejeSwdGxvXrmcSSGGWBOzB5+MJh6cP8aSvDgkE4SaFcU4pZ4BFyjcXHGkRNR+iameTpv3IkSBv4if/rqTdMTT+PbtMLXtOVmA4wn8Gy/8ETy3F9ZC18MRbhQ+B7EyaX1FrOZPWiEH3gTVoYQOUgumjZm6Ilta0foXylSKyytt/ZGDgj6wH45nZq5dBMA4xO8/Liq08chhy7r/wPQD3wE8vPHJwqnuxQ6I74qzSESr6S1KKtYCq+MJXF7BWglA9Lf8LqYm+a3gejbKSlKwiT/PgBKb5fxUwzCNKe+2pwVwmK01fF3lrV2pSIsIf9PJWkPQyqos1QUWE fTfXHgwq ONd5idoidhEV6fphMfaoJutW8x/SE9Q9uG4prz6uwHy7jgVO3W1ygEjj/vEQbZTivViD+L/ETox8U6xMDah5No/kId5WlDs5xe9lNyx0gF0Z/MiU3INnA4ex7bXJUgYO1R4j0mPPPbH1LBdmB6zo/i/FFfU0NaVvtaHQGLmQX304b2A3OuxnA+NH0NAU5s0FRMD5HnD6isrHIkeN7D5yvwYAjLtzf2r4Eio5BAeMUMapUgk3LPfcEFk2acbclQR8w/2zdh//2PVekzNoxuwORJjye/SB6Ko7l6g+JQaGrOG2e6ZTCktHL9ZxBag== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, 13 Mar 2025 16:26:22 +0100 Petr Mladek wrote: > This causes regression in the printf selftest: > > # modprobe test_printf > modprobe: ERROR: could not insert 'test_printf': Invalid argument > > # dmesg | tail > [ 46.206779] test_printf: vsnprintf(buf, 256, "%pGg", ...) returned 15, expected 10 > [ 46.208192] test_printf: vsnprintf(buf, 3, "%pGg", ...) returned 15, expected 10 > [ 46.208196] test_printf: vsnprintf(buf, 0, "%pGg", ...) returned 15, expected 10 > [ 46.208199] test_printf: kvasprintf(..., "%pGg", ...) returned 'none|0xfc000000', expected '0xfc000000' > [ 46.208202] test_printf: vsnprintf(buf, 256, "%pGg", ...) returned 26, expected 21 > [ 46.208204] test_printf: vsnprintf(buf, 17, "%pGg", ...) returned 26, expected 21 > [ 46.208206] test_printf: vsnprintf(buf, 0, "%pGg", ...) returned 26, expected 21 > [ 46.208209] test_printf: kvasprintf(..., "%pGg", ...) returned '__GFP_HIGH|none|0xfc000000', expected '__GFP_HIGH|0xfc000000' > [ 46.208865] test_printf: failed 8 out of 448 tests > > => vprintf() started printing the "none|" string. > > It seems to me that "{ 0, "none" }" was added as an "innocent" entry > to avoid the trailing "," generated by TRACE_GFP_FLAGS. So, it is > not really needed. > > In fact, I think that it probably causes similar regression in the > trace output because the logic in trace_print_flags_seq() > seems to be the same as in format_flags() in lib/vsprintf.c. > > The following worked for me: > > diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h > index 82371177ef79..15aae955a10b 100644 > --- a/include/trace/events/mmflags.h > +++ b/include/trace/events/mmflags.h > @@ -101,7 +101,7 @@ TRACE_DEFINE_ENUM(___GFP_LAST_BIT); > gfpflag_string(GFP_DMA32), \ > gfpflag_string(__GFP_RECLAIM), \ > TRACE_GFP_FLAGS \ > - { 0, "none" } > + { 0, NULL } > > #define show_gfp_flags(flags) \ > (flags) ? __print_flags(flags, "|", __def_gfpflag_names \ > > It seems to be safe because the callers end up the cycle when .name == NULL. > > I think that it actually allows to remove similar trailing {} but I am not sure > if we want it. Hmm, I could get rid of that last one with this patch. What do you think? diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h index 82371177ef79..74af49c33d14 100644 --- a/include/trace/events/mmflags.h +++ b/include/trace/events/mmflags.h @@ -37,26 +37,26 @@ TRACE_GFP_EM(HARDWALL) \ TRACE_GFP_EM(THISNODE) \ TRACE_GFP_EM(ACCOUNT) \ - TRACE_GFP_EM(ZEROTAGS) + TRACE_GFP_EME(ZEROTAGS) #ifdef CONFIG_KASAN_HW_TAGS # define TRACE_GFP_FLAGS_KASAN \ - TRACE_GFP_EM(SKIP_ZERO) \ - TRACE_GFP_EM(SKIP_KASAN) + TRACE_COMMA TRACE_GFP_EM(SKIP_ZERO) \ + TRACE_GFP_EME(SKIP_KASAN) #else # define TRACE_GFP_FLAGS_KASAN #endif #ifdef CONFIG_LOCKDEP # define TRACE_GFP_FLAGS_LOCKDEP \ - TRACE_GFP_EM(NOLOCKDEP) + TRACE_COMMA TRACE_GFP_EME(NOLOCKDEP) #else # define TRACE_GFP_FLAGS_LOCKDEP #endif #ifdef CONFIG_SLAB_OBJ_EXT # define TRACE_GFP_FLAGS_SLAB \ - TRACE_GFP_EM(NO_OBJ_EXT) + TRACE_COMMA TRACE_GFP_EME(NO_OBJ_EXT) #else # define TRACE_GFP_FLAGS_SLAB #endif @@ -69,6 +69,10 @@ #undef TRACE_GFP_EM #define TRACE_GFP_EM(a) TRACE_DEFINE_ENUM(___GFP_##a##_BIT); +#undef TRACE_GFP_EME +#define TRACE_GFP_EME(a) TRACE_DEFINE_ENUM(___GFP_##a##_BIT); +#undef TRACE_COMMA +#define TRACE_COMMA TRACE_GFP_FLAGS @@ -84,6 +88,10 @@ TRACE_DEFINE_ENUM(___GFP_LAST_BIT); */ #undef TRACE_GFP_EM #define TRACE_GFP_EM(a) gfpflag_string(__GFP_##a), +#undef TRACE_GFP_EME +#define TRACE_GFP_EME(a) gfpflag_string(__GFP_##a) +#undef TRACE_COMMA +#define TRACE_COMMA , #define __def_gfpflag_names \ gfpflag_string(GFP_TRANSHUGE), \ @@ -100,8 +108,7 @@ TRACE_DEFINE_ENUM(___GFP_LAST_BIT); gfpflag_string(GFP_DMA), \ gfpflag_string(GFP_DMA32), \ gfpflag_string(__GFP_RECLAIM), \ - TRACE_GFP_FLAGS \ - { 0, "none" } + TRACE_GFP_FLAGS #define show_gfp_flags(flags) \ (flags) ? __print_flags(flags, "|", __def_gfpflag_names \ -- Steve