freebsd-skq/sys
ian 7c17474602 Interrupts need to be disabled on entry to cpu_sleep() for ARM. Given
that and the need to be in a critical section when switching to idleclock
mode for event timers, use spinlock_enter()/exit() to achieve both needs.

The ARM WFI (wait for interrupt) instruction blocks until an interrupt is
asserted, and it will unblock even if interrupts are masked, and it will
unblock immediately if an interrupt is already pending.  It is necessary
to execute it with interrupts disabled, otherwise the interrupt that
should unblock it may occur and be serviced just prior to executing the
instruction.  At that point the system is inappropriately asleep until
the next timer tick or some other random interrupt happens.

In general, interrupts need to be disabled continuously from the time the
decision is made that there is no work to be done and sleeping is needed
until actually going to sleep, to avoid a race where handling a new
interrupt changes the basis for deciding there is no work to be done.

Submitted by:	hps@ (in slightly different form)
2014-05-12 13:05:03 +00:00
..
amd64 Virtual machine halt detection is turned on by default. Allow it to be 2014-05-05 16:19:24 +00:00
arm Interrupts need to be disabled on entry to cpu_sleep() for ARM. Given 2014-05-12 13:05:03 +00:00
boot Adjust the register layout to allow for 64bit registers in the 2014-05-09 12:59:38 +00:00
bsm
cam Provide better descriptions for 'struct ctl_scsiio' fields; based mostly 2014-05-04 15:35:04 +00:00
cddl Import George Wilson's change for Illumos #4730: 2014-05-06 19:03:04 +00:00
compat
conf s/JIRA/Jenkins/g in comments. I was confused. 2014-05-12 01:47:45 +00:00
contrib Add Atheros AR1111 support to the HAL. 2014-05-05 07:58:05 +00:00
crypto NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
ddb
dev Create driver file templates, kernel module Makefile and add initial 2014-05-12 09:05:07 +00:00
fs
gdb
geom It is safe to allow shrinking, when aligned size is bigger than current. 2014-05-07 11:18:27 +00:00
gnu
i386 Disable ACPI and P4TCC throttling by default, following discussion on 2014-05-04 16:38:21 +00:00
ia64
isa
kern accept(),accept4(): Don't set *addrlen = 0 on [ECONNABORTED]. 2014-05-11 21:21:14 +00:00
kgssapi
libkern
mips Do not configure all pins as outputs as this can lead to short circuits when 2014-05-10 13:16:04 +00:00
modules Create driver file templates, kernel module Makefile and add initial 2014-05-12 09:05:07 +00:00
net Rename rt_msg1() to more handy rtsock_msg_mbuf(). 2014-05-08 13:54:57 +00:00
net80211
netgraph Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
netinet Disable TX checksum offload for UDP-Lite completely. It wasn't used for 2014-05-12 09:46:48 +00:00
netinet6 Pass radix head ptr along with rte to rtexpunge(). 2014-05-03 16:28:54 +00:00
netipsec
netnatm
netpfil
netsmb
nfs
nfsclient For software builds, the NFS client does many small 2013-12-07 23:05:59 +00:00
nfsserver
nlm
ofed Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
opencrypto
pc98
pci
powerpc Repair some races in IPI handling: 2014-05-12 02:56:27 +00:00
rpc
security
sparc64
sys include: Remove checks for __BSD_VISIBLE where redundant with __XSI_VISIBLE 2014-05-11 13:48:21 +00:00
teken
tools
ufs Due to reasons unknown at this time, the system can be forced to write 2014-05-06 20:40:16 +00:00
vm Fix locking. The dst_object must remain locked on the retry of the 2014-05-11 18:07:07 +00:00
x86
xdr
xen
Makefile Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00