Re: [PATCH v7 00/25] Unify vDSOs across more architectures

From: Vincenzo Frascino
Date: Mon Jun 24 2019 - 09:21:11 EST


Hi Thomas,

On 24/06/2019 01:34, Thomas Gleixner wrote:
> Vincenzo,
>
> On Fri, 21 Jun 2019, Vincenzo Frascino wrote:
>> vDSO (virtual dynamic shared object) is a mechanism that the Linux
>> kernel provides as an alternative to system calls to reduce where
>> possible the costs in terms of cycles.
>> This is possible because certain syscalls like gettimeofday() do
>> not write any data and return one or more values that are stored
>> in the kernel, which makes relatively safe calling them directly
>> as a library function.
>>
>> Even if the mechanism is pretty much standard, every architecture
>> in the last few years ended up implementing their own vDSO library
>> in the architectural code.
>
> ....
>
>> This implementation contains the portings to the common library for: arm64,
>> compat mode for arm64, arm, mips, x86_64, x32, compat mode for x86_64 and
>> i386.
>
> I picked up the core implementation and the ARM64 and x86 conversion. I did
> some refinements in several places, coding style, naming conventions,
> comments and changelogs including subject prefixes. Please double check!
>

I tested your changes and they seem OK
(git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso).

...
> As you can see from the commit dates, this has soaked for some time in a
> WIP branch and I did extensive regression testing. So far so good.
>
> Thanks a lot for going through several iterations. It's a very much
> appreciated effort!
>

It has been a lot of fun and I learned many many things about the vDSOs and the
kernel that I did not know before. Thanks to you for your patience and guidance.

> Especially with the upcoming time namespaces this will avoid a lot of
> duplicated and pointlessly different horrors all over the architecture
> space. Any architecture which wants to gain that support needs to convert
> to the generic VDSO first.
>
> As you have become the dude who knows almost everything about VDSO
> including all the nasty pitfalls, I propose the patch below.
>

Thanks for this, it means a lot to me.

> Thanks,
>
> tglx
>
> 8<------------
> Subject: MAINTAINERS: Add entry for the generic VDSO library
> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Date: Mon, 24 Jun 2019 02:03:50 +0200
>
> Asign the following folks in alphabetic order:
>
> - Andy for being the VDSO wizard of x86 and in general. He's also the
> performance monitor of choice and the code in the generic library is
> heavily influenced by his previous x86 VDSO work.
>
> - Thomas for being the dude who has to deal with any form of time(r)
> nonsense anyway
>
> - Vincenzo for being the poor sod who went through all the different
> architecture implementations in order to unify them. A lot of knowledge
> gained from VDSO implementation details to the intricacies of taming the
> build system.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---
> MAINTAINERS | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -6665,6 +6665,18 @@ L: kvm@xxxxxxxxxxxxxxx
> S: Supported
> F: drivers/uio/uio_pci_generic.c
>
> +GENERIC VDSO LIBRARY:
> +M: Andy Lutomirksy <luto@xxxxxxxxxx>
> +M: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> +M: Vincenzo Frascino <vincenzo.frascino@xxxxxxx>
> +L: linux-kernel@xxxxxxxxxxxxxxx
> +T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers/vdso
> +S: Maintained
> +F: lib/vdso
> +F: kernel/time/vsyscall.c
> +F: include/vdso
> +F: include/asm-generic/vdso/vsyscall.h
> +
> GENWQE (IBM Generic Workqueue Card)
> M: Frank Haverkamp <haver@xxxxxxxxxxxxx>
> S: Supported
>

--
Regards,
Vincenzo