> On Nov 25, 2015, at 18:28, Vlastimil Babka <vba...@suse.cz> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to