1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/sys
Scott Long 8611774e5e Extend critical section coverage in the low-level interrupt handlers to
include the ithread scheduling step.  Without this, a preemption might
occur in between the interrupt getting masked and the ithread getting
scheduled.  Since the interrupt handler runs in the context of curthread,
the scheudler might see it as having a such a low priority on a busy system
that it doesn't get to run for a _long_ time, leaving the interrupt stranded
in a disabled state.  The only way that the preemption can happen is by
a fast/filter handler triggering a schduling event earlier in the handler,
so this problem can only happen for cases where an interrupt is being
shared by both a fast/filter handler and an ithread handler.  Unfortunately,
it seems to be common for this sharing to happen with network and USB
devices, for example.  This fixes many of the mysterious TCP session
timeouts and NIC watchdogs that were being reported.  Many thanks to Sam
Lefler for getting to the bottom of this problem.

Reviewed by: jhb, jeff, silby
2007-11-21 04:03:51 +00:00
..
amd64 Extend critical section coverage in the low-level interrupt handlers to 2007-11-21 04:03:51 +00:00
arm Prevent the leakage of wired pages in the following circumstances: 2007-11-17 22:52:29 +00:00
boot MFi386: revision 1.18 2007-11-18 03:14:06 +00:00
bsm Merge OpenBSM 1.0 changes to src/sys/bsm: 2007-10-29 18:47:25 +00:00
cam Fix a change in the previous commit that was actually a type-o. 2007-11-15 16:23:38 +00:00
cddl Warn if kmem_map size is set to less than 512MB. Previous warning was a bit 2007-11-07 14:44:31 +00:00
compat Implement LINUX_SIOCGIFCOUNT and LINUX_SIOCGIFINDEX/LINUX_SIOGIFINDEX. 2007-11-07 16:42:52 +00:00
conf Re-enable -Werror for modules. 2007-11-19 16:24:10 +00:00
contrib Warn if kmem_map size is set to less than 512MB. Previous warning was a bit 2007-11-07 14:44:31 +00:00
crypto
ddb Make the examine command honor db_pager_quit so you can use 'q' or 'x' 2007-10-27 20:19:11 +00:00
dev Add MSI support for 88E8058(Yukon EC Ultra). Unlike other Yukon II 2007-11-21 00:42:42 +00:00
fs o English lesson from bde@: "iff" is not a typo, it means "if and only if". 2007-11-18 09:21:30 +00:00
gdb
geom On some arches, openssl is built with OPENSSL_NO_CAMELLIA, so the 2007-11-19 08:59:32 +00:00
gnu Remove duplicate "union" from ext2_opts. 2007-10-27 16:14:33 +00:00
i4b Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
i386 Extend critical section coverage in the low-level interrupt handlers to 2007-11-21 04:03:51 +00:00
ia64 Extend critical section coverage in the low-level interrupt handlers to 2007-11-21 04:03:51 +00:00
isa Split /dev/nvram driver out of isa/clock.c for i386 and amd64. I have not 2007-10-26 03:23:54 +00:00
kern Test that p_textvp is non-NULL be dereferencing, as no executable vnode is 2007-11-20 18:03:09 +00:00
libkern Do not use __XSCALE__ to detect if clz is available, use _ARM_ARCH_5 instead. 2007-10-13 12:05:36 +00:00
modules Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was 2007-11-12 21:51:38 +00:00
net 1) dummynet_io() declaration has changed. 2007-11-06 23:01:42 +00:00
net80211 correct MIMO power save action frame format; 2007-11-14 21:28:48 +00:00
netatalk Annotate two possible bugs in a comment: (1) we allocate and explicitly 2007-11-20 18:50:54 +00:00
netatm
netgraph - Merge all the ng_send_fn2* functions into one - ng_send_fn2(), 2007-11-14 11:25:58 +00:00
netinet Comment out the syncache's test which ensures that hosts which negotiate TCP 2007-11-20 06:56:04 +00:00
netinet6 Move towards more explicit support for various network protocol stacks 2007-10-28 15:55:23 +00:00
netipsec Move the priv check before the malloc call for so_pcb. 2007-11-16 22:35:33 +00:00
netipx
netnatm
netncp
netsmb Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
nfs
nfs4client Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
nfsclient Remove hacks from the NFSv2/3 client intended to handle a lack of a 2007-11-19 16:03:21 +00:00
nfsserver Garbage collect now-unused nfsrv_setcred() -- it's not only unused, but 2007-11-04 19:20:33 +00:00
opencrypto Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
pc98 MFi386: revision 1.661 2007-11-14 12:29:09 +00:00
pccard
pci Move the agp(4) driver from sys/pci to sys/dev/agp. __FreeBSD_version was 2007-11-12 21:51:38 +00:00
powerpc Extend critical section coverage in the low-level interrupt handlers to 2007-11-21 04:03:51 +00:00
rpc
security Implement per-object type consistency checks for labels passed to 2007-10-30 00:01:28 +00:00
sparc64 Extend critical section coverage in the low-level interrupt handlers to 2007-11-21 04:03:51 +00:00
sun4v __builtin_stdarg_start was renamed to __builtin_va_start a long 2007-11-19 07:34:57 +00:00
sys Add the function callout_init_rw() to callout facility in order to use 2007-11-20 00:37:45 +00:00
tools
ufs Fix build without INVARIANTS and update a comment to match 2007-11-09 11:04:36 +00:00
vm Prevent the leakage of wired pages in the following circumstances: 2007-11-17 22:52:29 +00:00
Makefile