linux/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 [MIPS] ARC: Fix several compiler warnings. 2007-03-08 01:10:30 +00:00
au1000 [MIPS] Fix pb1500 reg B access 2007-06-26 19:57:33 +02:00
basler/excite [MIPS] excite: use __maybe_unused 2007-05-11 14:28:33 +01:00
boot Add .gitignore files for MIPS. 2005-11-07 18:05:37 +00:00
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 [MIPS] Misc fixes for plat_irq_dispatch functions 2007-03-19 20:22:43 +00:00
dec [MIPS] DEC: Remove call to register_prom_console. 2007-03-09 12:14:52 +00:00
emma2rh [MIPS] EMMA2RH: remove dead KGDB code 2007-06-06 19:34:31 +01:00
gt64120 [MIPS] merge GT64111 PCI routines and GT64120 PCI_0 routines 2007-04-27 16:20:23 +01:00
jazz mips-jazz: correct flags for timer io resource 2007-06-28 11:38:19 -07:00
jmr3927 parse errors in ifdefs 2007-06-01 08:18:28 -07:00
kernel [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores 2007-07-06 16:17:11 +01:00
lasat [MIPS] Fix and cleanup the mess that a dozen prom_printf variants are. 2007-03-04 19:02:37 +00:00
lib [MIPS] Change libgcc-style functions from lib-y to obj-y 2007-07-06 16:17:11 +01:00
lib-32 [MIPS] Kill redundant EXTRA_AFLAGS 2007-02-26 23:06:05 +00:00
lib-64 [MIPS] Kill redundant EXTRA_AFLAGS 2007-02-26 23:06:05 +00:00
math-emu header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
mips-boards [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
mm [MIPS] Make dma_map_sg handle sg elements which are longer than one page 2007-06-06 19:34:32 +01:00
momentum [MIPS] Remove Momenco Jaguar ATX support 2007-05-11 14:28:31 +01:00
oprofile [MIPS] Separate performance counter interrupts 2007-06-14 18:25:15 +01:00
pci parse errors in ifdefs 2007-06-01 08:18:28 -07:00
philips/pnx8550 [MIPS] Misc fixes for plat_irq_dispatch functions 2007-03-19 20:22:43 +00:00
pmc-sierra serial driver PMC MSP71xx 2007-05-07 12:12:50 -07:00
qemu [MIPS] Remove prototype for deleted function qemu_handle_int 2007-06-06 19:34:33 +01:00
sgi-ip22 Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sgi-ip27 [MIPS] Fix IP27 build 2007-06-11 18:20:55 +01:00
sgi-ip32 meth driver renovation 2007-05-24 17:20:49 -04:00
sibyte [MIPS] Add bcm1480 ZBus trace support, fix wait related bugs 2007-04-27 16:20:25 +01:00
sni [MIPS] Fix VGA corruption on RM300C 2007-06-06 19:34:31 +01:00
tx4927 ne: MIPS: Use platform_driver for ne on RBTX49XX 2007-05-08 01:23:09 -04:00
tx4938 ne: MIPS: Use platform_driver for ne on RBTX49XX 2007-05-08 01:23:09 -04:00
vr41xx [MIPS] update vr41xx Kconfig 2007-04-27 16:20:26 +01:00
defconfig [MIPS] Viper2: Remove defective support. 2007-03-13 16:59:31 +00:00
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 [MIPS] Run checksyscalls for N32 and O32 ABI 2007-05-11 14:28:33 +01:00