freebsd-dev/sys
Andrew Turner 17fb49c1e4 An IPI must be cleared before it is handled otherwise next IPI could be
missed. In other words, if a new request for an IPI is sent while the
previous request is being handled but the IPI is not cleared yet, the
clearing of the previous IPI request also clears the new one and the
handling is missed.

There are only three MP interrupt controllers in ARM now. Two of them are
fixed by this change, the third one is correct, probably only just by
accident. The fix is minimalistic as new interrupt framework is awaited.

It was debugged on RPi2 where missing IPI handling together with SCHED_ULE
led to situation in which tdq_ipipending was not cleared and so IPI_PREEMPT
was stopped to be sent. Various odditys were found related to slow system
response time like various events timed out, and slow console response.

Submitted by:	Svatopluk Kraus <onwahe@gmail.com>
Reviewed by:	loos, kib
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D3722
2015-10-01 12:09:05 +00:00
..
amd64 Exploit r288122 to address a cosmetic issue. Since PV chunk pages don't 2015-09-26 07:18:05 +00:00
arm An IPI must be cleared before it is handled otherwise next IPI could be 2015-10-01 12:09:05 +00:00
arm64 Use pmap_load more consistently. While here try to only load the data once 2015-10-01 10:43:40 +00:00
boot Use EFI page size constants instead of hardcoding 4096. 2015-09-29 15:49:53 +00:00
bsm
cam Use proper STAILQ_* macros where possible. 2015-09-30 20:38:35 +00:00
cddl MFV r288408: 2015-09-30 05:24:22 +00:00
compat save some bytes by using more concise SDT_PROBE<n> instead of SDT_PROBE 2015-09-28 12:14:16 +00:00
conf Install kernel debug data under /usr/lib/debug 2015-09-24 16:55:22 +00:00
contrib Add an initial driver for the AR9170 series draft-11n hardware from 2015-09-26 07:08:35 +00:00
crypto const'ify an arg that we don't update... 2015-07-29 23:37:15 +00:00
ddb Make kstack_pages a tunable on arm, x86, and powepc. On i386, the 2015-08-10 17:18:21 +00:00
dev Disable suspend when we're shutting down. This solves the "tell FreeBSD 2015-10-01 10:52:26 +00:00
fs Ensure that when a blockable open of fifo returns success, a valid 2015-09-20 21:18:33 +00:00
gdb CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
geom geom_dev: Use kenv 'dumpdev' in the same way as rc/etc.d/dumpon 2015-09-23 21:08:52 +00:00
gnu Fixing a memory leak on module unloading. 2015-09-11 22:43:35 +00:00
i386 Exploit r288122 to address a cosmetic issue. Since PV chunk pages don't 2015-09-26 07:18:05 +00:00
isa
kern Disable suspend when we're shutting down. This solves the "tell FreeBSD 2015-10-01 10:52:26 +00:00
kgssapi
libkern Add the __aeabi_memclr8 symbol, clang 3.7 uses this. 2015-09-21 18:35:32 +00:00
mips Exploit r288122 to address a cosmetic issue. Since PV chunk pages don't 2015-09-26 07:18:05 +00:00
modules Fix make depend in sys/modules/otus 2015-10-01 05:56:38 +00:00
net Eliminate nd6_nud_hint() and its TCP bindings. 2015-09-27 05:29:34 +00:00
net80211 Defer calling into the driver to update the QOS (WME) configuration. 2015-09-29 03:40:21 +00:00
netgraph Add support for PPP-Max-Payload PPPoE tag (RFC4638). 2015-09-11 09:15:27 +00:00
netinet Take extra reference to security policy before calling crypto_dispatch(). 2015-09-30 08:16:33 +00:00
netinet6 Take extra reference to security policy before calling crypto_dispatch(). 2015-09-30 08:16:33 +00:00
netipsec Take extra reference to security policy before calling crypto_dispatch(). 2015-09-30 08:16:33 +00:00
netnatm
netpfil Simplify the way of attaching IPv6 link-layer header. 2015-09-16 14:26:28 +00:00
netsmb
nfs Wait up to 10 seconds for late-initializing network interfaces to arrive. 2015-09-26 13:55:55 +00:00
nfsclient Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
nfsserver
nlm
ofed Fix build broken by r287861. 2015-09-16 15:40:08 +00:00
opencrypto Make IPsec work with AES-GCM and AES-ICM (aka CTR) in OCF... IPsec 2015-08-04 17:47:11 +00:00
pc98 Add missing ofw_machdep.h. Make x86 ofw_machdep.h work pc98 too. 2015-08-28 15:41:09 +00:00
powerpc Use tabs for indend. 2015-09-20 01:35:51 +00:00
rpc Increase group limit for kerberized NFSv4 2015-09-26 16:30:16 +00:00
security fd: make 'rights' a manadatory argument to fget* functions 2015-07-05 19:05:16 +00:00
sparc64 Add support for weak symbols to the kernel linkers. It means that 2015-09-20 01:27:59 +00:00
sys Disable suspend when we're shutting down. This solves the "tell FreeBSD 2015-10-01 10:52:26 +00:00
teken Sync HPA and VPA implementations with CUP. 2015-08-24 07:49:27 +00:00
tools save some bytes by using more concise SDT_PROBE<n> instead of SDT_PROBE 2015-09-28 12:14:16 +00:00
ufs Do not consume extra reference. This is a bug in r287479. 2015-09-05 12:28:18 +00:00
vm As a step towards the elimination of PG_CACHED pages, rework the handling 2015-09-30 23:06:29 +00:00
x86 dmar_ctx_dtr() does not exist since r284869. Remove the static function 2015-09-22 16:50:59 +00:00
xdr
xen xen: allow disabling PV disks and nics 2015-08-21 15:53:08 +00:00
Makefile Kill EoL whitespace. 2015-05-29 14:03:07 +00:00