Re: [PATCH v5 00/23] Unify vDSOs across more architectures
From: Arnd Bergmann <arnd@arndb.de>
Date: 2019-02-28 11:40:52
Also in:
linux-arch
On Fri, Feb 22, 2019 at 1:25 PM Vincenzo Frascino [off-list ref] 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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel