Thread (7 messages) 7 messages, 3 authors, 2020-02-19

Re: Surprising code generated for vdso_read_begin()

From: Segher Boessenkool <hidden>
Date: 2020-02-19 13:08:59
Also in: linux-mips, linuxppc-dev, lkml

On Wed, Feb 19, 2020 at 10:52:16AM +0100, Arnd Bergmann wrote:
On Wed, Feb 19, 2020 at 9:45 AM Christophe Leroy
[off-list ref] wrote:
quoted
Le 16/02/2020 à 19:10, Arnd Bergmann a écrit :
quoted
On Sat, Jan 11, 2020 at 12:33 PM Segher Boessenkool
[off-list ref] wrote:
quoted
On Fri, Jan 10, 2020 at 07:45:44AM +0100, Christophe Leroy wrote:
quoted
Le 09/01/2020 à 21:07, Segher Boessenkool a écrit :
quoted
It looks like the compiler did loop peeling.  What GCC version is this?
Please try current trunk (to become GCC 10), or at least GCC 9?
It is with GCC 5.5

https://mirrors.edge.kernel.org/pub/tools/crosstool/ doesn't have more
recent than 8.1
Arnd, can you update the tools?  We are at 8.3 and 9.2 now :-)  Or is
this hard and/or painful to do?
To follow up on this older thread, I have now uploaded 6.5, 7.5, 8.3 and 9.2
binaries, as well as a recent 10.0 snapshot.
Thanks Arnd,

I have built the VDSO with 9.2, I get less performant result than with
8.2 (same performance as with 5.5).

After a quick look, I see:
- Irrelevant NOPs to align loops and stuff, allthough -mpcu=860 should
avoid that.
- A stack frame is set for saving r31 in __c_kernel_clock_gettime. GCC
8.1 don't need that, all VDSO functions are frameless with 8.1
If you think it should be fixed in gcc, maybe try to reproduce it in
https://godbolt.org/
(Feel free to skip this step; and don't put links to godbolt (or anything
else external) in our bugzilla, please; such links go stale before you
know it.)
and open a gcc bug against that.
Yes please :-)
Also, please try the gcc-10 snapshot, which has the highest chance
of getting fixes if it shows the same issue (or worse).
If it is a regression, chances are it will be backported.  (But not to
9.3, which is due in just a few weeks, just like 8.4).  If it is just a
side effect of some other change, it will probably *not* be undone, not
on trunk (GCC 10) either.  It depends.

But sure, always test trunk if you can.


Segher

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help