summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/ipl_funcs.c
Commit message (Collapse)AuthorAgeFilesLines
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* atomic.h:alc1999-07-231-2/+2
| | | | | | | | | | | | | | | | | Change "void *" to "volatile TYPE *", improving type safety and eliminating some warnings (e.g., mp_machdep.c rev 1.106). cpufunc.h: Eliminate setbits. As defined, it's not precisely correct; and it's redundant. (Use atomic_set_int instead.) ipl_funcs.c: Use atomic_set_int instead of setbits. systm.h: Include atomic.h. Reviewed by: bde
* An SMP-specific change: Eliminate an unnecessary lock acquire and releasealc1999-07-201-10/+1
| | | | | | in setdelayed. Submitted by: luoqi and bde
* An SMP-specific change: eliminate another check on bsp_apic_ready.alc1999-07-171-10/+1
| | | | (See rev 1.23.)
* remove a set_cpl which survived last change.phk1999-07-121-2/+1
| | | | Noticed by: mjacob
* We may have three ways to generate the SPL functions, but one tablephk1999-07-111-54/+25
| | | | for specifying their actions is plenty.
* An SMP-specific change: eliminate a check on bsp_apic_readyalc1999-07-101-11/+5
| | | | | | | that hasn't been necessary since i386/i386/simplelock.s revision 1.9. Submitted by: dillon and tegge (simultaneously)
* Go back to the old (icu.s rev.1.7 1993) way of keeping the AST-pendingbde1999-07-101-6/+12
| | | | | | | bit separate from ipending, since this is simpler and/or necessary for SMP and may even be better for UP. Reviewed by: alc, luoqi, tegge
* An SMP-specific change: Remove unnecessary lock acquires and releasesalc1999-06-301-27/+12
| | | | | | | | surrounding critical sections that consist of (1) a single read or (2) a single locked RMW operation. (Thanks to thomma@slip.net (Tamiji Homma) for helping to test these changes.)
* Un-duplicate DO_SETBITS() (it was identical for both SMP and !SMP)..peter1999-05-091-30/+16
|
* loadandclear() uses an atomic instruction (even on SMP, where it's anpeter1999-05-091-3/+3
| | | | | | implicitly LOCK'ed instruction), so there shouldn't be any harm in making it volatile pointer compatable for one of the users of it. It seems to generate the same code regardless.
* Pull in prototype for splq().peter1999-05-061-1/+2
|
* Enable vmspace sharing on SMP. Major changes are,luoqi1999-04-281-1/+2
| | | | | | | | | | | | | | | | | - %fs register is added to trapframe and saved/restored upon kernel entry/exit. - Per-cpu pages are no longer mapped at the same virtual address. - Each cpu now has a separate gdt selector table. A new segment selector is added to point to per-cpu pages, per-cpu global variables are now accessed through this new selector (%fs). The selectors in gdt table are rearranged for cache line optimization. - fask_vfork is now on as default for both UP and SMP. - Some aio code cleanup. Reviewed by: Alan Cox <alc@cs.rice.edu> John Dyson <dyson@iquest.net> Julian Elischer <julian@whistel.com> Bruce Evans <bde@zeta.org.au> David Greenman <dg@root.com>
* Stage 1 of a cleanup of the i386 interrupt registration mechanism.peter1999-04-211-1/+9
| | | | | | | Interrupts under the new scheme are managed by the i386 nexus with the awareness of the resource manager. There is further room for optimizing the interfaces still. All the users of register_intr()/intr_create() should be gone, with the exception of pcic and i386/isa/clock.c.
* Block cam hardware interrupts at splvm(). Controller drivers maygibbs1999-03-051-4/+4
| | | | | | | perform malloc(NO_WAIT) and free operations that could touch the page queues. Noticed by: Tor Egge <tegge@FreeBSd.org>
* The "easy" fixes for compiling the kernel -Wunused: remove unreferenced staticarchie1998-12-071-3/+4
| | | | and local variables, goto labels, and functions declared but not defined.
* Fixed disordering of *cam* and splsoftvm.bde1998-02-011-14/+14
|
* Addition of splsoftvm and a VM SWI to handle bus dma related callbacks.gibbs1998-01-151-1/+8
| | | | This SWI may be useful for other, defered, VM tasks.
* Added a couple short-term debugs and a fix to the SPIN_MAX variable.fsmp1997-09-281-5/+21
| | | | Debugs are an attempt to ferret out the PUSHDOWN_LEVEL_3 deadlock.
* Added a missing comma for the INTR_SPL case.fsmp1997-09-271-2/+2
|
* aha1542.c aic6360.c cy.c fd.c ft.cgibbs1997-09-211-12/+32
| | | | | | | | | | | | if_ie.c if_wl.c if_zp.c isa.c isa_device.h labpc.c mcd.c ncr5380.c scd.c seagate.c si.c sio.c tw.c ultra14f.c wcd.c wd.c: Update for changes in the callout interface. apic_vector.s icu_vector.s ipl.s ipl_funcs.c: Add CAM software/hardware interrupt support.
* General cleanup of the lock pushdown code. They are grouped and enabledfsmp1997-09-071-66/+173
| | | | | | | | | from machine/smptests.h: #define PUSHDOWN_LEVEL_1 #define PUSHDOWN_LEVEL_2 #define PUSHDOWN_LEVEL_3 #define PUSHDOWN_LEVEL_4_NOT
* Removed unused #includes.bde1997-09-011-2/+1
|
* Support for the new FAST_HI algorithm, enabled.fsmp1997-08-291-2/+2
| | | | | Preliminary support for the INTR_SIMPLELOCK algorithm, disabled. Note that this code is NOT ready.
* A clean fix for the spl "deadlock before smp_active" problem.fsmp1997-08-241-19/+22
| | | | | | | | Added a new variable, 'bsp_apic_ready', which is set as soon as the bootstrap CPU has initialized its local APIC. Conditionalize the GENSPLR functions to call ss_lock ONLY after bsp_apic_ready is TRUE; This should prevent any problems with races between the time the 1st AP becomes ready and the time smp_active is set.
* Fix a deadlock caused by one of the spl functions being called beforefsmp1997-08-241-11/+10
| | | | | | ss_lock() can run. Noticed by: dave adkins <adkin003@gold.tc.umn.edu>
* The last of the encapsolation of cpl/spl/ipending things into a criticalfsmp1997-08-241-4/+157
| | | | | | | | | | | | | | | | | | | region protected by the simplelock 'cpl_lock'. Notes: - this code is currently controlled on a section by section basis with defines in machine/param.h. All sections are currently enabled. - this code is not as clean as I would like, but that can wait till later. - the "giant lock" still surrounds most instances of this "cpl region". I still have to do the code that arbitrates setting cpl between the top and bottom halves of the kernel. - the possibility of deadlock exists, I am committing the code at this point so as to exercise it and detect any such cases B4 the "giant lock" is removed.
* Preperation for moving cpl into critical region access.fsmp1997-08-201-1/+11
| | | | | | | | Several new fine-grained locks. New FAST_INTR() methods: - separate simplelock for FAST_INTR, no more giant lock. - FAST_INTR()s no longer checks ipending on way out of ISR. sio made MP-safe (I hope).
* Bruce's original implementation of the splxxx() routines, but as C codepeter1997-05-311-0/+94
rather than inlines. These are compiled with -fomit-frame-pointer and work out pretty close to the original routines, but it might be a fraction slower. The reason for doing this is to prevent the SWI_* and HWI_* values from being compiled into drivers and lkms etc which is one of the things that prevents the same lkm from being used on both SMP and UP kernels. This gives us a lot more scope for experimenting with the splxxx implementaton for SMP parallelism etc. Reviewed by: bde
OpenPOWER on IntegriCloud