linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* stack validation warning on lttng-modules bytecode interpreter
@ 2016-06-15 16:55 Mathieu Desnoyers
  2016-06-15 18:18 ` Josh Poimboeuf
  0 siblings, 1 reply; 8+ messages in thread
From: Mathieu Desnoyers @ 2016-06-15 16:55 UTC (permalink / raw)
  To: Josh Poimboeuf; +Cc: lttng-dev, Linux Kernel Mailing List

Hi Josh,

I notice that with gcc 6.1.1, kernel 4.6, with
CONFIG_STACK_VALIDATION=y, building lttng-modules master
at commit 6c09dd94 gives this warning:

lttng-modules/lttng-filter-interpreter.o: warning: objtool: 
lttng_filter_interpret_bytecode()+0x58: sibling call from callable instruction with changed frame pointer

this object implements a bytecode interpreter using an explicit
jump table (see https://github.com/lttng/lttng-modules/blob/master/lttng-filter-interpreter.c)

If I define "INTERPRETER_USE_SWITCH" at the top of the file,
thus using the switch-case fallback implementation, the
warning vanishes.

We use an explicit jump table rather than a switch case whenever
possible for performance reasons.

I notice that tools/objtool/builtin-check.c needs to be aware of
switch-cases transformed into jump tables by the compiler. Are
explicit jump tables supported by the stack validator ? Do we
need to add annotation to our code ?

Thanks,

Mathieu

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-06-15 20:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-15 16:55 stack validation warning on lttng-modules bytecode interpreter Mathieu Desnoyers
2016-06-15 18:18 ` Josh Poimboeuf
2016-06-15 19:13   ` Mathieu Desnoyers
2016-06-15 19:38     ` Josh Poimboeuf
2016-06-15 20:01       ` Mathieu Desnoyers
2016-06-15 20:24         ` Josh Poimboeuf
2016-06-15 20:28           ` Josh Poimboeuf
2016-06-15 20:42             ` Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).