freebsd-dev/sys/alpha
John Baldwin 9e438eb4f5 Add a new field 'md_kernnest' to the alpha machine dependent process
structure.  This field keeps track of how many levels deep we are nested
into the kernel.  The nesting level is bumped at the start of a trap,
interrupt, syscall, or exception and is decremented on return.  This is
used to detect the case when the kernel is returning back to a kernel
context in exception_return().  If we are returning to the kernel we need
to update the globaldata pointer register saved in the stack frame in case
we have switched CPU's between taking the initial interrupt that saved the
frame and returning.  If we don't do this fixup it is possible for a CPU to
use the wrong per-cpu data.  On UP systems this is not a problem, so the
code is conditional on SMP.

A count was used instead of simply checking the process status register in
the frame during exception_return() since there are critical sections at
the very start and end of a trap, exception, or interrupt from userland in
which we could trash the t7 register being used in userland.  The counter
is incremented after adn before these critical sections respectively so
that we will not overwrite the saved t7 register if we are interrupted
during one of these critical sections.
2001-04-24 21:06:53 +00:00
..
alpha Add a new field 'md_kernnest' to the alpha machine dependent process 2001-04-24 21:06:53 +00:00
conf Turn on kernel debugging support (DDB, INVARIANTS, INVARIANT_SUPPORT, WITNESS) 2001-04-15 19:37:28 +00:00
include Add a new field 'md_kernnest' to the alpha machine dependent process 2001-04-24 21:06:53 +00:00
isa Use the MI ithread helper functions in the alpha hardware interrupt code. 2001-02-09 17:53:23 +00:00
linux Regen after adding linux_sched_get_priority_max() and 2001-04-03 18:01:41 +00:00
mcbus Doug found that doing a W1C on MCPCIA_INT_REQ just around the time you 2001-02-13 22:48:12 +00:00
osf1 Grab the process lock while calling psignal and before calling psignal. 2001-03-07 03:37:06 +00:00
pci Switch from save/disable/restore_intr() to critical_enter/exit(). 2001-03-28 03:06:10 +00:00
tc Another round of the <sys/queue.h> FOREACH transmogriffer. 2001-02-04 16:08:18 +00:00
tlsb Send the remains (such as I have located) of "block major numbers" to 2001-03-26 12:41:29 +00:00
Makefile Add a dopey makefile to do the tags dance, which is probably not perfect 2000-12-31 23:26:34 +00:00