kernel_optimize_test/arch/x86_64
Dimitri Sivanich cbf9b4bb76 [PATCH] X86_64 monotonic_clock goes backwards
I've noticed some erratic behavior while testing the X86_64 version
of monotonic_clock().

While spinning in a loop reading monotonic clock values (pinned to a
single cpu) I noticed that the difference between subsequent values
occasionally went negative (time going backwards).

I found that in the following code:
                this_offset = get_cycles_sync();
                /* FIXME: 1000 or 1000000? */
-->             offset = (this_offset - last_offset)*1000 / cpu_khz;
        }
        return base + offset;

the offset sometimes turns out to be 0, even though
this_offset > last_offset.

+Added fix From: Toyo Abe <toyoa@mvista.com>

The x86_64-mm-monotonic-clock.patch in 2.6.18-rc4-mm2 made a change to
the updating of monotonic_base. It now uses cycles_2_ns().

I suggest that a set_cyc2ns_scale() should be done prior to the setup_irq().
Because cycles_2_ns() can be called from the timer ISR right after the irq0
is enabled.

Signed-off-by: Toyo Abe <toyoa@mvista.com>
Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
Signed-off-by: Andi Kleen <ak@suse.de>
2006-09-26 10:52:34 +02:00
..
boot [PATCH] x86: AUX_DEVICE_INFO is one byte long, use 'movb' 2006-09-26 10:52:30 +02:00
crypto [CRYPTO] api: Get rid of flags argument to setkey 2006-09-21 11:41:02 +10:00
ia32 [PATCH] Fix sparse warnings in compat aout code 2006-09-26 10:52:33 +02:00
kernel [PATCH] X86_64 monotonic_clock goes backwards 2006-09-26 10:52:34 +02:00
lib [PATCH] annotate arch/x86_64/lib/*.S 2006-09-26 10:52:32 +02:00
mm [PATCH] Add sparse annotations to quiet sparse in arch/x86_64/mm/fault.c 2006-09-26 10:52:33 +02:00
oprofile [PATCH] Move Kprobes and Oprofile to "Instrumentation Support" menu 2005-11-07 07:53:35 -08:00
pci Revert mmiocfg heuristics and blacklist changes 2006-09-19 08:15:22 -07:00
defconfig [PATCH] Update defconfig 2006-09-26 10:52:26 +02:00
Kconfig [PATCH] syscall class hookup for all normal targets 2006-09-12 03:04:40 -04:00
Kconfig.debug [PATCH] lockdep: irqtrace subsystem, x86_64 support 2006-07-03 15:27:03 -07:00
Makefile [PATCH] x86: Detect CFI support in the assembler at runtime 2006-09-26 10:52:30 +02:00