freebsd-nq/sys/amd64/include
John Baldwin 5db078a9be Fix mtx_legal2block. The only time that it is bad to block on a mutex is
if we hold a spin mutex, since we can trivially get into deadlocks if we
start switching out of processes that hold spinlocks.  Checking to see if
interrupts were disabled was a sort of cheap way of doing this since most
of the time interrupts were only disabled when holding a spin lock.  At
least on the i386.  To fix this properly, use a per-process counter
p_spinlocks that counts the number of spin locks currently held, and
instead of checking to see if interrupts are disabled in the witness code,
check to see if we hold any spin locks.  Since child processes always
start up with the sched lock magically held in fork_exit(), we initialize
p_spinlocks to 1 for child processes.  Note that proc0 doesn't go through
fork_exit(), so it starts with no spin locks held.

Consulting from:	cp
2001-03-09 07:24:17 +00:00
..
pc Add PCI BIOS function codes for IRQ routing fetch and route. 2000-10-19 08:02:46 +00:00
apicreg.h Remove the leading underscore from all symbols defined in x86 asm 2001-02-25 06:29:04 +00:00
asm.h Fixed the profiling version ALTENTRY(). Again. The previous version 2000-01-25 09:01:55 +00:00
asmacros.h Always use the ELF naming after the demise of asnames.h. 2001-02-25 07:23:03 +00:00
atomic.h RIP <machine/lock.h>. 2001-02-11 10:44:09 +00:00
bus_amd64.h version 1.7 made some changes to correct problems identifed by compiling 2001-03-02 05:33:53 +00:00
bus_at386.h version 1.7 made some changes to correct problems identifed by compiling 2001-03-02 05:33:53 +00:00
bus_dma.h version 1.7 made some changes to correct problems identifed by compiling 2001-03-02 05:33:53 +00:00
bus_memio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_pio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus.h Added indirect pio into the bus space stuff for the NEC PC-98. bus.h 2000-03-29 03:15:22 +00:00
clock.h Move DELAY() from <machine/clock.h> to <sys/systm.h> 2000-10-15 09:51:49 +00:00
cpu.h Changed the aston() family to operate on a specified process instead of 2001-02-19 04:15:59 +00:00
cpufunc.h Assembler fixes. 2000-11-21 20:16:49 +00:00
cputypes.h First shot at identifying the Pentum 4 acording to our reading of the 2000-09-29 04:38:35 +00:00
db_machdep.h Fix style bug: order includes 1999-10-04 13:55:35 +00:00
elf.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
exec.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
float.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
floatingpoint.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
fpu.h Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +00:00
frame.h Interrupt frames don't include the saved cpl anymore since cpl is dead. 2000-10-06 01:57:28 +00:00
ieeefp.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
in_cksum.h This is the first snapshot of the FreeBSD/ia64 kernel. This kernel will 2000-09-29 13:46:07 +00:00
legacyvar.h Get out the roto-rooter and clean up the abuse of nexus ivars by the 2000-09-28 00:37:32 +00:00
md_var.h Remove the last of the MD netisr code. It is now all MI. Remove 2000-12-05 00:36:00 +00:00
mptable.h Activate USER_LDT by default. The new thread libraries are going to 2001-02-23 01:25:02 +00:00
mutex.h Fix mtx_legal2block. The only time that it is bad to block on a mutex is 2001-03-09 07:24:17 +00:00
npx.h Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +00:00
pcb_ext.h Activate USER_LDT by default. The new thread libraries are going to 2001-02-23 01:25:02 +00:00
pcb.h Activate USER_LDT by default. The new thread libraries are going to 2001-02-23 01:25:02 +00:00
pci_cfgreg.h Add types and prototypes. 2000-10-16 19:49:30 +00:00
pcpu.h Activate USER_LDT by default. The new thread libraries are going to 2001-02-23 01:25:02 +00:00
pmap.h Increase NKPT from 17 to 30. This fixes the 4GB ram boot panic on both 2000-11-30 01:53:02 +00:00
proc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
profile.h Change and clean the mutex lock interface. 2001-02-09 06:11:45 +00:00
psl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ptrace.h Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
reg.h Add a couple of debug register helper functions to assist in setting 2000-09-21 17:07:27 +00:00
reloc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
resource.h * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
segments.h Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +00:00
setjmp.h Work around a bug by adding struct tags. gcc-2.95 apparently gets the 2000-10-06 11:53:32 +00:00
sigframe.h Fix type of sf_addr. 1999-12-04 10:40:24 +00:00
signal.h Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
smp.h Defer assignment of low level interrupt handlers for PCI interrupts 2001-01-28 01:07:54 +00:00
specialreg.h Add the CR4 values for P3 SIMD enabling support. FXSR tells the cpu that 1999-09-10 15:51:44 +00:00
sysarch.h Add a couple of debug register helper functions to assist in setting 2000-09-21 17:07:27 +00:00
trap.h Removed all traces of T_ASTFLT (except for gaps where it was). It became 2001-02-19 15:47:38 +00:00
tss.h Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +00:00
ucontext.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
varargs.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vmparam.h Make sysv-style shared memory tuneable params fully runtime adjustable 2000-03-30 07:17:05 +00:00