Re: [PATCH] mm: compaction: show gfp flag names in try_to_compact_pages tracepoint

From: Yafang Shao
Date: Sun Mar 03 2019 - 21:26:20 EST


On Sun, Mar 3, 2019 at 7:04 AM kbuild test robot <lkp@xxxxxxxxx> 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@xxxxxxx>
> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>
> ---
> 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