kernel-aes67/include
Andi Kleen 2aae950b21 x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu
This implements new vDSO for x86-64.  The concept is similar
to the existing vDSOs on i386 and PPC.  x86-64 has had static
vsyscalls before,  but these are not flexible enough anymore.

A vDSO is a ELF shared library supplied by the kernel that is mapped into
user address space.  The vDSO mapping is randomized for each process
for security reasons.

Doing this was needed for clock_gettime, because clock_gettime
always needs a syscall fallback and having one at a fixed
address would have made buffer overflow exploits too easy to write.

The vdso can be disabled with vdso=0

It currently includes a new gettimeofday implemention and optimized
clock_gettime(). The gettimeofday implementation is slightly faster
than the one in the old vsyscall.  clock_gettime is significantly faster
than the syscall for CLOCK_MONOTONIC and CLOCK_REALTIME.

The new calls are generally faster than the old vsyscall.

Advantages over the old x86-64 vsyscalls:
- Extensible
- Randomized
- Cleaner
- Easier to virtualize (the old static address range previously causes
overhead e.g. for Xen because it has to create special page tables for it)

Weak points:
- glibc support still to be written

The VM interface is partly based on Ingo Molnar's i386 version.

Includes compile fix from Joachim Deguara

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-21 18:37:08 -07:00
..
acpi Pull osi-now into release branch 2007-06-02 01:02:09 -04:00
asm-alpha [PATCH] sched: sched_cacheflush is now unused 2007-07-19 21:28:35 +02:00
asm-arm [PATCH] sched: sched_cacheflush is now unused 2007-07-19 21:28:35 +02:00
asm-arm26 [PATCH] sched: sched_cacheflush is now unused 2007-07-19 21:28:35 +02:00
asm-avr32 arch: personality independent stack top 2007-07-19 10:04:45 -07:00
asm-blackfin fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
asm-cris arch: personality independent stack top 2007-07-19 10:04:45 -07:00
asm-frv arch: personality independent stack top 2007-07-19 10:04:45 -07:00
asm-generic i386: Put allocated ELF notes in read-only data segment 2007-07-19 10:04:47 -07:00
asm-h8300 arch: personality independent stack top 2007-07-19 10:04:45 -07:00
asm-i386 i386: Move all simple string operations out of line 2007-07-21 18:37:08 -07:00
asm-ia64 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2007-07-20 12:02:20 -07:00
asm-m32r [PATCH] sched: sched_cacheflush is now unused 2007-07-19 21:28:35 +02:00
asm-m68k m68k iomem (based on Geert's tree + memcpy_... stuff) 2007-07-20 08:24:49 -07:00
asm-m68knommu m68knommu: remove is_in_rom() function 2007-07-19 10:04:51 -07:00
asm-mips [MIPS] User stack pointer randomisation 2007-07-20 18:57:40 +01:00
asm-parisc [PATCH] sched: sched_cacheflush is now unused 2007-07-19 21:28:35 +02:00
asm-powerpc [CELL] spufs: rework list management and associated locking 2007-07-20 21:42:28 +02:00
asm-ppc [PATCH] sched: sched_cacheflush is now unused 2007-07-19 21:28:35 +02:00
asm-s390 [PATCH] sched: sched_cacheflush is now unused 2007-07-19 21:28:35 +02:00
asm-sh sh: intc - add support for SH7750 and its variants 2007-07-20 18:44:49 +09:00
asm-sh64 sh64: Wire up fallocate() syscall. 2007-07-20 12:37:51 +09:00
asm-sparc [SPARC]: Implement fb_is_primary_device(). 2007-07-20 17:15:09 -07:00
asm-sparc64 [SPARC64]: Convert parport to of_platform_driver. 2007-07-20 17:15:35 -07:00
asm-um arch: personality independent stack top 2007-07-19 10:04:45 -07:00
asm-v850 fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
asm-x86_64 x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
asm-xtensa arch: personality independent stack top 2007-07-19 10:04:45 -07:00
crypto
keys
linux x86: Support __attribute__((__cold__)) in gcc 4.3 2007-07-21 18:37:08 -07:00
math-emu
media V4L/DVB (5835): saa7146/dvb-ttpci: Fix signedness warnings (gcc 4.1.1, kernel 2.6.22) 2007-07-18 14:24:44 -03:00
mtd UBI: kill homegrown endian macros 2007-07-18 16:53:49 +03:00
net Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6 2007-07-19 14:42:40 -07:00
pcmcia PCMCIA-NETDEV : add new ID of lan&modem multifunction card 2007-07-08 22:16:39 -04:00
rdma IB/cm: Include HCA ACK delay in local ACK timeout 2007-07-10 21:50:05 -07:00
rxrpc
scsi [SCSI] Remove unused method scsi_device_cancel 2007-07-14 16:01:16 -05:00
sound [ALSA] version 1.0.14 2007-07-20 11:13:35 +02:00
video tgafb: actually allocate memory for the pseudo_palette 2007-07-17 10:23:12 -07:00
xen xen: Place vcpu_info structure into per-cpu memory 2007-07-18 08:47:45 -07:00
Kbuild