Commit Graph

102494 Commits

Author SHA1 Message Date
wiz
ed5d7e73eb Remove some survivors of the old-toolchain removal. 2002-09-22 10:31:16 +00:00
martin
1fc22808f2 Apply a patch from Murray Armfield in PR kern/18372: bring in some changes
from FreeBSD to improve receive performance.
2002-09-22 10:13:32 +00:00
wiz
3c3b4cdaf0 Update for removal of parts of old toolchain, and remove some comments that
do not convey additional information any longer. Fix some comments.
2002-09-22 10:12:48 +00:00
wiz
625e362cc2 Remove completely outdated maintenance history, and add proper NetBSD RCS tag. 2002-09-22 09:47:56 +00:00
simonb
63096043b3 Use "#define\t" instead of "#define ". 2002-09-22 08:30:56 +00:00
chs
f01058c887 rename the existing pmap_remove_all() here to pmap_page_remove()
(ala the x86 pmap) to avoid conflicting with the new pmap interface
function of the same name.
2002-09-22 07:56:57 +00:00
chs
c081614ea2 it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not.  doh.
2002-09-22 07:53:39 +00:00
chs
50bcbb066e document new stuff:
UVM_KMF_CANFAIL, uvm_uarea_alloc(), uvm_uarea_free(), pmap_remove_all().
2002-09-22 07:22:27 +00:00
chs
94a62d45d6 add a new flag VM_MAP_DYING, which is set before we start
tearing down a vm_map.  use this to skip the pmap_update()
at the end of all the removes, which allows pmaps to optimize
pmap tear-down.  also, use the new pmap_remove_all() hook to
let the pmap implemenation know what we're up to.
2002-09-22 07:21:29 +00:00
chs
2b73cf7ece encapsulate knowledge of uarea allocation in some new functions. 2002-09-22 07:20:29 +00:00
chs
f54a093e81 many improvements:
- use struct vm_page_md for attaching pv entries to struct vm_page
 - change pseg_set()'s return value to indicate whether the spare page
   was used as an L2 or L3 PTP.
 - use a pool for pv entries instead of malloc().
 - put PTPs on a list attached to the pmap so we can free them
   more efficiently (by just walking the list) in pmap_destroy().
 - use the new pmap_remove_all() interface to avoid flushing the cache and TLB
   for each pmap_remove() that's done as we are tearing down an address space.
 - in pmap_enter(), handle replacing an existing mapping more efficiently
   than just calling pmap_remove() on it.  also, skip flushing the
   TSB and TLB if there was no previous mapping, since there can't be
   anything we need to flush.  also, preload the TSB if we're pre-setting
   the mod/ref bits.
 - allocate hardware contexts like the MIPS pmap:
   allocate them all sequentially without reuse, then once we run out
   just invalidate all user TLB entries and flush the entire L1 dcache.
 - fix pmap_extract() for the case where the va is not page-aligned and
   nothing is mapped there.
 - fix calculation of TSB size.  it was comparing physmem (which is
   in units of pages) to constants that only make sense if they are
   in units of bytes.
 - avoid sleeping in pmap_enter(), instead let the caller do it.
 - use pmap_kenter_pa() instead of pmap_enter() where appropriate.
 - remove code to handle impossible cases in various functions.
 - tweak asm code to pipeline a little better.
 - remove many unnecessary spls and membars.
 - lots of code cleanup.
 - no doubt other stuff that I've forgotten.

the result of all this is that a fork+exit microbenchmark is 34% faster
and a fork+exec+exit microbenchmark is 28% faster.
2002-09-22 07:19:43 +00:00
chs
55e1f79335 add pmap_remove_all() hook (empty on most platforms so far). 2002-09-22 07:17:08 +00:00
gmcgarry
adc9fb5f5b MD component of the new cpu_switch() interface. Introduces nextrunqueue(),
cpu_idle() and new cpu_switch() to replace the old cpu_switch()
which did the lot.  Runs leaner without overly blocking interrupts.

Includes cleanup of the RAS code to make use of callee-saved registers.

Benchmarks on DX4 @ 100MHz reveal a slight performance improvement
but probably not statistically signficant.  More TBD to verify this.

Changes passed a pounding on Athlon @ 1GHz too.
2002-09-22 06:51:10 +00:00
gmcgarry
7ef5deacf6 More section 9 page; sort 2002-09-22 06:32:47 +00:00
gmcgarry
f84fa2a2f3 Document the details of the scheduler. 2002-09-22 06:26:33 +00:00
dbj
df3f757254 add mkdevsw.o to OBJS 2002-09-22 06:22:50 +00:00
simonb
eb4524608c Only need to define __HAVE_MD_RUNQUEUE once here... 2002-09-22 05:56:32 +00:00
gmcgarry
5a06fee353 Add UVM_PAGE_IDLE_ZERO. 2002-09-22 05:48:46 +00:00
gmcgarry
45d41256f3 Update for cpu_switch() prototype change. No functional change. 2002-09-22 05:40:35 +00:00
gmcgarry
7fe2ef36b9 Update for cpu_switch() prototype changes. No functional change. 2002-09-22 05:39:24 +00:00
mycroft
f40651a8e2 Remove redundant declaration of ether_ntoa() so this builds again. 2002-09-22 05:38:30 +00:00
gmcgarry
6a6ea308fd Separate the scheduler from the context switching code.
This is done by adding an extra argument to mi_switch() and
cpu_switch() which specifies the new process.  If NULL is passed,
then the new function chooseproc() is invoked to wait for a new
process to appear on the run queue.

Also provides an opportunity for optimisations if "switching to self".

Also added are C versions of the setrunqueue() and remrunqueue()
low-level primitives if __HAVE_MD_RUNQUEUE is not defined by MD code.

All these changes are contingent upon the __HAVE_CHOOSEPROC flag being
defined by MD code to indicate that cpu_switch() supports the changes.
2002-09-22 05:36:48 +00:00
gmcgarry
dca80f08fd Add __HAVE_MD_RUNQUEUE flag for MD code to override MI run queue primitives. 2002-09-22 04:11:32 +00:00
oster
7264a7cc8c RAIDGETBUF and RAIDPUTBUF were #defines that were only used in
one place.  Simplify things by removing them, and clean up more
unneeded instances of 'unit' and 'rs'.
2002-09-22 03:56:08 +00:00
oster
fe654a583a rf_flags wasn't being used. *poof* 2002-09-22 03:46:40 +00:00
oster
f99563a0ff A little housecleaning to nuke stuff that was unused. 2002-09-22 03:44:42 +00:00
dbj
53ce9bee47 explicitly set booted_partition to 0, rather than
rely on default value.  It should actually be extracted
from the bootpath instead, but that involves translating
from apple partition map entries to netbsd disklabel entries.
2002-09-22 03:21:44 +00:00
dbj
ca0ad7da63 undo an accidentally committed change that was
included in move of bootpath alias expansion
2002-09-22 03:10:14 +00:00
dbj
9343810eed move bootpath alias expansion from initppc() into canonicalize_bootpath() 2002-09-22 03:04:31 +00:00
thorpej
cccd4bd402 Fix thinko in the SIOC{G,S}80211CHANNEL and SIOC{G,S}80211BSSID
ioctls.
2002-09-22 01:56:08 +00:00
lukem
ab956106b3 preliminary HP/UX notes from Giles; it needs zlib.
(as Solaris, Linux and HP/UX all mention they need zlib and it should
be part of libnbcompat, maybe this is a hint for us to get a move on
and do that :)
2002-09-22 01:26:39 +00:00
lukem
ad5f5e697c HP/UX fixes from Giles Lean:
- consistently support __hpux (which the HP compilers define) as well
  as __hpux__ (not sure which compilers set this, but retained anyway)
- fix a typo in the definition of signal().  arguably the codebase should
  just be converted to sigaction()...
2002-09-22 01:19:08 +00:00
christos
b7d2f8ff04 make sure options is not NULL before we look in it. Thanks Charles. 2002-09-21 21:30:27 +00:00
manu
80ee637534 - Introduce a e_fault field in struct proc to provide emulation specific
memory fault handler. IRIX uses irix_vm_fault, and all other emulation
use NULL, which means to use uvm_fault.

- While we are there, explicitely set to NULL the uninitialized fields in
struct emul: e_fault and e_sysctl on most ports

- e_fault is used by the trap handler, for now only on mips. In order to avoid
intrusive modifications in UVM, the function pointed by e_fault does not
has exactly the same protoype as uvm_fault:
int uvm_fault __P((struct vm_map *, vaddr_t, vm_fault_t, vm_prot_t));
int e_fault __P((struct proc *, vaddr_t, vm_fault_t, vm_prot_t));

- In IRIX share groups, all the VM space is shared, except one page.
This bounds us to have different VM spaces and synchronize modifications
to the VM space accross share group members. We need an IRIX specific hook
to the page fault handler in order to propagate VM space modifications
caused by page faults.
2002-09-21 21:14:54 +00:00
christos
221d636e59 PR/15692: Love: specify ipsec policy for mountd. 2002-09-21 20:35:00 +00:00
mycroft
73d9032bfc Fix biff in previous change. 2002-09-21 20:26:49 +00:00
mycroft
b1ce597546 Ignore bus exception errors here.
XXX I'm not sure exactly why this is necessary...
2002-09-21 19:49:47 +00:00
drochner
69ea314996 call the capability list ptr by its name 2002-09-21 19:14:14 +00:00
drochner
7bc4622603 correct caplist head for Cardbus bridges 2002-09-21 18:56:03 +00:00
christos
86404fec47 mention MNT_GETARGS 2002-09-21 18:46:57 +00:00
christos
9f9ee29713 MNT_GETARGS support 2002-09-21 18:43:31 +00:00
mycroft
c7d63f201b Touch up error/warning messages. 2002-09-21 18:33:51 +00:00
mycroft
75cf9dce87 select() -> poll() 2002-09-21 18:24:40 +00:00
christos
d90f115245 describe MNT_GETARGS 2002-09-21 18:19:30 +00:00
mycroft
826e316675 select() -> poll() 2002-09-21 18:15:57 +00:00
christos
6f3945a88d MNT_GETARGS support 2002-09-21 18:10:34 +00:00
christos
10b6e12acc VFS_GETARGS support 2002-09-21 18:10:04 +00:00
christos
6868d0a7d6 MNT_GETARGS support 2002-09-21 18:08:27 +00:00
christos
2d05cb6a47 Add special handling of VFS_GETARGS (similar to VFS_UPDATE) so that it
can be done non-root, and it does not affect the mount lists.
2002-09-21 18:07:52 +00:00
christos
39f324a802 Add MNT_GETARGS that retrieves fs specific arguments. Also add an empty
#define for vsf_showexport()
2002-09-21 18:06:08 +00:00