opnsense-src/sys/mips/include
Jayachandran C. 29550c285c Fix wakeup latency when sleeping with 'wait'
If we handle an interrupt just before the 'wait' and the interrupt
schedules some work, we need to skip the 'wait' call. The simple solution
of calling sched_runnable() with interrupts disabled immediately before
wait still leaves a window after the call and before 'wait' in which
the same issue can occur.

The solution implemented is to check the EPC in the interrupt handler, and
if it is in a region before the 'wait' call, to fix up the EPC to skip the
wait call.

Reported/analysed by:	adrian
Fix suggested by:	kib

Reviewed by:	jmallett, imp
2011-10-18 16:37:28 +00:00
..
_align.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
_bus.h Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
_inttypes.h Replace __LP64__ with __mips_n64. This partly reverts r217147. 2011-02-04 13:09:46 +00:00
_limits.h Replace __LP64__ with __mips_n64. This partly reverts r217147. 2011-02-04 13:09:46 +00:00
_stdint.h Replace __LP64__ with __mips_n64. This partly reverts r217147. 2011-02-04 13:09:46 +00:00
_types.h Add the cpuset_t conversion for mips. 2011-05-13 16:42:05 +00:00
asm.h Move common macros into asm.h. Replace MIPS_CPU_NOP_DELAY with 2010-07-16 06:35:17 +00:00
atomic.h Fix the _long() rappresentation on mips by casting the long arguments 2011-05-13 16:39:47 +00:00
bootinfo.h
bswap.h
bus.h Support for booting XLP using FDT. 2011-10-18 08:10:23 +00:00
bus_dma.h
cache.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
cache_mipsNN.h Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executive 2010-07-20 19:25:11 +00:00
cache_r4k.h
cdefs.h Update macros for multiple ABI support from NetBSD. 2010-03-02 07:27:30 +00:00
clock.h Remove unused stuff from cpu.h. 2010-07-15 01:58:20 +00:00
clockvar.h
cpu.h Use #define for get_cyclecount rather than inline function. 2010-07-16 06:09:51 +00:00
cpufunc.h MIPS changes for Netlogic XLP support. 2011-07-16 20:31:29 +00:00
cpuinfo.h Remove some unused cruft. 2010-03-04 05:37:19 +00:00
cpuregs.h o) Properly size caches and TLB on Octeon. 2011-03-16 08:22:29 +00:00
cputypes.h
db_machdep.h Use cpuregs.h spellings over the cpu.h spellings. 2010-07-14 00:52:29 +00:00
elf.h Add AT_STACKPROT elf aux vector. Will be used to inform rtld about the 2011-01-07 14:22:34 +00:00
endian.h Add parentheses around the argument 'x' used in the __bswapXX(x) macros. Revert 2010-08-11 02:28:39 +00:00
exec.h
fdt.h Support for booting XLP using FDT. 2011-10-18 08:10:23 +00:00
float.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
floatingpoint.h
fls64.h With this commit our friend RMI will now compile. I have 2009-10-30 08:53:11 +00:00
fpu.h It appears that none of the contents of this file are necessary, so 2009-02-15 20:05:13 +00:00
frame.h Remove stray __P() 2009-02-15 01:12:16 +00:00
gdb_machdep.h
hwfunc.h Fix a brain-o in platform_cpu_mask() by just specifying a possible 2011-05-13 19:56:58 +00:00
ieee.h
ieeefp.h
in_cksum.h
intr_machdep.h FDT support for MIPS. 2011-10-18 07:29:21 +00:00
iodev.h Remove the unused major/minor numbers from iodev and memdev. 2008-06-25 07:45:31 +00:00
kdb.h Stash the context of the running thread at the time an IPI_STOP is received 2010-03-11 07:17:14 +00:00
limits.h
locore.h Whitespace fixes in mips/include, remove unused 'struct tlb' from locore.h 2010-08-27 07:45:50 +00:00
md_var.h Fix wakeup latency when sleeping with 'wait' 2011-10-18 16:37:28 +00:00
memdev.h Add reader/writer lock around mem_range_attr_get() and mem_range_attr_set(). 2011-01-17 22:58:28 +00:00
metadata.h
minidump.h
mips_opcode.h
mp_watchdog.h
ofw_machdep.h FDT support for MIPS. 2011-10-18 07:29:21 +00:00
param.h Remove bogus and wrong definition of BLKDEV_IOSIZE. 2011-10-04 18:06:08 +00:00
pcb.h Whitespace fixes in mips/include, remove unused 'struct tlb' from locore.h 2010-08-27 07:45:50 +00:00
pci_cfgreg.h
pcpu.h SMP support for the mips port. 2010-02-09 06:24:43 +00:00
pmap.h Add the cpuset_t conversion for mips. 2011-05-13 16:42:05 +00:00
pmc_mdep.h Add support for hwpmc(4) on the MIPS 24K, 32 bit, embedded processor. 2010-03-03 15:05:58 +00:00
ppireg.h
proc.h Remove unused define. 2011-10-07 16:09:44 +00:00
profile.h Update MIPS _stdint.h for 64 bit. Initial 64 bit changes for profile.h. 2010-07-29 14:04:29 +00:00
pte.h Support for 64 bit PTEs on n32 and n64 compilation. 2011-01-13 15:17:29 +00:00
ptrace.h
reg.h
regdef.h Merge from projects/mips to head by hand: 2010-01-10 19:50:24 +00:00
regnum.h Whitespace fixes in mips/include, remove unused 'struct tlb' from locore.h 2010-08-27 07:45:50 +00:00
reloc.h
resource.h
runq.h Fix RQB_FFS for 64 bit, we need to use ffsl() for 64bit. 2010-07-29 13:52:46 +00:00
setjmp.h Merge jmallett@'s n64 work into HEAD - changeset 7 2010-06-24 08:08:43 +00:00
sf_buf.h Implement sf_buf using direct map (XKPHYS) in MIPS n64. 2011-01-27 14:49:22 +00:00
sigframe.h
signal.h
smp.h Add the cpuset_t conversion for mips. 2011-05-13 16:42:05 +00:00
stdarg.h
sysarch.h Merge r195128 from project/mips to head. 2010-01-09 04:59:57 +00:00
timerreg.h
tlb.h Move TLB definitions to tlb.h 2010-07-15 03:56:08 +00:00
trap.h o) Use inline functions to access coprocessor 0 registers rather than external 2010-04-17 01:17:31 +00:00
ucontext.h Whitespace fixes in mips/include, remove unused 'struct tlb' from locore.h 2010-08-27 07:45:50 +00:00
varargs.h
vm.h Merge jmallett@'s n64 work into HEAD - changeset 6 2010-06-23 19:42:01 +00:00
vmparam.h Move the ZERO_REGION_SIZE to a machine-dependent file, as on many 2011-05-13 19:35:01 +00:00