1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-17 15:27:36 +00:00
freebsd/sys/i386
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
..
acpica This is a follow-up, cleaning-up commit about recent changes involving 2007-09-11 22:54:09 +00:00
bios Apply the same sort of locking done in 2007-11-14 05:43:55 +00:00
compile
conf Link wpi(4) into the build. 2007-11-08 22:09:37 +00:00
cpufreq Use bus_dma to get a page in the first 4 GB. Since the physical address 2007-06-17 07:18:23 +00:00
i386 Extend critical section coverage in the low-level interrupt handlers to 2007-11-21 04:03:51 +00:00
ibcs2 Fix for the panic("vm_thread_new: kstack allocation failed") and 2007-11-05 11:36:16 +00:00
include Drastically simplify the i386 pcpu backend by merging parts of the 2007-11-13 23:00:24 +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
linux Fix for the panic("vm_thread_new: kstack allocation failed") and 2007-11-05 11:36:16 +00:00
pci Make the PCI code aware of PCI domains (aka PCI segments) so we can 2007-09-30 11:05:18 +00:00
svr4 Use svr4_si_{addr,code,errno,signo,trap} in preference to si_{...}. 2005-10-19 14:59:54 +00:00
xbox - Define data of struct gfb_font a const as it's only used to supply font 2007-06-16 21:31:53 +00:00
Makefile Update entries for building tags. 2007-05-13 18:21:54 +00:00