freebsd-skq/sys
peter 326b7f663e Commit Doug White and Alan Cox's fix for the cross-ipi smp deadlock.
We were obtaining different spin mutexes (which disable interrupts after
aquisition) and spin waiting for delivery.  For example, KSE processes
do LDT operations which use smp_rendezvous, while other parts of the
system are doing things like tlb shootdowns with a different mutex.

This patch uses the common smp_rendezvous mutex for all MD home-grown
IPIs that spinwait for delivery.  Having the single mutex means that
the spinloop to aquire it will enable interrupts periodically, thus
avoiding the cross-ipi deadlock.

Obtained from: dwhite, alc
Reviewed by:   jhb
2004-08-23 21:39:29 +00:00
..
alpha Add a new type, l_uintptr_t, which is an unsigned integer type with the 2004-08-16 07:05:44 +00:00
amd64 Commit Doug White and Alan Cox's fix for the cross-ipi smp deadlock. 2004-08-23 21:39:29 +00:00
arm Add __elfN(dump_thread). This function is called from __elfN(coredump) 2004-08-11 02:35:06 +00:00
boot Trim EOL white spaces. 2004-08-22 08:57:05 +00:00
cam Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
coda Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
compat Don't try to translate the control message unless we're certain it's 2004-08-23 12:41:29 +00:00
conf Remove in6_prefix.[ch] and the contained router renumbering capability. 2004-08-23 03:00:27 +00:00
contrib Use securelevel_gt instead of reading global securelevel unprotected. 2004-08-22 15:23:48 +00:00
crypto
ddb Damage control. Correcly advance symtab and strtab pointers, not 2004-07-28 08:59:08 +00:00
dev Until I can get a clearer architecture from PHK about why he wants 2004-08-23 19:04:19 +00:00
doc Experimental support for using doxygen to generate kernel documentation. 2004-07-11 16:13:57 +00:00
fs Release the vnode cache mutex when calling vgone(), since vgone() may 2004-08-15 21:58:02 +00:00
gdb Comment-out the debugging printf I left in in case there were some 2004-08-10 19:32:33 +00:00
geom Allow to set kern.geom.mirror.timeout from /boot/loader.conf. 2004-08-23 20:42:34 +00:00
gnu Add locking to the kqueue subsystem. This also makes the kqueue subsystem 2004-08-15 06:24:42 +00:00
i4b Fix a possible hang which apparently occurs during a warm boot (cold boot 2004-07-18 20:13:31 +00:00
i386 Commit Doug White and Alan Cox's fix for the cross-ipi smp deadlock. 2004-08-23 21:39:29 +00:00
ia64 The existing code fails some corner cases. Replace it with 2004-08-16 22:09:58 +00:00
isa Defer the capture of the "expected sync bits" until the first "normal" 2004-08-17 18:12:37 +00:00
isofs/cd9660 Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
kern Commit Doug White and Alan Cox's fix for the cross-ipi smp deadlock. 2004-08-23 21:39:29 +00:00
libkern Convert the vfsconf list to a TAILQ. 2004-07-27 22:32:01 +00:00
modules Make this compile again in the standalone and the MODULES_WITH_WORLD 2004-08-23 03:38:21 +00:00
net Style update: use newer style function prototypes in if_sl.c in 2004-08-22 21:32:52 +00:00
net80211 Add a new network interface flag, IFF_NEEDSGIANT, which will allow 2004-07-27 23:20:45 +00:00
netatalk Inline umich license from COPYRIGHT to make it clear what license the 2004-08-10 03:23:05 +00:00
netatm Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
netgraph Align netgraph message fields ready for 64-bit (and 128 bit :-) machines. 2004-08-20 01:24:23 +00:00
netinet Allow early drop for non-ALTQ enabled queues in an ALTQ-enabled kernel. 2004-08-22 16:42:28 +00:00
netinet6 Remove in6_prefix.[ch] and the contained router renumbering capability. 2004-08-23 03:00:27 +00:00
netipsec Get rid of the RANDOM_IP_ID option and make it a sysctl. NetBSD 2004-08-14 15:32:40 +00:00
netipx Avoid casts as lvalues. Declare local variable as u_char * instead of 2004-07-28 06:58:23 +00:00
netkey Merge next step in socket buffer locking: 2004-06-21 00:20:43 +00:00
netnatm Constify send and receive space constants in natm. 2004-06-24 03:11:29 +00:00
netncp
netsmb Avoid casts as lvalues. 2004-07-28 06:59:55 +00:00
nfs
nfs4client Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
nfsclient Put a version element in the VFS filesystem configuration structure 2004-07-30 22:08:52 +00:00
nfsserver If debug.mpsafenet is non-zero, run the NFS server callout without 2004-07-24 02:32:27 +00:00
opencrypto Don't acquire Giant in cryptof_close(), as the code is intended to be 2004-08-10 03:26:17 +00:00
pc98 Merged from sys/dev/fdc/fdc.c revision 1.283. 2004-08-22 15:10:53 +00:00
pccard Move PNP IDs back into oldcard files 2004-08-13 06:57:31 +00:00
pci Add support for Intel E7205 AGP. 2004-08-22 03:55:04 +00:00
posix4
powerpc Instead of "OpenFirmware", "openfirmware", etc. use the official spelling 2004-08-16 15:45:27 +00:00
rpc fix array index out of bounds in rpc->rc_srtt[], rpc->rc_sdrtt[] 2004-07-15 22:21:25 +00:00
security Allow mac_bsdextended(4) to log failed attempts to syslog's AUTHPRIV 2004-08-21 20:19:19 +00:00
sparc64 Properly free the temporary sf_buf in uiomove_fromphys() if a copyin or 2004-08-21 18:50:34 +00:00
sys Commit Doug White and Alan Cox's fix for the cross-ipi smp deadlock. 2004-08-23 21:39:29 +00:00
tools Pass doxygen doc comments through to the output. 2004-07-11 16:14:24 +00:00
ufs Currently, if the secure level is low enough, system flags can 2004-08-22 02:03:41 +00:00
vm Move the cow field between wire_count and hold_count. This is the 2004-08-22 20:52:23 +00:00
Makefile Add a NO_BOOT knob to prevent building the boot blocks and loader. 2004-08-19 09:54:28 +00:00