The NetBSD Project

CVS log for src/sys/arch/sparc/sparc/pmap.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / arch / sparc / sparc

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.377 / (download) - annotate - [select for diffs], Sat Apr 9 23:38:32 2022 UTC (9 months, 3 weeks ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Changes since 1.376: +4 -4 lines
Diff to previous 1.376 (colored)

sys: Use membar_release/acquire around reference drop.

This just goes through my recent reference count membar audit and
changes membar_exit to membar_release and membar_enter to
membar_acquire -- this should make everything cheaper on most CPUs
without hurting correctness, because membar_acquire is generally
cheaper than membar_enter.

Revision 1.376 / (download) - annotate - [select for diffs], Sat Mar 12 15:32:31 2022 UTC (10 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.375: +4 -2 lines
Diff to previous 1.375 (colored)

sys: Membar audit around reference count releases.

If two threads are using an object that is freed when the reference
count goes to zero, we need to ensure that all memory operations
related to the object happen before freeing the object.

Using an atomic_dec_uint_nv(&refcnt) == 0 ensures that only one
thread takes responsibility for freeing, but it's not enough to
ensure that the other thread's memory operations happen before the
freeing.

Consider:

	  Thread A			  Thread B
	obj->foo = 42;			obj->baz = 73;
	mumble(&obj->bar);		grumble(&obj->quux);
	/* membar_exit(); */		/* membar_exit(); */
	atomic_dec -- not last		atomic_dec -- last
					/* membar_enter(); */
					KASSERT(invariant(obj->foo,
					    obj->bar));
					free_stuff(obj);

The memory barriers ensure that

	obj->foo = 42;
	mumble(&obj->bar);

in thread A happens before

	KASSERT(invariant(obj->foo, obj->bar));
	free_stuff(obj);

in thread B.  Without them, this ordering is not guaranteed.

So in general it is necessary to do

	membar_exit();
	if (atomic_dec_uint_nv(&obj->refcnt) != 0)
		return;
	membar_enter();

to release a reference, for the `last one out hit the lights' style
of reference counting.  (This is in contrast to the style where one
thread blocks new references and then waits under a lock for existing
ones to drain with a condvar -- no membar needed thanks to mutex(9).)

I searched for atomic_dec to find all these.  Obviously we ought to
have a better abstraction for this because there's so much copypasta.
This is a stop-gap measure to fix actual bugs until we have that.  It
would be nice if an abstraction could gracefully handle the different
styles of reference counting in use -- some years ago I drafted an
API for this, but making it cover everything got a little out of hand
(particularly with struct vnode::v_usecount) and I ended up setting
it aside to work on psref/localcount instead for better scalability.

I got bored of adding #ifdef __HAVE_ATOMIC_AS_MEMBAR everywhere, so I
only put it on things that look performance-critical on 5sec review.
We should really adopt membar_enter_preatomic/membar_exit_postatomic
or something (except they are applicable only to atomic r/m/w, not to
atomic_load/store_*, making the naming annoying) and get rid of all
the ifdefs.

Revision 1.375 / (download) - annotate - [select for diffs], Mon Aug 9 21:08:06 2021 UTC (17 months, 3 weeks ago) by andvar
Branch: MAIN
Changes since 1.374: +4 -4 lines
Diff to previous 1.374 (colored)

s/aligment/alignment/ + one more typo fix in comments.

Revision 1.374 / (download) - annotate - [select for diffs], Sat Aug 7 19:23:03 2021 UTC (17 months, 3 weeks ago) by uwe
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2
Changes since 1.373: +4 -4 lines
Diff to previous 1.373 (colored)

sp_tlb_flush - consistent whitespace in inline asm.

Revision 1.367.4.2 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:38 2021 UTC (21 months, 4 weeks ago) by thorpej
Branch: thorpej-futex
Changes since 1.367.4.1: +163 -207 lines
Diff to previous 1.367.4.1 (colored) to branchpoint 1.367 (colored) next main 1.368 (colored)

Sync with HEAD.

Revision 1.373 / (download) - annotate - [select for diffs], Sun Jan 24 07:36:54 2021 UTC (2 years ago) by mrg
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.372: +58 -68 lines
Diff to previous 1.372 (colored)

avoid using 'extern <func|data>;' inside a .c file, but instead
use header files and ensure definitions are not duplicated or
are technically (if not in codegen) wrong.

Revision 1.372 / (download) - annotate - [select for diffs], Sun Jan 17 01:54:37 2021 UTC (2 years ago) by mrg
Branch: MAIN
Changes since 1.371: +94 -135 lines
Diff to previous 1.371 (colored)

convert most uses of pmapdebug to use the new DPRINTF() macro.

add PMAP_INITLOUD debug option, that shows how pmap_bootstrap()
eats up the space provided by /boot as spare space.

Revision 1.371 / (download) - annotate - [select for diffs], Wed Jan 13 16:42:17 2021 UTC (2 years ago) by chs
Branch: MAIN
Changes since 1.370: +6 -6 lines
Diff to previous 1.370 (colored)

in pmap_writetext(), restore the context also when we return early.

Revision 1.370 / (download) - annotate - [select for diffs], Mon Jan 11 06:12:43 2021 UTC (2 years ago) by chs
Branch: MAIN
Changes since 1.369: +11 -4 lines
Diff to previous 1.369 (colored)

in pgt_page_alloc(), wait and retry the page allocation if PR_WAITOK.
fixes PR 55895.

Revision 1.367.4.1 / (download) - annotate - [select for diffs], Mon Dec 14 14:38:02 2020 UTC (2 years, 1 month ago) by thorpej
Branch: thorpej-futex
Changes since 1.367: +26 -28 lines
Diff to previous 1.367 (colored)

Sync w/ HEAD.

Revision 1.369 / (download) - annotate - [select for diffs], Wed Dec 9 11:35:44 2020 UTC (2 years, 1 month ago) by uwe
Branch: MAIN
Changes since 1.368: +4 -3 lines
Diff to previous 1.368 (colored)

Add "memory" constraint on wrpsr, lost in previous.

Revision 1.368 / (download) - annotate - [select for diffs], Wed Dec 9 04:02:20 2020 UTC (2 years, 1 month ago) by uwe
Branch: MAIN
Changes since 1.367: +25 -28 lines
Diff to previous 1.367 (colored)

sp_tlb_flush() - fix inline asm miscompiled by newer gcc versions.

As one national park director once said: "my problems start when the
dumber of my visitors meet the smarter of my bears".

Old inline asm used specific hardcoded registers "assuming that gcc
doesn't do anything funny with these".  Unfortunately now it does,
especially when this function is inlined.  We ended up restoring a
wrong context.  The result was mysterious infinite memory faults.

Rewrite in safer inline asm, so that gcc is not confused.

Many thanks to chs@ for his patience.

Revision 1.364.4.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:07:53 2020 UTC (2 years, 9 months ago) by martin
Branch: phil-wifi
Changes since 1.364.4.1: +5 -4 lines
Diff to previous 1.364.4.1 (colored) to branchpoint 1.364 (colored) next main 1.365 (colored)

Merge changes from current as of 20200406

Revision 1.367 / (download) - annotate - [select for diffs], Sat Mar 14 14:05:43 2020 UTC (2 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh
Branch point for: thorpej-futex
Changes since 1.366: +5 -4 lines
Diff to previous 1.366 (colored)

pmap_remove_all(): Return a boolean value to indicate the behaviour.  If
true, all mappings have been removed, the pmap is totally cleared out, and
UVM can then avoid doing the work to call pmap_remove() for each map entry.
If false, either nothing has been done, or some helpful arch-specific voodoo
has taken place.

Revision 1.364.4.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:06:46 2019 UTC (3 years, 7 months ago) by christos
Branch: phil-wifi
Changes since 1.364: +26 -23 lines
Diff to previous 1.364 (colored)

Sync with HEAD

Revision 1.364.2.2 / (download) - annotate - [select for diffs], Fri Jan 18 08:50:23 2019 UTC (4 years ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.364.2.1: +25 -22 lines
Diff to previous 1.364.2.1 (colored) to branchpoint 1.364 (colored) next main 1.365 (colored)

Synch with HEAD

Revision 1.358.6.1 / (download) - annotate - [select for diffs], Tue Jan 15 18:45:24 2019 UTC (4 years ago) by martin
Branch: netbsd-7-0
Changes since 1.358: +25 -22 lines
Diff to previous 1.358 (colored) next main 1.359 (colored)

Pull up following revision(s) (requested by mrg in ticket #1672):

	sys/arch/sparc/sparc/pmap.c: revision 1.366

switch sparc pmap lock to the scheme sparc64 uses:
- - local IPL_NONE mutex for general pmap locking operations, not
  kernel lock.
- - for pmap_activate()/pmap_deactivate(), switch to using the
  existing ctx_lock, and push handling of it into ctx_alloc() the
  ctx_free() callers.

fixes easy to trigger deadlocks on systems with >2 cpus.  without
this patch i usually hang during boot.  with it, i was able to
push the machine hard for over 12 hours.

XXX: pullup-8, and maybe -7.

Revision 1.358.10.1 / (download) - annotate - [select for diffs], Tue Jan 15 18:44:28 2019 UTC (4 years ago) by martin
Branch: netbsd-7-1
Changes since 1.358: +25 -22 lines
Diff to previous 1.358 (colored) next main 1.359 (colored)

Pull up following revision(s) (requested by mrg in ticket #1672):

	sys/arch/sparc/sparc/pmap.c: revision 1.366

switch sparc pmap lock to the scheme sparc64 uses:
- - local IPL_NONE mutex for general pmap locking operations, not
  kernel lock.
- - for pmap_activate()/pmap_deactivate(), switch to using the
  existing ctx_lock, and push handling of it into ctx_alloc() the
  ctx_free() callers.

fixes easy to trigger deadlocks on systems with >2 cpus.  without
this patch i usually hang during boot.  with it, i was able to
push the machine hard for over 12 hours.

XXX: pullup-8, and maybe -7.

Revision 1.358.2.1 / (download) - annotate - [select for diffs], Tue Jan 15 18:43:27 2019 UTC (4 years ago) by martin
Branch: netbsd-7
Changes since 1.358: +25 -22 lines
Diff to previous 1.358 (colored) next main 1.359 (colored)

Pull up following revision(s) (requested by mrg in ticket #1672):

	sys/arch/sparc/sparc/pmap.c: revision 1.366

switch sparc pmap lock to the scheme sparc64 uses:
- - local IPL_NONE mutex for general pmap locking operations, not
  kernel lock.
- - for pmap_activate()/pmap_deactivate(), switch to using the
  existing ctx_lock, and push handling of it into ctx_alloc() the
  ctx_free() callers.

fixes easy to trigger deadlocks on systems with >2 cpus.  without
this patch i usually hang during boot.  with it, i was able to
push the machine hard for over 12 hours.

XXX: pullup-8, and maybe -7.

Revision 1.361.8.1 / (download) - annotate - [select for diffs], Tue Jan 15 18:40:15 2019 UTC (4 years ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1
Changes since 1.361: +25 -22 lines
Diff to previous 1.361 (colored) next main 1.362 (colored)

Pull up following revision(s) (requested by mrg in ticket #1163):

	sys/arch/sparc/sparc/pmap.c: revision 1.366

switch sparc pmap lock to the scheme sparc64 uses:
- - local IPL_NONE mutex for general pmap locking operations, not
  kernel lock.
- - for pmap_activate()/pmap_deactivate(), switch to using the
  existing ctx_lock, and push handling of it into ctx_alloc() the
  ctx_free() callers.

fixes easy to trigger deadlocks on systems with >2 cpus.  without
this patch i usually hang during boot.  with it, i was able to
push the machine hard for over 12 hours.

XXX: pullup-8, and maybe -7.

Revision 1.366 / (download) - annotate - [select for diffs], Sun Jan 13 22:11:11 2019 UTC (4 years ago) by mrg
Branch: MAIN
CVS Tags: phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, pgoyette-compat-20190118, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Changes since 1.365: +25 -22 lines
Diff to previous 1.365 (colored)

switch sparc pmap lock to the scheme sparc64 uses:

- local IPL_NONE mutex for general pmap locking operations, not
  kernel lock.
- for pmap_activate()/pmap_deactivate(), switch to using the
  existing ctx_lock, and push handling of it into ctx_alloc() the
  ctx_free() callers.

fixes easy to trigger deadlocks on systems with >2 cpus.  without
this patch i usually hang during boot.  with it, i was able to
push the machine hard for over 12 hours.

XXX: pullup-8, and maybe -7.

Revision 1.364.2.1 / (download) - annotate - [select for diffs], Thu Sep 6 06:55:42 2018 UTC (4 years, 4 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.364: +3 -3 lines
Diff to previous 1.364 (colored)

Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.365 / (download) - annotate - [select for diffs], Mon Sep 3 16:29:27 2018 UTC (4 years, 4 months ago) by riastradh
Branch: MAIN
CVS Tags: pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906
Changes since 1.364: +3 -3 lines
Diff to previous 1.364 (colored)

Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int.  The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER!  Some subsystems have

	#define min(a, b)	((a) < (b) ? (a) : (b))
	#define max(a, b)	((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX.  Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate.  But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all.  (Who knows, maybe in some cases integer
truncation is actually intended!)

Revision 1.364 / (download) - annotate - [select for diffs], Thu Feb 8 09:05:18 2018 UTC (4 years, 11 months ago) by dholland
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-base, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: phil-wifi, pgoyette-compat
Changes since 1.363: +4 -4 lines
Diff to previous 1.363 (colored)

Typos.

Revision 1.363 / (download) - annotate - [select for diffs], Tue Feb 6 09:22:57 2018 UTC (4 years, 11 months ago) by mrg
Branch: MAIN
Changes since 1.362: +8 -2 lines
Diff to previous 1.362 (colored)

workaround a problem -Warray-bounds triggers but isn't a problem
in practise, as described from this old commment:

/*
 * Set up pm_regmap for kernel to point NUREG *below* the beginning
 * of kernel regmap storage. Since the kernel only uses regions
 * above NUREG, we save storage space and can index kernel and
 * user regions in the same way.
 */

Revision 1.362 / (download) - annotate - [select for diffs], Tue Jan 16 08:23:17 2018 UTC (5 years ago) by mrg
Branch: MAIN
Changes since 1.361: +8 -8 lines
Diff to previous 1.361 (colored)

implement cpuctl identify for sparc and sparc64.

sparc:
- move enum vactype and struct cacheinfo into cpu.h
- move the cache flags from cpuinfo.flags into CACHEINFO.c_flags
  (this allows the new cache_printf_backend() to see them.)
  remove unused CPUFLG_CACHEIOMMUTABLES and CPUFLG_CACHEDVMA.
- align xmpsg to 64 bytes
- move cache_print() into cache_print.h so it can be shared with
  cpuctl.  it only depends upon a working printf().
- if found, store the CPU node's "name" into cpu_longname.  this
  changes the default output to show the local CPU not the
  generic CPU family.  eg:
  cpu0 at mainbus0: mid 8: Ross,RT625 @ 90 MHz, on-chip FPU
  vs the generic "RT620/625" previously shown.
- for each CPU export these things:
  - name
  - fpuname
  - mid
  - cloc
  - freq
  - psr impl and version
  - mmu impl, version, and number of contexts
  - cacheinfo structure (which changed for the first time ever
    with this commit.)

sparc64:
- add a minimal "cacheinfo" structure to export the i/d/e-cache
  size and linesize.
- store %ver, cpu node "name" and cacheinfo in cpu_info.
- set cpu_info ver, name and cacheinfo in cpu_attach(), and
  export them via sysctl, as well as CPU ID and clock freq

cpuctl:
- add identifycpu_bind() that returns false on !x86 as their
  identify routines do not need to run on a particular CPU to
  obtain its information, and use it to avoid trying to set
  affinity when not needed.
- add sparc and sparc64 cpu identify support using the newly
  exported values.

Revision 1.348.6.4 / (download) - annotate - [select for diffs], Sun Dec 3 11:36:43 2017 UTC (5 years, 1 month ago) by jdolecek
Branch: tls-maxphys
Changes since 1.348.6.3: +4 -4 lines
Diff to previous 1.348.6.3 (colored) to branchpoint 1.348 (colored) next main 1.349 (colored)

update from HEAD

Revision 1.358.4.2 / (download) - annotate - [select for diffs], Sun Feb 5 13:40:21 2017 UTC (5 years, 11 months ago) by skrll
Branch: nick-nhusb
Changes since 1.358.4.1: +3 -3 lines
Diff to previous 1.358.4.1 (colored) to branchpoint 1.358 (colored) next main 1.359 (colored)

Sync with HEAD

Revision 1.360.2.1 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:26 2017 UTC (6 years ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.360: +3 -3 lines
Diff to previous 1.360 (colored) next main 1.361 (colored)

Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.361 / (download) - annotate - [select for diffs], Thu Dec 22 14:47:59 2016 UTC (6 years, 1 month ago) by cherry
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, netbsd-8-base, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, matt-nb8-mediatek-base, matt-nb8-mediatek, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: netbsd-8
Changes since 1.360: +3 -3 lines
Diff to previous 1.360 (colored)

switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.

Revision 1.358.4.1 / (download) - annotate - [select for diffs], Sun Dec 27 12:09:43 2015 UTC (7 years, 1 month ago) by skrll
Branch: nick-nhusb
Changes since 1.358: +5 -5 lines
Diff to previous 1.358 (colored)

Sync with HEAD (as of 26th Dec)

Revision 1.360 / (download) - annotate - [select for diffs], Fri Dec 11 19:47:52 2015 UTC (7 years, 1 month ago) by macallan
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, localcount-20160914
Branch point for: pgoyette-localcount
Changes since 1.359: +3 -3 lines
Diff to previous 1.359 (colored)

|| -> &&
From PR50534

Revision 1.359 / (download) - annotate - [select for diffs], Sun Oct 4 08:18:49 2015 UTC (7 years, 3 months ago) by joerg
Branch: MAIN
Changes since 1.358: +4 -4 lines
Diff to previous 1.358 (colored)

Use pointer computation for references outside an object.

Revision 1.348.6.3 / (download) - annotate - [select for diffs], Wed Aug 20 00:03:24 2014 UTC (8 years, 5 months ago) by tls
Branch: tls-maxphys
Changes since 1.348.6.2: +102 -70 lines
Diff to previous 1.348.6.2 (colored) to branchpoint 1.348 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.357.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:54:08 2014 UTC (8 years, 5 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.357: +4 -5 lines
Diff to previous 1.357 (colored) next main 1.358 (colored)

Rebase.

Revision 1.347.2.4 / (download) - annotate - [select for diffs], Thu May 22 11:40:09 2014 UTC (8 years, 8 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.347.2.3: +102 -70 lines
Diff to previous 1.347.2.3 (colored) to branchpoint 1.347 (colored) next main 1.348 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.350.2.1 / (download) - annotate - [select for diffs], Sun May 18 17:45:25 2014 UTC (8 years, 8 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.350: +102 -70 lines
Diff to previous 1.350 (colored) next main 1.351 (colored)

sync with head

Revision 1.358 / (download) - annotate - [select for diffs], Sat May 3 11:17:06 2014 UTC (8 years, 9 months ago) by nakayama
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, rmind-smpnet-nbase, rmind-smpnet-base, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE
Branch point for: nick-nhusb, netbsd-7-1, netbsd-7-0, netbsd-7
Changes since 1.357: +4 -5 lines
Diff to previous 1.357 (colored)

Fix build w/o options SUN4_MMU3L.

Revision 1.357 / (download) - annotate - [select for diffs], Mon Dec 16 15:48:29 2013 UTC (9 years, 1 month ago) by mrg
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Changes since 1.356: +5 -6 lines
Diff to previous 1.356 (colored)

apply __diagused where appropriate and remove useless variables

Revision 1.356 / (download) - annotate - [select for diffs], Fri Dec 13 10:31:05 2013 UTC (9 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.355: +3 -3 lines
Diff to previous 1.355 (colored)

use CPU_INFO_ITERATOR instead of int.

Revision 1.355 / (download) - annotate - [select for diffs], Tue Dec 10 17:24:47 2013 UTC (9 years, 1 month ago) by macallan
Branch: MAIN
Changes since 1.354: +4 -2 lines
Diff to previous 1.354 (colored)

shut up an unused variable warning that shows up in UP kernels

Revision 1.354 / (download) - annotate - [select for diffs], Sun Dec 8 10:12:39 2013 UTC (9 years, 1 month ago) by jdc
Branch: MAIN
Changes since 1.353: +97 -67 lines
Diff to previous 1.353 (colored)

Use a double linked list with a static head to track MMU entries.
Code from martin@.
Tested on SUN4 (4/330), SUN4C (SS2), and SUN4M (Krups, 4/630).

Revision 1.353 / (download) - annotate - [select for diffs], Mon Nov 25 02:59:14 2013 UTC (9 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.352: +18 -16 lines
Diff to previous 1.352 (colored)

replace circleq with tailq.
XXX: this adds a pointer per mmu entry; we can do better, but it would
require custom lists. Is it worth it?

Revision 1.352 / (download) - annotate - [select for diffs], Sat Nov 16 23:54:01 2013 UTC (9 years, 2 months ago) by mrg
Branch: MAIN
Changes since 1.351: +3 -3 lines
Diff to previous 1.351 (colored)

- convert CPU_INFO_ITERATOR in the !MP case to be __unused, and convert
  all the iterators to use it
- print the right variables in nmi_hard_msiiep() (thanks set-but-unused)
- move variable inside usage #ifdef
- use (void) instead of a "volatile int" junk variable
- remove unused variables

Revision 1.351 / (download) - annotate - [select for diffs], Fri Nov 1 06:22:46 2013 UTC (9 years, 3 months ago) by mrg
Branch: MAIN
Changes since 1.350: +4 -4 lines
Diff to previous 1.350 (colored)

sprinkle some __diagused where appropriate.

Revision 1.348.6.2 / (download) - annotate - [select for diffs], Mon Feb 25 00:28:58 2013 UTC (9 years, 11 months ago) by tls
Branch: tls-maxphys
Changes since 1.348.6.1: +21 -10 lines
Diff to previous 1.348.6.1 (colored) to branchpoint 1.348 (colored)

resync with head

Revision 1.347.2.3 / (download) - annotate - [select for diffs], Wed Jan 23 00:05:57 2013 UTC (10 years ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.347.2.2: +21 -10 lines
Diff to previous 1.347.2.2 (colored) to branchpoint 1.347 (colored)

sync with head

Revision 1.347.2.2 / (download) - annotate - [select for diffs], Wed Jan 16 05:33:05 2013 UTC (10 years ago) by yamt
Branch: yamt-pagecache
Changes since 1.347.2.1: +28 -35 lines
Diff to previous 1.347.2.1 (colored) to branchpoint 1.347 (colored)

sync with (a bit old) head

Revision 1.350 / (download) - annotate - [select for diffs], Mon Jan 7 16:59:18 2013 UTC (10 years ago) by chs
Branch: MAIN
CVS Tags: yamt-pagecache-base8, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900, agc-symver-base, agc-symver
Branch point for: rmind-smpnet
Changes since 1.349: +21 -10 lines
Diff to previous 1.349 (colored)

switch to __USE_TOPDOWN_VM.

Revision 1.348.6.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:01:44 2012 UTC (10 years, 2 months ago) by tls
Branch: tls-maxphys
Changes since 1.348: +28 -35 lines
Diff to previous 1.348 (colored)

Resync to 2012-11-19 00:00:00 UTC

Revision 1.349 / (download) - annotate - [select for diffs], Sun Nov 4 00:32:47 2012 UTC (10 years, 2 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pagecache-base7
Changes since 1.348: +28 -35 lines
Diff to previous 1.348 (colored)

in cpu_switchto(), remove the MP-unsafe code to mark a pmap active on a CPU,
pmap_activate() already does this.  add MP locking to pmap_activate()
and pmap_deactivate().  move flushing of user windows and virtual caches
from pamp_activate() to pmap_deactivate().

Revision 1.347.2.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:06:55 2012 UTC (10 years, 9 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.347: +4 -4 lines
Diff to previous 1.347 (colored)

sync with head

Revision 1.347.6.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:33:14 2012 UTC (10 years, 11 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.347: +4 -4 lines
Diff to previous 1.347 (colored) next main 1.348 (colored)

merge to -current.

Revision 1.348 / (download) - annotate - [select for diffs], Sun Jan 29 11:49:58 2012 UTC (11 years ago) by para
Branch: MAIN
CVS Tags: yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10
Branch point for: tls-maxphys
Changes since 1.347: +4 -4 lines
Diff to previous 1.347 (colored)

fix sparc after kmem_map is gone

Revision 1.347 / (download) - annotate - [select for diffs], Sat Oct 22 21:00:40 2011 UTC (11 years, 3 months ago) by mrg
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3
Branch point for: yamt-pagecache, jmcneill-usbmp
Changes since 1.346: +7 -2 lines
Diff to previous 1.346 (colored)

add a comment to sp_tlb_flush() about fixing the asm() better.

Revision 1.346 / (download) - annotate - [select for diffs], Thu Sep 1 08:47:56 2011 UTC (11 years, 5 months ago) by martin
Branch: MAIN
Changes since 1.345: +3 -3 lines
Diff to previous 1.345 (colored)

In pmap_unwire() fix an obvious editor mishap - enable kernel preemption
before returning, not the other way around.
Might fix PR kern/45137.

Revision 1.345 / (download) - annotate - [select for diffs], Sun Aug 28 10:26:15 2011 UTC (11 years, 5 months ago) by mrg
Branch: MAIN
Changes since 1.344: +8 -8 lines
Diff to previous 1.344 (colored)

fix sparc UP kernels with GCC 4.5, with special thanks to help from
mlelstv@ tracking down the real issue.

sp_tlb_flush() makes various assumptions about the ABI and what GCC
will do with the rest of this function.  the inputs were not referenced
by name but only as "%o0" etc inside the asm.  the result was that GCC
was not filling in the function parameters before calling it because
they were not used in the function.  so, sp_tlb_flush() was getting
random data for it's inputs.  oops.

for now, convert 2 asm() calls to pure C, and mark the inputs for
the sta calls.  this makes GCC generate the right code, but it still
isn't entirely optimal.

ideally a pure C version would exist, but that adds non-trivial
overhead (15 instructions vs 23 or so.)

one more enhancement to make here would be to assign the %o3, %o4 and
%o5 usage into explicit temp variables, instead of assuming that they
are going to be free to use.

Revision 1.344 / (download) - annotate - [select for diffs], Wed Aug 24 02:51:13 2011 UTC (11 years, 5 months ago) by mrg
Branch: MAIN
Changes since 1.343: +6 -6 lines
Diff to previous 1.343 (colored)

normalise #if defined(MULTIPROCESSOR) usage.

Revision 1.341.2.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:19:41 2011 UTC (11 years, 7 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.341: +2 -11 lines
Diff to previous 1.341 (colored) next main 1.342 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.343 / (download) - annotate - [select for diffs], Sat Jun 18 02:05:08 2011 UTC (11 years, 7 months ago) by mrg
Branch: MAIN
Changes since 1.342: +2 -8 lines
Diff to previous 1.342 (colored)

remove some debugging output no longer necessary.

Revision 1.342 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:46 2011 UTC (11 years, 7 months ago) by rmind
Branch: MAIN
Changes since 1.341: +2 -5 lines
Diff to previous 1.341 (colored)

Welcome to 5.99.53!  Merge rmind-uvmplock branch:

- Reorganize locking in UVM and provide extra serialisation for pmap(9).
  New lock order: [vmpage-owner-lock] -> pmap-lock.

- Simplify locking in some pmap(9) modules by removing P->V locking.

- Use lock object on vmobjlock (and thus vnode_t::v_interlock) to share
  the locks amongst UVM objects where necessary (tmpfs, layerfs, unionfs).

- Rewrite and optimise x86 TLB shootdown code, make it simpler and cleaner.
  Add TLBSTATS option for x86 to collect statistics about TLB shootdowns.

- Unify /dev/mem et al in MI code and provide required locking (removes
  kernel-lock on some ports).  Also, avoid cache-aliasing issues.

Thanks to Andrew Doran and Joerg Sonnenberger, as their initial patches
formed the core changes of this branch.

Revision 1.340.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:06:47 2011 UTC (11 years, 7 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.340: +31 -8 lines
Diff to previous 1.340 (colored) next main 1.341 (colored)

Sync with HEAD.

Revision 1.339.4.3 / (download) - annotate - [select for diffs], Sat Mar 5 20:52:03 2011 UTC (11 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.339.4.2: +31 -8 lines
Diff to previous 1.339.4.2 (colored) to branchpoint 1.339 (colored) next main 1.340 (colored)

sync with head

Revision 1.340.4.1 / (download) - annotate - [select for diffs], Thu Feb 17 12:00:01 2011 UTC (11 years, 11 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.340: +31 -8 lines
Diff to previous 1.340 (colored) next main 1.341 (colored)

Sync with HEAD

Revision 1.322.20.5 / (download) - annotate - [select for diffs], Wed Feb 16 21:33:25 2011 UTC (11 years, 11 months ago) by bouyer
Branch: netbsd-5
CVS Tags: netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2
Changes since 1.322.20.4: +131 -37 lines
Diff to previous 1.322.20.4 (colored) to branchpoint 1.322 (colored) next main 1.323 (colored)

Apply patch, requested my mrg in ticket 1553:
	sys/arch/sparc/sparc/cpu.c:	patch
	sys/arch/sparc/sparc/cpuvar.h:	patch
	sys/arch/sparc/sparc/pmap.c:	patch
	sys/arch/sparc/sparc/timer_sun4m.c:	patch
- print the curpcb in ddb "mach cpu" output as well.
- bump the size of cpus[] by one, so we have a NULL pointer at the end,
  from tsutsui
- for MP kernels, copy the loop to find the bootcpu in mainbus_attach()
  into getcacheinfo_obp() so we can get cache properties on the bootcpu
  before calling main()
- in getcpuinfo(), move the call of getmid() before the call to
  getcacheinfo() so that the above change to getcacheinfo_obp() can work
- move the struct cpu_info setup to the end of the initial kernel page
  setup and don't access this space until after we have switched to the
  kernel pagetables
- revive most of the old CPUINFO_VA alignment/congruency code from the
  old alloc_cpuinfo_global_va() function, and ensure that all cpuinfo
  structures are sanely aligned.  this makes hypersparc work again
- introduce a new way to free the wasted pages back to UVM, as we can't
  simply uvm_unmap() them this early in bootstrap
- make sure to initialise the cpuinfo sz in all cases.  noted by martin.
- add per-cpu event counters for lev10 and lev14 interrupts.
- make CPU_INFO_FOREACH() set the iterator count to '0' in the !MP case.
- add some disabled MP code to poke other cpus on level 14 interrupts.
- add a diagnostic to ensure that cpus[0] == cpu0's cpu_info->ci_self
- if a cpu doesn't have any mappings allocated, don't copy them.  this
  occurs if a cpu isn't attached (such as a MP kernel with only "cpu0"
  listed in the config file..)
- fix the previous to compile !MULTIPROCESSOR.

Revision 1.341 / (download) - annotate - [select for diffs], Tue Feb 15 09:56:32 2011 UTC (11 years, 11 months ago) by mrg
Branch: MAIN
CVS Tags: uebayasi-xip-base7, rmind-uvmplock-nbase, rmind-uvmplock-base, jym-xensuspend-nbase, jym-xensuspend-base, cherry-xenmp-base, bouyer-quota2-nbase, bouyer-quota2-base
Branch point for: cherry-xenmp
Changes since 1.340: +31 -8 lines
Diff to previous 1.340 (colored)

sprinkle some kpreempt_{dis,en}able() in various strategic points
we will need when we get to actually enabling kernel preemption.

Revision 1.322.20.4 / (download) - annotate - [select for diffs], Fri Jan 28 07:16:14 2011 UTC (12 years ago) by snj
Branch: netbsd-5
Changes since 1.322.20.3: +30 -20 lines
Diff to previous 1.322.20.3 (colored) to branchpoint 1.322 (colored)

Pull up following revision(s) (requested by mrg in ticket #1532):
	sys/arch/sparc/sparc/cpu.c: revision 1.215 via patch
	sys/arch/sparc/sparc/cpuvar.h: revision 1.78 via patch
	sys/arch/sparc/sparc/genassym.cf: revision 1.57 via patch
	sys/arch/sparc/sparc/intr.c: revision 1.103-1.105 via patch
	sys/arch/sparc/sparc/locore.s: revision 1.247, 1.250 via patch
	sys/arch/sparc/sparc/pmap.c: revision 1.329 via patch

- print the cpu_number() when we get a strayintr().

- use _MAXNCPU instead of 4
- convert xpmsg_lock from a simplelock to a kmutex
- don't wait for sparc_noop IPI calls
- remove xmpsg_func's "retval" parameter and usage
- remove the IPI at high IPL message
- rework cpu_attach() a bunch, refactoring calls to getcpuinfo() and setting
 of cpi, and split most of the non-boot CPU handling into a new function
- make CPU_INFO_FOREACH() work whether modular or not
- move the MP cpu_info pages earlier
- move a few things in cpu.c around to colsolidate the MP code together
- remove useless if (cpus == NULL) tests -- cpus is an array now

with these changes, and an additional change to crazyintr() to not printf(),
i can get to single user shell on my SS20 again.  i can run a few commands
but some of them cause hangs.  "ps auxw" works, but "top -b" does not.

convert sparc "intrcnt" counters to evcnt(9) style.  XXX some of the names
could be better, but i just copied them from the old intrnames in locore.

i benchmarked this with a simple test of ircii ./configure && make, to see
if the additional load/store & arith would cause any noticeable degradation
as the change also converts 32 bit counters to 64 bits.  amusingly, the
only trend i saw in this was that for both portions, i see a consistent
(across at least 8 runs) benefit of about 0.8% improvement.  ie, the newer
larger code size / counter size code actually runs faster for some reason..
maybe there's a cacheline effect in the size of the code?

XXX the current implementation depends on a couple of things:
XXX   - ev_count member of evcnt{} is first and has offset 0
XXX   - that sizeof(struct evcnt) equals 32
XXX if these are not true, locore.s has #error's to catch it

- remove unused ft_want_ast()
- give nmi_sun* ENTRY() points so they show up in symbols properly
- add some disabled code to use this cpu's idlelwp area when hatching
 a cpu, but right now it makes this worse not better...

Revision 1.322.20.3 / (download) - annotate - [select for diffs], Sun Jan 16 12:58:23 2011 UTC (12 years ago) by bouyer
Branch: netbsd-5
Changes since 1.322.20.2: +36 -49 lines
Diff to previous 1.322.20.2 (colored) to branchpoint 1.322 (colored)

Pull up following revision(s) (requested by mrg in ticket #1527):
	sys/arch/sparc/sparc/pmap.c: revision 1.327, 1.328
	sys/arch/sparc/sparc/cpuvar.h: revision 1.77
	sys/arch/sparc/sparc/locore.s: revision 1.245
	sys/arch/sparc/sparc/cpu.c: revision 1.214
	sys/arch/sparc/sparc/db_interface.c: revision 1.84
- retire union cpu_info_pg
- allocate space for each cpu_info{} in pmap_bootstrap
- remap cpu0's space into the PA currently in CPUINFO_VA
- cpus[] becomes an array of pointers to cpu_info{}, easy to traverse
- only call kernel lock for IPL_VM interrupts (?  as implemented on
  x86 and sparc64)
- revert a minor part of locore.s:1.241
- in cpu_hatch(), set %sp to near the middle of the interrupt stack.
  we only need a %sp until we get to run an MI thread (own idlelwp or
  real code)
we still waste one page of space, but this gets SMP much closer to
actually working again.
fix a LOCKDEBUG problem from the previous: need to call pmap_kremove()
on a pre-existing mapping, before installing a new one.

Revision 1.322.10.6 / (download) - annotate - [select for diffs], Wed Aug 11 22:52:45 2010 UTC (12 years, 5 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.322.10.5: +14 -6 lines
Diff to previous 1.322.10.5 (colored) to branchpoint 1.322 (colored) next main 1.323 (colored)

sync with head.

Revision 1.339.4.2 / (download) - annotate - [select for diffs], Sun May 30 05:17:07 2010 UTC (12 years, 8 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.339.4.1: +14 -6 lines
Diff to previous 1.339.4.1 (colored) to branchpoint 1.339 (colored)

sync with head

Revision 1.339.2.1 / (download) - annotate - [select for diffs], Fri Apr 30 14:39:49 2010 UTC (12 years, 9 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.339: +14 -6 lines
Diff to previous 1.339 (colored) next main 1.340 (colored)

Sync with HEAD.

Revision 1.340 / (download) - annotate - [select for diffs], Mon Apr 26 09:26:25 2010 UTC (12 years, 9 months ago) by martin
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base6, uebayasi-xip-base5, uebayasi-xip-base4, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, matt-mips64-premerge-20101231, jruoho-x86intr-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.339: +14 -6 lines
Diff to previous 1.339 (colored)

Avoid using demap_lock early in pmap_bootstrap before it is initialized.

Revision 1.339.4.1 / (download) - annotate - [select for diffs], Sun Apr 25 21:08:42 2010 UTC (12 years, 9 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.339: +2 -5 lines
Diff to previous 1.339 (colored)

- Drop vmmap and its reserved page on hp700, sparc and x86.
- mm_init: use UVM_KMF_WAITVA when allocating a VA.

Revision 1.322.26.1 / (download) - annotate - [select for diffs], Wed Apr 21 00:33:48 2010 UTC (12 years, 9 months ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.322: +85 -69 lines
Diff to previous 1.322 (colored) next main 1.323 (colored)

sync to netbsd-5

Revision 1.322.10.5 / (download) - annotate - [select for diffs], Thu Mar 11 15:02:58 2010 UTC (12 years, 10 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.322.10.4: +42 -26 lines
Diff to previous 1.322.10.4 (colored) to branchpoint 1.322 (colored)

sync with head

Revision 1.339 / (download) - annotate - [select for diffs], Sun Dec 20 03:48:30 2009 UTC (13 years, 1 month ago) by mrg
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.338: +6 -2 lines
Diff to previous 1.338 (colored)

fix the previous to compile !MULTIPROCESSOR.

Revision 1.338 / (download) - annotate - [select for diffs], Sun Dec 20 03:41:49 2009 UTC (13 years, 1 month ago) by mrg
Branch: MAIN
Changes since 1.337: +25 -3 lines
Diff to previous 1.337 (colored)

- add a diagnostic to ensure that cpus[0] == cpu0's cpu_info->ci_self
- if a cpu doesn't have any mappings allocated, don't copy them.  this
  occurs if a cpu isn't attached (such as a MP kernel with only "cpu0"
  listed in the config file..)

Revision 1.322.20.2 / (download) - annotate - [select for diffs], Sun Nov 15 05:58:38 2009 UTC (13 years, 2 months ago) by snj
Branch: netbsd-5
CVS Tags: netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, matt-nb5-pq3-base, matt-nb5-pq3
Changes since 1.322.20.1: +7 -3 lines
Diff to previous 1.322.20.1 (colored) to branchpoint 1.322 (colored)

Pull up following revision(s) (requested by jdc in ticket #1138):
	sys/arch/sparc/sparc/pmap.c: revision 1.336
Avoid unused variable warnings on Sun4c-only kernels.
Fix applied from PR#42249 -- thanks!

Revision 1.337 / (download) - annotate - [select for diffs], Sat Nov 7 07:27:46 2009 UTC (13 years, 2 months ago) by cegger
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.336: +10 -10 lines
Diff to previous 1.336 (colored)

Add a flags argument to pmap_kenter_pa(9).
Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006434.html
No objections.

Revision 1.336 / (download) - annotate - [select for diffs], Fri Oct 30 15:05:54 2009 UTC (13 years, 3 months ago) by he
Branch: MAIN
Changes since 1.335: +7 -3 lines
Diff to previous 1.335 (colored)

Avoid unused variable warnings on Sun4c-only kernels.
Fix applied from PR#42249 -- thanks!

Revision 1.335 / (download) - annotate - [select for diffs], Wed Oct 21 21:12:02 2009 UTC (13 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.334: +2 -16 lines
Diff to previous 1.334 (colored)

Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code.  Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.

Revision 1.322.10.4 / (download) - annotate - [select for diffs], Wed Sep 16 13:37:43 2009 UTC (13 years, 4 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.322.10.3: +3 -2 lines
Diff to previous 1.322.10.3 (colored) to branchpoint 1.322 (colored)

sync with head

Revision 1.334 / (download) - annotate - [select for diffs], Thu Sep 10 14:12:02 2009 UTC (13 years, 4 months ago) by tsutsui
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8
Changes since 1.333: +3 -2 lines
Diff to previous 1.333 (colored)

Make sure to initialize cpus[0] which will also be used as cpuinfo
for sun4 and sun4c, not only for sun4m. Okay'ed by mrg@.

Revision 1.322.10.3 / (download) - annotate - [select for diffs], Wed Aug 19 18:46:47 2009 UTC (13 years, 5 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.322.10.2: +7 -5 lines
Diff to previous 1.322.10.2 (colored) to branchpoint 1.322 (colored)

sync with head.

Revision 1.333 / (download) - annotate - [select for diffs], Sun Aug 16 14:06:36 2009 UTC (13 years, 5 months ago) by skrll
Branch: MAIN
CVS Tags: yamt-nfs-mp-base7
Changes since 1.332: +5 -5 lines
Diff to previous 1.332 (colored)

s/int/u_int/ for flags in pmap_enter and deal with this in rump.

Hi cegger.

Revision 1.332 / (download) - annotate - [select for diffs], Sat Aug 15 23:45:00 2009 UTC (13 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.331: +4 -2 lines
Diff to previous 1.331 (colored)

Include <sys/exec_aout.h> explicitly instead of relying on <sys/exec.h> to
do it for us.

Revision 1.322.10.2 / (download) - annotate - [select for diffs], Sat Jun 20 07:20:10 2009 UTC (13 years, 7 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.322.10.1: +117 -53 lines
Diff to previous 1.322.10.1 (colored) to branchpoint 1.322 (colored)

sync with head

Revision 1.331 / (download) - annotate - [select for diffs], Sun May 31 20:28:51 2009 UTC (13 years, 8 months ago) by mrg
Branch: MAIN
CVS Tags: yamt-nfs-mp-base6, yamt-nfs-mp-base5, jymxensuspend-base
Changes since 1.330: +3 -3 lines
Diff to previous 1.330 (colored)

make sure to initialise the cpuinfo sz in all cases.  noted by martin.

Revision 1.330 / (download) - annotate - [select for diffs], Sun May 31 20:09:44 2009 UTC (13 years, 8 months ago) by mrg
Branch: MAIN
Changes since 1.329: +103 -36 lines
Diff to previous 1.329 (colored)

- bump the size of cpus[] by one, so we have a NULL pointer at the end,
  from tsutsui
- for MP kernels, copy the loop to find the bootcpu in mainbus_attach()
  into getcacheinfo_obp() so we can get cache properties on the bootcpu
  before calling main()
- in getcpuinfo(), move the call of getmid() before the call to
  getcacheinfo() so that the above change to getcacheinfo_obp() can work
- move the struct cpu_info setup to the end of the initial kernel page
  setup and don't access this space until after we have switched to the
  kernel pagetables
- revive most of the old CPUINFO_VA alignment/congruency code from the
  old alloc_cpuinfo_global_va() function, and ensure that all cpuinfo
  structures are sanely aligned.  this makes hypersparc work again
- introduce a new way to free the wasted pages back to UVM, as we can't
  simply uvm_unmap() them this early in bootstrap


i believe that the first used cpuinfo_data page is still being wasted,
but i haven't checked.

Revision 1.322.20.1 / (download) - annotate - [select for diffs], Sat May 30 16:57:18 2009 UTC (13 years, 8 months ago) by snj
Branch: netbsd-5
Changes since 1.322: +81 -69 lines
Diff to previous 1.322 (colored)

Pull up following revision(s) (requested by mrg in ticket #776):
	sys/arch/sparc/sparc/autoconf.c: revision 1.233 via patch
	sys/arch/sparc/sparc/cpu.c: revision 1.213 via patch
	sys/arch/sparc/sparc/cpuvar.h: revision 1.76 via patch
	sys/arch/sparc/sparc/db_interface.c: revision 1.83 via patch
	sys/arch/sparc/sparc/intr.c: revision 1.102 via patch
	sys/arch/sparc/sparc/pmap.c: revision 1.325 via patch
	sys/arch/sparc/sparc/timer_sun4m.c: revision 1.17 via patch
Work in progress from a colaborative effort of mrg and me (all bugs are
mine) - not quite working, but improves the situation for non-MULTIPROCESSOR
kernels (makes LOCKDEBUG kernels work) and does not make SMP kernels worse:
Rearange cpu_info access and hide the actual implementation of the mapping
from all parts of the code that do not directly deal with it. Do the
mapping early in pmap_bootstrap, so that post-vmlocking2 kernels have
a chance to work.
The actual mapping of the cpus array for SMP kernels has to be fixed still,
but both mrg and me ran out of time and this lay around in our trees far
too long.

Revision 1.329 / (download) - annotate - [select for diffs], Wed May 27 02:19:50 2009 UTC (13 years, 8 months ago) by mrg
Branch: MAIN
Changes since 1.328: +30 -20 lines
Diff to previous 1.328 (colored)

- use _MAXNCPU instead of 4
- convert xpmsg_lock from a simplelock to a kmutex
- don't wait for sparc_noop IPI calls
- remove xmpsg_func's "retval" parameter and usage
- remove the IPI at high IPL message
- rework cpu_attach() a bunch, refactoring calls to getcpuinfo() and setting
  of cpi, and split most of the non-boot CPU handling into a new function
- make CPU_INFO_FOREACH() work whether modular or not
- move the MP cpu_info pages earlier
- move a few things in cpu.c around to colsolidate the MP code together
- remove useless if (cpus == NULL) tests -- cpus is an array now


with these changes, and an additional change to crazyintr() to not printf(),
i can get to single user shell on my SS20 again.  i can run a fwe commands
but some of them cause hangs.  "ps auxw" works, but "top -b" does not.


tested in UP LOCKDEBUG/DEBUG/DIAGNOSTIC kernel as well.
MP kernel with only cpu0 configured panics starting /sbin/init.
have not yet tested on a real UP machine.

Revision 1.328 / (download) - annotate - [select for diffs], Mon May 18 02:28:35 2009 UTC (13 years, 8 months ago) by mrg
Branch: MAIN
Changes since 1.327: +3 -2 lines
Diff to previous 1.327 (colored)

fix a LOCKDEBUG problem from the previous: need to call pmap_kremove()
on a pre-existing mapping, before installing a new one.

Revision 1.327 / (download) - annotate - [select for diffs], Mon May 18 01:36:11 2009 UTC (13 years, 8 months ago) by mrg
Branch: MAIN
Changes since 1.326: +35 -49 lines
Diff to previous 1.326 (colored)

- retire union cpu_info_pg
- allocate space for each cpu_info{} in pmap_bootstrap
- remap cpu0's space into the PA currently in CPUINFO_VA
- cpus[] becomes an array of pointers to cpu_info{}, easy to traverse
- only call kernel lock for IPL_VM interrupts (?  as implemented on
  x86 and sparc64)
- revert a minor part of locore.s:1.241
- in cpu_hatch(), set %sp to near the middle of the interrupt stack.
  we only need a %sp until we get to run an MI thread (own idlelwp or
  real code)

we still waste one page of space, but this gets SMP much closer to
actually working again.

Revision 1.324.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:18:37 2009 UTC (13 years, 8 months ago) by jym
Branch: jym-xensuspend
Changes since 1.324: +90 -78 lines
Diff to previous 1.324 (colored) next main 1.325 (colored)

Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.

Revision 1.322.10.1 / (download) - annotate - [select for diffs], Mon May 4 08:11:55 2009 UTC (13 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.322: +92 -79 lines
Diff to previous 1.322 (colored)

sync with head.

Revision 1.322.18.2 / (download) - annotate - [select for diffs], Tue Apr 28 07:34:41 2009 UTC (13 years, 9 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.322.18.1: +90 -78 lines
Diff to previous 1.322.18.1 (colored) to branchpoint 1.322 (colored) next main 1.323 (colored)

Sync with HEAD.

Revision 1.326 / (download) - annotate - [select for diffs], Wed Mar 18 16:00:14 2009 UTC (13 years, 10 months ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base
Changes since 1.325: +11 -11 lines
Diff to previous 1.325 (colored)

bzero -> memset

Revision 1.325 / (download) - annotate - [select for diffs], Tue Mar 10 23:58:20 2009 UTC (13 years, 10 months ago) by martin
Branch: MAIN
Changes since 1.324: +81 -69 lines
Diff to previous 1.324 (colored)

Work in progress from a colaborative effort of mrg and me (all bugs are
mine) - not quite working, but improves the situation for non-MULTIPROCESSOR
kernels (makes LOCKDEBUG kernels work) and does not make SMP kernels worse:

Rearange cpu_info access and hide the actual implementation of the mapping
from all parts of the code that do not directly deal with it. Do the
mapping early in pmap_bootstrap, so that post-vmlocking2 kernels have
a chance to work.

The actual mapping of the cpus array for SMP kernels has to be fixed still,
but both mrg and me ran out of time and this lay around in our trees far
too long.

Revision 1.322.18.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:16:46 2009 UTC (14 years ago) by skrll
Branch: nick-hppapmap
Changes since 1.322: +4 -3 lines
Diff to previous 1.322 (colored)

Sync with HEAD.

Revision 1.322.6.1 / (download) - annotate - [select for diffs], Sat Jan 17 13:28:31 2009 UTC (14 years ago) by mjf
Branch: mjf-devfs2
Changes since 1.322: +4 -3 lines
Diff to previous 1.322 (colored) next main 1.323 (colored)

Sync with HEAD.

Revision 1.322.16.1 / (download) - annotate - [select for diffs], Sat Dec 13 01:13:26 2008 UTC (14 years, 1 month ago) by haad
Branch: haad-dm
Changes since 1.322: +4 -3 lines
Diff to previous 1.322 (colored) next main 1.323 (colored)

Update haad-dm branch to haad-dm-base2.

Revision 1.324 / (download) - annotate - [select for diffs], Wed Dec 10 11:10:19 2008 UTC (14 years, 1 month ago) by pooka
Branch: MAIN
CVS Tags: nick-hppapmap-base2, mjf-devfs2-base, haad-nbase2, haad-dm-base2, haad-dm-base
Branch point for: jym-xensuspend
Changes since 1.323: +3 -3 lines
Diff to previous 1.323 (colored)

Make kernel_pmap_ptr a const.  Requested by steve_martin.

Revision 1.323 / (download) - annotate - [select for diffs], Tue Dec 9 20:45:45 2008 UTC (14 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.322: +4 -3 lines
Diff to previous 1.322 (colored)

Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module.  pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.

Revision 1.319.2.2 / (download) - annotate - [select for diffs], Mon Feb 18 21:05:03 2008 UTC (14 years, 11 months ago) by mjf
Branch: mjf-devfs
Changes since 1.319.2.1: +69 -155 lines
Diff to previous 1.319.2.1 (colored) to branchpoint 1.319 (colored) next main 1.320 (colored)

Sync with HEAD.

Revision 1.302.2.7 / (download) - annotate - [select for diffs], Mon Jan 21 09:39:26 2008 UTC (15 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.302.2.6: +69 -155 lines
Diff to previous 1.302.2.6 (colored) to branchpoint 1.302 (colored) next main 1.303 (colored)

sync with head

Revision 1.317.10.3 / (download) - annotate - [select for diffs], Wed Jan 9 01:48:59 2008 UTC (15 years ago) by matt
Branch: matt-armv6
Changes since 1.317.10.2: +70 -155 lines
Diff to previous 1.317.10.2 (colored) to branchpoint 1.317 (colored) next main 1.318 (colored)

sync with HEAD

Revision 1.321.6.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:50:25 2008 UTC (15 years, 1 month ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.321: +69 -155 lines
Diff to previous 1.321 (colored) next main 1.322 (colored)

Sync with HEAD

Revision 1.322 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:29 2008 UTC (15 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-pf42-base, yamt-pf42, yamt-nfs-mp-base2, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, nick-net80211-sync-base, nick-net80211-sync, netbsd-5-base, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, mjf-devfs-base, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20091211, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, matt-armv6-nbase, matt-armv6-base, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-nbase, hpcarm-cleanup-base, haad-dm-base1, bouyer-xeni386-nbase, bouyer-xeni386-base, ad-socklock-base1, ad-audiomp2-base, ad-audiomp2
Branch point for: yamt-nfs-mp, nick-hppapmap, netbsd-5, mjf-devfs2, matt-nb5-mips64, haad-dm
Changes since 1.321: +69 -155 lines
Diff to previous 1.321 (colored)

Merge vmlocking2 to head.

Revision 1.321.2.1 / (download) - annotate - [select for diffs], Tue Jan 1 14:48:42 2008 UTC (15 years, 1 month ago) by ad
Branch: vmlocking2
Changes since 1.321: +69 -155 lines
Diff to previous 1.321 (colored) next main 1.322 (colored)

Locking changes for sparc.

Revision 1.302.2.6 / (download) - annotate - [select for diffs], Fri Dec 7 17:26:15 2007 UTC (15 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.302.2.5: +3 -2 lines
Diff to previous 1.302.2.5 (colored) to branchpoint 1.302 (colored)

sync with head

Revision 1.313.2.6 / (download) - annotate - [select for diffs], Mon Dec 3 18:39:18 2007 UTC (15 years, 2 months ago) by ad
Branch: vmlocking
Changes since 1.313.2.5: +8 -10 lines
Diff to previous 1.313.2.5 (colored) next main 1.314 (colored)

Sync with HEAD.

Revision 1.317.8.3 / (download) - annotate - [select for diffs], Wed Nov 21 21:53:30 2007 UTC (15 years, 2 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.317.8.2: +3 -2 lines
Diff to previous 1.317.8.2 (colored) to branchpoint 1.317 (colored) next main 1.318 (colored)

Sync with HEAD.

Revision 1.319.2.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:46:52 2007 UTC (15 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.319: +8 -10 lines
Diff to previous 1.319 (colored)

Sync with HEAD.

Revision 1.318.2.2 / (download) - annotate - [select for diffs], Sun Nov 18 19:34:41 2007 UTC (15 years, 2 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.318.2.1: +1 -0 lines
Diff to previous 1.318.2.1 (colored) to branchpoint 1.318 (colored) next main 1.319 (colored)

Sync with HEAD

Revision 1.321 / (download) - annotate - [select for diffs], Fri Nov 16 23:46:20 2007 UTC (15 years, 2 months ago) by martin
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: vmlocking2, bouyer-xeni386
Changes since 1.320: +3 -2 lines
Diff to previous 1.320 (colored)

Initialize curlwp early

Revision 1.302.2.5 / (download) - annotate - [select for diffs], Thu Nov 15 11:43:29 2007 UTC (15 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.302.2.4: +7 -10 lines
Diff to previous 1.302.2.4 (colored) to branchpoint 1.302 (colored)

sync with head.

Revision 1.318.2.1 / (download) - annotate - [select for diffs], Tue Nov 13 15:59:33 2007 UTC (15 years, 2 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.318: +7 -10 lines
Diff to previous 1.318 (colored)

Sync with HEAD

Revision 1.317.8.2 / (download) - annotate - [select for diffs], Sun Nov 11 16:46:52 2007 UTC (15 years, 2 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.317.8.1: +7 -10 lines
Diff to previous 1.317.8.1 (colored) to branchpoint 1.317 (colored)

Sync with HEAD.

Revision 1.317.10.2 / (download) - annotate - [select for diffs], Thu Nov 8 10:59:40 2007 UTC (15 years, 2 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.317.10.1: +7 -10 lines
Diff to previous 1.317.10.1 (colored) to branchpoint 1.317 (colored)

sync with -HEAD

Revision 1.320 / (download) - annotate - [select for diffs], Wed Nov 7 00:23:16 2007 UTC (15 years, 2 months ago) by ad
Branch: MAIN
Changes since 1.319: +7 -10 lines
Diff to previous 1.319 (colored)

Merge from vmlocking:

- pool_cache changes.
- Debugger/procfs locking fixes.
- Other minor changes.

Revision 1.317.10.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:22:34 2007 UTC (15 years, 2 months ago) by matt
Branch: matt-armv6
Changes since 1.317: +5 -5 lines
Diff to previous 1.317 (colored)

sync with HEAD

Revision 1.302.2.4 / (download) - annotate - [select for diffs], Sat Oct 27 11:28:35 2007 UTC (15 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.302.2.3: +5 -5 lines
Diff to previous 1.302.2.3 (colored) to branchpoint 1.302 (colored)

sync with head.

Revision 1.317.8.1 / (download) - annotate - [select for diffs], Fri Oct 26 15:43:36 2007 UTC (15 years, 3 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.317: +5 -5 lines
Diff to previous 1.317 (colored)

Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.

Revision 1.313.2.5 / (download) - annotate - [select for diffs], Fri Oct 19 12:42:44 2007 UTC (15 years, 3 months ago) by ad
Branch: vmlocking
Changes since 1.313.2.4: +5 -5 lines
Diff to previous 1.313.2.4 (colored)

Sync with head.

Revision 1.319 / (download) - annotate - [select for diffs], Wed Oct 17 19:57:15 2007 UTC (15 years, 3 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, jmcneill-base
Branch point for: mjf-devfs
Changes since 1.318: +2 -2 lines
Diff to previous 1.318 (colored)

Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree.  Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches.  The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.

Revision 1.314.8.4 / (download) - annotate - [select for diffs], Tue Oct 16 18:23:51 2007 UTC (15 years, 3 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.314.8.3: +5 -5 lines
Diff to previous 1.314.8.3 (colored) to branchpoint 1.314 (colored) next main 1.315 (colored)

Sync with HEAD

Revision 1.317.12.1 / (download) - annotate - [select for diffs], Sun Oct 14 11:47:45 2007 UTC (15 years, 3 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.317: +5 -5 lines
Diff to previous 1.317 (colored) next main 1.318 (colored)

sync with head.

Revision 1.318 / (download) - annotate - [select for diffs], Wed Oct 10 17:44:40 2007 UTC (15 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base3, vmlocking-base, ppcoea-renovation-base
Branch point for: bouyer-xenamd64
Changes since 1.317: +5 -5 lines
Diff to previous 1.317 (colored)

Comment out references to spinlockmgr().

Revision 1.314.8.3 / (download) - annotate - [select for diffs], Wed Oct 3 19:25:17 2007 UTC (15 years, 4 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.314.8.2: +2 -14 lines
Diff to previous 1.314.8.2 (colored) to branchpoint 1.314 (colored)

Sync with HEAD

Revision 1.302.2.3 / (download) - annotate - [select for diffs], Mon Sep 3 14:30:06 2007 UTC (15 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.302.2.2: +97 -82 lines
Diff to previous 1.302.2.2 (colored) to branchpoint 1.302 (colored)

sync with head.

Revision 1.313.2.4 / (download) - annotate - [select for diffs], Mon Aug 20 18:38:59 2007 UTC (15 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.313.2.3: +2 -14 lines
Diff to previous 1.313.2.3 (colored)

Sync with HEAD.

Revision 1.317 / (download) - annotate - [select for diffs], Mon Jul 16 16:36:06 2007 UTC (15 years, 6 months ago) by macallan
Branch: MAIN
CVS Tags: yamt-x86pmap-base2, yamt-x86pmap-base, nick-csl-alignment-base5, nick-csl-alignment-base, nick-csl-alignment, matt-mips64-base, matt-mips64, hpcarm-cleanup
Branch point for: yamt-x86pmap, matt-armv6, jmcneill-pm
Changes since 1.316: +2 -14 lines
Diff to previous 1.316 (colored)

turn pmap_phys_address() into a macro since all the function ever did was
to cast its parameter to paddr_t and return it
approved by mrg

Revision 1.314.2.1 / (download) - annotate - [select for diffs], Wed Jul 11 20:02:27 2007 UTC (15 years, 6 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.314: +25 -4 lines
Diff to previous 1.314 (colored) next main 1.315 (colored)

Sync with head.

Revision 1.314.8.2 / (download) - annotate - [select for diffs], Tue Jun 26 18:13:37 2007 UTC (15 years, 7 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.314.8.1: +24 -3 lines
Diff to previous 1.314.8.1 (colored) to branchpoint 1.314 (colored)

Sync with HEAD.

Revision 1.313.2.3 / (download) - annotate - [select for diffs], Sat Jun 9 23:55:26 2007 UTC (15 years, 7 months ago) by ad
Branch: vmlocking
Changes since 1.313.2.2: +24 -3 lines
Diff to previous 1.313.2.2 (colored)

Sync with head.

Revision 1.316 / (download) - annotate - [select for diffs], Mon May 28 21:24:18 2007 UTC (15 years, 8 months ago) by mrg
Branch: MAIN
CVS Tags: mjf-ufs-trans-base
Changes since 1.315: +24 -3 lines
Diff to previous 1.315 (colored)

cpu_attach(): in the MP case, fix up idle lwp info as well as lwp0.l_cpu.
for LOCKDEBUG, mutex_destroy() the cpu0 spc_lwplock with the global
cpuinfo VA, and re-mutex_init() it with the per-cpu address that is only
now available.  for non-boot cpus, be sure to also initialise curlwp to
the idle lwp.

xcall(), pmap_quiet_check(), pmap_pmap_pool_ctor(), pmap_pmap_pool_dtor(),
and pmap_enu4m(): don't care about cpus that have not been attached yet.

Revision 1.313.2.2 / (download) - annotate - [select for diffs], Sun May 27 12:28:20 2007 UTC (15 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.313.2.1: +3 -3 lines
Diff to previous 1.313.2.1 (colored)

Sync with head.

Revision 1.314.8.1 / (download) - annotate - [select for diffs], Tue May 22 17:27:31 2007 UTC (15 years, 8 months ago) by matt
Branch: ppcoea-renovation
Changes since 1.314: +3 -3 lines
Diff to previous 1.314 (colored)

Update to HEAD.

Revision 1.315 / (download) - annotate - [select for diffs], Thu May 17 14:51:30 2007 UTC (15 years, 8 months ago) by yamt
Branch: MAIN
Changes since 1.314: +3 -3 lines
Diff to previous 1.314 (colored)

merge yamt-idlelwp branch.  asked by core@.  some ports still needs work.

from doc/BRANCHES:

	idle lwp, and some changes depending on it.

	1. separate context switching and thread scheduling.
	   (cf. gmcgarry_ctxsw)
	2. implement idle lwp.
	3. clean up related MD/MI interfaces.
	4. make scheduler(s) modular.

Revision 1.307.26.4 / (download) - annotate - [select for diffs], Sat Apr 28 03:55:25 2007 UTC (15 years, 9 months ago) by mrg
Branch: yamt-idlelwp
Changes since 1.307.26.3: +3 -3 lines
Diff to previous 1.307.26.3 (colored) to branchpoint 1.307 (colored) next main 1.308 (colored)

port yamt-idlelwp to sparc.  this does not work yet, but others have
asked that i commit this work-in-progress.

currently kernel threads end up running with PSR_S missing from %psr
and end up failing to dump a user corefile.

Revision 1.307.26.3 / (download) - annotate - [select for diffs], Sat Mar 24 14:55:00 2007 UTC (15 years, 10 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.307.26.2: +10 -8 lines
Diff to previous 1.307.26.2 (colored) to branchpoint 1.307 (colored)

sync with head.

Revision 1.313.2.1 / (download) - annotate - [select for diffs], Tue Mar 13 16:50:05 2007 UTC (15 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.313: +10 -8 lines
Diff to previous 1.313 (colored)

Sync with head.

Revision 1.314 / (download) - annotate - [select for diffs], Mon Mar 12 18:18:27 2007 UTC (15 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup
Branch point for: ppcoea-renovation, mjf-ufs-trans
Changes since 1.313: +10 -8 lines
Diff to previous 1.313 (colored)

Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
the pool's lock.

Revision 1.307.26.2 / (download) - annotate - [select for diffs], Mon Mar 12 05:50:44 2007 UTC (15 years, 10 months ago) by rmind
Branch: yamt-idlelwp
Changes since 1.307.26.1: +66 -62 lines
Diff to previous 1.307.26.1 (colored) to branchpoint 1.307 (colored)

Sync with HEAD.

Revision 1.313 / (download) - annotate - [select for diffs], Sun Mar 4 22:12:44 2007 UTC (15 years, 11 months ago) by mrg
Branch: MAIN
Branch point for: vmlocking
Changes since 1.312: +10 -6 lines
Diff to previous 1.312 (colored)

fix fall out from caddr_t changes.

Revision 1.312 / (download) - annotate - [select for diffs], Sun Mar 4 09:32:39 2007 UTC (15 years, 11 months ago) by macallan
Branch: MAIN
Changes since 1.311: +8 -8 lines
Diff to previous 1.311 (colored)

make compile again

Revision 1.311 / (download) - annotate - [select for diffs], Sun Mar 4 06:00:46 2007 UTC (15 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.310: +59 -59 lines
Diff to previous 1.310 (colored)

Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.

Revision 1.307.26.1 / (download) - annotate - [select for diffs], Tue Feb 27 16:53:12 2007 UTC (15 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.307: +33 -33 lines
Diff to previous 1.307 (colored)

- sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.

Revision 1.302.2.2 / (download) - annotate - [select for diffs], Mon Feb 26 09:08:21 2007 UTC (15 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.302.2.1: +33 -33 lines
Diff to previous 1.302.2.1 (colored) to branchpoint 1.302 (colored)

sync with head.

Revision 1.310 / (download) - annotate - [select for diffs], Thu Feb 22 16:48:59 2007 UTC (15 years, 11 months ago) by thorpej
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Changes since 1.309: +10 -10 lines
Diff to previous 1.309 (colored)

TRUE -> true, FALSE -> false

Revision 1.309 / (download) - annotate - [select for diffs], Thu Feb 22 05:18:29 2007 UTC (15 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.308: +3 -3 lines
Diff to previous 1.308 (colored)

More boolean_t -> bool fixes

Revision 1.308 / (download) - annotate - [select for diffs], Wed Feb 21 22:59:52 2007 UTC (15 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.307: +24 -24 lines
Diff to previous 1.307 (colored)

Replace the Mach-derived boolean_t type with the C99 bool type.  A
future commit will replace use of TRUE and FALSE with true and false.

Revision 1.302.2.1 / (download) - annotate - [select for diffs], Wed Jun 21 14:56:12 2006 UTC (16 years, 7 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.302: +206 -364 lines
Diff to previous 1.302 (colored)

sync with head.

Revision 1.307 / (download) - annotate - [select for diffs], Sat Dec 24 23:24:02 2005 UTC (17 years, 1 month ago) by perry
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-splraiseipl-base2, yamt-splraiseipl-base, yamt-splraiseipl, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, yamt-pdpolicy, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, simonb-timecounters-base, simonb-timecounters, simonb-timcounters-final, rpaulo-netinet-merge-pcb-base, rpaulo-netinet-merge-pcb, post-newlock2-merge, peter-altq-base, peter-altq, newlock2-nbase, newlock2-base, newlock2, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, elad-kernelauth, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-idlelwp
Changes since 1.306: +16 -16 lines
Diff to previous 1.306 (colored)

__asm__ -> __asm
__const__ -> const
__inline__ -> inline
__volatile__ -> volatile

Revision 1.306 / (download) - annotate - [select for diffs], Sat Dec 24 20:07:37 2005 UTC (17 years, 1 month ago) by perry
Branch: MAIN
Changes since 1.305: +4 -4 lines
Diff to previous 1.305 (colored)

Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.

Revision 1.262.2.8 / (download) - annotate - [select for diffs], Sun Dec 11 10:28:37 2005 UTC (17 years, 1 month ago) by christos
Branch: ktrace-lwp
Changes since 1.262.2.7: +191 -349 lines
Diff to previous 1.262.2.7 (colored) next main 1.263 (colored)

Sync with head.

Revision 1.302.8.1 / (download) - annotate - [select for diffs], Tue Nov 22 16:08:03 2005 UTC (17 years, 2 months ago) by yamt
Branch: yamt-readahead
Changes since 1.302: +191 -349 lines
Diff to previous 1.302 (colored) next main 1.303 (colored)

sync with head.

Revision 1.305 / (download) - annotate - [select for diffs], Wed Nov 16 21:42:51 2005 UTC (17 years, 2 months ago) by uwe
Branch: MAIN
CVS Tags: yamt-readahead-base3, yamt-readahead-base2, ktrace-lwp-base
Changes since 1.304: +9 -9 lines
Diff to previous 1.304 (colored)

Use uint<N>_t.  Drop trailing whitespace.

Revision 1.304 / (download) - annotate - [select for diffs], Mon Nov 14 19:55:12 2005 UTC (17 years, 2 months ago) by uwe
Branch: MAIN
Changes since 1.303: +32 -25 lines
Diff to previous 1.303 (colored)

Halfhearted attempt to make EXTREME_DEBUG code compile again.
It should probably be just g/c'ed.

Revision 1.303 / (download) - annotate - [select for diffs], Mon Nov 14 19:11:24 2005 UTC (17 years, 2 months ago) by uwe
Branch: MAIN
Changes since 1.302: +154 -319 lines
Diff to previous 1.302 (colored)

ANSIify.  Same binary code is produced for GENERIC.MP + KGDB + DDB.

Revision 1.262.2.7 / (download) - annotate - [select for diffs], Thu Nov 10 13:59:08 2005 UTC (17 years, 2 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.262.2.6: +28 -19 lines
Diff to previous 1.262.2.6 (colored)

Sync with HEAD. Here we go again...

Revision 1.302 / (download) - annotate - [select for diffs], Thu Jun 16 04:17:49 2005 UTC (17 years, 7 months ago) by briggs
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base, thorpej-vnode-attr-base, thorpej-vnode-attr
Branch point for: yamt-readahead, yamt-lazymbuf
Changes since 1.301: +14 -16 lines
Diff to previous 1.301 (colored)

Rename 'ncpus' to 'sparc_ncpus' to avoid shadow warnings in m.i. code.
Also sprinkle an __UNVOLATILE() for sparc.
n.b. sparc64 'cpus' should probably be renamed to 'cpu_info_list' to
     match i386 et al.

Revision 1.276.2.3.2.1 / (download) - annotate - [select for diffs], Wed Jun 8 11:35:00 2005 UTC (17 years, 7 months ago) by tron
Branch: netbsd-2
CVS Tags: netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1
Changes since 1.276.2.3: +15 -4 lines
Diff to previous 1.276.2.3 (colored) next main 1.276.2.4 (colored)

Pull up revision 1.299 (requested by chs in ticket #1980):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.

Revision 1.276.2.4 / (download) - annotate - [select for diffs], Wed Jun 8 11:33:01 2005 UTC (17 years, 7 months ago) by tron
Branch: netbsd-2-0
CVS Tags: netbsd-2-0-3-RELEASE
Changes since 1.276.2.3: +15 -4 lines
Diff to previous 1.276.2.3 (colored) to branchpoint 1.276 (colored) next main 1.277 (colored)

Pull up revision 1.299 (requested by chs in ticket #1980):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.

Revision 1.297.6.1 / (download) - annotate - [select for diffs], Mon Jun 6 12:17:17 2005 UTC (17 years, 7 months ago) by tron
Branch: netbsd-3
CVS Tags: netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0
Changes since 1.297: +15 -4 lines
Diff to previous 1.297 (colored) next main 1.298 (colored)

Pull up revision 1.299 (requested by chs in ticket #424):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.

Revision 1.301 / (download) - annotate - [select for diffs], Sat Jun 4 04:35:27 2005 UTC (17 years, 8 months ago) by tsutsui
Branch: MAIN
Changes since 1.300: +3 -3 lines
Diff to previous 1.300 (colored)

Fix a shadowing variable.

Revision 1.300 / (download) - annotate - [select for diffs], Fri Jun 3 22:15:48 2005 UTC (17 years, 8 months ago) by martin
Branch: MAIN
Changes since 1.299: +14 -14 lines
Diff to previous 1.299 (colored)

Rename ncpu to ncpus (as other ports call it), to avoid shadow warnings.
Sprinkle some const.

Revision 1.299 / (download) - annotate - [select for diffs], Sun May 29 15:56:59 2005 UTC (17 years, 8 months ago) by chs
Branch: MAIN
Changes since 1.298: +15 -4 lines
Diff to previous 1.298 (colored)

in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.

Revision 1.295.4.1 / (download) - annotate - [select for diffs], Fri Apr 29 11:28:23 2005 UTC (17 years, 9 months ago) by kent
Branch: kent-audio2
Changes since 1.295: +116 -92 lines
Diff to previous 1.295 (colored) next main 1.296 (colored)

sync with -current

Revision 1.262.2.6 / (download) - annotate - [select for diffs], Fri Apr 1 14:28:21 2005 UTC (17 years, 10 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.262.2.5: +5 -6 lines
Diff to previous 1.262.2.5 (colored)

Sync with HEAD.

Revision 1.298 / (download) - annotate - [select for diffs], Fri Apr 1 11:59:34 2005 UTC (17 years, 10 months ago) by yamt
Branch: MAIN
CVS Tags: kent-audio2-base
Changes since 1.297: +5 -6 lines
Diff to previous 1.297 (colored)

merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
  save some resources like pv_entry.  also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.

Revision 1.297.2.1 / (download) - annotate - [select for diffs], Sat Feb 12 15:09:12 2005 UTC (17 years, 11 months ago) by yamt
Branch: yamt-km
Changes since 1.297: +5 -6 lines
Diff to previous 1.297 (colored) next main 1.298 (colored)

use new apis.

Revision 1.262.2.5 / (download) - annotate - [select for diffs], Mon Jan 24 08:34:33 2005 UTC (18 years ago) by skrll
Branch: ktrace-lwp
Changes since 1.262.2.4: +4 -2 lines
Diff to previous 1.262.2.4 (colored)

Sync with HEAD.

Revision 1.297 / (download) - annotate - [select for diffs], Wed Jan 19 12:01:52 2005 UTC (18 years ago) by chs
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, netbsd-3-base
Branch point for: yamt-km, netbsd-3
Changes since 1.296: +4 -2 lines
Diff to previous 1.296 (colored)

make this build again without sun4/4c.

Revision 1.262.2.4 / (download) - annotate - [select for diffs], Mon Jan 17 19:30:19 2005 UTC (18 years ago) by skrll
Branch: ktrace-lwp
Changes since 1.262.2.3: +111 -88 lines
Diff to previous 1.262.2.3 (colored)

Sync with HEAD.

Revision 1.296 / (download) - annotate - [select for diffs], Sun Jan 16 23:19:52 2005 UTC (18 years ago) by chs
Branch: MAIN
Changes since 1.295: +111 -88 lines
Diff to previous 1.295 (colored)

implement pmap_wired_count().  use more macros for determining MMU type.

Revision 1.262.2.3 / (download) - annotate - [select for diffs], Tue Sep 21 13:22:35 2004 UTC (18 years, 4 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.262.2.2: +2 -2 lines
Diff to previous 1.262.2.2 (colored)

Fix the sync with head I botched.

Revision 1.262.2.2 / (download) - annotate - [select for diffs], Sat Sep 18 14:40:48 2004 UTC (18 years, 4 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.262.2.1: +0 -0 lines
Diff to previous 1.262.2.1 (colored)

Sync with HEAD.

Revision 1.262.2.1 / (download) - annotate - [select for diffs], Tue Aug 3 10:41:09 2004 UTC (18 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.262: +1446 -1187 lines
Diff to previous 1.262 (colored)

Sync with HEAD

Revision 1.295 / (download) - annotate - [select for diffs], Sat May 1 08:20:11 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
CVS Tags: kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: kent-audio2
Changes since 1.294: +27 -6 lines
Diff to previous 1.294 (colored)

pmap_kremove4m,pmap_protect4m,pmap_extract4m: the `demap' lock needs interrupt
protection.

Revision 1.276.2.3 / (download) - annotate - [select for diffs], Thu Apr 29 04:19:27 2004 UTC (18 years, 9 months ago) by jmc
Branch: netbsd-2-0
CVS Tags: netbsd-2-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE
Branch point for: netbsd-2
Changes since 1.276.2.2: +17 -2 lines
Diff to previous 1.276.2.2 (colored) to branchpoint 1.276 (colored)

Pullup rev 1.294 (requested by pk in ticket #211)

Changes to fix and help diagnose MMU resource shortage on small sun4c systems

Revision 1.294 / (download) - annotate - [select for diffs], Tue Apr 27 11:26:43 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.293: +17 -2 lines
Diff to previous 1.293 (colored)

Add instrumentation for `PMEG' management on sun4/4c.

Revision 1.276.2.2 / (download) - annotate - [select for diffs], Sat Apr 24 18:24:56 2004 UTC (18 years, 9 months ago) by jdc
Branch: netbsd-2-0
Changes since 1.276.2.1: +174 -289 lines
Diff to previous 1.276.2.1 (colored) to branchpoint 1.276 (colored)

Pull up revisions 1.279-1.293 (requested by pk in ticket #179)

Many fixes for issues with sparc multi-processor support (includes
fixes to make HyperSPARC MP work).

Revision 1.293 / (download) - annotate - [select for diffs], Thu Apr 22 11:57:33 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.292: +17 -2 lines
Diff to previous 1.292 (colored)

ctx_free: reset the context's page table pointers in each context table.

Revision 1.292 / (download) - annotate - [select for diffs], Thu Apr 22 11:45:48 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.291: +14 -13 lines
Diff to previous 1.291 (colored)

Fix logic botch in previous commit.

Revision 1.291 / (download) - annotate - [select for diffs], Thu Apr 22 10:14:58 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.290: +17 -4 lines
Diff to previous 1.290 (colored)

Mostly undo rev. 1.287: for modified pages a table walk must be forced on
the next write access to get the modified bit set in the PTE and that
won't happen if it hits the cache.

Revision 1.290 / (download) - annotate - [select for diffs], Mon Apr 19 15:20:42 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.289: +12 -3 lines
Diff to previous 1.289 (colored)

pmap_extract4m: We can read a spurious invalid pte if the system is in
the middle of the PTE update protocol. So, if at first we get an invalid
PTE, retry with the demap lock held.

Revision 1.289 / (download) - annotate - [select for diffs], Sat Apr 17 10:04:20 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.288: +9 -6 lines
Diff to previous 1.288 (colored)

Use a fast cross call for TLB flushes.

Revision 1.288 / (download) - annotate - [select for diffs], Mon Apr 12 14:26:01 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.287: +7 -27 lines
Diff to previous 1.287 (colored)

Drop the special sun4d `tlb flush' lock. The pte update function already
serialises access to the PTEs to reliably get ref/mod bits.

Rename pte4m_lock => demap_lock.

Revision 1.287 / (download) - annotate - [select for diffs], Mon Apr 12 12:52:42 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.286: +13 -48 lines
Diff to previous 1.286 (colored)

pv_syncflags4m: no need to flush the cache. If the page is still mapped,
its ref/mod status may change at any moment anyway. If a definitive status
is required the UVM code will unmap the page first.

Revision 1.286 / (download) - annotate - [select for diffs], Mon Apr 12 10:00:28 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.285: +43 -58 lines
Diff to previous 1.285 (colored)

Drop sparc_protection_init4m() in favour of a (ro) data initialiser.

Revision 1.285 / (download) - annotate - [select for diffs], Sat Apr 10 20:51:24 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.284: +3 -3 lines
Diff to previous 1.284 (colored)

pmap_copy_page4m(): we only need to flush the local cache since we use
private virtual addresses.

Revision 1.284 / (download) - annotate - [select for diffs], Sat Apr 10 20:43:02 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.283: +3 -20 lines
Diff to previous 1.283 (colored)

Remove a number of redundant TLB page flushed, which are now done in
setpgt4m_va() and updatepte4m() as necessary.

Revision 1.283 / (download) - annotate - [select for diffs], Sat Apr 10 19:58:45 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.282: +3 -3 lines
Diff to previous 1.282 (colored)

Remove a remnant instance of __P().

Revision 1.282 / (download) - annotate - [select for diffs], Sat Apr 10 19:40:19 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.281: +57 -62 lines
Diff to previous 1.281 (colored)

Group updatepte4m() and the MP & SP versions of setpgt4m_va() together,
which is just a bit more pleasing to the eyes.

Revision 1.281 / (download) - annotate - [select for diffs], Sat Apr 10 19:22:59 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.280: +17 -66 lines
Diff to previous 1.280 (colored)

Do not maintain the number of valid pages per segment (`sg_npte') anymore
for the kernel map on SRMMU machines. This allows pmap_kenter() and
pmap_kremove() to update mappings without needing to lock the pmap
or raising the interrupt level.

Revision 1.280 / (download) - annotate - [select for diffs], Sat Apr 10 18:48:35 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.279: +4 -8 lines
Diff to previous 1.279 (colored)

pmap_protect4m: skip PTE update for invalid pages in the specified range.

Revision 1.279 / (download) - annotate - [select for diffs], Sat Apr 10 18:40:04 2004 UTC (18 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.278: +4 -15 lines
Diff to previous 1.278 (colored)

setpte4m: remove ineffective debug assertions.

Revision 1.276.2.1 / (download) - annotate - [select for diffs], Thu Apr 8 21:00:48 2004 UTC (18 years, 9 months ago) by jdc
Branch: netbsd-2-0
Changes since 1.276: +111 -80 lines
Diff to previous 1.276 (colored)

Pull up revisions 1.277-1.278 (requested by pk in ticket #96)

Maintain pmap resident count as pages are mapped and unmapped instead
of traversing the page tables each time it's needed.

* Allow pv_link4_4c() to fail with ENOMEM on pool allocation failures
  (catching up with pv_link4m()).
* Fix return code checking for pv_link4m() calls.
* Add low water setting to pv pool.

Revision 1.278 / (download) - annotate - [select for diffs], Sun Apr 4 18:34:35 2004 UTC (18 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.277: +92 -53 lines
Diff to previous 1.277 (colored)

* Allow pv_link4_4c() to fail with ENOMEM on pool allocation failures
  (catching up with pv_link4m()).
* Fix return code checking for pv_link4m() calls.
* Add low water setting to pv pool.

Revision 1.277 / (download) - annotate - [select for diffs], Sat Apr 3 23:11:14 2004 UTC (18 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.276: +21 -29 lines
Diff to previous 1.276 (colored)

Maintain pmap resident count as pages are mapped and unmapped instead
of traversing the page tables each time it's needed.

Revision 1.276 / (download) - annotate - [select for diffs], Fri Feb 13 11:36:18 2004 UTC (18 years, 11 months ago) by wiz
Branch: MAIN
CVS Tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Changes since 1.275: +32 -32 lines
Diff to previous 1.275 (colored)

Uppercase CPU, plural is CPUs.

Revision 1.275 / (download) - annotate - [select for diffs], Sat Dec 13 10:26:13 2003 UTC (19 years, 1 month ago) by martin
Branch: MAIN
Changes since 1.274: +17 -2 lines
Diff to previous 1.274 (colored)

Don't touch the PROM VA on JavaStations. From Valeriy.

Revision 1.274 / (download) - annotate - [select for diffs], Tue Oct 28 15:25:27 2003 UTC (19 years, 3 months ago) by chs
Branch: MAIN
Changes since 1.273: +7 -9 lines
Diff to previous 1.273 (colored)

uninitialized variables.

Revision 1.273 / (download) - annotate - [select for diffs], Thu Oct 2 16:02:09 2003 UTC (19 years, 4 months ago) by hannken
Branch: MAIN
Changes since 1.272: +3 -3 lines
Diff to previous 1.272 (colored)

Make it compile (again) with DEBUG enabled. With SUN4 defined, segfixmask
was an u_long while whithout SUN4 it was an int.

Approved by: Paul Kranenburg <pk@netbsd.org>

Revision 1.272 / (download) - annotate - [select for diffs], Fri Aug 29 08:26:21 2003 UTC (19 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.271: +4 -4 lines
Diff to previous 1.271 (colored)

Fix DEBUG code in me_alloc().

Revision 1.271 / (download) - annotate - [select for diffs], Wed Aug 27 15:59:53 2003 UTC (19 years, 5 months ago) by mrg
Branch: MAIN
Changes since 1.270: +3 -3 lines
Diff to previous 1.270 (colored)

change PROM_getprop() from taking a "void **" for the storage, to a
"void *", and do the extra de-reference directly in the function.  this
avoids having to cast dozens of different types to "void **", which sets
of GCC3's strict-aliasing.  testing by martin@

Revision 1.270 / (download) - annotate - [select for diffs], Sun Aug 24 18:10:31 2003 UTC (19 years, 5 months ago) by chs
Branch: MAIN
Changes since 1.269: +4 -4 lines
Diff to previous 1.269 (colored)

make sp_tlb_flush() work for profiling kernels:
when we're profiling, the compiler creates a stack frame for us,
so doing a "retl" isn't so good in that case.

Revision 1.269 / (download) - annotate - [select for diffs], Sun Aug 24 17:52:36 2003 UTC (19 years, 5 months ago) by chs
Branch: MAIN
Changes since 1.268: +95 -56 lines
Diff to previous 1.268 (colored)

add support for non-executable mappings (where the hardware allows this)
and make the stack and heap non-executable by default.  the changes
fall into two basic catagories:

 - pmap and trap-handler changes.  these are all MD:
   = alpha: we already track per-page execute permission with the (software)
	PG_EXEC bit, so just have the trap handler pay attention to it.
   = i386: use a new GDT segment for %cs for processes that have no
	executable mappings above a certain threshold (currently the
	bottom of the stack).  track per-page execute permission with
	the last unused PTE bit.
   = powerpc/ibm4xx: just use the hardware exec bit.
   = powerpc/oea: we already track per-page exec bits, but the hardware only
	implements non-exec mappings at the segment level.  so track the
	number of executable mappings in each segment and turn on the no-exec
	segment bit iff the count is 0.  adjust the trap handler to deal.
   = sparc (sun4m): fix our use of the hardware protection bits.
	fix the trap handler to recognize text faults.
   = sparc64: split the existing unified TSB into data and instruction TSBs,
	and only load TTEs into the appropriate TSB(s) for the permissions.
	fix the trap handler to check for execute permission.
   = not yet implemented: amd64, hppa, sh5

 - changes in all the emulations that put a signal trampoline on the stack.
   instead, we now put the trampoline into a uvm_aobj and map that into
   the process separately.

originally from openbsd, adapted for netbsd by me.

Revision 1.268 / (download) - annotate - [select for diffs], Thu Aug 21 09:36:28 2003 UTC (19 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.267: +25 -9 lines
Diff to previous 1.267 (colored)

sun4/sun4c DIAGNOSTIC: fix tally of locked down pmegs.
pmap_page_protect: DIAGNOSTIC: show `pg' argument in panic.
pmap_unwire: for now, only used for sun4/sun4c MMUs.

Revision 1.207.4.1 / (download) - annotate - [select for diffs], Sat Aug 16 19:53:28 2003 UTC (19 years, 5 months ago) by tron
Branch: netbsd-1-6
CVS Tags: netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002
Changes since 1.207: +25 -4 lines
Diff to previous 1.207 (colored) next main 1.208 (colored)

Pull up revision 1.259 via patch (requested by pk in ticket #1362):
Make sure to flush any user register windows when stealing PMEGs in
me_alloc() (and SMEGs in region_alloc()).
Should fix PR#14180.

Revision 1.267 / (download) - annotate - [select for diffs], Sat Aug 16 19:21:21 2003 UTC (19 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.266: +339 -152 lines
Diff to previous 1.266 (colored)

sun4/sun4c MMU: keep `wired' status per page, implemented by defining a bit
in the PTE word that is not used by the hardware. Use it to unlock a `pmeg'
if the wired count in a segment drops to zero.

Revision 1.266 / (download) - annotate - [select for diffs], Thu Aug 14 11:00:02 2003 UTC (19 years, 5 months ago) by hannken
Branch: MAIN
Changes since 1.265: +3 -3 lines
Diff to previous 1.265 (colored)

Fix a typo:  sm->sg_npte  ->  sp->sg_npte

Revision 1.265 / (download) - annotate - [select for diffs], Tue Aug 12 15:31:56 2003 UTC (19 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.264: +700 -680 lines
Diff to previous 1.264 (colored)

Extensive rewrite of the sun4/sun4c pmap code to allow non-wired kernel
mappings to use the pre-emptable pool of `PMEG' MMU resources.

Revision 1.264 / (download) - annotate - [select for diffs], Tue Aug 12 15:13:11 2003 UTC (19 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.263: +33 -4 lines
Diff to previous 1.263 (colored)

Use pmap_remove_all() to flush the cache by context and set a flag to
avoid subsequent user space cache flushes by page or segment in pmap_remove().

Revision 1.263 / (download) - annotate - [select for diffs], Tue Jul 15 00:05:08 2003 UTC (19 years, 6 months ago) by lukem
Branch: MAIN
Changes since 1.262: +4 -1 lines
Diff to previous 1.262 (colored)

__KERNEL_RCSID()

Revision 1.262 / (download) - annotate - [select for diffs], Sat Jun 28 10:17:47 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.261: +17 -18 lines
Diff to previous 1.261 (colored)

me_alloc()/region_alloc(): return the MMU cookie directly.

Revision 1.261 / (download) - annotate - [select for diffs], Sat Jun 28 10:02:13 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.260: +4 -27 lines
Diff to previous 1.260 (colored)

Simplify pmap_extract4_4c(), as suggested by Chuck Silvers in private
communication.

Revision 1.260 / (download) - annotate - [select for diffs], Sat Jun 28 09:51:04 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.259: +35 -32 lines
Diff to previous 1.259 (colored)

me_free(): it makes no sense to try and update the ref/mod PTE bits here.

Revision 1.259 / (download) - annotate - [select for diffs], Fri Jun 27 16:44:03 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.258: +25 -4 lines
Diff to previous 1.258 (colored)

Make sure to flush any user register windows when stealing PMEGs in
me_alloc() (and SMEGs in region_alloc()).

Should fix PR#14180.

Revision 1.258 / (download) - annotate - [select for diffs], Mon Jun 23 15:45:08 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.257: +10 -8 lines
Diff to previous 1.257 (colored)

sun4/sun4c: move/add write_user_windows() at the top of pmap_[k]remove() and
pmap_[k]enter().

Revision 1.257 / (download) - annotate - [select for diffs], Mon Jun 23 13:43:20 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.256: +11 -30 lines
Diff to previous 1.256 (colored)

According to my calculations, the cross-over point for the amount of work
needed to flush an entire segment from the sun4/sun4c caches is at 16 pages.

Revision 1.256 / (download) - annotate - [select for diffs], Mon Jun 23 11:01:40 2003 UTC (19 years, 7 months ago) by martin
Branch: MAIN
Changes since 1.255: +2 -1 lines
Diff to previous 1.255 (colored)

Make sure to include opt_foo.h if a defflag option FOO is used.

Revision 1.255 / (download) - annotate - [select for diffs], Wed Jun 18 14:24:55 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.254: +9 -8 lines
Diff to previous 1.254 (colored)

pmap_bootstrap4_4c():
	* enable caching of message buffer & cpuinfo
	* it ought to be no longer necessary to not write-protect the kernel
	  text in order to support KGDB

Revision 1.254 / (download) - annotate - [select for diffs], Wed Jun 18 09:34:22 2003 UTC (19 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.253: +1 -2 lines
Diff to previous 1.253 (colored)

Remove out-dated MP comment.

Revision 1.253 / (download) - annotate - [select for diffs], Sat May 10 21:10:40 2003 UTC (19 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.252: +15 -6 lines
Diff to previous 1.252 (colored)

Back out the following chagne:
    http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html

There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.

Fixes PR kern/21517.

Revision 1.252 / (download) - annotate - [select for diffs], Thu May 8 18:13:24 2003 UTC (19 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.251: +7 -16 lines
Diff to previous 1.251 (colored)

Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM.  Machine-dependent code is
responsible for initializing them before main() is called.  Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().

This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.

This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).

Revision 1.251 / (download) - annotate - [select for diffs], Thu May 1 14:14:46 2003 UTC (19 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.250: +8 -1 lines
Diff to previous 1.250 (colored)

Restore TLB flushes when removing level 2 & 3 page tables (these went missing
in revision 1.242).

Revision 1.250 / (download) - annotate - [select for diffs], Tue Mar 25 11:33:46 2003 UTC (19 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.249: +7 -14 lines
Diff to previous 1.249 (colored)

pmap_kprotect: use supervisor permissions; don't bother checking for `no
change' case, it's not worth the effort.

Revision 1.249 / (download) - annotate - [select for diffs], Mon Mar 3 22:43:58 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.248: +9 -1 lines
Diff to previous 1.248 (colored)

Note a kernel pmap locking problem in pmap_kenter_pa4m().

Revision 1.248 / (download) - annotate - [select for diffs], Sun Mar 2 21:37:21 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.247: +108 -40 lines
Diff to previous 1.247 (colored)

pmap_changeprot() is not a UVM <-> PMAP interface function; make it internal.
Provide pmap_kprotect() for MD code to change protection on a range of
kernel addresses (cuurent users: intr.c and mkclock.c).

Revision 1.247 / (download) - annotate - [select for diffs], Thu Feb 27 14:19:41 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.246: +2 -2 lines
Diff to previous 1.246 (colored)

Free page table pages to the same VM map they were allocated from.

Revision 1.246 / (download) - annotate - [select for diffs], Wed Feb 26 14:18:24 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.245: +88 -78 lines
Diff to previous 1.245 (colored)

Store the physical memory descriptors on top of the kernel instead of
allocating a fixed sized array.

Revision 1.245 / (download) - annotate - [select for diffs], Mon Feb 24 15:14:51 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.244: +3 -2 lines
Diff to previous 1.244 (colored)

pv_unlink4m(): don't forget to link in a new PV entry after alias checking.

Revision 1.244 / (download) - annotate - [select for diffs], Fri Feb 21 19:07:36 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.243: +60 -31 lines
Diff to previous 1.243 (colored)

Remove the assumption in the sun4/sun4c bootstrap code that the kernel
is always mapped using PMEGs and SMEGs starting at #0.

Revision 1.243 / (download) - annotate - [select for diffs], Thu Feb 20 16:22:49 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.242: +49 -46 lines
Diff to previous 1.242 (colored)

Change locking prerequisites for the pv_changepte4m() helper function
to avoid locking recursion.

Revision 1.242 / (download) - annotate - [select for diffs], Wed Feb 19 22:27:08 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.241: +228 -159 lines
Diff to previous 1.241 (colored)

Finish PV table locking. Terminology and locking strategy stolen from
the alpha port.

Revision 1.241 / (download) - annotate - [select for diffs], Tue Feb 18 22:05:08 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.240: +14 -5 lines
Diff to previous 1.240 (colored)

pgt_page_alloc: use uvm_km_kmemalloc() so we can honor the PR_NOWAIT flag
pmap_kenter_pa4m: lock the pmap we're working on.

Revision 1.240 / (download) - annotate - [select for diffs], Tue Feb 18 13:36:52 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.239: +2 -2 lines
Diff to previous 1.239 (colored)

Move makememarr() into promlib.c.

Revision 1.239 / (download) - annotate - [select for diffs], Sat Feb 15 13:30:11 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.238: +2 -2 lines
Diff to previous 1.238 (colored)

Fix pasto in previous.

Revision 1.238 / (download) - annotate - [select for diffs], Sat Feb 15 13:17:41 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.237: +17 -12 lines
Diff to previous 1.237 (colored)

Redo part of rev. 1.237; the pages at KERNBASE might not be mapped when the
kernel has just been loaded.

Revision 1.237 / (download) - annotate - [select for diffs], Fri Feb 14 22:24:58 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.236: +35 -16 lines
Diff to previous 1.236 (colored)

It's not necessary to complicate the computation of `va2pa_offset': we already
assume that the few leading pages in front of the kernel image are
always present.

Adjust `va2pa_offset' on sun4 and sun4c as well, so that some day we can
have the bootstrap program load the kernel some place else.

Revision 1.236 / (download) - annotate - [select for diffs], Thu Feb 13 09:53:21 2003 UTC (19 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.235: +321 -398 lines
Diff to previous 1.235 (colored)

Move the PV list header into the VM page vm_page_md structure.
Also, start using a spin lock to protect PV list operations.

Revision 1.235 / (download) - annotate - [select for diffs], Thu Jan 23 12:48:53 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.234: +4 -3 lines
Diff to previous 1.234 (colored)

pmap_kenter_pa4m: like pmap_enk4m(), we can use setpte4m().
ctx_free: fix cache flush context for sun4/sun4c.

Revision 1.234 / (download) - annotate - [select for diffs], Mon Jan 20 22:03:54 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.233: +23 -6 lines
Diff to previous 1.233 (colored)

pmap_enter4m: when installing a new PTE we don't need to invoke the elaborate
TLB de-map protocol.  In the relatively infrequent case where this function
must update an existing mapping, do the de-map explicitly before installing
the new PTE value.

Revision 1.233 / (download) - annotate - [select for diffs], Mon Jan 20 15:45:40 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.232: +6 -7 lines
Diff to previous 1.232 (colored)

Replace some more VA2PA(<static_addr>) calls with PMAP_BOOTSTRAP_VA2PA()

Revision 1.232 / (download) - annotate - [select for diffs], Mon Jan 20 12:06:49 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.231: +34 -21 lines
Diff to previous 1.231 (colored)

De-couple some MULTIPROCESSOR and SUN4M/SUN4D dependencies.

Revision 1.231 / (download) - annotate - [select for diffs], Sat Jan 18 06:45:05 2003 UTC (20 years ago) by thorpej
Branch: MAIN
Changes since 1.230: +15 -8 lines
Diff to previous 1.230 (colored)

Merge the nathanw_sa branch.

Revision 1.199.4.21 / (download) - annotate - [select for diffs], Fri Jan 17 15:50:28 2003 UTC (20 years ago) by pk
Branch: nathanw_sa
CVS Tags: nathanw_sa_end
Changes since 1.199.4.20: +13 -13 lines
Diff to previous 1.199.4.20 (colored) to branchpoint 1.199 (colored) next main 1.200 (colored)

Sync with HEAD.

Revision 1.199.4.20 / (download) - annotate - [select for diffs], Fri Jan 17 15:18:15 2003 UTC (20 years ago) by pk
Branch: nathanw_sa
Changes since 1.199.4.19: +9 -2 lines
Diff to previous 1.199.4.19 (colored) to branchpoint 1.199 (colored)

pmap_deactivate() takes a thread pointer.

Revision 1.230 / (download) - annotate - [select for diffs], Fri Jan 17 14:15:17 2003 UTC (20 years ago) by pk
Branch: MAIN
CVS Tags: nathanw_sa_before_merge, nathanw_sa_base
Changes since 1.229: +13 -13 lines
Diff to previous 1.229 (colored)

pmap_deactivate(): only update the pmap's cpuset if need to.

Revision 1.199.4.19 / (download) - annotate - [select for diffs], Wed Jan 15 18:40:18 2003 UTC (20 years ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.18: +166 -113 lines
Diff to previous 1.199.4.18 (colored) to branchpoint 1.199 (colored)

Sync with HEAD.

Revision 1.229 / (download) - annotate - [select for diffs], Tue Jan 14 13:56:07 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.228: +15 -9 lines
Diff to previous 1.228 (colored)

(Re)initialise the pmap structure fields that are not preserved on the
pmap pool cache all in one place.

Revision 1.228 / (download) - annotate - [select for diffs], Sun Jan 12 01:16:07 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.227: +50 -40 lines
Diff to previous 1.227 (colored)

Use per-CPU virtual addresses for pmap_copy_page() & pmap_zero_page().

Revision 1.227 / (download) - annotate - [select for diffs], Sun Jan 12 00:34:52 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.226: +2 -2 lines
Diff to previous 1.226 (colored)

pmap_deactivate(): arguments for sp_tlb_flush() were reversed.

Revision 1.226 / (download) - annotate - [select for diffs], Sat Jan 11 03:40:33 2003 UTC (20 years ago) by mrg
Branch: MAIN
Changes since 1.225: +108 -64 lines
Diff to previous 1.225 (colored)

keep track of which cpu's have run a pmap and only broadcast tlb flushes to
cpu's who have done so.  implement pmap_deactivate() for MULTIPROCESSOR and
call it from cpu_switch() when we are about to switch proces and when we
enter idle().

with this change, i see significantly reduced tlb IPI traffic and fork/exec
bound processes -- such as "configure" -- run significantly faster, upto
15%.  i also obvserved a small (0-2%) benefit to CPU bound tasks as well.

Revision 1.225 / (download) - annotate - [select for diffs], Wed Jan 8 18:46:28 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.224: +3 -10 lines
Diff to previous 1.224 (colored)

Remove write_user_windows() from a number of `4m' functions, since we don't
switch contexts with traps enabled anymore.

Revision 1.199.4.18 / (download) - annotate - [select for diffs], Wed Jan 8 17:08:42 2003 UTC (20 years ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.17: +42 -24 lines
Diff to previous 1.199.4.17 (colored) to branchpoint 1.199 (colored)

Sync with HEAD.

Revision 1.224 / (download) - annotate - [select for diffs], Wed Jan 8 16:16:46 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.223: +42 -24 lines
Diff to previous 1.223 (colored)

Make pv_uncache() and pv_cacheflush() static functions.
Split pv_cacheflush() in sun4/sun4c and sun4m/sun4d versions.

Revision 1.199.4.17 / (download) - annotate - [select for diffs], Mon Jan 6 22:12:31 2003 UTC (20 years ago) by martin
Branch: nathanw_sa
Changes since 1.199.4.16: +58 -73 lines
Diff to previous 1.199.4.16 (colored) to branchpoint 1.199 (colored)

Catch up to -current.

Revision 1.223 / (download) - annotate - [select for diffs], Mon Jan 6 12:10:46 2003 UTC (20 years ago) by pk
Branch: MAIN
Changes since 1.222: +3 -3 lines
Diff to previous 1.222 (colored)

Fix SP tlb_flush_{ctx,all} macros.

Revision 1.222 / (download) - annotate - [select for diffs], Sun Jan 5 19:38:42 2003 UTC (20 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.221: +43 -77 lines
Diff to previous 1.221 (colored)

Combine the various sun4m/sun4d TLB flush routines into a hand-coded
assembler version.

Revision 1.221 / (download) - annotate - [select for diffs], Sun Jan 5 19:31:12 2003 UTC (20 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.220: +35 -16 lines
Diff to previous 1.220 (colored)

Print the cpu number in many pmapdebug-controlled debug traces.

Revision 1.199.4.16 / (download) - annotate - [select for diffs], Fri Jan 3 17:40:17 2003 UTC (20 years, 1 month ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.15: +1 -28 lines
Diff to previous 1.199.4.15 (colored) to branchpoint 1.199 (colored)

Fix some merge errors.

Revision 1.199.4.15 / (download) - annotate - [select for diffs], Fri Jan 3 17:25:08 2003 UTC (20 years, 1 month ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.14: +45 -46 lines
Diff to previous 1.199.4.14 (colored) to branchpoint 1.199 (colored)

Sync with HEAD (again).

Revision 1.199.4.14 / (download) - annotate - [select for diffs], Fri Jan 3 16:55:27 2003 UTC (20 years, 1 month ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.13: +188 -193 lines
Diff to previous 1.199.4.13 (colored) to branchpoint 1.199 (colored)

Sync with HEAD.

XXX ALT_SWITCH_CODE is not yet LWP'ified.

Revision 1.220 / (download) - annotate - [select for diffs], Fri Jan 3 16:24:50 2003 UTC (20 years, 1 month ago) by mrg
Branch: MAIN
Changes since 1.219: +45 -46 lines
Diff to previous 1.219 (colored)

- remove some dead debug code
- don't cross call the smp_tlb_flush*() routines on SUN4D, just ensure
that there is only one concurrent flush happening.

Revision 1.219 / (download) - annotate - [select for diffs], Fri Jan 3 15:44:55 2003 UTC (20 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.218: +6 -6 lines
Diff to previous 1.218 (colored)

Define a few XCALL? shorthand macros to avoid clutter.

Revision 1.218 / (download) - annotate - [select for diffs], Wed Jan 1 15:56:11 2003 UTC (20 years, 1 month ago) by pk
Branch: MAIN
CVS Tags: fvdl_fs64_base
Changes since 1.217: +2 -2 lines
Diff to previous 1.217 (colored)

pmap_alloc_cpu: use flags from boot cpu for now, as the passed cpu_info
structure has not been fully setup yet.

Revision 1.217 / (download) - annotate - [select for diffs], Tue Dec 31 15:23:29 2002 UTC (20 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.216: +187 -199 lines
Diff to previous 1.216 (colored)

Pass the CPU context to all TLB flush routines. Because of this (and the
fact that cache flushes are also passed the context number), most
"long-term" context switches can be eliminated from the SRMMU versions
of the pmap functions.

Revision 1.199.4.13 / (download) - annotate - [select for diffs], Sun Dec 29 19:40:30 2002 UTC (20 years, 1 month ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.12: +59 -133 lines
Diff to previous 1.199.4.12 (colored) to branchpoint 1.199 (colored)

Sync with HEAD.

Revision 1.216 / (download) - annotate - [select for diffs], Sat Dec 21 12:52:56 2002 UTC (20 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.215: +21 -21 lines
Diff to previous 1.215 (colored)

tlb_flush_segment() and tlb_flush_region() now take a virtual address
argument instead of segment and region numbers.

Revision 1.215 / (download) - annotate - [select for diffs], Sat Dec 21 12:13:38 2002 UTC (20 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.214: +47 -121 lines
Diff to previous 1.214 (colored)

Use xcall() to broadcast MMU TLB flushes.

Revision 1.199.4.12 / (download) - annotate - [select for diffs], Thu Dec 19 00:38:03 2002 UTC (20 years, 1 month ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.11: +43 -43 lines
Diff to previous 1.199.4.11 (colored) to branchpoint 1.199 (colored)

Sync with HEAD.

Revision 1.214 / (download) - annotate - [select for diffs], Mon Dec 16 16:59:12 2002 UTC (20 years, 1 month ago) by pk
Branch: MAIN
CVS Tags: gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw
Changes since 1.213: +43 -43 lines
Diff to previous 1.213 (colored)

The cache flush routines now take a CPU context parameter. This is going
to be necessary in SMP kernels.

Revision 1.199.4.11 / (download) - annotate - [select for diffs], Wed Dec 11 06:12:16 2002 UTC (20 years, 1 month ago) by thorpej
Branch: nathanw_sa
Changes since 1.199.4.10: +54 -2 lines
Diff to previous 1.199.4.10 (colored) to branchpoint 1.199 (colored)

Sync with HEAD.

Revision 1.213 / (download) - annotate - [select for diffs], Tue Nov 26 15:09:56 2002 UTC (20 years, 2 months ago) by pk
Branch: MAIN
Changes since 1.212: +34 -2 lines
Diff to previous 1.212 (colored)

* pmap_destroy(): reset the region gap
* pmap_quiet_check(): add check for pmeg leaks on sun4/4c (this is DEBUG only).

Revision 1.196.2.8 / (download) - annotate - [select for diffs], Thu Oct 10 18:36:24 2002 UTC (20 years, 3 months ago) by jdolecek
Branch: kqueue
Changes since 1.196.2.7: +16 -16 lines
Diff to previous 1.196.2.7 (colored) next main 1.197 (colored)

sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work

Revision 1.199.4.10 / (download) - annotate - [select for diffs], Tue Sep 17 21:17:50 2002 UTC (20 years, 4 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.9: +16 -16 lines
Diff to previous 1.199.4.9 (colored) to branchpoint 1.199 (colored)

Catch up to -current.

Revision 1.212 / (download) - annotate - [select for diffs], Sun Sep 8 05:35:42 2002 UTC (20 years, 4 months ago) by tsutsui
Branch: MAIN
CVS Tags: kqueue-beforemerge, kqueue-base, kqueue-aftermerge
Changes since 1.211: +14 -14 lines
Diff to previous 1.211 (colored)

Rename some auto variables which might cause misleadings.

Revision 1.211 / (download) - annotate - [select for diffs], Sat Sep 7 18:51:05 2002 UTC (20 years, 4 months ago) by tsutsui
Branch: MAIN
Changes since 1.210: +3 -3 lines
Diff to previous 1.210 (colored)

Call setcontext{4,4m}() directly when we already know the CPU type.
(inspired by OpenBSD)

Revision 1.196.2.7 / (download) - annotate - [select for diffs], Fri Sep 6 08:41:14 2002 UTC (20 years, 5 months ago) by jdolecek
Branch: kqueue
Changes since 1.196.2.6: +101 -96 lines
Diff to previous 1.196.2.6 (colored)

sync kqueue branch with HEAD

Revision 1.199.4.9 / (download) - annotate - [select for diffs], Thu Aug 1 02:43:30 2002 UTC (20 years, 6 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.8: +101 -96 lines
Diff to previous 1.199.4.8 (colored) to branchpoint 1.199 (colored)

Catch up to -current.

Revision 1.207.2.2 / (download) - annotate - [select for diffs], Sun Jul 21 13:00:55 2002 UTC (20 years, 6 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.207.2.1: +101 -96 lines
Diff to previous 1.207.2.1 (colored) to branchpoint 1.207 (colored) next main 1.208 (colored)

catch up with -current.

Revision 1.210 / (download) - annotate - [select for diffs], Wed Jul 17 14:31:47 2002 UTC (20 years, 6 months ago) by thorpej
Branch: MAIN
CVS Tags: gehenna-devsw-base
Changes since 1.209: +85 -80 lines
Diff to previous 1.209 (colored)

Add SUN4D ifdef cases.  Use CPU_HAS_SRMMU where appropriate.

Revision 1.209 / (download) - annotate - [select for diffs], Wed Jul 17 04:55:57 2002 UTC (20 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.208: +17 -17 lines
Diff to previous 1.208 (colored)

Remote CPU_ISSUN4OR4C and CPU_ISSUN4COR4M, and instead express them
as (CPU_ISSUN4 || CPU_ISSUN4C) and (CPU_ISSUN4C || CPU_ISSUN4M),
respectively.  The compiler can still optimize as desired by expressing
them this way, and it simplifies adding new tests.

While here, just remove CPU_ISSUN4MOR4U; it's not used by anything.

Revision 1.207.2.1 / (download) - annotate - [select for diffs], Mon Jul 15 01:21:28 2002 UTC (20 years, 6 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.207: +1 -2 lines
Diff to previous 1.207 (colored)

catch up with -current.

Revision 1.199.4.8 / (download) - annotate - [select for diffs], Mon Jun 24 22:07:42 2002 UTC (20 years, 7 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.7: +7 -7 lines
Diff to previous 1.199.4.7 (colored) to branchpoint 1.199 (colored)

Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).

Revision 1.196.2.6 / (download) - annotate - [select for diffs], Sun Jun 23 17:41:54 2002 UTC (20 years, 7 months ago) by jdolecek
Branch: kqueue
Changes since 1.196.2.5: +2 -3 lines
Diff to previous 1.196.2.5 (colored)

catch up with -current on kqueue branch

Revision 1.199.4.7 / (download) - annotate - [select for diffs], Thu Jun 20 03:41:09 2002 UTC (20 years, 7 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.6: +1 -2 lines
Diff to previous 1.199.4.6 (colored) to branchpoint 1.199 (colored)

Catch up to -current.

Revision 1.208 / (download) - annotate - [select for diffs], Sun Jun 2 14:44:39 2002 UTC (20 years, 8 months ago) by drochner
Branch: MAIN
Changes since 1.207: +1 -2 lines
Diff to previous 1.207 (colored)

move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling

Revision 1.199.4.6 / (download) - annotate - [select for diffs], Wed Apr 17 00:04:26 2002 UTC (20 years, 9 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.5: +2 -2 lines
Diff to previous 1.199.4.5 (colored) to branchpoint 1.199 (colored)

Catch up to -current.

Revision 1.207 / (download) - annotate - [select for diffs], Thu Apr 11 11:08:40 2002 UTC (20 years, 9 months ago) by pk
Branch: MAIN
CVS Tags: netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001
Branch point for: netbsd-1-6, gehenna-devsw
Changes since 1.206: +2 -2 lines
Diff to previous 1.206 (colored)

pmap_kremove4_4c(): correctly compute the maximum number of pages to be
unmapped within a segment.

Revision 1.199.4.5 / (download) - annotate - [select for diffs], Mon Apr 1 07:42:54 2002 UTC (20 years, 10 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.4: +17 -20 lines
Diff to previous 1.199.4.4 (colored) to branchpoint 1.199 (colored)

Catch up to -current.
(CVS: It's not just a program. It's an adventure!)

Revision 1.196.2.5 / (download) - annotate - [select for diffs], Sat Mar 16 15:59:54 2002 UTC (20 years, 10 months ago) by jdolecek
Branch: kqueue
Changes since 1.196.2.4: +18 -21 lines
Diff to previous 1.196.2.4 (colored)

Catch up with -current.

Revision 1.206 / (download) - annotate - [select for diffs], Fri Mar 8 20:48:34 2002 UTC (20 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: newlock-base, newlock, eeh-devprop-base, eeh-devprop
Changes since 1.205: +17 -20 lines
Diff to previous 1.205 (colored)

Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.

Revision 1.199.4.4 / (download) - annotate - [select for diffs], Thu Feb 28 04:12:08 2002 UTC (20 years, 11 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.3: +24 -41 lines
Diff to previous 1.199.4.3 (colored) to branchpoint 1.199 (colored)

Catch up to -current.

Revision 1.205 / (download) - annotate - [select for diffs], Tue Feb 26 15:13:27 2002 UTC (20 years, 11 months ago) by simonb
Branch: MAIN
CVS Tags: ifpoll-base
Changes since 1.204: +2 -2 lines
Diff to previous 1.204 (colored)

Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
  are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).

Revision 1.196.2.4 / (download) - annotate - [select for diffs], Mon Feb 11 20:09:07 2002 UTC (20 years, 11 months ago) by jdolecek
Branch: kqueue
Changes since 1.196.2.3: +23 -40 lines
Diff to previous 1.196.2.3 (colored)

Sync w/ -current.

Revision 1.204 / (download) - annotate - [select for diffs], Mon Feb 4 08:36:37 2002 UTC (21 years ago) by pk
Branch: MAIN
Changes since 1.203: +6 -20 lines
Diff to previous 1.203 (colored)

Rename `esym' to `kernel_top' and always initialize it in locore from
the information provided by the loader if possible (defaulting to `end').
If the DDB symbols aren't needed, `kernel_top' is adjusted in
autoconf:bootstrap() before calling pmap_bootstrap(). It will also
preserve the bootinfo data (if passed by the loader) for non-DDB kernels.

Revision 1.203 / (download) - annotate - [select for diffs], Fri Jan 25 17:50:33 2002 UTC (21 years ago) by pk
Branch: MAIN
Changes since 1.202: +17 -20 lines
Diff to previous 1.202 (colored)

Remove out-dated comment on pager pages + some other comment nit-pickings.

Revision 1.202 / (download) - annotate - [select for diffs], Thu Jan 24 16:50:34 2002 UTC (21 years ago) by pk
Branch: MAIN
Changes since 1.201: +2 -2 lines
Diff to previous 1.201 (colored)

pmap_kenter_pa4_4c(): set supervisor bit in PTE.

Revision 1.196.2.3 / (download) - annotate - [select for diffs], Thu Jan 10 19:49:04 2002 UTC (21 years ago) by thorpej
Branch: kqueue
Changes since 1.196.2.2: +15 -12 lines
Diff to previous 1.196.2.2 (colored)

Sync kqueue branch with -current.

Revision 1.199.4.3 / (download) - annotate - [select for diffs], Tue Jan 8 00:27:49 2002 UTC (21 years ago) by nathanw
Branch: nathanw_sa
Changes since 1.199.4.2: +11 -5 lines
Diff to previous 1.199.4.2 (colored) to branchpoint 1.199 (colored)

Catch up to -current.

Revision 1.169.2.3 / (download) - annotate - [select for diffs], Thu Dec 27 12:08:21 2001 UTC (21 years, 1 month ago) by he
Branch: netbsd-1-5
CVS Tags: netbsd-1-5-PATCH003
Changes since 1.169.2.2: +10 -5 lines
Diff to previous 1.169.2.2 (colored) to branchpoint 1.169 (colored) next main 1.170 (colored)

Pull up revision 1.201 (requested by chs):
  When counting PTEs, look at all the segments in a region, not
  just the first.

Revision 1.201 / (download) - annotate - [select for diffs], Sat Dec 15 09:00:50 2001 UTC (21 years, 1 month ago) by chs
Branch: MAIN
Changes since 1.200: +10 -5 lines
Diff to previous 1.200 (colored)

when counting PTEs, look at all the segments in a region, not just the first.

Revision 1.200 / (download) - annotate - [select for diffs], Tue Dec 4 00:05:07 2001 UTC (21 years, 2 months ago) by darrenr
Branch: MAIN
Changes since 1.199: +2 -1 lines
Diff to previous 1.199 (colored)

defopt "options SUN4*", put #define for each of SUN4, SUN4C, SUN4M and SUN4U
into opt_arch_sparc.h and include this wherever they are used.

Revision 1.199.4.2 / (download) - annotate - [select for diffs], Tue Nov 20 16:31:56 2001 UTC (21 years, 2 months ago) by pk
Branch: nathanw_sa
Changes since 1.199.4.1: +7743 -0 lines
Diff to previous 1.199.4.1 (colored) to branchpoint 1.199 (colored)

Convert to SA framework.
Compilable, but some core functionality stubbed out still.

Revision 1.197.2.1 / (download) - annotate - [select for diffs], Mon Oct 1 12:42:14 2001 UTC (21 years, 4 months ago) by fvdl
Branch: thorpej-devvp
Changes since 1.197: +10 -13 lines
Diff to previous 1.197 (colored) next main 1.198 (colored)

Catch up with -current.

Revision 1.199.4.1, Mon Sep 24 05:37:50 2001 UTC (21 years, 4 months ago) by pk
Branch: nathanw_sa
Changes since 1.199: +0 -7743 lines
FILE REMOVED

file pmap.c was added on branch nathanw_sa on 2001-11-20 16:31:56 +0000

Revision 1.199 / (download) - annotate - [select for diffs], Mon Sep 24 05:37:50 2001 UTC (21 years, 4 months ago) by chs
Branch: MAIN
CVS Tags: thorpej-mips-cache-base, thorpej-mips-cache, thorpej-devvp-base3, thorpej-devvp-base2
Branch point for: nathanw_sa
Changes since 1.198: +5 -8 lines
Diff to previous 1.198 (colored)

use pmap_kenter_pa() instead of pmap_enter() in a few places.

Revision 1.196.2.2 / (download) - annotate - [select for diffs], Thu Sep 13 01:14:37 2001 UTC (21 years, 4 months ago) by thorpej
Branch: kqueue
Changes since 1.196.2.1: +6 -6 lines
Diff to previous 1.196.2.1 (colored)

Update the kqueue branch to HEAD.

Revision 1.198 / (download) - annotate - [select for diffs], Mon Sep 10 21:19:25 2001 UTC (21 years, 4 months ago) by chris
Branch: MAIN
CVS Tags: pre-chs-ubcperf, post-chs-ubcperf
Changes since 1.197: +6 -6 lines
Diff to previous 1.197 (colored)

Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.

Revision 1.196.2.1 / (download) - annotate - [select for diffs], Fri Aug 3 04:12:22 2001 UTC (21 years, 6 months ago) by lukem
Branch: kqueue
Changes since 1.196: +7 -12 lines
Diff to previous 1.196 (colored)

update to -current

Revision 1.197 / (download) - annotate - [select for diffs], Tue Jul 10 15:12:59 2001 UTC (21 years, 6 months ago) by mrg
Branch: MAIN
CVS Tags: thorpej-devvp-base
Branch point for: thorpej-devvp
Changes since 1.196: +7 -12 lines
Diff to previous 1.196 (colored)

use CPU_READY(). disable smp_tlb_flush_*() for now; they hang.

Revision 1.196 / (download) - annotate - [select for diffs], Sun Jul 8 15:58:42 2001 UTC (21 years, 6 months ago) by mrg
Branch: MAIN
Branch point for: kqueue
Changes since 1.195: +27 -40 lines
Diff to previous 1.195 (colored)

modify setpgt4m_va() to clean up (remove) several #ifdef MULTIPROCESSOR points.
catchup pmap_kenter_pa4m() and pmap_kremove4m() with SMP safe PTE updates.

Revision 1.195 / (download) - annotate - [select for diffs], Sat Jul 7 21:23:53 2001 UTC (21 years, 6 months ago) by mrg
Branch: MAIN
Changes since 1.194: +311 -33 lines
Diff to previous 1.194 (colored)

- implement XPMSG_DEMAP_TLB_PAGE, XPMSG_DEMAP_TLB_SEGMENT,
XPMSG_DEMAP_TLB_REGION, XPMSG_DEMAP_TLB_CONTEXT and XPMSG_DEMAP_TLB_ALL
- new setpgt4m_va(), call it when you need to ensure all cpus see the same value
- new smp_tlb_flush_context(), smp_tlb_flush_region(), smp_tlb_flush_segment(),
smp_tlb_flush_page() and smp_tlb_flush_all() functions, if MULTIPROCESSOR
- define the tlb_flush*() routines to the smp_*() versions, if MULTIPROCESSOR
- sun4m safe PTE update updatepte4m() routine, vaguely derived from code posted
by torek@bsdi.com on port-sparc a couple of years ago.
- new nmihard_lock to synchronize other cpus during hard NMI.  (XXX: should be
a bit smarter about which CPU's do/don't check in.)

Revision 1.194 / (download) - annotate - [select for diffs], Thu Jul 5 07:05:02 2001 UTC (21 years, 7 months ago) by chs
Branch: MAIN
Changes since 1.193: +331 -210 lines
Diff to previous 1.193 (colored)

implement pmap_k{enter_pa,remove}() correctly.
other cleanup in preparation for upcoming UVM changes.

Revision 1.184.2.2 / (download) - annotate - [select for diffs], Thu Jun 21 19:35:13 2001 UTC (21 years, 7 months ago) by nathanw
Changes since 1.184.2.1: +160 -128 lines
Diff to previous 1.184.2.1 (colored) next main 1.185 (colored)

Catch up to -current.

Revision 1.193 / (download) - annotate - [select for diffs], Sun Jun 3 04:03:28 2001 UTC (21 years, 8 months ago) by mrg
Branch: MAIN
Changes since 1.192: +32 -10 lines
Diff to previous 1.192 (colored)

finish moving context management back to being global.  add a new ctx_lock
for context administration.

Revision 1.192 / (download) - annotate - [select for diffs], Sat May 26 10:22:33 2001 UTC (21 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.191: +2 -1 lines
Diff to previous 1.191 (colored)

Pull in "opt_kgdb.h"; see PR#13036.

Revision 1.191 / (download) - annotate - [select for diffs], Tue Apr 24 04:31:11 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_beforemerge
Changes since 1.190: +6 -1 lines
Diff to previous 1.190 (colored)

Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.

Revision 1.152.2.7 / (download) - annotate - [select for diffs], Mon Apr 23 09:42:05 2001 UTC (21 years, 9 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.152.2.6: +1 -46 lines
Diff to previous 1.152.2.6 (colored) to branchpoint 1.152 (colored) next main 1.153 (colored)

Sync with HEAD.

Revision 1.190 / (download) - annotate - [select for diffs], Mon Apr 23 01:02:06 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_nbase, thorpej_scsipi_base
Changes since 1.189: +1 -32 lines
Diff to previous 1.189 (colored)

Remove pmap_kenter_pgs().  It was never really adopted by
anything, and the interface itself wasn't as flexible as
callers would have probably liked.

Revision 1.189 / (download) - annotate - [select for diffs], Sat Apr 21 23:51:20 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.188: +1 -10 lines
Diff to previous 1.188 (colored)

#define away pmap_update() in <machine/pmap.h> so that no function
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).

Revision 1.152.2.6 / (download) - annotate - [select for diffs], Sat Apr 21 17:54:39 2001 UTC (21 years, 9 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.152.2.5: +123 -74 lines
Diff to previous 1.152.2.5 (colored) to branchpoint 1.152 (colored)

Sync with HEAD

Revision 1.188 / (download) - annotate - [select for diffs], Sat Apr 21 17:25:06 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.187: +2 -7 lines
Diff to previous 1.187 (colored)

pmap_update() should not be equated with "flush entire TLB", it is
used to process deferred pmap operations.  Since these pmaps don't
defer anything, pmap_update() is a noop.

Revision 1.187 / (download) - annotate - [select for diffs], Tue Apr 17 20:14:46 2001 UTC (21 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.186: +123 -74 lines
Diff to previous 1.186 (colored)

pmap_enter():
* turn ad-hoc `pmap resources allocated during sleep' into a panic condition
  (this should all be prevented by higher level VM locking).
* arrange for ENOMEM to be returned if PMAP_CANFAIL is on, and malloc()
  and/or pool_get() fail.

Revision 1.184.2.1 / (download) - annotate - [select for diffs], Mon Apr 9 01:54:56 2001 UTC (21 years, 9 months ago) by nathanw
Changes since 1.184: +138 -139 lines
Diff to previous 1.184 (colored)

Catch up with -current.

Revision 1.152.2.5 / (download) - annotate - [select for diffs], Tue Mar 27 15:31:32 2001 UTC (21 years, 10 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.152.2.4: +138 -139 lines
Diff to previous 1.152.2.4 (colored) to branchpoint 1.152 (colored)

Sync with HEAD.

Revision 1.186 / (download) - annotate - [select for diffs], Mon Mar 26 23:12:03 2001 UTC (21 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.185: +135 -96 lines
Diff to previous 1.185 (colored)

Use a pool cache for pmap allocation. The cached pmap structures include
a ready-to-use level 1 page table (on sun4m) and MMU context.
A simple `fork()' test shows an improvement in spent system time of
around 4 percent (which is just a bit disappointing, IMO, but it's
an improvement nonetheless).

Revision 1.185 / (download) - annotate - [select for diffs], Thu Mar 15 06:10:49 2001 UTC (21 years, 10 months ago) by chs
Branch: MAIN
Changes since 1.184: +4 -44 lines
Diff to previous 1.184 (colored)

eliminate the KERN_* error codes in favor of the traditional E* codes.
the mapping is:

KERN_SUCCESS			0
KERN_INVALID_ADDRESS		EFAULT
KERN_PROTECTION_FAILURE		EACCES
KERN_NO_SPACE			ENOMEM
KERN_INVALID_ARGUMENT		EINVAL
KERN_FAILURE			various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE		ENOMEM
KERN_NOT_RECEIVER		<unused>
KERN_NO_ACCESS			<unused>
KERN_PAGES_LOCKED		<unused>

Revision 1.152.2.4 / (download) - annotate - [select for diffs], Mon Mar 12 13:29:24 2001 UTC (21 years, 10 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.152.2.3: +414 -416 lines
Diff to previous 1.152.2.3 (colored) to branchpoint 1.152 (colored)

Sync with HEAD.

Revision 1.184 / (download) - annotate - [select for diffs], Mon Mar 5 07:04:01 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.183: +10 -7 lines
Diff to previous 1.183 (colored)

In debug printf: missing quote on format string.

Revision 1.183 / (download) - annotate - [select for diffs], Sun Mar 4 21:28:11 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.182: +3 -3 lines
Diff to previous 1.182 (colored)

Fix syntax error in previous.

Revision 1.182 / (download) - annotate - [select for diffs], Sun Mar 4 21:12:24 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.181: +88 -67 lines
Diff to previous 1.181 (colored)

Simplify `bad alias' handling in pv_link()/pv_unlink():

	- there's no need to have different PV_NC flags for sun4[c] & sun4m

	- deal with kvm_uncache() being called on a managed page in a
	  separate helper function that deals with the caching state
	  within the pv list for that page, avoiding interference with
	  the `bad alias' removals in pv_unlink().

Note that currently never called for managed pages, but for now I'm
keeping the support in.

Revision 1.181 / (download) - annotate - [select for diffs], Thu Mar 1 15:52:18 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.180: +286 -359 lines
Diff to previous 1.180 (colored)

Change `pv list' management to use the hooks provided in the `vm_physmem'
structure. While this comes with the cost of having to search the
`vm_physmem' array every time need to find a PV entry corresponing to
some physical address, we gain the flexibility needed to support
arbitrary non-contiguous ranges of physical memory addresses.

Also, eliminate the need to sort the memory address ranges as presented
by the machine's PROM, and the requirement that physical memory starts
at address 0 (when possible).

Revision 1.180 / (download) - annotate - [select for diffs], Fri Feb 16 23:00:11 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.179: +13 -14 lines
Diff to previous 1.179 (colored)

Remove check for encoded iospace/nocache bits within physical addresses
in places where they can't possibly occur as the PA is for a VM managed
page.

Revision 1.179 / (download) - annotate - [select for diffs], Tue Feb 13 15:54:33 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.178: +3 -1 lines
Diff to previous 1.178 (colored)

Hold off supplying the text/data gap to the VM manager; our pv table
handling isn't adequate yet.

Revision 1.178 / (download) - annotate - [select for diffs], Tue Feb 13 13:48:15 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.177: +7 -6 lines
Diff to previous 1.177 (colored)

pmap_page_upload(): check if `etext_gap' is there, just in case.

Revision 1.177 / (download) - annotate - [select for diffs], Mon Feb 12 22:02:58 2001 UTC (21 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.176: +84 -39 lines
Diff to previous 1.176 (colored)

Recover the ~64KB gap in between the text/rodata & data segments that's being
generated by the linker in sparc/ELF images. The physical pages in this gap
are unmapped from the kernel and given to the VM manager.

Revision 1.152.2.3 / (download) - annotate - [select for diffs], Sun Feb 11 19:12:26 2001 UTC (21 years, 11 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.152.2.2: +3 -3 lines
Diff to previous 1.152.2.2 (colored) to branchpoint 1.152 (colored)

Sync with HEAD.

Revision 1.176 / (download) - annotate - [select for diffs], Sun Jan 21 07:48:30 2001 UTC (22 years ago) by christos
Branch: MAIN
Changes since 1.175: +3 -3 lines
Diff to previous 1.175 (colored)

fix bit rot so that MP kernel compiles s/cpu_no/ci_cpuid/

Revision 1.152.2.2 / (download) - annotate - [select for diffs], Thu Jan 18 09:23:02 2001 UTC (22 years ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.152.2.1: +23 -27 lines
Diff to previous 1.152.2.1 (colored) to branchpoint 1.152 (colored)

Sync with head (for UBC+NFS fixes, mostly).

Revision 1.175 / (download) - annotate - [select for diffs], Sun Jan 14 02:03:48 2001 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.174: +23 -27 lines
Diff to previous 1.174 (colored)

splpmap() -> splvm()

Revision 1.152.2.1 / (download) - annotate - [select for diffs], Mon Nov 20 20:25:46 2000 UTC (22 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.152: +434 -480 lines
Diff to previous 1.152 (colored)

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.

Revision 1.169.2.2 / (download) - annotate - [select for diffs], Tue Sep 12 13:46:11 2000 UTC (22 years, 4 months ago) by pk
Branch: netbsd-1-5
CVS Tags: netbsd-1-5-RELEASE, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA
Changes since 1.169.2.1: +48 -34 lines
Diff to previous 1.169.2.1 (colored) to branchpoint 1.169 (colored)

Pullup rev. 1.173->1.174 (approved by thorpej):

> revision 1.174
> date: 2000/09/09 10:24:34;  author: pk;  state: Exp;  lines: +48 -34
> Revise pv_table_map(): to simplify calculations, pv_table[] now covers
> all of physical memory, i.e. it conceptually is pv_table[0..avail_end].
> The previous version could lead to an off-by-one error in the page allocation
> for pv_table[] in some memory configurations.

Revision 1.174 / (download) - annotate - [select for diffs], Sat Sep 9 10:24:34 2000 UTC (22 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.173: +48 -34 lines
Diff to previous 1.173 (colored)

Revise pv_table_map(): to simplify calculations, pv_table[] now covers
all of physical memory, i.e. it conceptually is pv_table[0..avail_end].
The previous version could lead to an off-by-one error in the page allocation
for pv_table[] in some memory configurations.

Revision 1.173 / (download) - annotate - [select for diffs], Thu Jun 29 07:40:11 2000 UTC (22 years, 7 months ago) by mrg
Branch: MAIN
Changes since 1.172: +1 -3 lines
Diff to previous 1.172 (colored)

remove include of <vm/vm.h> and <machine/pmap.h>. <vm/vm.h> -> <uvm/uvm_extern.h>

Revision 1.172 / (download) - annotate - [select for diffs], Mon Jun 26 14:20:58 2000 UTC (22 years, 7 months ago) by mrg
Branch: MAIN
Changes since 1.171: +1 -2 lines
Diff to previous 1.171 (colored)

remove/move more mach vm header files:

	<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.

Revision 1.171 / (download) - annotate - [select for diffs], Sun Jun 25 13:26:24 2000 UTC (22 years, 7 months ago) by mrg
Branch: MAIN
Changes since 1.170: +1 -3 lines
Diff to previous 1.170 (colored)

remove some redundant <vm/vm_xxx.h> includes

Revision 1.169.2.1 / (download) - annotate - [select for diffs], Sat Jun 24 23:58:56 2000 UTC (22 years, 7 months ago) by thorpej
Branch: netbsd-1-5
CVS Tags: netbsd-1-5-ALPHA2
Changes since 1.169: +2 -27 lines
Diff to previous 1.169 (colored)

Pull up rev. 1.170 (pk):
region_free: use correct index to invalidate a MMU region cookie in a pmap.
Remove work-around in pmap_enter(); the sun4/3-level MMU now works.

Revision 1.162.2.1 / (download) - annotate - [select for diffs], Thu Jun 22 17:04:12 2000 UTC (22 years, 7 months ago) by minoura
Branch: minoura-xpg4dl
Changes since 1.162: +140 -184 lines
Diff to previous 1.162 (colored) next main 1.163 (colored)

Sync w/ netbsd-1-5-base.

Revision 1.170 / (download) - annotate - [select for diffs], Tue Jun 20 12:04:22 2000 UTC (22 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.169: +2 -27 lines
Diff to previous 1.169 (colored)

region_free: use correct index to invalidate a MMU region cookie in a pmap.
Remove work-around in pmap_enter(); the sun4/3-level MMU now works.

Revision 1.169 / (download) - annotate - [select for diffs], Mon Jun 19 21:06:32 2000 UTC (22 years, 7 months ago) by pk
Branch: MAIN
CVS Tags: netbsd-1-5-base
Branch point for: netbsd-1-5
Changes since 1.168: +7 -3 lines
Diff to previous 1.168 (colored)

Use `pv_pool' in non-wait mode; for now, panic if memory is exhausted.

Revision 1.168 / (download) - annotate - [select for diffs], Tue Jun 6 09:20:31 2000 UTC (22 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.167: +2 -2 lines
Diff to previous 1.167 (colored)

Oops, type confusion..

Revision 1.167 / (download) - annotate - [select for diffs], Mon Jun 5 20:38:26 2000 UTC (22 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.166: +60 -32 lines
Diff to previous 1.166 (colored)

Re-arrange code to flush physically indexed caches:

* replace `flush by line' function with a `flush by page' funtion, which
  also takes an argument to indicate that write-back caches need not
  validate its backing memory.

* use this function when allocating page table memory to flush the cache
  before mapping it into kernel virtual space.

* also use it in pmap_{zero,copy}_page(), so we can safely use non-cacheable
  access in there.

Revision 1.166 / (download) - annotate - [select for diffs], Fri Jun 2 10:43:59 2000 UTC (22 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.165: +47 -39 lines
Diff to previous 1.165 (colored)

In pmap_cpu_alloc(), allocate memory for the PTE tables in one sweep.

Revision 1.165 / (download) - annotate - [select for diffs], Wed May 31 11:23:21 2000 UTC (22 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.164: +3 -3 lines
Diff to previous 1.164 (colored)

Fix a couple of typos.

Revision 1.164 / (download) - annotate - [select for diffs], Wed May 31 05:28:30 2000 UTC (22 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.163: +20 -1 lines
Diff to previous 1.163 (colored)

- In the MULTIPROCESSOR case, initialize p_cpu before a process is
  marked SONPROC.
- Fix a bug where all cpu_info structures except for the boot CPUs
  would exist at both a CPU-local VA (CPUINFO_VA) and a gloal VA;
  The boot CPU's existed only a CPUINFO_VA.
- Add a self-reference pointer to the cpu_info that references the
  global address in the MULTIPROCESSOR case.  Just allow it to reference
  the `local' VA in the single-processor case, as CPUINFO_VA is global
  enough when there's only one processor to care about.  Change curcpu()
  to return the global address.

Revision 1.163 / (download) - annotate - [select for diffs], Mon May 29 22:23:34 2000 UTC (22 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.162: +11 -114 lines
Diff to previous 1.162 (colored)

Remove IOMMU page table allocation from pmap_bootstrap() and all the
hacks surrounding it.

Revision 1.162 / (download) - annotate - [select for diffs], Tue May 2 13:06:27 2000 UTC (22 years, 9 months ago) by pk
Branch: MAIN
CVS Tags: minoura-xpg4dl-base
Branch point for: minoura-xpg4dl
Changes since 1.161: +37 -43 lines
Diff to previous 1.161 (colored)

Simplify pmap_page_protect(); modelled after a similar change by
Art Grabowski in Openbsd.

Revision 1.161 / (download) - annotate - [select for diffs], Tue May 2 10:35:06 2000 UTC (22 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.160: +6 -100 lines
Diff to previous 1.160 (colored)

Remove unused code: getptesw4m(),setptesw4m()

Revision 1.160 / (download) - annotate - [select for diffs], Mon May 1 15:19:46 2000 UTC (22 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.159: +16 -47 lines
Diff to previous 1.159 (colored)

- De-inline VA2PA(); it isn't in any time-critical path. Saves a bunch of space.
- Disable special-cased viking cache flushing in setpgt4m(). This work-around
  should no longer be necessary.
- Remove some misc. dead code.

Revision 1.159 / (download) - annotate - [select for diffs], Mon May 1 14:06:41 2000 UTC (22 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.158: +98 -1 lines
Diff to previous 1.158 (colored)

Implement HyperSPARC specific pmap_{zero,copy}_page functions.

Revision 1.158 / (download) - annotate - [select for diffs], Sun Apr 30 21:22:28 2000 UTC (22 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.157: +46 -13 lines
Diff to previous 1.157 (colored)

Implement MXCC versions for pmap_{zero,copy}_page().

Revision 1.157 / (download) - annotate - [select for diffs], Thu Apr 20 13:59:02 2000 UTC (22 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.156: +23 -11 lines
Diff to previous 1.156 (colored)

ctx_alloc: set context before flushing a stolen context's cache

Revision 1.156 / (download) - annotate - [select for diffs], Mon Apr 17 20:32:00 2000 UTC (22 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.155: +3 -3 lines
Diff to previous 1.155 (colored)

Make sure to reset the CPU context in ctx_free().

Revision 1.155 / (download) - annotate - [select for diffs], Fri Jan 28 13:06:02 2000 UTC (23 years ago) by pk
Branch: MAIN
CVS Tags: chs-ubc2-newbase
Changes since 1.154: +6 -5 lines
Diff to previous 1.154 (colored)

pv_unlink4m: correctly clear the PV_ANC flag. Noted by Artur Grabowski.

Revision 1.152.8.1 / (download) - annotate - [select for diffs], Mon Dec 27 18:33:52 1999 UTC (23 years, 1 month ago) by wrstuden
Branch: wrstuden-devbsize
Changes since 1.152: +25 -23 lines
Diff to previous 1.152 (colored) next main 1.153 (colored)

Pull up to last week's -current.

Revision 1.141.2.4 / (download) - annotate - [select for diffs], Sat Dec 4 19:16:01 1999 UTC (23 years, 2 months ago) by he
Branch: netbsd-1-4
CVS Tags: netbsd-1-4-PATCH003, netbsd-1-4-PATCH002
Changes since 1.141.2.3: +4 -3 lines
Diff to previous 1.141.2.3 (colored) to branchpoint 1.141 (colored) next main 1.142 (colored)

Pull up revision 1.150 (requested by jdc):
  Make this file compile under -DDEBUG, fixing PR#8358.

Revision 1.141.2.1.4.1 / (download) - annotate - [select for diffs], Tue Nov 30 13:32:57 1999 UTC (23 years, 2 months ago) by itojun
Branch: kame
CVS Tags: kame_141_19991130
Changes since 1.141.2.1: +119 -60 lines
Diff to previous 1.141.2.1 (colored) next main 1.141.2.2 (colored)

bring in latest KAME (as of 19991130, KAME/NetBSD141) into kame branch
just for reference purposes.
This commit includes 1.4 -> 1.4.1 sync for kame branch.

The branch does not compile at all (due to the lack of ALTQ and some other
source code).  Please do not try to modify the branch, this is just for
referenre purposes.

synchronization to latest KAME will take place on HEAD branch soon.

Revision 1.154 / (download) - annotate - [select for diffs], Wed Nov 17 06:16:49 1999 UTC (23 years, 2 months ago) by chs
Branch: MAIN
CVS Tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221
Changes since 1.153: +2 -3 lines
Diff to previous 1.153 (colored)

update a prototype for the new pmap_enter().

Revision 1.152.4.1 / (download) - annotate - [select for diffs], Mon Nov 15 00:39:21 1999 UTC (23 years, 2 months ago) by fvdl
Branch: fvdl-softdep
Changes since 1.152: +24 -21 lines
Diff to previous 1.152 (colored) next main 1.153 (colored)

Sync with -current

Revision 1.153 / (download) - annotate - [select for diffs], Sat Nov 13 00:32:15 1999 UTC (23 years, 2 months ago) by thorpej
Branch: MAIN
CVS Tags: fvdl-softdep-base
Changes since 1.152: +24 -21 lines
Diff to previous 1.152 (colored)

Update for pmap_enter() API change.  No functional difference.

Revision 1.152 / (download) - annotate - [select for diffs], Mon Oct 4 19:18:34 1999 UTC (23 years, 4 months ago) by pk
Branch: MAIN
CVS Tags: comdex-fall-1999-base, comdex-fall-1999
Branch point for: wrstuden-devbsize, thorpej_scsipi, fvdl-softdep
Changes since 1.151: +161 -115 lines
Diff to previous 1.151 (colored)

Each process (i.e. each `pmap') needs a region table for each CPU.
Implement this by making the fields `pm_reg_ptp' and `pm_reg_ptp_pa'
pointers to an array of `ncpu' region table pointers and corresponding
physical addresses.

This is a somewhat unfortunate side effect of having the per-CPU data
addressable by the same virtual address on each CPU.

Revision 1.151 / (download) - annotate - [select for diffs], Sun Sep 12 01:17:19 1999 UTC (23 years, 4 months ago) by chs
Branch: MAIN
Changes since 1.150: +136 -38 lines
Diff to previous 1.150 (colored)

eliminate the PMAP_NEW option by making it required for all ports.
ports which previously had no support for PMAP_NEW now implement
the pmap_k* interfaces as wrappers around the non-k versions.

Revision 1.150 / (download) - annotate - [select for diffs], Fri Sep 10 08:42:58 1999 UTC (23 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.149: +4 -3 lines
Diff to previous 1.149 (colored)

Fix printf format (see PR#8358).

Revision 1.141.2.1.2.4 / (download) - annotate - [select for diffs], Mon Aug 2 20:09:14 1999 UTC (23 years, 6 months ago) by thorpej
Branch: chs-ubc2
Changes since 1.141.2.1.2.3: +24 -17 lines
Diff to previous 1.141.2.1.2.3 (colored) to branchpoint 1.141.2.1 (colored) next main 1.141.2.2 (colored)

Update from trunk.

Revision 1.141.2.1.2.3 / (download) - annotate - [select for diffs], Sat Jul 31 18:36:33 1999 UTC (23 years, 6 months ago) by chs
Branch: chs-ubc2
Changes since 1.141.2.1.2.2: +1 -11 lines
Diff to previous 1.141.2.1.2.2 (colored) to branchpoint 1.141.2.1 (colored)

remove some debugging code.

Revision 1.149 / (download) - annotate - [select for diffs], Thu Jul 8 18:08:59 1999 UTC (23 years, 6 months ago) by thorpej
Branch: MAIN
CVS Tags: chs-ubc2-base
Changes since 1.148: +24 -17 lines
Diff to previous 1.148 (colored)

Change the pmap_extract() interface to:
	boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.

Revision 1.141.2.3 / (download) - annotate - [select for diffs], Fri Jul 2 17:03:10 1999 UTC (23 years, 7 months ago) by perry
Branch: netbsd-1-4
CVS Tags: netbsd-1-4-PATCH001
Changes since 1.141.2.2: +7 -2 lines
Diff to previous 1.141.2.2 (colored) to branchpoint 1.141 (colored)

pullup 1.147->1.148 (pk)

Revision 1.141.2.1.2.2 / (download) - annotate - [select for diffs], Thu Jul 1 23:22:14 1999 UTC (23 years, 7 months ago) by thorpej
Branch: chs-ubc2
Changes since 1.141.2.1.2.1: +7 -2 lines
Diff to previous 1.141.2.1.2.1 (colored) to branchpoint 1.141.2.1 (colored)

Sync w/ -current.

Revision 1.148 / (download) - annotate - [select for diffs], Mon Jun 28 14:41:43 1999 UTC (23 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.147: +7 -2 lines
Diff to previous 1.147 (colored)

mmu_pagein: refuse kernel space addresses here.

Revision 1.141.2.2 / (download) - annotate - [select for diffs], Tue Jun 22 16:42:45 1999 UTC (23 years, 7 months ago) by perry
Branch: netbsd-1-4
Changes since 1.141.2.1: +113 -59 lines
Diff to previous 1.141.2.1 (colored) to branchpoint 1.141 (colored)

pullup 1.142->1.145 (pk): support for hypersparc CPU modules

Revision 1.141.2.1.2.1 / (download) - annotate - [select for diffs], Mon Jun 21 01:01:49 1999 UTC (23 years, 7 months ago) by thorpej
Branch: chs-ubc2
Changes since 1.141.2.1: +115 -81 lines
Diff to previous 1.141.2.1 (colored)

Sync w/ -current.

Revision 1.147 / (download) - annotate - [select for diffs], Thu Jun 17 19:23:27 1999 UTC (23 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.146: +3 -4 lines
Diff to previous 1.146 (colored)

pmap_change_wiring() -> pmap_unwire().

Revision 1.146 / (download) - annotate - [select for diffs], Thu Jun 17 18:21:34 1999 UTC (23 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.145: +1 -20 lines
Diff to previous 1.145 (colored)

Remove pmap_pageable(); no pmap implements it, and it is not really useful,
because pmap_enter()/pmap_change_wiring() (soon to be pmap_unwire())
communicate the information in greater detail.

Revision 1.145 / (download) - annotate - [select for diffs], Thu May 20 10:03:12 1999 UTC (23 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.144: +67 -45 lines
Diff to previous 1.144 (colored)

If TLB entries need to be flushed, make sure to do this after any necessary
cache flushes, since on VIPT machines the cache flush may induce a TLB load.

Revision 1.144 / (download) - annotate - [select for diffs], Sun May 16 16:48:59 1999 UTC (23 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.143: +20 -1 lines
Diff to previous 1.143 (colored)

Temporary work-around in pmap_enter on 4/400 machines: pre-allocate
MMU region cookies. This keeps the machine from crashing when running
in user mode.
TODO: fix the bugs then kill or alter this work-around.

Revision 1.143 / (download) - annotate - [select for diffs], Sun May 16 16:37:45 1999 UTC (23 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.142: +31 -18 lines
Diff to previous 1.142 (colored)

Well, what do you know.. the TLB context flush has been coded with the
wrong `type' field all these years. Fix this and add a TLB region flush
as well.  Also take care of a few inconsequential nits.

Revision 1.141.2.1 / (download) - annotate - [select for diffs], Mon Apr 26 15:43:49 1999 UTC (23 years, 9 months ago) by perry
Branch: netbsd-1-4
CVS Tags: netbsd-1-4-RELEASE, kame_14_19990705, kame_14_19990628
Branch point for: kame, chs-ubc2
Changes since 1.141: +7 -7 lines
Diff to previous 1.141 (colored)

pullup 1.141->1.142 (pk): fix address mapping setup (PR7442)

Revision 1.142 / (download) - annotate - [select for diffs], Sun Apr 25 10:30:02 1999 UTC (23 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.141: +7 -7 lines
Diff to previous 1.141 (colored)

In pmap_{zero,copy}_page4m() use setpgt4m() to setup temporary address
mappings.

Revision 1.141 / (download) - annotate - [select for diffs], Fri Mar 26 23:41:35 1999 UTC (23 years, 10 months ago) by mycroft
Branch: MAIN
CVS Tags: netbsd-1-4-base
Branch point for: netbsd-1-4
Changes since 1.140: +12 -9 lines
Diff to previous 1.140 (colored)

Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.

Revision 1.140 / (download) - annotate - [select for diffs], Wed Mar 24 05:51:12 1999 UTC (23 years, 10 months ago) by mrg
Branch: MAIN
Changes since 1.139: +1 -62 lines
Diff to previous 1.139 (colored)

completely remove Mach VM support.  all that is left is the all the
header files as UVM still uses (most of) these.

Revision 1.139 / (download) - annotate - [select for diffs], Tue Mar 16 03:45:36 1999 UTC (23 years, 10 months ago) by chs
Branch: MAIN
Changes since 1.138: +27 -2 lines
Diff to previous 1.138 (colored)

in pmap_bootstrap4_4c(), remove any bogus mappings the PROM
left around in the mmu.

Revision 1.138 / (download) - annotate - [select for diffs], Fri Mar 12 22:42:30 1999 UTC (23 years, 10 months ago) by perry
Branch: MAIN
Changes since 1.137: +2 -2 lines
Diff to previous 1.137 (colored)

exterminate ovbcopy. patches provided by Erik Bertelsen, pr-7145

Revision 1.133.2.2 / (download) - annotate - [select for diffs], Thu Feb 25 03:50:30 1999 UTC (23 years, 11 months ago) by chs
Branch: chs-ubc
Changes since 1.133.2.1: +15 -1 lines
Diff to previous 1.133.2.1 (colored) to branchpoint 1.133 (colored) next main 1.134 (colored)

fill in print_all_pmegs().

Revision 1.137 / (download) - annotate - [select for diffs], Sun Feb 14 14:37:45 1999 UTC (23 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.136: +6 -7 lines
Diff to previous 1.136 (colored)

Use PROMLIB's prom_setcontext().

Revision 1.136 / (download) - annotate - [select for diffs], Sun Feb 14 12:48:03 1999 UTC (23 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.135: +5 -6 lines
Diff to previous 1.135 (colored)

Use the PROMLIB interface.

Revision 1.135 / (download) - annotate - [select for diffs], Sat Jan 16 20:43:22 1999 UTC (24 years ago) by chuck
Branch: MAIN
Changes since 1.134: +1 -5 lines
Diff to previous 1.134 (colored)

MNN is no longer optional, remove dead code

Revision 1.134 / (download) - annotate - [select for diffs], Mon Jan 11 20:58:46 1999 UTC (24 years ago) by thorpej
Branch: MAIN
Changes since 1.133: +13 -4 lines
Diff to previous 1.133 (colored)

Use a pool for pmap structures.

Revision 1.133.2.1 / (download) - annotate - [select for diffs], Mon Nov 9 06:06:29 1998 UTC (24 years, 2 months ago) by chs
Branch: chs-ubc
Changes since 1.133: +175 -4 lines
Diff to previous 1.133 (colored)

initial snapshot.  lots left to do.

Revision 1.133 / (download) - annotate - [select for diffs], Fri Oct 16 22:39:18 1998 UTC (24 years, 3 months ago) by pk
Branch: MAIN
CVS Tags: kenh-if-detach-base, kenh-if-detach, chs-ubc-base
Branch point for: chs-ubc
Changes since 1.132: +48 -11 lines
Diff to previous 1.132 (colored)

Drop cpuinfo's `L1_ptps'; instead keep a per CPU segment (level 2) page
table descriptor that is used to patch up a region (level 1) page table
associated with a user pmap at context switch time.

Revision 1.132 / (download) - annotate - [select for diffs], Thu Oct 8 21:47:34 1998 UTC (24 years, 3 months ago) by pk
Branch: MAIN
Changes since 1.131: +4 -23 lines
Diff to previous 1.131 (colored)

Move [gs]etcontext() and [gs]etpte() to pte.h

Revision 1.131 / (download) - annotate - [select for diffs], Tue Oct 6 19:24:03 1998 UTC (24 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.130: +27 -2 lines
Diff to previous 1.130 (colored)

more DIAGNOSTIC sanity checks

Revision 1.130 / (download) - annotate - [select for diffs], Mon Sep 14 22:45:36 1998 UTC (24 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.129: +2 -2 lines
Diff to previous 1.129 (colored)

Use `swap' to install page-table entries which is recommended practice
for MP configurarions.

Revision 1.129 / (download) - annotate - [select for diffs], Mon Sep 14 09:46:11 1998 UTC (24 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.128: +4 -11 lines
Diff to previous 1.128 (colored)

Fix cache bit confusion in pmap_alloc_cpu().

Revision 1.128 / (download) - annotate - [select for diffs], Sat Sep 12 14:11:53 1998 UTC (24 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.127: +85 -35 lines
Diff to previous 1.127 (colored)

Add missing bits to per-CPU MMU table allocator routine.

Revision 1.127 / (download) - annotate - [select for diffs], Mon Sep 7 23:04:28 1998 UTC (24 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.126: +3 -3 lines
Diff to previous 1.126 (colored)

Adapt to cpuvar.h changes.

Revision 1.126 / (download) - annotate - [select for diffs], Tue Sep 1 18:05:27 1998 UTC (24 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.125: +9 -1 lines
Diff to previous 1.125 (colored)

Hang on to `old VM' a little while longer..

Revision 1.125 / (download) - annotate - [select for diffs], Sun Aug 23 10:01:24 1998 UTC (24 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.124: +13 -22 lines
Diff to previous 1.124 (colored)

Remove DVMA address special cases in pv_changebit().

Revision 1.124 / (download) - annotate - [select for diffs], Fri Aug 21 14:13:55 1998 UTC (24 years, 5 months ago) by pk
Branch: MAIN
Changes since 1.123: +368 -370 lines
Diff to previous 1.123 (colored)

Convert to [pv]addr_t & [pv]size_t.

Revision 1.123 / (download) - annotate - [select for diffs], Sun Jul 26 23:35:33 1998 UTC (24 years, 6 months ago) by pk
Branch: MAIN
CVS Tags: eeh-paddr_t-base, eeh-paddr_t
Changes since 1.122: +13 -3 lines
Diff to previous 1.122 (colored)

Add a cpu-specific function to flush a pure virtually-indexed/virtually-tagged
cache, which needs to be flushed at context switch.

Revision 1.122 / (download) - annotate - [select for diffs], Sat Jul 25 22:01:19 1998 UTC (24 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.121: +161 -151 lines
Diff to previous 1.121 (colored)

Allocate physical memory for the pv_table array in bootstrap(), so we
don't have to call VM functions from pmap_init().

Use a memory pool for additional pvlist entries (used for double mappings).

Take care of the cacheable bit on pagetables while we're initializing them,
instead of calling kvm_uncache() afterwards.

Revision 1.121 / (download) - annotate - [select for diffs], Thu Jul 23 21:42:40 1998 UTC (24 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.120: +68 -73 lines
Diff to previous 1.120 (colored)

Drop private page table list maintenance; use memory pools instead.

Revision 1.120 / (download) - annotate - [select for diffs], Wed Jul 8 04:43:20 1998 UTC (24 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.119: +4 -3 lines
Diff to previous 1.119 (colored)

Define one page free list, and put all pages on it.

Revision 1.119 / (download) - annotate - [select for diffs], Sat Jul 4 22:18:40 1998 UTC (24 years, 7 months ago) by jonathan
Branch: MAIN
Changes since 1.118: +2 -1 lines
Diff to previous 1.118 (colored)

defopt DDB.

Revision 1.118 / (download) - annotate - [select for diffs], Tue May 19 19:00:18 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.117: +3 -1 lines
Diff to previous 1.117 (colored)

It is no longer necessary for pmap_pinit() and pmap_release() to be
pmap interface functions, as NetBSD no longer uses statically allocated
pmaps (except for the kernel pmap, which is special-cased anyhow).

Revision 1.117 / (download) - annotate - [select for diffs], Tue May 19 09:17:32 1998 UTC (24 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.116: +1 -2 lines
Diff to previous 1.116 (colored)

Don't bzero() the IO page table; it is fully initialized in iommu_attach().

Revision 1.116 / (download) - annotate - [select for diffs], Tue May 19 09:14:34 1998 UTC (24 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.115: +10 -11 lines
Diff to previous 1.115 (colored)

In kvm_uncache(), turn off the PTE cache bit even after calling
pv_changepte(). Reason: the managed() macro does not take into
account the gap in the managed pages range that may have been introduced
by the page table allocation in bootstrap().

Revision 1.115 / (download) - annotate - [select for diffs], Wed May 6 14:17:53 1998 UTC (24 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.114: +165 -99 lines
Diff to previous 1.114 (colored)

Maintain far more complete state in the PV lists on the cacheability of pages,
using separate flag bits for mappings that were requested to be not
cacheable and uncacheable pages due to incongruent aliases.

This avoids inadvertently turning on the cache-enable bits when removing
one of multiple virtual address mappings to the same page. Reading
from /dev/mem could do this to arbitrary pages.

Revision 1.114 / (download) - annotate - [select for diffs], Sat Mar 21 11:32:43 1998 UTC (24 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.113: +1 -5 lines
Diff to previous 1.113 (colored)

Remove incorrect address validity check in two `#if DEBUG' sections.

Revision 1.113 / (download) - annotate - [select for diffs], Sat Feb 14 09:28:52 1998 UTC (24 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.112: +15 -6 lines
Diff to previous 1.112 (colored)

Think-o in pmap_extract4m(), detected by UVM.

Revision 1.112 / (download) - annotate - [select for diffs], Tue Feb 10 14:11:43 1998 UTC (24 years, 11 months ago) by mrg
Branch: MAIN
Changes since 1.111: +3 -1 lines
Diff to previous 1.111 (colored)

- add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.

Revision 1.111 / (download) - annotate - [select for diffs], Sat Feb 7 02:36:58 1998 UTC (24 years, 11 months ago) by chs
Branch: MAIN
Changes since 1.110: +2 -2 lines
Diff to previous 1.110 (colored)

fix typo in locking.

Revision 1.110 / (download) - annotate - [select for diffs], Thu Feb 5 07:58:01 1998 UTC (25 years ago) by mrg
Branch: MAIN
Changes since 1.109: +58 -1 lines
Diff to previous 1.109 (colored)

initial import of the new virtual memory system, UVM, into -current.

UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code.  i provided some help
getting swap and paging working, and other bug fixes/ideas.  chuck
silvers <chuq@chuq.com> also provided some other fixes.

this is the sparc portion.

this will be KNF'd shortly.  :-)

Revision 1.109 / (download) - annotate - [select for diffs], Sat Jan 17 15:02:17 1998 UTC (25 years ago) by pk
Branch: MAIN
Changes since 1.108: +4 -2 lines
Diff to previous 1.108 (colored)

A small optimization.

Revision 1.108 / (download) - annotate - [select for diffs], Wed Jan 14 14:49:29 1998 UTC (25 years ago) by pk
Branch: MAIN
Changes since 1.107: +20 -21 lines
Diff to previous 1.107 (colored)

Fix a border case when committing physical pages to the VM system;
rename some variables in the process for clarity.

Revision 1.107 / (download) - annotate - [select for diffs], Tue Jan 13 00:55:15 1998 UTC (25 years ago) by pk
Branch: MAIN
Changes since 1.106: +35 -79 lines
Diff to previous 1.106 (colored)

Turn NEW_NONCONTIG page upload code into a routine shared by sun4/4c
and sun4m pmap_bootstrap()s, simplify it, and make it not loose the
couple of slack pages we painstakingly remembered in pmap_bootstrap.

Revision 1.106 / (download) - annotate - [select for diffs], Thu Jan 8 23:48:16 1998 UTC (25 years ago) by thorpej
Branch: MAIN
Changes since 1.105: +4 -6 lines
Diff to previous 1.105 (colored)

Update a comment relative to the vm_bootstrap_steal_memory() change, and
don't include pmap_free_pages() or pmap_next_page() in the new non-contig
case.

Revision 1.105 / (download) - annotate - [select for diffs], Thu Jan 8 11:39:35 1998 UTC (25 years ago) by mrg
Branch: MAIN
Changes since 1.104: +32 -2 lines
Diff to previous 1.104 (colored)

add new version of non contiguous memory code, written by chuck cranor,
called "MACHINE_NEW_NONCONGIG".  this is required for UVM, the new VM
system (also written by chuck) that is coming soon.  adds new functions:
	vm_page_physload() -- tell the VM system about an area of memory.
	vm_physseg_find() -- returns index in vm_physmem array that this
		address is in.
and several new versions of old functions/macros defined in vm_page.h.


this is the sparc portion.

Revision 1.104 / (download) - annotate - [select for diffs], Fri Jan 2 22:57:56 1998 UTC (25 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.103: +39 -1 lines
Diff to previous 1.103 (colored)

Implement pmap_activate().

Revision 1.102.2.1 / (download) - annotate - [select for diffs], Thu Nov 20 03:21:18 1997 UTC (25 years, 2 months ago) by mellon
Branch: netbsd-1-3
CVS Tags: netbsd-1-3-RELEASE, netbsd-1-3-PATCH003-CANDIDATE2, netbsd-1-3-PATCH003-CANDIDATE1, netbsd-1-3-PATCH003-CANDIDATE0, netbsd-1-3-PATCH003, netbsd-1-3-PATCH002, netbsd-1-3-PATCH001, netbsd-1-3-BETA
Changes since 1.102: +4 -3 lines
Diff to previous 1.102 (colored) next main 1.103 (colored)

Pull rev 1.103 up from trunk (pk)

Revision 1.103 / (download) - annotate - [select for diffs], Wed Nov 19 23:19:13 1997 UTC (25 years, 2 months ago) by pk
Branch: MAIN
Changes since 1.102: +4 -3 lines
Diff to previous 1.102 (colored)

The pgtalloc() stuff is still not doing the right thing on non-MXCC
vikings... i don't know why.  Install a work-around in setpgt4m(),
that is still lying about here.

Revision 1.91.2.6 / (download) - annotate - [select for diffs], Tue Oct 14 10:18:49 1997 UTC (25 years, 3 months ago) by thorpej
Branch: marc-pcmcia
Changes since 1.91.2.5: +37 -41 lines
Diff to previous 1.91.2.5 (colored) to branchpoint 1.91 (colored) next main 1.92 (colored)

Update marc-pcmcia branch from trunk.

Revision 1.102 / (download) - annotate - [select for diffs], Wed Oct 1 19:21:17 1997 UTC (25 years, 4 months ago) by pk
Branch: MAIN
CVS Tags: netbsd-1-3-base, marc-pcmcia-base
Branch point for: netbsd-1-3
Changes since 1.101: +15 -12 lines
Diff to previous 1.101 (colored)

Missing `#ifdef SUN4M' in pmap_release(); rearrange slightly to look
more natural.

Revision 1.91.2.5 / (download) - annotate - [select for diffs], Mon Sep 29 07:20:44 1997 UTC (25 years, 4 months ago) by thorpej
Branch: marc-pcmcia
Changes since 1.91.2.4: +164 -68 lines
Diff to previous 1.91.2.4 (colored) to branchpoint 1.91 (colored)

Update marc-pcmcia branch from trunk.

Revision 1.101 / (download) - annotate - [select for diffs], Sat Sep 27 17:58:03 1997 UTC (25 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.100: +23 -30 lines
Diff to previous 1.100 (colored)

* Optimize pmap_{zero,copy}_page4m() a bit by pre-computing the PTE addresses
  of the reserved KVAs (vpage[]) used by these routines. This avoids the
  context switching in there.

* In pmap_redzone(), remove the first kernel address (at KERNBASE) from
  the kernel maps instead of just turning off the PTE `valid' bits.
  The latter doesn't create a "red zone" at all, but causes the VM to
  allocate a new page if the red zone is touched.

Revision 1.100 / (download) - annotate - [select for diffs], Fri Sep 26 22:15:37 1997 UTC (25 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.99: +163 -67 lines
Diff to previous 1.99 (colored)

* Implement a private page table storage allocator for SRMMUs. It provides
  uncached (if needed) chunks of memory of the two sizes (256 and 1024
  bytes) that the SRMMU ever needs.

* Change pmap_changeprot4m() so that is does not rely setpte4m() because
  setpte4m() cannot be used for anything other than VAs that are in the
  pmap associated with the current context.
  In the same vain, make sure that kvm_uncache() switches to context 0.

Revision 1.99 / (download) - annotate - [select for diffs], Thu Sep 25 07:31:28 1997 UTC (25 years, 4 months ago) by fair
Branch: MAIN
Changes since 1.98: +2 -2 lines
Diff to previous 1.98 (colored)

Make the #ifdef expression prior to the declaration and use of
"nptesg" match each other, per PR#4024.

Revision 1.91.2.4 / (download) - annotate - [select for diffs], Mon Sep 22 06:32:37 1997 UTC (25 years, 4 months ago) by thorpej
Branch: marc-pcmcia
Changes since 1.91.2.3: +93 -51 lines
Diff to previous 1.91.2.3 (colored) to branchpoint 1.91 (colored)

Update marc-pcmcia branch from trunk.

Revision 1.98 / (download) - annotate - [select for diffs], Sat Sep 20 18:14:01 1997 UTC (25 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.97: +28 -14 lines
Diff to previous 1.97 (colored)

Change crash dump layout a bit so the size of the `cpu_kcore' structure
does not depend on the value of KERNBASE.

Change pmap_dumpsize() to return disk block units, in stead of pages.

Revision 1.97 / (download) - annotate - [select for diffs], Thu Sep 18 20:16:45 1997 UTC (25 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.96: +66 -38 lines
Diff to previous 1.96 (colored)

Fix a botch in reservemon4m() causing the `Alternate cacheability' not being
set on viking MXCC machines while using transparent memory access mode. This
becomes apparent when booting on multi-processor viking machines.

While I'm here, arrange to tempt fate a little less by using `AC' mode
for the shortest possible periods of time.

Special thanks to Matt Ragan for running my test kernels.

Revision 1.91.2.3 / (download) - annotate - [select for diffs], Tue Sep 16 03:49:19 1997 UTC (25 years, 4 months ago) by thorpej
Branch: marc-pcmcia
Changes since 1.91.2.2: +23 -22 lines
Diff to previous 1.91.2.2 (colored) to branchpoint 1.91 (colored)

Update marc-pcmcia branch from trunk.

Revision 1.96 / (download) - annotate - [select for diffs], Sun Sep 14 19:20:48 1997 UTC (25 years, 4 months ago) by pk
Branch: MAIN
Changes since 1.95: +23 -22 lines
Diff to previous 1.95 (colored)

Refer to KERNBASE instead of its current numerical value in comments
and some early debugging code.

Revision 1.91.2.2 / (download) - annotate - [select for diffs], Mon Sep 1 20:17:31 1997 UTC (25 years, 5 months ago) by thorpej
Branch: marc-pcmcia
Changes since 1.91.2.1: +6 -2 lines
Diff to previous 1.91.2.1 (colored) to branchpoint 1.91 (colored)

Update marc-pcmcia branch from trunk.

Revision 1.95 / (download) - annotate - [select for diffs], Sun Aug 31 21:08:03 1997 UTC (25 years, 5 months ago) by pk
Branch: MAIN
CVS Tags: thorpej-signal-base, thorpej-signal
Changes since 1.94: +6 -2 lines
Diff to previous 1.94 (colored)

pmap_writetext(): use context 0.

Revision 1.91.2.1 / (download) - annotate - [select for diffs], Sat Aug 23 07:12:14 1997 UTC (25 years, 5 months ago) by thorpej
Branch: marc-pcmcia
Changes since 1.91: +88 -16 lines
Diff to previous 1.91 (colored)

Update marc-pcmcia branch from trunk.

Revision 1.94 / (download) - annotate - [select for diffs], Tue Aug 5 11:06:58 1997 UTC (25 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.93: +5 -4 lines
Diff to previous 1.93 (colored)

Comment out body of pmap_copy() which got committed accidentally (btw. it
works, but its performance benefits are not immediately obvious).

Revision 1.93 / (download) - annotate - [select for diffs], Mon Aug 4 20:09:54 1997 UTC (25 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.92: +3 -5 lines
Diff to previous 1.92 (colored)

Don't flush the cache in setpte4m(). Most callers have flushed the page
already and some MMUs might require a valid mapping to exist for the
virtual address to be flushed.

Revision 1.92 / (download) - annotate - [select for diffs], Mon Aug 4 20:02:59 1997 UTC (25 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.91: +85 -12 lines
Diff to previous 1.91 (colored)

Move MMU dependent DDB goo into a pmap helper function.

Revision 1.91 / (download) - annotate - [select for diffs], Tue Jul 29 09:42:11 1997 UTC (25 years, 6 months ago) by fair
Branch: MAIN
CVS Tags: marc-pcmcia-bp
Branch point for: marc-pcmcia
Changes since 1.90: +34 -34 lines
Diff to previous 1.90 (colored)

%x -> 0x%x

Revision 1.90 / (download) - annotate - [select for diffs], Wed Jul 16 15:35:23 1997 UTC (25 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.89: +47 -12 lines
Diff to previous 1.89 (colored)

pmap_extract(): move printf()'s inside debugging brackets.  The caller
decides what to do upon finding an absent mapping.

Revision 1.89 / (download) - annotate - [select for diffs], Wed Jul 9 21:51:26 1997 UTC (25 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.88: +4 -3 lines
Diff to previous 1.88 (colored)

Use setpgt4m(), not bzero(), to initialize a pmap's first-level page table.

Fix a slightly misleading comment.

Revision 1.88 / (download) - annotate - [select for diffs], Tue Jul 8 20:02:47 1997 UTC (25 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.87: +45 -21 lines
Diff to previous 1.87 (colored)

Fix a pasto in kvm_uncache()  (sun4m)
Add TLB flushes when removing segments/regions.
Flush cache appropriately when cache-tag protection bits need invalidation.

Revision 1.87 / (download) - annotate - [select for diffs], Sun Jul 6 23:52:52 1997 UTC (25 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.86: +3 -2 lines
Diff to previous 1.86 (colored)

Adjust for generic lock changes.

Revision 1.86 / (download) - annotate - [select for diffs], Sun Jul 6 12:29:54 1997 UTC (25 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.85: +12 -8 lines
Diff to previous 1.85 (colored)

Slight optimization when pv_unlink'ing last entry (suggested by Eric Fair).
Use MR4() macro where appropriate.

Revision 1.85 / (download) - annotate - [select for diffs], Sun Jul 6 12:22:39 1997 UTC (25 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.84: +12 -12 lines
Diff to previous 1.84 (colored)

Use setpgt4m() in setptesw4m().

Revision 1.84 / (download) - annotate - [select for diffs], Thu Jun 12 21:02:43 1997 UTC (25 years, 7 months ago) by pk
Branch: MAIN
CVS Tags: bouyer-scsipi
Changes since 1.83: +62 -58 lines
Diff to previous 1.83 (colored)

Change `pv_va' entry to a `vm_offset_t' as suggested in PR#3703.
Also, re-arrange pmap_page_protect4_4c() like the 4m variant; add
a more detailed panic message.

Revision 1.83 / (download) - annotate - [select for diffs], Thu Jun 12 19:14:28 1997 UTC (25 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.82: +31 -27 lines
Diff to previous 1.82 (colored)

Erase kernel PTEs in pmap_page_protect4m(). This bug would leave spurious
entries in the kernel address space, eventually leading to panics in
pv_unlink().   This takes care of PRs 3575 & 3703.

Revision 1.82 / (download) - annotate - [select for diffs], Sat May 24 20:09:45 1997 UTC (25 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.81: +21 -19 lines
Diff to previous 1.81 (colored)

Use page type encoding macros from pmap.h

Revision 1.81 / (download) - annotate - [select for diffs], Thu May 15 19:19:49 1997 UTC (25 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.80: +30 -22 lines
Diff to previous 1.80 (colored)

Change some malloc -> MALLOC and free -> FREE
More accuracy in diag/panic messages (part of PR3602; Eric Fair).

Revision 1.80 / (download) - annotate - [select for diffs], Fri Apr 11 20:00:10 1997 UTC (25 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.79: +4 -4 lines
Diff to previous 1.79 (colored)

Avoid compiler warning.

Revision 1.79 / (download) - annotate - [select for diffs], Wed Apr 9 23:53:40 1997 UTC (25 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.78: +39 -51 lines
Diff to previous 1.78 (colored)

Since all kernel regions are pre-allocated, we can safely copy kernel
mappings to a user pmap when it's created rather than at context
allocation time.  Also, do not copy the kernel's region administration
to every user pmap, especially since no memory appears to be allocated
to copy it into.

As a result of this, we must now switch to context 0 in both pmap_copy_page()
and pmap_zero_page() (XXX).

Revision 1.78 / (download) - annotate - [select for diffs], Mon Mar 31 22:03:11 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.77: +7 -14 lines
Diff to previous 1.77 (colored)

Garbage-collect a few items.

Revision 1.77 / (download) - annotate - [select for diffs], Mon Mar 31 19:53:41 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.76: +114 -205 lines
Diff to previous 1.76 (colored)

Deal differently with physical memory gaps resulting from alignment
restrictions.

Revision 1.76 / (download) - annotate - [select for diffs], Tue Mar 25 23:04:02 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.75: +4 -2 lines
Diff to previous 1.75 (colored)

In pmap_remove(), check for an empty segment before calling one of the
helper functions. This cuts down the number of needless function calls
by approx. 80%, which has a healthy effect on the responsiveness of
a machine under heavy process creation/teardown loads.
The VM system seems to be fond of asking to delete page mappings
which aren't there..

Revision 1.75 / (download) - annotate - [select for diffs], Sat Mar 22 19:17:09 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.74: +2 -2 lines
Diff to previous 1.74 (colored)

For each major "module", define a separate set of MMU control register bits.

Revision 1.74 / (download) - annotate - [select for diffs], Fri Mar 21 16:29:34 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.73: +4 -4 lines
Diff to previous 1.73 (colored)

Thinko.

Revision 1.73 / (download) - annotate - [select for diffs], Fri Mar 21 15:19:29 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.72: +15 -13 lines
Diff to previous 1.72 (colored)

Use `setpgt4m()' in some more places.

Revision 1.72 / (download) - annotate - [select for diffs], Thu Mar 20 23:48:37 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.71: +231 -142 lines
Diff to previous 1.71 (colored)

Replace many setpte4m() calls with a simpler helper function because
the address of the desired PTE location is readily available in the
callers context (setpte4m() retraces the entire 3-level structure
to arrive at the PTE location).

Also, in many cases we can do away with the distinction between pmaps
that have or have not allocated a context. This is really only useful
in cases where we're interested in the REF or MOD bits which can differ
in the TLB version of a PTE.  By doing this, we avoid getpte()'s which
in many cases instruct the MMU to start a table walk only to find out
that there's nothing there after going 2/3 of the way, or waste a TLB
entry because of TLB flushing soon after getpte() completes.

In addition, there's a hook to flush the cache line corresponding to
the (kernel virtual) location of a PTE entry when it gets altered.

Revision 1.71 / (download) - annotate - [select for diffs], Sat Mar 15 20:24:09 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.70: +270 -414 lines
Diff to previous 1.70 (colored)

Simplify `4m' versions of pmapbootstrap() and mmu_reservemon():
allocate and initialize all kernel page tables before looking at the
PROM maps, which allows mmu_reservemon4m() to simply walk the PROM tables
without having to allocate bits and pieces of our own kernel tables.

Slightly optimize getcontext() macros in mutli-arch kernels.

Remove un-needed `4m' version of mmu_pagein().

Revision 1.70 / (download) - annotate - [select for diffs], Fri Mar 14 14:28:45 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.69: +29 -1 lines
Diff to previous 1.69 (colored)

Add some instrumentation to keep track of PMEG allocation.
Enabled #if DIAGNOSTIC.

Revision 1.67.6.1 / (download) - annotate - [select for diffs], Wed Mar 12 13:55:34 1997 UTC (25 years, 10 months ago) by is
Branch: is-newarp
Changes since 1.67: +337 -368 lines
Diff to previous 1.67 (colored) next main 1.68 (colored)

Merge in changes from The Trunk

Revision 1.69 / (download) - annotate - [select for diffs], Mon Mar 10 23:26:11 1997 UTC (25 years, 10 months ago) by pk
Branch: MAIN
CVS Tags: is-newarp-before-merge
Changes since 1.68: +326 -366 lines
Diff to previous 1.68 (colored)

Use many things from the newly defined `cpuinfo' structure:
	- vcache_flush_*() routines.
	- cpu_type/cpu_flags
	- per cpu context table and context administration glue.
	- different macros to enable sun4/3-level mmu support.

Simplify sun4m version of pmap_bootstrap() a bit; more to do still.

Move installation of page tables in MMU into a separate routine, in
anticipation for SMP.

Revision 1.68 / (download) - annotate - [select for diffs], Sat Feb 22 00:06:06 1997 UTC (25 years, 11 months ago) by abrown
Branch: MAIN
Changes since 1.67: +14 -5 lines
Diff to previous 1.67 (colored)

Fix bug in pmap_page_copy and pmap_page_zero that caused data corruption
when paging on Sun4m machines with SuperSPARC processors. Essentially,
the copy/zero operations were done via uncached memory accesses, which
bypassed the snooping logic of the write-back caches, causing stale data
to be copied or generated.
Pointed out by Chris Torek <torek@bsdi.com>

Revision 1.67 / (download) - annotate - [select for diffs], Sat Nov 9 23:08:56 1996 UTC (26 years, 2 months ago) by pk
Branch: MAIN
CVS Tags: thorpej-setroot, mrg-vm-swap, is-newarp-base
Branch point for: is-newarp
Changes since 1.66: +79 -60 lines
Diff to previous 1.66 (colored)

Adapt pmap_dumpsize() and pmap_dumpmmu() to new-style kernel crash
dumps according to the layout in <sys/kcore.h> and <machine/kcore.h>.

Revision 1.66 / (download) - annotate - [select for diffs], Sun Oct 13 03:00:42 1996 UTC (26 years, 3 months ago) by christos
Branch: MAIN
Changes since 1.65: +102 -102 lines
Diff to previous 1.65 (colored)

backout previous kprintf change

Revision 1.65 / (download) - annotate - [select for diffs], Fri Oct 11 00:47:31 1996 UTC (26 years, 3 months ago) by christos
Branch: MAIN
Changes since 1.64: +105 -103 lines
Diff to previous 1.64 (colored)

printf -> kprintf, sprintf -> ksprintf

Revision 1.60.4.1 / (download) - annotate - [select for diffs], Wed Jun 12 20:36:30 1996 UTC (26 years, 7 months ago) by pk
Branch: netbsd-1-2
CVS Tags: netbsd-1-2-RELEASE, netbsd-1-2-PATCH001, netbsd-1-2-BETA
Changes since 1.60: +87 -121 lines
Diff to previous 1.60 (colored) next main 1.61 (colored)

Pull down from trunk:
>rev 1.64: pmap_changeprot: truncate VA argument to page-boundary ...
>rev 1.63: Some slight optimizations
>rev 1.62: Fix two cases of handling stale page table information ... [sun4m]
>rev 1.61: mmu_pagein() is only useful on sun4/sun4c ...

Revision 1.64 / (download) - annotate - [select for diffs], Tue Jun 11 21:54:44 1996 UTC (26 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.63: +3 -1 lines
Diff to previous 1.63 (colored)

pmap_changeprot: truncate VA argument to page-boundary. Needed in case we
call cache_page_flush().

Revision 1.63 / (download) - annotate - [select for diffs], Thu May 30 00:02:09 1996 UTC (26 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.62: +13 -12 lines
Diff to previous 1.62 (colored)

Some slight optimizations.

Revision 1.62 / (download) - annotate - [select for diffs], Wed May 29 20:58:38 1996 UTC (26 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.61: +30 -24 lines
Diff to previous 1.61 (colored)

Fix two cases of handling stale page table information:
1. when reading the referenced/modified bits the TLB entry must be flushed
   before reading the in-core version.
2. when wrapping up an entire segment in pmap_page_protect(), flush the PTPs
   from the TLB to prevent a table-walking operation to pick up stale - or
   possibly bogus - PTEs.

(hopefully I'll get a few of my hairs back now..)

Revision 1.61 / (download) - annotate - [select for diffs], Mon May 27 01:12:34 1996 UTC (26 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.60: +44 -87 lines
Diff to previous 1.60 (colored)

mmu_pagein() is only useful on sun4/sun4c. For now, keep a `mmu_pagein4m()'
within `#ifdef DEBUG' for monitoring.

Push user windows to stack in pmap_extract() if we need to switch contexts.

Revision 1.60 / (download) - annotate - [select for diffs], Sun May 19 00:32:15 1996 UTC (26 years, 8 months ago) by pk
Branch: MAIN
CVS Tags: netbsd-1-2-base
Branch point for: netbsd-1-2
Changes since 1.59: +81 -85 lines
Diff to previous 1.59 (colored)

Remove obsolete HWTOSW/SWTOHW macros.
VA2PA: flush TLB before proceeding with L2 probe (per the manual) [4m].
More KNF.

Revision 1.59 / (download) - annotate - [select for diffs], Sat May 18 12:27:47 1996 UTC (26 years, 8 months ago) by mrg
Branch: MAIN
Changes since 1.58: +1 -3 lines
Diff to previous 1.58 (colored)

put promdev definition into <machine/bsd_openprom.h>.

Revision 1.58 / (download) - annotate - [select for diffs], Thu May 16 19:19:33 1996 UTC (26 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.57: +67 -126 lines
Diff to previous 1.57 (colored)

Replace a couple of (*foo_p)()'s with direct calls. All instances occurred
within in functions that were already mmu-arch specific.

Some formatting nits.

Revision 1.57 / (download) - annotate - [select for diffs], Thu May 16 14:30:54 1996 UTC (26 years, 8 months ago) by abrown
Branch: MAIN
Changes since 1.56: +11 -3 lines
Diff to previous 1.56 (colored)

Implement a hack to give pmap a better chance of working on SS10's with
no external L2 cache.
XXX this is ugly and will go away when cpu_softc gets done for the 1.3 release

Also, copyright police (s/Harvard University/Harvard College/).

Revision 1.56 / (download) - annotate - [select for diffs], Mon Apr 1 21:09:39 1996 UTC (26 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.55: +4 -2 lines
Diff to previous 1.55 (colored)

Late-breaking patch from Aaron.

Revision 1.55 / (download) - annotate - [select for diffs], Sun Mar 31 22:42:59 1996 UTC (26 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.54: +3445 -405 lines
Diff to previous 1.54 (colored)

Aaron's SRMMU/sun4m pmap implementation.

Note: multi-architecture kernels use function pointers for several PMAP
entry points.

Cut down the `#if defined(SUN4*)' mess severely by using CPU_ISSUN4*
macros (see machine/param.h) wherever possible.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Mar 16 23:31:45 1996 UTC (26 years, 10 months ago) by christos
Branch: MAIN
Changes since 1.53: +16 -15 lines
Diff to previous 1.53 (colored)

fix printf format strings

Revision 1.53 / (download) - annotate - [select for diffs], Thu Mar 14 21:09:23 1996 UTC (26 years, 10 months ago) by christos
Branch: MAIN
Changes since 1.52: +63 -34 lines
Diff to previous 1.52 (colored)

Add prototypes and fix bugs:
    - softclock was called with extra argument.
    - missing %x formats in printf's
    - kgdb_copy called with only two arguments.

Fix conf.c so that it used the _conf.h files from other places instead of
rolling its own.

Revision 1.52 / (download) - annotate - [select for diffs], Thu Feb 29 22:15:13 1996 UTC (26 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.51: +11 -7 lines
Diff to previous 1.51 (colored)

Fix typo, and bring back VA hole handling.

Revision 1.51 / (download) - annotate - [select for diffs], Wed Feb 28 22:44:42 1996 UTC (26 years, 11 months ago) by gwr
Branch: MAIN
Changes since 1.50: +13 -39 lines
Diff to previous 1.50 (colored)

update PMAP_PREFER

Revision 1.50 / (download) - annotate - [select for diffs], Mon Feb 12 21:15:37 1996 UTC (26 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.49: +2 -2 lines
Diff to previous 1.49 (colored)

make pmap_page_index return int instead of u_long

Revision 1.49 / (download) - annotate - [select for diffs], Mon Dec 11 01:27:28 1995 UTC (27 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.48: +25 -21 lines
Diff to previous 1.48 (colored)

Prevent possible race condition in ctx_alloc().
Remove some bogus casts.

Revision 1.48 / (download) - annotate - [select for diffs], Tue Dec 5 23:01:39 1995 UTC (27 years, 2 months ago) by pk
Branch: MAIN
Changes since 1.47: +17 -9 lines
Diff to previous 1.47 (colored)

Make pmap_prefer() also return a preferred virtual address when there's no
associated physical page.

Revision 1.47 / (download) - annotate - [select for diffs], Wed Jul 5 18:52:32 1995 UTC (27 years, 7 months ago) by pk
Branch: MAIN
CVS Tags: netbsd-1-1-base, netbsd-1-1-RELEASE, netbsd-1-1-PATCH001, netbsd-1-1
Changes since 1.46: +1 -202 lines
Diff to previous 1.46 (colored)

Commit to MACHINE_NONCONTIG.

Revision 1.46 / (download) - annotate - [select for diffs], Wed Jul 5 16:35:42 1995 UTC (27 years, 7 months ago) by pk
Branch: MAIN
Changes since 1.45: +125 -1 lines
Diff to previous 1.45 (colored)

Move dumpmmu() over here.

Revision 1.45 / (download) - annotate - [select for diffs], Mon May 8 17:56:49 1995 UTC (27 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.44: +34 -8 lines
Diff to previous 1.44 (colored)

Refuse to map addresses in a MMU hole; the process will get a SEGV.
Changed mmu_pagein() interface.
Small nit in mmu_entry.

Revision 1.44 / (download) - annotate - [select for diffs], Wed Apr 19 20:59:29 1995 UTC (27 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.43: +3 -2 lines
Diff to previous 1.43 (colored)

Avoid dereffing a fuzzy NULL-pointer.

Revision 1.43 / (download) - annotate - [select for diffs], Thu Apr 13 14:38:11 1995 UTC (27 years, 9 months ago) by pk
Branch: MAIN
Changes since 1.42: +1171 -352 lines
Diff to previous 1.42 (colored)

3-level MMU changes:
	- maintain software MMU state in 3-tuples <region,segment,pagemap>
	  for all types of MMU.
	- maintain hardware region maps (in `region' alternate address space)
	  for machines that have them (identified by variable `mmu_3l').
Use <sys/queue.h> for most lists.

Revision 1.42 / (download) - annotate - [select for diffs], Mon Apr 10 12:42:26 1995 UTC (27 years, 9 months ago) by mycroft
Branch: MAIN
Changes since 1.41: +18 -32 lines
Diff to previous 1.41 (colored)

Bring back pmap_kernel(), for now always inlined as a pointer to
kernel_pmap_store.

Revision 1.41 / (download) - annotate - [select for diffs], Mon Apr 10 11:57:17 1995 UTC (27 years, 9 months ago) by mycroft
Branch: MAIN
Changes since 1.40: +3 -4 lines
Diff to previous 1.40 (colored)

vmempage --> vmmap, and remove incorrect comment.

Revision 1.40 / (download) - annotate - [select for diffs], Sun Mar 12 18:56:57 1995 UTC (27 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.39: +11 -1 lines
Diff to previous 1.39 (colored)

Add a pmap_pa_exists() in the non MACHINE_NONCONTIG case too.

Revision 1.39 / (download) - annotate - [select for diffs], Fri Mar 10 16:54:40 1995 UTC (27 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.38: +24 -1 lines
Diff to previous 1.38 (colored)

Missing #ifdef MACHINE_NONCONTIG.
Add function pmap_pa_exists() to assist /dev/mem.

Revision 1.38 / (download) - annotate - [select for diffs], Thu Feb 23 20:00:57 1995 UTC (27 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.37: +52 -69 lines
Diff to previous 1.37 (colored)

Clean NONCONTIG stuff, allocate and map pv_table[] in pmap_init() entirely.

Revision 1.37 / (download) - annotate - [select for diffs], Wed Feb 22 21:06:22 1995 UTC (27 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.36: +59 -33 lines
Diff to previous 1.36 (colored)

More on MACHINE_NONCONTIG: gain back wasted pages (and make it work).
Still more GC required.

Revision 1.36 / (download) - annotate - [select for diffs], Fri Feb 17 20:37:13 1995 UTC (27 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.35: +97 -31 lines
Diff to previous 1.35 (colored)

More work on MACHINE_NONCONTIG stuff.

Revision 1.35 / (download) - annotate - [select for diffs], Fri Feb 17 20:33:15 1995 UTC (27 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.34: +15 -32 lines
Diff to previous 1.34 (colored)

More PG_TYPE checks/optimizations suggested by Theo.

Revision 1.34 / (download) - annotate - [select for diffs], Fri Feb 10 20:40:47 1995 UTC (27 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.33: +43 -44 lines
Diff to previous 1.33 (colored)

More fixes from Chuck for IO pages related bugs that surfaced with the 4/110.
Also, pay attention to PMAP_TNC bits that can enter from the VM. These
come from the `device' pager, ie. pages associated with mmap()ed devices.

Revision 1.33 / (download) - annotate - [select for diffs], Thu Feb 9 14:38:54 1995 UTC (27 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.32: +3 -3 lines
Diff to previous 1.32 (colored)

Fix two typos.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Feb 9 10:28:32 1995 UTC (27 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.31: +3 -5 lines
Diff to previous 1.31 (colored)

Two more VAC_NONE checks.

Revision 1.31 / (download) - annotate - [select for diffs], Wed Feb 1 12:37:55 1995 UTC (28 years ago) by pk
Branch: MAIN
Changes since 1.30: +62 -54 lines
Diff to previous 1.30 (colored)

Integrate changes from Chuck Cranor for the Sun 4/100.
Support for multiple register banks on SBUS devices (based on patches
from Francis Dupont).
Highlights:
	romaux defines an array of register spaces.
	pay attention to `vactype'.
	quirks handling 4/100 idiosyncracies.

Revision 1.30 / (download) - annotate - [select for diffs], Thu Jan 12 07:31:47 1995 UTC (28 years ago) by pk
Branch: MAIN
Changes since 1.29: +7 -8 lines
Diff to previous 1.29 (colored)

Remove a debug messsage & add a missing constant.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Jan 11 21:21:14 1995 UTC (28 years ago) by pk
Branch: MAIN
Changes since 1.28: +168 -11 lines
Diff to previous 1.28 (colored)

Use `MACHINE_NONCONTIG' to deal with sparse memory in stead of private
mapping tables. We gain some pages, but there's still some wastage.
For the moment, `MACHINE_NONCONTIG' is still optional.

Revision 1.28 / (download) - annotate - [select for diffs], Tue Jan 10 16:50:50 1995 UTC (28 years ago) by pk
Branch: MAIN
Changes since 1.27: +2 -2 lines
Diff to previous 1.27 (colored)

Count pages correctly in pmap_bootstrap().

Revision 1.27 / (download) - annotate - [select for diffs], Mon Jan 9 11:22:09 1995 UTC (28 years ago) by mycroft
Branch: MAIN
Changes since 1.26: +1 -7 lines
Diff to previous 1.26 (colored)

Validate /dev/mem addresses again.

Revision 1.26 / (download) - annotate - [select for diffs], Mon Jan 9 08:58:34 1995 UTC (28 years ago) by mycroft
Branch: MAIN
Changes since 1.25: +1 -32 lines
Diff to previous 1.25 (colored)

Reimplement /dev/mem like other ports.  Change physlock to be a plain integer.
Keep the zero page after using it.

Revision 1.25 / (download) - annotate - [select for diffs], Wed Dec 14 06:59:20 1994 UTC (28 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.24: +5 -6 lines
Diff to previous 1.24 (colored)

make BADALIAS() and CACHE_ALIAS_DIST sun4-safe

Revision 1.24 / (download) - annotate - [select for diffs], Sat Dec 10 11:43:56 1994 UTC (28 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.23: +36 -1 lines
Diff to previous 1.23 (colored)

Introduce pmap_prefer() which is used to obtain a cache-friendly virtual
address.

Revision 1.23 / (download) - annotate - [select for diffs], Tue Dec 6 08:34:12 1994 UTC (28 years, 2 months ago) by deraadt
Branch: MAIN
Changes since 1.22: +8 -7 lines
Diff to previous 1.22 (colored)

place message buffer in low physical memory, so that it can survive a
warm boot. the sun4 boot program corrupts some memory there so adjust
upwards on the sun4. (from chuck)

Revision 1.22 / (download) - annotate - [select for diffs], Sun Nov 20 20:54:35 1994 UTC (28 years, 2 months ago) by deraadt
Branch: MAIN
Changes since 1.21: +3 -4 lines
Diff to previous 1.21 (colored)

copyright/Id cleanup

Revision 1.21 / (download) - annotate - [select for diffs], Mon Nov 14 06:09:30 1994 UTC (28 years, 2 months ago) by deraadt
Branch: MAIN
Changes since 1.20: +18 -7 lines
Diff to previous 1.20 (colored)

fixed rss code by charles

Revision 1.20 / (download) - annotate - [select for diffs], Wed Nov 2 23:18:25 1994 UTC (28 years, 3 months ago) by deraadt
Branch: MAIN
Changes since 1.19: +9 -63 lines
Diff to previous 1.19 (colored)

kill perftest code

Revision 1.13.2.2 / (download) - annotate - [select for diffs], Mon Oct 24 04:22:06 1994 UTC (28 years, 3 months ago) by deraadt
Branch: netbsd-1-0
CVS Tags: netbsd-1-0-RELEASE, netbsd-1-0-PATCH1, netbsd-1-0-PATCH06, netbsd-1-0-PATCH05, netbsd-1-0-PATCH04, netbsd-1-0-PATCH03, netbsd-1-0-PATCH02, netbsd-1-0-PATCH0
Changes since 1.13.2.1: +2 -3 lines
Diff to previous 1.13.2.1 (colored) to branchpoint 1.13 (colored) next main 1.14 (colored)

make the release run more than 10 minutes

Revision 1.19 / (download) - annotate - [select for diffs], Sun Oct 2 22:00:55 1994 UTC (28 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.18: +16 -12 lines
Diff to previous 1.18 (colored)

sun4/300 support works

Revision 1.18 / (download) - annotate - [select for diffs], Sat Aug 20 09:16:11 1994 UTC (28 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.17: +43 -20 lines
Diff to previous 1.17 (colored)

sun4/sun4c getsegmap/setsegmap are different
use << PGSHIFT instead of * NBPG, because NBPG isn't a constant in some cases
for sun4+sun4c case, calculate nptesg early

Revision 1.13.2.1 / (download) - annotate - [select for diffs], Thu Aug 11 22:38:53 1994 UTC (28 years, 5 months ago) by mycroft
Branch: netbsd-1-0
Changes since 1.13: +20 -30 lines
Diff to previous 1.13 (colored)

update from trunk

Revision 1.17 / (download) - annotate - [select for diffs], Tue Aug 9 19:55:09 1994 UTC (28 years, 5 months ago) by deraadt
Branch: MAIN
Changes since 1.16: +2 -2 lines
Diff to previous 1.16 (colored)

tiny error

Revision 1.16 / (download) - annotate - [select for diffs], Mon Aug 8 20:52:29 1994 UTC (28 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.15: +4 -3 lines
Diff to previous 1.15 (colored)

Only use `doflush' when `perftest' is #defined, as was probably intended.

Revision 1.15 / (download) - annotate - [select for diffs], Sat Aug 6 22:08:49 1994 UTC (28 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.14: +16 -1 lines
Diff to previous 1.14 (colored)

maintain resident_count and wired_count

Revision 1.14 / (download) - annotate - [select for diffs], Wed Jul 13 07:52:01 1994 UTC (28 years, 6 months ago) by pk
Branch: MAIN
Changes since 1.13: +1 -27 lines
Diff to previous 1.13 (colored)

Remove debugging code.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Jun 10 14:33:11 1994 UTC (28 years, 7 months ago) by pk
Branch: MAIN
CVS Tags: netbsd-1-0-base
Branch point for: netbsd-1-0
Changes since 1.12: +129 -19 lines
Diff to previous 1.12 (colored)

Allocate pmap's segmap separately.
Keep some tags on segment boundaries to optimise ctx_alloc().

Revision 1.12 / (download) - annotate - [select for diffs], Tue May 31 10:20:59 1994 UTC (28 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.11: +3 -3 lines
Diff to previous 1.11 (colored)

Move misplaced `#ifdef DEBUG'.

Revision 1.11 / (download) - annotate - [select for diffs], Mon May 30 20:03:57 1994 UTC (28 years, 8 months ago) by pk
Branch: MAIN
Changes since 1.10: +13 -3 lines
Diff to previous 1.10 (colored)

Restore context before leaving in pmap_protect() & pmap_changeprot().

Revision 1.10 / (download) - annotate - [select for diffs], Thu May 19 07:13:06 1994 UTC (28 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9 (colored)

catchup to 4.4-lite and delete some debug stuff

Revision 1.9 / (download) - annotate - [select for diffs], Thu May 5 05:58:27 1994 UTC (28 years, 9 months ago) by deraadt
Branch: MAIN
Changes since 1.8: +4 -4 lines
Diff to previous 1.8 (colored)

use SUN4C, not sun4c, throughout

Revision 1.8 / (download) - annotate - [select for diffs], Sun Mar 20 09:11:54 1994 UTC (28 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.7: +5 -1 lines
Diff to previous 1.7 (colored)

add comment that was lost on last commit

Revision 1.7 / (download) - annotate - [select for diffs], Sun Mar 20 08:58:41 1994 UTC (28 years, 10 months ago) by pk
Branch: MAIN
Changes since 1.6: +13 -5 lines
Diff to previous 1.6 (colored)

DDB support

Revision 1.6 / (download) - annotate - [select for diffs], Thu Mar 3 16:14:57 1994 UTC (28 years, 11 months ago) by pk
Branch: MAIN
Changes since 1.5: +2 -2 lines
Diff to previous 1.5 (colored)

undo last change; bug was already fixed

Revision 1.5 / (download) - annotate - [select for diffs], Thu Mar 3 12:23:00 1994 UTC (28 years, 11 months ago) by deraadt
Branch: MAIN
Changes since 1.4: +6 -2 lines
Diff to previous 1.4 (colored)

bug fix torek sent me ages ago

Revision 1.4 / (download) - annotate - [select for diffs], Fri Feb 4 16:26:25 1994 UTC (29 years ago) by pk
Branch: MAIN
Changes since 1.3: +2 -2 lines
Diff to previous 1.3 (colored)

Bogus argument to `lda' instr. Apparently only tickled when ptracing.

Revision 1.3 / (download) - annotate - [select for diffs], Thu Feb 3 15:08:43 1994 UTC (29 years ago) by deraadt
Branch: MAIN
Changes since 1.2: +5 -1 lines
Diff to previous 1.2 (colored)

PG_NC workaround from torek

Revision 1.2 / (download) - annotate - [select for diffs], Mon Oct 11 02:16:24 1993 UTC (29 years, 3 months ago) by deraadt
Branch: MAIN
CVS Tags: sparc-magnum
Changes since 1.1: +62 -7 lines
Diff to previous 1.1 (colored)

pmap.c, machdep.c, autoconf.c, cpu.c, intr.c, : net-posted patches from Torek
autoconf.c: mountroot kludges that need fixing later
clock.c: two volatile decls
conf.c: stategy()'s return void, *tty[] not tty[], __P()'d xxdump() calls,
	add mem_no, *constty[] not &cons.
genassym.c, machdep.c: sys/vmmeter.h needed
intr.c: make kernel writable temporarily in intr_fasttrap()
intr.c: do not use NETISR_ARP
locore.s: icode maps at 0 so do not relocate, don't define __main here.
machdep.c: don't have sysctl.h (yet), use vm_page_free_count for freemem,
	setregs() sets pc/npc/stack, note: signal delivery code needs
	fixing, add various other NetBSD function stubs.
pmap.c: do kernel_pmap/kernel_pmap_store the old way, delete
	vm_page_startup_initialized weirdness.
swapgeneric.c: everything about mountroot needs fixing, help.
trap.c: sunsys -> sun_sysent, etc.
vm_machdep.c: don't use cpu_coredump() for now.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Oct 2 10:24:26 1993 UTC (29 years, 4 months ago) by deraadt
Branch: MAIN

Chris Torek's sparc port. Missing lots of things.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>