On Fri, Feb 22, 2019 at 1:25 PM Vincenzo Frascino <vincenzo.frascino@xxxxxxx> 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. I tried applying the series on top of v5.0-rc7, and got a set of build warnings with arm64 defconfig: In file included from /git/arm-soc/arch/arm64/include/asm/thread_info.h:30:0, from /git/arm-soc/include/linux/thread_info.h:38, from /git/arm-soc/arch/arm64/include/asm/preempt.h:5, from /git/arm-soc/include/linux/preempt.h:78, from /git/arm-soc/include/linux/spinlock.h:51, from /git/arm-soc/include/linux/seqlock.h:36, from /git/arm-soc/include/linux/time.h:6, from /git/arm-soc/lib/vdso/gettimeofday.c:7, from <command-line>:0: /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘kaslr_offset’: /git/arm-soc/arch/arm64/include/asm/memory.h:191:2: warning: left shift count >= width of type [enabled by default] return kimage_vaddr - KIMAGE_VADDR; ^ /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘virt_to_phys’: /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left shift count >= width of type [enabled by default] return __virt_to_phys((unsigned long)(x)); ^ /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left shift count >= width of type [enabled by default] /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘phys_to_virt’: /git/arm-soc/arch/arm64/include/asm/memory.h:289:2: warning: left shift count >= width of type [enabled by default] return (void *)(__phys_to_virt(x)); ^ In file included from /git/arm-soc/arch/arm64/include/asm/pgtable-hwdef.h:19:0, from /git/arm-soc/arch/arm64/include/asm/processor.h:46, from /git/arm-soc/arch/arm64/include/asm/elf.h:129, from /git/arm-soc/include/linux/elf.h:5, from /git/arm-soc/include/linux/elfnote.h:62, from /git/arm-soc/arch/arm64/kernel/vdso32/note.c:11: /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘kaslr_offset’: /git/arm-soc/arch/arm64/include/asm/memory.h:191:2: warning: left shift count >= width of type [enabled by default] return kimage_vaddr - KIMAGE_VADDR; ^ /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘virt_to_phys’: /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left shift count >= width of type [enabled by default] return __virt_to_phys((unsigned long)(x)); ^ /git/arm-soc/arch/arm64/include/asm/memory.h:283:2: warning: left shift count >= width of type [enabled by default] /git/arm-soc/arch/arm64/include/asm/memory.h: In function ‘phys_to_virt’: /git/arm-soc/arch/arm64/include/asm/memory.h:289:2: warning: left shift count >= width of type [enabled by default] return (void *)(__phys_to_virt(x)); ^ I think this is all harmless, but we need to limit the set of header files that can be included indirectly when compiling the vdso in arm32 mode. Arnd