summaryrefslogtreecommitdiffstats
path: root/sys
Commit message (Collapse)AuthorAgeFilesLines
...
* didn't quite undo the last reversion. This gets it.dillon2002-02-272-2/+2
|
* Minor cleanup.jake2002-02-271-2/+4
|
* Wrap long lines.jake2002-02-271-1/+2
|
* Use pcpu.pc_cpumask instead of computing 1 << cpuid.jake2002-02-273-12/+5
|
* Add a macro for shift of an integer (1 << shift == sizeof). Move the pointerjake2002-02-277-7/+13
| | | | | define to live alongside it. For kicks assert at compile time that they are correct. Use these instead of magic numbers.
* Wrap long lines.jake2002-02-271-2/+4
|
* remove "discards qualifier" erro by not potentially writing tojulian2002-02-261-2/+5
| | | | a const *.
* Define basic macros required by GDB.obrien2002-02-261-5/+21
|
* revert compatibility fix temporarily (thought it would not break anythingdillon2002-02-262-2/+2
| | | | leaving it in).
* revert last commit temporarily due to whining on the lists.dillon2002-02-2648-2179/+611
|
* Fix warnings in the gif(4) driver so it compiles with -Werror.brooks2002-02-262-6/+7
|
* Set ifp->if_name to "awi" instead of device_get_name(dev) to avoidbrooks2002-02-261-1/+1
| | | | casting away a const qualifier so the awi driver compiles.
* Rather than include namespace pollution in <grp.h> in order to declaremike2002-02-261-0/+5
| | | | | `gid_t', use the canonical protection scheme to define a type in two or more headers. This brings <grp.h> closer to POSIX.1-2001 conformance.
* Staticize an extern that no one else used.brooks2002-02-262-3/+1
|
* Make peter's commit compatible with interrupt-enabled critical_enter()dillon2002-02-262-4/+4
| | | | | and exit(), which has already solved the problem in regards to deadlocked IPI's.
* Add a missing field to the end of array marker in the pci_ids array.brooks2002-02-261-1/+1
| | | | Submitted by: sumikawa
* Did someone turn on -Werror or something?dillon2002-02-261-0/+2
| | | | Fix kernel breakage.
* Apparently gcc3.1 is now using deprcated v8 instructions in v9 codejake2002-02-262-12/+30
| | | | | | | | due to them being faster in certain cases. Therefore we need to save and restore the v8 %y register around traps in kernel mode as well as traps in usermode. Tested by: obrien, tmm
* STAGE-1 of 3 commit - allow (but do not require) interrupts to remaindillon2002-02-2648-611/+2179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | enabled in critical sections and streamline critical_enter() and critical_exit(). This commit allows an architecture to leave interrupts enabled inside critical sections if it so wishes. Architectures that do not wish to do this are not effected by this change. This commit implements the feature for the I386 architecture and provides a sysctl, debug.critical_mode, which defaults to 1 (use the feature). For now you can turn the sysctl on and off at any time in order to test the architectural changes or track down bugs. This commit is just the first stage. Some areas of the code, specifically the MACHINE_CRITICAL_ENTER #ifdef'd code, is strictly temporary and will be cleaned up in the STAGE-2 commit when the critical_*() functions are moved entirely into MD files. The following changes have been made: * critical_enter() and critical_exit() for I386 now simply increment and decrement curthread->td_critnest. They no longer disable hard interrupts. When critical_exit() decrements the counter to 0 it effectively calls a routine to deal with whatever interrupts were deferred during the time the code was operating in a critical section. Other architectures are unaffected. * fork_exit() has been conditionalized to remove MD assumptions for the new code. Old code will still use the old MD assumptions in regards to hard interrupt disablement. In STAGE-2 this will be turned into a subroutine call into MD code rather then hardcoded in MI code. The new code places the burden of entering the critical section in the trampoline code where it belongs. * I386: interrupts are now enabled while we are in a critical section. The interrupt vector code has been adjusted to deal with the fact. If it detects that we are in a critical section it currently defers the interrupt by adding the appropriate bit to an interrupt mask. * In order to accomplish the deferral, icu_lock is required. This is i386-specific. Thus icu_lock can only be obtained by mainline i386 code while interrupts are hard disabled. This change has been made. * Because interrupts may or may not be hard disabled during a context switch, cpu_switch() can no longer simply assume that PSL_I will be in a consistent state. Therefore, it now saves and restores eflags. * FAST INTERRUPT PROVISION. Fast interrupts are currently deferred. The intention is to eventually allow them to operate either while we are in a critical section or, if we are able to restrict the use of sched_lock, while we are not holding the sched_lock. * ICU and APIC vector assembly for I386 cleaned up. The ICU code has been cleaned up to match the APIC code in regards to format and macro availability. Additionally, the code has been adjusted to deal with deferred interrupts. * Deferred interrupts use a per-cpu boolean int_pending, and masks ipending, spending, and fpending. Being per-cpu variables it is not currently necessary to lock; bus cycles modifying them. Note that the same mechanism will enable preemption to be incorporated as a true software interrupt without having to further hack up the critical nesting code. * Note: the old critical_enter() code in kern/kern_switch.c is currently #ifdef to be compatible with both the old and new methodology. In STAGE-2 it will be moved entirely to MD code. Performance issues: One of the purposes of this commit is to enhance critical section performance, specifically to greatly reduce bus overhead to allow the critical section code to be used to protect per-cpu caches. These caches, such as Jeff's slab allocator work, can potentially operate very quickly making the effective savings of the new critical section code's performance very significant. The second purpose of this commit is to allow architectures to enable certain interrupts while in a critical section. Specifically, the intention is to eventually allow certain FAST interrupts to operate rather then defer. The third purpose of this commit is to begin to clean up the critical_enter()/critical_exit()/cpu_critical_enter()/ cpu_critical_exit() API which currently has serious cross pollution in MI code (in fork_exit() and ast() for example). The fourth purpose of this commit is to provide a framework that allows kernel-preempting software interrupts to be implemented cleanly. This is currently used for two forward interrupts in I386. Other architectures will have the choice of using this infrastructure or building the functionality directly into critical_enter()/ critical_exit(). Finally, this commit is designed to greatly improve the flexibility of various architectures to manage critical section handling, software interrupts, preemption, and other highly integrated architecture-specific details.
* Initialize a variable bogusly to avoid a gcc bug that causes a spuriousbde2002-02-263-0/+9
| | | | warning.
* off by one error in Aaron Gifford's code. KAME PR 393.ume2002-02-261-3/+3
| | | | | | PR: kern/34242 Submitted by: Aaron D. Gifford <agifford@infowest.com> MFC after: 1 week
* Fixed 3 regressions in rev.1.99 (clobbering of the English fix in rev.1.98,bde2002-02-261-3/+4
| | | | and 2 unformattings).
* Hide "bla bla exists, skipping it" behind bootverbose.sos2002-02-261-4/+4
|
* - Fix indentation and return statements to conform to style(9).robert2002-02-262-810/+856
| | | | | | | - Use the __FBSDID macro. - Fix some warnings. Submitted by: obrien (partly)
* Revert part of the last commit. A couple of defines were removedjoe2002-02-261-0/+4
| | | | by NetBSD because they don't use them (they've no usbd), but we do.
* Add makeoptions NO_WERROR=true so that we can build. =)benno2002-02-261-0/+1
|
* Cast the variable, not the constant to 64 bits.phk2002-02-261-1/+1
|
* Fix warning in !SMP case.phk2002-02-261-0/+2
| | | | Submitted by: Maxime Henrion <mux@mu.org>
* Remove unused variable.phk2002-02-261-1/+0
|
* Hide GCCisms in the non-GCC case.mike2002-02-261-0/+2
|
* Convert pmap.pm_context to an array of contexts indexed by cpuid. Thisjake2002-02-267-64/+67
| | | | doesn't make sense for SMP right now, but it is a means to an end.
* Pu back a call to pmap_context_destroy which was accidentily removedjake2002-02-261-0/+1
| | | | | | in the previous commit. Spotted by: tmm
* In ad-hoc mode, the "associate" bit is valid to check to see if it isambrisko2002-02-261-3/+1
| | | | | | | part of an ad-hoc network. This means another station needs to be around so they can both associate. MFC after: 1 week
* Until I can figure out how to live without the volatile qualifier onimp2002-02-261-1/+1
| | | | comdefaultrate, comment out the support for machdep.conspeed for now.
* Remove an unused variable.imp2002-02-261-1/+0
|
* Fix warnings introduced in the PCI_ALLOW_UNSUPPORTED_IO_RANGE case.imp2002-02-261-6/+6
|
* If we're going to ifdef out the only reference to asr_drvinit, thenimp2002-02-261-1/+1
| | | | go ahead and ifdef out the function too.
* Add an experimental tunable: machdep.conspeed.imp2002-02-261-0/+1
| | | | # I'm not sure where to document this.
* minor style(9) fix: return (foo); The file was mostly style(9) before.imp2002-02-261-16/+16
|
* Allow the user tsb to span multiple pages. Make the default 2 pages for nowjake2002-02-262-26/+30
| | | | | | | | | | | | | | | | until we do some testing to see what's best. This gives a massive reduction in system time for processes with a relatively large working set. The size of the tsb directly affects the rss size that a user process can keep mapped. When it starts to get full replacements occur and the process takes a lot of soft vm faults. Increasing the default from 1 page to 2 gives the following before and after numbers for compiling vfs_bio.c: before: 14.27 real 6.56 user 5.69 sys after: 8.57 real 6.11 user 1.62 sys This should make self hosted builds more tolerable.
* When using hardware decoding, reconstruct the wire form of the ethernetbrooks2002-02-261-0/+20
| | | | | | | | header and push it up any attached bpf devices on the parent interface. This makes hardware vlan decoding more like the normal software path. Tested by: cjtt@employees.org MFC after: 2 weeks
* Enforce inbound IPsec SPDjedgar2002-02-261-1/+11
| | | | Reviewed by: fenner
* Make gif(4) nesting level and parallel tunnel support tunable at runtimebrooks2002-02-261-5/+27
| | | | | | via sysctl's. The old #defines, MAX_GIF_NEST and XBONEHACK are currently supported for backwards compatability, but will probably be removed at some point in the future.
* in ulpt_reset() req.bmRequestType was unitialized, fix it.alfred2002-02-261-0/+1
|
* Merge from NetBSD:joe2002-02-262-16/+13
| | | | | | | | | | | | | usb.h (rev 1.61): date: 2002/01/01 14:23:37; author: augustss; Add a missing subclass definition. usb.h (rev 1.63) and usb_port.h (rev 1.52): date: 2002/02/25 00:46:37; author: augustss; Some portability improvement. Add define for usb.h version.
* Fix a warning by pulling prototype for arp_ifinit() into scope.peter2002-02-261-1/+4
| | | | | Then fix cast the correct value into an incorrect value, which was not detected due to the missing prototype (but was harmless anyway).
* Fix warning; amdsmb_abort() is not used.peter2002-02-261-0/+2
|
* Fix warning. s/microuptime()/binuptime()/ for switchtime initial value.peter2002-02-261-1/+1
|
* Remove unused variable (td)peter2002-02-261-1/+0
|
* Fix a warning. useracc() should take a const pointer argument.peter2002-02-262-4/+4
|
OpenPOWER on IntegriCloud