On 12/02/2015 06:40 PM, yalin wang wrote: (please trim your reply next time, no need to quote whole patch here) > i am thinking why not make %pg* to be more generic ? > not restricted to only GFP / vma flags / page flags . > so could we change format like this ? > define a flag spec struct to include flag and trace_print_flags and some other option : > typedef struct { > unsigned long flag; > struct trace_print_flags *flags; > unsigned long option; } flag_sec; > flag_sec my_flag; > in printk we only pass like this : > printk(“%pg\n”, &my_flag) ; > then it can print any flags defined by user . > more useful for other drivers to use . I don't know, it sounds quite complicated given that we had no flags printing for years and now there's just three kinds of them. The extra struct flag_sec is IMHO nuissance. No other printk format needs such thing AFAIK? For example, if I were to print page flags from several places, each would have to define the struct flag_sec instance, or some header would have to provide it? I could maybe accept passing a flag value and trace_print_flags * as two separate parameters, but I guess that breaks an ancient invariant of one parameter per format string... > Thanks > > > > > > > > > > > > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>