freebsd-nq/sys/arm/mv
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
..
armadaxp Include vm/pmap.h for pmap_kextract. 2015-04-04 23:03:11 +00:00
discovery Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it with 2014-01-28 09:12:04 +00:00
kirkwood Remove STARTUP_PAGETABLE_ADDR from the ARM configs and replace it with 2014-01-28 09:12:04 +00:00
orion When mapping device memory, use PTE_DEVICE rather than PTE_NOCACHE. 2014-05-10 20:03:03 +00:00
files.mv Build the cpufunc_asm_* files based on the cpu type, not which config file 2015-03-29 22:43:39 +00:00
gpio.c Stop using machine/fdt.h in the arm kernel code when we don't need it. 2015-04-04 21:34:26 +00:00
ic.c Follow r261352 by updating all drivers which are children of simplebus 2014-02-02 19:17:28 +00:00
mpic.c An IPI must be cleared before it is handled otherwise next IPI could be 2015-10-01 12:09:05 +00:00
mv_common.c Follow r275792 eliminating fdt_data_verify(). 2014-12-15 11:57:39 +00:00
mv_localbus.c Move the definition of fdt_localbus_devmap to a Marvell specific file as 2015-04-04 22:05:43 +00:00
mv_machdep.c Add the start of the ARM platform code. This is based on the PowerPC 2014-05-17 11:27:36 +00:00
mv_pci.c Fix typo. 2014-12-15 12:15:18 +00:00
mv_ts.c Stop using machine/fdt.h in the arm kernel code when we don't need it. 2015-04-04 21:34:26 +00:00
mvreg.h Corrects the Kirkwood dreamplug to use 2013-10-19 06:47:02 +00:00
mvvar.h Move the definition of fdt_localbus_devmap to a Marvell specific file as 2015-04-04 22:05:43 +00:00
mvwin.h Disable decoding windows with no FDT entry. 2013-05-06 14:54:17 +00:00
rtc.c Follow r261352 by updating all drivers which are children of simplebus 2014-02-02 19:17:28 +00:00
std-pj4b.mv Remove -Wa,-march=armv7a from arm kernel configs, it makes clang 3.5 sad 2015-01-01 23:21:46 +00:00
std.mv
timer.c Replace many pasted identical definitions of cpu_initclocks() with a common 2014-02-26 22:06:10 +00:00
twsi.c Follow r261352 by updating all drivers which are children of simplebus 2014-02-02 19:17:28 +00:00