freebsd-nq/sys/sparc64/sparc64
Marius Strobl 4cf9e21ed8 - Give PIL_PREEMPT the lowest priority just above low/stray interrupts.
The reason for this is that the SPARC v9 architecture allows nested
  interrupts of higher priority/level than that of the current interrupt
  to occur (and we can't just entirely bypass this model, also, at least
  for tick interrupts, this also wouldn't be wise). However, when a
  preemption interrupt interrupts another interrupt of lower priority,
  f.e. PIL_ITHREAD, and that one in turn is nested by a third interrupt,
  f.e. PIL_TICK, with SCHED_ULE the execution of interrupts higher than
  PIL_PREEMPT may be migrated to another CPU. In particular, tl1_ret(),
  which is responsible for restoring the state of the CPU prior to entry
  to the interrupt based on the (also migrated) trap frame, then is run
  on a CPU which actually didn't receive the interrupt in question,
  causing an inappropriate processor interrupt level to be "restored".
  In turn, this causes interrupts of the first level, i.e. PIL_ITHREAD
  in the above scenario, to be blocked on the target of the migration
  until the correct PIL happens to be restored again on that CPU again.
  Making PIL_PREEMPT the lowest real priority, this effectively prevents
  this scenario from happening, as preemption interrupts no longer can
  interrupt any other interrupt besides stray ones (which is no issue).
  Thanks to attilio@ and especially mav@ for helping me to understand
  this problem at the 201208DevSummit.
- Give PIL_STOP (which is also used for IPI_STOP_HARD, given that there's
  no real equivalent to NMIs on SPARC v9) the highest possible priority
  just below the hardwired PIL_TICK, so it has a chance to interrupt
  more things.

MFC after:	1 week
2012-10-20 12:07:48 +00:00
..
ata_machdep.c Correct double "the the" 2012-09-14 21:28:56 +00:00
autoconf.c Disconnect sun4v architecture from the three. 2011-05-14 01:53:38 +00:00
bus_machdep.c - Change contigmalloc() to use the vm_paddr_t type instead of an unsigned 2012-03-01 19:58:34 +00:00
cache.c Now that we have a working OF_printf() since r230631 and a OF_panic() 2012-01-27 23:21:54 +00:00
cam_machdep.c For sparc64 also adjust the geometry of da(4) driven disks to not overflow 2011-11-27 15:43:40 +00:00
cheetah.c - For Cheetah- and Zeus-class CPUs don't flush all unlocked entries from 2011-07-02 11:14:54 +00:00
clock.c Now that we have a working OF_printf() since r230631 and a OF_panic() 2012-01-27 23:21:54 +00:00
counter.c - Remove redundant timecounter masking from counter_get_timecount(). 2011-07-12 18:02:37 +00:00
db_disasm.c
db_hwwatch.c
db_interface.c
db_trace.c Remove unneeded includes of <sys/linker_set.h>. Other headers that use 2011-01-11 13:59:06 +00:00
dump_machdep.c - Merge from r147740: 2011-08-06 17:45:52 +00:00
eeprom.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
elf_machdep.c - Add support for TLS relocations. 2011-03-11 21:08:02 +00:00
exception.S Also allocate space for the PIL counters. Given that no machine actually 2011-10-01 13:11:29 +00:00
gdb_machdep.c
genassym.c Nuke SUN4U #ifdef's which with the demise of sun4v no longer serve any 2011-10-01 13:16:01 +00:00
identcpu.c Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. 2011-11-07 15:43:11 +00:00
in_cksum.c
interrupt.S - Remove an unused header. 2012-10-19 17:12:55 +00:00
intr_machdep.c - Give PIL_PREEMPT the lowest priority just above low/stray interrupts. 2012-10-20 12:07:48 +00:00
iommu.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
jbusppm.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
locore.S
machdep.c Reverts r234074,234105,234564,234723,234989,235231-235232 and part of 2012-10-09 12:22:43 +00:00
mem.c Disconnect sun4v architecture from the three. 2011-05-14 01:53:38 +00:00
mp_exception.S Don't waste a delay slot. 2011-07-02 11:46:23 +00:00
mp_locore.S Adapt CATR() to r222813. This is somewhat tricky as we can't afford using 2011-06-07 17:33:39 +00:00
mp_machdep.c - Unlike cache invalidation and TLB demapping IPIs, reading registers from 2012-08-29 16:56:50 +00:00
nexus.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
ofw_machdep.c - Now that we have a working OF_printf() since r230631, use it for 2012-01-27 22:35:53 +00:00
pmap.c Eliminate a stale comment. It describes another use case for the pmap in 2012-09-28 05:30:59 +00:00
prof_machdep.c
rtc.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
rwindow.c
sc_machdep.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
schppm.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
spitfire.c - For Cheetah- and Zeus-class CPUs don't flush all unlocked entries from 2011-07-02 11:14:54 +00:00
ssm.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
stack_machdep.c
support.S Add a global MD macro for the VIS block size instead of duplicating 2012-08-31 11:15:01 +00:00
swtch.S - Use atomic operations rather than sched_lock for safely assigning pm_active 2011-10-06 11:01:31 +00:00
sys_machdep.c Trace attempts to call restricted MD syscalls. 2011-10-18 07:39:27 +00:00
tick.c Let SCHED_ULE give affinity to the CPU the tick interrupt triggered on 2012-10-19 13:32:37 +00:00
tlb.c - Remove MD usage of pc_cpumask and pc_other_cpus. [1] 2011-06-20 21:31:01 +00:00
trap.c userret() already checks for td_locks when INVARIANTS is enabled, so 2012-09-08 18:27:11 +00:00
tsb.c Replace all uses of the vm page queues lock by a r/w lock that is private 2012-05-29 01:52:38 +00:00
uio_machdep.c Put the general logic for being a CPU hog into a new function 2011-02-02 16:35:10 +00:00
upa.c s,KOBJMETHOD_END,DEVMETHOD_END,g in order to fully hide the explicit mention 2011-11-22 21:55:40 +00:00
vm_machdep.c Eliminate vestiges of page coloring. 2011-12-15 05:07:16 +00:00
zeus.c - For Cheetah- and Zeus-class CPUs don't flush all unlocked entries from 2011-07-02 11:14:54 +00:00