Messages in this thread |  | | Subject | Re: [add to stable] ftrace: Do not function trace inlined functions | From | Steven Rostedt <> | Date | Tue, 08 Jan 2013 17:25:13 -0500 |
| |
On Tue, 2013-01-08 at 14:10 -0800, Greg Kroah-Hartman wrote: > On Tue, Jan 08, 2013 at 04:38:41PM -0500, Steven Rostedt wrote: > > Hi Greg and Ben, > > > > Can you add commit 45959ee7aa645815a5ce303a0ea1e48a21e67c6a to the > > stable trees. > > That showed up in 3.3-rc1, so I don't think it's needed in 3.2-stable.
Well, it should have been marked for stable, which means it missed 3.2.
> > But why add it now? What does it "fix" for 3.4 and 3.7? >
When gcc doesn't inline a function marked inline (with different compilers, it does different things), a function that shouldn't be traced gets traced by the function tracer. The result is a kernel crash, which usually ends up being a triple fault (automatic reboot, hard to debug).
That's because some low level function like local_irqs_disable() gets traced, which is used in the function tracer recursion protection. Which means, that it's outside the recursion protection and when you enable function tracing, it causes the system to reboot.
Thomas just hit this on 3.2-rt, and was asking me why it wasn't marked for stable. I just didn't think of it at the time.
-- Steve
|  |