<html><body>
<p><font size="2" face="sans-serif">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.<br>
<br>
-- Bill<br>
<br>
Bill Schmidt, Ph.D.<br>
Linux on Power Toolchain<br>
IBM Linux Technology Center<br>
wschmidt@us.ibm.com   (507) 319-6873<br>
</font><br>
<br>
<img width="16" height="16" src="cid:1__=09BBF409DFB3E36B8f9e8a93df938@us.ibm.com" border="0" alt="Inactive hide details for Segher Boessenkool ---08/05/2015 06:20:02 AM---Hi Anton, On Wed, Aug 05, 2015 at 02:03:00PM +1000, An"><font size="2" color="#424282" face="sans-serif">Segher Boessenkool ---08/05/2015 06:20:02 AM---Hi Anton, On Wed, Aug 05, 2015 at 02:03:00PM +1000, Anton Blanchard wrote:</font><br>
<br>
<font size="1" color="#5F5F5F" face="sans-serif">From:      </font><font size="1" face="sans-serif">Segher Boessenkool <segher@kernel.crashing.org></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">To:        </font><font size="1" face="sans-serif">Anton Blanchard <anton@samba.org></font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Cc:        </font><font size="1" face="sans-serif">linuxppc-dev@lists.ozlabs.org, Michael Gschwind/Watson/IBM@IBMUS, Alan Modra <amodra@gmail.com>, Bill Schmidt/Rochester/IBM@IBMUS, Ulrich Weigand <Ulrich.Weigand@de.ibm.com>, paulus@samba.org</font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Date:      </font><font size="1" face="sans-serif">08/05/2015 06:20 AM</font><br>
<font size="1" color="#5F5F5F" face="sans-serif">Subject:   </font><font size="1" face="sans-serif">Re: RFC: Reducing the number of non volatile GPRs in the ppc64 kernel</font><br>
<hr width="100%" size="2" align="left" noshade style="color:#8091A5; "><br>
<br>
<br>
<tt><font size="2">Hi Anton,<br>
<br>
On Wed, Aug 05, 2015 at 02:03:00PM +1000, Anton Blanchard wrote:<br>
> While looking at traces of kernel workloads, I noticed places where gcc<br>
> used a large number of non volatiles. Some of these functions<br>
> did very little work, and we spent most of our time saving the<br>
> non volatiles to the stack and reading them back.<br>
<br>
That is something that should be fixed in GCC -- do you have an example<br>
of such a function?<br>
<br>
> It made me wonder if we have the right ratio of volatile to non<br>
> volatile GPRs. Since the kernel is completely self contained, we could<br>
> potentially change that ratio.<br>
> <br>
> Attached is a quick hack to gcc and the kernel to decrease the number<br>
> of non volatile GPRs to 8. I'm not sure if this is a good idea (and if<br>
> the volatile to non volatile ratio is right), but this gives us<br>
> something to play with.<br>
<br>
Instead of the GCC hack you can add a bunch of -fcall-used-r14 etc.<br>
options; does that not work for you?<br>
<br>
<br>
Segher<br>
<br>
</font></tt><br>
<br>
</body></html>