From: Andrew Morton <akpm@linux-foundation.org>
To: Vasily Averin <vvs@openvz.org>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Ingo Molnar <mingo@redhat.com>,
kernel@openvz.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: [PATCH mm] tracing: incorrect gfp_t conversion
Date: Sat, 7 May 2022 15:48:35 -0700 [thread overview]
Message-ID: <20220507154835.4d4d737d8eed579969f15938@linux-foundation.org> (raw)
In-Reply-To: <8b1cfefa-da7d-3376-cf04-1ff77dab8170@openvz.org>
On Sun, 8 May 2022 01:28:58 +0300 Vasily Averin <vvs@openvz.org> wrote:
> On 5/7/22 22:37, Andrew Morton wrote:
> > On Sat, 7 May 2022 22:02:05 +0300 Vasily Averin <vvs@openvz.org> wrote:
> >> + {(__force unsigned long)GFP_KERNEL, "GFP_KERNEL"}, \
> >> + {(__force unsigned long)GFP_NOFS, "GFP_NOFS"}, \
> >
> > This got all repetitive, line-wrappy and ugly :(
> >
> > What do we think of something silly like this?
>
> > --- a/include/trace/events/mmflags.h~tracing-incorrect-gfp_t-conversion-fix
> > +++ a/include/trace/events/mmflags.h
> > @@ -13,53 +13,57 @@
> > * Thus most bits set go first.
> > */
> >
> > +#define FUL __force unsigned long
> > +
> > #define __def_gfpflag_names \
> > - {(__force unsigned long)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \
> > - {(__force unsigned long)GFP_TRANSHUGE_LIGHT, "GFP_TRANSHUGE_LIGHT"}, \
> ...
> > + {(FUL)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \
> > + {(FUL)GFP_TRANSHUGE_LIGHT, "GFP_TRANSHUGE_LIGHT"}, \
>
>
> I think it's a good idea, and I regret it was your idea and not mine.
heh
> Should I resend my patch with these changes or would you prefer
> to keep your patch as a separate one?
I did the below. I'll squash them together later.
--- a/include/trace/events/mmflags.h~tracing-incorrect-gfp_t-conversion-fix
+++ a/include/trace/events/mmflags.h
@@ -13,53 +13,57 @@
* Thus most bits set go first.
*/
+#define FUL __force unsigned long
+
#define __def_gfpflag_names \
- {(__force unsigned long)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \
- {(__force unsigned long)GFP_TRANSHUGE_LIGHT, "GFP_TRANSHUGE_LIGHT"}, \
- {(__force unsigned long)GFP_HIGHUSER_MOVABLE, "GFP_HIGHUSER_MOVABLE"},\
- {(__force unsigned long)GFP_HIGHUSER, "GFP_HIGHUSER"}, \
- {(__force unsigned long)GFP_USER, "GFP_USER"}, \
- {(__force unsigned long)GFP_KERNEL_ACCOUNT, "GFP_KERNEL_ACCOUNT"}, \
- {(__force unsigned long)GFP_KERNEL, "GFP_KERNEL"}, \
- {(__force unsigned long)GFP_NOFS, "GFP_NOFS"}, \
- {(__force unsigned long)GFP_ATOMIC, "GFP_ATOMIC"}, \
- {(__force unsigned long)GFP_NOIO, "GFP_NOIO"}, \
- {(__force unsigned long)GFP_NOWAIT, "GFP_NOWAIT"}, \
- {(__force unsigned long)GFP_DMA, "GFP_DMA"}, \
- {(__force unsigned long)__GFP_HIGHMEM, "__GFP_HIGHMEM"}, \
- {(__force unsigned long)GFP_DMA32, "GFP_DMA32"}, \
- {(__force unsigned long)__GFP_HIGH, "__GFP_HIGH"}, \
- {(__force unsigned long)__GFP_ATOMIC, "__GFP_ATOMIC"}, \
- {(__force unsigned long)__GFP_IO, "__GFP_IO"}, \
- {(__force unsigned long)__GFP_FS, "__GFP_FS"}, \
- {(__force unsigned long)__GFP_NOWARN, "__GFP_NOWARN"}, \
- {(__force unsigned long)__GFP_RETRY_MAYFAIL, "__GFP_RETRY_MAYFAIL"}, \
- {(__force unsigned long)__GFP_NOFAIL, "__GFP_NOFAIL"}, \
- {(__force unsigned long)__GFP_NORETRY, "__GFP_NORETRY"}, \
- {(__force unsigned long)__GFP_COMP, "__GFP_COMP"}, \
- {(__force unsigned long)__GFP_ZERO, "__GFP_ZERO"}, \
- {(__force unsigned long)__GFP_NOMEMALLOC, "__GFP_NOMEMALLOC"}, \
- {(__force unsigned long)__GFP_MEMALLOC, "__GFP_MEMALLOC"}, \
- {(__force unsigned long)__GFP_HARDWALL, "__GFP_HARDWALL"}, \
- {(__force unsigned long)__GFP_THISNODE, "__GFP_THISNODE"}, \
- {(__force unsigned long)__GFP_RECLAIMABLE, "__GFP_RECLAIMABLE"}, \
- {(__force unsigned long)__GFP_MOVABLE, "__GFP_MOVABLE"}, \
- {(__force unsigned long)__GFP_ACCOUNT, "__GFP_ACCOUNT"}, \
- {(__force unsigned long)__GFP_WRITE, "__GFP_WRITE"}, \
- {(__force unsigned long)__GFP_RECLAIM, "__GFP_RECLAIM"}, \
- {(__force unsigned long)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"},\
- {(__force unsigned long)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"},\
- {(__force unsigned long)__GFP_ZEROTAGS, "__GFP_ZEROTAGS"} \
+ {(FUL)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \
+ {(FUL)GFP_TRANSHUGE_LIGHT, "GFP_TRANSHUGE_LIGHT"}, \
+ {(FUL)GFP_HIGHUSER_MOVABLE, "GFP_HIGHUSER_MOVABLE"}, \
+ {(FUL)GFP_HIGHUSER, "GFP_HIGHUSER"}, \
+ {(FUL)GFP_USER, "GFP_USER"}, \
+ {(FUL)GFP_KERNEL_ACCOUNT, "GFP_KERNEL_ACCOUNT"}, \
+ {(FUL)GFP_KERNEL, "GFP_KERNEL"}, \
+ {(FUL)GFP_NOFS, "GFP_NOFS"}, \
+ {(FUL)GFP_ATOMIC, "GFP_ATOMIC"}, \
+ {(FUL)GFP_NOIO, "GFP_NOIO"}, \
+ {(FUL)GFP_NOWAIT, "GFP_NOWAIT"}, \
+ {(FUL)GFP_DMA, "GFP_DMA"}, \
+ {(FUL)__GFP_HIGHMEM, "__GFP_HIGHMEM"}, \
+ {(FUL)GFP_DMA32, "GFP_DMA32"}, \
+ {(FUL)__GFP_HIGH, "__GFP_HIGH"}, \
+ {(FUL)__GFP_ATOMIC, "__GFP_ATOMIC"}, \
+ {(FUL)__GFP_IO, "__GFP_IO"}, \
+ {(FUL)__GFP_FS, "__GFP_FS"}, \
+ {(FUL)__GFP_NOWARN, "__GFP_NOWARN"}, \
+ {(FUL)__GFP_RETRY_MAYFAIL, "__GFP_RETRY_MAYFAIL"}, \
+ {(FUL)__GFP_NOFAIL, "__GFP_NOFAIL"}, \
+ {(FUL)__GFP_NORETRY, "__GFP_NORETRY"}, \
+ {(FUL)__GFP_COMP, "__GFP_COMP"}, \
+ {(FUL)__GFP_ZERO, "__GFP_ZERO"}, \
+ {(FUL)__GFP_NOMEMALLOC, "__GFP_NOMEMALLOC"}, \
+ {(FUL)__GFP_MEMALLOC, "__GFP_MEMALLOC"}, \
+ {(FUL)__GFP_HARDWALL, "__GFP_HARDWALL"}, \
+ {(FUL)__GFP_THISNODE, "__GFP_THISNODE"}, \
+ {(FUL)__GFP_RECLAIMABLE, "__GFP_RECLAIMABLE"}, \
+ {(FUL)__GFP_MOVABLE, "__GFP_MOVABLE"}, \
+ {(FUL)__GFP_ACCOUNT, "__GFP_ACCOUNT"}, \
+ {(FUL)__GFP_WRITE, "__GFP_WRITE"}, \
+ {(FUL)__GFP_RECLAIM, "__GFP_RECLAIM"}, \
+ {(FUL)__GFP_DIRECT_RECLAIM, "__GFP_DIRECT_RECLAIM"}, \
+ {(FUL)__GFP_KSWAPD_RECLAIM, "__GFP_KSWAPD_RECLAIM"}, \
+ {(FUL)__GFP_ZEROTAGS, "__GFP_ZEROTAGS"} \
#ifdef CONFIG_KASAN_HW_TAGS
-#define __def_gfpflag_names_kasan , \
- {(__force unsigned long)__GFP_SKIP_ZERO, "__GFP_SKIP_ZERO"}, \
- {(__force unsigned long)__GFP_SKIP_KASAN_POISON, "__GFP_SKIP_KASAN_POISON"}, \
- {(__force unsigned long)__GFP_SKIP_KASAN_UNPOISON, "__GFP_SKIP_KASAN_UNPOISON"}
+#define __def_gfpflag_names_kasan , \
+ {(FUL)__GFP_SKIP_ZERO, "__GFP_SKIP_ZERO"}, \
+ {(FUL)__GFP_SKIP_KASAN_POISON, "__GFP_SKIP_KASAN_POISON"}, \
+ {(FUL)__GFP_SKIP_KASAN_UNPOISON,"__GFP_SKIP_KASAN_UNPOISON"}
#else
#define __def_gfpflag_names_kasan
#endif
+#undef FUL
+
#define show_gfp_flags(flags) \
(flags) ? __print_flags(flags, "|", \
__def_gfpflag_names __def_gfpflag_names_kasan \
_
next prev parent reply other threads:[~2022-05-07 22:48 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <8d627f02-183f-c4e7-7c15-77b2b438536b@openvz.org>
2022-05-06 20:38 ` [PATCH] percpu: improve percpu_alloc_percpu event trace kernel test robot
[not found] ` <e1c09bbb-2c58-a986-c704-1db538da905a@openvz.org>
[not found] ` <331d88fe-f4f7-657c-02a2-d977f15fbff6@openvz.org>
2022-05-07 19:37 ` [PATCH mm] tracing: incorrect gfp_t conversion Andrew Morton
[not found] ` <8b1cfefa-da7d-3376-cf04-1ff77dab8170@openvz.org>
2022-05-07 22:48 ` Andrew Morton [this message]
2022-05-07 23:00 ` Andrew Morton
2022-05-08 20:37 ` Matthew Wilcox
2022-05-08 20:51 ` Joe Perches
[not found] ` <8b9ba8ce-7376-2ef2-95f5-30e53cb46914@openvz.org>
2022-05-15 22:09 ` [PATCH mm v2] " Steven Rostedt
2022-05-16 20:55 ` Andrew Morton
2022-05-09 21:06 ` [PATCH] percpu: improve percpu_alloc_percpu event trace Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220507154835.4d4d737d8eed579969f15938@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=kernel@openvz.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
--cc=vvs@openvz.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox