freebsd-dev/sys/arm
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
..
allwinner Add the A20 glue code for if_dwc. 2015-09-21 01:51:37 +00:00
altera/socfpga Add alternate descriptors support for if_dwc. 2015-09-20 14:13:29 +00:00
amlogic/aml8726 Add alternate descriptors support for if_dwc. 2015-09-20 14:13:29 +00:00
annapurna/alpine Remove obsolete vendor code from Alpine platform support 2015-07-30 13:45:34 +00:00
arm Exploit r288122 to address a cosmetic issue. Since PV chunk pages don't 2015-09-26 07:18:05 +00:00
at91 Make kstack_pages a tunable on arm, x86, and powepc. On i386, the 2015-08-10 17:18:21 +00:00
broadcom/bcm2835 An IPI must be cleared before it is handled otherwise next IPI could be 2015-10-01 12:09:05 +00:00
cavium/cns11xx Make kstack_pages a tunable on arm, x86, and powepc. On i386, the 2015-08-10 17:18:21 +00:00
conf Enable if_dwc for Allwinner A20 based boards. 2015-09-21 03:17:41 +00:00
freescale Make the imx watchdog actually work, by setting WDOG_CR_WDE (enable bit). 2015-08-19 20:50:31 +00:00
include Typo. 2015-08-20 13:37:08 +00:00
lpc Build the cpufunc_asm_* files based on the cpu type, not which config file 2015-03-29 22:43:39 +00:00
mv An IPI must be cleared before it is handled otherwise next IPI could be 2015-10-01 12:09:05 +00:00
qemu Enable SMP on the qemu virt platform. We use the device tree to find which 2015-05-24 12:33:12 +00:00
rockchip Use the new gic option on all configs that need it. 2015-05-10 12:13:27 +00:00
samsung Make kstack_pages a tunable on arm, x86, and powepc. On i386, the 2015-08-10 17:18:21 +00:00
ti Add a new PPS driver for AM335x (beaglebone) timer hardware. This can be 2015-08-13 15:19:30 +00:00
versatile Add domain support to PCI bus allocation 2015-09-16 23:34:51 +00:00
xilinx Use the new gic option on all configs that need it. 2015-05-10 12:13:27 +00:00
xscale Add domain support to PCI bus allocation 2015-09-16 23:34:51 +00:00