From: Frederic Weisbecker <fweisbec@xxxxxxxxx> Date: Fri, 19 Mar 2010 05:24:16 +0100 > On Thu, Mar 18, 2010 at 09:02:41PM -0700, David Miller wrote: >> >> Can we please remove the CALLER_ADDR0 et al. evaluations at the top >> level in perf_fetch_caller_regs()? >> >> I take great pains to avoid having to flush the register windows on >> sparc64 even when fetching callchains et al and any >> __builtin_return_address() with an argument greater than zero is going >> to force a register window flush to get emitted by gcc undoing all of >> my hard work :-) > > > Ah. But does that really cause bad things? I mean you don't need > to save all the ix/ox/lx registers, only the instruction pointer, > frame pointer, flags, and something that can help user_mode() to > return 0. > > I don't know deeply this area, but the frame pointer is > part of the window in the ix things, right? And the CALLER > thing screws up the frame pointer and makes it hard to rewind > precisely? It causes bad things, as in performance is rediculiously bad if GCC emits that register window flush. That's the whole point of my mail, it undoes all of the hard work I do to avoid the register window flushes. I fix the performance problems by doing it by hand, walking up the unflushed register windows and storing only the frame pointer and return PC into the stack frame. > Yeah, ok if this is that a burden/useless for archs then I'm going to > remove it. Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html