The NetBSD Project

CVS log for src/sys/arch/arm/arm32/pmap.c

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.437.4.3 / (download) - annotate - [select for diffs], Thu Dec 14 17:43:10 2023 UTC (2 months, 1 week ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2
Changes since 1.437.4.2: +3 -3 lines
Diff to previous 1.437.4.2 (colored) to branchpoint 1.437 (colored) next main 1.438 (colored)

Pull up following revision(s) (requested by rin in ticket #495):

	sys/arch/arm/arm/smccc.c: revision 1.4
	sys/arch/arm/arm32/pmap.c: revision 1.441

smccc: Adjust SMCCC_ARCH_ATTRIBUTE for clang/arm
Conditionally use
(1) __attribute__ ((target("arch=armv7ve")))
(2) __attribute__ ((target("armv7ve")))
for gcc and clang, respectively.

While gcc does not accept (2), clang accepts (1) but silently ignores it :(

arm: pmap: Fix clang build without DIAGNOSTIC

Revision 1.441 / (download) - annotate - [select for diffs], Wed Dec 13 06:42:40 2023 UTC (2 months, 1 week ago) by rin
Branch: MAIN
CVS Tags: HEAD
Changes since 1.440: +3 -3 lines
Diff to previous 1.440 (colored)

arm: pmap: Fix clang build without DIAGNOSTIC

Revision 1.437.4.2 / (download) - annotate - [select for diffs], Sat Oct 14 06:52:17 2023 UTC (4 months, 1 week ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC1
Changes since 1.437.4.1: +2 -4 lines
Diff to previous 1.437.4.1 (colored) to branchpoint 1.437 (colored)

Pull up following revision(s) (requested by skrll in ticket #411):

	sys/arch/evbarm/nslu2/nslu2_machdep.c: revision 1.41
	sys/arch/evbarm/gumstix/gumstix_machdep.c: revision 1.75
	sys/arch/evbarm/iq80321/iq80321_machdep.c: revision 1.66
	sys/arch/iyonix/iyonix/iyonix_machdep.c: revision 1.34
	sys/arch/zaurus/zaurus/machdep.c: revision 1.52
	sys/arch/evbarm/g42xxeb/g42xxeb_machdep.c: revision 1.41
	sys/arch/hpcarm/hpcarm/pxa2x0_hpc_machdep.c: revision 1.33
	sys/arch/evbarm/iq80310/iq80310_machdep.c: revision 1.96
	sys/arch/evbarm/adi_brh/brh_machdep.c: revision 1.53
	sys/arch/arm/include/arm32/pmap.h: revision 1.177
	sys/arch/evbarm/viper/viper_machdep.c: revision 1.34
	sys/arch/evbarm/iyonix/iyonix_machdep.c: revision 1.5
	sys/arch/evbarm/npwr_fc/npwr_fc_machdep.c: revision 1.30
	sys/arch/evbarm/hdl_g/hdlg_machdep.c: revision 1.35
	sys/arch/arm/arm32/pmap.c: revision 1.440
	sys/arch/evbarm/lubbock/lubbock_machdep.c: revision 1.45
	sys/arch/evbarm/ixdp425/ixdp425_machdep.c: revision 1.47

Fix non-DIAGNOSTIC builds

Revision 1.440 / (download) - annotate - [select for diffs], Thu Oct 12 11:33:37 2023 UTC (4 months, 1 week ago) by skrll
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Changes since 1.439: +2 -4 lines
Diff to previous 1.439 (colored)

Fix non-DIAGNOSTIC builds

Revision 1.439 / (download) - annotate - [select for diffs], Thu Apr 20 08:28:03 2023 UTC (10 months ago) by skrll
Branch: MAIN
Changes since 1.438: +18 -78 lines
Diff to previous 1.438 (colored)

Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}

Revision 1.437.4.1 / (download) - annotate - [select for diffs], Mon Dec 19 11:44:29 2022 UTC (14 months ago) by martin
Branch: netbsd-10
Changes since 1.437: +3 -3 lines
Diff to previous 1.437 (colored)

Pull up following revision(s) (requested by skrll in ticket #4):

	sys/arch/arm/arm32/pmap.c: revision 1.438
	sys/arch/arm/arm/efi_machdep.c: revision 1.3

Appease KDASSERT / LOCKDEBUG.

Tested by mlelstv.

Revision 1.438 / (download) - annotate - [select for diffs], Sun Dec 18 12:02:47 2022 UTC (14 months ago) by skrll
Branch: MAIN
Changes since 1.437: +3 -3 lines
Diff to previous 1.437 (colored)

Appease KDASSERT / LOCKDEBUG.

Tested by mlelstv.

Revision 1.437 / (download) - annotate - [select for diffs], Tue May 3 20:12:28 2022 UTC (21 months, 3 weeks ago) by skrll
Branch: MAIN
CVS Tags: netbsd-10-base, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Branch point for: netbsd-10
Changes since 1.436: +13 -7 lines
Diff to previous 1.436 (colored)

Catch up with aarch64 TTBR0 handling in pmap_{,de}activate_efirt and
kpreempt_{en,dis}able.

Revision 1.436 / (download) - annotate - [select for diffs], Sat Apr 9 23:38:31 2022 UTC (22 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.435: +4 -4 lines
Diff to previous 1.435 (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.435 / (download) - annotate - [select for diffs], Sat Apr 2 11:16:07 2022 UTC (22 months, 3 weeks ago) by skrll
Branch: MAIN
Changes since 1.434: +141 -3 lines
Diff to previous 1.434 (colored)

Update to support EFI runtime outside the kernel virtual address space
by creating an EFI RT pmap that can be activated / deactivated when
required.

Adds support for EFI RT to ARM_MMU_EXTENDED (ASID) 32-bit Arm machines.

On Arm64 the usage of pmapboot_enter is reduced and the mappings are
created much later in the boot process -- now in cpu_startup_hook.
Backward compatiblity for KVA mapped RT from old bootaa64.efi is
maintained.

Adding support to other platforms should be easier as a result.

Revision 1.434 / (download) - annotate - [select for diffs], Sat Mar 19 09:54:25 2022 UTC (23 months ago) by skrll
Branch: MAIN
Changes since 1.433: +4 -4 lines
Diff to previous 1.433 (colored)

Alight code re-organisation so it better matches the VPRINTF headings
it is under. NFCI.

Revision 1.433 / (download) - annotate - [select for diffs], Sat Mar 12 15:32:31 2022 UTC (23 months, 1 week ago) by riastradh
Branch: MAIN
Changes since 1.432: +4 -2 lines
Diff to previous 1.432 (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.432 / (download) - annotate - [select for diffs], Sun Jan 2 11:20:03 2022 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.431: +3 -5 lines
Diff to previous 1.431 (colored)

arm: Remove #ifdef DIAGNOSTIC now wrong after KASSERT change.

Objects in question aren't volatile here so access is flushable.

Revision 1.431 / (download) - annotate - [select for diffs], Sat Jan 1 15:09:01 2022 UTC (2 years, 1 month ago) by christos
Branch: MAIN
Changes since 1.430: +2 -4 lines
Diff to previous 1.430 (colored)

KASSERT now always uses the expression, so don't protect with DIAGNOSTIC

Revision 1.430 / (download) - annotate - [select for diffs], Thu Aug 26 08:56:21 2021 UTC (2 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.429: +3 -3 lines
Diff to previous 1.429 (colored)

Improve a comment

Revision 1.429 / (download) - annotate - [select for diffs], Tue Aug 24 07:32:31 2021 UTC (2 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.428: +3 -3 lines
Diff to previous 1.428 (colored)

Remove '\n' from UVMHIST format

Revision 1.422.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:16 2021 UTC (2 years, 10 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.422: +48 -6 lines
Diff to previous 1.422 (colored) next main 1.423 (colored)

Sync with HEAD.

Revision 1.426.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 21:44:40 2021 UTC (2 years, 10 months ago) by thorpej
Branch: thorpej-cfargs
Changes since 1.426: +6 -2 lines
Diff to previous 1.426 (colored) next main 1.427 (colored)

Sync with HEAD.

Revision 1.428 / (download) - annotate - [select for diffs], Tue Mar 23 10:21:49 2021 UTC (2 years, 11 months ago) by skrll
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, 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, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Changes since 1.427: +4 -2 lines
Diff to previous 1.427 (colored)

Another missing kpreempt_enable

Revision 1.427 / (download) - annotate - [select for diffs], Tue Mar 23 06:35:24 2021 UTC (2 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.426: +4 -2 lines
Diff to previous 1.426 (colored)

Re-enable kpreemption in an error path.  Spotted by nat@

Revision 1.426 / (download) - annotate - [select for diffs], Sun Mar 14 10:36:46 2021 UTC (2 years, 11 months ago) by skrll
Branch: MAIN
Branch point for: thorpej-cfargs
Changes since 1.425: +35 -3 lines
Diff to previous 1.425 (colored)

Sprinkle kpreempt_{dis,en}able ready for when preemption gets turned on.

Revision 1.425 / (download) - annotate - [select for diffs], Mon Feb 1 19:02:28 2021 UTC (3 years ago) by skrll
Branch: MAIN
Changes since 1.424: +3 -3 lines
Diff to previous 1.424 (colored)

"as appropos" -> "as appropriate" in comments

Revision 1.424 / (download) - annotate - [select for diffs], Fri Jan 29 07:00:28 2021 UTC (3 years ago) by skrll
Branch: MAIN
Changes since 1.423: +6 -4 lines
Diff to previous 1.423 (colored)

More debug

Revision 1.423 / (download) - annotate - [select for diffs], Sun Jan 24 14:51:01 2021 UTC (3 years ago) by skrll
Branch: MAIN
Changes since 1.422: +6 -2 lines
Diff to previous 1.422 (colored)

More debug

Revision 1.422 / (download) - annotate - [select for diffs], Fri Oct 30 18:54:36 2020 UTC (3 years, 3 months ago) by skrll
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.421: +8 -8 lines
Diff to previous 1.421 (colored)

Retire arm_[di]sb in favour of the isb() and dsb(sy) macro invocations.

Revision 1.421 / (download) - annotate - [select for diffs], Wed Aug 12 18:30:46 2020 UTC (3 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.420: +3 -3 lines
Diff to previous 1.420 (colored)

Whack-a-mole

Revision 1.420 / (download) - annotate - [select for diffs], Tue Aug 11 07:03:33 2020 UTC (3 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.419: +5 -5 lines
Diff to previous 1.419 (colored)

s/pmaphist/maphist/

Revision 1.419 / (download) - annotate - [select for diffs], Mon Aug 10 05:40:21 2020 UTC (3 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.418: +11 -2 lines
Diff to previous 1.418 (colored)

More UVMHIST_LOG and a new KASSERT

Revision 1.418 / (download) - annotate - [select for diffs], Mon Aug 10 05:38:43 2020 UTC (3 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.417: +3 -3 lines
Diff to previous 1.417 (colored)

In pmag_page_remove initilise pvp after taking the page lock

Revision 1.417 / (download) - annotate - [select for diffs], Fri Jul 10 12:25:09 2020 UTC (3 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.416: +9 -3 lines
Diff to previous 1.416 (colored)

Add support for KASAN on ARMv[67]

Thanks to maxv for many pointers and reviews.

Revision 1.416 / (download) - annotate - [select for diffs], Fri Jul 3 17:14:23 2020 UTC (3 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.415: +5 -3 lines
Diff to previous 1.415 (colored)

1 page is enough for memhook now since the merge of the rmind-uvmplock
branch and the removal of sys/arch/arm/arm32/mem.c

The last users of memhook don't care about number of CPUs or page colours.

Revision 1.415 / (download) - annotate - [select for diffs], Sun Jun 21 07:14:15 2020 UTC (3 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.414: +4 -4 lines
Diff to previous 1.414 (colored)

Use howmany().  NFCI.

Revision 1.414 / (download) - annotate - [select for diffs], Wed May 27 06:43:22 2020 UTC (3 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.413: +4 -3 lines
Diff to previous 1.413 (colored)

KNF

Revision 1.413 / (download) - annotate - [select for diffs], Wed May 27 06:41:58 2020 UTC (3 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.412: +2 -3 lines
Diff to previous 1.412 (colored)

Remove duplicate #include

Revision 1.402.2.2 / (download) - annotate - [select for diffs], Sat Apr 25 11:23:55 2020 UTC (3 years, 9 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.402.2.1: +2 -10 lines
Diff to previous 1.402.2.1 (colored) to branchpoint 1.402 (colored) next main 1.403 (colored)

Sync with bouyer-xenpvh-base2 (HEAD)

Revision 1.365.2.4 / (download) - annotate - [select for diffs], Tue Apr 21 18:42:03 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.365.2.3: +156 -172 lines
Diff to previous 1.365.2.3 (colored) to branchpoint 1.365 (colored) next main 1.366 (colored)

Sync with HEAD

Revision 1.412 / (download) - annotate - [select for diffs], Tue Apr 21 06:45:16 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
CVS Tags: phil-wifi-20200421, bouyer-xenpvh-base2
Changes since 1.411: +2 -10 lines
Diff to previous 1.411 (colored)

There is no fast spoon^Wfast path in pmap_clearbit.

PR port-arm/55186: tests crash arm pmap

Tested by martin@

Revision 1.402.2.1 / (download) - annotate - [select for diffs], Mon Apr 20 11:28:52 2020 UTC (3 years, 10 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.402: +165 -173 lines
Diff to previous 1.402 (colored)

Sync with HEAD

Revision 1.411 / (download) - annotate - [select for diffs], Sun Apr 19 21:24:36 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
CVS Tags: bouyer-xenpvh-base1
Changes since 1.410: +3 -3 lines
Diff to previous 1.410 (colored)

PR port-arm/55186: tests crash arm pmap

pmap_clearbit(): take execbits into account in the fastpath.

Revision 1.410 / (download) - annotate - [select for diffs], Sun Apr 19 19:36:49 2020 UTC (3 years, 10 months ago) by kre
Branch: MAIN
Changes since 1.409: +4 -4 lines
Diff to previous 1.409 (colored)


Give UVMHIST_LOG() the 6 args it requires.   Unbreak builds.

Revision 1.409 / (download) - annotate - [select for diffs], Sun Apr 19 08:50:54 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.408: +3 -3 lines
Diff to previous 1.408 (colored)

Fix typo in UVMHIST_LOG

Revision 1.408 / (download) - annotate - [select for diffs], Sat Apr 18 10:46:32 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.407: +61 -106 lines
Diff to previous 1.407 (colored)

Remove PMAP_DEBUG by converting to UVMHIST

Revision 1.407 / (download) - annotate - [select for diffs], Fri Apr 17 11:21:06 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.406: +3 -3 lines
Diff to previous 1.406 (colored)

Fix build after PV locking change

Revision 1.406 / (download) - annotate - [select for diffs], Fri Apr 17 08:17:06 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.405: +33 -36 lines
Diff to previous 1.405 (colored)

Use UVMHIST_CALLARGS

Revision 1.405 / (download) - annotate - [select for diffs], Thu Apr 16 21:20:43 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.404: +72 -32 lines
Diff to previous 1.404 (colored)

With the right timing, V->P operations could change stuff behind the back of
callers working in the opposite direction - fix it.  Tested by skrll@.

Revision 1.404 / (download) - annotate - [select for diffs], Tue Apr 14 07:31:52 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.403: +3 -3 lines
Diff to previous 1.403 (colored)

Fix a comment.  From ad@

Revision 1.365.2.3 / (download) - annotate - [select for diffs], Mon Apr 13 08:03:32 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.365.2.2: +1 -1 lines
Diff to previous 1.365.2.2 (colored) to branchpoint 1.365 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.403 / (download) - annotate - [select for diffs], Mon Apr 13 00:27:16 2020 UTC (3 years, 10 months ago) by chs
Branch: MAIN
Changes since 1.402: +3 -3 lines
Diff to previous 1.402 (colored)

slightly change and fix the semantics of pool_set*wat(), pool_sethardlimit()
and pool_prime() (and their pool_cache_* counterparts):

 - the pool_set*wat() APIs are supposed to specify thresholds for the count of
   free items in the pool before pool pages are automatically allocated or freed
   during pool_get() / pool_put(), whereas pool_sethardlimit() and pool_prime()
   are supposed to specify minimum and maximum numbers of total items
   in the pool (both free and allocated).  these were somewhat conflated
   in the existing code, so separate them as they were intended.

 - change pool_prime() to take an absolute number of items to preallocate
   rather than an increment over whatever was done before, and wait for
   any memory allocations to succeed.  since pool_prime() can no longer fail
   after this, change its return value to void and adjust all callers.

 - pool_setlowat() is documented as not immediately attempting to allocate
   any memory, but it was changed some time ago to immediately try to allocate
   up to the lowat level, so just fix the manpage to describe the current
   behaviour.

 - add a pool_cache_prime() to complete the API set.

Revision 1.365.2.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:07:28 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.365.2.1: +350 -161 lines
Diff to previous 1.365.2.1 (colored) to branchpoint 1.365 (colored)

Merge changes from current as of 20200406

Revision 1.402 / (download) - annotate - [select for diffs], Sun Mar 29 09:20:43 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
CVS Tags: phil-wifi-20200411, phil-wifi-20200406, bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Changes since 1.401: +4 -3 lines
Diff to previous 1.401 (colored)

PTE_SYNC before TLB flush and no need to PTE_SYNC after an unmap.

Revision 1.401 / (download) - annotate - [select for diffs], Sun Mar 29 09:10:26 2020 UTC (3 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.400: +8 -2 lines
Diff to previous 1.400 (colored)

Support PMAP_FAULTINFO on arm

Revision 1.400 / (download) - annotate - [select for diffs], Mon Mar 23 16:38:29 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.399: +2 -4 lines
Diff to previous 1.399 (colored)

Reduce #ifdefs

Revision 1.399 / (download) - annotate - [select for diffs], Sat Mar 14 14:05:42 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.398: +4 -3 lines
Diff to previous 1.398 (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.398 / (download) - annotate - [select for diffs], Fri Mar 13 16:25:19 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.397: +8 -6 lines
Diff to previous 1.397 (colored)

Enhance the DIAGNOSTICs around pmap_grow_map

Revision 1.397 / (download) - annotate - [select for diffs], Fri Mar 13 16:16:29 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.396: +4 -4 lines
Diff to previous 1.396 (colored)

Re-indent a function call.  NFCI.

Revision 1.396 / (download) - annotate - [select for diffs], Fri Mar 13 16:14:18 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.395: +4 -4 lines
Diff to previous 1.395 (colored)

Oops... remove a stray <space>

Revision 1.395 / (download) - annotate - [select for diffs], Fri Mar 13 16:12:06 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.394: +6 -4 lines
Diff to previous 1.394 (colored)

Fixup some comments

Revision 1.375.2.4 / (download) - annotate - [select for diffs], Sat Feb 29 21:50:45 2020 UTC (3 years, 11 months ago) by ad
Branch: ad-namecache
Changes since 1.375.2.3: +1 -3 lines
Diff to previous 1.375.2.3 (colored) to branchpoint 1.375 (colored) next main 1.376 (colored)

Sync with head.

Revision 1.375.2.3 / (download) - annotate - [select for diffs], Sat Feb 29 20:18:17 2020 UTC (3 years, 11 months ago) by ad
Branch: ad-namecache
Changes since 1.375.2.2: +176 -104 lines
Diff to previous 1.375.2.2 (colored) to branchpoint 1.375 (colored)

Sync with head.

Revision 1.373.2.2 / (download) - annotate - [select for diffs], Thu Feb 27 19:06:22 2020 UTC (3 years, 11 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE
Changes since 1.373.2.1: +98 -19 lines
Diff to previous 1.373.2.1 (colored) to branchpoint 1.373 (colored) next main 1.374 (colored)

Pull up following revision(s) (requested by skrll in ticket #742):

	sys/arch/arm/arm32/pmap.c: revision 1.388
	sys/arch/arm/arm32/armv7_generic_space.c: revision 1.11
	sys/arch/arm/arm/cpufunc.c: revision 1.176
	sys/arch/arm/conf/Makefile.arm: revision 1.54 (via patch)
	sys/arch/arm/include/arm32/pmap.h: revision 1.161

Fix the armv[67] memory attributes for uncached memory.  Previously it was
mapped as strongly-ordered which meant that unaligned accesses would fault.
armv7_generic_bs_map now maps pages with PMAP_DEV which is treated as SO
bus_dma continues to use PMAP_NOCACHE as appropriate, but this now get
mapped to the correct memory attribute bits for armv[67]

DEVMAP_ENTRY usees a new flag PTE_DEV.

The workaround for the unaligned access faults is now removed.
XXX Other armv[67] boards bus_space implementations should be checked.
XXX There is scope to reduce the difference to aarch64

Revision 1.394 / (download) - annotate - [select for diffs], Mon Feb 24 20:31:56 2020 UTC (3 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: is-mlppp-base, is-mlppp, ad-namecache-base3
Changes since 1.393: +12 -21 lines
Diff to previous 1.393 (colored)

Adjust for UVM locking changes

Revision 1.393 / (download) - annotate - [select for diffs], Sun Feb 23 10:22:07 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.392: +3 -3 lines
Diff to previous 1.392 (colored)

type in comment

Revision 1.392 / (download) - annotate - [select for diffs], Wed Feb 12 17:36:41 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.391: +10 -9 lines
Diff to previous 1.391 (colored)

Convert the DEBUG code in pmap_grow_map to DIAGNOSTIC

Revision 1.391 / (download) - annotate - [select for diffs], Wed Feb 12 17:34:18 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.390: +3 -2 lines
Diff to previous 1.390 (colored)

Add a CTASSERT to pmap_grow_l2_bucket that PAGE_SIZE is a multiple of
L2_TABLE_SIZE_REAL.

Revision 1.390 / (download) - annotate - [select for diffs], Wed Feb 12 17:31:51 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.389: +3 -2 lines
Diff to previous 1.389 (colored)

Add a KASERT that we're not overwriting anything in pmap_growkernel

Revision 1.389 / (download) - annotate - [select for diffs], Wed Feb 12 16:08:19 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.388: +4 -7 lines
Diff to previous 1.388 (colored)

Minor changes to make pmap_grow_l2_bucket look more like
pmap_alloc_l2_bucket.  NFCI.

Revision 1.373.2.1 / (download) - annotate - [select for diffs], Mon Feb 10 19:20:01 2020 UTC (4 years ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-0-RELEASE
Changes since 1.373: +65 -65 lines
Diff to previous 1.373 (colored)

Pull up following revision(s) (requested by skrll in ticket #691):

	sys/arch/arm/arm32/pmap.c: revision 1.383
	sys/arch/arm/arm32/pmap.c: revision 1.385
	sys/arch/arm/arm32/pmap.c: revision 1.386
	sys/arch/arm/arm32/pmap.c: revision 1.387
	sys/arch/arm/arm32/pmap.c: revision 1.374
	sys/arch/arm/arm32/pmap.c: revision 1.375
	sys/arch/arm/arm32/pmap.c: revision 1.376
	sys/arch/arm/arm32/pmap.c: revision 1.377
	sys/arch/arm/arm32/pmap.c: revision 1.378
	sys/arch/arm/arm32/pmap.c: revision 1.379

Convert a __CTASSERT into a KASSERT as L1_S_CACHE_MASK may not be a
compile time constant if ARM_NMMUS > 1

Improve a comment

Update PMAP_STEAL_MEMORY code to uvm_hotplug

Typo in comment

Fix a bug introduced in 1.271 where pmap_grow_map would no longer map
the allocated page for the uvm.page_init_done == false case when
PMAP_STEAL_MEMORY is not defined.

Trailing whitespace

Fix comment

Always pmap_kenter_pa the page in pmap_grow_map regardless of how we got
it.

Always call pmap_grow_map with a page aligned new VA.  KASSERT that this
happenes.

More KNF

Revision 1.388 / (download) - annotate - [select for diffs], Wed Feb 5 07:37:35 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.387: +98 -19 lines
Diff to previous 1.387 (colored)

Fix the armv[67] memory attributes for uncached memory.  Previously it was
mapped as strongly-ordered which meant that unaligned accesses would fault.

armv7_generic_bs_map now maps pages with PMAP_DEV which is treated as SO

bus_dma continues to use PMAP_NOCACHE as appropriate, but this now get
mapped to the correct memory attribute bits for armv[67]

DEVMAP_ENTRY usees a new flag PTE_DEV.

The workaround for the unaligned access faults is now removed.

XXX Other armv[67] boards bus_space implementations should be checked.
XXX There is scope to reduce the difference to aarch64

Revision 1.387 / (download) - annotate - [select for diffs], Sun Feb 2 08:56:29 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.386: +39 -39 lines
Diff to previous 1.386 (colored)

More KNF

Revision 1.386 / (download) - annotate - [select for diffs], Sun Feb 2 08:19:15 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.385: +5 -3 lines
Diff to previous 1.385 (colored)

Always call pmap_grow_map with a page aligned new VA.  KASSERT that this
happenes.

Revision 1.385 / (download) - annotate - [select for diffs], Sun Feb 2 08:16:40 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.384: +5 -7 lines
Diff to previous 1.384 (colored)

Always pmap_kenter_pa the page in pmap_grow_map regardless of how we got
it.

Revision 1.384 / (download) - annotate - [select for diffs], Sun Feb 2 07:55:11 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.383: +12 -12 lines
Diff to previous 1.383 (colored)

KNF

Revision 1.383 / (download) - annotate - [select for diffs], Sun Feb 2 07:47:51 2020 UTC (4 years ago) by skrll
Branch: MAIN
Changes since 1.382: +3 -3 lines
Diff to previous 1.382 (colored)

Fix comment

Revision 1.375.2.2 / (download) - annotate - [select for diffs], Sat Jan 25 22:38:38 2020 UTC (4 years ago) by ad
Branch: ad-namecache
Changes since 1.375.2.1: +143 -34 lines
Diff to previous 1.375.2.1 (colored) to branchpoint 1.375 (colored)

Sync with head.

Revision 1.382 / (download) - annotate - [select for diffs], Sat Jan 25 16:19:29 2020 UTC (4 years ago) by skrll
Branch: MAIN
CVS Tags: ad-namecache-base2
Changes since 1.381: +8 -7 lines
Diff to previous 1.381 (colored)

A fix and an optimisation to pmap_l1tt_free
- in the !__HAVE_MM_MD_DIRECT_MAPPED_PHYS case pass UVM_KMF_WIRED so that
  the mappings are removed and the KVA is released.  Fixes the KASSERT
  seen in the automated test runs.
- in the __HAVE_MM_MD_DIRECT_MAPPED_PHYS case we can work out pa much
  easier than caling pmap_extract.

Revision 1.381 / (download) - annotate - [select for diffs], Sun Jan 19 10:59:56 2020 UTC (4 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.380: +5 -7 lines
Diff to previous 1.380 (colored)

Fix non-ARM_MMU_EXTENDED buildx

Revision 1.380 / (download) - annotate - [select for diffs], Sat Jan 18 14:40:04 2020 UTC (4 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.379: +143 -33 lines
Diff to previous 1.379 (colored)

Use 4K pages on ARM_MMU_EXTENDED platforms (all armv[67] except RPI) by
creating a new pool l1ttpl for the userland L1 translation table which
needs to be 8KB and 8KB aligned.

Limit the pool to maxproc and add hooks to allow the sysctl changing of
maxproc to adjust the pool.

This comes at a 5% performance penalty for build.sh -j8 kernel on a
Tegra TK1.

Revision 1.379 / (download) - annotate - [select for diffs], Sat Jan 18 07:52:33 2020 UTC (4 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.378: +3 -3 lines
Diff to previous 1.378 (colored)

Trailing whitespace

Revision 1.375.2.1 / (download) - annotate - [select for diffs], Fri Jan 17 21:47:23 2020 UTC (4 years, 1 month ago) by ad
Branch: ad-namecache
Changes since 1.375: +20 -20 lines
Diff to previous 1.375 (colored)

Sync with head.

Revision 1.378 / (download) - annotate - [select for diffs], Fri Jan 17 16:59:07 2020 UTC (4 years, 1 month ago) by skrll
Branch: MAIN
CVS Tags: ad-namecache-base1
Changes since 1.377: +5 -2 lines
Diff to previous 1.377 (colored)

Fix a bug introduced in 1.271 where pmap_grow_map would no longer map
the allocated page for the uvm.page_init_done == false case when
PMAP_STEAL_MEMORY is not defined.

Revision 1.377 / (download) - annotate - [select for diffs], Fri Jan 17 12:40:44 2020 UTC (4 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.376: +3 -3 lines
Diff to previous 1.376 (colored)

Typo in comment

Revision 1.376 / (download) - annotate - [select for diffs], Fri Jan 17 12:39:00 2020 UTC (4 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.375: +16 -19 lines
Diff to previous 1.375 (colored)

Update PMAP_STEAL_MEMORY code to uvm_hotplug

Revision 1.375 / (download) - annotate - [select for diffs], Tue Dec 31 18:09:21 2019 UTC (4 years, 1 month ago) by skrll
Branch: MAIN
CVS Tags: ad-namecache-base
Branch point for: ad-namecache
Changes since 1.374: +4 -4 lines
Diff to previous 1.374 (colored)

Improve a comment

Revision 1.374 / (download) - annotate - [select for diffs], Wed Sep 25 16:37:54 2019 UTC (4 years, 4 months ago) by skrll
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.373: +3 -3 lines
Diff to previous 1.373 (colored)

Convert a __CTASSERT into a KASSERT as L1_S_CACHE_MASK may not be a
compile time constant if ARM_NMMUS > 1

Revision 1.365.2.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:05:51 2019 UTC (4 years, 8 months ago) by christos
Branch: phil-wifi
Changes since 1.365: +124 -106 lines
Diff to previous 1.365 (colored)

Sync with HEAD

Revision 1.349.2.3 / (download) - annotate - [select for diffs], Tue Apr 23 18:26:22 2019 UTC (4 years, 10 months ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1
Changes since 1.349.2.2: +52 -46 lines
Diff to previous 1.349.2.2 (colored) to branchpoint 1.349 (colored) next main 1.350 (colored)

Pull up following revision(s) (requested by bouyer in ticket #1246):

	sys/arch/arm/arm32/pmap.c: revision 1.373 (via patch)

Fix a deadlock between the pool and pmap codes:

- cpu0 grabs the kernel lock (e.g. from a non-MPSAFE interrupt) and
  calls pool_get().
- cpu1 does a pool_get() on the same pool from MPSAFE code, which needs a
  pool_page_alloc(), which ends up in pmap_extract_coherency().

So cpu0 holds the kernel_lock and wants the pool lock. cpu1 holds the pool
lock and wants the kernel_lock in pmap_extract_coherency().

The pmap code should not rely on kernel_lock. Intead make the
pmap_kernel()->pm_obj_lock a IPL_VM lock and use it as pmap lock
(thus dropping the pmap test pmap_{acquire,release}_pmap_lock()).

This needs to be a IPL_VM because unlike user pmaps, this can be locked
from interrupt context.

Add a IPL_NONE lock for pmap_growkernel(). We can't use
pmap_kernel()->pm_obj_lock here because pmap_grow_map() may sleep.

Make pmap_lock (which may be locked with pm_obj_lock held) a IPL_VM
lock in all case.
reorder a few things to not call pool_get()/pool_put() (which may sleep)
with pm_obj_lock held.

Patch initially posted to port-arm@ on April 19, improved patch (per
suggestions from Nick Hudson and Jason Thorpe) on April 21.

Revision 1.349.2.2 / (download) - annotate - [select for diffs], Tue Apr 23 18:22:37 2019 UTC (4 years, 10 months ago) by martin
Branch: netbsd-8
Changes since 1.349.2.1: +15 -2 lines
Diff to previous 1.349.2.1 (colored) to branchpoint 1.349 (colored)

Pull up following revision(s) (requested by bouyer in ticket #1245):

	sys/arch/arm/arm32/pmap.c: revision 1.372

Don't try to aquire/release the pmap lock when in ddb.

Avoids a deadlock when entering ddb, or on "mach cpu n" ddb command
(the pmap lock may already be held by another CPU, which is halted when
entering ddb).

Posted to port-arm@ on April 19.

Revision 1.373 / (download) - annotate - [select for diffs], Tue Apr 23 11:21:21 2019 UTC (4 years, 10 months ago) by bouyer
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, netbsd-9-0-RC2, netbsd-9-0-RC1
Branch point for: netbsd-9
Changes since 1.372: +52 -46 lines
Diff to previous 1.372 (colored)

Fix a deadlock between the pool and pmap codes:
- cpu0 grabs the kernel lock (e.g. from a non-MPSAFE interrupt) and
  calls pool_get().
- cpu1 does a pool_get() on the same pool from MPSAFE code, which needs a
  pool_page_alloc(), which ends up in pmap_extract_coherency().

So cpu0 holds the kernel_lock and wants the pool lock. cpu1 holds the pool
lock and wants the kernel_lock in pmap_extract_coherency().

The pmap code should not rely on kernel_lock. Intead make the
pmap_kernel()->pm_obj_lock a IPL_VM lock and use it as pmap lock
(thus dropping the pmap test pmap_{acquire,release}_pmap_lock()).
This needs to be a IPL_VM because unlike user pmaps, this can be locked
from interrupt context.

Add a IPL_NONE lock for pmap_growkernel(). We can't use
pmap_kernel()->pm_obj_lock here because pmap_grow_map() may sleep.

Make pmap_lock (which may be locked with pm_obj_lock held) a IPL_VM
lock in all case.

reorder a few things to not call pool_get()/pool_put() (which may sleep)
with pm_obj_lock held.

Patch initially posted to port-arm@ on April 19, improved patch (per
suggestions from Nick Hudson and Jason Thorpe) on April 21.

Revision 1.372 / (download) - annotate - [select for diffs], Tue Apr 23 11:05:14 2019 UTC (4 years, 10 months ago) by bouyer
Branch: MAIN
Changes since 1.371: +15 -2 lines
Diff to previous 1.371 (colored)

Don't try to aquire/release the pmap lock when in ddb.
Avoids a deadlock when entering ddb, or on "mach cpu n" ddb command
(the pmap lock may already be held by another CPU, which is halted when
entering ddb).
Posted to port-arm@ on April 19.

Revision 1.364.2.4 / (download) - annotate - [select for diffs], Mon Nov 26 01:52:17 2018 UTC (5 years, 2 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.364.2.3: +3 -5 lines
Diff to previous 1.364.2.3 (colored) to branchpoint 1.364 (colored) next main 1.365 (colored)

Sync with HEAD, resolve a couple of conflicts

Revision 1.371 / (download) - annotate - [select for diffs], Sun Oct 28 14:59:17 2018 UTC (5 years, 3 months ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, isaki-audio2-base, isaki-audio2
Changes since 1.370: +3 -5 lines
Diff to previous 1.370 (colored)

Fix the comment near pmap_bootstrap itself as well

Revision 1.364.2.3 / (download) - annotate - [select for diffs], Sat Oct 20 06:58:24 2018 UTC (5 years, 4 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.364.2.2: +42 -18 lines
Diff to previous 1.364.2.2 (colored) to branchpoint 1.364 (colored)

Sync with head

Revision 1.370 / (download) - annotate - [select for diffs], Thu Oct 18 09:01:52 2018 UTC (5 years, 4 months ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-compat-1020
Changes since 1.369: +41 -17 lines
Diff to previous 1.369 (colored)

Provide generic start code that assumes the MMU is off and caches are
disabled as per the linux booting protocol for ARMv6 and ARMv7 boards.
u-boot image type should be changed to 'linux' for correct behaviour.

The new start code builds a minimal "bootstrap" L1PT with cached access
disabled and uses the same table for all processors.  AP startup is
performed in less steps and more code is written in C.

The bootstrap tables and stack are placed into an (orphaned) section
"_init_memory" which is given to uvm when it is no longer used.

Various kernels have been converted to use this code and tested.  Some
boards were provided by TNF. Thanks!

The GENERIC kernel now boots on boards using the TEGRA, SUNXI and EXYNOS
kernels. The GENERIC kernel will also work on RPI2 using u-boot.

Thanks to martin@ and aymeric@ for testing on parallella and nanosoc
respectively

Revision 1.369 / (download) - annotate - [select for diffs], Sun Oct 14 14:31:05 2018 UTC (5 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.368: +3 -3 lines
Diff to previous 1.368 (colored)

Use __nothing

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

Sync with HEAD

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

Revision 1.368 / (download) - annotate - [select for diffs], Mon Sep 3 16:29:23 2018 UTC (5 years, 5 months ago) by riastradh
Branch: MAIN
CVS Tags: pgoyette-compat-0930, pgoyette-compat-0906
Changes since 1.367: +3 -3 lines
Diff to previous 1.367 (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.367 / (download) - annotate - [select for diffs], Tue Aug 28 14:45:33 2018 UTC (5 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.366: +4 -4 lines
Diff to previous 1.366 (colored)

Fix arguments to align and align_offset for pmap_l2ptp_cache, i.e.align
is now L2_TABLE_SIZE_REAL and align_offset is now 0.  (There were
reversed previously)

Revision 1.366 / (download) - annotate - [select for diffs], Tue Jul 31 07:00:48 2018 UTC (5 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.365: +24 -47 lines
Diff to previous 1.365 (colored)

Define and use VPRINTF

Revision 1.364.2.1 / (download) - annotate - [select for diffs], Sat Apr 7 04:12:11 2018 UTC (5 years, 10 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.364: +16 -2 lines
Diff to previous 1.364 (colored)

Sync with HEAD.  77 conflicts resolved - all of them $NetBSD$

Revision 1.365 / (download) - annotate - [select for diffs], Sun Apr 1 04:35:03 2018 UTC (5 years, 10 months ago) by ryo
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407
Branch point for: phil-wifi
Changes since 1.364: +16 -2 lines
Diff to previous 1.364 (colored)

Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@)

- sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@)
- add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)

Revision 1.364 / (download) - annotate - [select for diffs], Mon Jan 22 13:22:40 2018 UTC (6 years, 1 month ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-compat-base, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315
Branch point for: pgoyette-compat
Changes since 1.363: +19 -7 lines
Diff to previous 1.363 (colored)

Add PMAP_WRITE_COMBINE: to the list of flags supported by pmap_kenter_pa

Revision 1.363 / (download) - annotate - [select for diffs], Mon Jan 22 13:21:35 2018 UTC (6 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.362: +3 -3 lines
Diff to previous 1.362 (colored)

Trailing whitespace

Revision 1.362 / (download) - annotate - [select for diffs], Wed Jan 17 20:30:16 2018 UTC (6 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.361: +2 -11 lines
Diff to previous 1.361 (colored)

G/C ARM32_NEW_VM_LAYOUT

Revision 1.236.2.5 / (download) - annotate - [select for diffs], Sun Dec 3 11:35:51 2017 UTC (6 years, 2 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.236.2.4: +465 -326 lines
Diff to previous 1.236.2.4 (colored) next main 1.237 (colored)

update from HEAD

Revision 1.349.2.1 / (download) - annotate - [select for diffs], Thu Nov 2 21:29:51 2017 UTC (6 years, 3 months ago) by snj
Branch: netbsd-8
CVS Tags: netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, matt-nb8-mediatek-base, matt-nb8-mediatek
Changes since 1.349: +45 -38 lines
Diff to previous 1.349 (colored)

Pull up following revision(s) (requested by pgoyette in ticket #335):
	share/man/man9/kernhist.9: 1.5-1.8
	sys/arch/acorn26/acorn26/pmap.c: 1.39
	sys/arch/arm/arm32/fault.c: 1.105 via patch
	sys/arch/arm/arm32/pmap.c: 1.350, 1.359
	sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7
	sys/arch/arm/omap/if_cpsw.c: 1.20
	sys/arch/arm/omap/tiotg.c: 1.7
	sys/arch/evbarm/conf/RPI2_INSTALL: 1.3
	sys/dev/ic/sl811hs.c: 1.98
	sys/dev/usb/ehci.c: 1.256
	sys/dev/usb/if_axe.c: 1.83
	sys/dev/usb/motg.c: 1.18
	sys/dev/usb/ohci.c: 1.274
	sys/dev/usb/ucom.c: 1.119
	sys/dev/usb/uhci.c: 1.277
	sys/dev/usb/uhub.c: 1.137
	sys/dev/usb/umass.c: 1.160-1.162
	sys/dev/usb/umass_quirks.c: 1.100
	sys/dev/usb/umass_scsipi.c: 1.55
	sys/dev/usb/usb.c: 1.168
	sys/dev/usb/usb_mem.c: 1.70
	sys/dev/usb/usb_subr.c: 1.221
	sys/dev/usb/usbdi.c: 1.175
	sys/dev/usb/usbdi_util.c: 1.67-1.70
	sys/dev/usb/usbroothub.c: 1.3
	sys/dev/usb/xhci.c: 1.75
	sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34
	sys/kern/kern_history.c: 1.15
	sys/kern/kern_xxx.c: 1.74
	sys/kern/vfs_bio.c: 1.275-1.276
	sys/miscfs/genfs/genfs_io.c: 1.71
	sys/sys/kernhist.h: 1.21
	sys/ufs/ffs/ffs_balloc.c: 1.63
	sys/ufs/lfs/lfs_vfsops.c: 1.361
	sys/ufs/lfs/ulfs_inode.c: 1.21
	sys/ufs/lfs/ulfs_vnops.c: 1.52
	sys/ufs/ufs/ufs_inode.c: 1.102
	sys/ufs/ufs/ufs_vnops.c: 1.239
	sys/uvm/pmap/pmap.c: 1.37-1.39
	sys/uvm/pmap/pmap_tlb.c: 1.22
	sys/uvm/uvm_amap.c: 1.108
	sys/uvm/uvm_anon.c: 1.64
	sys/uvm/uvm_aobj.c: 1.126
	sys/uvm/uvm_bio.c: 1.91
	sys/uvm/uvm_device.c: 1.66
	sys/uvm/uvm_fault.c: 1.201
	sys/uvm/uvm_km.c: 1.144
	sys/uvm/uvm_loan.c: 1.85
	sys/uvm/uvm_map.c: 1.353
	sys/uvm/uvm_page.c: 1.194
	sys/uvm/uvm_pager.c: 1.111
	sys/uvm/uvm_pdaemon.c: 1.109
	sys/uvm/uvm_swap.c: 1.175
	sys/uvm/uvm_vnode.c: 1.103
	usr.bin/vmstat/vmstat.c: 1.219
Reorder to test for null before null deref in debug code
--
Reorder to test for null before null deref in debug code
--
KNF
--
No need for '\n' in UVMHIST_LOG
--
normalise a BIOHIST log message
--
Update the kernhist(9) kernel history code to address issues identified
in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in
   the kernel and in the structures used for exporting the history data
   to userland via sysctl(9).  This avoids problems on some architectures
   where passing a 64-bit (or larger) value to printf(3) can cause it to
   process the value as multiple arguments.  (This can be particularly
   problematic when printf()'s format string is not a literal, since in
   that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to
   include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings
   updated.  Each format specifier now includes an explicit length
   modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings
   updated to replace uses of "%p" with "%#jx", and the pointer
   arguments are now cast to (uintptr_t) before being subsequently cast
   to (uintmax_t).  This is needed to avoid compiler warnings about
   casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or
   "%c" format strings replaced with numeric formats; several instances
   of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the
   history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with
   the -u option does not exist (previously, this condition was silently
   ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the
   data exported via sysctl(9) and exits if they do not match the values
   with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional
   requirements imposed on the format strings, along with several other
   minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example,
     uint64_t) for the history arguments.  But that would require another
     "rototill" of all the users in the future when we add support for an
     architecture that supports a larger size.  Also, the printf(3)
format
     specifiers for explicitly-sized values, such as "%"PRIu64, are much
     more verbose (and less aesthetically appealing, IMHO) than simply
     using "%ju".
[2] I've tried very hard to find "all [the] existing users of
kernhist(9)"
     but it is possible that I've missed some of them.  I would be glad
to
     update any stragglers that anyone identifies.
--
For some reason this single kernel seems to have outgrown its declared
size as a result of the kernhist(9) changes.  Bump the size.
XXX The amount of increase may be excessive - anyone with more detailed
XXX knowledge please feel free to further adjust the value
appropriately.
--
Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit
--
And yet another one.  :(
--
Use correct mark-up for NetBSD version.
--
More improvements in grammar and readability.
--
Remove a stray '"' (obvious typo) and add a couple of casts that are
probably needed.
--
And replace an instance of "%p" conversion with "%#jx"
--
Whitespace fix. Give Bl tag table a width. Fix Xr.

Revision 1.361 / (download) - annotate - [select for diffs], Wed Nov 1 21:13:26 2017 UTC (6 years, 3 months ago) by skrll
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202
Changes since 1.360: +3 -4 lines
Diff to previous 1.360 (colored)


Unwrap two lines.  NFC.

Revision 1.360 / (download) - annotate - [select for diffs], Wed Nov 1 21:11:44 2017 UTC (6 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.359: +3 -6 lines
Diff to previous 1.359 (colored)

Fix a comment

Revision 1.359 / (download) - annotate - [select for diffs], Sat Oct 28 00:37:12 2017 UTC (6 years, 3 months ago) by pgoyette
Branch: MAIN
Changes since 1.358: +45 -38 lines
Diff to previous 1.358 (colored)

Update the kernhist(9) kernel history code to address issues identified
in PR kern/52639, as well as some general cleaning-up...

(As proposed on tech-kern@ with additional changes and enhancements.)

Details of changes:

* All history arguments are now stored as uintmax_t values[1], both in
  the kernel and in the structures used for exporting the history data
  to userland via sysctl(9).  This avoids problems on some architectures
  where passing a 64-bit (or larger) value to printf(3) can cause it to
  process the value as multiple arguments.  (This can be particularly
  problematic when printf()'s format string is not a literal, since in
  that case the compiler cannot know how large each argument should be.)

* Update the data structures used for exporting kernel history data to
  include a version number as well as the length of history arguments.

* All [2] existing users of kernhist(9) have had their format strings
  updated.  Each format specifier now includes an explicit length
  modifier 'j' to refer to numeric values of the size of uintmax_t.

* All [2] existing users of kernhist(9) have had their format strings
  updated to replace uses of "%p" with "%#jx", and the pointer
  arguments are now cast to (uintptr_t) before being subsequently cast
  to (uintmax_t).  This is needed to avoid compiler warnings about
  casting "pointer to integer of a different size."

* All [2] existing users of kernhist(9) have had instances of "%s" or
  "%c" format strings replaced with numeric formats; several instances
  of mis-match between format string and argument list have been fixed.

* vmstat(1) has been modified to handle the new size of arguments in the
  history data as exported by sysctl(9).

* vmstat(1) now provides a warning message if the history requested with
  the -u option does not exist (previously, this condition was silently
  ignored, with only a single blank line being printed).

* vmstat(1) now checks the version and argument length included in the
  data exported via sysctl(9) and exits if they do not match the values
  with which vmstat was built.

* The kernhist(9) man-page has been updated to note the additional
  requirements imposed on the format strings, along with several other
  minor changes and enhancements.

[1] It would have been possible to use an explicit length (for example,
    uint64_t) for the history arguments.  But that would require another
    "rototill" of all the users in the future when we add support for an
    architecture that supports a larger size.  Also, the printf(3) format
    specifiers for explicitly-sized values, such as "%"PRIu64, are much
    more verbose (and less aesthetically appealing, IMHO) than simply
    using "%ju".

[2] I've tried very hard to find "all [the] existing users of kernhist(9)"
    but it is possible that I've missed some of them.  I would be glad to
    update any stragglers that anyone identifies.

Revision 1.358 / (download) - annotate - [select for diffs], Sun Oct 8 12:08:30 2017 UTC (6 years, 4 months ago) by flxd
Branch: MAIN
Changes since 1.357: +16 -27 lines
Diff to previous 1.357 (colored)

Revert attempt at tracking unmanaged mappings for VIVT as it was incomplete and
buggy. PR port-shark/52102
From skrll@. Tested by martin@ and me.

Revision 1.357 / (download) - annotate - [select for diffs], Wed Sep 6 11:51:33 2017 UTC (6 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.356: +2 -5 lines
Diff to previous 1.356 (colored)

Remove useless KASSERT - we can't assert !mutex_owned()

Revision 1.356 / (download) - annotate - [select for diffs], Sat Sep 2 12:24:39 2017 UTC (6 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.355: +28 -17 lines
Diff to previous 1.355 (colored)


Perform tracking of unmanaged mappings for VIVT and call vac_me_harder
as appropriate.

PR/52102 shark: ffs_newvnode panic when unpacking sets installing -current

Thanks to Felix Deichmann for bisecting the problem and testing the fix.

Revision 1.355 / (download) - annotate - [select for diffs], Sat Sep 2 11:57:09 2017 UTC (6 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.354: +5 -8 lines
Diff to previous 1.354 (colored)

KNF

Revision 1.354 / (download) - annotate - [select for diffs], Sat Sep 2 11:52:30 2017 UTC (6 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.353: +2 -4 lines
Diff to previous 1.353 (colored)

Remove an #ifdef PMAP_CACHE_VIVT that's inside #ifdef PMAP_CACHE_VIVT
already

Revision 1.316.2.7 / (download) - annotate - [select for diffs], Mon Aug 28 17:51:29 2017 UTC (6 years, 5 months ago) by skrll
Branch: nick-nhusb
Changes since 1.316.2.6: +195 -202 lines
Diff to previous 1.316.2.6 (colored) to branchpoint 1.316 (colored) next main 1.317 (colored)

Sync with HEAD

Revision 1.353 / (download) - annotate - [select for diffs], Thu Aug 24 14:19:36 2017 UTC (6 years, 6 months ago) by jmcneill
Branch: MAIN
CVS Tags: nick-nhusb-base-20170825
Changes since 1.352: +16 -7 lines
Diff to previous 1.352 (colored)

Do runtime detection of MP extensions to allow using a MULTIPROCESSOR
kernel on CPUs without the MP extensions feature (like Cortex-A8).

Revision 1.352 / (download) - annotate - [select for diffs], Thu Jul 27 10:56:42 2017 UTC (6 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.351: +3 -3 lines
Diff to previous 1.351 (colored)

Macro confusion - fortunately this has no functional change.

Revision 1.351 / (download) - annotate - [select for diffs], Thu Jul 27 08:10:41 2017 UTC (6 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.350: +3 -4 lines
Diff to previous 1.350 (colored)

Remove redundant test - the compiler realised anyway as we get same binary
output

Revision 1.350 / (download) - annotate - [select for diffs], Mon Jul 10 09:30:58 2017 UTC (6 years, 7 months ago) by skrll
Branch: MAIN
CVS Tags: perseant-stdc-iso10646-base, perseant-stdc-iso10646
Changes since 1.349: +3 -3 lines
Diff to previous 1.349 (colored)

No need for '\n' in UVMHIST_LOG

Revision 1.295.2.11 / (download) - annotate - [select for diffs], Sat Jun 3 17:01:30 2017 UTC (6 years, 8 months ago) by snj
Branch: netbsd-7
CVS Tags: netbsd-7-2-RELEASE
Changes since 1.295.2.10: +18 -26 lines
Diff to previous 1.295.2.10 (colored) to branchpoint 1.295 (colored) next main 1.296 (colored)

Pull up following revision(s) (requested by skrll in ticket #1424):
	sys/arch/arm/arm32/pmap.c: revision 1.345
Perform icache syncs for ARM_MMU_EXTENDED as well.  This helps the PT_STEP
code in pr/52119 and probably other things.

Revision 1.349 / (download) - annotate - [select for diffs], Wed May 24 06:31:07 2017 UTC (6 years, 9 months ago) by skrll
Branch: MAIN
CVS Tags: netbsd-8-base
Branch point for: netbsd-8
Changes since 1.348: +4 -2 lines
Diff to previous 1.348 (colored)

Check the "Havard TLB" maintenance operations if the "Unified TLB"
maintenance opeations don't include invalidate by ASID.  Some CPUs, e.g.
Cortex-A8, have Havard TLBs and report ASID operations this way.

Revision 1.348 / (download) - annotate - [select for diffs], Wed May 24 06:27:33 2017 UTC (6 years, 9 months ago) by skrll
Branch: MAIN
Changes since 1.347: +148 -159 lines
Diff to previous 1.347 (colored)

Move closer to the common pmap by using the same pmap_remove_all
optimisation where TLB flushes are avoided by clever ASID assignment.

pmap_remove_all_complete can now be removed.

Revision 1.347 / (download) - annotate - [select for diffs], Mon May 22 06:35:04 2017 UTC (6 years, 9 months ago) by skrll
Branch: MAIN
Changes since 1.346: +10 -9 lines
Diff to previous 1.346 (colored)

Indent comment to match code it's describing

Revision 1.346 / (download) - annotate - [select for diffs], Sun May 21 07:06:51 2017 UTC (6 years, 9 months ago) by skrll
Branch: MAIN
Changes since 1.345: +4 -3 lines
Diff to previous 1.345 (colored)

KNF

Revision 1.335.2.4 / (download) - annotate - [select for diffs], Wed Apr 26 02:53:00 2017 UTC (6 years, 9 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.335.2.3: +18 -26 lines
Diff to previous 1.335.2.3 (colored) to branchpoint 1.335 (colored) next main 1.336 (colored)

Sync with HEAD

Revision 1.342.2.1 / (download) - annotate - [select for diffs], Fri Apr 21 16:53:22 2017 UTC (6 years, 10 months ago) by bouyer
Branch: bouyer-socketcan
Changes since 1.342: +25 -33 lines
Diff to previous 1.342 (colored) next main 1.343 (colored)

Sync with HEAD

Revision 1.345 / (download) - annotate - [select for diffs], Mon Apr 17 14:52:52 2017 UTC (6 years, 10 months ago) by skrll
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, bouyer-socketcan-base1
Changes since 1.344: +18 -26 lines
Diff to previous 1.344 (colored)

Perform icache syncs for ARM_MMU_EXTENDED as well.  This helps the PT_STEP
code in pr/52119 and probably other things.

Revision 1.335.2.3 / (download) - annotate - [select for diffs], Mon Mar 20 06:57:10 2017 UTC (6 years, 11 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.335.2.2: +9 -9 lines
Diff to previous 1.335.2.2 (colored) to branchpoint 1.335 (colored)

Sync with HEAD

Revision 1.295.2.8.2.1 / (download) - annotate - [select for diffs], Mon Mar 13 07:41:26 2017 UTC (6 years, 11 months ago) by skrll
Branch: netbsd-7-nhusb
Changes since 1.295.2.8: +9 -9 lines
Diff to previous 1.295.2.8 (colored) next main 1.295.2.9 (colored)

Sync with netbsd-7-1-RELEASE

Revision 1.295.2.10 / (download) - annotate - [select for diffs], Sat Mar 11 16:03:54 2017 UTC (6 years, 11 months ago) by snj
Branch: netbsd-7
CVS Tags: netbsd-7-1-RELEASE, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1
Changes since 1.295.2.9: +3 -3 lines
Diff to previous 1.295.2.9 (colored) to branchpoint 1.295 (colored)

fix fallout from ticket #1366: __nothing is nothing on netbsd-7

Revision 1.295.2.9 / (download) - annotate - [select for diffs], Sat Mar 11 07:40:21 2017 UTC (6 years, 11 months ago) by snj
Branch: netbsd-7
Changes since 1.295.2.8: +9 -9 lines
Diff to previous 1.295.2.8 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by skrll in ticket #1366):
	sys/arch/arm/include/arm32/pmap.h: 1.145
	sys/arch/arm/arm32/pmap.c: 1.343, 1.344
	sys/arch/evbarm/gumstix/gumstix_machdep.c: 1.58 via patch
Fixup the compile time decisions around PMAP_{INCLUDE,NEEDS}_PTE_SYNC and
fix the options for xscale boards which require the code in
pmap_l2ptp_ctor marked as #ifndef PMAP_INCLUDE_PTE_SYNC.
Fix the typo (pte -> opte) in this code block and consistently use opte
elsewhere.
PR/51990: Regression data_abort_handler: data_aborts fsr=0x406 far=0xbfffeff5  on copyout in init
--
fix unused.
--
Set xscale_cache_clean_addr appropriately and re-arrange default KVA
layout to allow direct map for all boards.
OVERO/DUOVERO/PEPPER aren't tested.
PR/52010: Regression: Gumstix Verdex is hanging in enabling cache + KASSERT ram_size

Revision 1.344 / (download) - annotate - [select for diffs], Sat Feb 25 16:48:03 2017 UTC (6 years, 11 months ago) by christos
Branch: MAIN
CVS Tags: pgoyette-localcount-20170320, jdolecek-ncq-base, jdolecek-ncq
Changes since 1.343: +5 -5 lines
Diff to previous 1.343 (colored)

fix unused.

Revision 1.343 / (download) - annotate - [select for diffs], Thu Feb 23 08:22:20 2017 UTC (7 years ago) by skrll
Branch: MAIN
Changes since 1.342: +6 -6 lines
Diff to previous 1.342 (colored)

Fixup the compile time decisions around PMAP_{INCLUDE,NEEDS}_PTE_SYNC and
fix the options for xscale boards which require the code in
pmap_l2ptp_ctor marked as #ifndef PMAP_INCLUDE_PTE_SYNC.

Fix the typo (pte -> opte) in this code block and consistently use opte
elsewhere.

PR/51990: Regression data_abort_handler: data_aborts fsr=0x406 far=0xbfffeff5  on copyout in init

Revision 1.316.2.6 / (download) - annotate - [select for diffs], Sun Feb 5 13:40:03 2017 UTC (7 years ago) by skrll
Branch: nick-nhusb
Changes since 1.316.2.5: +5 -5 lines
Diff to previous 1.316.2.5 (colored) to branchpoint 1.316 (colored)

Sync with HEAD

Revision 1.335.2.2 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:10 2017 UTC (7 years, 1 month ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.335.2.1: +5 -5 lines
Diff to previous 1.335.2.1 (colored) to branchpoint 1.335 (colored)

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

Revision 1.342 / (download) - annotate - [select for diffs], Fri Dec 23 07:15:27 2016 UTC (7 years, 2 months ago) by cherry
Branch: MAIN
CVS Tags: pgoyette-localcount-20170107, nick-nhusb-base-20170204, bouyer-socketcan-base
Branch point for: bouyer-socketcan
Changes since 1.341: +4 -4 lines
Diff to previous 1.341 (colored)

"Make NetBSD great again!"

Introduce uvm_hotplug(9) to the kernel.

Many thanks, in no particular order to:

TNF, for funding the project.

Chuck Silvers - for multiple API reviews and feedback.
Nick Hudson - for testing on multiple architectures and bugfix patches.
Everyone who helped with boot testing.

KeK (http://www.kek.org.in) for hosting the primary developers.

Revision 1.341 / (download) - annotate - [select for diffs], Sat Dec 17 14:36:29 2016 UTC (7 years, 2 months ago) by flxd
Branch: MAIN
Changes since 1.340: +3 -3 lines
Diff to previous 1.340 (colored)

Fix typo "one the" and architecture where appropriate.

Revision 1.316.2.5 / (download) - annotate - [select for diffs], Wed Oct 5 20:55:24 2016 UTC (7 years, 4 months ago) by skrll
Branch: nick-nhusb
Changes since 1.316.2.4: +84 -21 lines
Diff to previous 1.316.2.4 (colored) to branchpoint 1.316 (colored)

Sync with HEAD

Revision 1.335.2.1 / (download) - annotate - [select for diffs], Sat Aug 6 00:19:04 2016 UTC (7 years, 6 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.335: +79 -39 lines
Diff to previous 1.335 (colored)

Sync with HEAD

Revision 1.340 / (download) - annotate - [select for diffs], Thu Aug 4 08:46:06 2016 UTC (7 years, 6 months ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-localcount-20161104, pgoyette-localcount-20160806, nick-nhusb-base-20161204, nick-nhusb-base-20161004, localcount-20160914
Changes since 1.339: +4 -3 lines
Diff to previous 1.339 (colored)

provide and use 'ci' in pmap_remove_all_complete.

Revision 1.339 / (download) - annotate - [select for diffs], Wed Aug 3 15:59:58 2016 UTC (7 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.338: +35 -14 lines
Diff to previous 1.338 (colored)

Don't touch pm_onproc at all in pmap_{update,destroy} and adjust KASSERT
to suit.

Update to cover the PMAP_TLB_MAX > 1 case as well while I'm here.

Revision 1.338 / (download) - annotate - [select for diffs], Mon Aug 1 18:28:38 2016 UTC (7 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.337: +44 -38 lines
Diff to previous 1.337 (colored)

pm_remove_all needs handling in pmap_destroy as well as pmap_update

Revision 1.337 / (download) - annotate - [select for diffs], Fri Jul 29 15:38:05 2016 UTC (7 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.336: +14 -2 lines
Diff to previous 1.336 (colored)

more debug

Revision 1.336 / (download) - annotate - [select for diffs], Fri Jul 29 09:47:09 2016 UTC (7 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.335: +7 -7 lines
Diff to previous 1.335 (colored)

Simplify ARM_MMU_EXTENDED #ifdefs

No functional change

Revision 1.335 / (download) - annotate - [select for diffs], Thu Jul 14 15:51:41 2016 UTC (7 years, 7 months ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20160726
Branch point for: pgoyette-localcount
Changes since 1.334: +26 -3 lines
Diff to previous 1.334 (colored)

Adapt this to the recent sys/uvm/pmap/pmap_tlb.c changes.  MP kernels
now don't trigger KASSERTs

Revision 1.334 / (download) - annotate - [select for diffs], Thu Jul 14 05:00:51 2016 UTC (7 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.333: +3 -3 lines
Diff to previous 1.333 (colored)

Spell PMAP_TLB_NEED_SHOOTDOWN correctly

Revision 1.333 / (download) - annotate - [select for diffs], Tue Jul 12 15:40:53 2016 UTC (7 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.332: +3 -3 lines
Diff to previous 1.332 (colored)

Fix harmless (?) typo

Revision 1.295.2.8 / (download) - annotate - [select for diffs], Fri Feb 26 22:31:06 2016 UTC (7 years, 11 months ago) by snj
Branch: netbsd-7
CVS Tags: netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-1-RC2, netbsd-7-1-RC1
Branch point for: netbsd-7-nhusb
Changes since 1.295.2.7: +2 -23 lines
Diff to previous 1.295.2.7 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by skrll in ticket #1106):
	sys/arch/arm/arm32/pmap.c: revision 1.332
Delete pmap_pmaps and its only user pmap_dump_all.  The list wasn't
being updated in an MP-safe manner.

Revision 1.316.2.4 / (download) - annotate - [select for diffs], Sun Dec 27 12:09:30 2015 UTC (8 years, 1 month ago) by skrll
Branch: nick-nhusb
Changes since 1.316.2.3: +64 -44 lines
Diff to previous 1.316.2.3 (colored) to branchpoint 1.316 (colored)

Sync with HEAD (as of 26th Dec)

Revision 1.332 / (download) - annotate - [select for diffs], Mon Dec 14 09:48:40 2015 UTC (8 years, 2 months ago) by skrll
Branch: MAIN
CVS Tags: nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226
Changes since 1.331: +2 -23 lines
Diff to previous 1.331 (colored)

Delete pmap_pmaps and its only user pmap_dump_all.  The list wasn't
being updated in an MP-safe manner.

Revision 1.331 / (download) - annotate - [select for diffs], Wed Nov 25 08:36:50 2015 UTC (8 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.330: +11 -16 lines
Diff to previous 1.330 (colored)

In the ARM_MMU_EXTENDED case make sure the kernel mappings are marked with
XN (eXecute Never) appropriately.

The XN logic is inconsistent and could do with changing to XN always set
and cleared for VM_PROT_EXECUTE (or the inverse) everywhere.

Revision 1.330 / (download) - annotate - [select for diffs], Fri Nov 13 08:04:21 2015 UTC (8 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.329: +6 -4 lines
Diff to previous 1.329 (colored)

Tweak the KASSERTs in pmap_update in the ARM_MMU_EXTENDED case - Lazy
updating is not done on the kernel pmap.

PR port-arm/50420: curcpu()->ci_pmap_cur != pm || pm->pm_pai[0].pai_asid == curcpu()->ci_pmap_asid_cur" failed

Revision 1.329 / (download) - annotate - [select for diffs], Fri Nov 13 07:55:18 2015 UTC (8 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.328: +13 -4 lines
Diff to previous 1.328 (colored)

Wrap long lines.

Revision 1.328 / (download) - annotate - [select for diffs], Wed Nov 11 17:54:17 2015 UTC (8 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.327: +42 -7 lines
Diff to previous 1.327 (colored)

Support pmap_pv_track and friends

Revision 1.327 / (download) - annotate - [select for diffs], Fri Nov 6 08:44:35 2015 UTC (8 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.326: +3 -3 lines
Diff to previous 1.326 (colored)

Trailing whitespace

Revision 1.316.2.3 / (download) - annotate - [select for diffs], Tue Sep 22 12:05:37 2015 UTC (8 years, 5 months ago) by skrll
Branch: nick-nhusb
Changes since 1.316.2.2: +7 -7 lines
Diff to previous 1.316.2.2 (colored) to branchpoint 1.316 (colored)

Sync with HEAD

Revision 1.326 / (download) - annotate - [select for diffs], Sun Jul 26 00:15:53 2015 UTC (8 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: nick-nhusb-base-20150921
Changes since 1.325: +3 -3 lines
Diff to previous 1.325 (colored)

KASSERT->KASSERTMSG

Revision 1.325 / (download) - annotate - [select for diffs], Tue Jun 9 10:44:55 2015 UTC (8 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.324: +6 -6 lines
Diff to previous 1.324 (colored)

Use armreg_auxctl_{read,write} instead of inline asm.

No functional change.

Revision 1.316.2.2 / (download) - annotate - [select for diffs], Sat Jun 6 14:39:55 2015 UTC (8 years, 8 months ago) by skrll
Branch: nick-nhusb
Changes since 1.316.2.1: +38 -23 lines
Diff to previous 1.316.2.1 (colored) to branchpoint 1.316 (colored)

Sync with HEAD

Revision 1.324 / (download) - annotate - [select for diffs], Mon Jun 1 19:16:44 2015 UTC (8 years, 8 months ago) by matt
Branch: MAIN
CVS Tags: nick-nhusb-base-20150606
Changes since 1.323: +13 -17 lines
Diff to previous 1.323 (colored)

pmap_directbase is a failed experiment, nuke it.

Revision 1.323 / (download) - annotate - [select for diffs], Sat May 30 23:59:33 2015 UTC (8 years, 8 months ago) by matt
Branch: MAIN
Changes since 1.322: +4 -3 lines
Diff to previous 1.322 (colored)

Support directmapped systems with >1GB that start memory at 0x80000000.

Revision 1.295.2.7 / (download) - annotate - [select for diffs], Wed May 27 05:33:29 2015 UTC (8 years, 8 months ago) by msaitoh
Branch: netbsd-7
CVS Tags: 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, netbsd-7-0
Changes since 1.295.2.6: +3 -5 lines
Diff to previous 1.295.2.6 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by skrll in ticket #805):
	sys/arch/arm/include/arm32/pmap.h: revision 1.138
	sys/arch/arm/arm/cpufunc.c: revision 1.151
	sys/arch/arm/arm32/bus_dma.c: revision 1.90
	sys/arch/arm/broadcom/bcm53xx_pax.c: revision 1.14
	sys/arch/arm/arm32/bus_dma.c: revision 1.91
	sys/arch/arm/samsung/exynos_space.c: revision 1.2
	sys/arch/arm/arm32/db_machdep.c: revision 1.23
	sys/arch/arm/allwinner/awin_space.c: revision 1.4
	sys/arch/arm/include/rwlock.h: revision 1.9
	sys/arch/arm/amlogic/amlogic_space.c: revision 1.2
	sys/arch/arm/zynq/zynq_space.c: revision 1.2
	sys/arch/arm/broadcom/bcm2835_space.c: revision 1.7
	sys/arch/arm/arm32/pmap.c: revision 1.317
	sys/arch/arm/include/locore.h: revision 1.19
	sys/arch/arm/include/mutex.h: revision 1.20
	sys/arch/arm/include/lock.h: revision 1.31
	sys/arch/arm/include/lock.h: revision 1.32
	sys/arch/arm/broadcom/bcmgen_space.c: revision 1.5
- Kill redundant semicolons.
- Indentation.
- Improve inline asm around dsb/dmb/isb:
  - always use volatile and mark them as memory barrier
  - use the common version from locore.h in all places not included from
    userland

Revision 1.295.2.6 / (download) - annotate - [select for diffs], Tue May 26 01:34:40 2015 UTC (8 years, 9 months ago) by msaitoh
Branch: netbsd-7
Changes since 1.295.2.5: +13 -5 lines
Diff to previous 1.295.2.5 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by skrll in ticket #800):
	sys/arch/arm/arm32/pmap.c: revision 1.320
	sys/arch/arm/arm32/pmap.c: revision 1.321
	sys/arch/arm/arm32/pmap.c: revision 1.322
	sys/arch/arm/arm32/pmap.c: revision 1.319
- include "opt_arm_debug.h" for VERBOSE_INIT_ARM
- Add pmap locking to pmap_kenter_pa/kremove
- Make sure nptes is a multiple of PAGE_SIZE / L2_S_SIZE.
- Use PDE_SYNC when syncing pdeps

Revision 1.295.2.5 / (download) - annotate - [select for diffs], Tue May 19 04:58:31 2015 UTC (8 years, 9 months ago) by snj
Branch: netbsd-7
Changes since 1.295.2.4: +4 -6 lines
Diff to previous 1.295.2.4 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by joerg in ticket #777):
	sys/arch/arm/arm32/pmap.c: revision 1.308
pmap_tlb_flushD is for !ARM_MMU_EXTENDED only now

Revision 1.322 / (download) - annotate - [select for diffs], Wed May 13 15:33:47 2015 UTC (8 years, 9 months ago) by skrll
Branch: MAIN
Changes since 1.321: +5 -5 lines
Diff to previous 1.321 (colored)

Use PDE_SYNC when syncing pdeps

Revision 1.321 / (download) - annotate - [select for diffs], Mon May 11 22:28:22 2015 UTC (8 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.320: +4 -2 lines
Diff to previous 1.320 (colored)

Make sure nptes is a multiple of PAGE_SIZE / L2_S_SIZE.

Revision 1.320 / (download) - annotate - [select for diffs], Mon Apr 13 16:19:42 2015 UTC (8 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.319: +7 -2 lines
Diff to previous 1.319 (colored)

Add pmap locking to pmap_kenter_pa/kremove

Revision 1.319 / (download) - annotate - [select for diffs], Sat Apr 11 15:21:33 2015 UTC (8 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.318: +3 -2 lines
Diff to previous 1.318 (colored)

#include "opt_arm_debug.h" for VERBOSE_INIT_ARM

Revision 1.295.2.4 / (download) - annotate - [select for diffs], Fri Apr 10 20:17:52 2015 UTC (8 years, 10 months ago) by snj
Branch: netbsd-7
Changes since 1.295.2.3: +13 -3 lines
Diff to previous 1.295.2.3 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by skrll in ticket #669):
	sys/arch/arm/arm32/pmap.c: revision 1.318
Fix two bugs.  pmap_is_cached fix for MULTIPROCESSOR (not just ASID on
local cpu -> any valid ASID on any cpu).
pmap_deactivate: update curcpu()->ci_pmap_cur_asid to KERNEL_PID too.

Revision 1.318 / (download) - annotate - [select for diffs], Tue Apr 7 20:36:21 2015 UTC (8 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.317: +13 -3 lines
Diff to previous 1.317 (colored)

Fix two bugs.  pmap_is_cached fix for MULTIPROCESSOR (not just ASID on
local cpu -> any valid ASID on any cpu).
pmap_deactivate: update curcpu()->ci_pmap_cur_asid to KERNEL_PID too.

Revision 1.316.2.1 / (download) - annotate - [select for diffs], Mon Apr 6 15:17:52 2015 UTC (8 years, 10 months ago) by skrll
Branch: nick-nhusb
Changes since 1.316: +3 -5 lines
Diff to previous 1.316 (colored)

Sync with HEAD

Revision 1.317 / (download) - annotate - [select for diffs], Wed Feb 25 13:52:42 2015 UTC (8 years, 11 months ago) by joerg
Branch: MAIN
CVS Tags: nick-nhusb-base-20150406
Changes since 1.316: +3 -5 lines
Diff to previous 1.316 (colored)

Improve inline asm around dsb/dmb/isb:
- always use volatile and mark them as memory barrier
- use the common version from locore.h in all places not included from
  userland

Revision 1.295.2.3 / (download) - annotate - [select for diffs], Mon Nov 10 19:57:26 2014 UTC (9 years, 3 months ago) by martin
Branch: netbsd-7
Changes since 1.295.2.2: +29 -14 lines
Diff to previous 1.295.2.2 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by skrll in ticket #209):
	sys/arch/arm/pic/pic.c: revision 1.25
	sys/arch/arm/arm/cpufunc_asm_armv7.S: revision 1.21
	sys/arch/arm/arm32/pmap.c: revision 1.312
	sys/arch/arm/arm32/bus_dma.c: revision 1.89
	sys/arch/arm/arm32/pmap.c: revision 1.313
	sys/arch/arm/arm32/pmap.c: revision 1.314
	sys/arch/arm/arm32/pmap.c: revision 1.315
	sys/arch/arm/arm32/pmap.c: revision 1.316
Include opt_multiprocessor.h
When allocing a l1page, if a page isn't available, use uvm_wait to wait
for one to become available.  Should fix PR/49364.
Post a dmb before invalidating the cache in the post-{read,write}
operations to ensure that any/all cachelines brought in via speculation
are really flushed.
Ensure all memory operations are complete by before wfi. For example, the
cpu could have just been in uvm_pageidlezero.
In pmap_fault_fixup re-instate the TLB flush for the shared L1 case that
occurs for non-ARM_MMU_EXTENDED kernels.
This fixes rump/rumpkern/t_sp:stress_killer on rpi which is currently
non-ARM_MMU_EXTENDED
Remove an unnecessary flush that sneaked in as part of break-before-make
change.
Remove an XXXNH comment.
Update PTE_SYNC_CURRENT to add a dsb for armv7 - part of the
break-before-make fix.

Revision 1.316 / (download) - annotate - [select for diffs], Mon Nov 10 15:46:33 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
CVS Tags: nick-nhusb-base
Branch point for: nick-nhusb
Changes since 1.315: +14 -8 lines
Diff to previous 1.315 (colored)

Update PTE_SYNC_CURRENT to add a dsb for armv7 - part of the
break-before-make fix.

Revision 1.315 / (download) - annotate - [select for diffs], Mon Nov 10 14:37:14 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.314: +2 -3 lines
Diff to previous 1.314 (colored)

Remove an XXXNH comment.

Revision 1.314 / (download) - annotate - [select for diffs], Mon Nov 10 14:35:59 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.313: +2 -3 lines
Diff to previous 1.313 (colored)

Remove an unnecessary flush that sneaked in as part of break-before-make
change.

Revision 1.313 / (download) - annotate - [select for diffs], Mon Nov 10 14:33:00 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.312: +8 -2 lines
Diff to previous 1.312 (colored)

In pmap_fault_fixup re-instate the TLB flush for the shared L1 case that
occurs for non-ARM_MMU_EXTENDED kernels.

This fixes rump/rumpkern/t_sp:stress_killer on rpi which is currently
non-ARM_MMU_EXTENDED

Revision 1.295.2.2 / (download) - annotate - [select for diffs], Sun Nov 9 16:05:25 2014 UTC (9 years, 3 months ago) by martin
Branch: netbsd-7
Changes since 1.295.2.1: +83 -35 lines
Diff to previous 1.295.2.1 (colored) to branchpoint 1.295 (colored)

Pull up following revision(s) (requested by skrll in ticket #188):
	sys/arch/arm/include/arm32/pmap.h: revision 1.136
	sys/arch/arm/include/armreg.h: revision 1.100
	sys/arch/arm/cortex/gic.c: revision 1.11
	sys/arch/arm/arm32/db_interface.c: revision 1.54
	sys/arch/arm/include/armreg.h: revision 1.101
	sys/arch/arm/cortex/gic.c: revision 1.12
	sys/arch/arm/arm32/arm32_machdep.c: revision 1.107
	sys/arch/arm/arm/cpufunc_asm_armv7.S: revision 1.19
	sys/arch/arm/cortex/a9_mpsubr.S: revision 1.20
	sys/arch/evbarm/conf/BPI: revision 1.5
	sys/arch/arm/cortex/a9_mpsubr.S: revision 1.21
	sys/arch/arm/arm32/pmap.c: revision 1.306
	sys/arch/arm/arm32/db_machdep.c: revision 1.22
	sys/arch/arm/arm32/arm32_tlb.c: revision 1.3
	sys/arch/arm/arm/undefined.c: revision 1.55
	sys/arch/arm/cortex/a9_mpsubr.S: revision 1.22
	sys/arch/arm/arm32/pmap.c: revision 1.307
	sys/arch/arm/arm32/arm32_tlb.c: revision 1.4
	sys/arch/arm/cortex/a9_mpsubr.S: revision 1.23
	sys/arch/arm/arm32/arm32_tlb.c: revision 1.5
	sys/arch/evbarm/conf/BPI: revision 1.8
	sys/arch/arm/cortex/a9_mpsubr.S: revision 1.24
	sys/arch/arm/arm32/arm32_tlb.c: revision 1.6
	sys/arch/arm/arm32/arm32_tlb.c: revision 1.7
	sys/arch/evbarm/conf/CUBIETRUCK: revision 1.5
	sys/arch/arm/pic/pic.c: revision 1.23
	sys/arch/arm/pic/pic.c: revision 1.24
	sys/arch/arm/pic/picvar.h: revision 1.11
	sys/arch/arm/arm/cpufunc_asm_armv7.S: revision 1.20
	sys/arch/arm/mainbus/cpu_mainbus.c: revision 1.16
	sys/arch/arm/arm32/pmap.c: revision 1.298
	sys/arch/arm/arm/cpufunc_asm_arm11.S: revision 1.17
	sys/arch/arm/arm/cpufunc_asm_pj4b.S: revision 1.5
	sys/arch/arm/arm32/pmap.c: revision 1.310
	sys/arch/arm/arm32/pmap.c: revision 1.311
	sys/arch/arm/arm32/arm32_kvminit.c: revision 1.32
	sys/arch/arm/cortex/a9_mpsubr.S: revision 1.19
	sys/arch/arm/arm32/arm32_boot.c: revision 1.10
	sys/arch/arm/arm/ast.c: revision 1.25
	sys/arch/arm/include/armreg.h: revision 1.98
	sys/uvm/pmap/pmap_tlb.c: revision 1.10
	sys/arch/arm/arm32/arm32_boot.c: revision 1.8
	sys/arch/arm/arm32/arm32_boot.c: revision 1.9
	sys/arch/arm/arm/arm_machdep.c: revision 1.43
Various ARM MP fixes.

Revision 1.312 / (download) - annotate - [select for diffs], Sat Nov 8 08:01:34 2014 UTC (9 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.311: +11 -6 lines
Diff to previous 1.311 (colored)

When allocing a l1page, if a page isn't available, use uvm_wait to wait
for one to become available.  Should fix PR/49364.

Revision 1.311 / (download) - annotate - [select for diffs], Fri Nov 7 12:44:58 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.310: +4 -2 lines
Diff to previous 1.310 (colored)

The fixup debug message can report false positives on MULTIPROCESSOR, so
disable them there.

Revision 1.310 / (download) - annotate - [select for diffs], Fri Nov 7 12:43:36 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.309: +5 -4 lines
Diff to previous 1.309 (colored)

In pmap_enter only flush the TLB if really necessary

Revision 1.309 / (download) - annotate - [select for diffs], Wed Nov 5 09:13:16 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.308: +3 -3 lines
Diff to previous 1.308 (colored)

Fix typo in comment

Revision 1.308 / (download) - annotate - [select for diffs], Tue Nov 4 23:58:21 2014 UTC (9 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.307: +4 -6 lines
Diff to previous 1.307 (colored)

pmap_tlb_flushD is for !ARM_MMU_EXTENDED only now

Revision 1.295.2.1 / (download) - annotate - [select for diffs], Thu Oct 30 12:14:36 2014 UTC (9 years, 3 months ago) by martin
Branch: netbsd-7
Changes since 1.295: +2 -8 lines
Diff to previous 1.295 (colored)

Pull up following revision(s) (requested by maxv in ticket #165):
	sys/arch/newsmips/stand/boot/netif_news.c: revision 1.9
	sys/arch/mvme68k/stand/installboot/installboot.c: revision 1.19
	sys/arch/arm/arm32/pmap.c: revision 1.300
	sys/arch/amiga/dev/siop2.c: revision 1.43
	sys/arch/amiga/amiga/disksubr.c: revision 1.62
	sys/arch/news68k/news68k/bus_space.c: revision 1.13
	sys/arch/amiga/dev/siop.c: revision 1.69
	sys/arch/x86/x86/x86_autoconf.c: revision 1.72
Remove dead code in various places under arch/.

Revision 1.307 / (download) - annotate - [select for diffs], Wed Oct 29 22:52:21 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.306: +77 -31 lines
Diff to previous 1.306 (colored)

Apply a bunch of break-before-make, i.e. set PTEs to zero, flush the TLB
(across all CPUs) and set new PTE value. Mostly from matt@ with some
updates from me.

Flush the branch predictor in pmap_update.

Revision 1.306 / (download) - annotate - [select for diffs], Wed Oct 29 22:11:34 2014 UTC (9 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.305: +3 -4 lines
Diff to previous 1.305 (colored)

In pmap_deactivate don't set TTBR with the ASID of the deactivated LWP -
use KERNEL_PID instead.

This is probably a no-op as TTBCR_S_PD0 should (still) be set at the time
of the call to cpu_setttb.

Revision 1.305 / (download) - annotate - [select for diffs], Sat Oct 25 10:58:12 2014 UTC (9 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.304: +2 -3 lines
Diff to previous 1.304 (colored)

Remove katelib.h and references to it.

{Read,Write}{Word,Byte} macros are provided in the files that still use
them. Someone(tm) should convert them to bus_space(9)

Revision 1.304 / (download) - annotate - [select for diffs], Mon Oct 20 07:13:27 2014 UTC (9 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.303: +6 -19 lines
Diff to previous 1.303 (colored)

Reduce code a little. Reviewed by gimpy.

Revision 1.303 / (download) - annotate - [select for diffs], Tue Oct 14 12:31:14 2014 UTC (9 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.302: +3 -3 lines
Diff to previous 1.302 (colored)

Typo in comment

Revision 1.302 / (download) - annotate - [select for diffs], Tue Sep 23 06:31:54 2014 UTC (9 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.301: +4 -6 lines
Diff to previous 1.301 (colored)

Use right conditional for checking nG.

Revision 1.301 / (download) - annotate - [select for diffs], Tue Sep 23 05:45:01 2014 UTC (9 years, 5 months ago) by nonaka
Branch: MAIN
Changes since 1.300: +7 -3 lines
Diff to previous 1.300 (colored)

nG bit exists only in ARMv6 and above.

Revision 1.300 / (download) - annotate - [select for diffs], Sun Sep 21 15:45:46 2014 UTC (9 years, 5 months ago) by christos
Branch: MAIN
Changes since 1.299: +2 -8 lines
Diff to previous 1.299 (colored)

remove dead code

Revision 1.299 / (download) - annotate - [select for diffs], Fri Sep 5 05:25:28 2014 UTC (9 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.298: +10 -8 lines
Diff to previous 1.298 (colored)

Don't nest structure definitions.

Revision 1.298 / (download) - annotate - [select for diffs], Sat Aug 30 13:02:01 2014 UTC (9 years, 5 months ago) by kiyohara
Branch: MAIN
Changes since 1.297: +3 -3 lines
Diff to previous 1.297 (colored)

It expects return value 'va != NULL' from uvm_km_alloc().

Revision 1.236.2.4 / (download) - annotate - [select for diffs], Wed Aug 20 00:02:45 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-maxphys
Changes since 1.236.2.3: +1902 -1113 lines
Diff to previous 1.236.2.3 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.297 / (download) - annotate - [select for diffs], Wed Aug 13 15:06:28 2014 UTC (9 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.296: +4 -2 lines
Diff to previous 1.296 (colored)

Fix for PR/49061
only kassert in pmap_kenter_pa if PMAP_CACHE_PIVT && !ARM_MMU_EXTENDED

Revision 1.296 / (download) - annotate - [select for diffs], Wed Aug 13 05:56:03 2014 UTC (9 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.295: +16 -8 lines
Diff to previous 1.295 (colored)

Fix for PR/49107.
Make sure pmap_copy_page_xscale clears the ptes afters its done with them.

Revision 1.280.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:53:50 2014 UTC (9 years, 6 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.280: +179 -86 lines
Diff to previous 1.280 (colored) next main 1.281 (colored)

Rebase.

Revision 1.295 / (download) - annotate - [select for diffs], Fri Jul 25 15:09:43 2014 UTC (9 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: tls-maxphys-base, tls-earlyentropy-base, netbsd-7-base
Branch point for: netbsd-7
Changes since 1.294: +4 -3 lines
Diff to previous 1.294 (colored)

PTE_SYNC_RANGE a newly allocated L1 page for ARM_MMU_EXTENDED

Revision 1.294 / (download) - annotate - [select for diffs], Sun Jun 15 04:04:01 2014 UTC (9 years, 8 months ago) by ozaki-r
Branch: MAIN
Changes since 1.293: +3 -3 lines
Diff to previous 1.293 (colored)

Add missing semicolon

Revision 1.293 / (download) - annotate - [select for diffs], Thu Jun 5 03:45:48 2014 UTC (9 years, 8 months ago) by matt
Branch: MAIN
Changes since 1.292: +3 -3 lines
Diff to previous 1.292 (colored)

Fix occupancy bug.

Revision 1.224.2.5 / (download) - annotate - [select for diffs], Thu May 22 11:39:31 2014 UTC (9 years, 9 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.224.2.4: +2033 -1140 lines
Diff to previous 1.224.2.4 (colored) to branchpoint 1.224 (colored) next main 1.225 (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.257.2.2 / (download) - annotate - [select for diffs], Sun May 18 17:44:56 2014 UTC (9 years, 9 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.257.2.1: +1718 -841 lines
Diff to previous 1.257.2.1 (colored) next main 1.258 (colored)

sync with head

Revision 1.292 / (download) - annotate - [select for diffs], Wed Apr 30 21:15:06 2014 UTC (9 years, 9 months ago) by joerg
Branch: MAIN
CVS Tags: yamt-pagecache-base9, rmind-smpnet-nbase, rmind-smpnet-base
Changes since 1.291: +3 -3 lines
Diff to previous 1.291 (colored)

pmap_is_current might be unused, tag it as such.

Revision 1.291 / (download) - annotate - [select for diffs], Tue Apr 22 14:20:03 2014 UTC (9 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.290: +3 -3 lines
Diff to previous 1.290 (colored)

Remove stray comment.

Revision 1.290 / (download) - annotate - [select for diffs], Tue Apr 22 14:00:45 2014 UTC (9 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.289: +6 -10 lines
Diff to previous 1.289 (colored)

Call pmap_free_l2_bucket for the kernel pmap so that l2b_occupancy is
updated. pmap_free_l2_bucket already deals with the kernel pmap properly.

ok matt@

Should fix the

panic: kernel debugging assertion "mappings <= l2b->l2b_occupancy" failed:
file "/usr/src/sys/arch/arm/arm32/pmap.c", line 3838

problem reported on port-arm by Joachim Thiemann

Revision 1.289 / (download) - annotate - [select for diffs], Tue Apr 22 12:13:09 2014 UTC (9 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.288: +3 -3 lines
Diff to previous 1.288 (colored)

Fix a format string to actually print the prot

Revision 1.288 / (download) - annotate - [select for diffs], Sun Apr 20 22:31:34 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.287: +3 -3 lines
Diff to previous 1.287 (colored)

Reduce resident_count by number of pages, not number of ptes.

Revision 1.287 / (download) - annotate - [select for diffs], Sat Apr 12 16:03:59 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.286: +4 -3 lines
Diff to previous 1.286 (colored)

KDASSERT -> KDASSERTMSG

Revision 1.286 / (download) - annotate - [select for diffs], Sat Apr 12 09:09:47 2014 UTC (9 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.285: +44 -44 lines
Diff to previous 1.285 (colored)

Trailing whitespace

Revision 1.285 / (download) - annotate - [select for diffs], Sat Apr 12 08:39:58 2014 UTC (9 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.284: +3 -3 lines
Diff to previous 1.284 (colored)

Fix typo and unbreak the build for various arm kernel builds.

Revision 1.284 / (download) - annotate - [select for diffs], Fri Apr 11 04:19:47 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.283: +122 -27 lines
Diff to previous 1.283 (colored)

Add a kernel for the CUBIETRUCK (CUBIEBOARD3).  Allow direct mapping of all
memory (but for now allow the memory mapped above KERNEL_BASE to used for
poolpages).

Revision 1.283 / (download) - annotate - [select for diffs], Thu Apr 10 02:45:55 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.282: +4 -5 lines
Diff to previous 1.282 (colored)

Fix pasto.

Revision 1.282 / (download) - annotate - [select for diffs], Thu Apr 10 02:45:02 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.281: +3 -3 lines
Diff to previous 1.281 (colored)

Fix pmap_extract to deal with non-4KB pages.

Revision 1.281 / (download) - annotate - [select for diffs], Sat Apr 5 22:05:12 2014 UTC (9 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.280: +3 -2 lines
Diff to previous 1.280 (colored)

Add a missing pmap_release_page_lock

Revision 1.280 / (download) - annotate - [select for diffs], Wed Apr 2 15:45:51 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Branch point for: tls-earlyentropy
Changes since 1.279: +3 -3 lines
Diff to previous 1.279 (colored)

Mark omd as diagused for the ARM_MMU_EXTENDED case.

Revision 1.279 / (download) - annotate - [select for diffs], Wed Apr 2 15:35:14 2014 UTC (9 years, 10 months ago) by skrll
Branch: MAIN
Changes since 1.278: +3 -3 lines
Diff to previous 1.278 (colored)

Fix non-DIAGNOSTIC build

Revision 1.278 / (download) - annotate - [select for diffs], Wed Apr 2 14:05:54 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.277: +19 -10 lines
Diff to previous 1.277 (colored)

Init the page_lock to IPL_VM iff VIPT && arm_cache_prefer_mask != 0 otherwise
use IPL_NONE.  Don't bother with page_lock for KMPAGEs.

Revision 1.277 / (download) - annotate - [select for diffs], Wed Apr 2 13:26:22 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.276: +23 -19 lines
Diff to previous 1.276 (colored)

braces are your friends.  use them.

Revision 1.276 / (download) - annotate - [select for diffs], Wed Apr 2 12:36:05 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.275: +4 -3 lines
Diff to previous 1.275 (colored)

Really fix locking this time.

Revision 1.275 / (download) - annotate - [select for diffs], Wed Apr 2 12:04:09 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.274: +19 -15 lines
Diff to previous 1.274 (colored)

Because vector_page might be 0, we have to process the entry L1pt.
Make sure to map the new l2 area after we've grown the kernel.
If msgbufaddr is set, don't alloc space for msgbuf.

Revision 1.274 / (download) - annotate - [select for diffs], Tue Apr 1 18:01:45 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15
Changes since 1.273: +17 -5 lines
Diff to previous 1.273 (colored)

For ARM_MMU_EXTENDED, if the page being mapped asked for EXEC but is not EXEC,
sync it.

Revision 1.273 / (download) - annotate - [select for diffs], Mon Mar 31 01:49:04 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.272: +3 -3 lines
Diff to previous 1.272 (colored)

tag a variable with __diagused

Revision 1.272 / (download) - annotate - [select for diffs], Sun Mar 30 15:55:08 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.271: +10 -7 lines
Diff to previous 1.271 (colored)

Fix debug code in fault_fixup

Revision 1.271 / (download) - annotate - [select for diffs], Sun Mar 30 15:50:51 2014 UTC (9 years, 10 months ago) by matt
Branch: MAIN
Changes since 1.270: +1482 -710 lines
Diff to previous 1.270 (colored)

Make the ARM pmap use ASIDs, split TTBRs, and MP safe.  This only happens for
ARMv6 or later CPUs.  This means that on context switch that the TLBs and
caches no longer to cleaned/flushed.  Also, eXecute Never (XN) protection has
been added so non-exec pages can not be run.  Change the page size for ARMv6+
to be 8KB while allows a L1PT to be a normal page.  This means that the L1PT
is not special.  Use the XN support to only sync pages that are executed from.

Revision 1.270 / (download) - annotate - [select for diffs], Thu Feb 27 18:10:01 2014 UTC (9 years, 11 months ago) by joerg
Branch: MAIN
CVS Tags: riastradh-drm2-base3
Changes since 1.269: +2 -5 lines
Diff to previous 1.269 (colored)

Member will never be null, so remove check.

Revision 1.269 / (download) - annotate - [select for diffs], Wed Feb 26 19:59:49 2014 UTC (9 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.268: +5 -5 lines
Diff to previous 1.268 (colored)

Only track kenter_pa'ed pages if arm_cache_prefer_mask is non-zero.

Revision 1.268 / (download) - annotate - [select for diffs], Wed Feb 26 17:35:21 2014 UTC (9 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.267: +17 -14 lines
Diff to previous 1.267 (colored)

Don't do ref/mod emulation for KENTRY pages.
l2pte_minidata -> l2pte_minidata_p

Revision 1.267 / (download) - annotate - [select for diffs], Wed Feb 26 02:07:58 2014 UTC (9 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.266: +15 -24 lines
Diff to previous 1.266 (colored)

Move pmap_recent_user to ci->ci_pmap_lastuser and
pmap_previous_active_lwp to ci->ci_lastlwp.  Fix some comments.

Revision 1.266 / (download) - annotate - [select for diffs], Wed Feb 26 01:51:11 2014 UTC (9 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.265: +15 -15 lines
Diff to previous 1.265 (colored)

l2pte_valid -> l2pte_valid_p

Revision 1.265 / (download) - annotate - [select for diffs], Wed Feb 26 01:41:40 2014 UTC (9 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.264: +8 -20 lines
Diff to previous 1.264 (colored)

Add support for PMAP_PTE to pmap_kenter_pa

Revision 1.187.8.2 / (download) - annotate - [select for diffs], Sat Feb 15 16:18:36 2014 UTC (10 years ago) by matt
Branch: matt-nb5-mips64
Changes since 1.187.8.1: +1518 -1032 lines
Diff to previous 1.187.8.1 (colored) to branchpoint 1.187 (colored) next main 1.188 (colored)

Merge armv7 support from HEAD, specifically support for the BCM5301X
and BCM56340 evbarm kernels.

Revision 1.264 / (download) - annotate - [select for diffs], Thu Sep 12 14:45:18 2013 UTC (10 years, 5 months ago) by kiyohara
Branch: MAIN
Changes since 1.263: +5 -4 lines
Diff to previous 1.263 (colored)

Fix VIVT cache operation.  Tested on Kirkwood machines.

Revision 1.257.2.1 / (download) - annotate - [select for diffs], Wed Aug 28 23:59:11 2013 UTC (10 years, 5 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.257: +266 -355 lines
Diff to previous 1.257 (colored)

sync with head

Revision 1.263 / (download) - annotate - [select for diffs], Sun Aug 18 06:50:31 2013 UTC (10 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.262: +4 -7 lines
Diff to previous 1.262 (colored)

Include <arm/locore.h>

Revision 1.262 / (download) - annotate - [select for diffs], Wed Jul 3 21:37:35 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2
Changes since 1.261: +157 -158 lines
Diff to previous 1.261 (colored)

Add l2pte_set and l2pte_reset inlines to set/reset a pte.  These will be
used to support > 4KB pages sizes.
Don't use >> L1_S_SHIFT, use L1_IDX() instead.

Revision 1.261 / (download) - annotate - [select for diffs], Wed Jul 3 15:30:24 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.260: +5 -3 lines
Diff to previous 1.260 (colored)

restore deleted conditional

Revision 1.260 / (download) - annotate - [select for diffs], Wed Jul 3 15:26:42 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.259: +3 -3 lines
Diff to previous 1.259 (colored)

Fix c&p error

Revision 1.259 / (download) - annotate - [select for diffs], Wed Jul 3 15:24:35 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.258: +82 -179 lines
Diff to previous 1.258 (colored)

Collapse multiple inlines and move repeated tests into them.
No functional change.

Revision 1.258 / (download) - annotate - [select for diffs], Wed Jul 3 05:23:04 2013 UTC (10 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.257: +33 -23 lines
Diff to previous 1.257 (colored)

Add pmap_domain and pmap_l1_kva inlines.

Revision 1.236.2.3 / (download) - annotate - [select for diffs], Sun Jun 23 06:19:59 2013 UTC (10 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.236.2.2: +59 -14 lines
Diff to previous 1.236.2.2 (colored)

resync from head

Revision 1.257 / (download) - annotate - [select for diffs], Wed Jun 12 21:34:12 2013 UTC (10 years, 8 months ago) by matt
Branch: MAIN
Branch point for: rmind-smpnet
Changes since 1.256: +22 -6 lines
Diff to previous 1.256 (colored)

Add a ARM_HAS_VBAR option which forces the use of the VBAR register.  This
allows much code to deal with vector_page mappings to be eliminated.  On a
BEAGLEBONE kernel, this saves 8KB of text and instructions that never have
to be executed.  (The PJ4B has VBAR but doesn't implement the security
extensions it is part of so a method was needed to allow it use VBAR with
relying on the default test for the security extensions.)

Revision 1.256 / (download) - annotate - [select for diffs], Wed Jun 12 07:13:18 2013 UTC (10 years, 8 months ago) by matt
Branch: MAIN
Changes since 1.255: +15 -4 lines
Diff to previous 1.255 (colored)

If the vector_page is not ARM_VECTORS_{LOW,HIGH}, assume it's in kernel
text and don't do anything special to map it.

Revision 1.255 / (download) - annotate - [select for diffs], Sat May 11 10:15:43 2013 UTC (10 years, 9 months ago) by skrll
Branch: MAIN
Changes since 1.254: +4 -3 lines
Diff to previous 1.254 (colored)

Fix !DDB build.

Revision 1.254 / (download) - annotate - [select for diffs], Fri Mar 29 13:27:08 2013 UTC (10 years, 10 months ago) by matt
Branch: MAIN
CVS Tags: khorben-n900
Changes since 1.253: +24 -7 lines
Diff to previous 1.253 (colored)

Fix pmap_flush_page to also flush the secondary cache, if there is one.
This solves a bus_dma problem with DMA from uncached pages.

Revision 1.236.2.2 / (download) - annotate - [select for diffs], Mon Feb 25 00:28:24 2013 UTC (10 years, 11 months ago) by tls
Branch: tls-maxphys
Changes since 1.236.2.1: +199 -71 lines
Diff to previous 1.236.2.1 (colored)

resync with head

Revision 1.228.2.1.2.3 / (download) - annotate - [select for diffs], Wed Feb 13 23:52:02 2013 UTC (11 years ago) by matt
Branch: matt-nb6-plus
Changes since 1.228.2.1.2.2: +38 -2 lines
Diff to previous 1.228.2.1.2.2 (colored) to branchpoint 1.228.2.1 (colored) next main 1.228.2.2 (colored)

Sync with HEAD

Revision 1.253 / (download) - annotate - [select for diffs], Wed Feb 13 23:14:35 2013 UTC (11 years ago) by matt
Branch: MAIN
CVS Tags: agc-symver-base, agc-symver
Changes since 1.252: +38 -2 lines
Diff to previous 1.252 (colored)

Some armv7 fixes for speculative tlb loads.

Revision 1.228.2.2 / (download) - annotate - [select for diffs], Sat Feb 9 18:29:02 2013 UTC (11 years ago) by riz
Branch: netbsd-6
CVS Tags: 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
Changes since 1.228.2.1: +55 -24 lines
Diff to previous 1.228.2.1 (colored) to branchpoint 1.228 (colored) next main 1.229 (colored)

Pull up following revision(s) (requested by msaitoh in ticket #803):



Revision 1.228.2.1.2.2 / (download) - annotate - [select for diffs], Thu Feb 7 06:52:53 2013 UTC (11 years ago) by matt
Branch: matt-nb6-plus
Changes since 1.228.2.1.2.1: +163 -71 lines
Diff to previous 1.228.2.1.2.1 (colored) to branchpoint 1.228.2.1 (colored)

pullup pmap changes from HEAD

Revision 1.252 / (download) - annotate - [select for diffs], Mon Feb 4 13:37:30 2013 UTC (11 years ago) by macallan
Branch: MAIN
Changes since 1.251: +6 -3 lines
Diff to previous 1.251 (colored)

support ARM32_MMAP_WRITECOMBINE for managed pages as well

Revision 1.251 / (download) - annotate - [select for diffs], Fri Feb 1 15:02:31 2013 UTC (11 years ago) by matt
Branch: MAIN
Changes since 1.250: +45 -24 lines
Diff to previous 1.250 (colored)

cleanup PVF_WRITE & pvh_attrs interaction.
cleanup PVF_WRITE & pvh_attrs interaction.

Revision 1.251 / (download) - annotate - [select for diffs], Fri Feb 1 15:02:31 2013 UTC (11 years ago) by matt
Branch: MAIN
Changes since 1.250: +45 -24 lines
Diff to previous 1.250 (colored)

cleanup PVF_WRITE & pvh_attrs interaction.
cleanup PVF_WRITE & pvh_attrs interaction.

Revision 1.250 / (download) - annotate - [select for diffs], Thu Jan 31 22:01:49 2013 UTC (11 years ago) by skrll
Branch: MAIN
Changes since 1.249: +3 -3 lines
Diff to previous 1.249 (colored)

Another typo in a comment.
Another typo in a comment.

Revision 1.250 / (download) - annotate - [select for diffs], Thu Jan 31 22:01:49 2013 UTC (11 years ago) by skrll
Branch: MAIN
Changes since 1.249: +3 -3 lines
Diff to previous 1.249 (colored)

Another typo in a comment.
Another typo in a comment.

Revision 1.249 / (download) - annotate - [select for diffs], Thu Jan 31 21:57:39 2013 UTC (11 years ago) by skrll
Branch: MAIN
Changes since 1.248: +3 -3 lines
Diff to previous 1.248 (colored)

Typo in comment.
Typo in comment.

Revision 1.249 / (download) - annotate - [select for diffs], Thu Jan 31 21:57:39 2013 UTC (11 years ago) by skrll
Branch: MAIN
Changes since 1.248: +3 -3 lines
Diff to previous 1.248 (colored)

Typo in comment.
Typo in comment.

Revision 1.224.2.4 / (download) - annotate - [select for diffs], Wed Jan 23 00:05:40 2013 UTC (11 years, 1 month ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.224.2.3: +18 -8 lines
Diff to previous 1.224.2.3 (colored) to branchpoint 1.224 (colored)

sync with head

Revision 1.248 / (download) - annotate - [select for diffs], Sat Jan 19 00:15:09 2013 UTC (11 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base8
Changes since 1.247: +7 -5 lines
Diff to previous 1.247 (colored)

Switch from only UVM_PGA_STRAT_ONLY to UVM_PGA_STRAT_FALLBACK in
arm_pmap_alloc_poolpage.

Revision 1.224.2.3 / (download) - annotate - [select for diffs], Wed Jan 16 05:32:43 2013 UTC (11 years, 1 month ago) by yamt
Branch: yamt-pagecache
Changes since 1.224.2.2: +110 -52 lines
Diff to previous 1.224.2.2 (colored) to branchpoint 1.224 (colored)

sync with (a bit old) head

Revision 1.247 / (download) - annotate - [select for diffs], Fri Jan 11 12:04:00 2013 UTC (11 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.246: +13 -5 lines
Diff to previous 1.246 (colored)

Fix a bug in pmap_modify_pv where we didn't set PVF_WRITE on a page after
changing its mapping to writeable.
Add more KASSERTS
Don't go into DDB by default in pmap_fixup.
Fix a bug in pmap_modify_pv where we didnt set PVF_WRITE on a page after
changing its mapping to writeable.
Add more KASSERTS
Dont go into DDB by default in pmap_fixup.

Revision 1.247 / (download) - annotate - [select for diffs], Fri Jan 11 12:04:00 2013 UTC (11 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.246: +13 -5 lines
Diff to previous 1.246 (colored)

Fix a bug in pmap_modify_pv where we didn't set PVF_WRITE on a page after
changing its mapping to writeable.
Add more KASSERTS
Don't go into DDB by default in pmap_fixup.
Fix a bug in pmap_modify_pv where we didnt set PVF_WRITE on a page after
changing its mapping to writeable.
Add more KASSERTS
Dont go into DDB by default in pmap_fixup.

Revision 1.246 / (download) - annotate - [select for diffs], Tue Dec 11 23:51:34 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base7
Changes since 1.245: +3 -3 lines
Diff to previous 1.245 (colored)

Fix C&P bug.

Revision 1.245 / (download) - annotate - [select for diffs], Tue Dec 11 01:51:14 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.244: +4 -4 lines
Diff to previous 1.244 (colored)

Fix c&p error.

Revision 1.244 / (download) - annotate - [select for diffs], Tue Dec 11 01:16:10 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.243: +104 -48 lines
Diff to previous 1.243 (colored)

Optimize pmap_{copy,zerp}_page_generic to understand that when all of memory
is always mapped that you don't have create mappings dynamically.

Revision 1.243 / (download) - annotate - [select for diffs], Mon Dec 10 06:54:23 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.242: +5 -3 lines
Diff to previous 1.242 (colored)

Change a KASSERT to a KASSERTMSG
Change a KASSERT to a KASSERTMSG

Revision 1.243 / (download) - annotate - [select for diffs], Mon Dec 10 06:54:23 2012 UTC (11 years, 2 months ago) by matt
Branch: MAIN
Changes since 1.242: +5 -3 lines
Diff to previous 1.242 (colored)

Change a KASSERT to a KASSERTMSG
Change a KASSERT to a KASSERTMSG

Revision 1.228.2.1.2.1 / (download) - annotate - [select for diffs], Wed Nov 28 22:40:19 2012 UTC (11 years, 2 months ago) by matt
Branch: matt-nb6-plus
Changes since 1.228.2.1: +117 -32 lines
Diff to previous 1.228.2.1 (colored)

Merge improved arm support (especially Cortex) from HEAD
including OMAP and BCM53xx support.

Revision 1.236.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:01:02 2012 UTC (11 years, 3 months ago) by tls
Branch: tls-maxphys
Changes since 1.236: +56 -8 lines
Diff to previous 1.236 (colored)

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

Revision 1.242 / (download) - annotate - [select for diffs], Mon Nov 12 18:00:35 2012 UTC (11 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.241: +5 -5 lines
Diff to previous 1.241 (colored)

C99 types

Revision 1.224.2.2 / (download) - annotate - [select for diffs], Tue Oct 30 17:18:57 2012 UTC (11 years, 3 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.224.2.1: +115 -30 lines
Diff to previous 1.224.2.1 (colored) to branchpoint 1.224 (colored)

sync with head

Revision 1.241 / (download) - annotate - [select for diffs], Wed Oct 17 18:52:15 2012 UTC (11 years, 4 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base6
Changes since 1.240: +21 -2 lines
Diff to previous 1.240 (colored)

Add a PMAP_NEEDS_ALLOC_POOLPAGE / PMAP_ALLOC_POOLPAGE hook so systems can
allocate pool pages from a specific VM freelist.

Revision 1.240 / (download) - annotate - [select for diffs], Wed Oct 17 18:29:10 2012 UTC (11 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.239: +3 -3 lines
Diff to previous 1.239 (colored)

Need to set pmap_needs_pte_sync before calling PTE_SYNC

Revision 1.239 / (download) - annotate - [select for diffs], Wed Oct 17 16:16:23 2012 UTC (11 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.238: +3 -2 lines
Diff to previous 1.238 (colored)

When setting pmap_needs_pte_sync to 1 be sure to sync pte that caused
the issue.

Revision 1.238 / (download) - annotate - [select for diffs], Wed Sep 26 18:18:08 2012 UTC (11 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.237: +13 -2 lines
Diff to previous 1.237 (colored)

If we get a fault we shouldn't have, set pmap_needs_pte_sync and retry.

Revision 1.237 / (download) - annotate - [select for diffs], Sat Sep 22 00:33:37 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.236: +22 -5 lines
Diff to previous 1.236 (colored)

Don't use an asm in pmap_activate to update the TTBR, use cpu_setttb instead
but add a second argument to it to indicate whether the TLB/caches need to be
flushed.  Default cortex to pmap_needs_fixup = 1.  But check the MMFR3 field
to see if the fixed can be skipped.
Use a cf_flag bit 0 to indicate whether the A9 L2 cache should disable (bit 0 = 1)
or enabeld (bit = 0).

With these changes, the A9 MMU can use traverse caches to do MMU tablewalks
Also, make sure all memory has the shareable bit for the A9.

Revision 1.236 / (download) - annotate - [select for diffs], Sun Sep 2 14:46:38 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.235: +3 -3 lines
Diff to previous 1.235 (colored)

Supersections are on armv6 too.

Revision 1.235 / (download) - annotate - [select for diffs], Thu Aug 30 02:05:56 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.234: +9 -3 lines
Diff to previous 1.234 (colored)

Teach pmap_extract about supersections.

Revision 1.234 / (download) - annotate - [select for diffs], Wed Aug 29 18:56:45 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.233: +8 -11 lines
Diff to previous 1.233 (colored)

Make all cortex and arm11 cpus uses writeback cached memories for pagetables

Revision 1.233 / (download) - annotate - [select for diffs], Wed Aug 29 17:08:41 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.232: +4 -4 lines
Diff to previous 1.232 (colored)

Support PMAP_NOCACHE in pmap_kenter_pa
Support PMAP_NOCACHE in pmap_kenter_pa

Revision 1.233 / (download) - annotate - [select for diffs], Wed Aug 29 17:08:41 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.232: +4 -4 lines
Diff to previous 1.232 (colored)

Support PMAP_NOCACHE in pmap_kenter_pa
Support PMAP_NOCACHE in pmap_kenter_pa

Revision 1.232 / (download) - annotate - [select for diffs], Wed Aug 29 05:51:30 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.231: +3 -3 lines
Diff to previous 1.231 (colored)

Use the correct prot mask in vector_page_setprot
Use the correct prot mask in vector_page_setprot

Revision 1.232 / (download) - annotate - [select for diffs], Wed Aug 29 05:51:30 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.231: +3 -3 lines
Diff to previous 1.231 (colored)

Use the correct prot mask in vector_page_setprot
Use the correct prot mask in vector_page_setprot

Revision 1.231 / (download) - annotate - [select for diffs], Mon Aug 27 12:05:30 2012 UTC (11 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.230: +3 -3 lines
Diff to previous 1.230 (colored)

Use the correct (L1_S_PROT, not L2_S_PROT) macro for setting the protection
of the vector page.  This fixes a nasty little bug that shows up on armv7
systems when the vector page physical address changes (bit 12 of the address
is cleared) and then any exception causes the system to hang.

Revision 1.230 / (download) - annotate - [select for diffs], Mon Aug 20 13:03:41 2012 UTC (11 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.229: +52 -18 lines
Diff to previous 1.229 (colored)

Add support for mapping SuperSection on armv6 and armv7.  These always
a domain of 0 so move the kernel from domain 15 to domain 0.

Revision 1.228.2.1 / (download) - annotate - [select for diffs], Thu Aug 9 06:36:46 2012 UTC (11 years, 6 months ago) by jdc
Branch: netbsd-6
CVS Tags: 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, matt-nb6-plus-nbase, matt-nb6-plus-base
Branch point for: matt-nb6-plus
Changes since 1.228: +3 -3 lines
Diff to previous 1.228 (colored)

Pull up revisions:
  src/sys/arch/evbarm/dev/plcomreg.h revisions 1.2,1.3,1.4
  src/sys/arch/evbarm/conf/INTEGRATOR revision 1.65
  src/sys/arch/evbarm/dev/plcom.c revisions 1.34,1.35,1.36,1.37,1.38,1.39,1.40
  src/sys/arch/evbarm/ifpga/plcom_ifpga.c revisions 1.12,1.13,1.14
  src/sys/arch/evbarm/dev/plcomvar.h revisions 1.9,1.10,1.11
  src/sys/arch/evbarm/ifpga/plcom_ifpgavar.h revision 1.2
  src/sys/arch/arm/arm/cpufunc.c revisions 1.105,1.108
  src/sys/arch/arm/arm32/cpu.c revision 1.79
  src/sys/arch/arm/include/armreg.h revisions 1.49,1.54
  src/sys/arch/arm/arm32/pmap.c revision 1.229
  src/sys/arch/arm/arm32/arm32_machdep.c revision 1.77
  src/sys/arch/arm/include/cpu.h revision 1.64
  src/sys/arch/arm/arm/cpufunc_asm_arm1136.S revision 1.3
  src/sys/arch/arm/arm/cpufunc_asm_arm11x6.S revision 1.1
  src/sys/arch/arm/conf/files.arm revision 1.106
  src/sys/arch/arm/include/cpufunc.h revision 1.57
  src/sys/dev/sdmmc/sdhc.c revisions 1.14,1.24
  src/sys/dev/sdmmc/sdhcvar.h revisions 1.7,1.8
  src/sys/arch/evbarm/ifpga/ifpgareg.h revision 1.4
  src/sys/arch/evbarm/integrator/integrator_machdep.c revision 1.69
  src/sys/arch/arm/broadcom/bcm2835_dma.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_emmc.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_intr.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_intr.h revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_obio.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_plcom.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_pm.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_pmvar.h revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_space.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835_tmr.c revision 1.1
  src/sys/arch/arm/broadcom/bcm2835reg.h revision 1.1
  src/sys/arch/arm/broadcom/bcm2835var.h revision 1.1
  src/sys/arch/arm/broadcom/bcm_amba.h revision 1.1
  src/sys/arch/arm/broadcom/files.bcm2835 revision 1.1
  src/sys/arch/evbarm/Makefile revision 1.9
  src/sys/arch/evbarm/conf/RPI revision 1.1
  src/sys/arch/evbarm/conf/files.rpi revision 1.1
  src/sys/arch/evbarm/conf/mk.rpi revision 1.1
  src/sys/arch/evbarm/conf/std.rpi revision 1.1
  src/sys/arch/evbarm/rpi/genassym.cf revision 1.1
  src/sys/arch/evbarm/rpi/rpi.h revision 1.1
  src/sys/arch/evbarm/rpi/rpi_machdep.c revision 1.1
  src/sys/arch/evbarm/rpi/rpi_start.S revision 1.1,1.2
  src/etc/etc.evbarm/Makefile.inc revision 1.28
(requested by skrll in ticket #454).

don't mix #define<TAB> and #define<SPACE> in a file.

avoid warning with options PLCOM_DEBUG for INTEGRATOR.

Rename register values. No functional change - same code before and after.

Existing names are prefixed with PL01X_ where they're common between the
PL010 and the PL011. The PL010_/PL011_ prefixes are added where they're
found only on the respective chips.

Replace the simple_lock with a kmutex_t.  Update the locking to match
com(4) in the few places it didn't already.

DOH.  Replace a line that got accidently deleted in the last commit.

device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t

Add the 'Z' to the 1176 cpu product name.

ok matt@

Fix locking botch introduced in 1.36.

Fix a KASSERT. From/OK'ed by matt@

Fix racy softint dispatch that lead to KASSERT(si->si_active) in
softint_execute

Discussed with matt@. "Looks good to me"

Add the documented ARM11[37]6 Auxiliary control register defines.

Add support for the ARM1176JZS

Add a flag for the lack of LED_ON in HOST_CTL (ti omap3 doesn't do that).

Provide a method for attachments to specify capabilites.

Add support for the PL011 to plcom. Pull across a bunch of fixes from
com(4) while I'm here and do some other tidyup.

Tested on a RaspberryPi.

PL010 not tested.

Initial commit of support for the RaspberryPI (www.raspberrypi.org)

This is enough for serial console via the gpio header pins and to get to
multiuser.

A huge thank you to Matt Thomas for all his help.

Add RPI to KERNEL_SETS

Remove #if 0 code.

Revision 1.229 / (download) - annotate - [select for diffs], Fri Jul 13 06:02:58 2012 UTC (11 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.228: +3 -3 lines
Diff to previous 1.228 (colored)

Fix a KASSERT. From/OK'ed by matt@

Revision 1.224.2.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:06:04 2012 UTC (11 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.224: +75 -104 lines
Diff to previous 1.224 (colored)

sync with head

Revision 1.224.6.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:31:23 2012 UTC (12 years ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.224: +75 -104 lines
Diff to previous 1.224 (colored) next main 1.225 (colored)

merge to -current.

Revision 1.228 / (download) - annotate - [select for diffs], Sun Jan 29 20:16:16 2012 UTC (12 years ago) by he
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, netbsd-6-base, 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: netbsd-6
Changes since 1.227: +4 -2 lines
Diff to previous 1.227 (colored)

Only declare helper variable which is only used in KASSERT() if
DIAGNOSTIC is defined, to avoid "variable defined but never used"
warning if DIAGNOSTIC isn't defined, and KASSERT() expands to
nothing.

Revision 1.227 / (download) - annotate - [select for diffs], Sat Jan 28 16:16:41 2012 UTC (12 years ago) by matt
Branch: MAIN
Changes since 1.226: +36 -5 lines
Diff to previous 1.226 (colored)

Since we don't do MULTIPROCESSOR, and hence preemption, locking the pvlists
doesn't really matter.

Revision 1.226 / (download) - annotate - [select for diffs], Sat Jan 28 00:11:46 2012 UTC (12 years ago) by matt
Branch: MAIN
Changes since 1.225: +38 -100 lines
Diff to previous 1.225 (colored)

Don't use simple locks.

Revision 1.225 / (download) - annotate - [select for diffs], Fri Jan 27 19:48:38 2012 UTC (12 years ago) by para
Branch: MAIN
Changes since 1.224: +6 -6 lines
Diff to previous 1.224 (colored)

extending vmem(9) to be able to allocated resources for it's own needs.
simplifying uvm_map handling (no special kernel entries anymore no relocking)
make malloc(9) a thin wrapper around kmem(9)
(with private interface for interrupt safety reasons)

releng@ acknowledged

Revision 1.224 / (download) - annotate - [select for diffs], Fri Jul 1 20:57:45 2011 UTC (12 years, 7 months ago) by dyoung
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.223: +3 -3 lines
Diff to previous 1.223 (colored)

#include <sys/bus.h> instead of <machine/bus.h>.

Revision 1.223 / (download) - annotate - [select for diffs], Thu Jun 30 20:09:19 2011 UTC (12 years, 7 months ago) by wiz
Branch: MAIN
Changes since 1.222: +3 -3 lines
Diff to previous 1.222 (colored)

dependant -> dependent

Revision 1.221.2.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:18:59 2011 UTC (12 years, 8 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.221: +20 -15 lines
Diff to previous 1.221 (colored) next main 1.222 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.222 / (download) - annotate - [select for diffs], Sun Jun 12 03:35:39 2011 UTC (12 years, 8 months ago) by rmind
Branch: MAIN
Changes since 1.221: +20 -15 lines
Diff to previous 1.221 (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.219.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:05:01 2011 UTC (12 years, 8 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.219: +122 -4 lines
Diff to previous 1.219 (colored) next main 1.220 (colored)

Sync with HEAD.

Revision 1.212.2.6 / (download) - annotate - [select for diffs], Thu May 19 03:42:58 2011 UTC (12 years, 9 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.5: +12 -7 lines
Diff to previous 1.212.2.5 (colored) to branchpoint 1.212 (colored) next main 1.213 (colored)

Implement sharing of vnode_t::v_interlock amongst vnodes:
- Lock is shared amongst UVM objects using uvm_obj_setlock() or getnewvnode().
- Adjust vnode cache to handle unsharing, add VI_LOCKSHARE flag for that.
- Use sharing in tmpfs and layerfs for underlying object.
- Simplify locking in ubc_fault().
- Sprinkle some asserts.

Discussed with ad@.

Revision 1.212.2.5 / (download) - annotate - [select for diffs], Thu Apr 21 01:40:51 2011 UTC (12 years, 10 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.4: +84 -0 lines
Diff to previous 1.212.2.4 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.221 / (download) - annotate - [select for diffs], Thu Mar 10 07:47:14 2011 UTC (12 years, 11 months ago) by bsh
Branch: MAIN
CVS Tags: rmind-uvmplock-nbase, rmind-uvmplock-base, jym-xensuspend-nbase, jym-xensuspend-base, cherry-xenmp-base
Branch point for: cherry-xenmp
Changes since 1.220: +86 -2 lines
Diff to previous 1.220 (colored)

Preliminary ARM11 MPCore support.

I have confirmed this commit doesn't affect existing evbarm kernels by
comparing binaries.

Revision 1.212.2.4 / (download) - annotate - [select for diffs], Sat Mar 5 20:49:31 2011 UTC (12 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.3: +478 -398 lines
Diff to previous 1.212.2.3 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.219.4.1 / (download) - annotate - [select for diffs], Sat Mar 5 15:09:32 2011 UTC (12 years, 11 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.219: +36 -2 lines
Diff to previous 1.219 (colored) next main 1.220 (colored)

Sync with HEAD

Revision 1.220 / (download) - annotate - [select for diffs], Mon Feb 28 10:03:49 2011 UTC (12 years, 11 months ago) by macallan
Branch: MAIN
CVS Tags: bouyer-quota2-nbase
Changes since 1.219: +38 -4 lines
Diff to previous 1.219 (colored)

implement arm32_pmap_flags() to allow mappings with write buffering enabled,
mostly for video memory
Tested on shark

Revision 1.211.2.23 / (download) - annotate - [select for diffs], Mon Nov 15 15:11:53 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.22: +0 -7 lines
Diff to previous 1.211.2.22 (colored) to branchpoint 1.211 (colored) next main 1.212 (colored)

Revert xmd(4).

Revision 1.219 / (download) - annotate - [select for diffs], Fri Nov 12 07:59:25 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base7, uebayasi-xip-base6, matt-mips64-premerge-20101231, jruoho-x86intr-base, bouyer-quota2-base
Branch point for: jruoho-x86intr, bouyer-quota2
Changes since 1.218: +0 -2 lines
Diff to previous 1.218 (colored)

Put VM_PAGE_TO_MD() definition in one place.  No functional changes.

Revision 1.218 / (download) - annotate - [select for diffs], Wed Nov 10 09:27:22 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: MAIN
Changes since 1.217: +6 -5 lines
Diff to previous 1.217 (colored)

Use more VM_PHYSMEM_*() accessors.  No functional changes.

Revision 1.211.2.22 / (download) - annotate - [select for diffs], Wed Nov 10 08:59:13 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.21: +2 -2 lines
Diff to previous 1.211.2.21 (colored) to branchpoint 1.211 (colored)

Fix thinko; make vm_physseg ptr swap really work.

Revision 1.211.2.21 / (download) - annotate - [select for diffs], Wed Nov 10 08:04:59 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.20: +0 -1 lines
Diff to previous 1.211.2.20 (colored) to branchpoint 1.211 (colored)

opt_xip.h isn't needed any more here.

Revision 1.211.2.20 / (download) - annotate - [select for diffs], Wed Nov 10 03:36:26 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.19: +2 -2 lines
Diff to previous 1.211.2.19 (colored) to branchpoint 1.211 (colored)

Always use VM_PHYSMEM_PTR().

Revision 1.211.2.19 / (download) - annotate - [select for diffs], Sat Nov 6 08:08:14 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.18: +4 -2 lines
Diff to previous 1.211.2.18 (colored) to branchpoint 1.211 (colored)

Sync with HEAD.

Revision 1.217 / (download) - annotate - [select for diffs], Wed Nov 3 16:59:19 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base5, uebayasi-xip-base4
Changes since 1.216: +1 -1 lines
Diff to previous 1.216 (colored)

Fix build of IXM1200 too.  Pointed out by cegger, thanks.

Revision 1.216 / (download) - annotate - [select for diffs], Tue Nov 2 06:33:22 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: MAIN
Changes since 1.215: +2 -2 lines
Diff to previous 1.215 (colored)

Fix build of XScale.

Revision 1.211.2.18 / (download) - annotate - [select for diffs], Sun Oct 31 03:46:16 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.17: +1 -1 lines
Diff to previous 1.211.2.17 (colored) to branchpoint 1.211 (colored)

We already have a flag PMAP_NOCACHE.  s/PMAP_UNMANAGED/PMAN_NOCACHE/.
Pointed out by Chuck Silvers, thanks.

Revision 1.211.2.17 / (download) - annotate - [select for diffs], Sun Oct 31 03:43:02 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.16: +54 -45 lines
Diff to previous 1.211.2.16 (colored) to branchpoint 1.211 (colored)

More struct vm_page * -> struct vm_page_md * adjustments.

Revision 1.215 / (download) - annotate - [select for diffs], Sat Oct 30 16:14:08 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: MAIN
Changes since 1.214: +435 -388 lines
Diff to previous 1.214 (colored)

Pass struct vm_page_md * where possible.

This causes 1% code increase, mainly because additional argument
(paddr_t) affects register usage.  This will be fixed when per-page
data structure (struct vm_page) is redone, and physical address
can be retrieved from struct vm_page_md *.

Tested on (uncommitted) i.MX35 (ARM1136).

Revision 1.211.2.16 / (download) - annotate - [select for diffs], Sat Oct 30 08:41:06 2010 UTC (13 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.15: +7 -0 lines
Diff to previous 1.211.2.15 (colored) to branchpoint 1.211 (colored)

Implement pmap_physload_device(9) to replace xmd(4) MD backend.
Implement pmap_mmap(9) and use it from mem(4) and xmd(4).

Revision 1.211.2.15 / (download) - annotate - [select for diffs], Tue Aug 17 06:44:02 2010 UTC (13 years, 6 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.14: +92 -22 lines
Diff to previous 1.211.2.14 (colored) to branchpoint 1.211 (colored)

Sync with HEAD.

Revision 1.173.2.4 / (download) - annotate - [select for diffs], Wed Aug 11 22:51:39 2010 UTC (13 years, 6 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173.2.3: +94 -24 lines
Diff to previous 1.173.2.3 (colored) to branchpoint 1.173 (colored) next main 1.174 (colored)

sync with head.

Revision 1.211.2.14 / (download) - annotate - [select for diffs], Wed Jul 7 16:35:25 2010 UTC (13 years, 7 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.13: +0 -1 lines
Diff to previous 1.211.2.13 (colored) to branchpoint 1.211 (colored)

Clean up; merge options DIRECT_PAGE into options XIP.

Revision 1.212.2.3 / (download) - annotate - [select for diffs], Sat Jul 3 01:19:13 2010 UTC (13 years, 7 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.2: +89 -19 lines
Diff to previous 1.212.2.2 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.214 / (download) - annotate - [select for diffs], Wed Jun 16 22:06:53 2010 UTC (13 years, 8 months ago) by jmcneill
Branch: MAIN
CVS Tags: yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base3, uebayasi-xip-base2
Changes since 1.213: +89 -19 lines
Diff to previous 1.213 (colored)

PR port-arm/43299: Support added for igepv2/cortexa8/omap3530

Apply patch from PR, with build fixes. ok skrll, matt

Revision 1.211.2.13 / (download) - annotate - [select for diffs], Mon May 31 13:26:36 2010 UTC (13 years, 8 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.12: +1 -1 lines
Diff to previous 1.211.2.12 (colored) to branchpoint 1.211 (colored)

Re-define the definition of "device page"; device pages are pages of
device memory.  Pages which don't have vm_page (== can't be used for
generic use), but whose PV are tracked, are called "direct pages" from
now.

Revision 1.212.2.2 / (download) - annotate - [select for diffs], Sun May 30 05:16:37 2010 UTC (13 years, 8 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212.2.1: +7 -7 lines
Diff to previous 1.212.2.1 (colored) to branchpoint 1.212 (colored)

sync with head

Revision 1.213 / (download) - annotate - [select for diffs], Fri May 14 05:02:05 2010 UTC (13 years, 9 months ago) by cegger
Branch: MAIN
Changes since 1.212: +7 -7 lines
Diff to previous 1.212 (colored)

Move PMAP_KMPAGE to be used in pmap_kenter_pa flags argument.
'Looks good to me' gimpy@

Revision 1.211.2.12 / (download) - annotate - [select for diffs], Fri Apr 30 14:39:07 2010 UTC (13 years, 9 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.11: +1 -1 lines
Diff to previous 1.211.2.11 (colored) to branchpoint 1.211 (colored)

Sync with HEAD.

Revision 1.211.2.11 / (download) - annotate - [select for diffs], Wed Apr 28 08:31:05 2010 UTC (13 years, 9 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.10: +4 -3 lines
Diff to previous 1.211.2.10 (colored) to branchpoint 1.211 (colored)

Always use struct vm_physseg *vm_physmem_ptrs[] in MD code.

Revision 1.211.2.10 / (download) - annotate - [select for diffs], Tue Apr 27 07:19:28 2010 UTC (13 years, 10 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.9: +2 -1 lines
Diff to previous 1.211.2.9 (colored) to branchpoint 1.211 (colored)

Support PMAP_UNMANAGED in some pmaps.

(Others should be converted eventually, but no problem while managed
device page is not used.)

Revision 1.187.8.1 / (download) - annotate - [select for diffs], Wed Apr 21 00:33:52 2010 UTC (13 years, 10 months ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.187: +21 -3 lines
Diff to previous 1.187 (colored)

sync to netbsd-5

Revision 1.212.2.1 / (download) - annotate - [select for diffs], Tue Mar 16 15:38:02 2010 UTC (13 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.212: +13 -13 lines
Diff to previous 1.212 (colored)

Change struct uvm_object::vmobjlock to be dynamically allocated with
mutex_obj_alloc().  It allows us to share the locks among UVM objects.

Revision 1.173.2.3 / (download) - annotate - [select for diffs], Thu Mar 11 15:02:04 2010 UTC (13 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173.2.2: +125 -108 lines
Diff to previous 1.173.2.2 (colored) to branchpoint 1.173 (colored)

sync with head

Revision 1.211.2.9 / (download) - annotate - [select for diffs], Thu Feb 25 03:30:22 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.8: +4 -2 lines
Diff to previous 1.211.2.8 (colored) to branchpoint 1.211 (colored)

A few more VM_PAGE_TO_MD().

Revision 1.211.2.8 / (download) - annotate - [select for diffs], Sat Feb 20 16:48:57 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.7: +2 -0 lines
Diff to previous 1.211.2.7 (colored) to branchpoint 1.211 (colored)

Fix \!DIAGNOSTIC build.

Revision 1.212 / (download) - annotate - [select for diffs], Mon Feb 15 07:55:33 2010 UTC (14 years ago) by skrll
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, uebayasi-xip-base1
Branch point for: rmind-uvmplock
Changes since 1.211: +3 -3 lines
Diff to previous 1.211 (colored)

Typo in comment.

Revision 1.211.2.7 / (download) - annotate - [select for diffs], Wed Feb 10 15:48:28 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.6: +5 -4 lines
Diff to previous 1.211.2.6 (colored) to branchpoint 1.211 (colored)

Adjust previous.

Revision 1.211.2.6 / (download) - annotate - [select for diffs], Wed Feb 10 15:37:48 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.5: +185 -159 lines
Diff to previous 1.211.2.5 (colored) to branchpoint 1.211 (colored)

Replace all remaining pg->mdpage references with VM_PAGE_TO_MD().  Now struct
vm_page * is fully opaque.

Revision 1.211.2.5 / (download) - annotate - [select for diffs], Wed Feb 10 14:18:30 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.4: +2 -15 lines
Diff to previous 1.211.2.4 (colored) to branchpoint 1.211 (colored)

Fix previous again & use VM_PAGE_TO_MD() where appropriate.

Revision 1.211.2.4 / (download) - annotate - [select for diffs], Wed Feb 10 13:58:08 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.3: +175 -155 lines
Diff to previous 1.211.2.3 (colored) to branchpoint 1.211 (colored)

Convert pmap_enter() and pmap_vac_me_harder().

Revision 1.211.2.3 / (download) - annotate - [select for diffs], Wed Feb 10 13:26:22 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.2: +19 -19 lines
Diff to previous 1.211.2.2 (colored) to branchpoint 1.211 (colored)

Convert pmap_enter_pv().

Revision 1.211.2.2 / (download) - annotate - [select for diffs], Wed Feb 10 13:23:57 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211.2.1: +49 -49 lines
Diff to previous 1.211.2.1 (colored) to branchpoint 1.211 (colored)

Convert pmap_remove_pv() / pmap_modify_pv() to take struct vm_page_md *.

Revision 1.211.2.1 / (download) - annotate - [select for diffs], Wed Feb 10 12:53:26 2010 UTC (14 years ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.211: +22 -22 lines
Diff to previous 1.211 (colored)

Start changing this to be ready for device page (XIP).  The basic rule is
device pages don't have struct vm_page * objects.  Instead per-page data
(mainly PV mappings) is rooted from the global struct vm_page_md array.

Convert 2 functions to take struct vm_page_md * instead of struct vm_page *.

Revision 1.211 / (download) - annotate - [select for diffs], Sat Jan 2 07:53:29 2010 UTC (14 years, 1 month ago) by he
Branch: MAIN
CVS Tags: uebayasi-xip-base
Branch point for: uebayasi-xip
Changes since 1.210: +3 -3 lines
Diff to previous 1.210 (colored)

Remove a shadowed and unused local declaration so that this builds again.

Revision 1.210 / (download) - annotate - [select for diffs], Fri Jan 1 02:32:28 2010 UTC (14 years, 1 month ago) by uebayasi
Branch: MAIN
Changes since 1.209: +6 -0 lines
Diff to previous 1.209 (colored)

Sprinkle assertions after calling pmap_get_l2_bucket().

Revision 1.209 / (download) - annotate - [select for diffs], Thu Dec 31 18:34:56 2009 UTC (14 years, 1 month ago) by uebayasi
Branch: MAIN
Changes since 1.208: +5 -5 lines
Diff to previous 1.208 (colored)

Use pmap_is_current() where appropriate.  No functional changes.

Revision 1.208 / (download) - annotate - [select for diffs], Thu Dec 31 16:00:53 2009 UTC (14 years, 1 month ago) by uebayasi
Branch: MAIN
Changes since 1.207: +1 -2 lines
Diff to previous 1.207 (colored)

pmap_page_remove(): remove an unused local variable; no functional changes.

Revision 1.207 / (download) - annotate - [select for diffs], Thu Dec 31 02:36:14 2009 UTC (14 years, 1 month ago) by uebayasi
Branch: MAIN
Changes since 1.206: +6 -6 lines
Diff to previous 1.206 (colored)

Correct assertions for PMAP_CACHE_VIPT code; if page coloring is disabled
(arm_cache_prefer_mask == 0), pvh_attrs has never PVF_COLORED, so don't assert
it.  No functional changes.

Revision 1.206 / (download) - annotate - [select for diffs], Mon Dec 28 15:13:57 2009 UTC (14 years, 1 month ago) by uebayasi
Branch: MAIN
Changes since 1.205: +19 -16 lines
Diff to previous 1.205 (colored)

Indent.

Revision 1.205 / (download) - annotate - [select for diffs], Mon Dec 28 15:02:59 2009 UTC (14 years, 1 month ago) by uebayasi
Branch: MAIN
Changes since 1.204: +36 -36 lines
Diff to previous 1.204 (colored)

Always name struct pv_entry * as pv, not pve.  No binary change.

Revision 1.204 / (download) - annotate - [select for diffs], Sun Dec 27 05:14:56 2009 UTC (14 years, 1 month ago) by uebayasi
Branch: MAIN
Changes since 1.203: +24 -3 lines
Diff to previous 1.203 (colored)

Add write-through cache work-around for ARM11 as well as ARM9/ARM10.  Analyzed
& tested on i.MX35 with help from Tsubai Masanari.

Revision 1.187.4.1 / (download) - annotate - [select for diffs], Thu Dec 3 09:26:59 2009 UTC (14 years, 2 months ago) by sborrill
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, 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.187: +21 -3 lines
Diff to previous 1.187 (colored) next main 1.188 (colored)

Pull up the following revisions(s) (requested by scw in ticket #1168):
	sys/arch/arm/arm32/pmap.c:	revision 1.203

Work-around a possible process exit corner case which can leave stale
data in the cache after a context-switch. Addresses kern/41058.

Revision 1.203 / (download) - annotate - [select for diffs], Sat Nov 28 11:44:45 2009 UTC (14 years, 2 months ago) by scw
Branch: MAIN
CVS Tags: matt-premerge-20091211
Changes since 1.202: +21 -3 lines
Diff to previous 1.202 (colored)

Apply some band-aid to pmap_activate() for PR kern/41058:

There's a corner case here which can leave turds in the cache as
reported in kern/41058. They're probably left over during tear-down and
switching away from an exiting process. Until the root cause is identified
and fixed, zap the cache when switching pmaps. This will result in a few
unnecessary cache flushes, but that's better than silently corrupting data.

Also remove an extraneous return statement in pmap_page_protect() which
crept in during the matt-armv6 merge.

Revision 1.202 / (download) - annotate - [select for diffs], Sat Nov 21 20:32:18 2009 UTC (14 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.201: +2 -3 lines
Diff to previous 1.201 (colored)

Use lwp_getpcb() on ARM (and acorn26/32), clean from struct user usage.

Revision 1.201 / (download) - annotate - [select for diffs], Sat Nov 7 07:27:41 2009 UTC (14 years, 3 months ago) by cegger
Branch: MAIN
Changes since 1.200: +6 -5 lines
Diff to previous 1.200 (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.200 / (download) - annotate - [select for diffs], Thu Oct 22 19:50:55 2009 UTC (14 years, 4 months ago) by rmind
Branch: MAIN
Changes since 1.199: +9 -20 lines
Diff to previous 1.199 (colored)

Simplify pmap_remove() a little by avoiding pmap_do_remove() layer, since
possibility to skip wired mappings is not needed anymore.  Apart from that,
no functional differences are intended.

Revision 1.199 / (download) - annotate - [select for diffs], Wed Oct 21 21:11:59 2009 UTC (14 years, 4 months ago) by rmind
Branch: MAIN
Changes since 1.198: +2 -21 lines
Diff to previous 1.198 (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.195.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:16:12 2009 UTC (14 years, 9 months ago) by jym
Branch: jym-xensuspend
Changes since 1.195: +10 -11 lines
Diff to previous 1.195 (colored) next main 1.196 (colored)

Sync with HEAD.

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

Revision 1.173.2.2 / (download) - annotate - [select for diffs], Mon May 4 08:10:38 2009 UTC (14 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173.2.1: +644 -292 lines
Diff to previous 1.173.2.1 (colored) to branchpoint 1.173 (colored)

sync with head.

Revision 1.187.2.2 / (download) - annotate - [select for diffs], Tue Apr 28 07:33:43 2009 UTC (14 years, 9 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.187.2.1: +10 -11 lines
Diff to previous 1.187.2.1 (colored) to branchpoint 1.187 (colored) next main 1.188 (colored)

Sync with HEAD.

Revision 1.198 / (download) - annotate - [select for diffs], Tue Apr 21 21:29:58 2009 UTC (14 years, 10 months ago) by cegger
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base, jymxensuspend-base
Changes since 1.197: +5 -5 lines
Diff to previous 1.197 (colored)

change pmap flags argument from int to u_int.
discussed with christos@ on source-changes-d@

Revision 1.197 / (download) - annotate - [select for diffs], Sun Mar 15 22:20:10 2009 UTC (14 years, 11 months ago) by cegger
Branch: MAIN
Changes since 1.196: +3 -3 lines
Diff to previous 1.196 (colored)

ansify function definitions

Revision 1.196 / (download) - annotate - [select for diffs], Mon Mar 9 08:42:36 2009 UTC (14 years, 11 months ago) by nonaka
Branch: MAIN
Changes since 1.195: +6 -7 lines
Diff to previous 1.195 (colored)

avail_start and avail_end is paddr_t.

Revision 1.187.2.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:15:57 2009 UTC (15 years, 1 month ago) by skrll
Branch: nick-hppapmap
Changes since 1.187: +192 -109 lines
Diff to previous 1.187 (colored)

Sync with HEAD.

Revision 1.171.6.7 / (download) - annotate - [select for diffs], Sat Jan 17 13:27:52 2009 UTC (15 years, 1 month ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.6: +190 -107 lines
Diff to previous 1.171.6.6 (colored) to branchpoint 1.171 (colored) next main 1.172 (colored)

Sync with HEAD.

Revision 1.195 / (download) - annotate - [select for diffs], Thu Jan 8 01:42:48 2009 UTC (15 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: nick-hppapmap-base2, mjf-devfs2-base
Branch point for: jym-xensuspend
Changes since 1.194: +16 -2 lines
Diff to previous 1.194 (colored)

When allocating a KMPAGE and it has multiple colors, make sure to flush them.
Add some more KASSERTs for multiple colors (or lack thereof).

Revision 1.194 / (download) - annotate - [select for diffs], Tue Dec 30 05:51:19 2008 UTC (15 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.193: +162 -103 lines
Diff to previous 1.193 (colored)

Reclaim PVF_KNC in VIPT to be PVF_MULTCLR (page has multiple colors).
Track when a page is mapping in multiple colors and deal with the ramifications.
When a page's MOD attribute is cleared, clean it from the cache.
Fix a logic inversion.

With these changes, the TI SDP2420 H4 board can successfully natively build a
TISDP2420 kernel.

Revision 1.180.2.2 / (download) - annotate - [select for diffs], Sat Dec 13 01:13:01 2008 UTC (15 years, 2 months ago) by haad
Branch: haad-dm
Changes since 1.180.2.1: +0 -6480 lines
Diff to previous 1.180.2.1 (colored) next main 1.181 (colored)

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

Revision 1.193 / (download) - annotate - [select for diffs], Wed Dec 10 11:10:18 2008 UTC (15 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: haad-nbase2, haad-dm-base2, haad-dm-base
Changes since 1.192: +3 -3 lines
Diff to previous 1.192 (colored)

Make kernel_pmap_ptr a const.  Requested by steve_martin.

Revision 1.192 / (download) - annotate - [select for diffs], Tue Dec 9 20:45:44 2008 UTC (15 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.191: +4 -3 lines
Diff to previous 1.191 (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.191 / (download) - annotate - [select for diffs], Wed Nov 19 06:24:04 2008 UTC (15 years, 3 months ago) by matt
Branch: MAIN
CVS Tags: ad-audiomp2-base, ad-audiomp2
Changes since 1.190: +7 -4 lines
Diff to previous 1.190 (colored)

Allocate /dev/mem's page in pmap_init.  Mark /dev/mem as MPSAFE.  Ansify.

Revision 1.190 / (download) - annotate - [select for diffs], Wed Nov 12 12:35:57 2008 UTC (15 years, 3 months ago) by ad
Branch: MAIN
Changes since 1.189: +3 -3 lines
Diff to previous 1.189 (colored)

Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.

Revision 1.189 / (download) - annotate - [select for diffs], Tue Nov 4 07:21:24 2008 UTC (15 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.188: +5 -2 lines
Diff to previous 1.188 (colored)

Use a mutex to control access DEV_MEM.

Revision 1.188 / (download) - annotate - [select for diffs], Tue Nov 4 07:10:01 2008 UTC (15 years, 3 months ago) by matt
Branch: MAIN
Changes since 1.187: +9 -6 lines
Diff to previous 1.187 (colored)

Protect some code with if (pg) { .. }

Revision 1.180.2.1 / (download) - annotate - [select for diffs], Sun Oct 19 22:15:41 2008 UTC (15 years, 4 months ago) by haad
Branch: haad-dm
Changes since 1.180: +459 -232 lines
Diff to previous 1.180 (colored)

Sync with HEAD.

Revision 1.175.2.3 / (download) - annotate - [select for diffs], Fri Oct 10 22:29:03 2008 UTC (15 years, 4 months ago) by skrll
Branch: wrstuden-revivesa
Changes since 1.175.2.2: +3 -3 lines
Diff to previous 1.175.2.2 (colored) to branchpoint 1.175 (colored) next main 1.176 (colored)

Sync with HEAD.

Revision 1.171.6.6 / (download) - annotate - [select for diffs], Sun Oct 5 20:11:25 2008 UTC (15 years, 4 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.5: +1 -1 lines
Diff to previous 1.171.6.5 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.187 / (download) - annotate - [select for diffs], Sun Sep 28 21:27:11 2008 UTC (15 years, 4 months ago) by skrll
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-4, 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, 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, haad-dm-base1
Branch point for: nick-hppapmap, netbsd-5, matt-nb5-mips64
Changes since 1.186: +3 -3 lines
Diff to previous 1.186 (colored)

Typo in comment.

Revision 1.171.6.5 / (download) - annotate - [select for diffs], Sun Sep 28 10:39:47 2008 UTC (15 years, 4 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.4: +469 -207 lines
Diff to previous 1.171.6.4 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.175.2.2 / (download) - annotate - [select for diffs], Thu Sep 18 04:33:18 2008 UTC (15 years, 5 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.175.2.1: +479 -209 lines
Diff to previous 1.175.2.1 (colored) to branchpoint 1.175 (colored)

Sync with wrstuden-revivesa-base-2.

Revision 1.186 / (download) - annotate - [select for diffs], Thu Aug 14 14:54:32 2008 UTC (15 years, 6 months ago) by matt
Branch: MAIN
CVS Tags: wrstuden-revivesa-base-3, wrstuden-revivesa-base-2
Changes since 1.185: +42 -13 lines
Diff to previous 1.185 (colored)

Now that we track pages used by any of the kernel memory allocators,
keep a count of them and export it as a sysctl node machdep.kmpages

Revision 1.185 / (download) - annotate - [select for diffs], Wed Aug 13 06:05:54 2008 UTC (15 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.184: +72 -60 lines
Diff to previous 1.184 (colored)

Fix a few more corner cases.  Always KMPAGE or pages with unmanaged writeable
kernel mappings as modified.  Only ever set DIRTY bit is DMOD is true and
NC is false.  Don't modify unmanaged mappings in pmap_clearbit.

Revision 1.184 / (download) - annotate - [select for diffs], Fri Aug 8 06:21:09 2008 UTC (15 years, 6 months ago) by dogcow
Branch: MAIN
Changes since 1.183: +3 -3 lines
Diff to previous 1.183 (colored)

fix "warning: 'npv' may be used uninitialized in this function"

Revision 1.183 / (download) - annotate - [select for diffs], Wed Aug 6 19:13:45 2008 UTC (15 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.182: +226 -107 lines
Diff to previous 1.182 (colored)

Change pv_entries to use SLIST.

For VIPT caches, keep track of when pages are dirty so that their content
can be flushed back to main memory.  This is done when the page is
read-only mapped by more than 1 color.  Pages become when either their
modified bit gets set or an unmanaged writeable page is mapped.  When
a page in unmapped or changed to read-only, run pmap_vac_me_harder in
case the page can be mapped read-only.

Thanks are given to Imre Deak for giving me the idea to assert for PVF_DIRTY.

Revision 1.176.2.4 / (download) - annotate - [select for diffs], Fri Jul 18 16:37:26 2008 UTC (15 years, 7 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176.2.3: +244 -177 lines
Diff to previous 1.176.2.3 (colored) next main 1.177 (colored)

Sync with head.

Revision 1.182 / (download) - annotate - [select for diffs], Wed Jul 16 00:19:57 2008 UTC (15 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: simonb-wapbl-nbase, simonb-wapbl-base
Changes since 1.181: +243 -177 lines
Diff to previous 1.181 (colored)

Revamp bookkeeping for pages entered by pmap_kenter_pa.  Keep track of them
on pvlists so that the cacheability can be properly tracked.

Revision 1.181 / (download) - annotate - [select for diffs], Wed Jul 9 23:22:15 2008 UTC (15 years, 7 months ago) by scw
Branch: MAIN
Changes since 1.180: +3 -2 lines
Diff to previous 1.180 (colored)

When dealing with 'cleanlist_idx == PMAP_REMOVE_CLEAN_LIST_SIZE' in
pmap_do_remove(), make sure to use PTE_SYNC() for each rolled-back
PTE on the list.

Fixes potential MMU inconsistencies on some ARM platforms where
page-tables are mapped write-back.

Revision 1.176.2.3 / (download) - annotate - [select for diffs], Thu Jul 3 18:37:51 2008 UTC (15 years, 7 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176.2.2: +51 -16 lines
Diff to previous 1.176.2.2 (colored)

Sync with head.

Revision 1.180 / (download) - annotate - [select for diffs], Thu Jul 3 13:02:12 2008 UTC (15 years, 7 months ago) by matt
Branch: MAIN
Branch point for: haad-dm
Changes since 1.179: +10 -4 lines
Diff to previous 1.179 (colored)

Use the same login in pmap_kenter_pa when removing an unmamanged mapping
as in pmap_kremove (otherwise kro_mappings will become incorrect).

Revision 1.179 / (download) - annotate - [select for diffs], Thu Jul 3 06:13:41 2008 UTC (15 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.178: +43 -14 lines
Diff to previous 1.178 (colored)

For armv6(VIPT), change the rules for mapping via kenter_pa.  Allow readonly
pages to be mapped by different cache color indexes.

Revision 1.171.6.4 / (download) - annotate - [select for diffs], Sun Jun 29 09:32:54 2008 UTC (15 years, 7 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.3: +10 -2 lines
Diff to previous 1.171.6.3 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.176.2.2 / (download) - annotate - [select for diffs], Fri Jun 27 15:11:16 2008 UTC (15 years, 7 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176.2.1: +10 -2 lines
Diff to previous 1.176.2.1 (colored)

Sync with head.

Revision 1.178 / (download) - annotate - [select for diffs], Tue Jun 24 22:00:32 2008 UTC (15 years, 8 months ago) by scw
Branch: MAIN
Changes since 1.177: +10 -2 lines
Diff to previous 1.177 (colored)

In pmap_deactivate(), if the process is exiting make sure the next call
to pmap_activate() performs a full MMU context-switch and cache flush,
which might otherwise be skipped.

Fixes ARM_LOW_VECTORS problem reported in PR port-arm/38950.

Revision 1.175.2.1 / (download) - annotate - [select for diffs], Mon Jun 23 04:30:10 2008 UTC (15 years, 8 months ago) by wrstuden
Branch: wrstuden-revivesa
Changes since 1.175: +5 -5 lines
Diff to previous 1.175 (colored)

Sync w/ -current. 34 merge conflicts to follow.

Revision 1.176.2.1 / (download) - annotate - [select for diffs], Wed Jun 18 16:32:38 2008 UTC (15 years, 8 months ago) by simonb
Branch: simonb-wapbl
Changes since 1.176: +4 -4 lines
Diff to previous 1.176 (colored)

Sync with head.

Revision 1.172.2.2 / (download) - annotate - [select for diffs], Tue Jun 17 09:13:55 2008 UTC (15 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.172.2.1: +5 -5 lines
Diff to previous 1.172.2.1 (colored) to branchpoint 1.172 (colored) next main 1.173 (colored)

sync with head.

Revision 1.177 / (download) - annotate - [select for diffs], Tue Jun 17 08:04:26 2008 UTC (15 years, 8 months ago) by chris
Branch: MAIN
CVS Tags: yamt-pf42-base4, wrstuden-revivesa-base-1, wrstuden-revivesa-base
Changes since 1.176: +4 -4 lines
Diff to previous 1.176 (colored)

Fix two KASSERT(value | (C1|C2)) to KASSERT(value & (C1|C2)) so that it
tests for something, rather than always being true.

Pointed out by Andy Shevchenko in:
http://mail-index.netbsd.org/port-arm/2008/06/17/msg000255.html

Revision 1.171.6.3 / (download) - annotate - [select for diffs], Thu Jun 5 19:14:32 2008 UTC (15 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.2: +1 -1 lines
Diff to previous 1.171.6.2 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Also fix build.

Revision 1.176 / (download) - annotate - [select for diffs], Wed Jun 4 12:41:40 2008 UTC (15 years, 8 months ago) by ad
Branch: MAIN
Branch point for: simonb-wapbl
Changes since 1.175: +3 -3 lines
Diff to previous 1.175 (colored)

vm_page: put TAILQ_ENTRY into a union with LIST_ENTRY, so we can use both.

Revision 1.171.6.2 / (download) - annotate - [select for diffs], Mon Jun 2 13:21:53 2008 UTC (15 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171.6.1: +1229 -152 lines
Diff to previous 1.171.6.1 (colored) to branchpoint 1.171 (colored)

Sync with HEAD.

Revision 1.172.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:31:34 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-pf42
Changes since 1.172: +1231 -154 lines
Diff to previous 1.172 (colored)

sync with head.

Revision 1.173.2.1 / (download) - annotate - [select for diffs], Fri May 16 02:21:56 2008 UTC (15 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.173: +1214 -139 lines
Diff to previous 1.173 (colored)

sync with head.

Revision 1.175 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:13 2008 UTC (15 years, 9 months ago) by martin
Branch: MAIN
CVS Tags: yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base2, hpcarm-cleanup-nbase
Branch point for: wrstuden-revivesa
Changes since 1.174: +2 -9 lines
Diff to previous 1.174 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.174 / (download) - annotate - [select for diffs], Sun Apr 27 18:58:44 2008 UTC (15 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.173: +1214 -132 lines
Diff to previous 1.173 (colored)

Merge kernel changes in matt-armv6 to HEAD.

Revision 1.173 / (download) - annotate - [select for diffs], Sun Apr 20 15:42:19 2008 UTC (15 years, 10 months ago) by scw
Branch: MAIN
CVS Tags: yamt-nfs-mp-base
Branch point for: yamt-nfs-mp
Changes since 1.172: +19 -17 lines
Diff to previous 1.172 (colored)

There's really no need to switch VM contexts within cpu_switchto() as
MI code always calls pmap_deactivate/pmap_activate on context switch.

Instead, just record the last active lwp (or NULL if it exited) and
defer switching VM context to pmap_activate(). This saves an additional
function call overhead in cpu_switchto().

While here, g/c unused cpuswitch.S local .Lblock_userspace_access.

Revision 1.171.6.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:42:12 2008 UTC (15 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.171: +14 -20 lines
Diff to previous 1.171 (colored)

Sync with HEAD.

Revision 1.172 / (download) - annotate - [select for diffs], Sat Mar 29 15:52:09 2008 UTC (15 years, 10 months ago) by chris
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base
Branch point for: yamt-pf42
Changes since 1.171: +14 -20 lines
Diff to previous 1.171 (colored)

Fix LOCKDEBUG build on arm by:
* converting simple_{un}lock to mutex_enter/exit
* Using UVM_OBJ_INIT & DESTROY for the uvm_object in the pmap structure

Revision 1.164.12.10 / (download) - annotate - [select for diffs], Tue Mar 4 06:08:32 2008 UTC (15 years, 11 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.9: +6 -4 lines
Diff to previous 1.164.12.9 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Fix a bug in pmap_flush_page which could nuke a PTE being used by
pmap_zero_page or pmap_copy_page.

Revision 1.164.6.3 / (download) - annotate - [select for diffs], Thu Feb 28 21:47:41 2008 UTC (15 years, 11 months ago) by rjs
Branch: hpcarm-cleanup
Changes since 1.164.6.2: +15 -6 lines
Diff to previous 1.164.6.2 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Sync with HEAD.

Revision 1.167.2.2 / (download) - annotate - [select for diffs], Mon Feb 18 21:04:22 2008 UTC (16 years ago) by mjf
Branch: mjf-devfs
Changes since 1.167.2.1: +15 -6 lines
Diff to previous 1.167.2.1 (colored) to branchpoint 1.167 (colored) next main 1.168 (colored)

Sync with HEAD.

Revision 1.154.2.6 / (download) - annotate - [select for diffs], Mon Jan 21 09:35:37 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.5: +15 -6 lines
Diff to previous 1.154.2.5 (colored) to branchpoint 1.154 (colored) next main 1.155 (colored)

sync with head

Revision 1.164.10.2 / (download) - annotate - [select for diffs], Sun Jan 20 16:03:57 2008 UTC (16 years, 1 month ago) by chris
Branch: chris-arm-intr-rework
Changes since 1.164.10.1: +31 -12 lines
Diff to previous 1.164.10.1 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Sync to HEAD.

Revision 1.164.12.9 / (download) - annotate - [select for diffs], Wed Jan 9 01:45:12 2008 UTC (16 years, 1 month ago) by matt
Branch: matt-armv6
Changes since 1.164.12.8: +14 -5 lines
Diff to previous 1.164.12.8 (colored) to branchpoint 1.164 (colored)

sync with HEAD

Revision 1.169.6.2 / (download) - annotate - [select for diffs], Tue Jan 8 22:09:25 2008 UTC (16 years, 1 month ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.169.6.1: +3 -2 lines
Diff to previous 1.169.6.1 (colored) to branchpoint 1.169 (colored) next main 1.170 (colored)

Sync with HEAD

Revision 1.171 / (download) - annotate - [select for diffs], Sun Jan 6 03:11:42 2008 UTC (16 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-nbase, matt-armv6-base, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, chris-arm-intr-rework-base7, chris-arm-intr-rework-base6, chris-arm-intr-rework-base5, chris-arm-intr-rework-base4, bouyer-xeni386-nbase, bouyer-xeni386-base, ad-socklock-base1
Branch point for: mjf-devfs2
Changes since 1.170: +5 -4 lines
Diff to previous 1.170 (colored)

current_intr_depth is dead.  Make sure we don't use it anymore.

Revision 1.169.6.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:47:21 2008 UTC (16 years, 1 month ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.169: +12 -4 lines
Diff to previous 1.169 (colored)

Sync with HEAD

Revision 1.164.10.1 / (download) - annotate - [select for diffs], Tue Jan 1 15:39:18 2008 UTC (16 years, 1 month ago) by chris
Branch: chris-arm-intr-rework
Changes since 1.164: +157 -146 lines
Diff to previous 1.164 (colored)

Sync with HEAD.

Revision 1.170 / (download) - annotate - [select for diffs], Tue Jan 1 14:06:42 2008 UTC (16 years, 1 month ago) by chris
Branch: MAIN
CVS Tags: chris-arm-intr-rework-base3
Changes since 1.169: +12 -4 lines
Diff to previous 1.169 (colored)

Add support for kcore headers to arm32 kernel core dumps.

The kcore code is based on i386's kcore header handling.

Having an asm stub for dumpsys, to dump the registers onto the stack, and
then call the C code to do the memory dump is based on amd64's core dump
code.

This allows a successful core dump on cats.

Part of fixing PR cats/18026.

Revision 1.164.6.2 / (download) - annotate - [select for diffs], Wed Dec 26 22:24:35 2007 UTC (16 years, 2 months ago) by rjs
Branch: hpcarm-cleanup
Changes since 1.164.6.1: +14 -22 lines
Diff to previous 1.164.6.1 (colored) to branchpoint 1.164 (colored)

Sync with HEAD.

Revision 1.161.2.6 / (download) - annotate - [select for diffs], Mon Dec 3 18:34:54 2007 UTC (16 years, 2 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.5: +14 -22 lines
Diff to previous 1.161.2.5 (colored) next main 1.162 (colored)

Sync with HEAD.

Revision 1.167.2.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:46:11 2007 UTC (16 years, 3 months ago) by mjf
Branch: mjf-devfs
Changes since 1.167: +14 -22 lines
Diff to previous 1.167 (colored)

Sync with HEAD.

Revision 1.154.2.5 / (download) - annotate - [select for diffs], Thu Nov 15 11:42:35 2007 UTC (16 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.4: +14 -22 lines
Diff to previous 1.154.2.4 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.166.2.1 / (download) - annotate - [select for diffs], Tue Nov 13 15:58:13 2007 UTC (16 years, 3 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.166: +14 -22 lines
Diff to previous 1.166 (colored) next main 1.167 (colored)

Sync with HEAD

Revision 1.164.8.3 / (download) - annotate - [select for diffs], Sun Nov 11 16:46:25 2007 UTC (16 years, 3 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.164.8.2: +14 -22 lines
Diff to previous 1.164.8.2 (colored) to branchpoint 1.164 (colored) next main 1.165 (colored)

Sync with HEAD.

Revision 1.157.24.1.4.3 / (download) - annotate - [select for diffs], Sat Nov 10 04:18:51 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-nb4-arm
Changes since 1.157.24.1.4.2: +5 -4 lines
Diff to previous 1.157.24.1.4.2 (colored) to branchpoint 1.157.24.1 (colored) next main 1.158 (colored)

Refix thinko.  (deal with non-page-aligned starts/lengths)

Revision 1.164.12.8 / (download) - annotate - [select for diffs], Sat Nov 10 04:16:11 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.164.12.7: +8 -5 lines
Diff to previous 1.164.12.7 (colored) to branchpoint 1.164 (colored)

Fix thinko. (need to deal non-page-aligned size/lengths)

Revision 1.157.24.1.4.2 / (download) - annotate - [select for diffs], Sat Nov 10 04:00:01 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-nb4-arm
Changes since 1.157.24.1.4.1: +6 -4 lines
Diff to previous 1.157.24.1.4.1 (colored) to branchpoint 1.157.24.1 (colored)

Fix thinko.

Revision 1.157.24.1.4.1 / (download) - annotate - [select for diffs], Sat Nov 10 02:56:26 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-nb4-arm
Changes since 1.157.24.1: +963 -93 lines
Diff to previous 1.157.24.1 (colored)

Add AT91 support from Sami Kantoluoto
Add TI OMAP2430 support from Marty Fouts @ Danger Inc

Revision 1.164.12.7 / (download) - annotate - [select for diffs], Fri Nov 9 19:24:47 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.6: +39 -2 lines
Diff to previous 1.164.12.6 (colored) to branchpoint 1.164 (colored)

Add pmap_icache_sync_range and change arm32_sync_icache to use it.
This will only invalidate va that have valid PTEs.  This avoids cleaning
unneeded cache lines.

Revision 1.164.12.6 / (download) - annotate - [select for diffs], Fri Nov 9 05:37:37 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.5: +9 -9 lines
Diff to previous 1.164.12.5 (colored) to branchpoint 1.164 (colored)

Make all the evbarm kernels build again.  Fix lossage from rebase.

Revision 1.169 / (download) - annotate - [select for diffs], Thu Nov 8 11:10:28 2007 UTC (16 years, 3 months ago) by matt
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking2, 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: bouyer-xeni386
Changes since 1.168: +4 -4 lines
Diff to previous 1.168 (colored)

Make this compile again.

Revision 1.164.12.5 / (download) - annotate - [select for diffs], Thu Nov 8 10:59:33 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.4: +14 -22 lines
Diff to previous 1.164.12.4 (colored) to branchpoint 1.164 (colored)

sync with -HEAD

Revision 1.164.12.4 / (download) - annotate - [select for diffs], Wed Nov 7 06:38:29 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.3: +4 -2 lines
Diff to previous 1.164.12.3 (colored) to branchpoint 1.164 (colored)

Fix botched color assertion

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

Merge from vmlocking:

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

Revision 1.164.12.3 / (download) - annotate - [select for diffs], Tue Nov 6 23:15:00 2007 UTC (16 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.2: +138 -126 lines
Diff to previous 1.164.12.2 (colored) to branchpoint 1.164 (colored)

sync with HEAD

Revision 1.164.6.1 / (download) - annotate - [select for diffs], Thu Nov 1 16:06:47 2007 UTC (16 years, 3 months ago) by rjs
Branch: hpcarm-cleanup
Changes since 1.164: +135 -124 lines
Diff to previous 1.164 (colored)

Sync with HEAD.

Revision 1.154.2.4 / (download) - annotate - [select for diffs], Sat Oct 27 11:25:21 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.3: +135 -124 lines
Diff to previous 1.154.2.3 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.164.8.2 / (download) - annotate - [select for diffs], Fri Oct 26 15:42:14 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.164.8.1: +4 -6 lines
Diff to previous 1.164.8.1 (colored) to branchpoint 1.164 (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.161.2.5 / (download) - annotate - [select for diffs], Fri Oct 19 12:42:41 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.4: +4 -6 lines
Diff to previous 1.161.2.4 (colored)

Sync with head.

Revision 1.167 / (download) - annotate - [select for diffs], Wed Oct 17 19:53:31 2007 UTC (16 years, 4 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, jmcneill-base
Branch point for: mjf-devfs
Changes since 1.166: +2 -2 lines
Diff to previous 1.166 (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.163.4.3 / (download) - annotate - [select for diffs], Tue Oct 16 18:23:35 2007 UTC (16 years, 4 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.163.4.2: +4 -6 lines
Diff to previous 1.163.4.2 (colored) to branchpoint 1.163 (colored) next main 1.164 (colored)

Sync with HEAD

Revision 1.165.2.1 / (download) - annotate - [select for diffs], Sun Oct 14 11:47:32 2007 UTC (16 years, 4 months ago) by yamt
Branch: yamt-x86pmap
Changes since 1.165: +4 -6 lines
Diff to previous 1.165 (colored) next main 1.166 (colored)

sync with head.

Revision 1.164.12.2 / (download) - annotate - [select for diffs], Fri Oct 12 02:22:22 2007 UTC (16 years, 4 months ago) by matt
Branch: matt-armv6
Changes since 1.164.12.1: +1162 -125 lines
Diff to previous 1.164.12.1 (colored) to branchpoint 1.164 (colored)

Import TI OMAP 2430 and ARM11/ARMv6 support.  Now on ARMv6, the cache is
no longer purged on context switches.

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

Comment out references to spinlockmgr().

Revision 1.161.2.4 / (download) - annotate - [select for diffs], Tue Oct 9 13:37:29 2007 UTC (16 years, 4 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.3: +133 -120 lines
Diff to previous 1.161.2.3 (colored)

Sync with head.

Revision 1.163.4.2 / (download) - annotate - [select for diffs], Wed Oct 3 19:22:38 2007 UTC (16 years, 4 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.163.4.1: +133 -120 lines
Diff to previous 1.163.4.1 (colored) to branchpoint 1.163 (colored)

Sync with HEAD

Revision 1.164.8.1 / (download) - annotate - [select for diffs], Tue Oct 2 18:26:52 2007 UTC (16 years, 4 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.164: +133 -120 lines
Diff to previous 1.164 (colored)

Sync with HEAD.

Revision 1.165 / (download) - annotate - [select for diffs], Sat Sep 15 09:25:21 2007 UTC (16 years, 5 months ago) by scw
Branch: MAIN
CVS Tags: yamt-x86pmap-base2, yamt-x86pmap-base
Branch point for: yamt-x86pmap
Changes since 1.164: +133 -120 lines
Diff to previous 1.164 (colored)

ARM cpu_switchto() has been partially broken since yamt-idlelwp was merged
as its cache/tlb management smarts relied too heavily on pre-merge context-
switch behaviour. See PR kern/36548 for one manifestation of the breakage.

To address this:
 - Ditch the shadow pmap variables in the PCB (pagedir, l1vec, dacr, cstate)
   as it was too easy for them to get out of sync with the pmap.
 - Re-write (and fix) the convoluted cpuswitch.S cache/tlb ASM code in C.
   It's only slightly less efficient, but is much more readable/maintainable.
 - Document cpufuncs.cf_context_switch() as being C-callable.
 - pmap_activate() becomes a no-op if the lwp's vmspace is already active.
   (Good performance win, since pmap_activate() is now invoked on every
   context-switch, even though ARM's cpu_switchto() already does all the
   grunt work)

XXX: Some CPU-specific armXX_context_switch() implementations (arm67,
arm7tdmi, arm8) always flush the I+D caches. This should not be necessary.
Someone with access to hardware (acorn32?) needs to deal with this.

Revision 1.154.2.3 / (download) - annotate - [select for diffs], Mon Sep 3 14:23:15 2007 UTC (16 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.2: +11 -10 lines
Diff to previous 1.154.2.2 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.164.12.1 / (download) - annotate - [select for diffs], Wed Aug 29 04:31:37 2007 UTC (16 years, 5 months ago) by matt
Branch: matt-armv6
Changes since 1.164: +3 -3 lines
Diff to previous 1.164 (colored)

Use ci_intr_depth

Revision 1.162.2.1 / (download) - annotate - [select for diffs], Wed Jul 11 19:58:06 2007 UTC (16 years, 7 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.162: +6 -5 lines
Diff to previous 1.162 (colored) next main 1.163 (colored)

Sync with head.

Revision 1.161.2.3 / (download) - annotate - [select for diffs], Sun May 27 12:27:08 2007 UTC (16 years, 9 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.2: +3 -3 lines
Diff to previous 1.161.2.2 (colored)

Sync with head.

Revision 1.163.4.1 / (download) - annotate - [select for diffs], Tue May 22 17:26:39 2007 UTC (16 years, 9 months ago) by matt
Branch: ppcoea-renovation
Changes since 1.163: +3 -3 lines
Diff to previous 1.163 (colored)

Update to HEAD.

Revision 1.164 / (download) - annotate - [select for diffs], Thu May 17 14:51:16 2007 UTC (16 years, 9 months ago) by yamt
Branch: MAIN
CVS Tags: nick-csl-alignment-base5, nick-csl-alignment-base, nick-csl-alignment, mjf-ufs-trans-base, matt-mips64-base, matt-mips64, chris-arm-intr-rework-base2, chris-arm-intr-rework-base
Branch point for: matt-armv6, jmcneill-pm, hpcarm-cleanup, chris-arm-intr-rework
Changes since 1.163: +3 -3 lines
Diff to previous 1.163 (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.158.2.5 / (download) - annotate - [select for diffs], Sun Apr 15 16:02:37 2007 UTC (16 years, 10 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.158.2.4: +5 -4 lines
Diff to previous 1.158.2.4 (colored) to branchpoint 1.158 (colored) next main 1.159 (colored)

sync with head.

Revision 1.161.2.2 / (download) - annotate - [select for diffs], Tue Apr 10 13:22:51 2007 UTC (16 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.161.2.1: +5 -4 lines
Diff to previous 1.161.2.1 (colored)

Sync with head.

Revision 1.163 / (download) - annotate - [select for diffs], Mon Apr 9 16:05:41 2007 UTC (16 years, 10 months ago) by chris
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, thorpej-atomic
Branch point for: ppcoea-renovation
Changes since 1.162: +5 -4 lines
Diff to previous 1.162 (colored)

In pmap_activate restore interrupts to their previous state rather than
always enabling them.

It's not clear if this actually caused any problems, but it seems safer
to restore to the previous state in case pmap_activate is ever called
with interrupts disabled.

Revision 1.158.2.4 / (download) - annotate - [select for diffs], Thu Mar 29 10:52:27 2007 UTC (16 years, 10 months ago) by skrll
Branch: yamt-idlelwp
Changes since 1.158.2.3: +3 -3 lines
Diff to previous 1.158.2.3 (colored) to branchpoint 1.158 (colored)

Adapt arm32. Thanks to scw for helping out.

Tested on my cats (SA1)

XXX hydra should die. i've made some changes, but no guarantees.

Revision 1.158.2.3 / (download) - annotate - [select for diffs], Sat Mar 24 14:54:33 2007 UTC (16 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.158.2.2: +6 -6 lines
Diff to previous 1.158.2.2 (colored) to branchpoint 1.158 (colored)

sync with head.

Revision 1.161.2.1 / (download) - annotate - [select for diffs], Tue Mar 13 16:49:55 2007 UTC (16 years, 11 months ago) by ad
Branch: vmlocking
Changes since 1.161: +6 -6 lines
Diff to previous 1.161 (colored)

Sync with head.

Revision 1.162 / (download) - annotate - [select for diffs], Mon Mar 12 18:18:24 2007 UTC (16 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: reinoud-bufcleanup
Branch point for: mjf-ufs-trans
Changes since 1.161: +6 -6 lines
Diff to previous 1.161 (colored)

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

Revision 1.158.2.2 / (download) - annotate - [select for diffs], Mon Mar 12 05:47:02 2007 UTC (16 years, 11 months ago) by rmind
Branch: yamt-idlelwp
Changes since 1.158.2.1: +3 -3 lines
Diff to previous 1.158.2.1 (colored) to branchpoint 1.158 (colored)

Sync with HEAD.

Revision 1.161 / (download) - annotate - [select for diffs], Sun Mar 4 05:59:37 2007 UTC (16 years, 11 months ago) by christos
Branch: MAIN
Branch point for: vmlocking
Changes since 1.160: +3 -3 lines
Diff to previous 1.160 (colored)

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

Revision 1.158.2.1 / (download) - annotate - [select for diffs], Tue Feb 27 16:49:32 2007 UTC (16 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.158: +72 -72 lines
Diff to previous 1.158 (colored)

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

Revision 1.154.2.2 / (download) - annotate - [select for diffs], Mon Feb 26 09:05:55 2007 UTC (17 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154.2.1: +76 -76 lines
Diff to previous 1.154.2.1 (colored) to branchpoint 1.154 (colored)

sync with head.

Revision 1.160 / (download) - annotate - [select for diffs], Thu Feb 22 05:14:05 2007 UTC (17 years ago) by thorpej
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Changes since 1.159: +53 -53 lines
Diff to previous 1.159 (colored)

TRUE -> true, FALSE -> false

Revision 1.159 / (download) - annotate - [select for diffs], Wed Feb 21 22:59:38 2007 UTC (17 years ago) by thorpej
Branch: MAIN
Changes since 1.158: +22 -22 lines
Diff to previous 1.158 (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.157.24.1 / (download) - annotate - [select for diffs], Wed Feb 21 18:33:19 2007 UTC (17 years ago) by snj
Branch: netbsd-4
CVS Tags: wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, 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, matt-nb4-arm-base
Branch point for: matt-nb4-arm
Changes since 1.157: +6 -6 lines
Diff to previous 1.157 (colored) next main 1.158 (colored)

Pull up following revision(s) (requested by matt in ticket #457):
	sys/arch/arm/arm32/pmap.c: revision 1.158
From Scott Allan in http://mail-index.netbsd.org/port-arm/2006/07/26/0000.html
I ran into a problem when I tried to set up a mapping that started at
virtual address 0xFFF00000 and was 0x00100000 long.  In other words, the
mapping should have gone to the end of the 32 bit address space.  The
mapping was made with no problem, but pmap_devmap_find_va() wouldn't
find an address within the mapping.  For example, if I told it to find a
mapping for 0x1000 bytes at 0xFFF01000, it would try to make sure that
0xFFF01000 was greater than 0xFFF00000 and that (0xFFF01000+0x1000) was
less than (0xFFF00000 +0x00100000).  However, that last expression
(0xFFF00000+0x00100000) wrapped around to be simply 0x00000000 so it
wasn't found.  This patch fixes this problem in pmap_devmap_find_va()
and pmap_devmap_find_pa() by subtracting one off of the

Revision 1.157.20.1 / (download) - annotate - [select for diffs], Fri Jan 12 01:00:41 2007 UTC (17 years, 1 month ago) by ad
Branch: newlock2
Changes since 1.157: +6 -6 lines
Diff to previous 1.157 (colored) next main 1.158 (colored)

Sync with head.

Revision 1.158 / (download) - annotate - [select for diffs], Sat Jan 6 00:40:47 2007 UTC (17 years, 1 month ago) by christos
Branch: MAIN
CVS Tags: post-newlock2-merge, newlock2-nbase, newlock2-base
Branch point for: yamt-idlelwp
Changes since 1.157: +6 -6 lines
Diff to previous 1.157 (colored)

From Scott Allen in http://mail-index.netbsd.org/port-arm/2006/07/26/0000.html
I ran into a problem when I tried to set up a mapping that started at virtual
address 0xFFF00000 and was 0x00100000 long.  In other words, the mapping
should have gone to the end of the 32 bit address space.  The mapping was made
with no problem, but pmap_devmap_find_va() wouldn't find an address within the
mapping.  For example, if I told it to find a mapping for 0x1000 bytes at
0xFFF01000, it would try to make sure that 0xFFF01000 was greater than
0xFFF00000 and that (0xFFF01000+0x1000) was less than (0xFFF00000+0x00100000).
However, that last expression (0xFFF00000+0x00100000) wrapped around to be
simply 0x00000000 so it wasn't found.  This patch fixes this problem in
pmap_devmap_find_va() and pmap_devmap_find_pa() by subtracting one off of the
sizes to be compared, so in my example, (0xFFF01000+0x1000-1) will be less
than (0xFFF00000+0x00100000-1).

Revision 1.154.2.1 / (download) - annotate - [select for diffs], Wed Jun 21 14:49:16 2006 UTC (17 years, 8 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.154: +72 -64 lines
Diff to previous 1.154 (colored)

sync with head.

Revision 1.157 / (download) - annotate - [select for diffs], Sat Dec 24 20:06:47 2005 UTC (18 years, 2 months 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, simonb-timecounters-base, simonb-timecounters, simonb-timcounters-final, rpaulo-netinet-merge-pcb-base, rpaulo-netinet-merge-pcb, peter-altq-base, peter-altq, netbsd-4-base, 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: newlock2, netbsd-4
Changes since 1.156: +27 -27 lines
Diff to previous 1.156 (colored)

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

Revision 1.137.2.7 / (download) - annotate - [select for diffs], Sun Dec 11 10:28:14 2005 UTC (18 years, 2 months ago) by christos
Branch: ktrace-lwp
Changes since 1.137.2.6: +47 -39 lines
Diff to previous 1.137.2.6 (colored) next main 1.138 (colored)

Sync with head.

Revision 1.156 / (download) - annotate - [select for diffs], Sat Dec 10 21:19:57 2005 UTC (18 years, 2 months ago) by scw
Branch: MAIN
CVS Tags: ktrace-lwp-base
Changes since 1.155: +40 -33 lines
Diff to previous 1.155 (colored)

Implement pmap_collect() for arm32.

Revision 1.155 / (download) - annotate - [select for diffs], Thu Dec 8 22:41:44 2005 UTC (18 years, 2 months ago) by yamt
Branch: MAIN
Changes since 1.154: +9 -8 lines
Diff to previous 1.154 (colored)

use VM_PAGE_TO_PHYS macro.

Revision 1.137.2.6 / (download) - annotate - [select for diffs], Thu Nov 10 13:55:16 2005 UTC (18 years, 3 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.5: +17 -7 lines
Diff to previous 1.137.2.5 (colored)

Sync with HEAD. Here we go again...

Revision 1.154 / (download) - annotate - [select for diffs], Mon Jul 4 00:42:37 2005 UTC (18 years, 7 months ago) by bsh
Branch: MAIN
CVS Tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, thorpej-vnode-attr-base, thorpej-vnode-attr
Branch point for: yamt-lazymbuf
Changes since 1.153: +3 -3 lines
Diff to previous 1.153 (colored)

The first step to support Intel PXA270.

kernel config option CPU_XSCALE_PXA2X0 is now obsoleted by
CPU_XSCALE_PXA250 and CPU_XSCALE_PXA270.  If both of them are defined,
CPU is determined run-time.

Revision 1.153 / (download) - annotate - [select for diffs], Fri Jun 24 15:59:04 2005 UTC (18 years, 8 months ago) by scw
Branch: MAIN
Changes since 1.152: +7 -4 lines
Diff to previous 1.152 (colored)

In pmap_devmap_find_pa(), use 64-bit arithmetic to handle the case where
'pa + size' == 0x0. As in, if we're passed details of a region right at
the top of physical address space.

Otherwise we'll likely hit a false-positive due to 32-bit wrap-around.

Revision 1.150.2.1 / (download) - annotate - [select for diffs], Fri Apr 29 11:28:02 2005 UTC (18 years, 9 months ago) by kent
Branch: kent-audio2
Changes since 1.150: +14 -7 lines
Diff to previous 1.150 (colored) next main 1.151 (colored)

sync with -current

Revision 1.152 / (download) - annotate - [select for diffs], Tue Apr 26 16:03:08 2005 UTC (18 years, 10 months ago) by scw
Branch: MAIN
CVS Tags: kent-audio2-base
Changes since 1.151: +11 -4 lines
Diff to previous 1.151 (colored)

Since pmap_page_remove() is called from pmap_page_protect(), don't modify
the current pmap's pm_cstate if we have to flush the TLB, as callers of
pmap_page_protect() are not required to invoke pmap_update() afterwards.

Otherwise we can end up with a pm_cstate which is inconsistent with reality
in the TLB, which can lead to future TLB flushes being erroneously skipped.

Revision 1.137.2.5 / (download) - annotate - [select for diffs], Fri Apr 1 14:26:50 2005 UTC (18 years, 10 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.4: +5 -5 lines
Diff to previous 1.137.2.4 (colored)

Sync with HEAD.

Revision 1.151 / (download) - annotate - [select for diffs], Fri Apr 1 11:59:23 2005 UTC (18 years, 10 months ago) by yamt
Branch: MAIN
Changes since 1.150: +5 -5 lines
Diff to previous 1.150 (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.150.4.1 / (download) - annotate - [select for diffs], Fri Jan 28 10:33:58 2005 UTC (19 years ago) by yamt
Branch: yamt-km
Changes since 1.150: +5 -5 lines
Diff to previous 1.150 (colored) next main 1.151 (colored)

convert arch/arm to new apis.

Revision 1.137.2.4 / (download) - annotate - [select for diffs], Mon Jan 17 19:29:12 2005 UTC (19 years, 1 month ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.3: +8 -8 lines
Diff to previous 1.137.2.3 (colored)

Sync with HEAD.

Revision 1.150 / (download) - annotate - [select for diffs], Fri Jan 14 02:28:54 2005 UTC (19 years, 1 month ago) by joff
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, netbsd-3-base, 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, netbsd-3
Branch point for: yamt-km, kent-audio2
Changes since 1.149: +7 -7 lines
Diff to previous 1.149 (colored)

Dont try freeing bootstrap pages with pool_page_free.  Fixes kern/28869

Revision 1.149 / (download) - annotate - [select for diffs], Sun Jan 2 22:47:26 2005 UTC (19 years, 1 month ago) by chris
Branch: MAIN
CVS Tags: kent-audio1-beforemerge
Changes since 1.148: +3 -3 lines
Diff to previous 1.148 (colored)

Remove direct references to TAILQ internal structures.

No functional change, just tidying up code.

Revision 1.137.2.3 / (download) - annotate - [select for diffs], Tue Sep 21 13:13:10 2004 UTC (19 years, 5 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.2: +2 -2 lines
Diff to previous 1.137.2.2 (colored)

Fix the sync with head I botched.

Revision 1.137.2.2 / (download) - annotate - [select for diffs], Sat Sep 18 14:32:17 2004 UTC (19 years, 5 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137.2.1: +0 -0 lines
Diff to previous 1.137.2.1 (colored)

Sync with HEAD.

Revision 1.137.2.1 / (download) - annotate - [select for diffs], Tue Aug 3 10:32:29 2004 UTC (19 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.137: +115 -26 lines
Diff to previous 1.137 (colored)

Sync with HEAD

Revision 1.148 / (download) - annotate - [select for diffs], Sat Apr 3 04:35:48 2004 UTC (19 years, 10 months ago) by bsh
Branch: MAIN
CVS Tags: kent-audio1-base, kent-audio1
Changes since 1.147: +3 -3 lines
Diff to previous 1.147 (colored)

pmap_pte_init_arm9() is necessary only when defined(CPU_ARM9) and defined(ARM9_CACHE_WRITE_THROUGH)

Revision 1.147 / (download) - annotate - [select for diffs], Sun Jan 18 13:03:50 2004 UTC (20 years, 1 month ago) by scw
Branch: MAIN
CVS Tags: netbsd-2-base, 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, netbsd-2-0-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-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, netbsd-2-0, netbsd-2
Changes since 1.146: +27 -2 lines
Diff to previous 1.146 (colored)

Fix ARM_VECTORS_LOW fallout caused by the recent reaper removal.

Just before removing the vector page mapping, switch to the kernel
pmap's L1/vector page mapping so as not to pull the rug out from
under ourselves.

To prevent the stale L1/vector page mapping from being restored by
cpu_switch, replace the relevant fields of the dying process' pcb
with those of lwp0's pcb.

Revision 1.146 / (download) - annotate - [select for diffs], Sat Nov 1 17:35:42 2003 UTC (20 years, 3 months ago) by jdolecek
Branch: MAIN
Changes since 1.145: +3 -3 lines
Diff to previous 1.145 (colored)

avoid stong words in comments

Revision 1.145 / (download) - annotate - [select for diffs], Wed Oct 29 05:48:19 2003 UTC (20 years, 3 months ago) by mycroft
Branch: MAIN
Changes since 1.144: +4 -7 lines
Diff to previous 1.144 (colored)

Whitespace.

Revision 1.144 / (download) - annotate - [select for diffs], Wed Oct 29 05:47:04 2003 UTC (20 years, 3 months ago) by mycroft
Branch: MAIN
Changes since 1.143: +3 -3 lines
Diff to previous 1.143 (colored)

The previous patch was wrong -- mcr does not output anything.  Instead give a
junk input (it's not used when the last argument is 0).

Revision 1.143 / (download) - annotate - [select for diffs], Tue Oct 28 08:22:55 2003 UTC (20 years, 4 months ago) by scw
Branch: MAIN
Changes since 1.142: +5 -12 lines
Diff to previous 1.142 (colored)

Fix an uninitialised variable warning, reported by Shoichi Miyake
in port-arm/23293.

Revision 1.142 / (download) - annotate - [select for diffs], Sun Oct 26 23:11:15 2003 UTC (20 years, 4 months ago) by chris
Branch: MAIN
Changes since 1.141: +3 -3 lines
Diff to previous 1.141 (colored)

Fix up some unitialised variables.

Revision 1.141 / (download) - annotate - [select for diffs], Mon Oct 13 20:50:34 2003 UTC (20 years, 4 months ago) by scw
Branch: MAIN
Changes since 1.140: +57 -3 lines
Diff to previous 1.140 (colored)

On Xscale, define PMAP_UAREA() and use it to tweak uarea mappings so
they use the mini D$.

This results in a small performance boost on xscale platforms, since
flushing the main cache on a context switch won't affect the kernel
stack/pcb.

Revision 1.140 / (download) - annotate - [select for diffs], Sun Oct 5 19:44:58 2003 UTC (20 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.139: +4 -6 lines
Diff to previous 1.139 (colored)

Add SA_SIGINFO support for ARM (from Chris Gilbert).

Revision 1.139 / (download) - annotate - [select for diffs], Sun Sep 21 00:26:09 2003 UTC (20 years, 5 months ago) by matt
Branch: MAIN
Changes since 1.138: +4 -4 lines
Diff to previous 1.138 (colored)

Change some type-punning detected by gcc 3.3.1 to (void *).

Revision 1.138 / (download) - annotate - [select for diffs], Sat Sep 6 09:44:10 2003 UTC (20 years, 5 months ago) by rearnsha
Branch: MAIN
Changes since 1.137: +24 -2 lines
Diff to previous 1.137 (colored)

Support for initializing ARM10 processors in write-through mode.

Revision 1.137 / (download) - annotate - [select for diffs], Mon Jun 23 11:01:07 2003 UTC (20 years, 8 months ago) by martin
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.136: +4 -2 lines
Diff to previous 1.136 (colored)

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

Revision 1.136 / (download) - annotate - [select for diffs], Sun Jun 15 18:18:16 2003 UTC (20 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.135: +14 -3 lines
Diff to previous 1.135 (colored)

Add another devmap routine that allows bootstrap code to register
a devmap reflecting mappings that are created by really early
bootstrap code before pmap_devmap_bootstrap() is called.

Revision 1.135 / (download) - annotate - [select for diffs], Sun Jun 15 17:45:21 2003 UTC (20 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.134: +71 -2 lines
Diff to previous 1.134 (colored)

Replace the ad-hoc "section mapping table" for static device mappings
with a more generic "devmap" structure that can also handle mappings
made with large and small pages.  Add new pmap routines to enter these
mappings during bootstrap (and "remember" the devmap), and routines to
look up the static mappings once the kernel is running.

Revision 1.134 / (download) - annotate - [select for diffs], Wed May 21 18:07:07 2003 UTC (20 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.133: +3584 -2825 lines
Diff to previous 1.133 (colored)

Move the new pmap from arm32/pmap_new.c to arm32/pmap.c, fully replacing
the old.

Revision 1.133 / (download) - annotate - [select for diffs], Sat May 10 21:10:27 2003 UTC (20 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.132: +17 -4 lines
Diff to previous 1.132 (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.132 / (download) - annotate - [select for diffs], Thu May 8 18:13:14 2003 UTC (20 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.131: +6 -19 lines
Diff to previous 1.131 (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.131 / (download) - annotate - [select for diffs], Tue Apr 22 00:24:49 2003 UTC (20 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.130: +27 -7 lines
Diff to previous 1.130 (colored)

Some ARM32_PMAP_NEW-related cleanup:
* Define a new "MMU type", ARM_MMU_SA1.  While the SA-1's MMU is basically
  compatible with the generic, the SA-1 cache does not have a write-through
  mode, and it is useful to know have an indication of this.
* Add a new PMAP_NEEDS_PTE_SYNC indicator, and try to evaluate it at
  compile time.  We evaluate it like so:
  - If SA-1-style MMU is the only type configured -> 1
  - If SA-1-style MMU is not configured -> 0
  - Otherwise, defer to a run-time variable.
  If PMAP_NEEDS_PTE_SYNC might evaluate to true (SA-1 only or run-time
  check), then we also define PMAP_INCLUDE_PTE_SYNC so that e.g. assembly
  code can include the necessary run-time support.  PMAP_INCLUDE_PTE_SYNC
  largely replaces the ARM32_PMAP_NEEDS_PTE_SYNC manual setting Steve
  included with the original new pmap.
* In the new pmap, make pmap_pte_init_generic() check to see if the CPU
  has a write-back cache.  If so, init the PT cache mode to C=1,B=0 to get
  write-through mode.  Otherwise, init the PT cache mode to C=1,B=1.
* Add a new pmap_pte_init_arm8().  Old pmap, same as generic.  New pmap,
  sets page table cacheability to 0 (ARM8 has a write-back cache, but
  flushing it is quite expensive).
* In the new pmap, make pmap_pte_init_arm9() reset the PT cache mode to
  C=1,B=0, since the write-back check in generic gets it wrong for ARM9,
  since we use write-through mode all the time on ARM9 right now.  (What
  this really tells me is that the test for write-through cache is less
  than perfect, but we can fix that later.)
* Add a new pmap_pte_init_sa1().  Old pmap, same as generic.  New pmap,
  does generic initialization, then resets page table cache mode to
  C=1,B=1, since C=1,B=0 does not produce write-through on the SA-1.

Revision 1.130 / (download) - annotate - [select for diffs], Tue Apr 1 23:19:09 2003 UTC (20 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.129: +25 -25 lines
Diff to previous 1.129 (colored)

Use PAGE_SIZE rather than NBPG.

Revision 1.129 / (download) - annotate - [select for diffs], Sat Mar 29 07:58:16 2003 UTC (20 years, 11 months ago) by bsh
Branch: MAIN
Changes since 1.128: +35 -5 lines
Diff to previous 1.128 (colored)

for Intel PXA2[15][05] processors, select write-back/write-through
cache based on CPU id.  write-through on PXA2[15]0 B2 stepping and
earlier. write-back on C0 and C1 stepping (a.k.a PXA2[15]5 A0)

options XSCALE_CACHE_WRITE_{THROUGH,BACK} can override it.

for other XScale CPUs than PXA2xx, XSCALE_CACHE_WRITE_THROUGH works
same as before.

Revision 1.128 / (download) - annotate - [select for diffs], Thu Mar 27 19:42:30 2003 UTC (20 years, 11 months ago) by mycroft
Branch: MAIN
Changes since 1.127: +2 -3 lines
Diff to previous 1.127 (colored)

Remove references to variables that aren't used here.

Revision 1.127 / (download) - annotate - [select for diffs], Sun Mar 23 15:59:23 2003 UTC (20 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.126: +2 -32 lines
Diff to previous 1.126 (colored)

Garbage collect pmap_map, the last (and only?) use has been removed.

Revision 1.126 / (download) - annotate - [select for diffs], Sun Feb 23 23:40:01 2003 UTC (21 years ago) by thorpej
Branch: MAIN
Changes since 1.125: +7 -6 lines
Diff to previous 1.125 (colored)

Change pcb32_pagedir to a paddr_t (after all, it's used as a paddr_t
everywhere in the code).

Revision 1.125 / (download) - annotate - [select for diffs], Fri Feb 21 00:23:03 2003 UTC (21 years ago) by chris
Branch: MAIN
Changes since 1.124: +30 -29 lines
Diff to previous 1.124 (colored)

Convert a few types into things that are more accurate, mostly:
int's to unsigned int/u_int where they shouldn't go negative.
int's to boolean_t's where they're being used as bools.

No real functional change (in the produced asm a few condition codes changed)

Revision 1.97.4.6 / (download) - annotate - [select for diffs], Fri Feb 14 22:21:16 2003 UTC (21 years ago) by he
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, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001
Changes since 1.97.4.5: +15 -11 lines
Diff to previous 1.97.4.5 (colored) to branchpoint 1.97 (colored) next main 1.98 (colored)

Revert pull-up of revision 1.110 (requested by rearnsha in ticket #1170):
  Revert cached memory access to L1 tables, this causes instability
  on the release branch.

Revision 1.124 / (download) - annotate - [select for diffs], Fri Jan 17 22:28:49 2003 UTC (21 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.123: +10 -10 lines
Diff to previous 1.123 (colored)

Merge the nathanw_sa branch.

Revision 1.30.2.19 / (download) - annotate - [select for diffs], Wed Dec 11 05:53:02 2002 UTC (21 years, 2 months ago) by thorpej
Branch: nathanw_sa
CVS Tags: nathanw_sa_end
Changes since 1.30.2.18: +69 -65 lines
Diff to previous 1.30.2.18 (colored) to branchpoint 1.30 (colored) next main 1.31 (colored)

Sync with HEAD.

Revision 1.97.4.5 / (download) - annotate - [select for diffs], Sat Dec 7 20:44:23 2002 UTC (21 years, 2 months ago) by he
Branch: netbsd-1-6
CVS Tags: netbsd-1-6-PATCH001-RC1
Changes since 1.97.4.4: +120 -50 lines
Diff to previous 1.97.4.4 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.111 (requested by thorpej in ticket #714):
  Use a pool cache for PT-PTs.

Revision 1.97.4.4 / (download) - annotate - [select for diffs], Sat Dec 7 20:43:02 2002 UTC (21 years, 2 months ago) by he
Branch: netbsd-1-6
Changes since 1.97.4.3: +129 -3 lines
Diff to previous 1.97.4.3 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.105 (requested by thorpej in ticket #714):
  Add code, conditional on PMAP_ALIAS_DEBUG, which can be
  used to hunt for virtual aliases between managed (pmap_enter)
  and unmanaged (pmap_kenter_pa) mappings.

Revision 1.123 / (download) - annotate - [select for diffs], Sun Nov 24 01:09:09 2002 UTC (21 years, 3 months ago) by chris
Branch: MAIN
CVS Tags: nathanw_sa_before_merge, nathanw_sa_base, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, fvdl_fs64_base
Changes since 1.122: +9 -6 lines
Diff to previous 1.122 (colored)

Add a debug assert that wired pages provide protection flags in the flags
argument as well.

Also update a couple of debug messages to NPDEBUG.

Revision 1.97.4.3 / (download) - annotate - [select for diffs], Thu Nov 21 20:15:23 2002 UTC (21 years, 3 months ago) by he
Branch: netbsd-1-6
Changes since 1.97.4.2: +12 -16 lines
Diff to previous 1.97.4.2 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.110 (requested by thorpej in ticket #712):
  Do cached memory access to L1 tables, making sure to
  write-back the cache after any L1 table modifications.

Revision 1.97.4.2 / (download) - annotate - [select for diffs], Sat Nov 16 10:03:47 2002 UTC (21 years, 3 months ago) by he
Branch: netbsd-1-6
Changes since 1.97.4.1: +9 -19 lines
Diff to previous 1.97.4.1 (colored) to branchpoint 1.97 (colored)

Pull up revision 1.107 (requested by thorpej in ticket #662):
  Clean up some warts in pmap_protect().

Revision 1.122 / (download) - annotate - [select for diffs], Tue Nov 12 22:14:21 2002 UTC (21 years, 3 months ago) by chris
Branch: MAIN
Changes since 1.121: +23 -22 lines
Diff to previous 1.121 (colored)

Tweak a few minor things:
when looking to reenable caching, only do so if all the pages aren't already
cached.
Convert some ints to unsigned int.  (scarily this actually shows the biggest
decrease in timing for my benchmark, I guess the compiler can optimise better)

Revision 1.30.2.18 / (download) - annotate - [select for diffs], Mon Nov 11 21:56:35 2002 UTC (21 years, 3 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.17: +25 -19 lines
Diff to previous 1.30.2.17 (colored) to branchpoint 1.30 (colored)

Catch up to -current

Revision 1.121 / (download) - annotate - [select for diffs], Mon Nov 11 20:34:03 2002 UTC (21 years, 3 months ago) by chris
Branch: MAIN
Changes since 1.120: +42 -42 lines
Diff to previous 1.120 (colored)

gratuitous whitespace and de-__P'ing.  No functional change.

Revision 1.120 / (download) - annotate - [select for diffs], Mon Nov 11 09:34:44 2002 UTC (21 years, 3 months ago) by chris
Branch: MAIN
Changes since 1.119: +24 -14 lines
Diff to previous 1.119 (colored)

A few minor tweaks.

Use pmap_free_pvs in pmap_remove, should save on the overhead of freeing
each pv on it's own.

Correctly set ptp when calling pmap_enter_pv, this adds more overhead, but
the effect is minimal.  Timings show that it increases gmake's make configure
step from 2:07.90 to 2:08.90.  I've more optimisations planned that should
negate this increase.

Revision 1.119 / (download) - annotate - [select for diffs], Mon Nov 11 08:58:05 2002 UTC (21 years, 3 months ago) by chris
Branch: MAIN
Changes since 1.118: +3 -7 lines
Diff to previous 1.118 (colored)

Remove unused pa variable (it's assigned but not used any more)

Revision 1.30.2.17 / (download) - annotate - [select for diffs], Fri Oct 18 02:35:22 2002 UTC (21 years, 4 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.16: +10 -10 lines
Diff to previous 1.30.2.16 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.14.2.9 / (download) - annotate - [select for diffs], Thu Oct 10 18:31:45 2002 UTC (21 years, 4 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.8: +10 -10 lines
Diff to previous 1.14.2.8 (colored) next main 1.15 (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.118 / (download) - annotate - [select for diffs], Fri Sep 27 15:35:42 2002 UTC (21 years, 5 months ago) by provos
Branch: MAIN
CVS Tags: kqueue-beforemerge, kqueue-base, kqueue-aftermerge, bjh21-hydra-base, bjh21-hydra
Changes since 1.117: +4 -4 lines
Diff to previous 1.117 (colored)

remove trailing \n in panic().  approved perry.

Revision 1.117 / (download) - annotate - [select for diffs], Sun Sep 22 07:56:57 2002 UTC (21 years, 5 months ago) by chs
Branch: MAIN
Changes since 1.116: +8 -8 lines
Diff to previous 1.116 (colored)

rename the existing pmap_remove_all() here to pmap_page_remove()
(ala the x86 pmap) to avoid conflicting with the new pmap interface
function of the same name.

Revision 1.30.2.16 / (download) - annotate - [select for diffs], Tue Sep 17 21:13:22 2002 UTC (21 years, 5 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.15: +3 -2 lines
Diff to previous 1.30.2.15 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.14.2.8 / (download) - annotate - [select for diffs], Fri Sep 6 08:32:26 2002 UTC (21 years, 5 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.7: +500 -279 lines
Diff to previous 1.14.2.7 (colored)

sync kqueue branch with HEAD

Revision 1.116 / (download) - annotate - [select for diffs], Thu Sep 5 18:34:00 2002 UTC (21 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.115: +3 -2 lines
Diff to previous 1.115 (colored)

whitespace fix past __KERNEL_RCSID()

Revision 1.97.2.2 / (download) - annotate - [select for diffs], Fri Aug 30 00:19:08 2002 UTC (21 years, 5 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.97.2.1: +500 -276 lines
Diff to previous 1.97.2.1 (colored) to branchpoint 1.97 (colored) next main 1.98 (colored)

catch up with -current.

Revision 1.30.2.15 / (download) - annotate - [select for diffs], Wed Aug 28 18:17:53 2002 UTC (21 years, 6 months ago) by wrstuden
Branch: nathanw_sa
Changes since 1.30.2.14: +4 -4 lines
Diff to previous 1.30.2.14 (colored) to branchpoint 1.30 (colored)

There is no 'p', there is only 'l'.

Revision 1.30.2.14 / (download) - annotate - [select for diffs], Tue Aug 27 06:03:16 2002 UTC (21 years, 6 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30.2.13: +270 -93 lines
Diff to previous 1.30.2.13 (colored) to branchpoint 1.30 (colored)

Sync with -current.

Revision 1.115 / (download) - annotate - [select for diffs], Sat Aug 24 03:10:40 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
CVS Tags: gehenna-devsw-base
Changes since 1.114: +13 -9 lines
Diff to previous 1.114 (colored)

In pmap_map_in_l1() and pmap_unmap_in_l1(), make sure that the VA
that is passed in is already aligned to a 4M super-section.

Revision 1.114 / (download) - annotate - [select for diffs], Sat Aug 24 02:50:53 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.113: +13 -7 lines
Diff to previous 1.113 (colored)

When we allocate a PTP, make sure the offset we specify is for
the 4M super-section that the PTP will map, not some random 1M
chunk of it.  This gives the PTP hint code a much better chance
to working properly, and allows us to tidy up the code that
flushes a PTP from the cache in pmap_destroy().

Revision 1.113 / (download) - annotate - [select for diffs], Sat Aug 24 02:16:31 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.112: +117 -23 lines
Diff to previous 1.112 (colored)

Enable caching on kernel and user page tables.  This saves having
to do uncached memory access during VM operations (which can be
quite expensive on some CPUs).

We currently write-back PTEs as soon as they're modified; there is
some room for optimization (to write them back in larger chunks).
For PTEs in the APTE space (i.e. PTEs for pmaps that describe another
process's address space), PTEs must also be evicted from the cache
complete (PTEs in PTE space will be evicted durint a context switch).

Revision 1.112 / (download) - annotate - [select for diffs], Thu Aug 22 01:13:55 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.111: +9 -2 lines
Diff to previous 1.111 (colored)

* Add PTE_SYNC() and PTE_SYNC_RANGE() macros.  These don't actually do
  anything yet.
* Use PTE_SYNC() and PTE_SYNC_RANGE() in some obvious places, i.e.
  where vtopte() is used.

Revision 1.111 / (download) - annotate - [select for diffs], Wed Aug 21 21:22:52 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.110: +120 -50 lines
Diff to previous 1.110 (colored)

Use a pool cache for PT-PTs.

Revision 1.110 / (download) - annotate - [select for diffs], Wed Aug 21 18:34:31 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.109: +12 -16 lines
Diff to previous 1.109 (colored)

Do cached memory access to L1 tables, making sure to write-back the
cache after any L1 table modifications.

Revision 1.30.2.13 / (download) - annotate - [select for diffs], Tue Aug 13 04:17:36 2002 UTC (21 years, 6 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30.2.12: +13 -2 lines
Diff to previous 1.30.2.12 (colored) to branchpoint 1.30 (colored)

From trunk:

Add the brutal hack that allows us to limp along using the read/write
cache line allocation policy on XScale CPUs: in pmap_enter(), if the
pmap is the kernel pmap, clear the X-bit in the PTE, thus disabling
read/write-allocate for managed kernel mappings.

Yes, this is ugly.  But it makes userland code run with r/w-allocate,
which is a huge improvement on systems with low core memory performance.

Revision 1.109 / (download) - annotate - [select for diffs], Tue Aug 13 03:36:30 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.108: +13 -2 lines
Diff to previous 1.108 (colored)

Add the brutal hack that allows us to limp along using the read/write
cache line allocation policy on XScale CPUs: in pmap_enter(), if the
pmap is the kernel pmap, clear the X-bit in the PTE, thus disabling
read/write-allocate for managed kernel mappings.

Yes, this is ugly.  But it makes userland code run with r/w-allocate,
which is a huge improvement on systems with low core memory performance.

Revision 1.30.2.12 / (download) - annotate - [select for diffs], Tue Aug 13 02:17:51 2002 UTC (21 years, 6 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.11: +216 -53 lines
Diff to previous 1.30.2.11 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.108 / (download) - annotate - [select for diffs], Sat Aug 10 00:48:35 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.107: +19 -19 lines
Diff to previous 1.107 (colored)

Tidy up pmap_clean_page() a little, and reenable some code that was
disabled previously: Skip cleaning mappings which are read-only, because
the pmap (now) does clean pages on a r/w -> r/o transition.

Revision 1.107 / (download) - annotate - [select for diffs], Sat Aug 10 00:11:51 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.106: +9 -19 lines
Diff to previous 1.106 (colored)

Clean up some warts in pmap_protect().

Revision 1.106 / (download) - annotate - [select for diffs], Fri Aug 9 21:49:09 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.105: +21 -2 lines
Diff to previous 1.105 (colored)

Add an XSCALE_CACHE_READ_WRITE_ALLOCATE option for people who
want to play fast-and-loose.

Revision 1.105 / (download) - annotate - [select for diffs], Fri Aug 9 18:22:59 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.104: +129 -3 lines
Diff to previous 1.104 (colored)

Add some code, conditional on PMAP_ALIAS_DEBUG, that can be used to
hunt for virtual aliases between managed (pmap_enter) and non-managed
(pmap_kenter_pa) mappings.

Revision 1.104 / (download) - annotate - [select for diffs], Tue Aug 6 21:43:51 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.103: +46 -18 lines
Diff to previous 1.103 (colored)

- pmap_remove(): unmap the PTEs *after* we have finished with the
  page tables.
- pmap_enter(): if making a mapping for the same PA rw->ro, write-back
  the cache before doing so.
- pmap_clearbit(): if revoking REF on a page, make sure to wbinv the
  cache if the page has write permission, else inv the cache if the page's
  PTE is valid (XXX we actually wbinv in this case, as well, due to lack
  of idcache_inv_range()).  Only flush the TLB if the PTE changed.

Revision 1.30.2.11 / (download) - annotate - [select for diffs], Thu Aug 1 02:41:13 2002 UTC (21 years, 6 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.10: +12 -139 lines
Diff to previous 1.30.2.10 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.103 / (download) - annotate - [select for diffs], Wed Jul 31 17:34:23 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.102: +2 -57 lines
Diff to previous 1.102 (colored)

Overhaul how DMA ranges work in the ARM bus_dma implementation.

A new "arm32_dma_range" structure now describes a DMA window, with
a system address base, bus address base, and length.  In addition to
providing info about which memory regions are legal for DMA, the new
structure provides address translation support, as well.

As before, if a tag does not list any ranges, then all addresses are
considered valid, and no DMA address translation is performed.

This allows us to remove a large chunk of code which was duplicated and
tweaked slightly (to do the address translation) from the stock ARM
bus_dma in the XScale IOP and ARM Integrator ports.

Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.

Revision 1.97.4.1 / (download) - annotate - [select for diffs], Wed Jul 31 00:23:17 2002 UTC (21 years, 6 months ago) by lukem
Branch: netbsd-1-6
CVS Tags: netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1
Changes since 1.97: +13 -4 lines
Diff to previous 1.97 (colored)

Pull up revision 1.100 (requested by thorpej in ticket #587):
Don't use pmap_kenter_pa() in pmap_map(); doing so causes an assertion
failure in pmap_kenter_pa().

Revision 1.102 / (download) - annotate - [select for diffs], Wed Jul 31 00:20:52 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.101: +3 -79 lines
Diff to previous 1.101 (colored)

Move the calls to uvm_page_physload() out of pmap_bootstrap() and
into platform-specific initialization code, giving platform-specific
code control over which free list a given chunk of memory gets put
onto.

Changes are essentially mechanical.  Test compiled for all ARM
platforms, test booted on Intel IQ80321 and Shark.

Discussed some time ago on port-arm.

Revision 1.101 / (download) - annotate - [select for diffs], Tue Jul 30 16:16:39 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.100: +2 -7 lines
Diff to previous 1.100 (colored)

Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().

Revision 1.100 / (download) - annotate - [select for diffs], Tue Jul 30 16:07:23 2002 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.99: +13 -4 lines
Diff to previous 1.99 (colored)

Don't use pmap_kenter_pa() in pmap_map(); doing so causes an assertion
failure in pmap_kenter_pa().

Revision 1.97.2.1 / (download) - annotate - [select for diffs], Sun Jul 14 17:45:54 2002 UTC (21 years, 7 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.97: +6 -7 lines
Diff to previous 1.97 (colored)

catch up with -current.

Revision 1.30.2.10 / (download) - annotate - [select for diffs], Tue Jul 2 19:04:40 2002 UTC (21 years, 7 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.9: +8 -10 lines
Diff to previous 1.30.2.9 (colored) to branchpoint 1.30 (colored)

Several curlwp references here can revert to curproc.

Revision 1.30.2.9 / (download) - annotate - [select for diffs], Mon Jun 24 22:03:54 2002 UTC (21 years, 8 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.8: +11 -11 lines
Diff to previous 1.30.2.8 (colored) to branchpoint 1.30 (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.14.2.7 / (download) - annotate - [select for diffs], Sun Jun 23 17:34:45 2002 UTC (21 years, 8 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.6: +903 -829 lines
Diff to previous 1.14.2.6 (colored)

catch up with -current on kqueue branch

Revision 1.30.2.8 / (download) - annotate - [select for diffs], Thu Jun 20 03:38:05 2002 UTC (21 years, 8 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.7: +65 -22 lines
Diff to previous 1.30.2.7 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.99 / (download) - annotate - [select for diffs], Sun Jun 2 14:44:42 2002 UTC (21 years, 8 months ago) by drochner
Branch: MAIN
Changes since 1.98: +2 -3 lines
Diff to previous 1.98 (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.98 / (download) - annotate - [select for diffs], Sat Jun 1 23:50:54 2002 UTC (21 years, 8 months ago) by lukem
Branch: MAIN
Changes since 1.97: +6 -6 lines
Diff to previous 1.97 (colored)

SIMPLEQ rototill:
- implement SIMPLEQ_REMOVE(head, elm, type, field).  whilst it's O(n),
  this mirrors the functionality of SLIST_REMOVE() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE()
- remove the unnecessary elm arg from SIMPLEQ_REMOVE_HEAD().
  this mirrors the functionality of SLIST_REMOVE_HEAD() (the other
  singly-linked list type) and FreeBSD's STAILQ_REMOVE_HEAD()
- remove notes about SIMPLEQ not supporting arbitrary element removal
- use SIMPLEQ_FOREACH() instead of home-grown for loops
- use SIMPLEQ_EMPTY() appropriately
- use SIMPLEQ_*() instead of accessing sqh_first,sqh_last,sqe_next directly
- reorder manual page; be consistent about how the types are listed
- other minor cleanups

Revision 1.97 / (download) - annotate - [select for diffs], Tue May 14 19:22:34 2002 UTC (21 years, 9 months ago) by chris
Branch: MAIN
CVS Tags: netbsd-1-6-base
Branch point for: netbsd-1-6, gehenna-devsw
Changes since 1.96: +8 -2 lines
Diff to previous 1.96 (colored)

Implement scheduler lock protocol, this fixes PR arm/10863.

Also add correct locking when freeing pages in pmap_destroy (fix from potr)

This now means that arm32 kernels can be built with LOCKDEBUG enabled. (only tested on cats though)

Revision 1.96 / (download) - annotate - [select for diffs], Wed Apr 24 17:35:10 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.95: +55 -17 lines
Diff to previous 1.95 (colored)

* pmap_clean_page(): Clean up a comment.
* pmap_protect(): write back the range when doing a r/w -> r/o
  transition.  (Still leave the block concerned with this in
  pmap_clean_page() disabled, for now.)
* pmap_pte_init_xscale(): Disable read/write-allocate for now, until
  we figure out why sometimes cache lines of NULs get deposited into
  file data.  Also, make sure ECC protection of page table access is
  disabled for now.
* xscale_setup_minidata(): Make sure the mini-data cache is configured
  write-back with read/write-allocate.

Revision 1.30.2.7 / (download) - annotate - [select for diffs], Wed Apr 17 00:02:26 2002 UTC (21 years, 10 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.6: +526 -223 lines
Diff to previous 1.30.2.6 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.95 / (download) - annotate - [select for diffs], Fri Apr 12 21:52:47 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.94: +19 -18 lines
Diff to previous 1.94 (colored)

Default all XScale core processors to the read/write-allocate write-back
cache mode.  Add a new XSCALE_CACHE_WRITE_THROUGH option for people who
are paranoid about the cache-related errata (you *do* have to line up
the planets correctly to trip them, but having the option is useful).

Revision 1.94 / (download) - annotate - [select for diffs], Wed Apr 10 17:39:31 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.93: +11 -6 lines
Diff to previous 1.93 (colored)

On XScale processors where we use write-back caching, use are
read/write-allocate line allocation policy.

On the i80321, this improves nearly every lmbench benchmark, dramatically
so the ones that are sensitive to memory bandwidth (100-300% improvement
for these).

Revision 1.93 / (download) - annotate - [select for diffs], Wed Apr 10 17:08:13 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.92: +67 -26 lines
Diff to previous 1.92 (colored)

Add a new function, pmap_alloc_ptpt(), that allocates the PTPT and
maps it the way we want, rather than using uvm_km_zalloc() and playing
the "revoke cacheability" song-and-dance.

Revision 1.92 / (download) - annotate - [select for diffs], Wed Apr 10 15:56:21 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.91: +13 -10 lines
Diff to previous 1.91 (colored)

pmap_alloc_l1pt(): Just enter the mappings for the L1 table by
hand, rather than calling pmap_kenter_pa() and then revoking
cacheability in the PTE.

Revision 1.91 / (download) - annotate - [select for diffs], Wed Apr 10 15:44:23 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.90: +5 -5 lines
Diff to previous 1.90 (colored)

Use L2_S_CACHE_MASK in places where we revoke cacheability.

Revision 1.90 / (download) - annotate - [select for diffs], Wed Apr 10 04:40:58 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.89: +3 -5 lines
Diff to previous 1.89 (colored)

pmap_kenter_pa(): Obey the "prot" argument, rather than simply making
all mappings r/w (!!).

Revision 1.89 / (download) - annotate - [select for diffs], Wed Apr 10 01:30:42 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.88: +4 -4 lines
Diff to previous 1.88 (colored)

In pmap_copy_page_xscale(), put the source page in the mini-data
cache, as well.  The mini-data cache is 2-way, so src and dst won't
clobber each other, and the smallness of the cache doesn't matter,
since we access each page once sequentially.

While we still have to do the initial clean of the source page, this
saves another 4K of main D$ pollution, and also means we don't have
to do 2 cache passes after the copy is complete (i.e. we can skip the
invalidation of the source page in the main cache, since it's no longer
there).

Revision 1.88 / (download) - annotate - [select for diffs], Wed Apr 10 00:45:43 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.87: +87 -4 lines
Diff to previous 1.87 (colored)

Add separate pmap_{zero,copy}_page() functions for generic ARM
vs. XScale.  Use the mini-data cache for the destination on XScale,
thus saving tossing out 4K of possible-useful data from the main
data cache each time.

This significantly improves every test in lmbench.

Revision 1.87 / (download) - annotate - [select for diffs], Tue Apr 9 23:44:01 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.86: +36 -2 lines
Diff to previous 1.86 (colored)

* Move the code that cleans the XScale mini-data cache into its
  own function.
* Add a new function which sets up the mini-data cache clean area
  properly.

Revision 1.86 / (download) - annotate - [select for diffs], Tue Apr 9 22:37:01 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.85: +50 -29 lines
Diff to previous 1.85 (colored)

* Split pte_cache_mode into pte_l1_s_cache_mode, pte_l2_l_cache_mode,
  and pte_l2_s_cache_mode.  The cache-meaningful bits are different
  for these descriptor types on some processor models.
* Add pte_*_cache_mask, corresponding to each above, which has a mask
  of the cache-meangful bits, and define those for generic and XScale
  MMU classes.  Note, the L2_S_CACHE_MASK_xscale definition requires
  use of the Extended Small Page L2 descriptor (the "X" bit overlaps
  with AP bits otherwise).

Revision 1.85 / (download) - annotate - [select for diffs], Tue Apr 9 21:00:43 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.84: +86 -2 lines
Diff to previous 1.84 (colored)

Define 2 classes of ARM MMUs:
1. Generic (compatible with ARM6)
1. XScale (can be used as generic, but also has certainly nifty extensions).

Define abstract PTE bit defintions for each MMU class.  If only one MMU
class is configured into the kernel (based on CPU_* options), then we
get the constants for that MMU class.  Otherwise we indirect through
varaibles set up via set_cpufuncs().

XXX The XScale bits are currently the same as the generic bits.  Baby steps.

Revision 1.84 / (download) - annotate - [select for diffs], Tue Apr 9 19:44:22 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.83: +8 -8 lines
Diff to previous 1.83 (colored)

L2_TYPE_S -> L2_S_PROTO

Revision 1.83 / (download) - annotate - [select for diffs], Tue Apr 9 19:37:16 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.82: +43 -35 lines
Diff to previous 1.82 (colored)

Use abstract names for the protection and PTE type bits in
L1 and L2 descriptors.  This will allow us to support different
PTE layouts that enable the use of extensions on different
processor models.

Revision 1.82 / (download) - annotate - [select for diffs], Fri Apr 5 22:17:41 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.81: +28 -30 lines
Diff to previous 1.81 (colored)

Back-out rev 1.75 (pmap_extract() rewrite), and fix the (minor)
bug that revision intended to fix properly.

Revision 1.81 / (download) - annotate - [select for diffs], Fri Apr 5 16:58:05 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.80: +77 -79 lines
Diff to previous 1.80 (colored)

* Rewrite the 32-bit ARM pte.h based on the ARM architecture manual.
  Significant cleanup, here, including better PTE bit names.
* Add XScale PTE extensions (ECC enable, write-allocate cache mode).
* Mechanical changes everywhere else to update for new pte.h.  While
  doing this, two bugs (as a result of typos) were fixed in

	arm/arm32/bus_dma.c
	evbarm/integrator/int_bus_dma.c

Revision 1.80 / (download) - annotate - [select for diffs], Thu Apr 4 05:42:29 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.79: +3 -3 lines
Diff to previous 1.79 (colored)

Eliminate a mask against PD_MASK.

Revision 1.79 / (download) - annotate - [select for diffs], Thu Apr 4 04:43:20 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.78: +24 -18 lines
Diff to previous 1.78 (colored)

There is no need to mask VAs and PAs w/ PG_FRAME to clear
the lower bits; UVM provides us page-aligned addresses for
everything.  For the paranoid, we'll leave KDASSERT()'s in
that check for this if the kernel is built with DEBUG.

Low-hanging fruit that shaves some cycles.

Revision 1.78 / (download) - annotate - [select for diffs], Thu Apr 4 04:25:44 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.77: +46 -46 lines
Diff to previous 1.77 (colored)

Rename flags that are really part of the pv_entry/mdpage into
pmap.h and give them more descriptive names and better comments:
* PT_M  -> PVF_MOD (page is modified)
* PT_H  -> PVF_REF (page is referenced)
* PT_W  -> PVF_WIRED (mapping is wired)
* PT_Wr -> PVF_WRITE (mapping is writable)
* PT_NC -> PVF_NC (mapping is non-cacheable; multiple mappings)

Revision 1.77 / (download) - annotate - [select for diffs], Thu Apr 4 02:06:46 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.76: +8 -6 lines
Diff to previous 1.76 (colored)

Catch a couple more vector page mapping manipulations.

Revision 1.76 / (download) - annotate - [select for diffs], Wed Apr 3 23:33:28 2002 UTC (21 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.75: +29 -6 lines
Diff to previous 1.75 (colored)

Clean up handling of the vector page on 32-bit ARM systems:
* Don't refer to VA 0, instead refer to a new variable: vector_page
* Delete the old zero_page_*() functions, replacing them with a new
  one: vector_page_setprot().
* When manipulating vector page mappings in user pmaps, only do so if
  the vector page is below KERNEL_BASE (if it's above KERNEL_BASE, the
  vector page is mapped by the kernel pmap).
* Add a new function, arm32_vector_init(), which takes the virtual
  address of the vector page (which MUST be valid when the function
  is called) and a bitmask of vectors the kernel is going to take
  over, and performs all vector page initialization, including setting
  the V bit in the CPU Control register ("relocate vectors to high
  address"), if necessary.

Revision 1.75 / (download) - annotate - [select for diffs], Wed Apr 3 15:59:58 2002 UTC (21 years, 10 months ago) by reinoud
Branch: MAIN
Changes since 1.74: +25 -27 lines
Diff to previous 1.74 (colored)

Rototil and fix the pmap_extract function. It wouldn't even return data
when the part being quiried was mapped with a section (!) giving weird
results and had become a mess of goto's.

Complete rewrite and cleaned up the `goto'-jungle entirely ... ripped all
goto's. The resulting code is much better to read and might even have a
small performance gain.

Revision 1.30.2.6 / (download) - annotate - [select for diffs], Mon Apr 1 07:39:08 2002 UTC (21 years, 10 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.5: +629 -961 lines
Diff to previous 1.30.2.5 (colored) to branchpoint 1.30 (colored)

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

Revision 1.74 / (download) - annotate - [select for diffs], Mon Mar 25 22:11:12 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.73: +3 -4 lines
Diff to previous 1.73 (colored)

Fix reporting of the kernel virtual address space range to UVM.

Revision 1.73 / (download) - annotate - [select for diffs], Mon Mar 25 19:53:38 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.72: +80 -224 lines
Diff to previous 1.72 (colored)

* Some cleanup.
* Delete the call to pmap_copy() in pmap.h

Revision 1.72 / (download) - annotate - [select for diffs], Mon Mar 25 17:50:12 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.71: +15 -14 lines
Diff to previous 1.71 (colored)

Clean up pmap_map_ptes() and pmap_unmap_ptes() a little, and add
a debug assertion that curproc is never NULL if mapping a non-current
pmap.

Revision 1.71 / (download) - annotate - [select for diffs], Mon Mar 25 17:33:26 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.70: +29 -30 lines
Diff to previous 1.70 (colored)

The target page of pmap_zero_page(), pmap_pageidlezero(), and
pmap_copy_page() will never have any mappings.  Therefore, it
is unnecessary to do a cache clean for that page.

Add assertions in #ifdef DEBUG that assert this invariant.

This shaves some cycles off the frequently-called pmap_zero_page()
and pmap_copy_page() (no need to look up the dst page's vm_page
structure, and one less function call to clean the page).

Revision 1.70 / (download) - annotate - [select for diffs], Mon Mar 25 04:51:20 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.69: +13 -13 lines
Diff to previous 1.69 (colored)

* Fix use of pmap_curmaxkvaddr.
* Use the PTP hint in the pmap.

Revision 1.69 / (download) - annotate - [select for diffs], Mon Mar 25 03:00:28 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.68: +16 -4 lines
Diff to previous 1.68 (colored)

Move some private pmap data structures into pmap.c

Revision 1.68 / (download) - annotate - [select for diffs], Sun Mar 24 21:32:18 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.67: +2 -104 lines
Diff to previous 1.67 (colored)

Garbage-collect pmap_pte() (and good riddance!)

Revision 1.67 / (download) - annotate - [select for diffs], Sun Mar 24 21:10:25 2002 UTC (21 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.66: +2 -3 lines
Diff to previous 1.66 (colored)

remove pointless pg = NULL in else part of if (pg != NULL)

Revision 1.66 / (download) - annotate - [select for diffs], Sun Mar 24 20:48:59 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.65: +16 -55 lines
Diff to previous 1.65 (colored)

pmap_enter(): Use pmap_map_ptes() correctly.

Revision 1.65 / (download) - annotate - [select for diffs], Sun Mar 24 18:05:45 2002 UTC (21 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.64: +4 -4 lines
Diff to previous 1.64 (colored)

Update pmap_copy_page to only map in the src readonly and only invalidate it after the copy, no need for it to flush the wb.

Revision 1.64 / (download) - annotate - [select for diffs], Sun Mar 24 06:07:00 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.63: +8 -10 lines
Diff to previous 1.63 (colored)

pmap_allocpagedir(): Don't use pmap_pte(), and simplify a little.

Revision 1.63 / (download) - annotate - [select for diffs], Sun Mar 24 05:55:31 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.62: +9 -2 lines
Diff to previous 1.62 (colored)

pmap_handled_emulation(): Fix locking protocol botch.
XXX Should we traverse the PV list and enable all PTEs?

Revision 1.62 / (download) - annotate - [select for diffs], Sun Mar 24 05:52:10 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.61: +29 -28 lines
Diff to previous 1.61 (colored)

pmap_handled_emulation(): Use pmap_map_ptes() correctly.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Mar 24 05:39:53 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.60: +32 -27 lines
Diff to previous 1.60 (colored)

pmap_modified_emulation(): Use pmap_map_ptes() correctly.

Revision 1.60 / (download) - annotate - [select for diffs], Sun Mar 24 05:28:46 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.59: +28 -22 lines
Diff to previous 1.59 (colored)

pmap_unwire(): Use pmap_map_ptes() correctly.

Revision 1.59 / (download) - annotate - [select for diffs], Sun Mar 24 05:15:59 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.58: +15 -13 lines
Diff to previous 1.58 (colored)

pmap_clearbit(): Use pmap_map_ptes() correctly.

Revision 1.58 / (download) - annotate - [select for diffs], Sun Mar 24 04:56:49 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.57: +11 -14 lines
Diff to previous 1.57 (colored)

Use pmap_is_curpmap() consistently.

Revision 1.57 / (download) - annotate - [select for diffs], Sun Mar 24 04:49:16 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.56: +27 -46 lines
Diff to previous 1.56 (colored)

Clean up the PTP allocation functions a bit.

Revision 1.56 / (download) - annotate - [select for diffs], Sun Mar 24 03:37:21 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.55: +11 -13 lines
Diff to previous 1.55 (colored)

* arm_byte_to_page() -> arm_btop()
* arm_page_to_byte() -> arm_ptob()

Revision 1.55 / (download) - annotate - [select for diffs], Sun Mar 24 03:25:10 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.54: +6 -6 lines
Diff to previous 1.54 (colored)

Remove some redundant tests in pmap_enter().

Revision 1.54 / (download) - annotate - [select for diffs], Sat Mar 23 19:21:58 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.53: +43 -38 lines
Diff to previous 1.53 (colored)

Garbage-collect the "pagehook" stuff.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Mar 23 02:22:57 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.52: +27 -27 lines
Diff to previous 1.52 (colored)

* Rename PROCESS_PAGE_TBLS_BASE -> PTE_BASE
* Rename ALT_PAGE_TBLS_BASE -> APTE_BASE
* Garbage-collect PAGE_TABLE_SPACE_START

Revision 1.14.2.6 / (download) - annotate - [select for diffs], Sat Mar 16 15:56:04 2002 UTC (21 years, 11 months ago) by jdolecek
Branch: kqueue
Changes since 1.14.2.5: +518 -390 lines
Diff to previous 1.14.2.5 (colored)

Catch up with -current.

Revision 1.52 / (download) - annotate - [select for diffs], Fri Mar 8 20:48:29 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
CVS Tags: newlock-base, newlock, eeh-devprop-base, eeh-devprop
Changes since 1.51: +3 -3 lines
Diff to previous 1.51 (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.51 / (download) - annotate - [select for diffs], Wed Mar 6 10:55:21 2002 UTC (21 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.50: +19 -35 lines
Diff to previous 1.50 (colored)

Mostly style changes to stop us directly referencing tqh_first, and use TAILQ_FIRST instead.  Based on rev 1.130 of the i386 pmap.c.

Revision 1.50 / (download) - annotate - [select for diffs], Tue Mar 5 04:48:03 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.49: +44 -60 lines
Diff to previous 1.49 (colored)

* Make pmap_is_{modified,referenced}() macros in pmap.h that just
  test the attributes in the vm_page_md directly.
* Clean up pmap_clear_{modified,referenced}().
* Delete now-unused pmap_testbit().

Revision 1.49 / (download) - annotate - [select for diffs], Tue Mar 5 04:19:59 2002 UTC (21 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.48: +173 -267 lines
Diff to previous 1.48 (colored)

Switch back to using vm_page_md (thanks chuq for finding the bug
in the code that made it unstable before!)

Revision 1.48 / (download) - annotate - [select for diffs], Sun Mar 3 11:22:59 2002 UTC (21 years, 11 months ago) by chris
Branch: MAIN
Changes since 1.47: +133 -54 lines
Diff to previous 1.47 (colored)

Implement pmap_growkernel for arm32 based ports.
Note that this has been compiled on some systems, cats, IQ80310, IPAQ, netwinder and shark (note that shark's build is currently broken due to other reasons), but only actually run on cats.
Shark doesn't make use of the functionality as I believe there has to be a correlation between OFW and the kernel tables so that calls into OFW work.

Revision 1.30.2.5 / (download) - annotate - [select for diffs], Thu Feb 28 04:07:23 2002 UTC (21 years, 11 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.4: +216 -41 lines
Diff to previous 1.30.2.4 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Feb 22 04:49:20 2002 UTC (22 years ago) by thorpej
Branch: MAIN
CVS Tags: ifpoll-base
Changes since 1.46: +13 -8 lines
Diff to previous 1.46 (colored)

Change pmap_map_entry() to work like pmap_map_chunk(): take a pointer
to the L1 table and a virtual address, and no pointer to the L2 table.
The L2 table will be looked up by pmap_map_entry(), which will panic
if the there is no L2 table for the requested VA.

NOTE: IT IS EXTREMELY IMPORTANT THAT THE CORRECT VIRTUAL ADDRESS
BE PROVIDED TO pmap_map_entry()!  Notably, the code that mapped
the kernel L2 tables into the kernel PT mapping L2 table were not
passing actual virtual addresses, but rather offsets into the range
mapped by the L2 table.  I have fixed up all of these call sites,
and tested the resulting kernel on both an IQ80310 and a Shark.
Other portmasters should examine their pmap_map_entry() calls if
their new kernels fail.

Revision 1.46 / (download) - annotate - [select for diffs], Thu Feb 21 21:58:01 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.45: +41 -22 lines
Diff to previous 1.45 (colored)

Keep track of which kernel PTs are available during bootstrap,
and let pmap_map_chunk() lookup the correct one to use for the
current VA.  Eliminate the "l2table" argument to pmap_map_chunk().

Add a second L2 table for mapping kernel text/data/bss on the
IQ80310 (fixes booting kernels with ramdisks).

Revision 1.45 / (download) - annotate - [select for diffs], Thu Feb 21 06:36:11 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.44: +11 -2 lines
Diff to previous 1.44 (colored)

In pmap_map_chunk(), if we can't use a section mapping, then
make sure that the L1 slot for the current VA points to an L2
table, and panic if it doesn't.

Revision 1.44 / (download) - annotate - [select for diffs], Thu Feb 21 05:25:24 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.43: +6 -4 lines
Diff to previous 1.43 (colored)

Always pass the L1 table to pmap_map_chunk().  This allows pmap_map_chunk()
to perform some error checking.

Revision 1.43 / (download) - annotate - [select for diffs], Thu Feb 21 02:52:20 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.42: +87 -6 lines
Diff to previous 1.42 (colored)

map_chunk() -> pmap_map_chunk(), and move it to pmap.c

Revision 1.42 / (download) - annotate - [select for diffs], Wed Feb 20 20:41:16 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.41: +22 -2 lines
Diff to previous 1.41 (colored)

map_pagetable() -> pmap_link_l2pt(), and move it to pmap.c

Revision 1.41 / (download) - annotate - [select for diffs], Wed Feb 20 02:32:57 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.40: +23 -2 lines
Diff to previous 1.40 (colored)

Collapse map_entry{,ro,nc}() into a single pmap_map_entry() that
takes a prot and a "cacheable" indicator.

Revision 1.40 / (download) - annotate - [select for diffs], Wed Feb 20 00:10:17 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.39: +21 -3 lines
Diff to previous 1.39 (colored)

Rename map_section() to pmap_map_section(), move it to pmap.c, and give it
an extra argument (prot - specifies protection of the mapping).

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

Sync w/ -current.

Revision 1.39 / (download) - annotate - [select for diffs], Wed Feb 6 17:41:42 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.38: +301 -183 lines
Diff to previous 1.38 (colored)

Back out all the vm_page_md changes.  They are causing some
mysterious problems (a similar change to the i386 pmap causes
mysterious problems there, as well), and the issue needs to
be investigated more.

Revision 1.38 / (download) - annotate - [select for diffs], Wed Feb 6 17:32:35 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.37: +26 -48 lines
Diff to previous 1.37 (colored)

Efficiency tweaks, some made possible by vm_page_md.

Revision 1.37 / (download) - annotate - [select for diffs], Tue Feb 5 21:14:36 2002 UTC (22 years ago) by thorpej
Branch: MAIN
Changes since 1.36: +171 -267 lines
Diff to previous 1.36 (colored)

Use vm_page_md rather than pmap_physseg.  Saves lots of cycles in
common operations.

Revision 1.36 / (download) - annotate - [select for diffs], Fri Jan 25 19:19:25 2002 UTC (22 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.35: +18 -17 lines
Diff to previous 1.35 (colored)

Overhaul of the ARM cache code.  This is mostly a simplification
pass.  Rather than providing a whole slew of cache operations that
aren't ever used, distill them down to some useful primitives:

	icache_sync_all         Synchronize I-cache
	icache_sync_range       Synchronize I-cache range

	dcache_wbinv_all        Write-back and Invalidate D-cache
	dcache_wbinv_range      Write-back and Invalidate D-cache range
	dcache_inv_range        Invalidate D-cache range
	dcache_wb_range         Write-back D-cache range

	idcache_wbinv_all       Write-back and Invalidate D-cache,
				Invalidate I-cache
	idcache_wbinv_range     Write-back and Invalidate D-cache,
				Invalidate I-cache range

Note: This does not yet include an overhaul of the actual asm files
that implement the primitives.  Instead, we've provided a safe default
for each CPU type, and the individual CPU types can now be optimized
one at a time.

Revision 1.35 / (download) - annotate - [select for diffs], Sun Jan 20 03:41:48 2002 UTC (22 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.34: +2 -4 lines
Diff to previous 1.34 (colored)

Some prototype cleanup.

Revision 1.34 / (download) - annotate - [select for diffs], Thu Jan 17 03:06:21 2002 UTC (22 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.33: +24 -23 lines
Diff to previous 1.33 (colored)

Teach pmap_extract() about section mappings.

Revision 1.30.2.4 / (download) - annotate - [select for diffs], Fri Jan 11 23:38:01 2002 UTC (22 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.3: +19 -43 lines
Diff to previous 1.30.2.3 (colored) to branchpoint 1.30 (colored)

More catchup.

Revision 1.14.2.4 / (download) - annotate - [select for diffs], Thu Jan 10 19:37:49 2002 UTC (22 years, 1 month ago) by thorpej
Branch: kqueue
Changes since 1.14.2.3: +355 -146 lines
Diff to previous 1.14.2.3 (colored)

Sync kqueue branch with -current.

Revision 1.30.2.3 / (download) - annotate - [select for diffs], Tue Jan 8 00:23:09 2002 UTC (22 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.30.2.2: +28 -5 lines
Diff to previous 1.30.2.2 (colored) to branchpoint 1.30 (colored)

Catch up to -current.

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jan 5 22:41:47 2002 UTC (22 years, 1 month ago) by chris
Branch: MAIN
Changes since 1.32: +19 -43 lines
Diff to previous 1.32 (colored)

Make some of the arm32 files build with LOOSE_PROTOTYPES not set in the makefile.  Turned up a few mismatched functions.  Note that this isn't all of the arm32 files.  Aim will be to get arm32 kernels built with LOOSE_PROTOTYPES not set.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Nov 22 18:24:43 2001 UTC (22 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.31: +15 -5 lines
Diff to previous 1.31 (colored)

Add cpu_cpwait() calls after TLB updates that are not expected to
be followed up by a pmap_update().

Revision 1.31 / (download) - annotate - [select for diffs], Mon Nov 19 18:41:32 2001 UTC (22 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.30: +15 -2 lines
Diff to previous 1.30 (colored)

Implement pmap_update().  Currently it just calls cpu_cpwait(),
which ensures that TLB/cache operations have completed.

Revision 1.30.2.2 / (download) - annotate - [select for diffs], Thu Nov 15 06:39:22 2001 UTC (22 years, 3 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30.2.1: +3736 -0 lines
Diff to previous 1.30.2.1 (colored) to branchpoint 1.30 (colored)

Machine-dependent kernel mods for scheduler activations on
32-bit ARM processors.  Kernel boots multi-user on an XScale,
but upcalls not yet tested.

Revision 1.28.2.1 / (download) - annotate - [select for diffs], Mon Nov 12 21:16:30 2001 UTC (22 years, 3 months ago) by thorpej
Branch: thorpej-mips-cache
Changes since 1.28: +70 -46 lines
Diff to previous 1.28 (colored) next main 1.29 (colored)

Sync the thorpej-mips-cache branch with -current.

Revision 1.30.2.1, Sat Nov 3 00:06:02 2001 UTC (22 years, 3 months ago) by thorpej
Branch: nathanw_sa
Changes since 1.30: +0 -3724 lines
FILE REMOVED

file pmap.c was added on branch nathanw_sa on 2001-11-15 06:39:22 +0000

Revision 1.30 / (download) - annotate - [select for diffs], Sat Nov 3 00:06:02 2001 UTC (22 years, 3 months ago) by rearnsha
Branch: MAIN
CVS Tags: thorpej-mips-cache-base
Branch point for: nathanw_sa
Changes since 1.29: +19 -13 lines
Diff to previous 1.29 (colored)

Replace most uses of pmap_pde_p with pmap_pde_page, since that is what
we need later in the code.  This fixes a fatal kernel fault in
pmap_modified_emulation if a user application tries to access a kernel
address that is section-mapped.

Add a diagnostic that detects attempts to call pmap_kenter_pa with a
va that is section-mapped.

Revision 1.29 / (download) - annotate - [select for diffs], Thu Nov 1 15:49:16 2001 UTC (22 years, 3 months ago) by rearnsha
Branch: MAIN
Changes since 1.28: +53 -35 lines
Diff to previous 1.28 (colored)

When clearing the modified bit for modified emulation, don't turn
caching on for a page just because we are clearing the writable bit in
the PTE: this is incompatible with the way pmap_vac_me_harder works,
and the code in the modified emulation handler doesn't know about
recalculating the cachable attributes (nor should it, IMO).

Also, if we are invalidating a page, flush its TLB entry; for some
reason we were only doing this when clearing the Write or modified
bits.

These patches together seem to solve the random seg-faults that were
still occuring occasionally under heavy paging.

Revision 1.28 / (download) - annotate - [select for diffs], Thu Oct 18 18:15:56 2001 UTC (22 years, 4 months ago) by rearnsha
Branch: MAIN
Branch point for: thorpej-mips-cache
Changes since 1.27: +21 -2 lines
Diff to previous 1.27 (colored)

Add a comment describing the logic implemented by pmap_vac_me_harder.

Revision 1.27 / (download) - annotate - [select for diffs], Thu Oct 18 17:06:14 2001 UTC (22 years, 4 months ago) by rearnsha
Branch: MAIN
Changes since 1.26: +12 -5 lines
Diff to previous 1.26 (colored)

On processors that support both write-through and write-back cacheing
(eg ARM920), the mode in which the processor operates is governed by
the use of both the PT_C and PT_B bits:

	PT_C=1,PT_B=1 -> Write-back
	PT_C=1,PT_B=0 -> Write-through

To support this define pte_cache_mode (initialized to PT_C|PT_B) and
use that when enabling cacheing for a page.

Revision 1.26 / (download) - annotate - [select for diffs], Thu Oct 18 16:50:30 2001 UTC (22 years, 4 months ago) by rearnsha
Branch: MAIN
Changes since 1.25: +24 -6 lines
Diff to previous 1.25 (colored)

With a diagnostic kernel, printing out a message each time we fail
to allocate a L1 pt is often enough to bring the system to its knees:
so make the messages PDEBUG(0,...).

However, even with this step having more than a small number of
processes searching for a L1 pt can still be enough to bring the system
down, since they all run at high priority and sleep for very little time,
thus blocking out user code from completing.  So implement an exponential
backoff when waiting for a page table, so that we don't hog the CPU when
memory is scarce.

Tested by running a make of the C compiler with "gnumake -j30" (and plenty
of swap space).

Revision 1.25 / (download) - annotate - [select for diffs], Thu Oct 18 16:32:40 2001 UTC (22 years, 4 months ago) by rearnsha
Branch: MAIN
Changes since 1.24: +168 -48 lines
Diff to previous 1.24 (colored)

Fix pmap_vac_me_harder to take into account pages that are mapped
into both kernel and user space.

Fixes port-arm32/13998.

Revision 1.18.2.1 / (download) - annotate - [select for diffs], Mon Oct 1 12:37:35 2001 UTC (22 years, 4 months ago) by fvdl
Branch: thorpej-devvp
Changes since 1.18: +79 -65 lines
Diff to previous 1.18 (colored) next main 1.19 (colored)

Catch up with -current.

Revision 1.24 / (download) - annotate - [select for diffs], Sat Sep 29 09:39:12 2001 UTC (22 years, 4 months ago) by chris
Branch: MAIN
CVS Tags: thorpej-devvp-base3, thorpej-devvp-base2
Changes since 1.23: +8 -2 lines
Diff to previous 1.23 (colored)

Add a couple of simplelocks to make sure we call pagealloc with the uvm_object locked.  Found while running a LOCKDEBUG kernel on cats.

Revision 1.23 / (download) - annotate - [select for diffs], Sat Sep 15 20:36:33 2001 UTC (22 years, 5 months ago) by chs
Branch: MAIN
CVS Tags: post-chs-ubcperf
Changes since 1.22: +8 -31 lines
Diff to previous 1.22 (colored)

a whole bunch of changes to improve performance and robustness under load:

 - remove special treatment of pager_map mappings in pmaps.  this is
   required now, since I've removed the globals that expose the address range.
   pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's
   no longer any need to special-case it.
 - eliminate struct uvm_vnode by moving its fields into struct vnode.
 - rewrite the pageout path.  the pager is now responsible for handling the
   high-level requests instead of only getting control after a bunch of work
   has already been done on its behalf.  this will allow us to UBCify LFS,
   which needs tighter control over its pages than other filesystems do.
   writing a page to disk no longer requires making it read-only, which
   allows us to write wired pages without causing all kinds of havoc.
 - use a new PG_PAGEOUT flag to indicate that a page should be freed
   on behalf of the pagedaemon when it's unlocked.  this flag is very similar
   to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the
   pageout fails due to eg. an indirect-block buffer being locked.
   this allows us to remove the "version" field from struct vm_page,
   and together with shrinking "loan_count" from 32 bits to 16,
   struct vm_page is now 4 bytes smaller.
 - no longer use PG_RELEASED for swap-backed pages.  if the page is busy
   because it's being paged out, we can't release the swap slot to be
   reallocated until that write is complete, but unlike with vnodes we
   don't keep a count of in-progress writes so there's no good way to
   know when the write is done.  instead, when we need to free a busy
   swap-backed page, just sleep until we can get it busy ourselves.
 - implement a fast-path for extending writes which allows us to avoid
   zeroing new pages.  this substantially reduces cpu usage.
 - encapsulate the data used by the genfs code in a struct genfs_node,
   which must be the first element of the filesystem-specific vnode data
   for filesystems which use genfs_{get,put}pages().
 - eliminate many of the UVM pagerops, since they aren't needed anymore
   now that the pager "put" operation is a higher-level operation.
 - enhance the genfs code to allow NFS to use the genfs_{get,put}pages
   instead of a modified copy.
 - clean up struct vnode by removing all the fields that used to be used by
   the vfs_cluster.c code (which we don't use anymore with UBC).
 - remove kmem_object and mb_object since they were useless.
   instead of allocating pages to these objects, we now just allocate
   pages with no object.  such pages are mapped in the kernel until they
   are freed, so we can use the mapping to find the page to free it.
   this allows us to remove splvm() protection in several places.

The sum of all these changes improves write throughput on my
decstation 5000/200 to within 1% of the rate of NetBSD 1.5
and reduces the elapsed time for "make release" of a NetBSD 1.5
source tree on my 128MB pc to 10% less than a 1.5 kernel took.

Revision 1.22 / (download) - annotate - [select for diffs], Thu Sep 13 23:56:01 2001 UTC (22 years, 5 months ago) by chris
Branch: MAIN
CVS Tags: pre-chs-ubcperf
Changes since 1.21: +9 -7 lines
Diff to previous 1.21 (colored)

Sprinkle some static and inline into a couple of functions.  Remove dead entries from pmap.h.

Revision 1.21 / (download) - annotate - [select for diffs], Thu Sep 13 22:45:23 2001 UTC (22 years, 5 months ago) by chris
Branch: MAIN
Changes since 1.20: +42 -6 lines
Diff to previous 1.20 (colored)

Update pmap_clearbit to flush the cache if the area is being made readonly.  Also only do this and the tlb flush if the pmap is the current pmap.

Revision 1.14.2.3 / (download) - annotate - [select for diffs], Thu Sep 13 01:13:07 2001 UTC (22 years, 5 months ago) by thorpej
Branch: kqueue
Changes since 1.14.2.2: +20 -27 lines
Diff to previous 1.14.2.2 (colored)

Update the kqueue branch to HEAD.

Revision 1.20 / (download) - annotate - [select for diffs], Mon Sep 10 23:40:02 2001 UTC (22 years, 5 months ago) by chris
Branch: MAIN
Changes since 1.19: +14 -21 lines
Diff to previous 1.19 (colored)

Update the pmap following some comments from Chuck Silvers:
Remove some overzealous locking of HEAD_TO_MAP
Remove a potential deadlock in pmap_copy_page
Change alloc and free l1pt to use kenter/kremove.
Update pmap_map to use kenter (only actually used by dumpsys, so no matching kremove)

Revision 1.19 / (download) - annotate - [select for diffs], Mon Sep 10 21:19:35 2001 UTC (22 years, 5 months ago) by chris
Branch: MAIN
Changes since 1.18: +8 -8 lines
Diff to previous 1.18 (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.14.2.2 / (download) - annotate - [select for diffs], Sat Aug 25 06:15:08 2001 UTC (22 years, 6 months ago) by thorpej
Branch: kqueue
Changes since 1.14.2.1: +1014 -446 lines
Diff to previous 1.14.2.1 (colored)

Merge Aug 24 -current into the kqueue branch.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Aug 11 14:47:56 2001 UTC (22 years, 6 months ago) by chris
Branch: MAIN
CVS Tags: thorpej-devvp-base
Branch point for: thorpej-devvp
Changes since 1.17: +2 -4 lines
Diff to previous 1.17 (colored)

Fix compile without DIAGNOSTICs enabled

Revision 1.17 / (download) - annotate - [select for diffs], Sat Aug 11 13:20:19 2001 UTC (22 years, 6 months ago) by chris
Branch: MAIN
Changes since 1.16: +1014 -444 lines
Diff to previous 1.16 (colored)

Checking a whole host of pmap changes:
Improved locking (not that we actually use it on a uniprocessor, but one day :)
Removed unneeded splvm's
tweaked pmap_clean_page code to only flush the cache if the page is mapped in the current pmap  (based on diff from richard E)
Adopted pv entry allocation mechanism from i386.
Laid framework for returning ptp's when we've finished with them rather than holding onto them till the process exits.
ptp's are now allocated with a uvm object for the pmap, means that we can walk a list to free them off in pmap_release, until they get freed off by pmap_remove.

Also implemented a page zeroing function when the processor is idling.  Note that hpcarm may wish to disable this.

I believe this code to be stable, if anyone has any problems please shout up.

Revision 1.14.2.1 / (download) - annotate - [select for diffs], Fri Aug 3 04:10:58 2001 UTC (22 years, 6 months ago) by lukem
Branch: kqueue
Changes since 1.14: +90 -80 lines
Diff to previous 1.14 (colored)

update to -current

Revision 1.16 / (download) - annotate - [select for diffs], Sun Jul 29 12:45:27 2001 UTC (22 years, 7 months ago) by chris
Branch: MAIN
Changes since 1.15: +43 -30 lines
Diff to previous 1.15 (colored)

Rework the pmap_release code to not have to walk the ptpt, it now uses a uvm_object to track the allocated vm_pages, this means it can free off the entries in the uvm_object.

Testing shows that it's about 5% faster on the make configure step for gmake.

Revision 1.15 / (download) - annotate - [select for diffs], Sat Jul 28 18:12:43 2001 UTC (22 years, 7 months ago) by chris
Branch: MAIN
Changes since 1.14: +49 -52 lines
Diff to previous 1.14 (colored)

A couple of tidy ups to pmap:
pmap_t -> struct pmap * in pmap.c and pmap.h
kernel_pmap -> pmap_kernel() everywhere.

Compiled and booted on riscpc and cats.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Jul 8 19:44:43 2001 UTC (22 years, 7 months ago) by chs
Branch: MAIN
Branch point for: kqueue
Changes since 1.13: +18 -56 lines
Diff to previous 1.13 (colored)

clean up pmap_k{enter_pa,remove}():
a page is allowed to be mapped normally when k-mapped.
use UVM_PGA_ZERO to get zeroed pages rather than zeroing here.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Jul 6 20:15:13 2001 UTC (22 years, 7 months ago) by chris
Branch: MAIN
Changes since 1.12: +77 -3 lines
Diff to previous 1.12 (colored)

Implement proper versions of kenter_pa and kremove, I've based them on versions provided by Richard E.

Revision 1.12 / (download) - annotate - [select for diffs], Mon Jun 25 23:22:38 2001 UTC (22 years, 8 months ago) by chris
Branch: MAIN
Changes since 1.11: +92 -23 lines
Diff to previous 1.11 (colored)

Improve the vac_me_harder function, it is now slightly faster, however pmap_enter_pv is also now slightly slower, so they appear to balance out.

Note that I've some ideas in the works on how to improve the pv handling, so the slow down is short term only.

Also added non-advertising licence and copyright to myself and richard.

Revision 1.11 / (download) - annotate - [select for diffs], Sun Jun 24 23:21:04 2001 UTC (22 years, 8 months ago) by chris
Branch: MAIN
Changes since 1.10: +100 -43 lines
Diff to previous 1.10 (colored)

Add a pmap_map_ptes function to map another process page table entries into the current pmap (similair to pmap_pte) but this allows multiple use of it, rather than repeated calls of pmap_pte for pte, map_ptes returns a pointer to the va where the entries were mapped so it can be reused ptes can be found by indexing into it.

Update some of the functions that use pmap_pte to pmap_map_ptes.

Note that there's a dummy macro for pmap_unmap_ptes, this is because at some point locking will be needed, so we need to be able to unlock them.

Performance gain seems to be minimal, however long term it should help improve things.

This is similair to the i386 pmap_map_ptes, however it's based on a version from Richard Earnshaw.

Revision 1.10 / (download) - annotate - [select for diffs], Fri Jun 22 09:09:42 2001 UTC (22 years, 8 months ago) by chris
Branch: MAIN
Changes since 1.9: +21 -4 lines
Diff to previous 1.9 (colored)

Use a pool to store pmap structs.

Revision 1.3.2.2 / (download) - annotate - [select for diffs], Thu Jun 21 19:18:50 2001 UTC (22 years, 8 months ago) by nathanw
Changes since 1.3.2.1: +15 -18 lines
Diff to previous 1.3.2.1 (colored) next main 1.4 (colored)

Catch up to -current.

Revision 1.9 / (download) - annotate - [select for diffs], Sat May 26 21:27:04 2001 UTC (22 years, 9 months ago) by chs
Branch: MAIN
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

replace vm_page_t with struct vm_page *.

Revision 1.8 / (download) - annotate - [select for diffs], Wed Apr 25 17:35:01 2001 UTC (22 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.7: +1 -2 lines
Diff to previous 1.7 (colored)

Garbage-collect pmap_page_index().

Revision 1.7 / (download) - annotate - [select for diffs], Tue Apr 24 04:30:53 2001 UTC (22 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_beforemerge
Changes since 1.6: +6 -1 lines
Diff to previous 1.6 (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.3.4.4 / (download) - annotate - [select for diffs], Mon Apr 23 09:41:33 2001 UTC (22 years, 10 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3.4.3: +9 -16 lines
Diff to previous 1.3.4.3 (colored) next main 1.4 (colored)

Sync with HEAD.

Revision 1.6 / (download) - annotate - [select for diffs], Sun Apr 22 23:42:13 2001 UTC (22 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_nbase, thorpej_scsipi_base
Changes since 1.5: +1 -15 lines
Diff to previous 1.5 (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.5 / (download) - annotate - [select for diffs], Fri Apr 20 18:11:53 2001 UTC (22 years, 10 months ago) by toshii
Branch: MAIN
Changes since 1.4: +9 -2 lines
Diff to previous 1.4 (colored)

In pmap_allocpagedir(), check if uvm_km_zalloc of ptpt is successful,
and handle alloc failure case.

Revision 1.3.2.1 / (download) - annotate - [select for diffs], Mon Apr 9 01:50:46 2001 UTC (22 years, 10 months ago) by nathanw
Changes since 1.3: +2 -6 lines
Diff to previous 1.3 (colored)

Catch up with -current.

Revision 1.3.4.3 / (download) - annotate - [select for diffs], Tue Mar 27 15:30:18 2001 UTC (22 years, 11 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3.4.2: +2 -6 lines
Diff to previous 1.3.4.2 (colored)

Sync with HEAD.

Revision 1.4 / (download) - annotate - [select for diffs], Thu Mar 15 06:10:35 2001 UTC (22 years, 11 months ago) by chs
Branch: MAIN
Changes since 1.3: +2 -6 lines
Diff to previous 1.3 (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.3.4.2 / (download) - annotate - [select for diffs], Mon Mar 12 13:27:20 2001 UTC (22 years, 11 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3.4.1: +2772 -0 lines
Diff to previous 1.3.4.1 (colored)

Sync with HEAD.

Revision 1.3.4.1, Sun Mar 4 19:05:55 2001 UTC (22 years, 11 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.3: +0 -2772 lines
FILE REMOVED

file pmap.c was added on branch thorpej_scsipi on 2001-03-12 13:27:20 +0000

Revision 1.3 / (download) - annotate - [select for diffs], Sun Mar 4 19:05:55 2001 UTC (22 years, 11 months ago) by matt
Branch: MAIN
Branch point for: thorpej_scsipi
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

more vm_offset_t/vm_size_t -> {p,v}{addr,size}_t changes
move pmap_* declarations to pmap.h.  fix conflicts this
exposed (e.g different definitions for pmap_bootstrap).

Revision 1.2 / (download) - annotate - [select for diffs], Sun Mar 4 07:30:19 2001 UTC (22 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.1: +47 -46 lines
Diff to previous 1.1 (colored)

Convert some vm_size_t to vsize_t/psize_t.   Change vaddr_t to paddr_t
where appropriate.

Revision 1.1 / (download) - annotate - [select for diffs], Sun Mar 4 05:08:09 2001 UTC (22 years, 11 months ago) by matt
Branch: MAIN

Move from arm32/arm32.  s/vm_offset_t/vaddr_t/g

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>