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.1Arnd, 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.1If 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