linux/include/asm-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
ddb5xxx
dec
emma2rh
ip32
jmr3927
lasat
mach-atlas
mach-au1x00 au1550 SPI controller driver 2007-05-08 11:15:16 -07:00
mach-cobalt [MIPS] Add extern cobalt_board_id 2007-05-11 14:28:32 +01:00
mach-db1x00
mach-dec
mach-emma2rh
mach-ev64120
mach-excite
mach-generic
mach-ip22
mach-ip27
mach-ip32 [MIPS] Fix include wrapper symbol definitions in IP32 code. 2007-07-04 15:53:15 +01:00
mach-jazz
mach-jmr3927
mach-lasat
mach-mips
mach-ocelot
mach-ocelot3
mach-pb1x00
mach-pnx8550
mach-qemu
mach-rm
mach-sibyte
mach-sim
mach-vr41xx
mach-wrppmc
mach-yosemite
mips-boards [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
pci
sgi Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sibyte
sn
tx4927
tx4938
vr41xx
xtalk
8253pit.h
a.out.h
abi.h
addrspace.h [MIPS] 64-bit TO_PHYS_MASK macro for RM9000 processors 2007-07-06 16:17:10 +01:00
asm.h
asmmacro-32.h
asmmacro-64.h
asmmacro.h [MIPS] Remove duplicate fpu enable hazard code. 2007-06-06 19:34:31 +01:00
atomic.h [MIPS] Fix build error in atomic64_cmpxchg 2007-05-11 14:28:33 +01:00
auxvec.h
barrier.h
bcache.h
bitops.h [MIPS] Remove a duplicated local variable in test_and_clear_bit() 2007-06-26 19:57:33 +02:00
bootinfo.h [MIPS] Remove Momenco Jaguar ATX support 2007-05-11 14:28:31 +01:00
branch.h
break.h
bug.h
bugs.h
byteorder.h
cache.h
cachectl.h
cacheflush.h
cacheops.h
checksum.h
compat-signal.h [MIPS] use compat_siginfo in rt_sigframe_n32 2007-06-26 19:57:33 +02:00
compat.h
compiler.h
cpu-features.h
cpu-info.h
cpu.h [MIPS] Add macros to encode processor revisions. 2007-07-06 16:17:11 +01:00
cputime.h
current.h
debug.h
delay.h
device.h
div64.h
dma-mapping.h
dma.h
ds1216.h
ds1286.h
dsp.h
elf.h
emergency-restart.h
errno.h
fcntl.h
fixmap.h
floppy.h
fpregdef.h
fpu_emulator.h
fpu.h [MIPS] FPU hazard handling 2007-05-11 14:28:31 +01:00
futex.h
gdb-stub.h
gfx.h
gt64120.h
gt64240.h
hardirq.h
hazards.h [MIPS] SB1: Build fix. 2007-05-11 14:28:31 +01:00
highmem.h [MIPS] Remove LIMITED_DMA support 2007-05-11 14:28:31 +01:00
hw_irq.h
i8259.h
ide.h
inst.h
inventory.h
io.h
ioctl.h
ioctls.h
ipc.h
ipcbuf.h
irq_cpu.h
irq_regs.h
irq.h [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
irqflags.h
isadep.h
jazz.h
jazzdma.h
Kbuild
kdebug.h move die notifier handling to common code 2007-05-08 11:15:04 -07:00
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
kmap_types.h
kspd.h
linkage.h
local.h local_t: mips extension 2007-05-08 11:15:20 -07:00
m48t35.h
m48t37.h
marvell.h
mc146818-time.h
mc146818rtc.h
mips_mt.h
mipsmtregs.h
mipsprom.h
mipsregs.h [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores 2007-07-06 16:17:11 +01:00
mman.h
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmu.h
mmzone.h
module.h [MIPS] SMTC and non-SMTC kernel and modules are incompatible 2007-06-26 19:57:34 +02:00
msc01_ic.h [MIPS] MT: Reenable EIC support and add support for SOCit SC. 2007-05-11 14:28:31 +01:00
msgbuf.h
mutex.h
namei.h
nile4.h
paccess.h
page.h [MIPS] Remove LIMITED_DMA support 2007-05-11 14:28:31 +01:00
param.h
parport.h
pci.h
percpu.h
pgalloc.h Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
pgtable-32.h
pgtable-64.h
pgtable-bits.h
pgtable.h Clean up mostly unused IOSPACE macros 2007-05-08 11:15:13 -07:00
pmon.h
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h
prctl.h
prefetch.h
processor.h
ptrace.h [MIPS] die(): Properly declare as non-returning 2007-07-04 15:53:15 +01:00
qemu.h
r4kcache.h
reboot.h
reg.h
regdef.h
resource.h
rm9k-ocd.h
rtc.h
rtlx.h
scatterlist.h PCI: scatterlist.h needs types.h 2007-05-02 19:02:34 -07:00
sections.h
segment.h
semaphore.h
sembuf.h
serial.h [MIPS] Remove Momenco Jaguar ATX support 2007-05-11 14:28:31 +01:00
setup.h
sgialib.h
sgiarcs.h
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sim.h
smp.h
smtc_ipi.h
smtc_proc.h
smtc.h
sni.h
socket.h
sockios.h
sparsemem.h
spinlock_types.h
spinlock.h
stackframe.h [MIPS] Fix KMODE for the R3000 2007-06-11 18:20:53 +01:00
stacktrace.h
stat.h
statfs.h
string.h
suspend.h
sysmips.h
system.h [MIPS] Define and use vi_handler_t for vectored interrupt handlers. 2007-05-11 14:28:30 +01:00
termbits.h
termios.h
thread_info.h
time.h
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
tx3912.h
types.h
uaccess.h
ucontext.h
unaligned.h
unistd.h [MIPS] Add whitelists for checksyscalls.sh 2007-07-04 15:53:16 +01:00
user.h
vga.h
vpe.h
war.h [MIPS] RM7000: Enable ICACHE_REFILLS_WORKAROUND_WAR. 2007-07-06 16:17:11 +01:00
watch.h
wbflush.h
xor.h
xxs1500.h