Hi,
Here is another instruction trace from a kernel context switch trace.
Quite a lot of register and CR save/restore code.
Regards,
Anton
c02943d8 fsnotify+0x8 mfcrr12
c02943dc fsnotify+0xc std r20,-96(r1)
c02943e0 fsnotify+0x10 std r21,-88(r1)
On Wed, 2015-08-05 at 14:03 +1000, Anton Blanchard wrote:
Hi,
While looking at traces of kernel workloads, I noticed places where gcc
used a large number of non volatiles. Some of these functions
did very little work, and we spent most of our time saving the
non volatiles to the stack and
On Mon, Aug 10, 2015 at 02:52:28PM +1000, Anton Blanchard wrote:
Hi Bill, Segher,
I agree with Segher. We already know we have opportunities to do a
better job with shrink-wrapping (pushing this kind of useless
activity down past early exits), so having examples of code to look
at to
On Tue, Aug 11, 2015 at 03:08:29PM -0500, Segher Boessenkool wrote:
[snip code]
After the prologue there are 46 insns executed before the epilogue.
Many of those are conditional branches (that are not executed); it is
all fall-through until it jumps to the tail (the few insns before
the
Hi Bill, Segher,
I agree with Segher. We already know we have opportunities to do a
better job with shrink-wrapping (pushing this kind of useless
activity down past early exits), so having examples of code to look
at to improve this would be useful.
I'll look out for specific examples. I
I agree with Segher. We already know we have opportunities to do a better
job with shrink-wrapping (pushing this kind of useless activity down past
early exits), so having examples of code to look at to improve this would
be useful.
-- Bill
Bill Schmidt, Ph.D.
Linux on Power Toolchain
IBM
Hi Anton,
On Wed, Aug 05, 2015 at 02:03:00PM +1000, Anton Blanchard wrote:
While looking at traces of kernel workloads, I noticed places where gcc
used a large number of non volatiles. Some of these functions
did very little work, and we spent most of our time saving the
non volatiles to the
Hi,
While looking at traces of kernel workloads, I noticed places where gcc
used a large number of non volatiles. Some of these functions
did very little work, and we spent most of our time saving the
non volatiles to the stack and reading them back.
It made me wonder if we have the right ratio