linux/arch/i386
Jeremy Fitzhardinge 15c84731d6 xen: time implementation
Xen maintains a base clock which measures nanoseconds since system
boot.  This is provided to guests via a shared page which contains a
base time in ns, a tsc timestamp at that point and tsc frequency
parameters.  Guests can compute the current time by reading the tsc
and using it to extrapolate the current time from the basetime.  The
hypervisor makes sure that the frequency parameters are updated
regularly, paricularly if the tsc changes rate or stops.

This is implemented as a clocksource, so the interface to the rest of
the kernel is a simple clocksource which simply returns the current
time directly in nanoseconds.

Xen also provides a simple timer mechanism, which allows a timeout to
be set in the future.  When that time arrives, a timer event is sent
to the guest.  There are two timer interfaces:
 - An old one which also delivers a stream of (unused) ticks at 100Hz,
   and on the same event, the actual timer events.  The 100Hz ticks
   cause a lot of spurious wakeups, but are basically harmless.
 - The new timer interface doesn't have the 100Hz ticks, and can also
   fail if the specified time is in the past.

This code presents the Xen timer as a clockevent driver, and uses the
new interface by preference.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
2007-07-18 08:47:43 -07:00
..
boot Remove old i386 setup code 2007-07-12 10:55:56 -07:00
crypto [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
kernel xen: Core Xen implementation 2007-07-18 08:47:42 -07:00
lib i386: Add safe variants of rdmsr_on_cpu and wrmsr_on_cpu 2007-05-08 17:22:01 +02:00
mach-default Add IRQF_IRQPOLL flag on i386 2007-05-08 11:15:22 -07:00
mach-es7000 i386: es7000 build breakage fix 2007-07-06 10:23:43 -07:00
mach-generic i386 bigsmp: section mismatch fixes 2007-05-23 20:14:15 -07:00
mach-visws PCI: i386: traps, change VENDOR to DEVICE 2007-07-11 16:02:10 -07:00
mach-voyager usermodehelper: Tidy up waiting 2007-07-18 08:47:40 -07:00
math-emu potential parse error in ifdef part 3 2007-06-08 17:23:33 -07:00
mm paravirt: export __supported_pte_mask 2007-07-18 08:47:41 -07:00
oprofile x86: fix oprofile double free 2007-06-01 08:18:28 -07:00
pci PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
power [PATCH] x86: Save and restore the fixed-range MTRRs of the BSP when suspending 2007-05-02 19:27:17 +02:00
video fbcon: allow fbcon to use the primary display driver 2007-07-17 10:23:11 -07:00
xen xen: time implementation 2007-07-18 08:47:43 -07:00
defconfig i386: Update defconfig 2007-05-21 09:56:56 -07:00
Kconfig Kprobes on select architectures no longer EXPERIMENTAL 2007-07-17 10:23:03 -07:00
Kconfig.cpu x86 Kconfig: change X86_MINIMUM_CPU_MODEL to X86_MINIMUM_CPU_FAMILY 2007-07-12 10:55:54 -07:00
Kconfig.debug Allow DEBUG_RODATA and KPROBES to co-exist 2007-06-21 16:02:50 -07:00
Makefile xen: Core Xen implementation 2007-07-18 08:47:42 -07:00
Makefile.cpu [PATCH] i386: Fix usage of -mtune when X86_GENERIC=y or CONFIG_MCORE2=y 2007-05-02 19:27:06 +02:00