Re: Surprising code generated for vdso_read_begin()

2020-02-19 Thread Segher Boessenkool
On Wed, Feb 19, 2020 at 10:52:16AM +0100, Arnd Bergmann wrote: > On Wed, Feb 19, 2020 at 9:45 AM Christophe Leroy > wrote: > > Le 16/02/2020 à 19:10, Arnd Bergmann a écrit : > > > On Sat, Jan 11, 2020 at 12:33 PM Segher Boessenkool > > > wrote: > > >> > > >> On Fri, Jan 10, 2020 at 07:45:44AM

Re: Surprising code generated for vdso_read_begin()

2020-02-19 Thread Arnd Bergmann
On Wed, Feb 19, 2020 at 9:45 AM Christophe Leroy wrote: > Le 16/02/2020 à 19:10, Arnd Bergmann a écrit : > > On Sat, Jan 11, 2020 at 12:33 PM Segher Boessenkool > > wrote: > >> > >> On Fri, Jan 10, 2020 at 07:45:44AM +0100, Christophe Leroy wrote: > >>> Le 09/01/2020 à 21:07, Segher Boessenkool

Re: Surprising code generated for vdso_read_begin()

2020-02-19 Thread Christophe Leroy
Le 16/02/2020 à 19:10, Arnd Bergmann a écrit : On Sat, Jan 11, 2020 at 12:33 PM Segher Boessenkool wrote: On Fri, Jan 10, 2020 at 07:45:44AM +0100, Christophe Leroy wrote: Le 09/01/2020 à 21:07, Segher Boessenkool a écrit : It looks like the compiler did loop peeling. What GCC version

Re: Surprising code generated for vdso_read_begin()

2020-02-16 Thread Arnd Bergmann
On Sat, Jan 11, 2020 at 12:33 PM Segher Boessenkool wrote: > > On Fri, Jan 10, 2020 at 07:45:44AM +0100, Christophe Leroy wrote: > > Le 09/01/2020 à 21:07, Segher Boessenkool a écrit : > > >It looks like the compiler did loop peeling. What GCC version is this? > > >Please try current trunk (to

Re: Surprising code generated for vdso_read_begin()

2020-01-11 Thread Segher Boessenkool
On Fri, Jan 10, 2020 at 07:45:44AM +0100, Christophe Leroy wrote: > Le 09/01/2020 à 21:07, Segher Boessenkool a écrit : > >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 > >

Re: Surprising code generated for vdso_read_begin()

2020-01-09 Thread Christophe Leroy
Le 09/01/2020 à 21:07, Segher Boessenkool a écrit : On Thu, Jan 09, 2020 at 05:52:34PM +, Christophe Leroy wrote: Wondering why we get something so complicated/redundant for vdso_read_begin() static __always_inline u32 vdso_read_begin(const struct vdso_data *vd) { u32 seq;

Re: Surprising code generated for vdso_read_begin()

2020-01-09 Thread Segher Boessenkool
On Thu, Jan 09, 2020 at 05:52:34PM +, Christophe Leroy wrote: > Wondering why we get something so complicated/redundant for > vdso_read_begin() > > static __always_inline u32 vdso_read_begin(const struct vdso_data *vd) > { > u32 seq; > > while ((seq = READ_ONCE(vd->seq)) & 1) >