kernel-ark/arch/mips
Ralf Baechle 4b3e975e4a [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores
The idle loop goes to sleep using the WAIT instruction if !need_resched().
This has is suffering from from a race condition that if if just after
need_resched has returned 0 an interrupt might set TIF_NEED_RESCHED but
we've just completed the test so go to sleep anyway.  This would be
trivial to fix by just disabling interrupts during that sequence as in:

        local_irq_disable();
        if (!need_resched())
                __asm__("wait");
        local_irq_enable();

but the processor architecture leaves it undefined if a processor calling
WAIT with interrupts disabled will ever restart its pipeline and indeed
some processors have made use of the freedom provided by the architecture
definition.  This has been resolved and the Config7.WII bit indicates that
the use of WAIT is safe on 24K, 24KE and 34K cores.  It also is safe on
74K starting revision 2.1.0 so enable the use of WAIT with interrupts
disabled for 74K based on a c0_prid of at least that.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-07-06 16:17:11 +01:00
..
arc
au1000 [MIPS] Fix pb1500 reg B access 2007-06-26 19:57:33 +02:00
basler/excite
boot
cobalt [MIPS] add io_map_base to pci_controller on Cobalt 2007-06-26 19:57:33 +02:00
configs [MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work. 2007-06-26 19:57:34 +02:00
ddb5xxx
dec
emma2rh
gt64120
jazz mips-jazz: correct flags for timer io resource 2007-06-28 11:38:19 -07:00
jmr3927
kernel [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores 2007-07-06 16:17:11 +01:00
lasat
lib [MIPS] Change libgcc-style functions from lib-y to obj-y 2007-07-06 16:17:11 +01:00
lib-32
lib-64
math-emu
mips-boards [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
mm
momentum
oprofile
pci
philips/pnx8550
pmc-sierra
qemu
sgi-ip22
sgi-ip27
sgi-ip32
sibyte
sni
tx4927
tx4938
vr41xx
defconfig
Kconfig [MIPS] AP/SP requires shadow registers, auto enable support. 2007-06-26 19:57:33 +02:00
Kconfig.debug [MIPS] SMTC: Fix cut'n'paste bug in Kconfig.debug 2007-07-06 16:17:11 +01:00
Makefile