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

From: Christophe Leroy
Date: Tue Apr 21 2020 - 02:56:51 EST




Le 20/04/2020 Ã 21:57, Arnd Bergmann a ÃcritÂ:
On Mon, Apr 20, 2020 at 6:56 PM Christophe Leroy
<christophe.leroy@xxxxxx> 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