diff mbox series

mm: compaction: show gfp flag names in try_to_compact_pages tracepoint

Message ID 1551501538-4092-1-git-send-email-laoar.shao@gmail.com (mailing list archive)
State New, archived
Headers show
Series mm: compaction: show gfp flag names in try_to_compact_pages tracepoint | expand

Commit Message

Yafang Shao March 2, 2019, 4:38 a.m. UTC
show the gfp flag names instead of the gfp_mask could make the trace
more convenient.

Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
---
 include/trace/events/compaction.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

kernel test robot March 2, 2019, 11:04 p.m. UTC | #1
Hi Yafang,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tip/perf/core]
[also build test WARNING on v5.0-rc8 next-20190301]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Yafang-Shao/mm-compaction-show-gfp-flag-names-in-try_to_compact_pages-tracepoint/20190302-212241
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

All warnings (new ones prefixed by >>):

>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t

sparse warnings: (new ones prefixed by >>)

   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: incorrect type in argument 3 (different base types)
>> include/trace/events/compaction.h:171:1: sparse:    expected unsigned long flags
>> include/trace/events/compaction.h:171:1: sparse:    got restricted gfp_t [usertype] gfp_mask
   include/trace/events/compaction.h:171:1: sparse: warning: cast to restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: cast to restricted gfp_t
   include/trace/events/compaction.h:171:1: sparse: warning: restricted gfp_t degrades to integer
   include/trace/events/compaction.h:171:1: sparse: warning: restricted gfp_t degrades to integer
   include/linux/gfp.h:318:27: sparse: warning: restricted gfp_t degrades to integer
   mm/compaction.c:1750:39: sparse: warning: incorrect type in initializer (different base types)
   mm/compaction.c:1750:39: sparse:    expected int may_perform_io
   mm/compaction.c:1750:39: sparse:    got restricted gfp_t
   mm/compaction.c:351:13: sparse: warning: context imbalance in 'compact_trylock_irqsave' - wrong count at exit
   include/linux/spinlock.h:384:9: sparse: warning: context imbalance in 'compact_unlock_should_abort' - unexpected unlock
   mm/compaction.c:545:39: sparse: warning: context imbalance in 'isolate_freepages_block' - unexpected unlock
   mm/compaction.c:943:53: sparse: warning: context imbalance in 'isolate_migratepages_block' - unexpected unlock

vim +171 include/trace/events/compaction.h

b7aba698 Mel Gorman      2011-01-13  170  
837d026d Joonsoo Kim     2015-02-11 @171  TRACE_EVENT(mm_compaction_try_to_compact_pages,
837d026d Joonsoo Kim     2015-02-11  172  
837d026d Joonsoo Kim     2015-02-11  173  	TP_PROTO(
837d026d Joonsoo Kim     2015-02-11  174  		int order,
837d026d Joonsoo Kim     2015-02-11  175  		gfp_t gfp_mask,
a5508cd8 Vlastimil Babka 2016-07-28  176  		int prio),
837d026d Joonsoo Kim     2015-02-11  177  
a5508cd8 Vlastimil Babka 2016-07-28  178  	TP_ARGS(order, gfp_mask, prio),
837d026d Joonsoo Kim     2015-02-11  179  
837d026d Joonsoo Kim     2015-02-11  180  	TP_STRUCT__entry(
837d026d Joonsoo Kim     2015-02-11  181  		__field(int, order)
837d026d Joonsoo Kim     2015-02-11  182  		__field(gfp_t, gfp_mask)
a5508cd8 Vlastimil Babka 2016-07-28  183  		__field(int, prio)
837d026d Joonsoo Kim     2015-02-11  184  	),
837d026d Joonsoo Kim     2015-02-11  185  
837d026d Joonsoo Kim     2015-02-11  186  	TP_fast_assign(
837d026d Joonsoo Kim     2015-02-11  187  		__entry->order = order;
837d026d Joonsoo Kim     2015-02-11  188  		__entry->gfp_mask = gfp_mask;
a5508cd8 Vlastimil Babka 2016-07-28  189  		__entry->prio = prio;
837d026d Joonsoo Kim     2015-02-11  190  	),
837d026d Joonsoo Kim     2015-02-11  191  
91811e0d Yafang Shao     2019-03-02  192  	TP_printk("order=%d gfp_mask=%s priority=%d",
837d026d Joonsoo Kim     2015-02-11  193  		__entry->order,
91811e0d Yafang Shao     2019-03-02  194  		show_gfp_flags(__entry->gfp_mask),
a5508cd8 Vlastimil Babka 2016-07-28  195  		__entry->prio)
837d026d Joonsoo Kim     2015-02-11  196  );
837d026d Joonsoo Kim     2015-02-11  197  

:::::: The code at line 171 was first introduced by commit
:::::: 837d026d560c5ef26abeca0441713d82e4e82cad mm/compaction: more trace to understand when/why compaction start/finish

:::::: TO: Joonsoo Kim <iamjoonsoo.kim@lge.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
Yafang Shao March 4, 2019, 2:25 a.m. UTC | #2
On Sun, Mar 3, 2019 at 7:04 AM kbuild test robot <lkp@intel.com> wrote:
>
> Hi Yafang,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on tip/perf/core]
> [also build test WARNING on v5.0-rc8 next-20190301]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url:    https://github.com/0day-ci/linux/commits/Yafang-Shao/mm-compaction-show-gfp-flag-names-in-try_to_compact_pages-tracepoint/20190302-212241
> reproduce:
>         # apt-get install sparse
>         make ARCH=x86_64 allmodconfig
>         make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
>
> All warnings (new ones prefixed by >>):
>
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
> >> include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>
> sparse warnings: (new ones prefixed by >>)
>
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast from restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: incorrect type in argument 3 (different base types)
> >> include/trace/events/compaction.h:171:1: sparse:    expected unsigned long flags
> >> include/trace/events/compaction.h:171:1: sparse:    got restricted gfp_t [usertype] gfp_mask
>    include/trace/events/compaction.h:171:1: sparse: warning: cast to restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: cast to restricted gfp_t
>    include/trace/events/compaction.h:171:1: sparse: warning: restricted gfp_t degrades to integer
>    include/trace/events/compaction.h:171:1: sparse: warning: restricted gfp_t degrades to integer
>    include/linux/gfp.h:318:27: sparse: warning: restricted gfp_t degrades to integer
>    mm/compaction.c:1750:39: sparse: warning: incorrect type in initializer (different base types)
>    mm/compaction.c:1750:39: sparse:    expected int may_perform_io
>    mm/compaction.c:1750:39: sparse:    got restricted gfp_t
>    mm/compaction.c:351:13: sparse: warning: context imbalance in 'compact_trylock_irqsave' - wrong count at exit
>    include/linux/spinlock.h:384:9: sparse: warning: context imbalance in 'compact_unlock_should_abort' - unexpected unlock
>    mm/compaction.c:545:39: sparse: warning: context imbalance in 'isolate_freepages_block' - unexpected unlock
>    mm/compaction.c:943:53: sparse: warning: context imbalance in 'isolate_migratepages_block' - unexpected unlock
>
> vim +171 include/trace/events/compaction.h
>
> b7aba698 Mel Gorman      2011-01-13  170
> 837d026d Joonsoo Kim     2015-02-11 @171  TRACE_EVENT(mm_compaction_try_to_compact_pages,
> 837d026d Joonsoo Kim     2015-02-11  172
> 837d026d Joonsoo Kim     2015-02-11  173        TP_PROTO(
> 837d026d Joonsoo Kim     2015-02-11  174                int order,
> 837d026d Joonsoo Kim     2015-02-11  175                gfp_t gfp_mask,
> a5508cd8 Vlastimil Babka 2016-07-28  176                int prio),
> 837d026d Joonsoo Kim     2015-02-11  177
> a5508cd8 Vlastimil Babka 2016-07-28  178        TP_ARGS(order, gfp_mask, prio),
> 837d026d Joonsoo Kim     2015-02-11  179
> 837d026d Joonsoo Kim     2015-02-11  180        TP_STRUCT__entry(
> 837d026d Joonsoo Kim     2015-02-11  181                __field(int, order)
> 837d026d Joonsoo Kim     2015-02-11  182                __field(gfp_t, gfp_mask)
> a5508cd8 Vlastimil Babka 2016-07-28  183                __field(int, prio)
> 837d026d Joonsoo Kim     2015-02-11  184        ),
> 837d026d Joonsoo Kim     2015-02-11  185
> 837d026d Joonsoo Kim     2015-02-11  186        TP_fast_assign(
> 837d026d Joonsoo Kim     2015-02-11  187                __entry->order = order;
> 837d026d Joonsoo Kim     2015-02-11  188                __entry->gfp_mask = gfp_mask;
> a5508cd8 Vlastimil Babka 2016-07-28  189                __entry->prio = prio;
> 837d026d Joonsoo Kim     2015-02-11  190        ),
> 837d026d Joonsoo Kim     2015-02-11  191
> 91811e0d Yafang Shao     2019-03-02  192        TP_printk("order=%d gfp_mask=%s priority=%d",
> 837d026d Joonsoo Kim     2015-02-11  193                __entry->order,
> 91811e0d Yafang Shao     2019-03-02  194                show_gfp_flags(__entry->gfp_mask),
> a5508cd8 Vlastimil Babka 2016-07-28  195                __entry->prio)
> 837d026d Joonsoo Kim     2015-02-11  196  );
> 837d026d Joonsoo Kim     2015-02-11  197
>
> :::::: The code at line 171 was first introduced by commit
> :::::: 837d026d560c5ef26abeca0441713d82e4e82cad mm/compaction: more trace to understand when/why compaction start/finish
>
> :::::: TO: Joonsoo Kim <iamjoonsoo.kim@lge.com>
> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Seems this warning isn't introduced by my patch.
My patch is fine.

I will try to investigate how this warning is introduced.

Thanks
Yafang
Michal Hocko March 12, 2019, 4:17 p.m. UTC | #3
On Sat 02-03-19 12:38:57, Yafang Shao wrote:
> show the gfp flag names instead of the gfp_mask could make the trace
> more convenient.

Agreed

> Signed-off-by: Yafang Shao <laoar.shao@gmail.com>

Acked-by: Michal Hocko <mhocko@suse.com>

> ---
>  include/trace/events/compaction.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/include/trace/events/compaction.h b/include/trace/events/compaction.h
> index 6074eff..e66afb818 100644
> --- a/include/trace/events/compaction.h
> +++ b/include/trace/events/compaction.h
> @@ -189,9 +189,9 @@
>  		__entry->prio = prio;
>  	),
>  
> -	TP_printk("order=%d gfp_mask=0x%x priority=%d",
> +	TP_printk("order=%d gfp_mask=%s priority=%d",
>  		__entry->order,
> -		__entry->gfp_mask,
> +		show_gfp_flags(__entry->gfp_mask),
>  		__entry->prio)
>  );
>  
> -- 
> 1.8.3.1
>
Vlastimil Babka March 14, 2019, 8:30 a.m. UTC | #4
On 3/2/19 5:38 AM, Yafang Shao wrote:
> show the gfp flag names instead of the gfp_mask could make the trace
> more convenient.
> 
> Signed-off-by: Yafang Shao <laoar.shao@gmail.com>

Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  include/trace/events/compaction.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/include/trace/events/compaction.h b/include/trace/events/compaction.h
> index 6074eff..e66afb818 100644
> --- a/include/trace/events/compaction.h
> +++ b/include/trace/events/compaction.h
> @@ -189,9 +189,9 @@
>  		__entry->prio = prio;
>  	),
>  
> -	TP_printk("order=%d gfp_mask=0x%x priority=%d",
> +	TP_printk("order=%d gfp_mask=%s priority=%d",
>  		__entry->order,
> -		__entry->gfp_mask,
> +		show_gfp_flags(__entry->gfp_mask),
>  		__entry->prio)
>  );
>  
>
diff mbox series

Patch

diff --git a/include/trace/events/compaction.h b/include/trace/events/compaction.h
index 6074eff..e66afb818 100644
--- a/include/trace/events/compaction.h
+++ b/include/trace/events/compaction.h
@@ -189,9 +189,9 @@ 
 		__entry->prio = prio;
 	),
 
-	TP_printk("order=%d gfp_mask=0x%x priority=%d",
+	TP_printk("order=%d gfp_mask=%s priority=%d",
 		__entry->order,
-		__entry->gfp_mask,
+		show_gfp_flags(__entry->gfp_mask),
 		__entry->prio)
 );