Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b020632e authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

[S390] introduce vdso on s390



Add a vdso to speed up gettimeofday and clock_getres/clock_gettime for
CLOCK_REALTIME/CLOCK_MONOTONIC.

Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent fc5243d9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -43,6 +43,9 @@ config GENERIC_HWEIGHT
config GENERIC_TIME
	def_bool y

config GENERIC_TIME_VSYSCALL
	def_bool y

config GENERIC_CLOCKEVENTS
	def_bool y

+2 −0
Original line number Diff line number Diff line
#ifndef __ASMS390_AUXVEC_H
#define __ASMS390_AUXVEC_H

#define AT_SYSINFO_EHDR		33

#endif
+16 −0
Original line number Diff line number Diff line
@@ -120,6 +120,10 @@ typedef s390_compat_regs compat_elf_gregset_t;
#include <asm/system.h>		/* for save_access_regs */
#include <asm/mmu_context.h>

#include <asm/vdso.h>

extern unsigned int vdso_enabled;

/*
 * This is used to ensure we don't load something for the wrong architecture.
 */
@@ -191,4 +195,16 @@ do { \
	current->mm->context.noexec == 0;		\
})

#define ARCH_DLINFO							    \
do {									    \
	if (vdso_enabled)						    \
		NEW_AUX_ENT(AT_SYSINFO_EHDR,				    \
			    (unsigned long)current->mm->context.vdso_base); \
} while (0)

struct linux_binprm;

#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
int arch_setup_additional_pages(struct linux_binprm *, int);

#endif
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ typedef struct {
	struct list_head pgtable_list;
	unsigned long asce_bits;
	unsigned long asce_limit;
	unsigned long vdso_base;
	int noexec;
	int has_pgste;	 /* The mmu context has extended page tables */
	int alloc_pgste; /* cloned contexts will have extended page tables */
+2 −0
Original line number Diff line number Diff line
@@ -152,4 +152,6 @@ void arch_alloc_page(struct page *page, int order);
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>

#define __HAVE_ARCH_GATE_AREA 1

#endif /* _S390_PAGE_H */
Loading