Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753876AbbK0Dkv (ORCPT ); Thu, 26 Nov 2015 22:40:51 -0500 Received: from mail-pa0-f47.google.com ([209.85.220.47]:34550 "EHLO mail-pa0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753748AbbK0Dku convert rfc822-to-8bit (ORCPT ); Thu, 26 Nov 2015 22:40:50 -0500 Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 9.0 \(3094\)) Subject: Re: [PATCH v2 6/9] mm, debug: introduce dump_gfpflag_names() for symbolic printing of gfp_flags From: yalin wang In-Reply-To: <56558D4C.3060902@suse.cz> Date: Fri, 27 Nov 2015 11:40:40 +0800 Cc: Joonsoo Kim , "open list:MEMORY MANAGEMENT" , linux-kernel , Andrew Morton , Minchan Kim , Sasha Levin , "Kirill A. Shutemov" , Mel Gorman , Michal Hocko Content-Transfer-Encoding: 8BIT Message-Id: References: <1448368581-6923-1-git-send-email-vbabka@suse.cz> <1448368581-6923-7-git-send-email-vbabka@suse.cz> <20151125081645.GC10494@js1304-P5Q-DELUXE> <56558D4C.3060902@suse.cz> To: Vlastimil Babka X-Mailer: Apple Mail (2.3094) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2841 Lines: 72 > On Nov 25, 2015, at 18:28, Vlastimil Babka wrote: > > On 11/25/2015 09:16 AM, Joonsoo Kim wrote: >> On Tue, Nov 24, 2015 at 01:36:18PM +0100, Vlastimil Babka wrote: >>> --- a/include/trace/events/gfpflags.h >>> +++ b/include/trace/events/gfpflags.h >>> @@ -8,8 +8,8 @@ >>> * >>> * Thus most bits set go first. >>> */ >>> -#define show_gfp_flags(flags) \ >>> - (flags) ? __print_flags(flags, "|", \ >>> + >>> +#define __def_gfpflag_names \ >>> {(unsigned long)GFP_TRANSHUGE, "GFP_TRANSHUGE"}, \ >>> {(unsigned long)GFP_HIGHUSER_MOVABLE, "GFP_HIGHUSER_MOVABLE"}, \ >>> {(unsigned long)GFP_HIGHUSER, "GFP_HIGHUSER"}, \ >>> @@ -19,9 +19,13 @@ >>> {(unsigned long)GFP_NOFS, "GFP_NOFS"}, \ >>> {(unsigned long)GFP_ATOMIC, "GFP_ATOMIC"}, \ >>> {(unsigned long)GFP_NOIO, "GFP_NOIO"}, \ >>> + {(unsigned long)GFP_NOWAIT, "GFP_NOWAIT"}, \ >>> + {(unsigned long)__GFP_DMA, "GFP_DMA"}, \ >>> + {(unsigned long)__GFP_DMA32, "GFP_DMA32"}, \ >>> {(unsigned long)__GFP_HIGH, "GFP_HIGH"}, \ >>> {(unsigned long)__GFP_ATOMIC, "GFP_ATOMIC"}, \ >>> {(unsigned long)__GFP_IO, "GFP_IO"}, \ >>> + {(unsigned long)__GFP_FS, "GFP_FS"}, \ >>> {(unsigned long)__GFP_COLD, "GFP_COLD"}, \ >>> {(unsigned long)__GFP_NOWARN, "GFP_NOWARN"}, \ >>> {(unsigned long)__GFP_REPEAT, "GFP_REPEAT"}, \ >>> @@ -36,8 +40,12 @@ >>> {(unsigned long)__GFP_RECLAIMABLE, "GFP_RECLAIMABLE"}, \ >>> {(unsigned long)__GFP_MOVABLE, "GFP_MOVABLE"}, \ >>> {(unsigned long)__GFP_NOTRACK, "GFP_NOTRACK"}, \ >>> + {(unsigned long)__GFP_WRITE, "GFP_WRITE"}, \ >>> {(unsigned long)__GFP_DIRECT_RECLAIM, "GFP_DIRECT_RECLAIM"}, \ >>> {(unsigned long)__GFP_KSWAPD_RECLAIM, "GFP_KSWAPD_RECLAIM"}, \ >>> {(unsigned long)__GFP_OTHER_NODE, "GFP_OTHER_NODE"} \ >>> - ) : "GFP_NOWAIT" >>> >>> +#define show_gfp_flags(flags) \ >>> + (flags) ? __print_flags(flags, "|", \ >>> + __def_gfpflag_names \ >>> + ) : "none" >> >> How about moving this to gfp.h or something? >> Now, we use it in out of tracepoints so there is no need to keep it >> in include/trace/events/xxx. > > Hm I didn't want to pollute such widely included header with such defines. And > show_gfp_flags shouldn't be there definitely as it depends on __print_flags. > What do others think? how about add this into standard printk() format ? like cpu mask print in printk use %*pb[l] , it define a macro cpumask_pr_args to print cpumask . we can also define a new format like %pG means print flag , then it will be useful for other code to use , like dump vma / mm flags .. Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/