From: Fengguang Wu <fengguang.wu@intel.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
kbuild-all@01.org, Christopher Li <sparse@chrisli.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
Date: Wed, 10 Apr 2013 07:46:47 +0800 [thread overview]
Message-ID: <20130409234647.GA6916@localhost> (raw)
In-Reply-To: <1365522679.25498.65.camel@gandalf.local.home>
On Tue, Apr 09, 2013 at 11:51:19AM -0400, Steven Rostedt wrote:
> On Sat, 2013-04-06 at 12:08 +0800, kbuild test robot wrote:
> > tree: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux master
> > head: d08d528dc1848fb369a0b27cdb0749d8f6f38063
> > commit: 62ba180e80f4194a498585ac0e4c07daa8ca08d1 tracing: add flag output for kmem events
> > date: 3 years, 10 months ago
> >
> >
> > sparse warnings: (new ones prefixed by >>)
>
> These are meaningless errors. I don't see anything here that we should
> be concerned about.
Sorry. It's the second time I see such gfp_t warnings commented as
harmless.
Should I blacklist "sparse: cast from restricted gfp_t", or the more
general pattern "sparse: cast from restricted"?
Thanks,
Fengguang
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:47:1: sparse: incorrect type in argument 3 (different base types)
> > include/trace/events/kmem.h:47:1: expected unsigned long [unsigned] flags
> > include/trace/events/kmem.h:47:1: got restricted gfp_t [usertype] gfp_flags
> > include/trace/events/kmem.h:47:1: sparse: symbol 'ftrace_raw_output_kmalloc' was not declared. Should it be static?
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:81:1: sparse: incorrect type in argument 3 (different base types)
> > include/trace/events/kmem.h:81:1: expected unsigned long [unsigned] flags
> > include/trace/events/kmem.h:81:1: got restricted gfp_t [usertype] gfp_flags
> > include/trace/events/kmem.h:81:1: sparse: symbol 'ftrace_raw_output_kmem_cache_alloc' was not declared. Should it be static?
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:115:1: sparse: incorrect type in argument 3 (different base types)
> > include/trace/events/kmem.h:115:1: expected unsigned long [unsigned] flags
> > include/trace/events/kmem.h:115:1: got restricted gfp_t [usertype] gfp_flags
> > include/trace/events/kmem.h:115:1: sparse: symbol 'ftrace_raw_output_kmalloc_node' was not declared. Should it be static?
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: cast from restricted gfp_t
> > >> include/trace/events/kmem.h:153:1: sparse: incorrect type in argument 3 (different base types)
> > include/trace/events/kmem.h:153:1: expected unsigned long [unsigned] flags
> > include/trace/events/kmem.h:153:1: got restricted gfp_t [usertype] gfp_flags
> > >> include/trace/events/kmem.h:153:1: sparse: too many warnings
> > include/trace/events/kmem.h:47:1: sparse: incompatible types for operation (<)
> > include/trace/events/kmem.h:47:1: left side has type void const *<noident>
> > include/trace/events/kmem.h:47:1: right side has type int
> > include/trace/events/kmem.h:81:1: sparse: incompatible types for operation (<)
> > include/trace/events/kmem.h:81:1: left side has type void const *<noident>
> > include/trace/events/kmem.h:81:1: right side has type int
> > include/trace/events/kmem.h:115:1: sparse: incompatible types for operation (<)
> > include/trace/events/kmem.h:115:1: left side has type void const *<noident>
> > include/trace/events/kmem.h:115:1: right side has type int
> > include/trace/events/kmem.h:153:1: sparse: incompatible types for operation (<)
> > include/trace/events/kmem.h:153:1: left side has type void const *<noident>
> > include/trace/events/kmem.h:153:1: right side has type int
> > include/trace/events/kmem.h:191:1: sparse: incompatible types for operation (<)
> > include/trace/events/kmem.h:191:1: left side has type void const *<noident>
> > include/trace/events/kmem.h:191:1: right side has type int
> > include/trace/events/kmem.h:210:1: sparse: incompatible types for operation (<)
> > include/trace/events/kmem.h:210:1: left side has type void const *<noident>
> > include/trace/events/kmem.h:210:1: right side has type int
> > In file included from arch/x86/include/asm/smp.h:13:0,
> > from arch/x86/include/asm/mmzone_64.h:12,
> > from arch/x86/include/asm/mmzone.h:4,
> > from include/linux/mmzone.h:775,
> > from include/linux/gfp.h:4,
> > from include/linux/mm.h:8,
> > from mm/util.c:1:
> > arch/x86/include/asm/apic.h: In function 'native_apic_msr_read':
> > arch/x86/include/asm/apic.h:135:11: warning: variable 'high' set but not used [-Wunused-but-set-variable]
> > arch/x86/include/asm/apic.h: In function 'x2apic_enabled':
> > arch/x86/include/asm/apic.h:176:11: warning: variable 'msr2' set but not used [-Wunused-but-set-variable]
> > In file included from include/trace/ftrace.h:162:0,
> > from include/trace/define_trace.h:56,
> > from include/trace/events/kmem.h:231,
> > from mm/util.c:10:
> > include/trace/events/kmem.h: In function 'ftrace_raw_output_kfree':
> > include/trace/events/kmem.h:191:1: warning: variable 'p' set but not used [-Wunused-but-set-variable]
> > include/trace/events/kmem.h: In function 'ftrace_raw_output_kmem_cache_free':
> > include/trace/events/kmem.h:210:1: warning: variable 'p' set but not used [-Wunused-but-set-variable]
> >
> > vim +47 include/trace/events/kmem.h
> >
> > 41 {(unsigned long)__GFP_HARDWALL, "GFP_HARDWALL"}, \
> > 42 {(unsigned long)__GFP_THISNODE, "GFP_THISNODE"}, \
> > 43 {(unsigned long)__GFP_RECLAIMABLE, "GFP_RECLAIMABLE"}, \
> > 44 {(unsigned long)__GFP_MOVABLE, "GFP_MOVABLE"} \
> > 45 ) : "GFP_NOWAIT"
> > 46
> > > 47 TRACE_EVENT(kmalloc,
> > 48
> > 49 TP_PROTO(unsigned long call_site,
> > 50 const void *ptr,
> > 51 size_t bytes_req,
> > 52 size_t bytes_alloc,
> > 53 gfp_t gfp_flags),
> > 54
> > 55 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
> > 56
> > 57 TP_STRUCT__entry(
> > 58 __field( unsigned long, call_site )
> > 59 __field( const void *, ptr )
> > 60 __field( size_t, bytes_req )
> > 61 __field( size_t, bytes_alloc )
> > 62 __field( gfp_t, gfp_flags )
> > 63 ),
> > 64
> > 65 TP_fast_assign(
> > 66 __entry->call_site = call_site;
> > 67 __entry->ptr = ptr;
> > 68 __entry->bytes_req = bytes_req;
> > 69 __entry->bytes_alloc = bytes_alloc;
> > 70 __entry->gfp_flags = gfp_flags;
> > 71 ),
> > 72
> > 73 TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s",
> > 74 __entry->call_site,
> > 75 __entry->ptr,
> > 76 __entry->bytes_req,
> > 77 __entry->bytes_alloc,
> > 78 show_gfp_flags(__entry->gfp_flags))
> > 79 );
> > 80
> > 81 TRACE_EVENT(kmem_cache_alloc,
> > 82
> > 83 TP_PROTO(unsigned long call_site,
> > 84 const void *ptr,
> > 85 size_t bytes_req,
> > 86 size_t bytes_alloc,
> > 87 gfp_t gfp_flags),
> > 88
> > 89 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags),
> > 90
> > 91 TP_STRUCT__entry(
> > 92 __field( unsigned long, call_site )
> > 93 __field( const void *, ptr )
> > 94 __field( size_t, bytes_req )
> > 95 __field( size_t, bytes_alloc )
> > 96 __field( gfp_t, gfp_flags )
> > 97 ),
> > 98
> > 99 TP_fast_assign(
> > 100 __entry->call_site = call_site;
> > 101 __entry->ptr = ptr;
> > 102 __entry->bytes_req = bytes_req;
> > 103 __entry->bytes_alloc = bytes_alloc;
> > 104 __entry->gfp_flags = gfp_flags;
> > 105 ),
> > 106
> > 107 TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s",
> > 108 __entry->call_site,
> > 109 __entry->ptr,
> > 110 __entry->bytes_req,
> > 111 __entry->bytes_alloc,
> > 112 show_gfp_flags(__entry->gfp_flags))
> > 113 );
> > 114
> > 115 TRACE_EVENT(kmalloc_node,
> > 116
> > 117 TP_PROTO(unsigned long call_site,
> > 118 const void *ptr,
> > 119 size_t bytes_req,
> > 120 size_t bytes_alloc,
> > 121 gfp_t gfp_flags,
> > 122 int node),
> > 123
> > 124 TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node),
> > 125
> > 126 TP_STRUCT__entry(
> > 127 __field( unsigned long, call_site )
> > 128 __field( const void *, ptr )
> > 129 __field( size_t, bytes_req )
> > 130 __field( size_t, bytes_alloc )
> > 131 __field( gfp_t, gfp_flags )
> > 132 __field( int, node )
> > 133 ),
> > 134
> > 135 TP_fast_assign(
> > 136 __entry->call_site = call_site;
> > 137 __entry->ptr = ptr;
> > 138 __entry->bytes_req = bytes_req;
> > 139 __entry->bytes_alloc = bytes_alloc;
> > 140 __entry->gfp_flags = gfp_flags;
> > 141 __entry->node = node;
> > 142 ),
> > 143
> > 144 TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d",
> > 145 __entry->call_site,
> > 146 __entry->ptr,
> > 147 __entry->bytes_req,
> > 148 __entry->bytes_alloc,
> > 149 show_gfp_flags(__entry->gfp_flags),
> > 150 __entry->node)
> > 151 );
> > 152
> > 153 TRACE_EVENT(kmem_cache_alloc_node,
> > 154
> > 155 TP_PROTO(unsigned long call_site,
> > 156 const void *ptr,
> >
> > ---
> > 0-DAY kernel build testing backend Open Source Technology Center
> > http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
>
parent reply other threads:[~2013-04-09 23:47 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <1365522679.25498.65.camel@gandalf.local.home>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130409234647.GA6916@localhost \
--to=fengguang.wu@intel.com \
--cc=fweisbec@gmail.com \
--cc=kbuild-all@01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=sparse@chrisli.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.