kernel_optimize_test/arch
Benjamin Herrenschmidt 0086b5ec78 [PATCH] ppc32: Fix nasty sleep/wakeup problem
Despite all the care lately in making the powermac sleep/wakeup as
robust as possible, there is still a nasty related to the use of cpufreq
on PMU based machines.  Unfortunately, it affects paulus old powerbook
so I have to fix it :)

We didn't manage to understand what is precisely going on, it leads to
memory corruption and might have to do with RAM not beeing properly
refreshed when a cpufreq transition is done right before the sleep.

The best workaround (and less intrusive at this point) we could come up
with is included in this patch.  We basically do _not_ force a switch to
high speed on suspend anymore (that is what is causing the problem) on
those machines.  We still force a speed switch on wakeup (since we don't
know what speed we are coming back from sleep at, and that seems to work
fine).

Since, during this short interval, the actual CPU speed might be
incorrect, we also hack around by multiplying loops_per_jiffy by 2 (max
speed factor on those machines) during early wakeup stage to make sure
udelay's during that time aren't too short.

For after 2.6.12, we'll change udelay implementation to use the CPU
timebase (which is always constant) instead like we do on ppc64 and thus
get rid of all those problems.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-09 21:33:35 -07:00
..
alpha [PATCH] alpha/osf_sys: use helper functions to convert between tv and jiffies 2005-05-17 07:59:21 -07:00
arm [PATCH] ARM: 2708/1: Fix hackkit CPU Frequency build faliure 2005-06-09 21:59:22 +01:00
arm26 [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
cris
frv
h8300 [PATCH] h8300 sleep problem 2005-05-31 14:54:17 -07:00
i386 [PATCH] Stop arch/i386/kernel/vsyscall-note.o being rebuilt every time 2005-06-08 16:21:13 -07:00
ia64 [IA64] Fix race condition in the rt_sigprocmask fastcall 2005-06-09 13:04:30 -07:00
m32r
m68k
m68knommu [PATCH] m68knommu: fix scheduling and race problems in idle loop 2005-06-03 08:16:17 -07:00
mips [PATCH] mips: add resource management to pmu 2005-05-17 07:59:20 -07:00
parisc [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
ppc [PATCH] ppc32: Fix nasty sleep/wakeup problem 2005-06-09 21:33:35 -07:00
ppc64 [PATCH] ppc64: Fix PER_LINUX32 behaviour 2005-06-08 16:24:15 -07:00
s390 [PATCH] s390: deadlock in appldata 2005-06-04 17:13:00 -07:00
sh [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
sh64
sparc [SPARC]: Remove legacy stuff from cpu_idle(). 2005-05-05 14:53:01 -07:00
sparc64 [SPARC64]: Refine PCI strbuf ctx-based flush. 2005-05-31 19:13:52 -07:00
um [PATCH] uml: clean up error path 2005-06-08 16:21:12 -07:00
v850
x86_64 [PATCH] revert x86_64-use-the-e820-hole-to-map-the-iommu-agp-aperture 2005-06-08 16:21:13 -07:00