The NetBSD Project

CVS log for src/sys/arch/powerpc/oea/pmap.c

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.114.4.2 / (download) - annotate - [select for diffs], Fri Dec 29 20:21:40 2023 UTC (2 months, 4 weeks ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2
Changes since 1.114.4.1: +240 -194 lines
Diff to previous 1.114.4.1 (colored) to branchpoint 1.114 (colored) next main 1.115 (colored) to selected 1.47 (colored)

Additionally pull up following revision(s) (requested by rin in ticket #400):

	sys/arch/powerpc/include/oea/pmap.h: revision 1.39
	sys/arch/powerpc/include/pmap.h: revision 1.43
	sys/arch/powerpc/oea/pmap_kernel.c: revision 1.14
	sys/arch/powerpc/oea/pmap.c: revision 1.117
	sys/arch/powerpc/oea/pmap.c: revision 1.118
	sys/arch/powerpc/oea/pmap.c: revision 1.119
	sys/arch/powerpc/include/vmparam.h: revision 1.27
	sys/arch/powerpc/powerpc/trap.c: revision 1.165
	sys/arch/powerpc/oea/pmap.c: revision 1.120
	sys/arch/powerpc/oea/pmap.c: revision 1.121
	sys/arch/powerpc/powerpc/vm_machdep.c: revision 1.106
	sys/arch/powerpc/powerpc/bus_dma.c: revision 1.56

powerpc/oea: trap: pmap_{pte,ste}_spill() even in the interrupt context

Page table for oea is something like L2 TLB on memory; kernel and
processes share its entries, and process entries can be spilled out.

As done for MMU based on software-managed TLB, we need to restore
such entries even in the interrupt context.

Note that pmap_pte_spill() require no resouce to restore entries.
Still-not-implemented pmap_ste_spill() for OEA64 should also.
Part of PR kern/57621

powerpc/oea: pmap: Drop unused argument for pmap_pvo_reclaim(), NFC
Part of PR kern/57621

powerpc/oea: pmap: Rework pmap_pte_spill()

It was broken in many ways... Now, it gets working stable both for
OEA and OEA64_BRIDGE, as far as I can see.
Part of PR kern/57621

powerpc/oea: pmap: Fix mostly-pointless overhead of pmap_pvo_pool
(1) Drop __aligned(32) from struct pvo_entry; otherwise,
    sizeof(struct pvo_entry) is round-up'ed to a multiple of 32.
(2) Do not set sizeof(struct pvo_entry) to `align` argument for
    pool_init(9); it must be power of 2.
(3) Align pvo_entry to 32-byte boundary only if reasonably possible,
    i.e., OEA without DIAGNOSTIC (--> POOL_REDZONE) for now.
Part of PR kern/57621

powerpc/oea: pmap_create: Use PR_ZERO and drop memset(9), NFC
Part of PR kern/57621

powerpc: oea: For OEA64_BRIDGE, 1:1 map up to 3GiB memory
As done for OEA. Note that kva over 3GiB is reserved.

Provide PMAP_MAP_POOLPAGE for OEA64_BRIDGE at the same time, by
which direct-mapped memory is utilized in order to work around
starvation of 512MiB kernel virtual space.
PR kern/57621

powerpc: Make sure direct-mapped buffer fits within correct range

For OEA and OEA64_BRIDGE, only first 3GiB memory is direct-mapped.
Part of PR kern/57621

Revision 1.121 / (download) - annotate - [select for diffs], Fri Dec 15 09:42:33 2023 UTC (3 months, 1 week ago) by rin
Branch: MAIN
CVS Tags: HEAD
Changes since 1.120: +114 -72 lines
Diff to previous 1.120 (colored) to selected 1.47 (colored)

powerpc: oea: For OEA64_BRIDGE, 1:1 map up to 3GiB memory

As done for OEA. Note that kva over 3GiB is reserved.

Provide PMAP_MAP_POOLPAGE for OEA64_BRIDGE at the same time, by
which direct-mapped memory is utilized in order to work around
starvation of 512MiB kernel virtual space.

PR kern/57621

Revision 1.120 / (download) - annotate - [select for diffs], Fri Dec 15 09:36:35 2023 UTC (3 months, 1 week ago) by rin
Branch: MAIN
Changes since 1.119: +3 -4 lines
Diff to previous 1.119 (colored) to selected 1.47 (colored)

powerpc/oea: pmap_create: Use PR_ZERO and drop memset(9), NFC

Part of PR kern/57621

Revision 1.119 / (download) - annotate - [select for diffs], Fri Dec 15 09:35:29 2023 UTC (3 months, 1 week ago) by rin
Branch: MAIN
Changes since 1.118: +12 -5 lines
Diff to previous 1.118 (colored) to selected 1.47 (colored)

powerpc/oea: pmap: Fix mostly-pointless overhead of pmap_pvo_pool

(1) Drop __aligned(32) from struct pvo_entry; otherwise,
    sizeof(struct pvo_entry) is round-up'ed to a multiple of 32.

(2) Do not set sizeof(struct pvo_entry) to `align` argument for
    pool_init(9); it must be power of 2.

(3) Align pvo_entry to 32-byte boundary only if reasonably possible,
    i.e., OEA without DIAGNOSTIC (--> POOL_REDZONE) for now.

Part of PR kern/57621

Revision 1.118 / (download) - annotate - [select for diffs], Fri Dec 15 09:33:29 2023 UTC (3 months, 1 week ago) by rin
Branch: MAIN
Changes since 1.117: +114 -116 lines
Diff to previous 1.117 (colored) to selected 1.47 (colored)

powerpc/oea: pmap: Rework pmap_pte_spill()

It was broken in many ways... Now, it gets working stable both for
OEA and OEA64_BRIDGE, as far as I can see.

Part of PR kern/57621

Revision 1.117 / (download) - annotate - [select for diffs], Fri Dec 15 09:32:05 2023 UTC (3 months, 1 week ago) by rin
Branch: MAIN
Changes since 1.116: +5 -5 lines
Diff to previous 1.116 (colored) to selected 1.47 (colored)

powerpc/oea: pmap: Drop unused argument for pmap_pvo_reclaim(), NFC

Part of PR kern/57621

Revision 1.116 / (download) - annotate - [select for diffs], Fri Dec 8 21:46:02 2023 UTC (3 months, 2 weeks ago) by andvar
Branch: MAIN
Changes since 1.115: +4 -4 lines
Diff to previous 1.115 (colored) to selected 1.47 (colored)

fix triple s typos in comments.

Revision 1.114.4.1 / (download) - annotate - [select for diffs], Mon Oct 9 13:36:58 2023 UTC (5 months, 2 weeks ago) by martin
Branch: netbsd-10
CVS Tags: netbsd-10-0-RC1
Changes since 1.114: +3 -3 lines
Diff to previous 1.114 (colored) to selected 1.47 (colored)

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

	sys/arch/powerpc/oea/pmap.c: revision 1.115

powerpc/oea: pmap: Use pool_allocator_nointr() for pmap_pool

As done for (majority of) other pmap implementations.
pmap_pool_allocator() allocates memory below 256MB, but it is not
necessary for struct pmap.

Fix part of PR kern/57621, i.e., stall in pmap_create(9).

There should be another bugs that cause (MP?) kernel hangs
reported in the PR, in pmap or other MD components for powerpc
(PR port-powerpc/56922 should be one of the candidates).
XXX

pmap for powerpc/oea apparently needs some clean ups. But leave it
as is, and pull up this minimum fix to netbsd-10 at the moment.

Revision 1.115 / (download) - annotate - [select for diffs], Mon Oct 9 13:01:58 2023 UTC (5 months, 2 weeks ago) by rin
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation
Changes since 1.114: +3 -3 lines
Diff to previous 1.114 (colored) to selected 1.47 (colored)

powerpc/oea: pmap: Use pool_allocator_nointr() for pmap_pool

As done for (majority of) other pmap implementations.

pmap_pool_allocator() allocates memory below 256MB, but it is not
necessary for struct pmap.

Fix part of PR kern/57621, i.e., stall in pmap_create(9).

There should be another bugs that cause (MP?) kernel hangs
reported in the PR, in pmap or other MD components for powerpc
(PR port-powerpc/56922 should be one of the candidates).

XXX
pmap for powerpc/oea apparently needs some clean ups. But leave it
as is, and pull up this minimum fix to netbsd-10 at the moment.

Revision 1.114 / (download) - annotate - [select for diffs], Mon May 9 11:39:44 2022 UTC (22 months, 2 weeks ago) by rin
Branch: MAIN
CVS Tags: netbsd-10-base, bouyer-sunxi-drm-base, bouyer-sunxi-drm
Branch point for: netbsd-10
Changes since 1.113: +3 -3 lines
Diff to previous 1.113 (colored) to selected 1.47 (colored)

PR port-powerpc/56818

Fix inverted logic introduced in rev. 1.108, by which modified/referenced
bits of pages were never cleared appropriately.

Now, full ATF runs on macppc and sandpoint, with no regression observed.

Revision 1.113 / (download) - annotate - [select for diffs], Sat Apr 9 23:38:32 2022 UTC (23 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.112: +4 -4 lines
Diff to previous 1.112 (colored) to selected 1.47 (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.112 / (download) - annotate - [select for diffs], Sat Mar 12 15:32:31 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.111: +4 -2 lines
Diff to previous 1.111 (colored) to selected 1.47 (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.111 / (download) - annotate - [select for diffs], Fri Feb 18 19:04:52 2022 UTC (2 years, 1 month ago) by martin
Branch: MAIN
Changes since 1.110: +5 -3 lines
Diff to previous 1.110 (colored) to selected 1.47 (colored)

Backout previous and fix the correct macro magic

Revision 1.110 / (download) - annotate - [select for diffs], Fri Feb 18 18:58:15 2022 UTC (2 years, 1 month ago) by martin
Branch: MAIN
Changes since 1.109: +3 -3 lines
Diff to previous 1.109 (colored) to selected 1.47 (colored)

pmap_pv_protect is not STATIC

Revision 1.109 / (download) - annotate - [select for diffs], Wed Feb 16 23:49:27 2022 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.108: +17 -13 lines
Diff to previous 1.108 (colored) to selected 1.47 (colored)

powerpc: Sprinkle "memory" clobbers on eieio and nearby asm blocks.

Otherwise the compiler may reorder these around loads and stores,
which mostly defeats the purpose.  `asm volatile' just ensures the
instruction isn't _deleted_; it may still move around.

Revision 1.108 / (download) - annotate - [select for diffs], Wed Feb 16 23:31:13 2022 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.107: +55 -14 lines
Diff to previous 1.107 (colored) to selected 1.47 (colored)

powerpc: Implement pv-tracking for unmanaged pages.

Needed for drm.

Revision 1.105.4.1 / (download) - annotate - [select for diffs], Sun Aug 1 22:42:14 2021 UTC (2 years, 7 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.105: +56 -127 lines
Diff to previous 1.105 (colored) next main 1.106 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.107 / (download) - annotate - [select for diffs], Mon Jul 19 14:49:45 2021 UTC (2 years, 8 months ago) by chs
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2
Changes since 1.106: +25 -27 lines
Diff to previous 1.106 (colored) to selected 1.47 (colored)

there is no need to keep pvos for unmanaged mappings on a hidden p/v list,
since "unmanaged" means that we don't want to find such pvos on any p/v list.
instead, just don't put such pvos on any p/v list at all and remove
the two hidden p/v lists for unmanaged mappings.  code mostly from martin,
to implement rin's suggestion of unifying the two hidden lists.

Revision 1.106 / (download) - annotate - [select for diffs], Sun Jun 27 12:26:33 2021 UTC (2 years, 9 months ago) by martin
Branch: MAIN
Changes since 1.105: +33 -102 lines
Diff to previous 1.105 (colored) to selected 1.47 (colored)

PR 55325: unify both pvo pools (for managed and unmanaged pages).
Analyzis by rin, fix suggested by chs.

Revision 1.98.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:35 2021 UTC (2 years, 11 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.98: +155 -121 lines
Diff to previous 1.98 (colored) next main 1.99 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.105 / (download) - annotate - [select for diffs], Fri Mar 12 18:10:00 2021 UTC (3 years ago) by thorpej
Branch: MAIN
CVS Tags: thorpej-futex-base, thorpej-cfargs-base, thorpej-cfargs, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x
Branch point for: thorpej-i2c-spi-conf
Changes since 1.104: +3 -3 lines
Diff to previous 1.104 (colored) to selected 1.47 (colored)

Fix paste-o in last.

Revision 1.104 / (download) - annotate - [select for diffs], Fri Mar 12 04:57:42 2021 UTC (3 years ago) by thorpej
Branch: MAIN
Changes since 1.103: +88 -49 lines
Diff to previous 1.103 (colored) to selected 1.47 (colored)

Re-factor the code in pmap_extract() that checks the 601 I/O segment
table and the BAT tables into separate functions that can be called
from outside of the pmap module.

Revision 1.103 / (download) - annotate - [select for diffs], Thu Mar 11 04:43:47 2021 UTC (3 years ago) by thorpej
Branch: MAIN
Changes since 1.102: +19 -28 lines
Diff to previous 1.102 (colored) to selected 1.47 (colored)

Tidy up initialization of the kernel SRs just a bit.

Revision 1.102 / (download) - annotate - [select for diffs], Wed Mar 10 18:29:07 2021 UTC (3 years ago) by thorpej
Branch: MAIN
Changes since 1.101: +11 -38 lines
Diff to previous 1.101 (colored) to selected 1.47 (colored)

- In pmap_bootstrap1(), make sure to initialize pmap_kernel()->pm_vsid
  with the kernel's base VSID.
- In va_to_vsid(), always compute the VSID from the base VSID in the
  pmap and the effective segment ID (ESID), rather than extracting it
  from the pmap's segment register value for that ESID.  Not only does
  this make the code the same between OEA and OEA64, but is also lets
  us compute the correct VSID for that pmap/ESID even if the cached SR
  for that ESID currently contains something else, such as an I/O segment
  mapping (as might be the case on a 601).

With this change, we can temporarily toggle between an I/O segment and
and HTAB-mapped segment if needed (e.g. when calling OpenFirmware on
a 601-based system).

Revision 1.101 / (download) - annotate - [select for diffs], Tue Mar 2 01:47:44 2021 UTC (3 years ago) by thorpej
Branch: MAIN
Changes since 1.100: +4 -2 lines
Diff to previous 1.100 (colored) to selected 1.47 (colored)

Complete the pmap symbol renaming shenanigans for pmap_bootstrap[12]().

Revision 1.100 / (download) - annotate - [select for diffs], Tue Mar 2 00:28:55 2021 UTC (3 years ago) by rin
Branch: MAIN
Changes since 1.99: +6 -2 lines
Diff to previous 1.99 (colored) to selected 1.47 (colored)

Apply PMAPNAME() to pmap_bootstrap[12](); fix build for ofppc, which has
both pmap32 and pmap64bridge in a single kernel.

Revision 1.99 / (download) - annotate - [select for diffs], Mon Mar 1 01:53:46 2021 UTC (3 years ago) by thorpej
Branch: MAIN
Changes since 1.98: +47 -22 lines
Diff to previous 1.98 (colored) to selected 1.47 (colored)

Split pmap_bootstrap() into 2 functions:
- pmap_bootstrap1(), which sets up the low-level pmap data structures.
- pmap_bootstrap2(), which actually programs the MMU hardware based on
  pmap_bootstrap1()'s work.

pmap_bootstrap() is still provided as a wrapper around the two, but this
provides flexibility to platforms that might need to do additional work
between these two phases.

Revision 1.98 / (download) - annotate - [select for diffs], Mon Jul 6 09:34:17 2020 UTC (3 years, 8 months ago) by rin
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.97: +5 -3 lines
Diff to previous 1.97 (colored) to selected 1.47 (colored)

Style and cosmetic changes. No binary changes intended.

Revision 1.97 / (download) - annotate - [select for diffs], Thu Jul 2 10:28:11 2020 UTC (3 years, 8 months ago) by rin
Branch: MAIN
Changes since 1.96: +7 -7 lines
Diff to previous 1.96 (colored) to selected 1.47 (colored)

Fix typo; PMAP_OEA64_BRIDGE not PMAP_OEA_BRIDGE.
Tested on Power Mac G5.

Revision 1.92.2.1 / (download) - annotate - [select for diffs], Sun Jun 7 12:26:22 2020 UTC (3 years, 9 months ago) by martin
Branch: netbsd-7
Changes since 1.92: +4 -2 lines
Diff to previous 1.92 (colored) next main 1.93 (colored) to selected 1.47 (colored)

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

	sys/arch/powerpc/oea/pmap.c: revision 1.96

Stop returning while PMAP_LOCK() (= KERNEL_LOCK(1, NULL)) is held.
Kernel freeze with heavy load is significantly mitigated (fixed?),
in which I could not even enter DDB from console.

XXX
There is still inconsistency in usage of two PVO pools.
I will send-pr later.

XXX
pullup to netbsd-[987]

Revision 1.94.8.2 / (download) - annotate - [select for diffs], Sun Jun 7 12:23:43 2020 UTC (3 years, 9 months ago) by martin
Branch: netbsd-8
Changes since 1.94.8.1: +4 -2 lines
Diff to previous 1.94.8.1 (colored) to branchpoint 1.94 (colored) next main 1.95 (colored) to selected 1.47 (colored)

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

	sys/arch/powerpc/oea/pmap.c: revision 1.96

Stop returning while PMAP_LOCK() (= KERNEL_LOCK(1, NULL)) is held.
Kernel freeze with heavy load is significantly mitigated (fixed?),
in which I could not even enter DDB from console.

XXX
There is still inconsistency in usage of two PVO pools.
I will send-pr later.

XXX
pullup to netbsd-[987]

Revision 1.95.8.1 / (download) - annotate - [select for diffs], Sun Jun 7 12:21:35 2020 UTC (3 years, 9 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE
Changes since 1.95: +4 -2 lines
Diff to previous 1.95 (colored) next main 1.96 (colored) to selected 1.47 (colored)

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

	sys/arch/powerpc/oea/pmap.c: revision 1.96

Stop returning while PMAP_LOCK() (= KERNEL_LOCK(1, NULL)) is held.
Kernel freeze with heavy load is significantly mitigated (fixed?),
in which I could not even enter DDB from console.

XXX
There is still inconsistency in usage of two PVO pools.
I will send-pr later.

XXX
pullup to netbsd-[987]

Revision 1.96 / (download) - annotate - [select for diffs], Sun May 31 10:49:39 2020 UTC (3 years, 9 months ago) by rin
Branch: MAIN
Changes since 1.95: +4 -2 lines
Diff to previous 1.95 (colored) to selected 1.47 (colored)

Stop returning while PMAP_LOCK() (= KERNEL_LOCK(1, NULL)) is held.

Kernel freeze with heavy load is significantly mitigated (fixed?),
in which I could not even enter DDB from console.

XXX
There is still inconsistency in usage of two PVO pools.
I will send-pr later.

XXX
pullup to netbsd-[987]

Revision 1.94.8.1 / (download) - annotate - [select for diffs], Tue Feb 27 09:07:33 2018 UTC (6 years, 1 month ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Changes since 1.94: +13 -5 lines
Diff to previous 1.94 (colored) to selected 1.47 (colored)

Pull up following revision(s) (requested by mrg in ticket #593):
	sys/dev/marvell/mvxpsec.c: revision 1.2
	sys/arch/m68k/m68k/pmap_motorola.c: revision 1.70
	sys/opencrypto/crypto.c: revision 1.102
	sys/arch/sparc64/sparc64/pmap.c: revision 1.308
	sys/ufs/chfs/chfs_malloc.c: revision 1.5
	sys/arch/powerpc/oea/pmap.c: revision 1.95
	sys/sys/pool.h: revision 1.80,1.82
	sys/kern/subr_pool.c: revision 1.209-1.216,1.219-1.220
	sys/arch/alpha/alpha/pmap.c: revision 1.262
	sys/kern/uipc_mbuf.c: revision 1.173
	sys/uvm/uvm_fault.c: revision 1.202
	sys/sys/mbuf.h: revision 1.172
	sys/kern/subr_extent.c: revision 1.86
	sys/arch/x86/x86/pmap.c: revision 1.266 (via patch)
	sys/dev/dtv/dtv_scatter.c: revision 1.4

Allow only one pending call to a pool's backing allocator at a time.
Candidate fix for problems with hanging after kva fragmentation related
to PR kern/45718.

Proposed on tech-kern:
https://mail-index.NetBSD.org/tech-kern/2017/10/23/msg022472.html
Tested by bouyer@ on i386.

This makes one small change to the semantics of pool_prime and
pool_setlowat: they may fail with EWOULDBLOCK instead of ENOMEM, if
there is a pending call to the backing allocator in another thread but
we are not actually out of memory.  That is unlikely because nearly
always these are used during initialization, when the pool is not in
use.

Define the new flag too for previous commit.

pool_grow can now fail even when sleeping is ok. Catch this case in pool_get
and retry.

Assert that pool_get failure happens only with PR_NOWAIT.
This would have caught the mistake I made last week leading to null
pointer dereferences all over the place, a mistake which I evidently
poorly scheduled alongside maxv's change to the panic message on x86
for null pointer dereferences.

Since pr_lock is now used to wait for two things now (PR_GROWING and
PR_WANTED) we need to loop for the condition we wanted.
make the KASSERTMSG/panic strings consistent as '%s: [%s], __func__, wchan'
Handle the ERESTART case from pool_grow()

don't pass 0 to the pool flags
Guess pool_cache_get(pc, 0) means PR_WAITOK here.
Earlier on in the same context we use kmem_alloc(sz, KM_SLEEP).

use PR_WAITOK everywhere.
use PR_NOWAIT.

Don't use 0 for PR_NOWAIT

use PR_NOWAIT instead of 0

panic ex nihilo -- PR_NOWAITing for zerot

Add assertions that either PR_WAITOK or PR_NOWAIT are set.
- fix an assert; we can reach there if we are nowait or limitfail.
- when priming the pool and failing with ERESTART, don't decrement the number
  of pages; this avoids the issue of returning an ERESTART when we get to 0,
  and is more correct.
- simplify the pool_grow code, and don't wakeup things if we ENOMEM.

In pmap_enter_ma(), only try to allocate pves if we might need them,
and even if that fails, only fail the operation if we later discover
that we really do need them.  This implements the requirement that
pmap_enter(PMAP_CANFAIL) must not fail when replacing an existing
mapping with the first mapping of a new page, which is an unintended
consequence of the changes from the rmind-uvmplock branch in 2011.

The problem arises when pmap_enter(PMAP_CANFAIL) is used to replace an existing
pmap mapping with a mapping of a different page (eg. to resolve a copy-on-write).
If that fails and leaves the old pmap entry in place, then UVM won't hold
the right locks when it eventually retries.  This entanglement of the UVM and
pmap locking was done in rmind-uvmplock in order to improve performance,
but it also means that the UVM state and pmap state need to be kept in sync
more than they did before.  It would be possible to handle this in the UVM code
instead of in the pmap code, but these pmap changes improve the handling of
low memory situations in general, and handling this in UVM would be clunky,
so this seemed like the better way to go.

This somewhat indirectly fixes PR 52706, as well as the failing assertion
about "uvm_page_locked_p(old_pg)".  (but only on x86, various other platforms
will need their own changes to handle this issue.)
In uvm_fault_upper_enter(), if pmap_enter(PMAP_CANFAIL) fails, assert that
the pmap did not leave around a now-stale pmap mapping for an old page.
If such a pmap mapping still existed after we unlocked the vm_map,
the UVM code would not know later that it would need to lock the
lower layer object while calling the pmap to remove or replace that
stale pmap mapping.  See PR 52706 for further details.
hopefully workaround the irregularly "fork fails in init" problem.
if a pool is growing, and the grower is PR_NOWAIT, mark this.
if another caller wants to grow the pool and is also PR_NOWAIT,
busy-wait for the original caller, which should either succeed
or hard-fail fairly quickly.

implement the busy-wait by unlocking and relocking this pools
mutex and returning ERESTART.  other methods (such as having
the caller do this) were significantly more code and this hack
is fairly localised.
ok chs@ riastradh@

Don't release the lock in the PR_NOWAIT allocation. Move flags setting
after the acquiring the mutex. (from Tobias Nygren)
apply the change from arch/x86/x86/pmap.c rev. 1.266 commitid vZRjvmxG7YTHLOfA:

In pmap_enter_ma(), only try to allocate pves if we might need them,
and even if that fails, only fail the operation if we later discover
that we really do need them.  If we are replacing an existing mapping,
reuse the pv structure where possible.

This implements the requirement that pmap_enter(PMAP_CANFAIL) must not fail
when replacing an existing mapping with the first mapping of a new page,
which is an unintended consequence of the changes from the rmind-uvmplock
branch in 2011.

The problem arises when pmap_enter(PMAP_CANFAIL) is used to replace an existing
pmap mapping with a mapping of a different page (eg. to resolve a copy-on-write).
If that fails and leaves the old pmap entry in place, then UVM won't hold
the right locks when it eventually retries.  This entanglement of the UVM and
pmap locking was done in rmind-uvmplock in order to improve performance,
but it also means that the UVM state and pmap state need to be kept in sync
more than they did before.  It would be possible to handle this in the UVM code
instead of in the pmap code, but these pmap changes improve the handling of
low memory situations in general, and handling this in UVM would be clunky,
so this seemed like the better way to go.

This somewhat indirectly fixes PR 52706 on the remaining platforms where
this problem existed.

Revision 1.95 / (download) - annotate - [select for diffs], Sat Jan 27 23:07:36 2018 UTC (6 years, 2 months ago) by chs
Branch: MAIN
CVS Tags: phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, netbsd-9-base, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, isaki-audio2-base, isaki-audio2, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Branch point for: netbsd-9
Changes since 1.94: +13 -5 lines
Diff to previous 1.94 (colored) to selected 1.47 (colored)

apply the change from arch/x86/x86/pmap.c rev. 1.266 commitid vZRjvmxG7YTHLOfA:

In pmap_enter_ma(), only try to allocate pves if we might need them,
and even if that fails, only fail the operation if we later discover
that we really do need them.  If we are replacing an existing mapping,
reuse the pv structure where possible.

This implements the requirement that pmap_enter(PMAP_CANFAIL) must not fail
when replacing an existing mapping with the first mapping of a new page,
which is an unintended consequence of the changes from the rmind-uvmplock
branch in 2011.

The problem arises when pmap_enter(PMAP_CANFAIL) is used to replace an existing
pmap mapping with a mapping of a different page (eg. to resolve a copy-on-write).
If that fails and leaves the old pmap entry in place, then UVM won't hold
the right locks when it eventually retries.  This entanglement of the UVM and
pmap locking was done in rmind-uvmplock in order to improve performance,
but it also means that the UVM state and pmap state need to be kept in sync
more than they did before.  It would be possible to handle this in the UVM code
instead of in the pmap code, but these pmap changes improve the handling of
low memory situations in general, and handling this in UVM would be clunky,
so this seemed like the better way to go.

This somewhat indirectly fixes PR 52706 on the remaining platforms where
this problem existed.

Revision 1.86.2.4 / (download) - annotate - [select for diffs], Sun Dec 3 11:36:37 2017 UTC (6 years, 3 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.86.2.3: +31 -36 lines
Diff to previous 1.86.2.3 (colored) next main 1.87 (colored) to selected 1.47 (colored)

update from HEAD

Revision 1.92.4.2 / (download) - annotate - [select for diffs], Sun Feb 5 13:40:18 2017 UTC (7 years, 1 month ago) by skrll
Branch: nick-nhusb
Changes since 1.92.4.1: +32 -38 lines
Diff to previous 1.92.4.1 (colored) to branchpoint 1.92 (colored) next main 1.93 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.93.2.1 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:24 2017 UTC (7 years, 2 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.93: +32 -38 lines
Diff to previous 1.93 (colored) next main 1.94 (colored) to selected 1.47 (colored)

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

Revision 1.94 / (download) - annotate - [select for diffs], Fri Dec 23 07:15:28 2016 UTC (7 years, 3 months ago) by cherry
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Branch point for: netbsd-8
Changes since 1.93: +32 -38 lines
Diff to previous 1.93 (colored) to selected 1.47 (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.92.4.1 / (download) - annotate - [select for diffs], Sat Mar 19 11:30:04 2016 UTC (8 years ago) by skrll
Branch: nick-nhusb
Changes since 1.92: +3 -2 lines
Diff to previous 1.92 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.93 / (download) - annotate - [select for diffs], Sun Feb 14 18:07:49 2016 UTC (8 years, 1 month ago) by dholland
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, localcount-20160914
Branch point for: pgoyette-localcount
Changes since 1.92: +3 -2 lines
Diff to previous 1.92 (colored) to selected 1.47 (colored)

Add missing va_end; PR 50795 from David Binderman.

Revision 1.86.2.3 / (download) - annotate - [select for diffs], Wed Aug 20 00:03:20 2014 UTC (9 years, 7 months ago) by tls
Branch: tls-maxphys
Changes since 1.86.2.2: +19 -8 lines
Diff to previous 1.86.2.2 (colored) to selected 1.47 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.92 / (download) - annotate - [select for diffs], Sun Aug 10 17:49:04 2014 UTC (9 years, 7 months ago) by joerg
Branch: MAIN
CVS Tags: tls-maxphys-base, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, 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
Branch point for: nick-nhusb, netbsd-7
Changes since 1.91: +4 -4 lines
Diff to previous 1.91 (colored) to selected 1.47 (colored)

Update conditions on mfsrin definition to match use.

Revision 1.82.2.3 / (download) - annotate - [select for diffs], Thu May 22 11:40:04 2014 UTC (9 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.82.2.2: +22 -11 lines
Diff to previous 1.82.2.2 (colored) to branchpoint 1.82 (colored) next main 1.83 (colored) to selected 1.47 (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.89.4.1 / (download) - annotate - [select for diffs], Sun May 18 17:45:22 2014 UTC (9 years, 10 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.89: +19 -8 lines
Diff to previous 1.89 (colored) next main 1.90 (colored) to selected 1.47 (colored)

sync with head

Revision 1.91 / (download) - annotate - [select for diffs], Mon Mar 3 15:36:36 2014 UTC (10 years ago) by macallan
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Changes since 1.90: +12 -2 lines
Diff to previous 1.90 (colored) to selected 1.47 (colored)

support ppc601
from scole_mail, ok matt@

Revision 1.90 / (download) - annotate - [select for diffs], Sun Nov 3 22:15:57 2013 UTC (10 years, 4 months ago) by mrg
Branch: MAIN
Changes since 1.89: +9 -8 lines
Diff to previous 1.89 (colored) to selected 1.47 (colored)

gcc 4.8.1 wants:
- remove some set but unused variables
- move some variables inside their usage #ifdef's
- cast to (void) instead of using a dummy return variable

(there are more to come, but this one is now tested with gcc 4.5)

Revision 1.86.2.2 / (download) - annotate - [select for diffs], Sun Jun 23 06:20:10 2013 UTC (10 years, 9 months ago) by tls
Branch: tls-maxphys
Changes since 1.86.2.1: +5 -5 lines
Diff to previous 1.86.2.1 (colored) to selected 1.47 (colored)

resync from head

Revision 1.89 / (download) - annotate - [select for diffs], Thu Apr 11 17:13:15 2013 UTC (10 years, 11 months ago) by macallan
Branch: MAIN
CVS Tags: riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, khorben-n900
Branch point for: rmind-smpnet
Changes since 1.88: +3 -3 lines
Diff to previous 1.88 (colored) to selected 1.47 (colored)

make PPC_OEA64_BRIDGE mode work
from Phileas Fogg

Revision 1.88 / (download) - annotate - [select for diffs], Thu Mar 28 00:22:21 2013 UTC (11 years ago) by christos
Branch: MAIN
Changes since 1.87: +4 -4 lines
Diff to previous 1.87 (colored) to selected 1.47 (colored)

Fix loop bug (Phileas Fogg)

Revision 1.86.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:01:39 2012 UTC (11 years, 4 months ago) by tls
Branch: tls-maxphys
Changes since 1.86: +14 -2 lines
Diff to previous 1.86 (colored) to selected 1.47 (colored)

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

Revision 1.82.2.2 / (download) - annotate - [select for diffs], Tue Oct 30 17:20:13 2012 UTC (11 years, 4 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.82.2.1: +28 -15 lines
Diff to previous 1.82.2.1 (colored) to branchpoint 1.82 (colored) to selected 1.47 (colored)

sync with head

Revision 1.87 / (download) - annotate - [select for diffs], Sat Oct 20 14:42:15 2012 UTC (11 years, 5 months ago) by kiyohara
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, agc-symver-base, agc-symver
Changes since 1.86: +14 -2 lines
Diff to previous 1.86 (colored) to selected 1.47 (colored)

Support Cache Protocol 'MEI' with MULTIPROCESSOR.

Revision 1.86 / (download) - annotate - [select for diffs], Sat Jul 28 23:11:00 2012 UTC (11 years, 8 months ago) by matt
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.85: +16 -15 lines
Diff to previous 1.85 (colored) to selected 1.47 (colored)

Fix -fno-common fallout.

Revision 1.82.2.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:06:47 2012 UTC (11 years, 11 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.82: +69 -70 lines
Diff to previous 1.82 (colored) to selected 1.47 (colored)

sync with head

Revision 1.82.6.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:32:57 2012 UTC (12 years, 1 month ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.82: +69 -70 lines
Diff to previous 1.82 (colored) next main 1.83 (colored) to selected 1.47 (colored)

merge to -current.

Revision 1.85 / (download) - annotate - [select for diffs], Fri Feb 3 19:29:59 2012 UTC (12 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10
Changes since 1.84: +64 -65 lines
Diff to previous 1.84 (colored) to selected 1.47 (colored)

Use CPP __VA_ARGS__ for DPRINTF*

Revision 1.84 / (download) - annotate - [select for diffs], Wed Feb 1 09:54:03 2012 UTC (12 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.83: +4 -3 lines
Diff to previous 1.83 (colored) to selected 1.47 (colored)

Use kmem instead of malloc.  Remove unneeded <sys/malloc.h> includes.

Revision 1.83 / (download) - annotate - [select for diffs], Wed Feb 1 05:25:57 2012 UTC (12 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.82: +5 -6 lines
Diff to previous 1.82 (colored) to selected 1.47 (colored)

Enable XBSEN and HIGHBAT for OEA 7455 and related CPUs.
The BAT entries now have a resolution of 8MB.  (Adjacent entries are merged
up to a total of 2GB per entry).

Revision 1.82 / (download) - annotate - [select for diffs], Sun Jul 17 20:54:46 2011 UTC (12 years, 8 months ago) by joerg
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.81: +2 -3 lines
Diff to previous 1.81 (colored) to selected 1.47 (colored)

Retire varargs.h support. Move machine/stdarg.h logic into MI
sys/stdarg.h and expect compiler to provide proper builtins, defaulting
to the GCC interface. lint still has a special fallback.
Reduce abuse of _BSD_VA_LIST_ by defining __va_list by default and
derive va_list as required by standards.

Revision 1.81 / (download) - annotate - [select for diffs], Thu Jun 30 00:52:59 2011 UTC (12 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.80: +4 -4 lines
Diff to previous 1.80 (colored) to selected 1.47 (colored)

Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).

Revision 1.79.2.1 / (download) - annotate - [select for diffs], Thu Jun 23 14:19:32 2011 UTC (12 years, 9 months ago) by cherry
Branch: cherry-xenmp
Changes since 1.79: +6 -5 lines
Diff to previous 1.79 (colored) next main 1.80 (colored) to selected 1.47 (colored)

Catchup with rmind-uvmplock merge.

Revision 1.80 / (download) - annotate - [select for diffs], Sun Jun 19 07:59:47 2011 UTC (12 years, 9 months ago) by matt
Branch: MAIN
Changes since 1.79: +6 -5 lines
Diff to previous 1.79 (colored) to selected 1.47 (colored)

Use __builtin_clz instead of cntlzw

Revision 1.74.2.1 / (download) - annotate - [select for diffs], Mon Jun 6 09:06:29 2011 UTC (12 years, 9 months ago) by jruoho
Branch: jruoho-x86intr
Changes since 1.74: +15 -26 lines
Diff to previous 1.74 (colored) next main 1.75 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.71.2.2 / (download) - annotate - [select for diffs], Tue May 31 03:04:14 2011 UTC (12 years, 10 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.71.2.1: +1 -3 lines
Diff to previous 1.71.2.1 (colored) to branchpoint 1.71 (colored) next main 1.72 (colored) to selected 1.47 (colored)

sync with head

Revision 1.79 / (download) - annotate - [select for diffs], Mon May 2 01:49:23 2011 UTC (12 years, 10 months ago) by matt
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.78: +3 -5 lines
Diff to previous 1.78 (colored) to selected 1.47 (colored)

A little PMAP_OEA64 pmap support.

Revision 1.71.2.1 / (download) - annotate - [select for diffs], Sat Mar 5 20:51:39 2011 UTC (13 years ago) by rmind
Branch: rmind-uvmplock
Changes since 1.71: +40 -36 lines
Diff to previous 1.71 (colored) to selected 1.47 (colored)

sync with head

Revision 1.75.2.2 / (download) - annotate - [select for diffs], Sat Mar 5 15:09:59 2011 UTC (13 years ago) by bouyer
Branch: bouyer-quota2
Changes since 1.75.2.1: +2 -15 lines
Diff to previous 1.75.2.1 (colored) next main 1.76 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.78 / (download) - annotate - [select for diffs], Fri Feb 18 16:40:50 2011 UTC (13 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: bouyer-quota2-nbase
Changes since 1.77: +2 -15 lines
Diff to previous 1.77 (colored) to selected 1.47 (colored)

Move powerpc_mmap_flags since pmap.c can get compiled multiple time resulting
in multiple defintions of powerpc_mmap_flags.

Revision 1.75.2.1 / (download) - annotate - [select for diffs], Thu Feb 17 11:59:57 2011 UTC (13 years, 1 month ago) by bouyer
Branch: bouyer-quota2
Changes since 1.75: +25 -21 lines
Diff to previous 1.75 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.77 / (download) - annotate - [select for diffs], Tue Feb 15 19:39:12 2011 UTC (13 years, 1 month ago) by macallan
Branch: MAIN
CVS Tags: uebayasi-xip-base7, bouyer-quota2-base
Changes since 1.76: +22 -3 lines
Diff to previous 1.76 (colored) to selected 1.47 (colored)

implement pmap_mmap_flags() and teach PowerPC's bus_space_mmap() to actually
use BUS_SPACE_MAP_PREFETCHABLE which, now that /dev/pci* knows how to use it,
helps improve X performance

Revision 1.76 / (download) - annotate - [select for diffs], Sat Feb 12 18:23:10 2011 UTC (13 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.75: +5 -20 lines
Diff to previous 1.75 (colored) to selected 1.47 (colored)

When an OEA kernel is configured for multiple MMU types, use the new
powerpc fixup mechanism to bind the kernel to a particular MMU.  This
avoids an indirect call for every pmap call.

Revision 1.61.12.3 / (download) - annotate - [select for diffs], Wed Jan 26 08:52:27 2011 UTC (13 years, 2 months ago) by matt
Branch: matt-nb5-pq3
Changes since 1.61.12.2: +4 -4 lines
Diff to previous 1.61.12.2 (colored) to branchpoint 1.61 (colored) next main 1.62 (colored) to selected 1.47 (colored)

Change battable to have a granularity of 8MB.

Revision 1.75 / (download) - annotate - [select for diffs], Tue Jan 18 01:02:55 2011 UTC (13 years, 2 months ago) by matt
Branch: MAIN
Branch point for: bouyer-quota2
Changes since 1.74: +4 -4 lines
Diff to previous 1.74 (colored) to selected 1.47 (colored)

Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.

Revision 1.61.12.2 / (download) - annotate - [select for diffs], Mon Jan 17 07:45:59 2011 UTC (13 years, 2 months ago) by matt
Branch: matt-nb5-pq3
Changes since 1.61.12.1: +3 -3 lines
Diff to previous 1.61.12.1 (colored) to branchpoint 1.61 (colored) to selected 1.47 (colored)

Add SPE (signal processing engine) support for mpc85xx/booke.  Think of it
as AltiVec-lite (really lite).  Genercize AltiVec support so that it could
the same interface could support SPE as well.  Rework the FPU support along
the same lines.  Move the __asm() to their own XXX_subr.S (altivec, fpu, spe).

Revision 1.61.12.1 / (download) - annotate - [select for diffs], Fri Jan 7 02:12:19 2011 UTC (13 years, 2 months ago) by matt
Branch: matt-nb5-pq3
Changes since 1.61: +5 -4 lines
Diff to previous 1.61 (colored) to selected 1.47 (colored)

Deal with new powerpc world.

Revision 1.74 / (download) - annotate - [select for diffs], Fri Nov 12 07:59:26 2010 UTC (13 years, 4 months ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base6, matt-mips64-premerge-20101231, jruoho-x86intr-base
Branch point for: jruoho-x86intr
Changes since 1.73: +0 -2 lines
Diff to previous 1.73 (colored) to selected 1.47 (colored)

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

Revision 1.73 / (download) - annotate - [select for diffs], Wed Nov 10 09:27:23 2010 UTC (13 years, 4 months ago) by uebayasi
Branch: MAIN
Changes since 1.72: +11 -8 lines
Diff to previous 1.72 (colored) to selected 1.47 (colored)

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

Revision 1.69.2.5 / (download) - annotate - [select for diffs], Sat Nov 6 08:08:21 2010 UTC (13 years, 4 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.69.2.4: +4 -2 lines
Diff to previous 1.69.2.4 (colored) to branchpoint 1.69 (colored) next main 1.70 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.72 / (download) - annotate - [select for diffs], Sat Oct 30 18:08:48 2010 UTC (13 years, 5 months ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base5, uebayasi-xip-base4
Changes since 1.71: +19 -7 lines
Diff to previous 1.71 (colored) to selected 1.47 (colored)

Use VM_PAGE_TO_MD() to locate struct vm_page_md.  No functional
changes.

Revision 1.69.2.4 / (download) - annotate - [select for diffs], Sat Oct 30 08:41:10 2010 UTC (13 years, 5 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.69.2.3: +12 -0 lines
Diff to previous 1.69.2.3 (colored) to branchpoint 1.69 (colored) to selected 1.47 (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.69.2.3 / (download) - annotate - [select for diffs], Fri Apr 30 14:39:44 2010 UTC (13 years, 11 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.69.2.2: +3 -2 lines
Diff to previous 1.69.2.2 (colored) to branchpoint 1.69 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.69.2.2 / (download) - annotate - [select for diffs], Wed Apr 28 08:31:07 2010 UTC (13 years, 11 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.69.2.1: +11 -8 lines
Diff to previous 1.69.2.1 (colored) to branchpoint 1.69 (colored) to selected 1.47 (colored)

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

Revision 1.58.4.4 / (download) - annotate - [select for diffs], Thu Mar 11 15:02:51 2010 UTC (14 years ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.58.4.3: +8 -25 lines
Diff to previous 1.58.4.3 (colored) to branchpoint 1.58 (colored) next main 1.59 (colored) to selected 1.47 (colored)

sync with head

Revision 1.69.2.1 / (download) - annotate - [select for diffs], Fri Feb 26 14:40:23 2010 UTC (14 years, 1 month ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.69: +17 -7 lines
Diff to previous 1.69 (colored) to selected 1.47 (colored)

Use VM_PAGE_TO_MD().  Only compile tested.

Revision 1.71 / (download) - annotate - [select for diffs], Thu Feb 25 23:31:47 2010 UTC (14 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1
Branch point for: rmind-uvmplock
Changes since 1.70: +4 -3 lines
Diff to previous 1.70 (colored) to selected 1.47 (colored)

Adapt to spr.h breakup.

Revision 1.70 / (download) - annotate - [select for diffs], Thu Feb 25 07:21:19 2010 UTC (14 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.69: +3 -3 lines
Diff to previous 1.69 (colored) to selected 1.47 (colored)

s/cpu_fork/cpu_lwp_fork/ in comment

Revision 1.69 / (download) - annotate - [select for diffs], Sat Nov 21 17:40:29 2009 UTC (14 years, 4 months ago) by rmind
Branch: MAIN
CVS Tags: uebayasi-xip-base, matt-premerge-20091211
Branch point for: uebayasi-xip
Changes since 1.68: +3 -4 lines
Diff to previous 1.68 (colored) to selected 1.47 (colored)

Use lwp_getpcb() on mips, powerpc and sh3, clean from struct user usage.

Revision 1.68 / (download) - annotate - [select for diffs], Sat Nov 7 07:27:46 2009 UTC (14 years, 4 months ago) by cegger
Branch: MAIN
Changes since 1.67: +4 -4 lines
Diff to previous 1.67 (colored) to selected 1.47 (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.67 / (download) - annotate - [select for diffs], Wed Oct 21 21:12:02 2009 UTC (14 years, 5 months ago) by rmind
Branch: MAIN
Changes since 1.66: +2 -19 lines
Diff to previous 1.66 (colored) to selected 1.47 (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.58.4.3 / (download) - annotate - [select for diffs], Wed Aug 19 18:46:41 2009 UTC (14 years, 7 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.58.4.2: +2 -3 lines
Diff to previous 1.58.4.2 (colored) to branchpoint 1.58 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.66 / (download) - annotate - [select for diffs], Tue Aug 11 17:04:19 2009 UTC (14 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8, yamt-nfs-mp-base7
Changes since 1.65: +2 -3 lines
Diff to previous 1.65 (colored) to selected 1.47 (colored)

Remove all declarations of physmem from sys/arch.  Add an include of
<sys/systm.h> to the one file that did not already contain it.
This now means that physmem can be changed by updating systm.h and uvm_page.c
(excluding fixing printfs)

Revision 1.64.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:18:15 2009 UTC (14 years, 10 months ago) by jym
Branch: jym-xensuspend
Changes since 1.64: +4 -4 lines
Diff to previous 1.64 (colored) next main 1.65 (colored) to selected 1.47 (colored)

Sync with HEAD.

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

Revision 1.58.4.2 / (download) - annotate - [select for diffs], Mon May 4 08:11:44 2009 UTC (14 years, 10 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.58.4.1: +5 -5 lines
Diff to previous 1.58.4.1 (colored) to branchpoint 1.58 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.60.8.2 / (download) - annotate - [select for diffs], Tue Apr 28 07:34:35 2009 UTC (14 years, 11 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.60.8.1: +4 -4 lines
Diff to previous 1.60.8.1 (colored) to branchpoint 1.60 (colored) next main 1.61 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.65 / (download) - annotate - [select for diffs], Tue Apr 21 21:29:59 2009 UTC (14 years, 11 months ago) by cegger
Branch: MAIN
CVS Tags: 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.64: +4 -4 lines
Diff to previous 1.64 (colored) to selected 1.47 (colored)

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

Revision 1.60.8.1 / (download) - annotate - [select for diffs], Mon Jan 19 13:16:37 2009 UTC (15 years, 2 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.56.6.3 / (download) - annotate - [select for diffs], Sat Jan 17 13:28:26 2009 UTC (15 years, 2 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.56.6.2: +1 -1 lines
Diff to previous 1.56.6.2 (colored) to branchpoint 1.56 (colored) next main 1.57 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.60.6.1 / (download) - annotate - [select for diffs], Sat Dec 13 01:13:24 2008 UTC (15 years, 3 months ago) by haad
Branch: haad-dm
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored) next main 1.61 (colored) to selected 1.47 (colored)

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

Revision 1.64 / (download) - annotate - [select for diffs], Thu Dec 11 19:30:14 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
CVS Tags: nick-hppapmap-base2, mjf-devfs2-base, haad-nbase2, haad-dm-base2, haad-dm-base
Branch point for: jym-xensuspend
Changes since 1.63: +2 -3 lines
Diff to previous 1.63 (colored) to selected 1.47 (colored)

Since oea pmap.c is #included many times, put kernel_pmap_ptr into
its own source module to avoid multiple initialized data definitions.

Revision 1.63 / (download) - annotate - [select for diffs], Wed Dec 10 11:10:19 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.62: +3 -3 lines
Diff to previous 1.62 (colored) to selected 1.47 (colored)

Make kernel_pmap_ptr a const.  Requested by steve_martin.

Revision 1.62 / (download) - annotate - [select for diffs], Tue Dec 9 20:45:45 2008 UTC (15 years, 3 months ago) by pooka
Branch: MAIN
Changes since 1.61: +3 -2 lines
Diff to previous 1.61 (colored) to selected 1.47 (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.61 / (download) - annotate - [select for diffs], Wed Oct 29 07:31:18 2008 UTC (15 years, 5 months ago) by skrll
Branch: MAIN
CVS Tags: netbsd-5-base, 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, 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, netbsd-5, matt-nb5-pq3-base, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, ad-audiomp2-base, ad-audiomp2
Branch point for: matt-nb5-pq3
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored) to selected 1.47 (colored)

Typo in comment.

Revision 1.56.6.2 / (download) - annotate - [select for diffs], Mon Jun 2 13:22:33 2008 UTC (15 years, 9 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.56.6.1: +13 -11 lines
Diff to previous 1.56.6.1 (colored) to branchpoint 1.56 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.58.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:32:38 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-pf42
Changes since 1.58: +3 -10 lines
Diff to previous 1.58 (colored) next main 1.59 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.58.4.1 / (download) - annotate - [select for diffs], Fri May 16 02:23:02 2008 UTC (15 years, 10 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.58: +3 -10 lines
Diff to previous 1.58 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.60 / (download) - annotate - [select for diffs], Mon May 5 04:40:53 2008 UTC (15 years, 10 months ago) by chs
Branch: MAIN
CVS Tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base2, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, matt-mips64-base2, hpcarm-cleanup-nbase, haad-dm-base1
Branch point for: nick-hppapmap, haad-dm
Changes since 1.59: +3 -3 lines
Diff to previous 1.59 (colored) to selected 1.47 (colored)

pmap_upvo_pool needs to use IPL_VM since it is used from
pmap_kenter_pa(), which can be called from interrupt context.

Revision 1.59 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:32 2008 UTC (15 years, 11 months ago) by martin
Branch: MAIN
Changes since 1.58: +2 -9 lines
Diff to previous 1.58 (colored) to selected 1.47 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.58 / (download) - annotate - [select for diffs], Tue Apr 8 02:33:03 2008 UTC (15 years, 11 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base
Branch point for: yamt-pf42, yamt-nfs-mp
Changes since 1.57: +14 -5 lines
Diff to previous 1.57 (colored) to selected 1.47 (colored)

SMP support for ofppc.  (finally)  Much thanks to Matt Thomas for help in
figuring out all the crazy nuances of getting this working, and to
Michael Lorenz for testing/fixing my changes on macppc.  Tested with a
quad-proc 7044-270.
Summary of changes:

Bumped CPU_MAXNUM to 16 on ofppc.
Added md_* routines to ofppc/cpu.c, to sync the timebase, and awaken the CPUs.
Fixed a bug in the test for a 64bit bridge cpu early in locore.S
Added code to set the interrupt priority for all CPUs with an openpic.
Change rtas to probe before cpus, to allow use of the rtas freeze/thaw
timebase code routines.
Fix CPU_INFO_FOREACH macro to iterate through detected cpus, not CPU_MAXNUM.
Change most uses of ci_cpuid to ci_index, to deal with CPUs that do not allow
writing to SPR_PIR.  Don't write SPR_PIR unless the secondary cpu identifies
itself as 0.
Change the hatchstack/interrupt stack allocations to allocate a 8192byte
interrupt stack, and a 4096 byte hatch stack, align them to 16 bytes, and
allocate them no lower than 0x10000.  Allocate them separately to prevent the
hatch stack corrupting the interrupt stack later on.
If the CPU is a 64bit cpu, copy SPR_ASR in cpu_hatch()
Set the idle stack to ci->ci_data.cpu_idlelwp->l_addr->u_pcb.pcb_sp.
Add OF_start_cpu().  Add a routine to ofwoea_initppc to spin up secondary
procs early, and place them into a spinloop waiting for the hatch routines
to be ready.
Modify the ipi routines to deal with openpics that reverse byte order on read
from an ipi register. (such as on the 7044)
Change the rtas setup to allocate the rtas physical base address above
the kernel, to avoid mucking up the hatch/interrupt stacks.

Revision 1.56.6.1 / (download) - annotate - [select for diffs], Thu Apr 3 12:42:23 2008 UTC (15 years, 11 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.56: +11 -2 lines
Diff to previous 1.56 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.56.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:15:03 2008 UTC (16 years ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.56: +11 -2 lines
Diff to previous 1.56 (colored) next main 1.57 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.48.18.2 / (download) - annotate - [select for diffs], Sun Mar 23 02:04:18 2008 UTC (16 years ago) by matt
Branch: matt-armv6
Changes since 1.48.18.1: +467 -500 lines
Diff to previous 1.48.18.1 (colored) to branchpoint 1.48 (colored) next main 1.49 (colored) to selected 1.47 (colored)

sync with HEAD

Revision 1.32.2.8 / (download) - annotate - [select for diffs], Mon Mar 17 09:14:22 2008 UTC (16 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32.2.7: +11 -2 lines
Diff to previous 1.32.2.7 (colored) next main 1.33 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.57 / (download) - annotate - [select for diffs], Tue Mar 11 20:44:01 2008 UTC (16 years ago) by matt
Branch: MAIN
CVS Tags: yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Changes since 1.56: +11 -2 lines
Diff to previous 1.56 (colored) to selected 1.47 (colored)

on MP systems, whenever we change a PTE, make to sync the data cache so that
other processors can see the change.

Revision 1.32.2.7 / (download) - annotate - [select for diffs], Wed Feb 27 08:36:23 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32.2.6: +8 -4 lines
Diff to previous 1.32.2.6 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.48.24.1 / (download) - annotate - [select for diffs], Mon Feb 18 21:04:58 2008 UTC (16 years, 1 month ago) by mjf
Branch: mjf-devfs
Changes since 1.48: +527 -504 lines
Diff to previous 1.48 (colored) next main 1.49 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.56 / (download) - annotate - [select for diffs], Sun Feb 17 18:16:42 2008 UTC (16 years, 1 month ago) by phx
Branch: MAIN
CVS Tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, hpcarm-cleanup-base
Branch point for: mjf-devfs2, keiichi-mipv6
Changes since 1.55: +8 -4 lines
Diff to previous 1.55 (colored) to selected 1.47 (colored)

Fixed compilation with DEBUG option for PMAP_OEA64_BRIDGE.
Approved by garbled.

Revision 1.32.2.6 / (download) - annotate - [select for diffs], Mon Feb 11 14:59:29 2008 UTC (16 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32.2.5: +444 -497 lines
Diff to previous 1.32.2.5 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.55 / (download) - annotate - [select for diffs], Tue Feb 5 22:31:49 2008 UTC (16 years, 1 month ago) by garbled
Branch: MAIN
Changes since 1.54: +20 -16 lines
Diff to previous 1.54 (colored) to selected 1.47 (colored)

Ifdef out all the MPC601 code with PPC_OEA601.  Now only arches that have the
possibility of running on an MPC601, are infected with all the extra code
and nops that it added.

Also, fix compilation that I broke with the pmap code, by adding
oeacpufeat to the locores of various ppc arches.  Noted by mlelstv.

Revision 1.54 / (download) - annotate - [select for diffs], Tue Feb 5 22:15:30 2008 UTC (16 years, 1 month ago) by mlelstv
Branch: MAIN
Changes since 1.53: +62 -56 lines
Diff to previous 1.53 (colored) to selected 1.47 (colored)

fix and cleanup debug printf formats

Revision 1.53 / (download) - annotate - [select for diffs], Tue Feb 5 18:10:47 2008 UTC (16 years, 1 month ago) by garbled
Branch: MAIN
Changes since 1.52: +403 -466 lines
Diff to previous 1.52 (colored) to selected 1.47 (colored)

Rewrite a big chunk of the pmap and locore code for powerpc to better
deal with the 64bit bridge mode.  pmap changes by Matt Thomas, rest by myself.

Change pmap.c to work similar to exec_elf.c to allow us to compile in
multiple pmaps to a single kernel.  This allows the pmap for bridge64 to
co-exist with the 32bit pmap.

Yank __HAVE_PMAP_PHYSSEG from all the oea code.

Add a new global, "oeacpufeat", which is used early in locore to determine
certain cpu features.  This allows us to conditionalize code early in the boot
for certain CPUs that have special needs.

Yank most of the ifdef PPC_OEA_BRIDGE64 code from almost every file it was
found in.  Some of it seemed incorrect, and my 7044 booted just fine
without it.  It would appear that the bridge cpus treat BAT instructions
as nops, so they seem to be safe.

In ofppc, check the oeacpufeat, and if we are on a 64bit proc, clear
MSR[SF], and ASR[V].

With all of these changes, a kernel with both PPC_OEA and PPC_OEA_BRIDGE64
will boot on the POWERIII-2 cpu.  However, it will not yet boot on a 32bit
cpu, because of CACHELINESIZE.  Work remains to be done there to fix that.

Revision 1.32.2.5 / (download) - annotate - [select for diffs], Mon Jan 21 09:38:25 2008 UTC (16 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32.2.4: +85 -13 lines
Diff to previous 1.32.2.4 (colored) to selected 1.47 (colored)

sync with head

Revision 1.48.30.3 / (download) - annotate - [select for diffs], Sat Jan 19 12:14:41 2008 UTC (16 years, 2 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.48.30.2: +9 -2 lines
Diff to previous 1.48.30.2 (colored) to branchpoint 1.48 (colored) next main 1.49 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.52 / (download) - annotate - [select for diffs], Thu Jan 17 23:42:59 2008 UTC (16 years, 2 months ago) by garbled
Branch: MAIN
CVS Tags: bouyer-xeni386-nbase, bouyer-xeni386-base
Changes since 1.51: +11 -4 lines
Diff to previous 1.51 (colored) to selected 1.47 (colored)

Add support to ofppc for the IBM 7044-270 machine.  This is a POWER3-II
based machine.  Currently the kernel to run on this machine is
incompatible with the standard GENERIC kernel, so for now, we have a
separate GENERIC_B64. Eventually, I hope to combine the two.

Please note, this is a port of 32bit ofppc, not a powerpc64 port.

Thanks to Matt Thomas and Kevin Bowling for helping to make this port
possible.

Summary of changes:

Change ofwpci to use the ofmethod config for configuring the PCI bus,
rather than indirect configuration.
Move the wiring of the interrupt controllers from at the start of the
boot, into the configuration of the first PCI bus.
Rewrite the map_isa_ioregs() hack to work on a machine without BATs
Fix a ton of bugs in the genofw_find_pics routine, and in the map_space code.
Split the pic_openpic into openpic_common and pic_openpic.
Create a new pic_distopenpic driver, for the distributed openpic found on
some newer IBM machines.
Fix a bad panic in pmap_extract on 64bit bridge mode

Revision 1.48.30.2 / (download) - annotate - [select for diffs], Thu Jan 10 23:43:57 2008 UTC (16 years, 2 months ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.48.30.1: +1 -1 lines
Diff to previous 1.48.30.1 (colored) to branchpoint 1.48 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.51 / (download) - annotate - [select for diffs], Wed Jan 9 21:12:34 2008 UTC (16 years, 2 months ago) by garbled
Branch: MAIN
Changes since 1.50: +3 -3 lines
Diff to previous 1.50 (colored) to selected 1.47 (colored)

fix a bad cast when compiling in bridge mode

Revision 1.48.18.1 / (download) - annotate - [select for diffs], Wed Jan 9 01:47:53 2008 UTC (16 years, 2 months ago) by matt
Branch: matt-armv6
Changes since 1.48: +76 -11 lines
Diff to previous 1.48 (colored) to selected 1.47 (colored)

sync with HEAD

Revision 1.48.30.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:49:09 2008 UTC (16 years, 2 months ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.48: +76 -11 lines
Diff to previous 1.48 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.50 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:27 2008 UTC (16 years, 2 months ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.49: +73 -8 lines
Diff to previous 1.49 (colored) to selected 1.47 (colored)

Merge vmlocking2 to head.

Revision 1.48.26.2 / (download) - annotate - [select for diffs], Thu Dec 27 02:18:17 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking2
Changes since 1.48.26.1: +73 -8 lines
Diff to previous 1.48.26.1 (colored) to branchpoint 1.48 (colored) next main 1.49 (colored) to selected 1.47 (colored)

locking changes for macppc. Please test.

Revision 1.48.26.1 / (download) - annotate - [select for diffs], Wed Dec 26 19:42:37 2007 UTC (16 years, 3 months ago) by ad
Branch: vmlocking2
Changes since 1.48: +5 -5 lines
Diff to previous 1.48 (colored) to selected 1.47 (colored)

Sync with head.

Revision 1.49 / (download) - annotate - [select for diffs], Sat Dec 15 00:39:23 2007 UTC (16 years, 3 months ago) by perry
Branch: MAIN
CVS Tags: vmlocking2-base3
Changes since 1.48: +5 -5 lines
Diff to previous 1.48 (colored) to selected 1.47 (colored)

__FUNCTION__ -> __func__

Revision 1.32.2.4 / (download) - annotate - [select for diffs], Mon Sep 3 14:29:00 2007 UTC (16 years, 6 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32.2.3: +11 -10 lines
Diff to previous 1.32.2.3 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.43.4.3 / (download) - annotate - [select for diffs], Sat Mar 24 14:54:56 2007 UTC (17 years ago) by yamt
Branch: yamt-idlelwp
Changes since 1.43.4.2: +6 -5 lines
Diff to previous 1.43.4.2 (colored) to branchpoint 1.43 (colored) next main 1.44 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.47.2.1 / (download) - annotate - [select for diffs], Tue Mar 13 16:50:03 2007 UTC (17 years ago) by ad
Branch: vmlocking
Changes since 1.47: +6 -5 lines
Diff to previous 1.47 (colored) next main 1.48 (colored)

Sync with head.

Revision 1.48 / (download) - annotate - [select for diffs], Mon Mar 12 18:18:26 2007 UTC (17 years ago) by ad
Branch: MAIN
CVS Tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, yamt-idlelwp-base8, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, vmlocking-base, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, reinoud-bufcleanup, ppcoea-renovation-base, ppcoea-renovation, nick-csl-alignment-base5, nick-csl-alignment-base, nick-csl-alignment, mjf-ufs-trans-base, mjf-ufs-trans, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, jmcneill-pm-base, jmcneill-pm, jmcneill-base, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64
Branch point for: vmlocking2, mjf-devfs, matt-armv6, bouyer-xeni386
Changes since 1.47: +6 -5 lines
Diff to previous 1.47 (colored)

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

Revision 1.43.4.2 / (download) - annotate - [select for diffs], Mon Mar 12 05:50:07 2007 UTC (17 years ago) by rmind
Branch: yamt-idlelwp
Changes since 1.43.4.1: +7 -7 lines
Diff to previous 1.43.4.1 (colored) to branchpoint 1.43 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.47 / (download) - annotate - [selected], Sun Mar 4 10:18:03 2007 UTC (17 years ago) by macallan
Branch: MAIN
Branch point for: vmlocking
Changes since 1.46: +4 -4 lines
Diff to previous 1.46 (colored)

make this compile again

Revision 1.46 / (download) - annotate - [select for diffs], Sun Mar 4 06:00:37 2007 UTC (17 years ago) by christos
Branch: MAIN
Changes since 1.45: +7 -7 lines
Diff to previous 1.45 (colored) to selected 1.47 (colored)

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

Revision 1.43.4.1 / (download) - annotate - [select for diffs], Tue Feb 27 16:52:51 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-idlelwp
Changes since 1.43: +17 -17 lines
Diff to previous 1.43 (colored) to selected 1.47 (colored)

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

Revision 1.32.2.3 / (download) - annotate - [select for diffs], Mon Feb 26 09:07:54 2007 UTC (17 years, 1 month ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32.2.2: +17 -17 lines
Diff to previous 1.32.2.2 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.45 / (download) - annotate - [select for diffs], Thu Feb 22 16:57:57 2007 UTC (17 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: ad-audiomp-base, ad-audiomp
Changes since 1.44: +13 -13 lines
Diff to previous 1.44 (colored) to selected 1.47 (colored)

TRUE -> true, FALSE -> false

Revision 1.44 / (download) - annotate - [select for diffs], Wed Feb 21 22:59:50 2007 UTC (17 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.43: +6 -6 lines
Diff to previous 1.43 (colored) to selected 1.47 (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.32.2.2 / (download) - annotate - [select for diffs], Sat Dec 30 20:46:44 2006 UTC (17 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32.2.1: +259 -47 lines
Diff to previous 1.32.2.1 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.40.4.2 / (download) - annotate - [select for diffs], Sun Dec 10 07:16:31 2006 UTC (17 years, 3 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.40.4.1: +8 -4 lines
Diff to previous 1.40.4.1 (colored) to branchpoint 1.40 (colored) next main 1.41 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.40.2.1 / (download) - annotate - [select for diffs], Sat Nov 18 21:29:29 2006 UTC (17 years, 4 months ago) by ad
Branch: newlock2
Changes since 1.40: +36 -4 lines
Diff to previous 1.40 (colored) next main 1.41 (colored) to selected 1.47 (colored)

Sync with head.

Revision 1.43 / (download) - annotate - [select for diffs], Mon Oct 30 17:52:12 2006 UTC (17 years, 5 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, post-newlock2-merge, newlock2-nbase, newlock2-base, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm
Branch point for: yamt-idlelwp
Changes since 1.42: +8 -4 lines
Diff to previous 1.42 (colored) to selected 1.47 (colored)

Make these files compile with -Wextra -Wno-unused.

Revision 1.40.4.1 / (download) - annotate - [select for diffs], Sun Oct 22 06:04:58 2006 UTC (17 years, 5 months ago) by yamt
Branch: yamt-splraiseipl
Changes since 1.40: +30 -2 lines
Diff to previous 1.40 (colored) to selected 1.47 (colored)

sync with head

Revision 1.42 / (download) - annotate - [select for diffs], Tue Sep 19 22:15:06 2006 UTC (17 years, 6 months ago) by matt
Branch: MAIN
CVS Tags: yamt-splraiseipl-base2
Changes since 1.41: +10 -2 lines
Diff to previous 1.41 (colored) to selected 1.47 (colored)

When mapping the kernel, make to update its segment register to be valid.

Revision 1.41 / (download) - annotate - [select for diffs], Tue Sep 19 20:19:53 2006 UTC (17 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.40: +22 -2 lines
Diff to previous 1.40 (colored) to selected 1.47 (colored)

At the end of pmap_bootstrap, if PMAP_NEED_MAPKERNEL, map the kernel into
the kernel's pmap (text will be rx, data will be rw).

Revision 1.35.8.4 / (download) - annotate - [select for diffs], Thu Sep 14 12:31:16 2006 UTC (17 years, 6 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.35.8.3: +2 -3 lines
Diff to previous 1.35.8.3 (colored) to branchpoint 1.35 (colored) next main 1.36 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.35.4.1 / (download) - annotate - [select for diffs], Sat Sep 9 02:42:28 2006 UTC (17 years, 6 months ago) by rpaulo
Branch: rpaulo-netinet-merge-pcb
Changes since 1.35: +257 -46 lines
Diff to previous 1.35 (colored) next main 1.36 (colored) to selected 1.47 (colored)

sync with head

Revision 1.38.2.1 / (download) - annotate - [select for diffs], Fri Sep 8 19:47:13 2006 UTC (17 years, 6 months ago) by rpaulo
Branch: abandoned-netbsd-4
Changes since 1.38: +2 -3 lines
Diff to previous 1.38 (colored) next main 1.39 (colored) to selected 1.47 (colored)

Pull up following revision(s) (requested by garbled in ticket #134):
	sys/arch/powerpc/oea/pmap.c: revision 1.40
Remove debug printf that got left in accidentally

Revision 1.40 / (download) - annotate - [select for diffs], Thu Sep 7 16:00:29 2006 UTC (17 years, 6 months ago) by sanjayl
Branch: MAIN
CVS Tags: yamt-splraiseipl-base, yamt-pdpolicy-base9, rpaulo-netinet-merge-pcb-base
Branch point for: yamt-splraiseipl, newlock2
Changes since 1.39: +2 -3 lines
Diff to previous 1.39 (colored) to selected 1.47 (colored)

Remove debug printf that got left in accidentally

Revision 1.35.8.3 / (download) - annotate - [select for diffs], Sun Sep 3 15:23:27 2006 UTC (17 years, 6 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.35.8.2: +20 -16 lines
Diff to previous 1.35.8.2 (colored) to branchpoint 1.35 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.39 / (download) - annotate - [select for diffs], Sat Sep 2 17:08:44 2006 UTC (17 years, 6 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pdpolicy-base8
Changes since 1.38: +20 -16 lines
Diff to previous 1.38 (colored) to selected 1.47 (colored)

Add/rename macros (PVO_xxx_P) for testing WIRED, MANAGED, EXECUTABLE ness
of a PVO entry.  (Fixes where PVO_WIRED was tested against pvo_pt.pte_lo
instead of pvo_vaddr)

Revision 1.35.8.2 / (download) - annotate - [select for diffs], Fri Aug 11 15:42:41 2006 UTC (17 years, 7 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.35.8.1: +208 -31 lines
Diff to previous 1.35.8.1 (colored) to branchpoint 1.35 (colored) to selected 1.47 (colored)

sync with head

Revision 1.38 / (download) - annotate - [select for diffs], Sat Aug 5 21:26:49 2006 UTC (17 years, 7 months ago) by sanjayl
Branch: MAIN
CVS Tags: yamt-pdpolicy-base7, abandoned-netbsd-4-base
Branch point for: abandoned-netbsd-4
Changes since 1.37: +208 -31 lines
Diff to previous 1.37 (colored) to selected 1.47 (colored)

1st cut of Powermac G5 support (uses bridge mode).

Revision 1.32.2.1 / (download) - annotate - [select for diffs], Wed Jun 21 14:55:03 2006 UTC (17 years, 9 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.32: +124 -64 lines
Diff to previous 1.32 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.35.6.1 / (download) - annotate - [select for diffs], Thu Jun 1 22:35:16 2006 UTC (17 years, 10 months ago) by kardel
Branch: simonb-timecounters
CVS Tags: simonb-timcounters-final
Changes since 1.35: +34 -3 lines
Diff to previous 1.35 (colored) next main 1.36 (colored) to selected 1.47 (colored)

Sync with head.

Revision 1.35.12.1 / (download) - annotate - [select for diffs], Wed May 24 15:48:20 2006 UTC (17 years, 10 months ago) by tron
Branch: peter-altq
Changes since 1.35: +34 -3 lines
Diff to previous 1.35 (colored) next main 1.36 (colored) to selected 1.47 (colored)

Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.

Revision 1.35.8.1 / (download) - annotate - [select for diffs], Wed May 24 10:57:09 2006 UTC (17 years, 10 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.35: +34 -3 lines
Diff to previous 1.35 (colored) to selected 1.47 (colored)

sync with head.

Revision 1.37 / (download) - annotate - [select for diffs], Sat May 13 04:04:45 2006 UTC (17 years, 10 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pdpolicy-base6, yamt-pdpolicy-base5, simonb-timecounters-base, gdamore-uart-base, gdamore-uart, chap-midi-nbase, chap-midi-base, chap-midi
Changes since 1.36: +33 -2 lines
Diff to previous 1.36 (colored) to selected 1.47 (colored)

Fix a problem when an exec page is mapped, modified, and then unmapped.
Make sure to either clear the execness or sync the page to the icache.

This fixes gdb testsuite failures.  Thanks for nathanw for testing.

Revision 1.36 / (download) - annotate - [select for diffs], Fri May 12 16:01:05 2006 UTC (17 years, 10 months ago) by nathanw
Branch: MAIN
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 (colored) to selected 1.47 (colored)

Fix a typo in a comment.

Revision 1.35 / (download) - annotate - [select for diffs], Sat Dec 24 20:07:28 2005 UTC (18 years, 3 months ago) by perry
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base, elad-kernelauth-base, elad-kernelauth
Branch point for: yamt-pdpolicy, simonb-timecounters, rpaulo-netinet-merge-pcb, peter-altq
Changes since 1.34: +48 -48 lines
Diff to previous 1.34 (colored) to selected 1.47 (colored)

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

Revision 1.10.2.10 / (download) - annotate - [select for diffs], Sun Dec 11 10:28:25 2005 UTC (18 years, 3 months ago) by christos
Branch: ktrace-lwp
Changes since 1.10.2.9: +7 -7 lines
Diff to previous 1.10.2.9 (colored) next main 1.11 (colored) to selected 1.47 (colored)

Sync with head.

Revision 1.34 / (download) - annotate - [select for diffs], Thu Dec 8 22:41:44 2005 UTC (18 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: ktrace-lwp-base
Changes since 1.33: +7 -7 lines
Diff to previous 1.33 (colored) to selected 1.47 (colored)

use VM_PAGE_TO_PHYS macro.

Revision 1.10.2.9 / (download) - annotate - [select for diffs], Thu Nov 10 13:58:26 2005 UTC (18 years, 4 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.8: +44 -14 lines
Diff to previous 1.10.2.8 (colored) to selected 1.47 (colored)

Sync with HEAD. Here we go again...

Revision 1.29.2.1 / (download) - annotate - [select for diffs], Fri Oct 21 13:15:35 2005 UTC (18 years, 5 months ago) by tron
Branch: netbsd-3
CVS Tags: netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0
Changes since 1.29: +41 -12 lines
Diff to previous 1.29 (colored) next main 1.30 (colored) to selected 1.47 (colored)

Pull up following revision(s) (requested by chs in ticket #897):
	sys/arch/powerpc/oea/pmap.c: revision 1.33 via patch
avoid calling into the pool code while PSL_EE is off.
the pool code can do spl*()/splx(), and splx() requires PSL_EE to be on.

Revision 1.33 / (download) - annotate - [select for diffs], Tue Sep 27 08:03:11 2005 UTC (18 years, 6 months ago) by chs
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
Changes since 1.32: +41 -12 lines
Diff to previous 1.32 (colored) to selected 1.47 (colored)

avoid calling into the pool code while PSL_EE is off.
the pool code can do spl*()/splx(), and splx() requires PSL_EE to be on.

Revision 1.23.2.1.2.1 / (download) - annotate - [select for diffs], Sun Aug 7 14:35:06 2005 UTC (18 years, 7 months ago) by riz
Branch: netbsd-2
CVS Tags: netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1
Changes since 1.23.2.1: +33 -9 lines
Diff to previous 1.23.2.1 (colored) next main 1.24 (colored) to selected 1.47 (colored)

Pull up revisions 1.23 and 1.29 (requested by briggs in ticket #1238):
Consider the MPC601's different battable layout and its use of
I/O segments.
Ensure that pap is non-NULL before use in pmap_extract(). Fixes PR#29507.

Revision 1.32 / (download) - annotate - [select for diffs], Thu Jun 2 14:35:08 2005 UTC (18 years, 9 months ago) by he
Branch: MAIN
Branch point for: yamt-lazymbuf
Changes since 1.31: +4 -3 lines
Diff to previous 1.31 (colored) to selected 1.47 (colored)

Remove the hack to compile oea/pmap.c with -Wno-cast-qual, and instead
make use of the new __UNVOLATILE() macro in memset() usage.

Revision 1.31 / (download) - annotate - [select for diffs], Thu Jun 2 09:47:21 2005 UTC (18 years, 9 months ago) by he
Branch: MAIN
Changes since 1.30: +4 -4 lines
Diff to previous 1.30 (colored) to selected 1.47 (colored)

Fix variable shadowing warning.

Revision 1.30 / (download) - annotate - [select for diffs], Sun May 29 15:57:53 2005 UTC (18 years, 10 months ago) by chs
Branch: MAIN
Changes since 1.29: +3 -3 lines
Diff to previous 1.29 (colored) to selected 1.47 (colored)

in pmap_enter(), preset the ref bit for execute-only mappings too.

Revision 1.26.4.1 / (download) - annotate - [select for diffs], Fri Apr 29 11:28:20 2005 UTC (18 years, 11 months ago) by kent
Branch: kent-audio2
Changes since 1.26: +26 -21 lines
Diff to previous 1.26 (colored) next main 1.27 (colored) to selected 1.47 (colored)

sync with -current

Revision 1.27.2.1 / (download) - annotate - [select for diffs], Sat Mar 19 08:33:12 2005 UTC (19 years ago) by yamt
Branch: yamt-km
Changes since 1.27: +19 -13 lines
Diff to previous 1.27 (colored) next main 1.28 (colored) to selected 1.47 (colored)

sync with head.  xen and whitespace.  xen part is not finished.

Revision 1.10.2.8 / (download) - annotate - [select for diffs], Fri Mar 4 16:39:02 2005 UTC (19 years ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.7: +11 -6 lines
Diff to previous 1.10.2.7 (colored) to selected 1.47 (colored)

Sync with HEAD.

Hi Perry!

Revision 1.29 / (download) - annotate - [select for diffs], Tue Feb 22 21:06:56 2005 UTC (19 years, 1 month ago) by briggs
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, netbsd-3-base, kent-audio2-base
Branch point for: netbsd-3
Changes since 1.28: +11 -6 lines
Diff to previous 1.28 (colored) to selected 1.47 (colored)

pmap_extract(): Only attempt to set '*pap' if pap is non-NULL.
PR port-powerpc/29507 from Neil Ludban.

Revision 1.10.2.7 / (download) - annotate - [select for diffs], Tue Feb 15 21:32:51 2005 UTC (19 years, 1 month ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.6: +10 -9 lines
Diff to previous 1.10.2.6 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.28 / (download) - annotate - [select for diffs], Sun Feb 13 02:03:54 2005 UTC (19 years, 1 month ago) by chs
Branch: MAIN
Changes since 1.27: +10 -9 lines
Diff to previous 1.27 (colored) to selected 1.47 (colored)

move recursion-detection code inside interrupt-protected region.  PR 24254.

Revision 1.10.2.6 / (download) - annotate - [select for diffs], Mon Jan 17 19:30:09 2005 UTC (19 years, 2 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.5: +9 -10 lines
Diff to previous 1.10.2.5 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.27 / (download) - annotate - [select for diffs], Sun Jan 16 23:52:12 2005 UTC (19 years, 2 months ago) by chs
Branch: MAIN
CVS Tags: yamt-km-base2, yamt-km-base
Branch point for: yamt-km
Changes since 1.26: +9 -10 lines
Diff to previous 1.26 (colored) to selected 1.47 (colored)

add some whitespace.

Revision 1.10.2.5 / (download) - annotate - [select for diffs], Tue Sep 21 13:20:49 2004 UTC (19 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.4: +2 -2 lines
Diff to previous 1.10.2.4 (colored) to selected 1.47 (colored)

Fix the sync with head I botched.

Revision 1.10.2.4 / (download) - annotate - [select for diffs], Sat Sep 18 14:39:19 2004 UTC (19 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.3: +2 -2 lines
Diff to previous 1.10.2.3 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.10.2.3 / (download) - annotate - [select for diffs], Fri Sep 3 12:45:05 2004 UTC (19 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.2: +67 -50 lines
Diff to previous 1.10.2.2 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.10.2.2 / (download) - annotate - [select for diffs], Wed Aug 25 06:57:20 2004 UTC (19 years, 7 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.10.2.1: +58 -10 lines
Diff to previous 1.10.2.1 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.26 / (download) - annotate - [select for diffs], Tue Aug 24 21:31:49 2004 UTC (19 years, 7 months ago) by matt
Branch: MAIN
CVS Tags: kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: kent-audio2
Changes since 1.25: +67 -50 lines
Diff to previous 1.25 (colored) to selected 1.47 (colored)

Add pmap counters for reclaimed pvos and for the times a pvo could not be
obtained.
Switch to EVCNT_ATTACH_STATIC*
In DEBUG/DIAGNOSTIC, decrement/increment pmap_pvo_enter_depth around pool
calls since they could possibly cause a recursion back into pmap_pvo_enter.

Revision 1.23.2.1 / (download) - annotate - [select for diffs], Sun Aug 22 14:16:16 2004 UTC (19 years, 7 months ago) by tron
Branch: netbsd-2-0
CVS Tags: netbsd-2-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE
Branch point for: netbsd-2
Changes since 1.23: +58 -10 lines
Diff to previous 1.23 (colored) next main 1.24 (colored) to selected 1.47 (colored)

Pull up revision 1.25 (requested by chs in ticket #780):
implement pmap_pvo_reclaim(), which steals an existing non-wired pvo entry
for reuse, and use this in pmap_pvo_enter() when we can't allocate a new one.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Aug 19 15:31:57 2004 UTC (19 years, 7 months ago) by chs
Branch: MAIN
Changes since 1.24: +58 -10 lines
Diff to previous 1.24 (colored) to selected 1.47 (colored)

implement pmap_pvo_reclaim(), which steals an existing non-wired pvo entry
for reuse, and use this in pmap_pvo_enter() when we can't allocate a new one.

Revision 1.10.2.1 / (download) - annotate - [select for diffs], Tue Aug 3 10:39:37 2004 UTC (19 years, 7 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.10: +255 -140 lines
Diff to previous 1.10 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.24 / (download) - annotate - [select for diffs], Wed Jun 9 19:30:57 2004 UTC (19 years, 9 months ago) by kleink
Branch: MAIN
Changes since 1.23: +27 -8 lines
Diff to previous 1.23 (colored) to selected 1.47 (colored)

pmap_extract(): consider the MPC601's different battable layout, and its
use of I/O segments.

Revision 1.23 / (download) - annotate - [select for diffs], Sun Mar 21 10:34:56 2004 UTC (20 years ago) by aymeric
Branch: MAIN
CVS Tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Changes since 1.22: +6 -4 lines
Diff to previous 1.22 (colored) to selected 1.47 (colored)

pmap_pinit(): improve the hash function in the case of collisions, the
previous version would easily make the low order bits oscillate between 0
and some other value.

Together with the previous change, this should make those
pmap_pinit: out of segments
panics even less likely.

We should really attempt a systematic search before panic()ing at the end.

Revision 1.22 / (download) - annotate - [select for diffs], Sun Mar 21 10:25:59 2004 UTC (20 years ago) by aymeric
Branch: MAIN
Changes since 1.21: +5 -3 lines
Diff to previous 1.21 (colored) to selected 1.47 (colored)

. don't call VSID_TO_HASH() on a pmap.pm_vsid. It already holds the hash value.
  This should fix PR #24754, as well as many of the hangs and process
  aborts reported on port-macppc@ in the last weeks.
  This error would cause the pmap's vsid never to be freed, and would
  occasionnally free a valid vsid used by another pmap, sometimes the kernel's.
. add a related KASSERT() to avoid regression

Revision 1.21 / (download) - annotate - [select for diffs], Wed Mar 17 14:14:02 2004 UTC (20 years ago) by aymeric
Branch: MAIN
Changes since 1.20: +6 -2 lines
Diff to previous 1.20 (colored) to selected 1.47 (colored)

defparam PMAP_MEMLIMIT

Revision 1.20 / (download) - annotate - [select for diffs], Fri Feb 13 11:36:17 2004 UTC (20 years, 1 month ago) by wiz
Branch: MAIN
Changes since 1.19: +3 -3 lines
Diff to previous 1.19 (colored) to selected 1.47 (colored)

Uppercase CPU, plural is CPUs.

Revision 1.19 / (download) - annotate - [select for diffs], Sat Dec 27 13:35:52 2003 UTC (20 years, 3 months ago) by mjl
Branch: MAIN
Changes since 1.18: +17 -13 lines
Diff to previous 1.18 (colored) to selected 1.47 (colored)

Add some casts to printf() args to make it compile w/ DEBUG set.

Revision 1.18 / (download) - annotate - [select for diffs], Fri Nov 21 22:57:14 2003 UTC (20 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.17: +86 -31 lines
Diff to previous 1.17 (colored) to selected 1.47 (colored)

More PPC64 changes.  (latent for now).

Revision 1.17 / (download) - annotate - [select for diffs], Fri Nov 21 18:09:27 2003 UTC (20 years, 4 months ago) by matt
Branch: MAIN
Changes since 1.16: +11 -2 lines
Diff to previous 1.16 (colored) to selected 1.47 (colored)

Restore ci_curpm since it re-enables 603 to working state.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Oct 27 23:35:41 2003 UTC (20 years, 5 months ago) by kleink
Branch: MAIN
Changes since 1.15: +4 -3 lines
Diff to previous 1.15 (colored) to selected 1.47 (colored)

pmap_print_mmuregs(): move initialization of addr before its first use;
reported by David Young.

Revision 1.15 / (download) - annotate - [select for diffs], Mon Oct 27 23:08:12 2003 UTC (20 years, 5 months ago) by dyoung
Branch: MAIN
Changes since 1.14: +6 -5 lines
Diff to previous 1.14 (colored) to selected 1.47 (colored)

Stop false uninitialized variable warning.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Aug 24 17:52:35 2003 UTC (20 years, 7 months ago) by chs
Branch: MAIN
Changes since 1.13: +72 -85 lines
Diff to previous 1.13 (colored) to selected 1.47 (colored)

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

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

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

originally from openbsd, adapted for netbsd by me.

Revision 1.13 / (download) - annotate - [select for diffs], Tue Aug 12 05:06:57 2003 UTC (20 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.12: +3 -15 lines
Diff to previous 1.12 (colored) to selected 1.47 (colored)

Nuke ci_curpm and curpm.  Nuke pcb_pmreal.  Those were use for spill stacks
and those no longer exist.  for few uses that need CURPM, use CURPCB/PCB_PM

Revision 1.12 / (download) - annotate - [select for diffs], Fri Aug 8 06:06:48 2003 UTC (20 years, 7 months ago) by matt
Branch: MAIN
Changes since 1.11: +47 -7 lines
Diff to previous 1.11 (colored) to selected 1.47 (colored)

Allow only user-mappings to be evicted (spillage).  This prevents the
dreaded eviction of a kernel stack page.

Revision 1.11 / (download) - annotate - [select for diffs], Tue Jul 15 02:54:46 2003 UTC (20 years, 8 months ago) by lukem
Branch: MAIN
Changes since 1.10: +4 -1 lines
Diff to previous 1.10 (colored) to selected 1.47 (colored)

__KERNEL_RCSID()

Revision 1.10 / (download) - annotate - [select for diffs], Sat May 10 21:10:37 2003 UTC (20 years, 10 months ago) by thorpej
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.9: +18 -9 lines
Diff to previous 1.9 (colored) to selected 1.47 (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.9 / (download) - annotate - [select for diffs], Thu May 8 18:13:22 2003 UTC (20 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.8: +10 -19 lines
Diff to previous 1.8 (colored) to selected 1.47 (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.8 / (download) - annotate - [select for diffs], Mon Apr 7 21:42:14 2003 UTC (20 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.7: +2 -1 lines
Diff to previous 1.7 (colored) to selected 1.47 (colored)

Add a KASSERT to pmap_extract so that vtophys is never attempted on a
mapped user address.

Revision 1.7 / (download) - annotate - [select for diffs], Fri Apr 4 22:38:05 2003 UTC (20 years, 11 months ago) by matt
Branch: MAIN
Changes since 1.6: +20 -1 lines
Diff to previous 1.6 (colored) to selected 1.47 (colored)

If extracting an address from the kernel pmap, see if the address is outside
the mapped address range.  If so, try to look it up via the BAT table.  If
successful, translate and return the BAT'ed pa.

Revision 1.6 / (download) - annotate - [select for diffs], Wed Apr 2 02:47:19 2003 UTC (21 years ago) by thorpej
Branch: MAIN
Changes since 1.5: +13 -12 lines
Diff to previous 1.5 (colored) to selected 1.47 (colored)

Use PAGE_SIZE rather than NBPG.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Mar 17 23:15:33 2003 UTC (21 years ago) by matt
Branch: MAIN
Changes since 1.4: +3 -3 lines
Diff to previous 1.4 (colored) to selected 1.47 (colored)

fix typo in comment.

Revision 1.4 / (download) - annotate - [select for diffs], Sun Mar 16 06:54:46 2003 UTC (21 years ago) by matt
Branch: MAIN
Changes since 1.3: +8 -6 lines
Diff to previous 1.3 (colored) to selected 1.47 (colored)

Honor PMAP_NC for pmap_kenter_pa.  Fix goof in pmap_pte_to_va.

Revision 1.3 / (download) - annotate - [select for diffs], Fri Mar 14 06:25:58 2003 UTC (21 years ago) by matt
Branch: MAIN
Changes since 1.2: +1 -4 lines
Diff to previous 1.2 (colored) to selected 1.47 (colored)

Remove Debugger call.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Feb 5 07:05:20 2003 UTC (21 years, 1 month ago) by matt
Branch: MAIN
Changes since 1.1: +109 -128 lines
Diff to previous 1.1 (colored) to selected 1.47 (colored)

Make things a bit more LP64 friendly.

Revision 1.1 / (download) - annotate - [select for diffs], Mon Feb 3 17:10:10 2003 UTC (21 years, 1 month ago) by matt
Branch: MAIN
Diff to selected 1.47 (colored)

Rename PPC_MPC6XX to PPC_OEA (and any mpc6xx reference to oea).

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>