2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-08 05:34:29 +08:00
linux-next/arch/powerpc
Anton Blanchard 8d165db107 powerpc: Improve decrementer accuracy
I have been looking at sources of OS jitter and notice that after a long
NO_HZ idle period we wakeup too early:

relative time (us)    event
                      timer irq exit
    999946.405        timer irq entry
         4.835        timer irq exit
        21.685        timer irq entry
         3.540          timer (tick_sched_timer) entry

Here we slept for just under a second then took a timer interrupt that did
nothing. 21.685 us later we wake up again and do the work.

We set a rather low shift value of 16 for the decrementer clockevent, which I
think is causing this issue. On this box we have a 207MHz decrementer and see:

clockevent: decrementer mult[3501] shift[16] cpu[0]

For calculations of large intervals this mult/shift combination could be
off by a significant amount. I notice the sparc code has a loop that iterates
to find a mult/shift combination that maximises the shift value while
keeping mult under 32bit. With the patch below we get:

clockevent: decrementer mult[35015c20] shift[32] cpu[15]

And we no longer see the spurious wakeups.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-05-21 15:44:24 +10:00
..
boot powerpc: Update Warp to use leds-gpio driver 2009-05-21 15:42:56 +10:00
configs powerpc/8xx: Update defconfigs 2009-05-13 17:29:08 -05:00
include/asm powerpc/pci: Cleanup some minor cruft 2009-05-21 15:44:24 +10:00
kernel powerpc: Improve decrementer accuracy 2009-05-21 15:44:24 +10:00
kvm KVM: ppc: e500: Fix the bug that KVM is unstable in SMP 2009-03-24 11:03:15 +02:00
lib Merge commit 'origin/master' into next 2009-03-11 17:10:07 +11:00
math-emu powerpc/math-emu: Fix efp dependence 2009-03-11 06:00:08 -05:00
mm powerpc: Add 2.06 tlbie mnemonics 2009-05-21 15:44:21 +10:00
oprofile powerpc/oprofile: Remove unused dump_pmcs() in FSL oprofile 2009-05-19 00:46:13 -05:00
platforms powerpc/pci: Move pseries code into pseries platform specific area 2009-05-21 15:44:24 +10:00
sysdev powerpc/pci: Clean up direct access to sysdata on tsi108 platforms 2009-05-21 15:44:23 +10:00
xmon powerpc: Prepare xmon_save_regs for use with kdump 2008-12-23 15:13:28 +11:00
Kconfig powerpc/irq: We don't need __do_IRQ() anymore 2009-05-21 15:44:20 +10:00
Kconfig.debug generic debug pagealloc: build fix 2009-04-02 19:04:48 -07:00
Makefile powerpc/math-emu: Fix efp dependence 2009-03-11 06:00:08 -05:00