History log of /src/sys/arch/i386/include/intr.h |
Revision | | Date | Author | Comments |
1.37 |
| 26-Feb-2003 |
fvdl | Redirect some includes to x86/foo.h
|
1.36 |
| 16-Dec-2002 |
fvdl | Remove leftover declarations used for debugging purposes only.
|
1.35 |
| 11-Dec-2002 |
fvdl | Since a CPU may spin waiting for another CPU to handle an IPI, an IPI must be the very first thing to be handled in splx(), if it had been blocked before. Change things around a bit to guarantee this.
|
1.34 |
| 01-Dec-2002 |
fvdl | For softints, there's no intrframe on the stack, so don't try to use it. Use a seperate lock function (in taking the same lock) instead.
|
1.33 |
| 27-Nov-2002 |
fvdl | Specify the interrupt frame as the argument to i386_int(un)lock.
|
1.32 |
| 23-Nov-2002 |
fvdl | Remove "ioapic.h" include, and always include the intr_find_mpmapping prototype; it's not worth the extra bytes to avoid including this.
|
1.31 |
| 22-Nov-2002 |
fvdl | Removed unused function. From kristerw.
|
1.30 |
| 22-Nov-2002 |
fvdl | New interrupt code. The basic idea behind it is to hide the differences in interrupt controllers in struct pic, and try to keep as much common code as possible. At the lowest (asm) level, this is done with CPP macros.
The main structure is now struct intrsource, describing an established interrupt line, of any kind (soft/hard local apic/legacy apic/IO apic). For quick masking, there may be a maximum of 32 sources per CPU. Sources can be assigned to any CPU in the MP case, though currently they all go to the boot CPU.
|
1.29 |
| 01-Nov-2002 |
fvdl | Make splsched == splclock, and splserial > splsched. Unfortunately, we have to retain the 'pick unlocked interrupt handler' hack for the MP case for now.
|
1.28 |
| 05-Oct-2002 |
fvdl | Adapt i386_send_ipi prototype. Make spllock < splipi (IPI paths changed to use __cpu_simple_lock because of LOCKDEBUG conflict).
|
1.27 |
| 01-Oct-2002 |
matt | ANSI'fy the inline functions.
|
1.26 |
| 01-Oct-2002 |
fvdl | Merge Bill Sommerfeld's i386 MP branch. This code has some known caveats, but works quite well in a lot of MP cases, and all UP cases that I have tested. Parts of this will hopefully be reworked in the not-too-distant future.
|
1.25 |
| 12-May-2002 |
matt | Eliminate commons.
|
1.24 |
| 18-Dec-2001 |
yamt | branches: 1.24.4; use #define<TAB> style. pointed by enami.
|
1.23 |
| 18-Dec-2001 |
fvdl | Prevent gcc from reordering things such that instructions may fall out of a range which is protected by spl/splx. Originally proposed by YAMAMOTO Takashi (yamt@netbsd.org) on tech-kern. This change mirrors the one done by Bill Sommerfeld on the i386 mp branch.
|
1.22 |
| 16-Jul-2001 |
thorpej | In i386_softintr_lock(), use splserial() rather than splhigh(), because of splhigh() braindamage on the i386 port.
Fixes port-i386/13038 and port-i386/12985.
|
1.21 |
| 21-May-2001 |
perry | branches: 1.21.2; remove needless externs in front of function prototypes
|
1.20 |
| 30-Apr-2001 |
lukem | remove some lint, including ansifying some inlines
|
1.19 |
| 14-Apr-2001 |
thorpej | Generic soft interrupt implementation for NetBSD/i386. This could probably be tuned somewhat, but this is a stop-gap measure to hold us until Bill Sommerfeld's new interrupt code comes in from the MP branch.
|
1.18 |
| 13-Apr-2001 |
thorpej | Remove the use of splimp() from the NetBSD kernel. splnet() and only splnet() is allowed for the protection of data structures used by network devices.
|
1.17 |
| 14-Jan-2001 |
thorpej | branches: 1.17.2; Make sure everybody has an splvm() and equate it with splimp() (splimp() is the historical name for this interrupt level, and the historical name is going to go away in the near future).
|
1.16 |
| 22-Aug-2000 |
thorpej | Add spllock(). See spl(9) for details.
|
1.15 |
| 21-Aug-2000 |
thorpej | Make sure we provide splsched() as described in spl(9).
|
1.14 |
| 08-Jun-2000 |
cgd | make spl-lowering functions return void.
|
1.13 |
| 04-Jun-2000 |
mycroft | Implement CLKF_INTR(), to count interrupt time separately.
|
1.12 |
| 05-Aug-1999 |
thorpej | branches: 1.12.2; 1.12.10; 1.12.12; Change the semantics of splsoftclock() to be like other spl*() functions, that is priority is rasied. Add a new spllowersoftclock() to provide the atomic drop-to-softclock semantics that the old splsoftclock() provided, and update calls accordingly.
This fixes a problem with using the "rnd" pseudo-device from within interrupt context to extract random data (e.g. from within the softnet interrupt) where doing so would incorrectly unblock interrupts (causing all sorts of lossage).
XXX 4 platforms do not have priority-raising capability: newsmips, sparc, XXX sparc64, and VAX. This platforms still have this bug until their XXX spl*() functions are fixed.
|
1.11 |
| 26-Jan-1999 |
christos | Fix this properly, using gcc assembly syntax (thanks ws!)
|
1.10 |
| 26-Jan-1999 |
christos | ifdef __ELF__ the softintr inline since we cannot use _C_LABEL to produce a name. XXX: Is there a better way?
|
1.9 |
| 15-Aug-1998 |
mycroft | Assign my copyrights to TNF.
|
1.8 |
| 18-Jul-1998 |
is | Switching dev/ic/lpt.c to use spllpt() instead of spltty(). It doesn't use tty structures, and on some machines (namely the DraCo internal lpt, and some multi-i/o boards for Amigas and DraCos), tying spltty to the pretty high printer interupt level would hurt serial performance.
On all affected ports but Amiga, spllpt() has been defined in machine/intr.h to be spltty(), thus preserving old behaviour. Portmasters are encouraged to change is, if they feel something else is better (e.g., one of its own were possible).
|
1.7 |
| 21-Mar-1997 |
mycroft | Add IPL_AUDIO.
|
1.6 |
| 28-Feb-1997 |
mycroft | Import interrupt priority changes from com patches: * Make it a strict hierarchy. (It was close anyway). * Add `serial' and rename `softtty' to `softserial'. * Make soft interrupts a bit less special-case.
|
1.5 |
| 13-May-1996 |
mycroft | branches: 1.5.8; Make imask[] larger, to match other changes.
|
1.4 |
| 13-May-1996 |
mycroft | Add multiple-inclusion protection.
|
1.3 |
| 13-May-1996 |
mycroft | Move spl*() and soft interrupt definitions into intr.h. For now, include it from psl.h. XXX Will change after release.
|
1.2 |
| 12-May-1996 |
mycroft | Implement IPL_HIGH.
|
1.1 |
| 12-May-1996 |
mycroft | Move IPL_* and IST_* constants into intr.h.
|
1.5.8.1 |
| 12-Mar-1997 |
is | Merge in Changes from The Trunk.
|
1.12.12.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.12.10.21 |
| 25-Jun-2002 |
fvdl | Add a spinlock around softintr queue management. Use a lock prefix to protect manipulation of the 'ipending' variable. Fixes 'softclock stops being called' AKA 'processes entering nanosleep do not return' problem.
|
1.12.10.20 |
| 18-May-2002 |
sommerfeld | Catch up with -current. (commons elimination, changes to MI pci framework)
|
1.12.10.19 |
| 29-Dec-2001 |
sommerfeld | Set up per-cpu GDT. Use %fs for per-cpu data access.
|
1.12.10.18 |
| 29-Dec-2001 |
sommerfeld | Yet another mergeup.
New work: - Frank van der Linden's tlb shootdown fix. Mainline functionality merged: - IrDA - Kernel RCSID's - Transmeta CPU support - ACPI - XMM register access through procfs
|
1.12.10.17 |
| 18-Dec-2001 |
sommerfeld | Recent versions of gcc may reorder instructions around inline functions, breaking the semantics of splraise() and spllower(); to counteract this, insert a "barrier" (empty asm) as a sequence point.
Reportedly fixes a stability problems on AMD dual-processor systems.
the code-gen barrier primitive will likely move to <sys/cdefs.h> once we figure out what to call it; in the mean time define it locally.
|
1.12.10.16 |
| 19-Jul-2001 |
sommerfeld | catch up with -current
|
1.12.10.15 |
| 26-May-2001 |
sommerfeld | Implement MP-synchronzed microtime(), based on Jason Thorpe's port of Dave Mills's cycle-counter-based microtime.
XXX We need to figure out how to deal with processors where the cycle counter speed varies. We don't have a whole lot of alternatives; we could only use this on multiprocessors, which are less likely to throttle the clock to save power.
The local apic timer runs at a fixed frequency, but it's count-down-to-zero, not the count-up-forever type of timer which the Mills code expects.
This also does not solve the problem of microtime on 486-based multiprocessors..
|
1.12.10.14 |
| 23-May-2001 |
sommerfeld | Merge branch with tonight's current. boots multiuser.
|
1.12.10.13 |
| 30-Apr-2001 |
sommerfeld | Do softints purely in software.
Using the local apic for softints is slow; exactly why isn't clear, but ripping out the code and using pure-software softints speeds up ping -f packet rates by more than 5%.
|
1.12.10.12 |
| 30-Apr-2001 |
sommerfeld | Catch up on some files missed the last time 'round
|
1.12.10.11 |
| 30-Apr-2001 |
sommerfeld | Merge sommerfeld_i386mp_1 branch with -current as of today. GENERIC.MP kernel boots and runs multiuser on my ABIT BP6
|
1.12.10.10 |
| 14-Jan-2001 |
thorpej | Add splvm().
|
1.12.10.9 |
| 31-Dec-2000 |
thorpej | Fill in the guts of i386_broadcast_ipi() and implement i386_multicast_ipi().
Reviewed by Bill Sommerfeld.
|
1.12.10.8 |
| 23-Sep-2000 |
sommerfeld | Preliminary support for cloning MTRR values between CPU's at boot time. XXX no API to *set* MTRR values yet.
|
1.12.10.7 |
| 25-Aug-2000 |
sommerfeld | Get this to at least build again in the !MULTIPROCESSOR case..
|
1.12.10.6 |
| 25-Aug-2000 |
sommerfeld | The need_resched() function now takes a (cpu_info *) parameter. Get asts out of <machine/intr.h> Untangle astpending and want_resched variables somewhat.
|
1.12.10.5 |
| 18-Aug-2000 |
sommerfeld | Add splipi(), IPL_IPI, and rearrange IPI's a bit. Also, add SPL_ASSERT_ATMOST
|
1.12.10.4 |
| 12-Aug-2000 |
sommerfeld | Add spllock() (temporary) and splsched()
|
1.12.10.3 |
| 26-Jun-2000 |
sommerfeld | Start making npx.c MP-safe; Interface to npx now specifies the process and/or cpu to act on. Implement an IPI for MP lazy FP save. Tested and working when only one CPU is running; untested in the MP case since we can't run user processes on multiple CPU's yet.
Along for the ride: - Change i386_send_ipi to take a "struct cpu_info *" rather than a cpu number. - Turn off the "give me the brain" test IPI's.
|
1.12.10.2 |
| 25-Jun-2000 |
sommerfeld | Merge up to just-post-1.5 -current
|
1.12.10.1 |
| 20-Feb-2000 |
sommerfeld | MP: MP-safe and APIC-friendly spl*/splx() implementation.
Keep spl state as a level, rather than interrupt mask, since on multiple APIC systems there may be more interrupt lines than can fit in a single 32-bit word.
Interrupt levels are now compatible with the APIC priority scheme (high order 4 bits of the IDT vector number).
|
1.12.2.3 |
| 21-Apr-2001 |
bouyer | Sync with HEAD
|
1.12.2.2 |
| 18-Jan-2001 |
bouyer | Sync with head (for UBC+NFS fixes, mostly).
|
1.12.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
|
1.17.2.9 |
| 19-Dec-2002 |
thorpej | Sync with HEAD.
|
1.17.2.8 |
| 11-Dec-2002 |
thorpej | Sync with HEAD.
|
1.17.2.7 |
| 11-Dec-2002 |
thorpej | Sync with HEAD.
|
1.17.2.6 |
| 11-Nov-2002 |
nathanw | Catch up to -current
|
1.17.2.5 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.17.2.4 |
| 20-Jun-2002 |
nathanw | Catch up to -current.
|
1.17.2.3 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.17.2.2 |
| 24-Aug-2001 |
nathanw | Catch up with -current.
|
1.17.2.1 |
| 21-Jun-2001 |
nathanw | Catch up to -current.
|
1.21.2.4 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.21.2.3 |
| 23-Jun-2002 |
jdolecek | catch up with -current on kqueue branch
|
1.21.2.2 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.21.2.1 |
| 03-Aug-2001 |
lukem | update to -current
|
1.24.4.2 |
| 17-Mar-2002 |
thorpej | IPL_IMP -> IPL_VM
|
1.24.4.1 |
| 17-Mar-2002 |
thorpej | Add splraiseipl() for use by kern_mutex.c
|