[PATCH v7 0/7] powerpc: switch VDSO to C implementation

Christophe Leroy christophe.leroy at c-s.fr
Tue Apr 21 16:56:35 AEST 2020



Le 20/04/2020 à 21:57, Arnd Bergmann a écrit :
> On Mon, Apr 20, 2020 at 6:56 PM Christophe Leroy
> <christophe.leroy at c-s.fr> wrote:
>>
>> This is the seventh version of a series to switch powerpc VDSO to
>> generic C implementation.
>>
>> Main changes since v6 are:
>> - Added -fasynchronous-unwind-tables in CFLAGS
>> - Split patch 2 in two parts
>> - Split patch 5 (which was patch 4) in two parts
>>
>> This series applies on today's powerpc/merge branch.
>>
>> See the last two patches for details on changes and performance.
>>
>> Christophe Leroy (7):
>>    powerpc/vdso64: Switch from __get_datapage() to get_datapage inline
>>      macro
>>    powerpc/vdso: Remove __kernel_datapage_offset and simplify
>>      __get_datapage()
>>    powerpc/vdso: Remove unused \tmp param in __get_datapage()
>>    powerpc/processor: Move cpu_relax() into asm/vdso/processor.h
>>    powerpc/vdso: Prepare for switching VDSO to generic C implementation.
>>    powerpc/vdso: Switch VDSO to generic C implementation.
> 
> This all looks fine, but I'm a bit puzzled why you don't add a
> clock_gettime64() implementation in the same series. Isn't
> that the main purpose of doing all that work?

Yes that was one of the objective, be able to add that as a second step.
First objective was adding the missing clocks and increasing 
maintainability.

I can add a patch for that now, it looks easy, but how do I test it ? 
vdsotest from Nathan doesn't seem to test that.

> 
> Without it, any 32-bit user space has to go through the system call
> for time()/getttimeofday()/clock_gettime() when built with a
> modern libc.
> 

How modern ? I have glibc 2.28, the only symbols it seems to know are 
(extracted with 'strings') :

__vdso_clock_gettime
__vdso_time
__vdso_get_tbfreq
__vdso_getcpu
__vdso_clock_getres
__vdso_sigtramp32
__vdso_sigtramp_rt32
__vdso_gettimeofday

Christophe


More information about the Linuxppc-dev mailing list