The NetBSD Project

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

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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.307 / (download) - annotate - [select for diffs], Sat Apr 9 23:38:31 2022 UTC (10 months ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Changes since 1.306: +4 -4 lines
Diff to previous 1.306 (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.306 / (download) - annotate - [select for diffs], Sat Apr 9 23:36:22 2022 UTC (10 months ago) by riastradh
Branch: MAIN
Changes since 1.305: +2 -3 lines
Diff to previous 1.305 (colored)

alpha: Omit needless membar in pmap_reference.

If the pmap is published enough for us to obtain a reference to it
then there's no membar needed.  If it's not then something else is
wrong and we can't use pmap_reference here anyway.  Membars are
needed only on the destruction side to make sure all use, by any
thread, happens-before all freeing in the last user thread.

Revision 1.305 / (download) - annotate - [select for diffs], Sat Mar 12 15:32:31 2022 UTC (10 months, 4 weeks ago) by riastradh
Branch: MAIN
Changes since 1.304: +3 -2 lines
Diff to previous 1.304 (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.304 / (download) - annotate - [select for diffs], Thu Dec 9 21:13:18 2021 UTC (14 months ago) by andvar
Branch: MAIN
Changes since 1.303: +5 -5 lines
Diff to previous 1.303 (colored)

Few typos slipped in the last review, fixing them.

Revision 1.303 / (download) - annotate - [select for diffs], Sun Sep 19 20:43:46 2021 UTC (16 months, 2 weeks ago) by andvar
Branch: MAIN
Changes since 1.302: +6 -6 lines
Diff to previous 1.302 (colored)

review and fix rest of the typos in alpha pmap.c.

Revision 1.302 / (download) - annotate - [select for diffs], Sun Sep 19 10:34:07 2021 UTC (16 months, 2 weeks ago) by andvar
Branch: MAIN
Changes since 1.301: +3 -3 lines
Diff to previous 1.301 (colored)

fix various typos in comments, messages and documentation.

Revision 1.301 / (download) - annotate - [select for diffs], Fri Aug 13 20:19:45 2021 UTC (17 months, 3 weeks ago) by andvar
Branch: MAIN
Changes since 1.300: +16 -16 lines
Diff to previous 1.300 (colored)

fix multiple typos in comments.

Revision 1.276.2.2 / (download) - annotate - [select for diffs], Sun Aug 1 22:42:00 2021 UTC (18 months, 1 week ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.276.2.1: +27 -92 lines
Diff to previous 1.276.2.1 (colored) to branchpoint 1.276 (colored) next main 1.277 (colored)

Sync with HEAD.

Revision 1.300 / (download) - annotate - [select for diffs], Sat Jul 31 14:51:25 2021 UTC (18 months, 1 week ago) by thorpej
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.299: +3 -2 lines
Diff to previous 1.299 (colored)

Fix a silly mistake (missing return) in the DEBUG case of the kernel pmap
case of pmap_extract().

Revision 1.299 / (download) - annotate - [select for diffs], Mon Jul 19 16:31:19 2021 UTC (18 months, 3 weeks ago) by thorpej
Branch: MAIN
Changes since 1.298: +10 -10 lines
Diff to previous 1.298 (colored)

Re-arrange the kernel pmap fast-path in pmap_extract() so that
when DEBUG is not enabled, the compiler can emit a tail-call to
vtophys_internal().

Revision 1.298 / (download) - annotate - [select for diffs], Fri Jul 16 19:02:22 2021 UTC (18 months, 3 weeks ago) by thorpej
Branch: MAIN
Changes since 1.297: +4 -4 lines
Diff to previous 1.297 (colored)

The Alpha AXP Architecture Reference Manual is explcit that the only
valid bits in the PSL are the IPL and USER bits, the latter of which
will always be clear when in the kernel, and that all other bits MBZ.
So, when reading the PSL to get the current IPL, don't bother masking
with ALPHA_PSL_IPL_MASK.

Revision 1.297 / (download) - annotate - [select for diffs], Sat Jul 10 20:22:37 2021 UTC (19 months ago) by thorpej
Branch: MAIN
Changes since 1.296: +4 -80 lines
Diff to previous 1.296 (colored)

Move the optimized pmap_zero_page() from pmap.c to a new pmap_subr.s,
and optimize it a teeny bit little more.  Provide an optimized (for 21164,
anyway) pmap_copy_page() as well.

Revision 1.296 / (download) - annotate - [select for diffs], Mon Jul 5 15:12:00 2021 UTC (19 months ago) by thorpej
Branch: MAIN
Changes since 1.295: +13 -2 lines
Diff to previous 1.295 (colored)

Instrument the number of calls to pmap_growkernel().

Revision 1.295 / (download) - annotate - [select for diffs], Mon Jul 5 10:00:22 2021 UTC (19 months ago) by thorpej
Branch: MAIN
Changes since 1.294: +3 -3 lines
Diff to previous 1.294 (colored)

Fix a bug introduced in pmap.c,v 1.287 where, when creating the PTE
in pmap_enter(), we would erroneously disregard MOD/REF attributes
already present on the page, thus causing FOW/FOR to be set incorrectly.
Normally this is not a big problem (an extra page fault will be taken
to resolve it), but if you access the mapping in interrupt context
(such as during IDE PIO, for example), a KASSERT can fire due to
acquiring an rwlock in interrupt context while servicing that fault.

Reported and bisected-to-commit by rin@.

Revision 1.294 / (download) - annotate - [select for diffs], Sun Jul 4 22:42:35 2021 UTC (19 months ago) by thorpej
Branch: MAIN
Changes since 1.293: +2 -3 lines
Diff to previous 1.293 (colored)

Remove unnecessary #include <sys/malloc.h>

Revision 1.276.2.1 / (download) - annotate - [select for diffs], Thu Jun 17 04:46:16 2021 UTC (19 months, 3 weeks ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.276: +431 -275 lines
Diff to previous 1.276 (colored)

Sync w/ HEAD.

Revision 1.276.4.1 / (download) - annotate - [select for diffs], Mon May 31 22:15:09 2021 UTC (20 months, 1 week ago) by cjep
Branch: cjep_staticlib_x
Changes since 1.276: +440 -275 lines
Diff to previous 1.276 (colored) next main 1.277 (colored)

sync with head

Revision 1.293 / (download) - annotate - [select for diffs], Mon May 31 17:16:04 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
CVS Tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x
Changes since 1.292: +5 -14 lines
Diff to previous 1.292 (colored)

After a comment by joerg@, go back to using a dedicated field for the
PT page reference count, but add an XXX comment stating the desire to
find a safely-unused field in the vm_page structure when pages are in-
use as PT pages, so that we can save the 8 bytes per page needed for
this.

Revision 1.292 / (download) - annotate - [select for diffs], Sun May 30 19:50:23 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
CVS Tags: cjep_staticlib_x-base1
Changes since 1.291: +5 -8 lines
Diff to previous 1.291 (colored)

Fix DEBUG build.

Revision 1.291 / (download) - annotate - [select for diffs], Sun May 30 19:46:21 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.290: +3 -3 lines
Diff to previous 1.290 (colored)

Fix unused variable warning when DIAGNOSTIC is disabled.  Pointed out
by jklos.

Revision 1.290 / (download) - annotate - [select for diffs], Sun May 30 19:41:59 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.289: +77 -2 lines
Diff to previous 1.289 (colored)

Implement pmap_remove_all().

Revision 1.289 / (download) - annotate - [select for diffs], Sun May 30 14:06:37 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.288: +106 -77 lines
Diff to previous 1.288 (colored)

When removing mappings, hang PV entries to be freed off of the
pmap_tlb_context structure, and free them back in bulk after we
release all of our locks (as we do with PT pages that are freed).

Revision 1.288 / (download) - annotate - [select for diffs], Sun May 30 13:34:21 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.287: +12 -2 lines
Diff to previous 1.287 (colored)

Keep track of a pmap's PV entries with a list hanging off the pmap.

Revision 1.287 / (download) - annotate - [select for diffs], Sun May 30 06:41:19 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.286: +22 -19 lines
Diff to previous 1.286 (colored)

Store the modified / referenced attribute bits in the lower 2 bits of
the PV entry list pointer in struct vm_page_md.  This reduces the size
of that structure from 16 bytes to 8, and will go a fair way to making
up for increasing the size of struct pv_entry in a future commit.

Revision 1.286 / (download) - annotate - [select for diffs], Sun May 30 05:26:09 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.285: +7 -9 lines
Diff to previous 1.285 (colored)

Define a macro, VM_MDPAGE_PVS(), for fetching the first pv entry
for a page.

Revision 1.285 / (download) - annotate - [select for diffs], Sun May 30 04:04:26 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.284: +18 -26 lines
Diff to previous 1.284 (colored)

Pages that are in-use as page table pages should never be part of a
UVM loan transaction, so use the vm_page::loan_count field as the PT
page reference count.

Revision 1.284 / (download) - annotate - [select for diffs], Sun May 30 01:41:45 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.283: +25 -27 lines
Diff to previous 1.283 (colored)

Track the PT pages allocated to a pmap in the pmap itself.

Revision 1.283 / (download) - annotate - [select for diffs], Sun May 30 01:24:19 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.282: +27 -27 lines
Diff to previous 1.282 (colored)

Change pmap_physpage_alloc() to return the vm_page * so that the
callers have access to it.

Revision 1.282 / (download) - annotate - [select for diffs], Sun May 30 00:34:27 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.281: +22 -11 lines
Diff to previous 1.281 (colored)

Define a pmap_pagelist LIST_HEAD and use it where we used ad hoc LIST_HEADs
of vm_page structures.  Define and use a generic routine to free such a list
back to UVM.

In pmap_remove_internal(), KASSERT that no PT pages are queued up to be
freed when removing mappings from the kernel pmap.

Revision 1.281 / (download) - annotate - [select for diffs], Sat May 29 23:27:22 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.280: +66 -45 lines
Diff to previous 1.280 (colored)

Move the pointer to the pmap's lev1map out of the shared pmap structure
and into each CPU's pmap_percpu area.  This pointer is constant for the
life of the pmap, and moving it gives us an additional 8 bytes in the
shared pmap structure.

Because the kernel pmap does not have per-CPU data, all places where we
need the kernel pmap's lev1map now just reference kernel_lev1map directly.

Revision 1.280 / (download) - annotate - [select for diffs], Sat May 29 22:14:09 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.279: +7 -7 lines
Diff to previous 1.279 (colored)

Rather than tracking "needs I-sync on return to userspace" in a bitmap,
track it with a separate field in the pmap_percpu.  Not only does this
reduce cache line contention ever so slightly, it also frees up a field
in the shared portion of the pmap structure.

Revision 1.279 / (download) - annotate - [select for diffs], Sat May 29 21:54:50 2021 UTC (20 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.278: +15 -15 lines
Diff to previous 1.278 (colored)

Rename pmap_asn_info to pmap_percpu, and pmap::pm_asni to pmap::pm_percpu.
No functional change.

Revision 1.278 / (download) - annotate - [select for diffs], Mon May 24 03:43:24 2021 UTC (20 months, 2 weeks ago) by thorpej
Branch: MAIN
Changes since 1.277: +68 -40 lines
Diff to previous 1.277 (colored)

pmap_tlb_shootdown_all_user() can be called in the PV scenario as well
as the forward scenario, for example if a pmap_page_protect() to remove
all mappings results in the freeing of a PT page.  It therefore needs
to do the same reference counting dance as pmap_tlb_shootdown_pv().

Also fix a use-after-free error in pmap_page_protect().

Add / tweak some assertions, and shrink the pmap::pm_count field from
long to unsigned int (which gave me a spare unsigned int field for
debugging purposes).

PR port-alpha/56201.

Revision 1.277 / (download) - annotate - [select for diffs], Sun May 23 19:13:27 2021 UTC (20 months, 2 weeks ago) by thorpej
Branch: MAIN
Changes since 1.276: +5 -2 lines
Diff to previous 1.276 (colored)

Fix a bug in pmap_tlb_shootdown_all_user(), where it was not
stashing away the pointer to the pmap in the TLB context structure
like pmap_tlb_shootdown() was doing.  This would result in the
following failure scenario:

- Page fault handler calls pmap_enter() to map a page.  Mapping
  is the first one for that L2 PT L3 PT, meaning that an L2 PT
  and an L3 PT must be allocated.
- L2 PT allocation succeeds.
- L3 PT allocation fails under memory pressure.
- pmap_enter() goes to drop the reference on the L2 PT, which, because
  it was the first of its mappings, frees the L2 PT.  Becuse PALcode
  may have already tried to service a TLB miss though that L2 PT, we
  must issue an all-user-VA shootdown, and call pmap_tlb_shootdown_all_user()
  to do so.
- pmap_tlb_shootnow() is called and an assert fires because the TLB
  context structure does not point to a pmap.

This did not fail in the pmap_remove() scenario because the TLB context
would have already had at least one call to pmap_tlb_shootdown(), which
was initializing the pmap pointer properly.

PR port-alpha/56200

Revision 1.273.2.2 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:13 2021 UTC (22 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.273.2.1: +18 -6 lines
Diff to previous 1.273.2.1 (colored) next main 1.274 (colored)

Sync with HEAD.

Revision 1.274.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 21:44:40 2021 UTC (22 months ago) by thorpej
Branch: thorpej-cfargs
Changes since 1.274: +18 -6 lines
Diff to previous 1.274 (colored) next main 1.275 (colored)

Sync with HEAD.

Revision 1.276 / (download) - annotate - [select for diffs], Sat Apr 3 15:29:02 2021 UTC (22 months, 1 week ago) by thorpej
Branch: MAIN
CVS Tags: thorpej-futex-base, thorpej-cfargs-base, cjep_staticlib_x-base
Branch point for: thorpej-i2c-spi-conf, cjep_staticlib_x
Changes since 1.275: +15 -10 lines
Diff to previous 1.275 (colored)

Slight tweak to last: Our IPL gets raised to IPL_SCHED by simply *trying*
to acquire the pmap activation lock, regardless of whether or not that was
successful.  So, in addition to remember if we acquired it, also remember
if we tried, and drop back to IPL_VM if so.

Revision 1.275 / (download) - annotate - [select for diffs], Sat Apr 3 14:56:13 2021 UTC (22 months, 1 week ago) by thorpej
Branch: MAIN
Changes since 1.274: +9 -2 lines
Diff to previous 1.274 (colored)

Fix an IPI deadlock scenario that resulted in a TLB shootdown timeout
panic reported by John Klos on port-alpha:

- pmap_tlb_shootnow(): If we acquire a pmap's activation lock, we will
  have raised the IPL on the current CPU to IPL_SCHED until we drop
  the tlb_lock (due to how nested spin mutexes work).  As such, when
  we release the activation lock, forcibly lower our IPL back to IPL_VM
  so that we can receive and process IPIs while waiting for other CPUs
  to process the shootdowns.
- mutex_vector_enter(): Invoke SPINLOCK_SPIN_HOOK while spinning to acquire
  a spin mutex.  This is a nop on most platforms, but it's important on
  the Alpha.  Without this, IPIs (and thus TLB shootdowns) cannot be
  processed if trying to acquire an IPL_SCHED spin mutex such as those
  used by the scheduler.

...and while we're poking around in here:

- Rework the Alpha SPINLOCK_SPIN_HOOK to only check curcpu()->ci_ipis
  if the current CPU's IPL is >= IPL_CLOCK (thus ensuring that preemption
  is disabled and thus guaranteeing that curcpu() is stable).  (Alpha does
  not yet support kernel preemption, but this is now one less thing that
  would need to be fixed.)

Revision 1.273.2.1 / (download) - annotate - [select for diffs], Sun Jan 3 16:34:50 2021 UTC (2 years, 1 month ago) by thorpej
Branch: thorpej-futex
Changes since 1.273: +10 -5 lines
Diff to previous 1.273 (colored)

Sync w/ HEAD.

Revision 1.274 / (download) - annotate - [select for diffs], Tue Dec 29 17:16:15 2020 UTC (2 years, 1 month ago) by thorpej
Branch: MAIN
Branch point for: thorpej-cfargs
Changes since 1.273: +10 -5 lines
Diff to previous 1.273 (colored)

From the Infinitesimal Optimizations Department: in pmap_kremove(), update
the globally visible stats outside of the loop.

Revision 1.273 / (download) - annotate - [select for diffs], Fri Sep 11 03:54:14 2020 UTC (2 years, 4 months ago) by simonb
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.272: +3 -3 lines
Diff to previous 1.272 (colored)

Fix shift tyop in a comment.

Revision 1.272 / (download) - annotate - [select for diffs], Tue Sep 8 21:41:37 2020 UTC (2 years, 5 months ago) by riastradh
Branch: MAIN
Changes since 1.271: +4 -7 lines
Diff to previous 1.271 (colored)

alpha: Use load-acquire/store-release.

Omit needless membar in pmap_kenter_pa while here -- caller must
ensure pmap_kenter_pa on one CPU happens before use of the VA on
another CPU anyway, so there is no benefit to a membar here.

ok thorpej@

Revision 1.271 / (download) - annotate - [select for diffs], Thu Sep 3 02:09:09 2020 UTC (2 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.270: +3 -33 lines
Diff to previous 1.270 (colored)

Clean up all of the _PMAP_MAY_USE_PROM_CONSOLE crapola, centralizing the
logic in prom.c, and rename it _PROM_MAY_USE_PROM_CONSOLE in a few places
it's still needed.

Revision 1.270 / (download) - annotate - [select for diffs], Thu Sep 3 02:05:03 2020 UTC (2 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.269: +7 -10 lines
Diff to previous 1.269 (colored)

- Remove redundant memory barriers.  For the ones that remain,
  use the membar_ops(3) names to make it clear how they pair up (even
  though most of them expand to the MB instruction anyway).

Revision 1.269 / (download) - annotate - [select for diffs], Sat Aug 29 20:06:59 2020 UTC (2 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.268: +1253 -990 lines
Diff to previous 1.268 (colored)

- Centralize per-CPU pmap initialization into a new pmap_init_cpu()
  function.  Call in from pmap_bootstrap() for the boot CPU, and
  from cpu_hatch() for secondaary CPUs.
- Eliminiate the dedicated I-stream memory barrier IPI; handle it all from
  the TLB shootdown IPI.  Const poison, and add some additional memory
  barriers and a TBIA to the PAUSE IPI.
- Completly rewrite TLB management in the alpha pmap module, borrowing
  somoe ideas from the x86 pmap and adapting them to the alpha environment.
  See the comments for theory of operation.  Add a bunch of stats that
  can be reported (disabled by default).
- Add some additional symbol decorations to improve cache behavior on
  MP systems.  Ensure coherency unit alignment for several structures
  in the pmap module.  Use hashed locks for pmap structures.
- Start out all new processes on the kernel page tables until their
  first trip though pmap_activate() to avoid the potential of polluting
  the current ASN in TLB with cross-process mappings.

Revision 1.268 / (download) - annotate - [select for diffs], Mon Aug 17 00:57:37 2020 UTC (2 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.267: +25 -13 lines
Diff to previous 1.267 (colored)

- Track the currently-activated pmap in struct cpu_info.
- Reserve some space in struct cpu_info for future pmap changes.

Revision 1.267 / (download) - annotate - [select for diffs], Sun Aug 16 20:04:36 2020 UTC (2 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.266: +96 -196 lines
Diff to previous 1.266 (colored)

- Undo part of rev 1.264; go back to not acquiring the pmap lock in
  pmap_activate().  As of rev 1.211, the pmap::pm_lev1map field is
  stable across the life of the pmap, and so the conditino that
  the change in 1.264 was intended to avoid would not have happened
  anyway.
- Explicitly use __cacheline_aligned / COHERENCY_UNIT rather than 64
  in a couple of places.
- Update comments around the lev1map lifecycle, and add some assertions
  to enforce the assumptions being described.
- Remove some dubious DEBUG tests that are not MP-safe.
- Chage some long-form #ifdef DIAGNOSTIC checks / panics to KASSERTs.
- Remove the PMAP_ACTIVATE() macro because it's no longer used anywhere
  except for pmap_activate().  Just open-code the equivalent there.
- In pmap_activate(), only perform the SWPCTX if either the PTBR or the
  ASN are different than what the PCB already has.  Also assert that
  preemption is disabled and that the specified lwp is curlwp.
- In pmap_deactivate(), add similar assertions, and add a comment explaining
  why a SWPCTX to get off of the deactivated lev1map is not necessaray.
- Refactor some duplicated code in pmap_growkernel() into a new
  pmap_kptpage_alloc() function.
- In pmap_growkernel(), assert that any user pmap published on the all-pmaps
  list does not reference the kernel_lev1map.
- In pmap_asn_alloc(), get out early if we're called with the kernel pmap,
  since all kernel mappings are ASM.  Remove bogus assertions around the
  value of pmap::pm_lev1map and the current ASN, and simply assert that
  pmap::pm_lev1map is never kernel_lev1map.  Also assert that preemption
  is disabled, since we're manipulating per-cpu data structures.
- Convert the "too much uptime" panic to a simple KASSERT, and update the
  comment to reflect that we're only subject to the longer 75 billion year
  ASN generation overflow (because CPUs that don't implement ASNs never go
  through this code path).

Revision 1.262.4.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:07:25 2020 UTC (2 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.262.4.1: +16 -14 lines
Diff to previous 1.262.4.1 (colored) to branchpoint 1.262 (colored) next main 1.263 (colored)

Merge changes from current as of 20200406

Revision 1.264.6.1 / (download) - annotate - [select for diffs], Sat Jan 25 22:38:37 2020 UTC (3 years ago) by ad
Branch: ad-namecache
Changes since 1.264: +16 -14 lines
Diff to previous 1.264 (colored) next main 1.265 (colored)

Sync with head.

Revision 1.266 / (download) - annotate - [select for diffs], Fri Jan 17 22:03:56 2020 UTC (3 years ago) by skrll
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2
Changes since 1.265: +14 -12 lines
Diff to previous 1.265 (colored)

Convert #if 0'ed code to uvm_hotplug api

Revision 1.265 / (download) - annotate - [select for diffs], Fri Jan 17 21:59:05 2020 UTC (3 years ago) by skrll
Branch: MAIN
Changes since 1.264: +4 -4 lines
Diff to previous 1.264 (colored)

Trailing whitespace

Revision 1.262.4.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:05:45 2019 UTC (3 years, 8 months ago) by christos
Branch: phil-wifi
Changes since 1.262: +16 -9 lines
Diff to previous 1.262 (colored)

Sync with HEAD

Revision 1.264 / (download) - annotate - [select for diffs], Fri Mar 29 03:11:32 2019 UTC (3 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: phil-wifi-20191119, phil-wifi-20190609, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, isaki-audio2-base, isaki-audio2, ad-namecache-base1, ad-namecache-base
Branch point for: ad-namecache
Changes since 1.263: +15 -8 lines
Diff to previous 1.263 (colored)

Fix a couple of latent MP issues in the Alpha pmap:
- In pmap_activate(), even though we manipulate the active mask
  with atomic ops, the lev1map pointer needs to stay consistent,
  so we do, in fact, have to take the pmap lock there.
- In pmap_emulate_reference(), some of the DEBUG checks done here
  are race-prone, so don't do them.  (Leave them #if 0'd out for
  documentary purposes.)

Revision 1.263 / (download) - annotate - [select for diffs], Fri Mar 1 04:29:20 2019 UTC (3 years, 11 months ago) by mrg
Branch: MAIN
Changes since 1.262: +3 -3 lines
Diff to previous 1.262 (colored)

fix a typo in a comment

Revision 1.261.8.1 / (download) - annotate - [select for diffs], Tue Feb 27 09:07:33 2018 UTC (4 years, 11 months 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.261: +33 -21 lines
Diff to previous 1.261 (colored) next main 1.262 (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.262 / (download) - annotate - [select for diffs], Sat Jan 27 23:07:36 2018 UTC (5 years ago) by chs
Branch: MAIN
CVS Tags: phil-wifi-base, 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
Branch point for: phil-wifi
Changes since 1.261: +33 -21 lines
Diff to previous 1.261 (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.258.6.2 / (download) - annotate - [select for diffs], Sun Dec 3 11:35:46 2017 UTC (5 years, 2 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.258.6.1: +17 -33 lines
Diff to previous 1.258.6.1 (colored) to branchpoint 1.258 (colored) next main 1.259 (colored)

update from HEAD

Revision 1.259.6.2 / (download) - annotate - [select for diffs], Sun Feb 5 13:40:01 2017 UTC (6 years ago) by skrll
Branch: nick-nhusb
Changes since 1.259.6.1: +19 -31 lines
Diff to previous 1.259.6.1 (colored) to branchpoint 1.259 (colored) next main 1.260 (colored)

Sync with HEAD

Revision 1.260.2.1 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:09 2017 UTC (6 years, 1 month ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.260: +19 -31 lines
Diff to previous 1.260 (colored) next main 1.261 (colored)

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

Revision 1.261 / (download) - annotate - [select for diffs], Fri Dec 23 07:15:27 2016 UTC (6 years, 1 month ago) by cherry
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, netbsd-8-base, 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.260: +19 -31 lines
Diff to previous 1.260 (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.259.6.1 / (download) - annotate - [select for diffs], Sun Dec 27 12:09:27 2015 UTC (7 years, 1 month ago) by skrll
Branch: nick-nhusb
Changes since 1.259: +2 -6 lines
Diff to previous 1.259 (colored)

Sync with HEAD (as of 26th Dec)

Revision 1.260 / (download) - annotate - [select for diffs], Thu Nov 5 06:26:15 2015 UTC (7 years, 3 months ago) by pgoyette
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, localcount-20160914
Branch point for: pgoyette-localcount
Changes since 1.259: +2 -6 lines
Diff to previous 1.259 (colored)

Remove SYSVSHM-specific code.  The value of shminfo.shmall is zero at
the time this pmap initialization code is called, so the increment is
a no-op.  (Thanks christos@ for pointing it out.)

Revision 1.258.6.1 / (download) - annotate - [select for diffs], Wed Aug 20 00:02:41 2014 UTC (8 years, 5 months ago) by tls
Branch: tls-maxphys
Changes since 1.258: +8 -6 lines
Diff to previous 1.258 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.255.8.2 / (download) - annotate - [select for diffs], Thu May 22 11:39:27 2014 UTC (8 years, 8 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.255.8.1: +8 -6 lines
Diff to previous 1.255.8.1 (colored) to branchpoint 1.255 (colored) next main 1.256 (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.258.10.1 / (download) - annotate - [select for diffs], Sun May 18 17:44:53 2014 UTC (8 years, 8 months ago) by rmind
Branch: rmind-smpnet
Changes since 1.258: +8 -6 lines
Diff to previous 1.258 (colored) next main 1.259 (colored)

sync with head

Revision 1.259 / (download) - annotate - [select for diffs], Wed Jan 1 22:35:54 2014 UTC (9 years, 1 month ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, 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, 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, netbsd-7
Branch point for: nick-nhusb
Changes since 1.258: +8 -6 lines
Diff to previous 1.258 (colored)

Define kernel_pmap_store as a pmap followed by ALPHA_MAXPROCS pmap_asn_info.
kernel_pmap_ptr now points to the pmap in kernel_pmap_store.

Revision 1.255.8.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:05:54 2012 UTC (10 years, 9 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.255: +11 -11 lines
Diff to previous 1.255 (colored)

sync with head

Revision 1.255.12.1 / (download) - annotate - [select for diffs], Sat Feb 18 07:30:51 2012 UTC (10 years, 11 months ago) by mrg
Branch: jmcneill-usbmp
Changes since 1.255: +11 -11 lines
Diff to previous 1.255 (colored) next main 1.256 (colored)

merge to -current.

Revision 1.258 / (download) - annotate - [select for diffs], Mon Feb 6 02:14:12 2012 UTC (11 years ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, 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, khorben-n900, 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, agc-symver-base, agc-symver
Branch point for: tls-maxphys, rmind-smpnet
Changes since 1.257: +10 -10 lines
Diff to previous 1.257 (colored)

Do a minor cleanup of alpha (this will make applying pullups post branching
easier).
u_int{8,16,32,64}_t -> uint{*}_t
Change all old-style definitions to C89 prototypes.
Whitespace cleanup.
Constification in db_disasm.c

Revision 1.257 / (download) - annotate - [select for diffs], Thu Feb 2 18:59:44 2012 UTC (11 years ago) by para
Branch: MAIN
Changes since 1.256: +8 -3 lines
Diff to previous 1.256 (colored)

- bringing kmeminit_nkmempages back and revert pmaps that called this early
- use nkmempages to scale the kmem_arena
- reducing diff to pre kmem/vmem change
   (NKMEMPAGES_MAX_DEFAULT will need adjusting on some archs)

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

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

releng@ acknowledged

Revision 1.252.4.1 / (download) - annotate - [select for diffs], Sat Mar 5 20:49:09 2011 UTC (11 years, 11 months ago) by rmind
Branch: rmind-uvmplock
Changes since 1.252: +60 -44 lines
Diff to previous 1.252 (colored) next main 1.253 (colored)

sync with head

Revision 1.252.2.10 / (download) - annotate - [select for diffs], Mon Nov 15 15:11:53 2010 UTC (12 years, 2 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252.2.9: +0 -13 lines
Diff to previous 1.252.2.9 (colored) to branchpoint 1.252 (colored) next main 1.253 (colored)

Revert xmd(4).

Revision 1.255 / (download) - annotate - [select for diffs], Fri Nov 12 07:59:25 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, uebayasi-xip-base7, uebayasi-xip-base6, rmind-uvmplock-nbase, rmind-uvmplock-base, matt-mips64-premerge-20101231, jym-xensuspend-nbase, jym-xensuspend-base, jruoho-x86intr-base, jruoho-x86intr, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache, jmcneill-usbmp
Changes since 1.254: +0 -2 lines
Diff to previous 1.254 (colored)

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

Revision 1.254 / (download) - annotate - [select for diffs], Wed Nov 10 09:27:21 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: MAIN
Changes since 1.253: +17 -17 lines
Diff to previous 1.253 (colored)

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

Revision 1.252.2.9 / (download) - annotate - [select for diffs], Wed Nov 10 08:59:12 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252.2.8: +1 -1 lines
Diff to previous 1.252.2.8 (colored) to branchpoint 1.252 (colored)

Fix thinko; make vm_physseg ptr swap really work.

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

opt_xip.h isn't needed any more here.

Revision 1.252.2.7 / (download) - annotate - [select for diffs], Wed Nov 10 03:36:25 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252.2.6: +1 -1 lines
Diff to previous 1.252.2.6 (colored) to branchpoint 1.252 (colored)

Always use VM_PHYSMEM_PTR().

Revision 1.252.2.6 / (download) - annotate - [select for diffs], Sat Nov 6 08:08:12 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252.2.5: +2 -0 lines
Diff to previous 1.252.2.5 (colored) to branchpoint 1.252 (colored)

Sync with HEAD.

Revision 1.253 / (download) - annotate - [select for diffs], Sat Oct 30 17:00:54 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: MAIN
CVS Tags: uebayasi-xip-base5, uebayasi-xip-base4
Changes since 1.252: +45 -27 lines
Diff to previous 1.252 (colored)

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

Revision 1.252.2.5 / (download) - annotate - [select for diffs], Sat Oct 30 08:41:06 2010 UTC (12 years, 3 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252.2.4: +13 -0 lines
Diff to previous 1.252.2.4 (colored) to branchpoint 1.252 (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.252.2.4 / (download) - annotate - [select for diffs], Wed Jul 7 16:35:24 2010 UTC (12 years, 7 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252.2.3: +0 -1 lines
Diff to previous 1.252.2.3 (colored) to branchpoint 1.252 (colored)

Clean up; merge options DIRECT_PAGE into options XIP.

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

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

Revision 1.252.2.2 / (download) - annotate - [select for diffs], Wed Apr 28 08:31:05 2010 UTC (12 years, 9 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252.2.1: +17 -17 lines
Diff to previous 1.252.2.1 (colored) to branchpoint 1.252 (colored)

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

Revision 1.236.16.1 / (download) - annotate - [select for diffs], Wed Apr 21 00:33:53 2010 UTC (12 years, 9 months ago) by matt
Branch: matt-nb5-mips64
CVS Tags: matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-k15
Changes since 1.236: +8 -7 lines
Diff to previous 1.236 (colored) next main 1.237 (colored)

sync to netbsd-5

Revision 1.235.4.5 / (download) - annotate - [select for diffs], Thu Mar 11 15:01:57 2010 UTC (12 years, 11 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.235.4.4: +60 -162 lines
Diff to previous 1.235.4.4 (colored) to branchpoint 1.235 (colored) next main 1.236 (colored)

sync with head

Revision 1.252.2.1 / (download) - annotate - [select for diffs], Thu Feb 25 03:44:16 2010 UTC (12 years, 11 months ago) by uebayasi
Branch: uebayasi-xip
Changes since 1.252: +45 -27 lines
Diff to previous 1.252 (colored)

Use VM_PAGE_TO_MD().  Only compile tested.

Revision 1.252 / (download) - annotate - [select for diffs], Thu Nov 26 00:19:11 2009 UTC (13 years, 2 months 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, uebayasi-xip-base, matt-premerge-20091211
Branch point for: uebayasi-xip, rmind-uvmplock
Changes since 1.251: +3 -3 lines
Diff to previous 1.251 (colored)

Kill proc0paddr.  Use lwp0.l_addr instead.

Revision 1.251 / (download) - annotate - [select for diffs], Sat Nov 21 05:35:40 2009 UTC (13 years, 2 months ago) by rmind
Branch: MAIN
Changes since 1.250: +9 -9 lines
Diff to previous 1.250 (colored)

- Use lwp_getpcb() on Alpha.
- Replace and clean struct user usage, slightly simplify some code parts.
- Include sys/user.h in MD proc.h .

Revision 1.236.14.3 / (download) - annotate - [select for diffs], Sun Nov 15 05:55:00 2009 UTC (13 years, 2 months ago) by snj
Branch: netbsd-5-0
CVS Tags: netbsd-5-0-2-RELEASE
Changes since 1.236.14.2: +3 -3 lines
Diff to previous 1.236.14.2 (colored) to branchpoint 1.236 (colored) next main 1.237 (colored)

Pull up following revision(s) (requested by mhitch in ticket #1137):
	sys/arch/alpha/alpha/pmap.c: revision 1.250
The tlb shootdown IPI can interrupt the pool_cache_get() in places that
can cause a deadlock or pool cache corruption.  Take the shootdown job
queue mutex before calling pool_cache_get(), which will block the IPI
interrupts and seems to fix the remaining tlb shootdown deadlocks and
pool cache corruption I've been seeing.  Should address both
PR port-alpha/38335 and PR port-alpha/42174.

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

Pull up following revision(s) (requested by mhitch in ticket #1137):
	sys/arch/alpha/alpha/pmap.c: revision 1.250
The tlb shootdown IPI can interrupt the pool_cache_get() in places that
can cause a deadlock or pool cache corruption.  Take the shootdown job
queue mutex before calling pool_cache_get(), which will block the IPI
interrupts and seems to fix the remaining tlb shootdown deadlocks and
pool cache corruption I've been seeing.  Should address both
PR port-alpha/38335 and PR port-alpha/42174.

Revision 1.250 / (download) - annotate - [select for diffs], Mon Nov 9 04:31:03 2009 UTC (13 years, 3 months ago) by mhitch
Branch: MAIN
Changes since 1.249: +3 -3 lines
Diff to previous 1.249 (colored)

The tlb shootdown IPI can interrupt the pool_cache_get() in places that
can cause a deadlock or pool cache corruption.  Take the shootdown job
queue mutex before calling pool_cache_get(), which will block the IPI
interrupts and seems to fix the remaining tlb shootdown deadlocks and
pool cache corruption I've been seeing.  Should address both
PR port-amiga/38335 and PR port-amiga/42174.

Revision 1.249 / (download) - annotate - [select for diffs], Sat Nov 7 07:27:40 2009 UTC (13 years, 3 months ago) by cegger
Branch: MAIN
Changes since 1.248: +3 -3 lines
Diff to previous 1.248 (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.248 / (download) - annotate - [select for diffs], Mon Oct 26 03:51:42 2009 UTC (13 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.247: +2 -25 lines
Diff to previous 1.247 (colored)

Garbage-collect pmap_do_reactivate() and the associated IPI -- nothing has
used them for a long time.

Revision 1.247 / (download) - annotate - [select for diffs], Mon Oct 26 03:21:19 2009 UTC (13 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.246: +2 -22 lines
Diff to previous 1.246 (colored)

Garbage-collect PMAP_LEV1MAP_SHOOTDOWN() -- it hasn't been used for a long
time.

Revision 1.246 / (download) - annotate - [select for diffs], Sat Oct 24 04:56:42 2009 UTC (13 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.245: +42 -41 lines
Diff to previous 1.245 (colored)

Ensure coherency between the L1 PT cache and pmap_growkernel() -- protect
allocations from pmap_growkernel() with a r/w lock.

Revision 1.245 / (download) - annotate - [select for diffs], Thu Oct 22 19:50:55 2009 UTC (13 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.244: +9 -32 lines
Diff to previous 1.244 (colored)

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

Revision 1.244 / (download) - annotate - [select for diffs], Wed Oct 21 21:11:58 2009 UTC (13 years, 3 months ago) by rmind
Branch: MAIN
Changes since 1.243: +3 -40 lines
Diff to previous 1.243 (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.236.14.2 / (download) - annotate - [select for diffs], Fri Oct 16 06:45:40 2009 UTC (13 years, 3 months ago) by snj
Branch: netbsd-5-0
Changes since 1.236.14.1: +3 -3 lines
Diff to previous 1.236.14.1 (colored) to branchpoint 1.236 (colored)

Pull up following revision(s) (requested by mhitch in ticket #1073):
	sys/arch/alpha/alpha/pmap.c: revision 1.243
IPI interrupts occur above IPL_VM, so using IPL_VM in for the tlb shootdown
queue mutex doesn't work very well.  I get various deadlocks and corrupted
queue entries.  Change to IPL_SCHED [IPL_CLOCK] to block IPI interrupts
while the cpu is mucking with the shootdown queue.

Revision 1.236.10.3 / (download) - annotate - [select for diffs], Fri Oct 16 06:42:53 2009 UTC (13 years, 3 months ago) by snj
Branch: netbsd-5
Changes since 1.236.10.2: +3 -3 lines
Diff to previous 1.236.10.2 (colored) to branchpoint 1.236 (colored)

Pull up following revision(s) (requested by mhitch in ticket #1073):
	sys/arch/alpha/alpha/pmap.c: revision 1.243
IPI interrupts occur above IPL_VM, so using IPL_VM in for the tlb shootdown
queue mutex doesn't work very well.  I get various deadlocks and corrupted
queue entries.  Change to IPL_SCHED [IPL_CLOCK] to block IPI interrupts
while the cpu is mucking with the shootdown queue.

Revision 1.243 / (download) - annotate - [select for diffs], Sun Oct 4 17:00:31 2009 UTC (13 years, 4 months ago) by mhitch
Branch: MAIN
Changes since 1.242: +3 -3 lines
Diff to previous 1.242 (colored)

IPI interrupts occur above IPL_VM, so using IPL_VM in for the tlb shootdown
queue mutex doesn't work very well.  I get various deadlocks and corrupted
queue entries.  Change to IPL_SCHED [IPL_CLOCK] to block IPI interrupts
while the cpu is mucking with the shootdown queue.

Revision 1.235.4.4 / (download) - annotate - [select for diffs], Wed Sep 16 13:37:34 2009 UTC (13 years, 4 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.235.4.3: +6 -5 lines
Diff to previous 1.235.4.3 (colored) to branchpoint 1.235 (colored)

sync with head

Revision 1.236.10.2 / (download) - annotate - [select for diffs], Wed Sep 16 04:41:13 2009 UTC (13 years, 4 months ago) by snj
Branch: netbsd-5
Changes since 1.236.10.1: +4 -4 lines
Diff to previous 1.236.10.1 (colored) to branchpoint 1.236 (colored)

Pull up following revision(s) (requested by mhitch in ticket #954):
	sys/arch/alpha/alpha/pmap.c: revision 1.242
Alpha will size the mutex structure in pmap_tlb_shootdown_q to 16 bytes.
Change the command and pad accordingly;  now pmap_tlb_shootdown_q entries
really are cache-aligned.

Revision 1.236.14.1 / (download) - annotate - [select for diffs], Wed Sep 16 04:26:04 2009 UTC (13 years, 4 months ago) by snj
Branch: netbsd-5-0
Changes since 1.236: +4 -3 lines
Diff to previous 1.236 (colored)

Pull up following revision(s) (requested by mhitch in ticket #953):
	sys/arch/alpha/alpha/pmap.c: revision 1.241
Now that secondary cpus are added the cpu_info list earlier, attempt to
send pmap tlb shootdowns to them cause the shootdown job queue to fill up,
but since the cpus aren't running yet, no IPIs get sent.  When the job
queue is full, the bit mask of cpus to send the IPI to is not set and no
shootdown IPI ever gets sent after the cpu is marked running.  Always
set the cpumask even when the queue is full.  Now I get shootdown ipis
on all the secondary cpus.

Revision 1.236.10.1 / (download) - annotate - [select for diffs], Wed Sep 16 04:24:46 2009 UTC (13 years, 4 months ago) by snj
Branch: netbsd-5
Changes since 1.236: +4 -3 lines
Diff to previous 1.236 (colored)

Pull up following revision(s) (requested by mhitch in ticket #953):
	sys/arch/alpha/alpha/pmap.c: revision 1.241
Now that secondary cpus are added the cpu_info list earlier, attempt to
send pmap tlb shootdowns to them cause the shootdown job queue to fill up,
but since the cpus aren't running yet, no IPIs get sent.  When the job
queue is full, the bit mask of cpus to send the IPI to is not set and no
shootdown IPI ever gets sent after the cpu is marked running.  Always
set the cpumask even when the queue is full.  Now I get shootdown ipis
on all the secondary cpus.

Revision 1.242 / (download) - annotate - [select for diffs], Thu Sep 10 22:27:11 2009 UTC (13 years, 5 months ago) by mhitch
Branch: MAIN
CVS Tags: yamt-nfs-mp-base8
Changes since 1.241: +4 -4 lines
Diff to previous 1.241 (colored)

Alpha will size the mutex structure in pmap_tlb_shootdown_q to 16 bytes.
Change the command and pad accordingly;  now pmap_tlb_shootdown_q entries
really are cache-aligned.

Revision 1.241 / (download) - annotate - [select for diffs], Thu Sep 10 21:36:39 2009 UTC (13 years, 5 months ago) by mhitch
Branch: MAIN
Changes since 1.240: +4 -3 lines
Diff to previous 1.240 (colored)

Now that secondary cpus are added the cpu_info list earlier, attempt to
send pmap tlb shootdowns to them cause the shootdown job queue to fill up,
but since the cpus aren't running yet, no IPIs get sent.  When the job
queue is full, the bit mask of cpus to send the IPI to is not set and no
shootdown IPI ever gets sent after the cpu is marked running.  Always
set the cpumask even when the queue is full.  Now I get shootdown ipis
on all the secondary cpus.

Revision 1.235.4.3 / (download) - annotate - [select for diffs], Wed Aug 19 18:45:53 2009 UTC (13 years, 5 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.235.4.2: +4 -6 lines
Diff to previous 1.235.4.2 (colored) to branchpoint 1.235 (colored)

sync with head.

Revision 1.240 / (download) - annotate - [select for diffs], Tue Aug 18 18:06:53 2009 UTC (13 years, 5 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-nfs-mp-base7
Changes since 1.239: +4 -6 lines
Diff to previous 1.239 (colored)

Add a real API for testing if a page is a managed page, and adjust callers
to stop relying on vm_physseg_find() for this purpose.

Revision 1.238.2.1 / (download) - annotate - [select for diffs], Wed May 13 17:16:05 2009 UTC (13 years, 9 months ago) by jym
Branch: jym-xensuspend
Changes since 1.238: +3 -3 lines
Diff to previous 1.238 (colored) next main 1.239 (colored)

Sync with HEAD.

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

Revision 1.235.4.2 / (download) - annotate - [select for diffs], Mon May 4 08:10:28 2009 UTC (13 years, 9 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.235.4.1: +5 -4 lines
Diff to previous 1.235.4.1 (colored) to branchpoint 1.235 (colored)

sync with head.

Revision 1.236.8.2 / (download) - annotate - [select for diffs], Tue Apr 28 07:33:34 2009 UTC (13 years, 9 months ago) by skrll
Branch: nick-hppapmap
Changes since 1.236.8.1: +3 -3 lines
Diff to previous 1.236.8.1 (colored) to branchpoint 1.236 (colored) next main 1.237 (colored)

Sync with HEAD.

Revision 1.239 / (download) - annotate - [select for diffs], Tue Apr 21 21:29:58 2009 UTC (13 years, 9 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.238: +3 -3 lines
Diff to previous 1.238 (colored)

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

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

Sync with HEAD.

Revision 1.232.2.4 / (download) - annotate - [select for diffs], Sat Jan 17 13:27:47 2009 UTC (14 years ago) by mjf
Branch: mjf-devfs2
Changes since 1.232.2.3: +4 -3 lines
Diff to previous 1.232.2.3 (colored) to branchpoint 1.232 (colored) next main 1.233 (colored)

Sync with HEAD.

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

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

Revision 1.238 / (download) - annotate - [select for diffs], Wed Dec 10 11:10:18 2008 UTC (14 years, 2 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.237: +3 -3 lines
Diff to previous 1.237 (colored)

Make kernel_pmap_ptr a const.  Requested by steve_martin.

Revision 1.237 / (download) - annotate - [select for diffs], Tue Dec 9 20:45:44 2008 UTC (14 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.236: +4 -3 lines
Diff to previous 1.236 (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.232.2.3 / (download) - annotate - [select for diffs], Mon Jun 2 13:21:45 2008 UTC (14 years, 8 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.232.2.2: +2 -9 lines
Diff to previous 1.232.2.2 (colored) to branchpoint 1.232 (colored)

Sync with HEAD.

Revision 1.235.2.1 / (download) - annotate - [select for diffs], Sun May 18 12:31:20 2008 UTC (14 years, 8 months ago) by yamt
Branch: yamt-pf42
Changes since 1.235: +2 -9 lines
Diff to previous 1.235 (colored) next main 1.236 (colored)

sync with head.

Revision 1.235.4.1 / (download) - annotate - [select for diffs], Fri May 16 02:21:44 2008 UTC (14 years, 8 months ago) by yamt
Branch: yamt-nfs-mp
Changes since 1.235: +2 -9 lines
Diff to previous 1.235 (colored)

sync with head.

Revision 1.236 / (download) - annotate - [select for diffs], Mon Apr 28 20:23:10 2008 UTC (14 years, 9 months ago) by martin
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, netbsd-5-base, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-1-RELEASE, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20091211, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, hpcarm-cleanup-nbase, haad-dm-base1, ad-audiomp2-base, ad-audiomp2
Branch point for: nick-hppapmap, netbsd-5-0, netbsd-5, matt-nb5-mips64, haad-dm
Changes since 1.235: +2 -9 lines
Diff to previous 1.235 (colored)

Remove clause 3 and 4 from TNF licenses

Revision 1.232.2.2 / (download) - annotate - [select for diffs], Thu Apr 3 12:42:10 2008 UTC (14 years, 10 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.232.2.1: +3792 -0 lines
Diff to previous 1.232.2.1 (colored) to branchpoint 1.232 (colored)

Sync with HEAD.

Revision 1.231.2.1 / (download) - annotate - [select for diffs], Mon Mar 24 07:14:51 2008 UTC (14 years, 10 months ago) by keiichi
Branch: keiichi-mipv6
Changes since 1.231: +74 -56 lines
Diff to previous 1.231 (colored) next main 1.232 (colored)

sync with head.

Revision 1.224.10.4 / (download) - annotate - [select for diffs], Sun Mar 23 02:03:52 2008 UTC (14 years, 10 months ago) by matt
Branch: matt-armv6
Changes since 1.224.10.3: +120 -150 lines
Diff to previous 1.224.10.3 (colored) to branchpoint 1.224 (colored) next main 1.225 (colored)

sync with HEAD

Revision 1.210.2.8 / (download) - annotate - [select for diffs], Mon Mar 17 09:14:13 2008 UTC (14 years, 10 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210.2.7: +12 -44 lines
Diff to previous 1.210.2.7 (colored) next main 1.211 (colored)

sync with head.

Revision 1.235 / (download) - annotate - [select for diffs], Mon Mar 10 14:01:35 2008 UTC (14 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp
Changes since 1.234: +4 -4 lines
Diff to previous 1.234 (colored)

Finish moving alpha over to the MI atomic ops.

Revision 1.234 / (download) - annotate - [select for diffs], Mon Mar 10 13:37:38 2008 UTC (14 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.233: +3 -3 lines
Diff to previous 1.233 (colored)

Convert remaining use of alpha atomic op to an MI one.

Revision 1.233 / (download) - annotate - [select for diffs], Mon Mar 10 13:36:22 2008 UTC (14 years, 11 months ago) by ad
Branch: MAIN
Changes since 1.232: +10 -42 lines
Diff to previous 1.232 (colored)

Use atomics to maintain the number of special page references. Should fix
locking problems including in revision 1.232.

Revision 1.210.2.7 / (download) - annotate - [select for diffs], Wed Feb 27 08:36:17 2008 UTC (14 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210.2.6: +86 -36 lines
Diff to previous 1.210.2.6 (colored)

sync with head.

Revision 1.232.2.1, Thu Feb 21 17:12:58 2008 UTC (14 years, 11 months ago) by mjf
Branch: mjf-devfs2
Changes since 1.232: +0 -3824 lines
FILE REMOVED

file pmap.c was added on branch mjf-devfs2 on 2008-04-03 12:42:10 +0000

Revision 1.232 / (download) - annotate - [select for diffs], Thu Feb 21 17:12:58 2008 UTC (14 years, 11 months ago) by ad
Branch: MAIN
CVS Tags: hpcarm-cleanup-base
Branch point for: mjf-devfs2
Changes since 1.231: +86 -36 lines
Diff to previous 1.231 (colored)

Use a hash of locks, instead of one per vm_page.

Revision 1.227.2.2 / (download) - annotate - [select for diffs], Mon Feb 18 21:04:19 2008 UTC (14 years, 11 months ago) by mjf
Branch: mjf-devfs
Changes since 1.227.2.1: +128 -306 lines
Diff to previous 1.227.2.1 (colored) to branchpoint 1.227 (colored) next main 1.228 (colored)

Sync with HEAD.

Revision 1.210.2.6 / (download) - annotate - [select for diffs], Mon Jan 21 09:35:08 2008 UTC (15 years ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210.2.5: +128 -306 lines
Diff to previous 1.210.2.5 (colored)

sync with head

Revision 1.228.6.2 / (download) - annotate - [select for diffs], Sat Jan 19 12:14:08 2008 UTC (15 years ago) by bouyer
Branch: bouyer-xeni386
Changes since 1.228.6.1: +46 -94 lines
Diff to previous 1.228.6.1 (colored) to branchpoint 1.228 (colored) next main 1.229 (colored)

Sync with HEAD

Revision 1.231 / (download) - annotate - [select for diffs], Tue Jan 15 18:48:51 2008 UTC (15 years ago) by ad
Branch: MAIN
CVS Tags: nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, bouyer-xeni386-nbase, bouyer-xeni386-base
Branch point for: keiichi-mipv6
Changes since 1.230: +9 -14 lines
Diff to previous 1.230 (colored)

pmap_do_tlb_shootdown: simplify queue management.

Revision 1.230 / (download) - annotate - [select for diffs], Sat Jan 12 16:45:29 2008 UTC (15 years, 1 month ago) by ad
Branch: MAIN
Changes since 1.229: +50 -93 lines
Diff to previous 1.229 (colored)

Fix some problems with TLB shootdown and (hopefully) make it faster. This
had the potential to cause problems prior to 4.99.48 because it called into
the VM system without kernel_lock held.

XXX1 pmap_update() should be waiting for shootdown jobs to complete. It's
not clear how to do that because the shootdowns happen at IPL_VM.

Revision 1.224.10.3 / (download) - annotate - [select for diffs], Wed Jan 9 01:44:33 2008 UTC (15 years, 1 month ago) by matt
Branch: matt-armv6
Changes since 1.224.10.2: +86 -216 lines
Diff to previous 1.224.10.2 (colored) to branchpoint 1.224 (colored)

sync with HEAD

Revision 1.228.6.1 / (download) - annotate - [select for diffs], Wed Jan 2 21:46:51 2008 UTC (15 years, 1 month ago) by bouyer
Branch: bouyer-xeni386
CVS Tags: bouyer-xeni386-merge1
Changes since 1.228: +86 -216 lines
Diff to previous 1.228 (colored)

Sync with HEAD

Revision 1.229 / (download) - annotate - [select for diffs], Wed Jan 2 11:48:21 2008 UTC (15 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: matt-armv6-base
Changes since 1.228: +86 -216 lines
Diff to previous 1.228 (colored)

Merge vmlocking2 to head.

Revision 1.228.2.1 / (download) - annotate - [select for diffs], Sun Dec 30 23:12:59 2007 UTC (15 years, 1 month ago) by ad
Branch: vmlocking2
Changes since 1.228: +86 -216 lines
Diff to previous 1.228 (colored) next main 1.229 (colored)

Locking changes for alpha.

Revision 1.220.2.7 / (download) - annotate - [select for diffs], Mon Dec 3 19:02:25 2007 UTC (15 years, 2 months ago) by ad
Branch: vmlocking
Changes since 1.220.2.6: +4 -15 lines
Diff to previous 1.220.2.6 (colored) next main 1.221 (colored)

Sync with HEAD.

Revision 1.220.2.6 / (download) - annotate - [select for diffs], Mon Dec 3 18:34:30 2007 UTC (15 years, 2 months ago) by ad
Branch: vmlocking
Changes since 1.220.2.5: +3 -3 lines
Diff to previous 1.220.2.5 (colored)

Sync with HEAD.

Revision 1.227.2.1 / (download) - annotate - [select for diffs], Mon Nov 19 00:46:05 2007 UTC (15 years, 2 months ago) by mjf
Branch: mjf-devfs
Changes since 1.227: +16 -31 lines
Diff to previous 1.227 (colored)

Sync with HEAD.

Revision 1.210.2.5 / (download) - annotate - [select for diffs], Thu Nov 15 11:42:27 2007 UTC (15 years, 2 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210.2.4: +16 -31 lines
Diff to previous 1.210.2.4 (colored)

sync with head.

Revision 1.225.2.1 / (download) - annotate - [select for diffs], Tue Nov 13 15:58:02 2007 UTC (15 years, 2 months ago) by bouyer
Branch: bouyer-xenamd64
Changes since 1.225: +17 -32 lines
Diff to previous 1.225 (colored) next main 1.226 (colored)

Sync with HEAD

Revision 1.224.8.3 / (download) - annotate - [select for diffs], Sun Nov 11 16:46:21 2007 UTC (15 years, 3 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.224.8.2: +16 -31 lines
Diff to previous 1.224.8.2 (colored) to branchpoint 1.224 (colored) next main 1.225 (colored)

Sync with HEAD.

Revision 1.224.10.2 / (download) - annotate - [select for diffs], Thu Nov 8 10:59:31 2007 UTC (15 years, 3 months ago) by matt
Branch: matt-armv6
CVS Tags: matt-armv6-prevmlocking
Changes since 1.224.10.1: +16 -31 lines
Diff to previous 1.224.10.1 (colored) to branchpoint 1.224 (colored)

sync with -HEAD

Revision 1.228 / (download) - annotate - [select for diffs], Wed Nov 7 00:23:14 2007 UTC (15 years, 3 months ago) by ad
Branch: MAIN
CVS Tags: yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking-nbase, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, jmcneill-pm-base, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base
Branch point for: vmlocking2, bouyer-xeni386
Changes since 1.227: +16 -31 lines
Diff to previous 1.227 (colored)

Merge from vmlocking:

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

Revision 1.224.10.1 / (download) - annotate - [select for diffs], Tue Nov 6 23:13:46 2007 UTC (15 years, 3 months ago) by matt
Branch: matt-armv6
Changes since 1.224: +6 -6 lines
Diff to previous 1.224 (colored)

sync with HEAD

Revision 1.224.8.2 / (download) - annotate - [select for diffs], Sun Oct 28 20:10:30 2007 UTC (15 years, 3 months ago) by joerg
Branch: jmcneill-pm
Changes since 1.224.8.1: +3 -3 lines
Diff to previous 1.224.8.1 (colored) to branchpoint 1.224 (colored)

Sync with HEAD.

Revision 1.210.2.4 / (download) - annotate - [select for diffs], Sat Oct 27 11:24:58 2007 UTC (15 years, 3 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210.2.3: +6 -6 lines
Diff to previous 1.210.2.3 (colored)

sync with head.

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

Sync with HEAD.

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

Revision 1.227 / (download) - annotate - [select for diffs], Thu Oct 25 13:03:03 2007 UTC (15 years, 3 months ago) by yamt
Branch: MAIN
CVS Tags: jmcneill-base
Branch point for: mjf-devfs
Changes since 1.226: +3 -3 lines
Diff to previous 1.226 (colored)

defparam PAGER_MAP_SIZE.

Revision 1.220.2.5 / (download) - annotate - [select for diffs], Thu Oct 18 17:52:54 2007 UTC (15 years, 3 months ago) by ad
Branch: vmlocking
Changes since 1.220.2.4: +15 -19 lines
Diff to previous 1.220.2.4 (colored)

Use pool_cache / update for pool_cache changes.
XXX The locking needs re-doing.

Revision 1.226 / (download) - annotate - [select for diffs], Wed Oct 17 19:52:56 2007 UTC (15 years, 3 months ago) by garbled
Branch: MAIN
CVS Tags: yamt-x86pmap-base4
Changes since 1.225: +2 -2 lines
Diff to previous 1.225 (colored)

Merge the ppcoea-renovation branch to HEAD.

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

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

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

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

Sync with HEAD

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

sync with head.

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

Comment out references to spinlockmgr().

Revision 1.222.6.2 / (download) - annotate - [select for diffs], Wed Oct 3 19:21:57 2007 UTC (15 years, 4 months ago) by garbled
Branch: ppcoea-renovation
Changes since 1.222.6.1: +3 -3 lines
Diff to previous 1.222.6.1 (colored) to branchpoint 1.222 (colored)

Sync with HEAD

Revision 1.210.2.3 / (download) - annotate - [select for diffs], Mon Sep 3 14:22:18 2007 UTC (15 years, 5 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210.2.2: +21 -22 lines
Diff to previous 1.210.2.2 (colored)

sync with head.

Revision 1.220.2.4 / (download) - annotate - [select for diffs], Mon Aug 20 18:36:48 2007 UTC (15 years, 5 months ago) by ad
Branch: vmlocking
Changes since 1.220.2.3: +3 -3 lines
Diff to previous 1.220.2.3 (colored)

Sync with HEAD.

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

change pmap_phys_address()s parameter to paddr_t since that's what it gets
fed from mmap*() anyway
approved by gimpy

Revision 1.221.2.1 / (download) - annotate - [select for diffs], Wed Jul 11 19:57:23 2007 UTC (15 years, 7 months ago) by mjf
Branch: mjf-ufs-trans
Changes since 1.221: +11 -13 lines
Diff to previous 1.221 (colored) next main 1.222 (colored)

Sync with head.

Revision 1.220.2.3 / (download) - annotate - [select for diffs], Sun May 27 12:26:53 2007 UTC (15 years, 8 months ago) by ad
Branch: vmlocking
Changes since 1.220.2.2: +9 -12 lines
Diff to previous 1.220.2.2 (colored)

Sync with head.

Revision 1.222.6.1 / (download) - annotate - [select for diffs], Tue May 22 17:26:28 2007 UTC (15 years, 8 months ago) by matt
Branch: ppcoea-renovation
Changes since 1.222: +9 -12 lines
Diff to previous 1.222 (colored)

Update to HEAD.

Revision 1.223 / (download) - annotate - [select for diffs], Thu May 17 14:51:12 2007 UTC (15 years, 8 months ago) by yamt
Branch: MAIN
CVS Tags: mjf-ufs-trans-base
Changes since 1.222: +9 -12 lines
Diff to previous 1.222 (colored)

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

from doc/BRANCHES:

	idle lwp, and some changes depending on it.

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

Revision 1.215.14.5 / (download) - annotate - [select for diffs], Fri Apr 20 13:41:48 2007 UTC (15 years, 9 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.215.14.4: +4 -5 lines
Diff to previous 1.215.14.4 (colored) to branchpoint 1.215 (colored) next main 1.216 (colored)

update some comments.
XXX now pmap_activate is never called with sched_mutex held.
XXX what to do for PMAP_NO_LAZY_LEV1MAP?

Revision 1.222.4.1 / (download) - annotate - [select for diffs], Wed Apr 18 04:16:36 2007 UTC (15 years, 9 months ago) by thorpej
Branch: thorpej-atomic
Changes since 1.222: +9 -10 lines
Diff to previous 1.222 (colored) next main 1.223 (colored)

Convert to the new atomic op API.

Revision 1.220.2.2 / (download) - annotate - [select for diffs], Tue Apr 10 13:22:48 2007 UTC (15 years, 10 months ago) by ad
Branch: vmlocking
Changes since 1.220.2.1: +4 -3 lines
Diff to previous 1.220.2.1 (colored)

Sync with head.

Revision 1.215.14.4 / (download) - annotate - [select for diffs], Sat Mar 24 14:54:31 2007 UTC (15 years, 10 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.215.14.3: +7 -6 lines
Diff to previous 1.215.14.3 (colored) to branchpoint 1.215 (colored)

sync with head.

Revision 1.215.14.3 / (download) - annotate - [select for diffs], Tue Mar 20 12:07:12 2007 UTC (15 years, 10 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.215.14.2: +7 -9 lines
Diff to previous 1.215.14.2 (colored) to branchpoint 1.215 (colored)

adapt alpha.

Revision 1.222 / (download) - annotate - [select for diffs], Wed Mar 14 21:39:39 2007 UTC (15 years, 11 months ago) by he
Branch: MAIN
CVS Tags: yamt-idlelwp-base8, thorpej-atomic-base, reinoud-bufcleanup
Branch point for: thorpej-atomic, ppcoea-renovation
Changes since 1.221: +4 -3 lines
Diff to previous 1.221 (colored)

Absent documentation as to what the newly added 'ipl' argument to
pool_init() is supposed to do, and actual usage of that argument in
pool_init()'s implementation, add use of IPL_VM to the TLB shootdown
job queue pool initialization to get this building again.
Someone suggested an IPL_XXX_ASK_ANDY constant be introduced...

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

Sync with head.

Revision 1.221 / (download) - annotate - [select for diffs], Mon Mar 12 18:18:22 2007 UTC (15 years, 11 months ago) by ad
Branch: MAIN
Branch point for: mjf-ufs-trans
Changes since 1.220: +5 -5 lines
Diff to previous 1.220 (colored)

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

Revision 1.215.14.2 / (download) - annotate - [select for diffs], Mon Mar 12 05:45:51 2007 UTC (15 years, 11 months ago) by rmind
Branch: yamt-idlelwp
Changes since 1.215.14.1: +9 -8 lines
Diff to previous 1.215.14.1 (colored) to branchpoint 1.215 (colored)

Sync with HEAD.

Revision 1.220 / (download) - annotate - [select for diffs], Sun Mar 4 14:46:45 2007 UTC (15 years, 11 months ago) by yamt
Branch: MAIN
Branch point for: vmlocking
Changes since 1.219: +5 -4 lines
Diff to previous 1.219 (colored)

fix fallout from caddr_t changes.

Revision 1.219 / (download) - annotate - [select for diffs], Sun Mar 4 05:59:10 2007 UTC (15 years, 11 months ago) by christos
Branch: MAIN
Changes since 1.218: +6 -6 lines
Diff to previous 1.218 (colored)

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

Revision 1.218 / (download) - annotate - [select for diffs], Fri Mar 2 17:42:00 2007 UTC (15 years, 11 months ago) by yamt
Branch: MAIN
Changes since 1.217: +4 -4 lines
Diff to previous 1.217 (colored)

make this compilable.
(p_flag -> p_sflag, P_WEXIT -> PS_WEXIT)

Revision 1.215.14.1 / (download) - annotate - [select for diffs], Tue Feb 27 16:48:41 2007 UTC (15 years, 11 months ago) by yamt
Branch: yamt-idlelwp
Changes since 1.215: +83 -84 lines
Diff to previous 1.215 (colored)

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

Revision 1.210.2.2 / (download) - annotate - [select for diffs], Mon Feb 26 09:05:34 2007 UTC (15 years, 11 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210.2.1: +83 -84 lines
Diff to previous 1.210.2.1 (colored)

sync with head.

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

TRUE -> true, FALSE -> false

Revision 1.216 / (download) - annotate - [select for diffs], Wed Feb 21 22:59:36 2007 UTC (15 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.215: +39 -40 lines
Diff to previous 1.215 (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.213.8.3 / (download) - annotate - [select for diffs], Fri Sep 15 13:12:37 2006 UTC (16 years, 4 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.213.8.2: +0 -11 lines
Diff to previous 1.213.8.2 (colored) to branchpoint 1.213 (colored) next main 1.214 (colored)

pmap_emulate_reference: revert unrelated debug code which has been
slipped in with rev.1.213.8.2.

Revision 1.213.4.1 / (download) - annotate - [select for diffs], Sat Sep 9 02:36:55 2006 UTC (16 years, 5 months ago) by rpaulo
Branch: rpaulo-netinet-merge-pcb
Changes since 1.213: +86 -86 lines
Diff to previous 1.213 (colored) next main 1.214 (colored)

sync with head

Revision 1.210.2.1 / (download) - annotate - [select for diffs], Wed Jun 21 14:48:01 2006 UTC (16 years, 7 months ago) by yamt
Branch: yamt-lazymbuf
Changes since 1.210: +155 -103 lines
Diff to previous 1.210 (colored)

sync with head.

Revision 1.213.12.1 / (download) - annotate - [select for diffs], Wed May 24 15:47:49 2006 UTC (16 years, 8 months ago) by tron
Branch: peter-altq
Changes since 1.213: +86 -86 lines
Diff to previous 1.213 (colored) next main 1.214 (colored)

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

Revision 1.213.8.2 / (download) - annotate - [select for diffs], Wed May 24 10:56:33 2006 UTC (16 years, 8 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.213.8.1: +13 -2 lines
Diff to previous 1.213.8.1 (colored) to branchpoint 1.213 (colored)

sync with head.

Revision 1.215 / (download) - annotate - [select for diffs], Sun May 14 21:55:09 2006 UTC (16 years, 9 months ago) by elad
Branch: MAIN
CVS Tags: yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-splraiseipl-base2, yamt-splraiseipl-base, yamt-splraiseipl, yamt-pdpolicy-base9, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, simonb-timecounters-base, rpaulo-netinet-merge-pcb-base, post-newlock2-merge, newlock2-nbase, newlock2-base, newlock2, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, matt-nb4-arm-base, matt-nb4-arm, gdamore-uart-base, gdamore-uart, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-idlelwp
Changes since 1.214: +2 -2 lines
Diff to previous 1.214 (colored)

integrate kauth.

Revision 1.213.6.1 / (download) - annotate - [select for diffs], Sat Apr 22 11:37:11 2006 UTC (16 years, 9 months ago) by simonb
Branch: simonb-timecounters
CVS Tags: simonb-timcounters-final
Changes since 1.213: +86 -86 lines
Diff to previous 1.213 (colored) next main 1.214 (colored)

Sync with head.

Revision 1.213.10.1 / (download) - annotate - [select for diffs], Wed Apr 19 02:31:57 2006 UTC (16 years, 9 months ago) by elad
Branch: elad-kernelauth
Changes since 1.213: +86 -86 lines
Diff to previous 1.213 (colored) next main 1.214 (colored)

sync with head - hopefully this will work

Revision 1.213.8.1 / (download) - annotate - [select for diffs], Tue Apr 11 11:53:25 2006 UTC (16 years, 10 months ago) by yamt
Branch: yamt-pdpolicy
Changes since 1.213: +86 -86 lines
Diff to previous 1.213 (colored)

sync with head

Revision 1.214 / (download) - annotate - [select for diffs], Sun Apr 2 03:41:32 2006 UTC (16 years, 10 months ago) by thorpej
Branch: MAIN
CVS Tags: yamt-pdpolicy-base4, elad-kernelauth-base
Changes since 1.213: +86 -86 lines
Diff to previous 1.213 (colored)

Static'ify.

Revision 1.213 / (download) - annotate - [select for diffs], Sat Dec 24 20:06:46 2005 UTC (17 years, 1 month ago) by perry
Branch: MAIN
CVS Tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, peter-altq-base
Branch point for: yamt-pdpolicy, simonb-timecounters, rpaulo-netinet-merge-pcb, peter-altq, elad-kernelauth
Changes since 1.212: +3 -3 lines
Diff to previous 1.212 (colored)

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

Revision 1.212 / (download) - annotate - [select for diffs], Sun Dec 11 12:16:10 2005 UTC (17 years, 2 months ago) by christos
Branch: MAIN
Changes since 1.211: +2 -2 lines
Diff to previous 1.211 (colored)

merge ktrace-lwp.

Revision 1.200.2.5 / (download) - annotate - [select for diffs], Thu Nov 10 13:48:21 2005 UTC (17 years, 3 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.200.2.4: +76 -24 lines
Diff to previous 1.200.2.4 (colored) next main 1.201 (colored)

Sync with HEAD. Here we go again...

Revision 1.207.2.1 / (download) - annotate - [select for diffs], Sun Aug 7 15:08:16 2005 UTC (17 years, 6 months ago) by riz
Branch: netbsd-2-0
CVS Tags: netbsd-2-0-3-RELEASE
Changes since 1.207: +70 -18 lines
Diff to previous 1.207 (colored) next main 1.208 (colored)

Pull up revision 1.211 (requested by thorpej in ticket #5528):
1. Disable the lazy allocation of lev1map in pmap_enter(), instead
doing
it in pmap_create(), and freeing the lev1map in pmap_destroy().
This
means that pm_lev1map is consistent for the life of the pmap.
2. pmap_extract() now uses vtophys() for the kernel pmap.  This avoids
having to lock the kernel pmap, since kernel PT pages are never
freed.
3. Because of (1), pmap_asn_alloc() no longer needs to operate on a
locked
pmap; pm_lev1map will never change over the life of the pmap,
and all
other access to the pmap is done in per-CPU fields or with atomic
operations.
4. Because of (3), pmap_activate() no longer needs to lock the pmap
to do its work, thus eliminating the deadlock with sched_lock
described
in PR port-alpha/25599.  This is safe because we are guaranteed
that
the pmap is still alive, since by definition an LWP that uses
that it
is about to run.
Thanks to Michael Hitch for the analysis, and Michael and Ragge for
testing.

Revision 1.207.6.1 / (download) - annotate - [select for diffs], Sun Aug 7 15:07:04 2005 UTC (17 years, 6 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.207: +70 -18 lines
Diff to previous 1.207 (colored) next main 1.208 (colored)

Pull up revision 1.211 (requested by thorpej in ticket #5528):
1. Disable the lazy allocation of lev1map in pmap_enter(), instead
doing
it in pmap_create(), and freeing the lev1map in pmap_destroy().
This
means that pm_lev1map is consistent for the life of the pmap.
2. pmap_extract() now uses vtophys() for the kernel pmap.  This avoids
having to lock the kernel pmap, since kernel PT pages are never
freed.
3. Because of (1), pmap_asn_alloc() no longer needs to operate on a
locked
pmap; pm_lev1map will never change over the life of the pmap,
and all
other access to the pmap is done in per-CPU fields or with atomic
operations.
4. Because of (3), pmap_activate() no longer needs to lock the pmap
to do its work, thus eliminating the deadlock with sched_lock
described
in PR port-alpha/25599.  This is safe because we are guaranteed
that
the pmap is still alive, since by definition an LWP that uses
that it
is about to run.
Thanks to Michael Hitch for the analysis, and Michael and Ragge for
testing.

Revision 1.208.8.1 / (download) - annotate - [select for diffs], Sat Jul 30 17:43:39 2005 UTC (17 years, 6 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.208: +70 -18 lines
Diff to previous 1.208 (colored) next main 1.209 (colored)

Pull up revision 1.211 (requested by thorpej in ticket #626):
1. Disable the lazy allocation of lev1map in pmap_enter(), instead doing
   it in pmap_create(), and freeing the lev1map in pmap_destroy().  This
   means that pm_lev1map is consistent for the life of the pmap.
2. pmap_extract() now uses vtophys() for the kernel pmap.  This avoids
   having to lock the kernel pmap, since kernel PT pages are never freed.
3. Because of (1), pmap_asn_alloc() no longer needs to operate on a locked
   pmap; pm_lev1map will never change over the life of the pmap, and all
   other access to the pmap is done in per-CPU fields or with atomic
   operations.
4. Because of (3), pmap_activate() no longer needs to lock the pmap
   to do its work, thus eliminating the deadlock with sched_lock described
   in PR port-alpha/25599.  This is safe because we are guaranteed that
   the pmap is still alive, since by definition an LWP that uses that it
   is about to run.
Thanks to Michael Hitch for the analysis, and Michael and Ragge for
testing.

Revision 1.211 / (download) - annotate - [select for diffs], Tue Jul 26 04:11:53 2005 UTC (17 years, 6 months ago) by thorpej
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, ktrace-lwp-base
Changes since 1.210: +70 -18 lines
Diff to previous 1.210 (colored)

1. Disable the lazy allocation of lev1map in pmap_enter(), instead doing
   it in pmap_create(), and freeing the lev1map in pmap_destroy().  This
   means that pm_lev1map is consistent for the life of the pmap.
2. pmap_extract() now uses vtophys() for the kernel pmap.  This avoids
   having to lock the kernel pmap, since kernel PT pages are never freed.
3. Because of (1), pmap_asn_alloc() no longer needs to operate on a locked
   pmap; pm_lev1map will never change over the life of the pmap, and all
   other access to the pmap is done in per-CPU fields or with atomic
   operations.
4. Because of (3), pmap_activate() no longer needs to lock the pmap
   to do its work, thus eliminating the deadlock with sched_lock described
   in PR port-alpha/25599.  This is safe because we are guaranteed that
   the pmap is still alive, since by definition an LWP that uses that it
   is about to run.

Thanks to Michael Hitch for the analysis, and Michael and Ragge for testing.

Revision 1.210 / (download) - annotate - [select for diffs], Wed Jun 1 16:09:45 2005 UTC (17 years, 8 months ago) by drochner
Branch: MAIN
Branch point for: yamt-lazymbuf
Changes since 1.209: +7 -7 lines
Diff to previous 1.209 (colored)

fix typos in comments

Revision 1.209 / (download) - annotate - [select for diffs], Sun May 22 15:54:45 2005 UTC (17 years, 8 months ago) by christos
Branch: MAIN
Changes since 1.208: +3 -3 lines
Diff to previous 1.208 (colored)

No 0x in front of %p...

Revision 1.200.2.4 / (download) - annotate - [select for diffs], Mon Jan 17 19:29:11 2005 UTC (18 years ago) by skrll
Branch: ktrace-lwp
Changes since 1.200.2.3: +2 -9 lines
Diff to previous 1.200.2.3 (colored)

Sync with HEAD.

Revision 1.208 / (download) - annotate - [select for diffs], Sat Dec 25 06:35:30 2004 UTC (18 years, 1 month ago) by yamt
Branch: MAIN
CVS Tags: yamt-km-base4, yamt-km-base3, yamt-km-base2, yamt-km-base, yamt-km, netbsd-3-base, kent-audio2-base, kent-audio2, kent-audio1-beforemerge
Branch point for: netbsd-3
Changes since 1.207: +2 -9 lines
Diff to previous 1.207 (colored)

enable debug code in pmap_emulate_reference.  ok'ed by Jason Thorpe.

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

Fix the sync with head I botched.

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

Sync with HEAD.

Revision 1.200.2.1 / (download) - annotate - [select for diffs], Tue Aug 3 10:31:04 2004 UTC (18 years, 6 months ago) by skrll
Branch: ktrace-lwp
Changes since 1.200: +68 -65 lines
Diff to previous 1.200 (colored)

Sync with HEAD

Revision 1.207 / (download) - annotate - [select for diffs], Tue Jan 13 18:50:40 2004 UTC (19 years, 1 month ago) by nathanw
Branch: MAIN
CVS Tags: netbsd-2-base, netbsd-2-0-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE, kent-audio1-base, kent-audio1
Branch point for: netbsd-2-0, netbsd-2
Changes since 1.206: +3 -2 lines
Diff to previous 1.206 (colored)

Adjust the DEBUG check in PMAP_ISACTIVE() to special-case process
exit, since the invariant it checks no longer holds there after the
recent reaper changes.

Revision 1.206 / (download) - annotate - [select for diffs], Tue Dec 30 12:33:14 2003 UTC (19 years, 1 month ago) by pk
Branch: MAIN
Changes since 1.205: +11 -4 lines
Diff to previous 1.205 (colored)

Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.

Revision 1.205 / (download) - annotate - [select for diffs], Wed Oct 29 04:48:40 2003 UTC (19 years, 3 months ago) by mycroft
Branch: MAIN
Changes since 1.204: +12 -12 lines
Diff to previous 1.204 (colored)

Remove bogus initializers.

Revision 1.204 / (download) - annotate - [select for diffs], Mon Oct 27 07:07:35 2003 UTC (19 years, 3 months ago) by chs
Branch: MAIN
Changes since 1.203: +4 -3 lines
Diff to previous 1.203 (colored)

uninitialized variables

Revision 1.203 / (download) - annotate - [select for diffs], Sun Aug 24 17:52:28 2003 UTC (19 years, 5 months ago) by chs
Branch: MAIN
Changes since 1.202: +45 -49 lines
Diff to previous 1.202 (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.202 / (download) - annotate - [select for diffs], Thu Aug 7 16:26:32 2003 UTC (19 years, 6 months ago) by agc
Branch: MAIN
Changes since 1.201: +3 -7 lines
Diff to previous 1.201 (colored)

Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.

Revision 1.201 / (download) - annotate - [select for diffs], Sat Aug 2 19:10:05 2003 UTC (19 years, 6 months ago) by matt
Branch: MAIN
Changes since 1.200: +5 -3 lines
Diff to previous 1.200 (colored)

Make this compile with gcc3.  Change kernel_pmap_store to array of struct
pmap instead of array u_long.  A bit of space is wasted but it supresses
the -Wcast-align warning.

Revision 1.200 / (download) - annotate - [select for diffs], Sat May 10 21:10:26 2003 UTC (19 years, 9 months ago) by thorpej
Branch: MAIN
Branch point for: ktrace-lwp
Changes since 1.199: +29 -20 lines
Diff to previous 1.199 (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.199 / (download) - annotate - [select for diffs], Fri May 9 05:33:53 2003 UTC (19 years, 9 months ago) by enami
Branch: MAIN
Changes since 1.198: +4 -4 lines
Diff to previous 1.198 (colored)

- Adjust arguments to pmap_steal_memory() for new interface.
- We no longer able to use uvm_pageboot_alloc() before pmap_bootstrap()
  is called.  Use pmap_steal_memory() directly instead.

Approved by Jason R. Thorpe.

Revision 1.198 / (download) - annotate - [select for diffs], Thu May 8 18:13:12 2003 UTC (19 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.197: +18 -27 lines
Diff to previous 1.197 (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.197 / (download) - annotate - [select for diffs], Tue Apr 1 02:18:52 2003 UTC (19 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.196: +5 -9 lines
Diff to previous 1.196 (colored)

Use PAGE_SIZE rather than NBPG.

Revision 1.196 / (download) - annotate - [select for diffs], Sun Feb 23 22:41:24 2003 UTC (19 years, 11 months ago) by nathanw
Branch: MAIN
Changes since 1.195: +6 -6 lines
Diff to previous 1.195 (colored)

In pmap_physpage_alloc() and pmap_physpage_free(): only the DIAGNOSTIC
check is inside the simple_lock()/simple_unlock() pair, so move the locks
inside the #ifdef as well.

Additionally, change the #ifdef from DIAGNOSTIC to DEBUG; the condition
is too weird to be worth checking at DIAGNOSTIC, according ot Jason.

Revision 1.195 / (download) - annotate - [select for diffs], Fri Jan 17 22:11:18 2003 UTC (20 years ago) by thorpej
Branch: MAIN
Changes since 1.194: +30 -30 lines
Diff to previous 1.194 (colored)

Merge the nathanw_sa branch.

Revision 1.191.8.1 / (download) - annotate - [select for diffs], Sun Nov 24 15:38:39 2002 UTC (20 years, 2 months ago) by tron
Branch: netbsd-1-6
CVS Tags: netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001
Changes since 1.191: +4 -2 lines
Diff to previous 1.191 (colored) next main 1.192 (colored)

Pull up revision 1.192 (requested by mhitch in ticket #722):
Add missing PMAP_TLB_SHOOTDOWN() after PMAP_INVALIDATE_TLB() in
pmap_page_protect().  Closes NetBSD Problem Report #18045.

Revision 1.186.2.11 / (download) - annotate - [select for diffs], Fri Oct 18 02:34:04 2002 UTC (20 years, 3 months ago) by nathanw
Branch: nathanw_sa
CVS Tags: nathanw_sa_end
Changes since 1.186.2.10: +3 -10 lines
Diff to previous 1.186.2.10 (colored) next main 1.187 (colored)

Catch up to -current.

Revision 1.194 / (download) - annotate - [select for diffs], Mon Oct 14 05:11:21 2002 UTC (20 years, 4 months ago) by chs
Branch: MAIN
CVS Tags: nathanw_sa_before_merge, nathanw_sa_base, kqueue-beforemerge, kqueue-aftermerge, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, fvdl_fs64_base
Changes since 1.193: +3 -3 lines
Diff to previous 1.193 (colored)

eliminate PT_ENTRY_NULL in favor of plain old NULL.

Revision 1.180.2.7 / (download) - annotate - [select for diffs], Thu Oct 10 18:30:54 2002 UTC (20 years, 4 months ago) by jdolecek
Branch: kqueue
Changes since 1.180.2.6: +2 -9 lines
Diff to previous 1.180.2.6 (colored) next main 1.181 (colored)

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

Revision 1.193 / (download) - annotate - [select for diffs], Tue Sep 24 13:30:39 2002 UTC (20 years, 4 months ago) by ad
Branch: MAIN
CVS Tags: kqueue-base
Changes since 1.192: +2 -9 lines
Diff to previous 1.192 (colored)

Remove the TCWSCONS config now that zstty can do flow control on IOASIC
machines.

Revision 1.180.2.6 / (download) - annotate - [select for diffs], Fri Sep 6 08:31:25 2002 UTC (20 years, 5 months ago) by jdolecek
Branch: kqueue
Changes since 1.180.2.5: +4 -2 lines
Diff to previous 1.180.2.5 (colored)

sync kqueue branch with HEAD

Revision 1.191.6.1 / (download) - annotate - [select for diffs], Fri Aug 30 00:18:48 2002 UTC (20 years, 5 months ago) by gehenna
Branch: gehenna-devsw
Changes since 1.191: +4 -2 lines
Diff to previous 1.191 (colored) next main 1.192 (colored)

catch up with -current.

Revision 1.186.2.10 / (download) - annotate - [select for diffs], Tue Aug 27 23:44:21 2002 UTC (20 years, 5 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.9: +4 -2 lines
Diff to previous 1.186.2.9 (colored)

Catch up to -current.

Revision 1.192 / (download) - annotate - [select for diffs], Sat Aug 24 03:10:52 2002 UTC (20 years, 5 months ago) by mhitch
Branch: MAIN
CVS Tags: gehenna-devsw-base
Changes since 1.191: +4 -2 lines
Diff to previous 1.191 (colored)

Add missing PMAP_TLB_SHOOTDOWN() after PMAP_INVALIDATE_TLB() in
pmap_page_protect().  Closes NetBSD Problem Report #18045.

Revision 1.186.2.9 / (download) - annotate - [select for diffs], Fri Jul 12 01:39:21 2002 UTC (20 years, 7 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.8: +2 -3 lines
Diff to previous 1.186.2.8 (colored)

No longer need to pull in lwp.h; proc.h pulls it in for us.

Revision 1.186.2.8 / (download) - annotate - [select for diffs], Mon Jun 24 22:03:14 2002 UTC (20 years, 7 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.7: +10 -10 lines
Diff to previous 1.186.2.7 (colored)

Curproc->curlwp renaming.

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

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

Revision 1.186.2.7 / (download) - annotate - [select for diffs], Mon Apr 1 07:38:50 2002 UTC (20 years, 10 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.6: +23 -15 lines
Diff to previous 1.186.2.6 (colored)

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

Revision 1.180.2.5 / (download) - annotate - [select for diffs], Sat Mar 16 15:55:37 2002 UTC (20 years, 10 months ago) by jdolecek
Branch: kqueue
Changes since 1.180.2.4: +23 -15 lines
Diff to previous 1.180.2.4 (colored)

Catch up with -current.

Revision 1.191 / (download) - annotate - [select for diffs], Fri Mar 8 20:48:28 2002 UTC (20 years, 11 months ago) by thorpej
Branch: MAIN
CVS Tags: newlock-base, newlock, netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, eeh-devprop-base, eeh-devprop
Branch point for: netbsd-1-6, gehenna-devsw
Changes since 1.190: +23 -15 lines
Diff to previous 1.190 (colored)

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

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

From art@openbsd.org.

Revision 1.186.2.6 / (download) - annotate - [select for diffs], Thu Feb 28 04:06:09 2002 UTC (20 years, 11 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.5: +2 -2 lines
Diff to previous 1.186.2.5 (colored)

Catch up to -current.

Revision 1.186.2.5 / (download) - annotate - [select for diffs], Fri Jan 11 23:37:55 2002 UTC (21 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.4: +2 -12 lines
Diff to previous 1.186.2.4 (colored)

More catchup.

Revision 1.180.2.4 / (download) - annotate - [select for diffs], Thu Jan 10 19:36:59 2002 UTC (21 years, 1 month ago) by thorpej
Branch: kqueue
Changes since 1.180.2.3: +8 -24 lines
Diff to previous 1.180.2.3 (colored)

Sync kqueue branch with -current.

Revision 1.186.2.4 / (download) - annotate - [select for diffs], Tue Jan 8 00:22:51 2002 UTC (21 years, 1 month ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.3: +8 -10 lines
Diff to previous 1.186.2.3 (colored)

Catch up to -current.

Revision 1.190 / (download) - annotate - [select for diffs], Thu Jan 3 22:43:05 2002 UTC (21 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: ifpoll-base
Changes since 1.189: +2 -12 lines
Diff to previous 1.189 (colored)

Remove a debug message that should have gone away with the last
commit.

Revision 1.189 / (download) - annotate - [select for diffs], Wed Jan 2 00:51:33 2002 UTC (21 years, 1 month ago) by chs
Branch: MAIN
Changes since 1.188: +8 -10 lines
Diff to previous 1.188 (colored)

pmap_page_protect(VM_PROT_NONE) must remove all mappings in the PV list,
even if they are wired.  we need to be able to remove all mappings to
pages that are being freed due to (eg.) file truncation.

Revision 1.187.2.1 / (download) - annotate - [select for diffs], Mon Oct 1 12:36:55 2001 UTC (21 years, 4 months ago) by fvdl
Branch: thorpej-devvp
Changes since 1.187: +2 -6 lines
Diff to previous 1.187 (colored) next main 1.188 (colored)

Catch up with -current.

Revision 1.186.2.3 / (download) - annotate - [select for diffs], Fri Sep 21 22:34:54 2001 UTC (21 years, 4 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.2: +3 -7 lines
Diff to previous 1.186.2.2 (colored)

Catch up to -current.

Revision 1.188 / (download) - annotate - [select for diffs], Sat Sep 15 20:36:32 2001 UTC (21 years, 4 months ago) by chs
Branch: MAIN
CVS Tags: thorpej-mips-cache-base, thorpej-mips-cache, thorpej-devvp-base3, thorpej-devvp-base2, post-chs-ubcperf
Changes since 1.187: +2 -6 lines
Diff to previous 1.187 (colored)

a whole bunch of changes to improve performance and robustness under load:

 - remove special treatment of pager_map mappings in pmaps.  this is
   required now, since I've removed the globals that expose the address range.
   pager_map now uses pmap_kenter_pa() instead of pmap_enter(), so there's
   no longer any need to special-case it.
 - eliminate struct uvm_vnode by moving its fields into struct vnode.
 - rewrite the pageout path.  the pager is now responsible for handling the
   high-level requests instead of only getting control after a bunch of work
   has already been done on its behalf.  this will allow us to UBCify LFS,
   which needs tighter control over its pages than other filesystems do.
   writing a page to disk no longer requires making it read-only, which
   allows us to write wired pages without causing all kinds of havoc.
 - use a new PG_PAGEOUT flag to indicate that a page should be freed
   on behalf of the pagedaemon when it's unlocked.  this flag is very similar
   to PG_RELEASED, but unlike PG_RELEASED, PG_PAGEOUT can be cleared if the
   pageout fails due to eg. an indirect-block buffer being locked.
   this allows us to remove the "version" field from struct vm_page,
   and together with shrinking "loan_count" from 32 bits to 16,
   struct vm_page is now 4 bytes smaller.
 - no longer use PG_RELEASED for swap-backed pages.  if the page is busy
   because it's being paged out, we can't release the swap slot to be
   reallocated until that write is complete, but unlike with vnodes we
   don't keep a count of in-progress writes so there's no good way to
   know when the write is done.  instead, when we need to free a busy
   swap-backed page, just sleep until we can get it busy ourselves.
 - implement a fast-path for extending writes which allows us to avoid
   zeroing new pages.  this substantially reduces cpu usage.
 - encapsulate the data used by the genfs code in a struct genfs_node,
   which must be the first element of the filesystem-specific vnode data
   for filesystems which use genfs_{get,put}pages().
 - eliminate many of the UVM pagerops, since they aren't needed anymore
   now that the pager "put" operation is a higher-level operation.
 - enhance the genfs code to allow NFS to use the genfs_{get,put}pages
   instead of a modified copy.
 - clean up struct vnode by removing all the fields that used to be used by
   the vfs_cluster.c code (which we don't use anymore with UBC).
 - remove kmem_object and mb_object since they were useless.
   instead of allocating pages to these objects, we now just allocate
   pages with no object.  such pages are mapped in the kernel until they
   are freed, so we can use the mapping to find the page to free it.
   this allows us to remove splvm() protection in several places.

The sum of all these changes improves write throughput on my
decstation 5000/200 to within 1% of the rate of NetBSD 1.5
and reduces the elapsed time for "make release" of a NetBSD 1.5
source tree on my 128MB pc to 10% less than a 1.5 kernel took.

Revision 1.180.2.3 / (download) - annotate - [select for diffs], Thu Sep 13 01:12:53 2001 UTC (21 years, 5 months ago) by thorpej
Branch: kqueue
Changes since 1.180.2.2: +3 -3 lines
Diff to previous 1.180.2.2 (colored)

Update the kqueue branch to HEAD.

Revision 1.187 / (download) - annotate - [select for diffs], Fri Aug 31 04:44:54 2001 UTC (21 years, 5 months ago) by simonb
Branch: MAIN
CVS Tags: thorpej-devvp-base, pre-chs-ubcperf
Branch point for: thorpej-devvp
Changes since 1.186: +3 -3 lines
Diff to previous 1.186 (colored)

Use comments around the token after a #endif.

Revision 1.186.2.2 / (download) - annotate - [select for diffs], Thu Aug 30 23:43:41 2001 UTC (21 years, 5 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186.2.1: +3939 -0 lines
Diff to previous 1.186.2.1 (colored)

First cut at LWP and SA support on the alpha.
Doesn't break in ordinary multiuser mode; LWPs and SAs not yet tested.

Revision 1.180.2.2 / (download) - annotate - [select for diffs], Sat Aug 25 06:15:00 2001 UTC (21 years, 5 months ago) by thorpej
Branch: kqueue
Changes since 1.180.2.1: +5 -7 lines
Diff to previous 1.180.2.1 (colored)

Merge Aug 24 -current into the kqueue branch.

Revision 1.186.2.1, Mon Aug 13 01:12:15 2001 UTC (21 years, 6 months ago) by nathanw
Branch: nathanw_sa
Changes since 1.186: +0 -3938 lines
FILE REMOVED

file pmap.c was added on branch nathanw_sa on 2001-08-30 23:43:41 +0000

Revision 1.186 / (download) - annotate - [select for diffs], Mon Aug 13 01:12:15 2001 UTC (21 years, 6 months ago) by chs
Branch: MAIN
Branch point for: nathanw_sa
Changes since 1.185: +5 -7 lines
Diff to previous 1.185 (colored)

add an unlock missing from previous revision.

Revision 1.180.2.1 / (download) - annotate - [select for diffs], Fri Aug 3 04:10:40 2001 UTC (21 years, 6 months ago) by lukem
Branch: kqueue
Changes since 1.180: +131 -89 lines
Diff to previous 1.180 (colored)

update to -current

Revision 1.185 / (download) - annotate - [select for diffs], Mon Jul 16 21:37:21 2001 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.184: +22 -12 lines
Diff to previous 1.184 (colored)

Don't use pmap_changebit() in pmap_protect(), and remove the
pager mapping check from pmap_changebit().

Revision 1.184 / (download) - annotate - [select for diffs], Mon Jul 16 19:48:03 2001 UTC (21 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.183: +2 -27 lines
Diff to previous 1.183 (colored)

Remove I-sync stuff from pmap_changebit().  The AARM says that we
only have to sync the I-stream when the mapping is removed or chaged,
and since the I-stream is fetch-only, changing protection bits does
not constitute changing the mapping (the VA->PA translation is still
the same).

Revision 1.183 / (download) - annotate - [select for diffs], Sun Jul 15 21:57:01 2001 UTC (21 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.182: +33 -3 lines
Diff to previous 1.182 (colored)

Defer sending shootdown IPIs a bit longer.  Reduces traffic a fair
bit more.

Revision 1.182 / (download) - annotate - [select for diffs], Sun Jul 15 16:42:18 2001 UTC (21 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.181: +77 -39 lines
Diff to previous 1.181 (colored)

- Tweak the pmap locking protocol slightly -- require that a pmap must
  be locked before it can be marked as `active' on a processor.
- Require that pmaps other than the kernel pmap be locked when they
  are passed to pmap_tlb_shootdown().  This, combined with the locking
  protocol tweak, allow us to get a consistent view of `activeness' of
  a pmap, which means we can optmize away a lot of TLB shootdown traffic
  for user pmaps.
- Borrow an idea from the i386mp branch; use the normal SHOOTDOWN IPI
  to deal with hitting the entire TLB, and garbage-collect the TBIA
  and TBIAP IPIs.

Revision 1.181 / (download) - annotate - [select for diffs], Sun Jul 15 05:24:20 2001 UTC (21 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.180: +6 -17 lines
Diff to previous 1.180 (colored)

UVM never passes us a NULL pmap argument; remove that Mach VM leftover.

Revision 1.156.2.2 / (download) - annotate - [select for diffs], Thu Jun 21 18:12:56 2001 UTC (21 years, 7 months ago) by nathanw
Changes since 1.156.2.1: +365 -757 lines
Diff to previous 1.156.2.1 (colored) next main 1.157 (colored)

Catch up to -current.

Revision 1.180 / (download) - annotate - [select for diffs], Sat May 26 21:27:02 2001 UTC (21 years, 8 months ago) by chs
Branch: MAIN
Branch point for: kqueue
Changes since 1.179: +18 -17 lines
Diff to previous 1.179 (colored)

replace vm_page_t with struct vm_page *.

Revision 1.179 / (download) - annotate - [select for diffs], Sat May 5 18:22:04 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.178: +45 -12 lines
Diff to previous 1.178 (colored)

Fix a deadlock cause by a lock ordering interaction between pmap_enter()
and pmap_growkernel().

Revision 1.178 / (download) - annotate - [select for diffs], Tue May 1 05:53:29 2001 UTC (21 years, 9 months ago) by ross
Branch: MAIN
Changes since 1.177: +9 -8 lines
Diff to previous 1.177 (colored)

Fix lock problems with error flow reorg.

Revision 1.177 / (download) - annotate - [select for diffs], Tue May 1 05:33:12 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.176: +4 -27 lines
Diff to previous 1.176 (colored)

Delete the pmap_copy() calls.

Revision 1.176 / (download) - annotate - [select for diffs], Tue May 1 02:53:05 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.175: +15 -16 lines
Diff to previous 1.175 (colored)

Use a single linked list for PV entries.  This saves 1MB of space
on my 1G RAM AlphaServer.

Revision 1.175 / (download) - annotate - [select for diffs], Tue May 1 02:19:13 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.174: +45 -45 lines
Diff to previous 1.174 (colored)

Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.

Revision 1.174 / (download) - annotate - [select for diffs], Mon Apr 30 19:00:41 2001 UTC (21 years, 9 months ago) by ross
Branch: MAIN
Changes since 1.173: +6 -4 lines
Diff to previous 1.173 (colored)

apply recent changes to DEBUG code

Revision 1.173 / (download) - annotate - [select for diffs], Sun Apr 29 22:44:31 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.172: +85 -221 lines
Diff to previous 1.172 (colored)

Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.

Revision 1.172 / (download) - annotate - [select for diffs], Sun Apr 29 06:54:04 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.171: +29 -2 lines
Diff to previous 1.171 (colored)

Add glue for page zero'ing in the idle loop.

Revision 1.171 / (download) - annotate - [select for diffs], Tue Apr 24 20:53:43 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_beforemerge
Changes since 1.170: +34 -348 lines
Diff to previous 1.170 (colored)

Remove the PTP and PV entry stealing code.  Now that the pmap
module can fail gracefully, it serves little purpose, and the
code is a bit complicated and adds overhead to the context
switching code.

Revision 1.170 / (download) - annotate - [select for diffs], Tue Apr 24 20:14:45 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.169: +4 -16 lines
Diff to previous 1.169 (colored)

Delete a couple of statistics that are not really worth keeping.

Revision 1.169 / (download) - annotate - [select for diffs], Tue Apr 24 20:11:53 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.168: +48 -59 lines
Diff to previous 1.168 (colored)

Gather ASN info into a single structure, and place a variable-length
array of those structures at the end of the pmap structure.  We compute
the size of the pmap structure based on the maximum CPU ID for a
particular machine.  This gives us better cache behavior and better
memory footprint for the ASN info.

Revision 1.168 / (download) - annotate - [select for diffs], Mon Apr 23 15:42:29 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.167: +22 -24 lines
Diff to previous 1.167 (colored)

The Alpha pmap_virtual_space() can return compile-time constants,
so do so.  This allows us to call uvm_pageboot_alloc() before
pmap_bootstrap().

Also, the virtual_start variable is unneeded in the Alpha pmap
module, and virtual_end (and the mostly-unused-except-by-bus_dma
variables avail_start and avail_end) can be `computed' at the
same time.

Revision 1.167 / (download) - annotate - [select for diffs], Mon Apr 23 15:26:08 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.166: +6 -8 lines
Diff to previous 1.166 (colored)

Panic if all mappings are not removed from a pmap when its
reference count drops to 0.

Revision 1.111.2.9 / (download) - annotate - [select for diffs], Mon Apr 23 09:41:28 2001 UTC (21 years, 9 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.8: +97 -52 lines
Diff to previous 1.111.2.8 (colored) next main 1.112 (colored)

Sync with HEAD.

Revision 1.166 / (download) - annotate - [select for diffs], Sun Apr 22 23:42:12 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej_scsipi_nbase, thorpej_scsipi_base
Changes since 1.165: +4 -30 lines
Diff to previous 1.165 (colored)

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

Revision 1.165 / (download) - annotate - [select for diffs], Sun Apr 22 23:19:31 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.164: +4 -4 lines
Diff to previous 1.164 (colored)

Undo a misguided previous change to the pmap_update() API.

Revision 1.164 / (download) - annotate - [select for diffs], Sun Apr 22 18:21:48 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.163: +6 -7 lines
Diff to previous 1.163 (colored)

Use uvm_pageboot_alloc() for early memory allocation, rather than
calling pmap_steal_memory() directly.  On these platforms, since
uvm_pageboot_alloc() is a wrapper around pmap_steal_memory(), there
is no functional change.  This is merely for API consistency.

Revision 1.163 / (download) - annotate - [select for diffs], Sun Apr 22 17:22:57 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.162: +18 -11 lines
Diff to previous 1.162 (colored)

Make pmap_virtual_space() a required pmap function, even on platforms
which have pmap_steal_memory().  This is to reduce the API differences
between pmaps that implement pmap_steal_memory() and pmaps which do
not.

Note that pmap_steal_memory() needs to adjust *vstartp and/or
*vendp only if it used addresses within the range provided to UVM
via the pmap_virtual_space() call.  I.e. it is not necessary to do
so in any current pmap_steal_memory() implementation.

Revision 1.162 / (download) - annotate - [select for diffs], Sun Apr 22 00:34:04 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.161: +4 -4 lines
Diff to previous 1.161 (colored)

Give pmap_update() an argument (a pmap_t) so that it knows which
pmap it should be updating.

Revision 1.161 / (download) - annotate - [select for diffs], Sat Apr 21 23:51:14 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.160: +4 -2 lines
Diff to previous 1.160 (colored)

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

Revision 1.160 / (download) - annotate - [select for diffs], Sat Apr 21 16:27:10 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.159: +10 -8 lines
Diff to previous 1.159 (colored)

Adjust the way the cpu_info[] array works (array of pointers
rather than array of structures).  Keep a list of active
CPUs and define a CPU_INFO_FOREACH to traverse them.

This fixes cpustates statistics tracking.

Revision 1.159 / (download) - annotate - [select for diffs], Fri Apr 20 16:22:33 2001 UTC (21 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.158: +65 -4 lines
Diff to previous 1.158 (colored)

pmap_asn_alloc(): In a multiprocessor configuration, it's possible
to arrive here referencing the kernel_lev1map without having the
RESERVED ASN -- another CPU may have caused pmap_lev1map_destroy()
to be called, and that routine only invalidates the ASN for the
CPU that called it.  So, in the MULTIPROCESSOR case, simply assign
the RESERVED ASN if we reference the kernel_lev1map rather than
asserting that we already have the RESERVED ASN.  Thanks to Bill
Sommerfeld for helping me track down the problem.

Also add a new IPI that causes a CPU to re-activate its address
space if the pmap it's using changes level 1 maps (this probably
won't happen very often, but it's correct to have it).

This makes Alpha MP kernels boot multiuser.  In fact, this commit
is being made from my dual-CPU AlphaServer 1200 running an MP kernel.

Revision 1.156.2.1 / (download) - annotate - [select for diffs], Mon Apr 9 01:50:18 2001 UTC (21 years, 10 months ago) by nathanw
Changes since 1.156: +14 -17 lines
Diff to previous 1.156 (colored)

Catch up with -current.

Revision 1.111.2.8 / (download) - annotate - [select for diffs], Tue Mar 27 15:30:07 2001 UTC (21 years, 10 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.7: +12 -15 lines
Diff to previous 1.111.2.7 (colored)

Sync with HEAD.

Revision 1.158 / (download) - annotate - [select for diffs], Wed Mar 21 03:16:05 2001 UTC (21 years, 10 months ago) by chs
Branch: MAIN
Changes since 1.157: +3 -3 lines
Diff to previous 1.157 (colored)

use ubc_winshift instead of ubc_winsize in pmaps to set up kernel
virtual space.  the latter isn't initialized yet when the value is needed.
fixes PR 12440.

Revision 1.157 / (download) - annotate - [select for diffs], Thu Mar 15 06:10:33 2001 UTC (21 years, 11 months ago) by chs
Branch: MAIN
Changes since 1.156: +13 -16 lines
Diff to previous 1.156 (colored)

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

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

Revision 1.111.2.7 / (download) - annotate - [select for diffs], Thu Jan 18 09:22:05 2001 UTC (22 years ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.6: +1 -1 lines
Diff to previous 1.111.2.6 (colored)

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

Revision 1.156 / (download) - annotate - [select for diffs], Sun Jan 14 03:33:34 2001 UTC (22 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.155: +3 -3 lines
Diff to previous 1.155 (colored)

splimp() -> splvm()

Revision 1.111.2.6 / (download) - annotate - [select for diffs], Fri Jan 5 17:33:40 2001 UTC (22 years, 1 month ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.5: +1 -1 lines
Diff to previous 1.111.2.5 (colored)

Sync with HEAD

Revision 1.155 / (download) - annotate - [select for diffs], Thu Dec 21 00:52:01 2000 UTC (22 years, 1 month ago) by chs
Branch: MAIN
Changes since 1.154: +3 -3 lines
Diff to previous 1.154 (colored)

expose the tunables ubc_nwins and ubc_winsize in uvm_param.h.
add the space used by UBC mappings to the initial PTE calculations
for pmaps that do that (mips and alpha).

Revision 1.111.2.5 / (download) - annotate - [select for diffs], Wed Dec 13 15:49:15 2000 UTC (22 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.4: +2 -2 lines
Diff to previous 1.111.2.4 (colored)

Sync with HEAD (for UBC fixes).

Revision 1.111.2.4 / (download) - annotate - [select for diffs], Wed Dec 13 14:48:57 2000 UTC (22 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.3: +14 -14 lines
Diff to previous 1.111.2.3 (colored)

Sync with HEAD (for UBC fixes)

Revision 1.111.2.3 / (download) - annotate - [select for diffs], Fri Dec 8 09:23:25 2000 UTC (22 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.2: +106 -39 lines
Diff to previous 1.111.2.2 (colored)

Sync with HEAD.

Revision 1.154 / (download) - annotate - [select for diffs], Thu Dec 7 22:18:55 2000 UTC (22 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.153: +2 -4 lines
Diff to previous 1.153 (colored)

pmap_growkernel() has been implemented.

Revision 1.153 / (download) - annotate - [select for diffs], Thu Dec 7 22:11:40 2000 UTC (22 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.152: +14 -12 lines
Diff to previous 1.152 (colored)

Fix MP race condition introduced in the previous.

Revision 1.152 / (download) - annotate - [select for diffs], Thu Dec 7 05:59:07 2000 UTC (22 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.151: +105 -36 lines
Diff to previous 1.151 (colored)

Use a pool cache for L1 PT pages.  When we can allocate a cached,
constructed L1 PT page, this saves us from having to copy the kernel
L1 PTEs into the user L1 PT page at fork time (it's already set up).

A simple test shows a 1 second improvement of a rapid fork/exit operation
10000 times on a 533MHz 21164A (12s to 11s).

Revision 1.151 / (download) - annotate - [select for diffs], Fri Nov 24 22:41:38 2000 UTC (22 years, 2 months ago) by chs
Branch: MAIN
Changes since 1.150: +3 -5 lines
Diff to previous 1.150 (colored)

increase PAGER_MAP_SIZE to 16MB and move it to uvm_pager.h
since the alpha and mips pmaps use it.

Revision 1.111.2.2 / (download) - annotate - [select for diffs], Wed Nov 22 15:59:41 2000 UTC (22 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111.2.1: +104 -6 lines
Diff to previous 1.111.2.1 (colored)

Sync with HEAD.

Revision 1.150 / (download) - annotate - [select for diffs], Wed Nov 22 08:39:49 2000 UTC (22 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.149: +4 -4 lines
Diff to previous 1.149 (colored)

Several changes, which get us generally further along with
multiprocessor support:
- Implement MP-safe halt.
- Make the FPU saving code more like Bill's on the i386 MP branch.
  XXX This code will no doubt be revisited again.
- Pass the cpu_info and trapframe to IPI handlers, saving some work
  in the handlers themselves, and also making it possible for the
  "pause" handler to reference register state for DDB.
- Add "machine cpu" to DDB, making it possible to reference other
  CPUs registers (and thus get e.g. a traceback) from whichever
  CPU is actually running the debugger.
- Garbage-collect "machine halt" and "machine reboot" DDB commands.
  They don't have a prayer of working properly in multiprocessor
  kernels, and didn't really work all that well in uniprocessor kernels.

Revision 1.111.2.1 / (download) - annotate - [select for diffs], Mon Nov 20 19:56:36 2000 UTC (22 years, 2 months ago) by bouyer
Branch: thorpej_scsipi
Changes since 1.111: +864 -602 lines
Diff to previous 1.111 (colored)

Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.

Revision 1.149 / (download) - annotate - [select for diffs], Sun Nov 19 03:16:34 2000 UTC (22 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.148: +104 -6 lines
Diff to previous 1.148 (colored)

Implement pmap_growkernel().

Revision 1.148 / (download) - annotate - [select for diffs], Fri Sep 22 05:23:37 2000 UTC (22 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.147: +2 -4 lines
Diff to previous 1.147 (colored)

After consultation of the 21164A manual, the I-cache blocks are
indeed tagged with ASM and the ASN, "per the Alpha architecture".
It is therefore safe to cancel any pending lazy I-sync on a
given CPU when a new ASN is assigned on that CPU.

Revision 1.135.2.2 / (download) - annotate - [select for diffs], Tue Sep 19 17:48:16 2000 UTC (22 years, 4 months ago) by thorpej
Branch: netbsd-1-5
CVS Tags: netbsd-1-5-RELEASE, netbsd-1-5-PATCH003, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA
Changes since 1.135.2.1: +37 -4 lines
Diff to previous 1.135.2.1 (colored) to branchpoint 1.135 (colored) next main 1.136 (colored)

Pull up rev. 1.146:
Make sure pmap_collect() doesn't remove wired mappings.  Per discussion
w/ Chuq Silvers.  Fixes a panic when a program with wired pages that
has run for a long time when the system is under heavy memory load
exits (specific case was ntpd, reported by Simon Burge).

Revision 1.135.2.1 / (download) - annotate - [select for diffs], Tue Sep 19 17:40:46 2000 UTC (22 years, 4 months ago) by thorpej
Branch: netbsd-1-5
Changes since 1.135: +4 -3 lines
Diff to previous 1.135 (colored)

Pull up rev. 1.147:
In pmap_ptpage_steal(), don't traverse into the kernel portion
of the address space.

Addresses the Alpha port part of port-alpha/11034.

Revision 1.147 / (download) - annotate - [select for diffs], Tue Sep 19 01:02:37 2000 UTC (22 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.146: +4 -3 lines
Diff to previous 1.146 (colored)

In pmap_ptpage_steal(), don't traverse into the kernel portion
of the address space.

Revision 1.146 / (download) - annotate - [select for diffs], Thu Sep 14 17:06:52 2000 UTC (22 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.145: +37 -4 lines
Diff to previous 1.145 (colored)

Make sure pmap_collect() doesn't remove wired mappings.  Per discussion
w/ Chuq Silvers.  Fixes a panic when a program with wired pages that
has run for a long time when the system is under heavy memory load
exits (specific case was ntpd, reported by Simon Burge).

Revision 1.145 / (download) - annotate - [select for diffs], Sat Aug 26 06:58:25 2000 UTC (22 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.144: +10 -10 lines
Diff to previous 1.144 (colored)

Un-transpose some characters in an abbreviation.

Revision 1.144 / (download) - annotate - [select for diffs], Sat Aug 26 03:32:36 2000 UTC (22 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.143: +6 -6 lines
Diff to previous 1.143 (colored)

Fix a couple of typos in previous.

Revision 1.143 / (download) - annotate - [select for diffs], Sat Aug 26 03:27:45 2000 UTC (22 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.142: +55 -58 lines
Diff to previous 1.142 (colored)

Snapshot of TLB shootdown bugfixes.

Revision 1.142 / (download) - annotate - [select for diffs], Tue Aug 15 05:21:20 2000 UTC (22 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.141: +77 -51 lines
Diff to previous 1.141 (colored)

- Make lazy I-sync a little safer -- always mark the pmap as needing
  I-sync in pmap_remove_mapping() if the old mapping had PG_EXEC, and
  kick curcpu (IMB) or other CPUs (via an IPI) only if the pmap was
  the kernel pmap or active on other CPUs (curcpu is handled in userret()).
- Use lazy I-sync everywhere, (hopefully) eliminating the last of the
  I-sync issues for multiprocessor support.
- Eliminate some memory barriers added in a couple of previous revisions,
  after some discussion on port-alpha/tech-smp.

Still some lazy I-sync optimization possibilites:
- pmap_changebit() does not need to I-sync when only write-protecting
  a page.
- pmap_asn_alloc() may be able to cancel a pending lazy I-sync when a
  new ASN is allocated.  Need to double check against Green Book or
  Brown Book.

Revision 1.141 / (download) - annotate - [select for diffs], Sun Aug 13 22:43:42 2000 UTC (22 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.140: +18 -10 lines
Diff to previous 1.140 (colored)

More MP cleanup:
- pmap_zero_page() and pmap_copy_page(): if MULTIPROCESSOR, issue
  a memory barrier after we zero/copy the page, to ensure that
  other CPUs see the correct data.
- XXX Should we use MB, or is WMB good enough?

Also, bzero -> memset, bcopy -> memcpy.

Revision 1.140 / (download) - annotate - [select for diffs], Sun Aug 13 22:30:19 2000 UTC (22 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.139: +57 -26 lines
Diff to previous 1.139 (colored)

More MP cleanup:
- Make sure to do an MB after a PTE is set to a new value, so that
  other processors see it.
- Use lazy I-sync in two pmap_page_protect() and in pmap_changebit(),
  so that it is MP-safe.  XXX Two more places where IMB is used in
  the raw, but they're not in the common path.

There'll be some more lazy I-sync cleanups soon.

Revision 1.139 / (download) - annotate - [select for diffs], Sun Aug 13 18:41:15 2000 UTC (22 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.138: +6 -6 lines
Diff to previous 1.138 (colored)

Add some XXXSMP to places were imb is still used in the raw.

Revision 1.138 / (download) - annotate - [select for diffs], Sun Aug 13 18:22:21 2000 UTC (22 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.137: +16 -5 lines
Diff to previous 1.137 (colored)

Add MULTIPROCESSOR versions of PMAP_SYNC_ISTREAM_{KERNEL,USER}().

Revision 1.137 / (download) - annotate - [select for diffs], Thu Jun 29 09:02:55 2000 UTC (22 years, 7 months ago) by mrg
Branch: MAIN
Changes since 1.136: +2 -4 lines
Diff to previous 1.136 (colored)

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

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

remove/move more mach vm header files:

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

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

Revision 1.132.2.1 / (download) - annotate - [select for diffs], Thu Jun 22 16:58:17 2000 UTC (22 years, 7 months ago) by minoura
Branch: minoura-xpg4dl
Changes since 1.132: +99 -220 lines
Diff to previous 1.132 (colored) next main 1.133 (colored)

Sync w/ netbsd-1-5-base.

Revision 1.135 / (download) - annotate - [select for diffs], Mon Jun 5 21:47:15 2000 UTC (22 years, 8 months ago) by thorpej
Branch: MAIN
CVS Tags: netbsd-1-5-base, netbsd-1-5-ALPHA2
Branch point for: netbsd-1-5
Changes since 1.134: +3 -3 lines
Diff to previous 1.134 (colored)

Switch to the new `evcnt' mechanism for counting interrupts.  Maintain
a per-CPU interrupt counter for clock, device, and interprocessor
interrupts.

Revision 1.134 / (download) - annotate - [select for diffs], Sun Jun 4 18:09:36 2000 UTC (22 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.133: +98 -210 lines
Diff to previous 1.133 (colored)

ANSI'ify.

Revision 1.133 / (download) - annotate - [select for diffs], Sun Jun 4 17:39:12 2000 UTC (22 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.132: +2 -11 lines
Diff to previous 1.132 (colored)

Nuke a couple of unnecessary IMBs.  In these cases, the mappings weren't
hanging, only perhaps the permissions being lowered, in which case the
I-stream does not need to be sync'd.

Revision 1.132 / (download) - annotate - [select for diffs], Tue May 23 05:12:54 2000 UTC (22 years, 8 months ago) by thorpej
Branch: MAIN
CVS Tags: minoura-xpg4dl-base
Branch point for: minoura-xpg4dl
Changes since 1.131: +8 -8 lines
Diff to previous 1.131 (colored)

Rename the atomic operations to have generic machine-independent
names, and define __HAVE_ATOMIC_OPERATIONS to indicate their
existence.

Revision 1.88.2.6 / (download) - annotate - [select for diffs], Wed Apr 26 22:13:24 2000 UTC (22 years, 9 months ago) by he
Branch: netbsd-1-4
CVS Tags: netbsd-1-4-PATCH003
Changes since 1.88.2.5: +3 -3 lines
Diff to previous 1.88.2.5 (colored) to branchpoint 1.88 (colored) next main 1.89 (colored)

Pull up revision 1.130 (requested by thorpej):
  Use a more reliable method to determine if uvm_page_init() has
  completed.  This fixes a problem observed on some i386 configs
  (typically with lots of memory) where the kernel page table needs
  to grow during initialization.

Revision 1.131 / (download) - annotate - [select for diffs], Mon Apr 10 00:48:35 2000 UTC (22 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.130: +3 -4 lines
Diff to previous 1.130 (colored)

Use UVM_PGA_ZERO.

Revision 1.130 / (download) - annotate - [select for diffs], Sun Apr 2 20:39:14 2000 UTC (22 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.129: +3 -3 lines
Diff to previous 1.129 (colored)

Instead of checking vm_physmem[<physseg>].pgs to determine if
uvm_page_init() has completed, add a boolean uvm.page_init_done,
and test against that.  Use this same boolean (rather than
pmap_initialized) in pmap_growkernel() to determine if we are
being called via uvm_page_init() to grow the kernel address space.

This fixes a problem on some i386 configurations where pmap_init()
itself was needing to have the kernel page table grown, and since
pmap_initialized was not yet set to TRUE, pmap_growkernel() was
choosing the wrong code path.

Fix tested by Havard Eidnes.

Revision 1.129 / (download) - annotate - [select for diffs], Wed Mar 29 03:49:02 2000 UTC (22 years, 10 months ago) by simonb
Branch: MAIN
Changes since 1.128: +2 -3 lines
Diff to previous 1.128 (colored)

Remove redundant decl for physmem - it's in <sys/systm.h>.

Revision 1.128 / (download) - annotate - [select for diffs], Sun Mar 26 20:42:22 2000 UTC (22 years, 10 months ago) by kleink
Branch: MAIN
Changes since 1.127: +4 -4 lines
Diff to previous 1.127 (colored)

Merge parts of chs-ubc2 into the trunk:
* Remove the casts to vaddr_t from the round_page() and trunc_page() macros to
  make them type-generic, which is necessary i.e. to operate on file offsets
  without truncating them.
* In due course, cast pointer arguments to these macros to an appropriate
  integral type (paddr_t, vaddr_t).

Originally done by Chuck Silvers, updated by myself.

Revision 1.127 / (download) - annotate - [select for diffs], Wed Mar 1 18:29:04 2000 UTC (22 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.126: +46 -39 lines
Diff to previous 1.126 (colored)

Do partial lazy I-stream sync -- in the pmap_enter()/pmap_remove() cases
for now.  More to come.

Revision 1.126 / (download) - annotate - [select for diffs], Wed Mar 1 01:32:45 2000 UTC (22 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.125: +18 -15 lines
Diff to previous 1.125 (colored)

PMAP_ISACTIVE() now takes the cpu_id.  This serves two purposes:
- Everywhere it was used, the cpu_id was already computed, so this
  saves computing it again.
- This will be needed for lazy istream sync.

Revision 1.125 / (download) - annotate - [select for diffs], Wed Mar 1 00:43:34 2000 UTC (22 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.124: +20 -20 lines
Diff to previous 1.124 (colored)

Use cpu_number() here instead of alpha_pal_whami().

Revision 1.124 / (download) - annotate - [select for diffs], Fri Feb 11 19:25:12 2000 UTC (23 years ago) by thorpej
Branch: MAIN
CVS Tags: chs-ubc2-newbase
Changes since 1.123: +9 -4 lines
Diff to previous 1.123 (colored)

Update for the NKMEMPAGES changes.

Revision 1.111.6.1 / (download) - annotate - [select for diffs], Mon Dec 27 18:31:22 1999 UTC (23 years, 1 month ago) by wrstuden
Branch: wrstuden-devbsize
Changes since 1.111: +505 -236 lines
Diff to previous 1.111 (colored) next main 1.112 (colored)

Pull up to last week's -current.

Revision 1.123 / (download) - annotate - [select for diffs], Fri Dec 17 07:24:05 1999 UTC (23 years, 1 month ago) by thorpej
Branch: MAIN
CVS Tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221
Changes since 1.122: +38 -5 lines
Diff to previous 1.122 (colored)

Hand-tuned pmap_zero_page().

Revision 1.122 / (download) - annotate - [select for diffs], Thu Dec 2 23:40:27 1999 UTC (23 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.121: +8 -5 lines
Diff to previous 1.121 (colored)

In pmap_page_protect(), don't reference a pmap we're unlocking via
the PV entry we just freed (D'OH!)

Revision 1.121 / (download) - annotate - [select for diffs], Thu Dec 2 01:09:11 1999 UTC (23 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.120: +3 -2 lines
Diff to previous 1.120 (colored)

Move atomic operations into <machine/atomic.h>, and make them in-line
assembly, rather than function calls.

...except alpha_atomic_testset_l(), which will go away completely once
I commit the new <machine/lock.h>.

Revision 1.120 / (download) - annotate - [select for diffs], Tue Nov 30 18:18:02 1999 UTC (23 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.119: +17 -2 lines
Diff to previous 1.119 (colored)

Put some (disabled) debugging code into pmap_steal_memory().

Revision 1.88.2.3.4.1 / (download) - annotate - [select for diffs], Tue Nov 30 13:31:23 1999 UTC (23 years, 2 months ago) by itojun
Branch: kame
CVS Tags: kame_141_19991130
Changes since 1.88.2.3: +21 -2 lines
Diff to previous 1.88.2.3 (colored) next main 1.88.2.4 (colored)

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

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

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

Revision 1.119 / (download) - annotate - [select for diffs], Mon Nov 29 18:37:28 1999 UTC (23 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.118: +2 -112 lines
Diff to previous 1.118 (colored)

Switch to the new pmap_remove() and nuke the old one.  A simple fork/exit
benchmark shows at least a 10% improvement in the tearing down of a large
address space.

Revision 1.118 / (download) - annotate - [select for diffs], Sun Nov 28 19:53:11 1999 UTC (23 years, 2 months ago) by thorpej
Branch: MAIN
Changes since 1.117: +217 -71 lines
Diff to previous 1.117 (colored)

- Use alpha_atomic_{add,sub}_q() to update the pmap statistics.  We now no
  longer need to lock the kernel pmap in pmap_kenter_pa() and pmap_kremove().
- Since locking the kernel pmap in interrupt context is no longer required,
  don't go to splimp() when locking the kernel pmap.
- Implement a new pmap_remove() function, not yet enabled by default.  It
  is structured like pmap_protect, and should be *much* faster.  This was
  actually written quite some time ago, but never committed because it
  didn't work properly.  Given the recent bugfix to pmap_protect(), "duh,
  of course it didn't work properly before...".  It seems to work fine now
  (have done several builds and run the UVM regression tests using the new
  code), but it is currently run-time optional so that some performance
  measurements can be easily run against the old and new code.

Revision 1.88.2.5 / (download) - annotate - [select for diffs], Sat Nov 27 16:02:09 1999 UTC (23 years, 2 months ago) by he
Branch: netbsd-1-4
CVS Tags: netbsd-1-4-PATCH002
Changes since 1.88.2.4: +8 -11 lines
Diff to previous 1.88.2.4 (colored) to branchpoint 1.88 (colored)

Pull up revision 1.116 (requested by mycroft):
  Fix bugs in pmap_protect():
   o do not overrun eva by L1SEG_SIZE - PAGE_SIZE.
   o do not advance sva twice for each valid l3 or l2 page.

Revision 1.117 / (download) - annotate - [select for diffs], Sat Nov 27 00:25:15 1999 UTC (23 years, 2 months ago) by mycroft
Branch: MAIN
Changes since 1.116: +7 -6 lines
Diff to previous 1.116 (colored)

In pmap_emulate_reference(), always or in the bits.  I know the code is trying
to be clever, but...
Also, a slight optimization for the write case.

Revision 1.116 / (download) - annotate - [select for diffs], Fri Nov 26 23:04:33 1999 UTC (23 years, 2 months ago) by mycroft
Branch: MAIN
Changes since 1.115: +8 -11 lines
Diff to previous 1.115 (colored)

Fix bugs in pmap_protect() that were responsible for the `ld.elf_so lossage'.
* We could overrun the eva by as much as L1SEG_SIZE-PAGE_SIZE.
* sva was advanced *twice* for each valid l3 or l2 page, causing it to get out
  of sync with the PTE pointers.

Revision 1.111.4.1 / (download) - annotate - [select for diffs], Sun Nov 14 23:39:08 1999 UTC (23 years, 3 months ago) by fvdl
Branch: fvdl-softdep
Changes since 1.111: +316 -133 lines
Diff to previous 1.111 (colored) next main 1.112 (colored)

Sync with -current.

Revision 1.115 / (download) - annotate - [select for diffs], Sat Nov 13 00:26:22 1999 UTC (23 years, 3 months ago) by thorpej
Branch: MAIN
CVS Tags: fvdl-softdep-base
Changes since 1.114: +66 -29 lines
Diff to previous 1.114 (colored)

Update for pmap_enter() API change, and return failure if possible.

Revision 1.114 / (download) - annotate - [select for diffs], Tue Nov 2 18:09:31 1999 UTC (23 years, 3 months ago) by thorpej
Branch: MAIN
CVS Tags: comdex-fall-1999-base, comdex-fall-1999
Changes since 1.113: +247 -90 lines
Diff to previous 1.113 (colored)

Implement PT page stealing for extreme low memory conditions.  This
has the side-effect of eliminating a locking protocol error in some
memory-desperation code in pmap_physpage_alloc().

Revision 1.113 / (download) - annotate - [select for diffs], Mon Nov 1 20:25:39 1999 UTC (23 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.112: +2 -6 lines
Diff to previous 1.112 (colored)

Simple little speed hack in pmap_is_referenced()/pmap_is_modified(): don't
need to have the pv_head lock in order to test the REFERENCED or MODIFIED
attribute; the load of `pvh_attrs' is atomic.

Revision 1.112 / (download) - annotate - [select for diffs], Mon Nov 1 20:18:25 1999 UTC (23 years, 3 months ago) by thorpej
Branch: MAIN
Changes since 1.111: +12 -19 lines
Diff to previous 1.111 (colored)

- Fix a case where we weren't acquiring the pv_head lock when modifying
  the page attributes in pmap_enter().
- It's no longer necessary (and hasn't been for a while in this pmap) to
  go to splimp() to use the physical->virtual table, so remove all such
  uses.

Revision 1.111 / (download) - annotate - [select for diffs], Sun Sep 12 01:16:56 1999 UTC (23 years, 5 months ago) by chs
Branch: MAIN
Branch point for: wrstuden-devbsize, thorpej_scsipi, fvdl-softdep
Changes since 1.110: +6 -156 lines
Diff to previous 1.110 (colored)

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

Revision 1.110 / (download) - annotate - [select for diffs], Tue Aug 17 18:48:22 1999 UTC (23 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.109: +9 -9 lines
Diff to previous 1.109 (colored)

Now that we have read/write spin locks, use them for the pmap_main_lock.

Revision 1.109 / (download) - annotate - [select for diffs], Sat Aug 14 06:19:49 1999 UTC (23 years, 6 months ago) by ross
Branch: MAIN
Changes since 1.108: +6 -5 lines
Diff to previous 1.108 (colored)

In pmap_page_protect(), don't (try to) use the pv_entry_t we just
freed in order to find the pmap to unlock.

Revision 1.88.2.3.2.4 / (download) - annotate - [select for diffs], Wed Aug 11 05:47:03 1999 UTC (23 years, 6 months ago) by chs
Branch: chs-ubc2
Changes since 1.88.2.3.2.3: +4 -4 lines
Diff to previous 1.88.2.3.2.3 (colored) to branchpoint 1.88.2.3 (colored) next main 1.88.2.4 (colored)

add casts for trunc_page() and round_page() args.

Revision 1.108 / (download) - annotate - [select for diffs], Tue Aug 10 23:35:44 1999 UTC (23 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.107: +2 -6 lines
Diff to previous 1.107 (colored)

Move cpu_info and related info into <machine/cpu.h>, and implement the
other MP API components discussed on tech-smp.

Revision 1.88.2.3.2.3 / (download) - annotate - [select for diffs], Mon Aug 2 19:32:42 1999 UTC (23 years, 6 months ago) by thorpej
Branch: chs-ubc2
Changes since 1.88.2.3.2.2: +19 -11 lines
Diff to previous 1.88.2.3.2.2 (colored) to branchpoint 1.88.2.3 (colored)

Update from trunk.

Revision 1.107 / (download) - annotate - [select for diffs], Wed Jul 28 23:23:46 1999 UTC (23 years, 6 months ago) by thorpej
Branch: MAIN
CVS Tags: chs-ubc2-base
Changes since 1.106: +4 -3 lines
Diff to previous 1.106 (colored)

Make sure that pmap == pmap_kernel() when skipping pager mappings.

Revision 1.106 / (download) - annotate - [select for diffs], Thu Jul 8 18:05:21 1999 UTC (23 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.105: +17 -10 lines
Diff to previous 1.105 (colored)

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

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

Sync w/ -current.

Revision 1.105 / (download) - annotate - [select for diffs], Sat Jun 26 03:15:54 1999 UTC (23 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.104: +2 -14 lines
Diff to previous 1.104 (colored)

Nuke some code ripe for garbage-collection.

Revision 1.88.2.3.2.1 / (download) - annotate - [select for diffs], Mon Jun 21 00:46:05 1999 UTC (23 years, 7 months ago) by thorpej
Branch: chs-ubc2
Changes since 1.88.2.3: +318 -343 lines
Diff to previous 1.88.2.3 (colored)

Sync w/ -current.

Revision 1.88.2.4 / (download) - annotate - [select for diffs], Fri Jun 18 16:49:45 1999 UTC (23 years, 7 months ago) by perry
Branch: netbsd-1-4
CVS Tags: netbsd-1-4-PATCH001
Changes since 1.88.2.3: +21 -2 lines
Diff to previous 1.88.2.3 (colored) to branchpoint 1.88 (colored)

pullup 1.93->1.94 (thorpej): Count new resident and wired pages in pmap_kenter*()

Revision 1.104 / (download) - annotate - [select for diffs], Thu Jun 17 19:23:22 1999 UTC (23 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.103: +20 -33 lines
Diff to previous 1.103 (colored)

pmap_change_wiring() -> pmap_unwire().

Revision 1.103 / (download) - annotate - [select for diffs], Thu Jun 17 18:21:24 1999 UTC (23 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.102: +2 -28 lines
Diff to previous 1.102 (colored)

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

Revision 1.102 / (download) - annotate - [select for diffs], Mon May 31 20:49:00 1999 UTC (23 years, 8 months ago) by ross
Branch: MAIN
Changes since 1.101: +3 -3 lines
Diff to previous 1.101 (colored)

In PMAP_ISACTIVE(), check curproc->p_vmspace before using it; this macro
is called early in startup, long before p_vmspace is set to &vmspace0.

Revision 1.101 / (download) - annotate - [select for diffs], Tue May 25 20:32:29 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.100: +67 -31 lines
Diff to previous 1.100 (colored)

Fix some major locking protocol issues related to pmap_kremove() having
to deal with PG_PVLIST mappings; it no longer has to.  Add some DIAGNOSTIC
checks for inconsistent use of pmap_enter/pmap_kremove.

Revision 1.100 / (download) - annotate - [select for diffs], Mon May 24 20:11:58 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.99: +61 -39 lines
Diff to previous 1.99 (colored)

The kernel pmap can be accessed (and locked!) while in an interrupt
context, so we must block interrupts which may cause memory allocation
before asserting the kernel pmap's lock.  Put this all in PMAP_LOCK()
and PMAP_UNLOCK() macros to make it easier.

Revision 1.99 / (download) - annotate - [select for diffs], Mon May 24 01:35:54 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.98: +17 -11 lines
Diff to previous 1.98 (colored)

Let the caller decide what to do if pmap_physpage_alloc() fails.

Revision 1.98 / (download) - annotate - [select for diffs], Sun May 23 22:37:02 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.97: +26 -14 lines
Diff to previous 1.97 (colored)

Make the list of all pmaps LRU-ordered, and update a comment regarding
locking.

Revision 1.97 / (download) - annotate - [select for diffs], Sun May 23 17:49:07 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.96: +12 -13 lines
Diff to previous 1.96 (colored)

Save ourselves some work in some pv list traversal functions; keep a pointer
to the PTE that maps the page in the pv_entry so that we don't have to
compute it from the pmap/va.

Revision 1.96 / (download) - annotate - [select for diffs], Sun May 23 16:54:43 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.95: +94 -18 lines
Diff to previous 1.95 (colored)

Implement pv_entry stealing for the case when a pool page cannot be
allocated for one.

Revision 1.95 / (download) - annotate - [select for diffs], Fri May 21 23:07:59 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.94: +45 -183 lines
Diff to previous 1.94 (colored)

Use the pool allocator for pv_entry structures.  Set a (patchable/config'able)
low water mark on the pool, so we have some chance of crawling along in
extreme memory shortages.

Revision 1.94 / (download) - annotate - [select for diffs], Mon May 17 16:22:57 1999 UTC (23 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.93: +21 -2 lines
Diff to previous 1.93 (colored)

Count new resident and wired pages in pmap_kenter*().

Revision 1.88.2.3 / (download) - annotate - [select for diffs], Fri Apr 16 23:27:18 1999 UTC (23 years, 9 months ago) by thorpej
Branch: netbsd-1-4
CVS Tags: netbsd-1-4-RELEASE, kame_14_19990705, kame_14_19990628
Branch point for: kame, chs-ubc2
Changes since 1.88.2.2: +3 -4 lines
Diff to previous 1.88.2.2 (colored) to branchpoint 1.88 (colored)

Pull up 1.92 -> 1.93.

Revision 1.88.2.2 / (download) - annotate - [select for diffs], Fri Apr 16 16:14:14 1999 UTC (23 years, 10 months ago) by chs
Branch: netbsd-1-4
Changes since 1.88.2.1: +3 -3 lines
Diff to previous 1.88.2.1 (colored) to branchpoint 1.88 (colored)

pull up 1.90 -> 1.91:
add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.

Revision 1.93 / (download) - annotate - [select for diffs], Thu Apr 15 22:15:38 1999 UTC (23 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.92: +3 -4 lines
Diff to previous 1.92 (colored)

DEC_KN300 no longer uses PROM console.

Revision 1.92 / (download) - annotate - [select for diffs], Thu Apr 15 21:21:25 1999 UTC (23 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.91: +2 -19 lines
Diff to previous 1.91 (colored)

Back out the change to swap Lev1map on MP systems that use the PROM console.

Basically, we have to completely nuke the _PMAP_USES_PROM_CONSOLE code from
orbit before MP is going to properly work.

Revision 1.91 / (download) - annotate - [select for diffs], Sun Apr 11 04:04:05 1999 UTC (23 years, 10 months ago) by chs
Branch: MAIN
Changes since 1.90: +3 -3 lines
Diff to previous 1.90 (colored)

add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.

Revision 1.90 / (download) - annotate - [select for diffs], Sat Apr 10 01:21:37 1999 UTC (23 years, 10 months ago) by cgd
Branch: MAIN
Changes since 1.89: +2 -3 lines
Diff to previous 1.89 (colored)

be more consistent about use of 'cputype'.  e.g. it's in a header, don't
bother 'externing' it everywhere!

Revision 1.88.2.1 / (download) - annotate - [select for diffs], Fri Apr 9 00:40:13 1999 UTC (23 years, 10 months ago) by thorpej
Branch: netbsd-1-4
Changes since 1.88: +13 -12 lines
Diff to previous 1.88 (colored)

Pull up 1.88 -> 1.89: fix TBI optimization bug.

Revision 1.89 / (download) - annotate - [select for diffs], Fri Apr 9 00:38:10 1999 UTC (23 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.88: +13 -12 lines
Diff to previous 1.88 (colored)

Fix a bug in TBI optimization uncovered by the "access_type" changes.  Thanks
to Bernd Ernesti for providing crash dumps to Charles Hannum who tracked
it down.

Revision 1.88 / (download) - annotate - [select for diffs], Mon Mar 29 05:31:24 1999 UTC (23 years, 10 months ago) by mycroft
Branch: MAIN
CVS Tags: netbsd-1-4-base
Branch point for: netbsd-1-4
Changes since 1.87: +6 -11 lines
Diff to previous 1.87 (colored)

Panic if access_type has bits not in prot.

Revision 1.87 / (download) - annotate - [select for diffs], Sat Mar 27 02:48:32 1999 UTC (23 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.86: +16 -2 lines
Diff to previous 1.86 (colored)

Pay attention to "access_type" in pmap_enter().

Revision 1.86 / (download) - annotate - [select for diffs], Fri Mar 26 23:41:26 1999 UTC (23 years, 10 months ago) by mycroft
Branch: MAIN
Changes since 1.85: +4 -3 lines
Diff to previous 1.85 (colored)

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

Revision 1.85 / (download) - annotate - [select for diffs], Fri Mar 26 00:15:04 1999 UTC (23 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.84: +3 -3 lines
Diff to previous 1.84 (colored)

Don't bother allocating mb_map on these systems.  Mbuf clusters are
allocated from a pool, and the MIPS and Alpha use KSEG to map pool
pages.  So, mb_map wasn't actually being used.  Saves around 4MB of
kernel virtual address space in a typical configuration.

Garbage-collect the related VM_MBUF_SIZE constant.

Revision 1.84 / (download) - annotate - [select for diffs], Wed Mar 24 05:50:51 1999 UTC (23 years, 10 months ago) by mrg
Branch: MAIN
Changes since 1.83: +2 -22 lines
Diff to previous 1.83 (colored)

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

Revision 1.83 / (download) - annotate - [select for diffs], Thu Mar 4 06:47:21 1999 UTC (23 years, 11 months ago) by chs
Branch: MAIN
Changes since 1.82: +9 -9 lines
Diff to previous 1.82 (colored)

fix printf format types and other stale DEBUG code.

Revision 1.82 / (download) - annotate - [select for diffs], Thu Feb 25 03:43:14 1999 UTC (23 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.81: +40 -22 lines
Diff to previous 1.81 (colored)

On multiprocessor systems, it is possible that a lev1map might be in use
by two processors concurrently.  This means that we cannot modify the
lev1map in use by the processor which wishes to use the PROM.

Fix this by creating a separate lev1map for PROM users.  This lev1map
is a copy of the kernel_lev1map, with the exception of the necessary
PROM mapping.  When a processor wishes to use the PROM, it switches
its PTBR to point at the prom_lev1map, performs the PROM operation,
and switches back to its previous lev1map.

Note that kernels without multiprocessor support use the old method
of modifying the current lev1map.

Also, serialize access to the PROM via a spin lock.

Revision 1.81 / (download) - annotate - [select for diffs], Wed Feb 24 19:36:04 1999 UTC (23 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.80: +3 -2 lines
Diff to previous 1.80 (colored)

Explicitly include opt_multiprocessor.h, rather then relying on its
implicit inclusion by pmap.h.

Revision 1.80 / (download) - annotate - [select for diffs], Wed Feb 24 19:22:16 1999 UTC (23 years, 11 months ago) by thorpej
Branch: MAIN
Changes since 1.79: +283 -19 lines
Diff to previous 1.79 (colored)

First-cut at multiprocessor TLB shootdown.  This simple implementation can
probably be improved somewhat, but an attempt to be efficient has been
made.

Note: TLB shootdowns are NOT YET ENABLED.

Revision 1.79 / (download) - annotate - [select for diffs], Fri Feb 12 06:30:09 1999 UTC (24 years ago) by thorpej
Branch: MAIN
Changes since 1.78: +4 -4 lines
Diff to previous 1.78 (colored)

Fix printf format problems on Alpha.

Revision 1.78 / (download) - annotate - [select for diffs], Mon Feb 8 19:37:29 1999 UTC (24 years ago) by thorpej
Branch: MAIN
Changes since 1.77: +4 -4 lines
Diff to previous 1.77 (colored)

Add some missing newlines in printfs.

Revision 1.77 / (download) - annotate - [select for diffs], Thu Feb 4 19:49:22 1999 UTC (24 years ago) by thorpej
Branch: MAIN
Changes since 1.76: +24 -8 lines
Diff to previous 1.76 (colored)

Print some more info in pmap_alloc_physpage() if no pages are available,
and enhance some DIAGNOSTIC messages.

Revision 1.76 / (download) - annotate - [select for diffs], Fri Dec 18 19:52:11 1998 UTC (24 years, 1 month ago) by thorpej
Branch: MAIN
Changes since 1.75: +3 -3 lines
Diff to previous 1.75 (colored)

Correct a panic message.

Revision 1.75 / (download) - annotate - [select for diffs], Mon Oct 19 22:09:14 1998 UTC (24 years, 3 months ago) by tron
Branch: MAIN
CVS Tags: kenh-if-detach-base, kenh-if-detach, chs-ubc-base, chs-ubc
Changes since 1.74: +3 -2 lines
Diff to previous 1.74 (colored)

Defopt SYSVMSG, SYSVSEM and SYSVSHM.

Revision 1.74 / (download) - annotate - [select for diffs], Sun Sep 27 17:23:25 1998 UTC (24 years, 4 months ago) by drochner
Branch: MAIN
Changes since 1.73: +4 -4 lines
Diff to previous 1.73 (colored)

fix PMAP_ACTIVATE_ASN_SANITY() arguments

Revision 1.73 / (download) - annotate - [select for diffs], Thu Sep 24 23:07:06 1998 UTC (24 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.72: +4 -4 lines
Diff to previous 1.72 (colored)

NCPU > 1 -> MULTIPROCESSOR

Revision 1.72 / (download) - annotate - [select for diffs], Tue Sep 22 03:58:10 1998 UTC (24 years, 4 months ago) by thorpej
Branch: MAIN
Changes since 1.71: +147 -143 lines
Diff to previous 1.71 (colored)

Add some support for multiple processors to the pmap module.  Still left
to do: TLB shootdown code, but that will be much easier to write once
the code to spin up the additional CPUs is working.

Revision 1.71 / (download) - annotate - [select for diffs], Tue Sep 1 20:30:20 1998 UTC (24 years, 5 months ago) by ross
Branch: MAIN
Changes since 1.70: +5 -4 lines
Diff to previous 1.70 (colored)

Fix off-by-one errors in assertion in DIAGNOSTIC in pmap_remove()

Revision 1.70 / (download) - annotate - [select for diffs], Fri Aug 28 22:22:48 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.69: +3 -3 lines
Diff to previous 1.69 (colored)

Use the "nointr" pool page allocator for pmap_pmap_pool.

Revision 1.69 / (download) - annotate - [select for diffs], Fri Aug 28 19:22:50 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.68: +4 -4 lines
Diff to previous 1.68 (colored)

Fix a debug printf.

Revision 1.68 / (download) - annotate - [select for diffs], Tue Aug 25 23:09:08 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.67: +28 -3 lines
Diff to previous 1.67 (colored)

Always use pmap_kremove() if removing a mapping from the kernel pmap.

Revision 1.67 / (download) - annotate - [select for diffs], Tue Aug 25 18:21:17 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.66: +10 -10 lines
Diff to previous 1.66 (colored)

Shave yet more translation ops from the inner loops of pmap_protect().

Revision 1.66 / (download) - annotate - [select for diffs], Tue Aug 25 09:00:19 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.65: +130 -58 lines
Diff to previous 1.65 (colored)

Break the code that cleans out page tables from pmap_remove_mapping() into
separate functions that perform the cleanout starting at the l3pt, l2pt,
or l1pt.

Revision 1.65 / (download) - annotate - [select for diffs], Tue Aug 25 08:00:15 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.64: +32 -33 lines
Diff to previous 1.64 (colored)

Optimize the pmap_protect() loop.  Will make a similar change to pmap_remove()
once some changes are made to how pt pages are cleaned up.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Aug 25 06:21:16 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.63: +13 -17 lines
Diff to previous 1.63 (colored)

Change pmap_changebit() to take a mask of bits to set, and a PTE mask,
shaving several instructions out of the inner loop.

Revision 1.63 / (download) - annotate - [select for diffs], Tue Aug 25 01:11:11 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.62: +3 -3 lines
Diff to previous 1.62 (colored)

Oops, use M_VMPMAP as the malloc type in pool_init().

Revision 1.62 / (download) - annotate - [select for diffs], Tue Aug 25 01:09:04 1998 UTC (24 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.61: +13 -6 lines
Diff to previous 1.61 (colored)

Use the pool allocator to allocate pmap structures.

Revision 1.61 / (download) - annotate - [select for diffs], Fri Aug 14 16:50:01 1998 UTC (24 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.60: +92 -88 lines
Diff to previous 1.60 (colored)

vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t

Revision 1.60 / (download) - annotate - [select for diffs], Tue Aug 4 22:40:17 1998 UTC (24 years, 6 months ago) by thorpej
Branch: MAIN
Changes since 1.59: +5 -2 lines
Diff to previous 1.59 (colored)

Simple instrumentation of pmap_steal_memory().

Revision 1.59 / (download) - annotate - [select for diffs], Wed Jul 8 17:30:45 1998 UTC (24 years, 7 months ago) by thorpej
Branch: MAIN
CVS Tags: eeh-paddr_t-base, eeh-paddr_t
Changes since 1.58: +29 -21 lines
Diff to previous 1.58 (colored)

Place the software PG_EXEC PTE bit into the protection array, instead
of OR'ing it in manually.

Revision 1.58 / (download) - annotate - [select for diffs], Fri Jul 3 05:22:10 1998 UTC (24 years, 7 months ago) by thorpej
Branch: MAIN
Changes since 1.57: +8 -2 lines
Diff to previous 1.57 (colored)

Mark the kernel pmap `active' in pmap_bootstrap().

Revision 1.57 / (download) - annotate - [select for diffs], Fri Jun 12 21:14:43 1998 UTC (24 years, 8 months ago) by mjacob
Branch: MAIN
Changes since 1.56: +28 -13 lines
Diff to previous 1.56 (colored)

Roll back to 1.55 level since 1.56 will not compile.

Revision 1.56 / (download) - annotate - [select for diffs], Fri Jun 12 07:28:07 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.55: +14 -29 lines
Diff to previous 1.55 (colored)

Delete a debugging clause that is no longer necessary, and also can't
work properly if we're testing for a pmap active on _other_ processors.

Revision 1.55 / (download) - annotate - [select for diffs], Fri Jun 12 00:45:47 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.54: +15 -15 lines
Diff to previous 1.54 (colored)

Rename active_pmap() to PMAP_ISACTIVE().

Revision 1.54 / (download) - annotate - [select for diffs], Thu Jun 11 10:36:08 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.53: +8 -2 lines
Diff to previous 1.53 (colored)

In pmap_enter(): if old PTE was not valid, we don't need to sync
the I-stream, for the same reason we don't need to invalidate the TLB.

Revision 1.53 / (download) - annotate - [select for diffs], Thu Jun 11 10:30:14 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.52: +18 -18 lines
Diff to previous 1.52 (colored)

Track mappings entered w/ VM_PROT_EXECUTE, and only synchronize the
I-stream when changing PTE bits or removing mappings that were entered
w/ EXECUTE protection.

Revision 1.52 / (download) - annotate - [select for diffs], Thu Jun 11 05:16:35 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.51: +3 -119 lines
Diff to previous 1.51 (colored)

Garbage-collect the old PMAPSTATS stuff; it didn't compile, and should
just be redone from scratch.  Get it out of the way now to make it easier
to restructure a few things.

Revision 1.51 / (download) - annotate - [select for diffs], Thu Jun 11 05:08:37 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.50: +52 -32 lines
Diff to previous 1.50 (colored)

Significantly reduce the number of I-stream synchronizations by really
decoupling this operation from TLB invalidations (e.g. pull I-stream
syncs out of loops, executing them only once, etc.).

Revision 1.50 / (download) - annotate - [select for diffs], Thu Jun 11 02:45:21 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.49: +34 -16 lines
Diff to previous 1.49 (colored)

Separate syncing the I-stream from invalidating the translation buffer.

Revision 1.49 / (download) - annotate - [select for diffs], Thu Jun 11 00:34:16 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.48: +2 -5 lines
Diff to previous 1.48 (colored)

Correct a comment.

Revision 1.48 / (download) - annotate - [select for diffs], Sun May 24 22:15:19 1998 UTC (24 years, 8 months ago) by ross
Branch: MAIN
Changes since 1.47: +4 -3 lines
Diff to previous 1.47 (colored)

Rebury an old mach-vm-quirk warning, for mach vm kernels.

Revision 1.47 / (download) - annotate - [select for diffs], Sun May 24 20:59:49 1998 UTC (24 years, 8 months ago) by ross
Branch: MAIN
Changes since 1.46: +7 -4 lines
Diff to previous 1.46 (colored)

Fix previous to kill gcc warning in non-DEBUG compile.

Revision 1.46 / (download) - annotate - [select for diffs], Sat May 23 22:23:09 1998 UTC (24 years, 8 months ago) by ross
Branch: MAIN
Changes since 1.45: +7 -7 lines
Diff to previous 1.45 (colored)

In pmap_pv_enter() untangle the allocated pv (now "newpv") and the DEBUG
loop temporary so DEBUG kernels don't trap on startup.

Revision 1.45 / (download) - annotate - [select for diffs], Wed May 20 04:05:50 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.44: +341 -59 lines
Diff to previous 1.44 (colored)

Add fine-grained locking, using a locking protocol modeled after the i386
UVM pmap's locking protocol, written by Chuck Cranor.  Not all of the
support for multiple processors is here yet, but the kernel does run
under moderate loads with LOCKDEBUG (all locking operations are no-ops
unless LOCKDEBUG is turned on).

This is by no means complete... there are still some possible snares
to take a look at.

Revision 1.44 / (download) - annotate - [select for diffs], Tue May 19 19:00:12 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.43: +39 -32 lines
Diff to previous 1.43 (colored)

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

Revision 1.43 / (download) - annotate - [select for diffs], Tue May 19 05:21:34 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.42: +93 -87 lines
Diff to previous 1.42 (colored)

Make function naming consistent, and teach pmap_pv_dump() about page
usage types.

Revision 1.42 / (download) - annotate - [select for diffs], Tue May 19 02:57:01 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.41: +73 -83 lines
Diff to previous 1.41 (colored)

No need to keep global pointers to the initial kernel level 2 and level 3
page tables.  Also, rename Lev1map to kernel_lev1map.

Revision 1.41 / (download) - annotate - [select for diffs], Tue May 19 02:43:48 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.40: +20 -20 lines
Diff to previous 1.40 (colored)

Nuke `register'.

Revision 1.40 / (download) - annotate - [select for diffs], Tue May 19 02:42:41 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.39: +3 -3 lines
Diff to previous 1.39 (colored)

Put pmap_initialized in the BSS segment.

Revision 1.39 / (download) - annotate - [select for diffs], Tue May 19 02:04:28 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.38: +74 -95 lines
Diff to previous 1.38 (colored)

Make PT page reference counting more generic so it can be used for other
special use page types.

Revision 1.38 / (download) - annotate - [select for diffs], Tue May 19 00:42:16 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.37: +26 -16 lines
Diff to previous 1.37 (colored)

The Alpha architecture has a variable page size; don't hardwire the
number of PV entries per page at compile time.

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

Make the page attribute manifest constant names have similar form to
page usage manifest constant names.

Revision 1.36 / (download) - annotate - [select for diffs], Tue May 19 00:20:21 1998 UTC (24 years, 8 months ago) by thorpej
Branch: MAIN
Changes since 1.35: +27 -32 lines
Diff to previous 1.35 (colored)

Keep track of page usage inside the pmap (pvent, l{1,2,3}pt page, "normal").

Revision 1.35 / (download) - annotate - [select for diffs], Fri May 1 05:22:16 1998 UTC (24 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.34: +7 -7 lines
Diff to previous 1.34 (colored)

Fix some whitespace.

Revision 1.34 / (download) - annotate - [select for diffs], Thu Apr 30 08:27:00 1998 UTC (24 years, 9 months ago) by ross
Branch: MAIN
Changes since 1.33: +11 -21 lines
Diff to previous 1.33 (colored)

Rewrite active_pmap() and again kill the reborn curproc bug.

Revision 1.33 / (download) - annotate - [select for diffs], Mon Apr 27 19:17:16 1998 UTC (24 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.32: +9 -9 lines
Diff to previous 1.32 (colored)

Fix the semantics (and the comment describing them) of pmap_update().  This
function is intended to process any deferred pmap operations, and is not
meant as a general means of flushing the TLB.  Since this pmap module does
not defer any operations, make pmap_update() do nothing.

Revision 1.32 / (download) - annotate - [select for diffs], Mon Apr 27 19:07:03 1998 UTC (24 years, 9 months ago) by thorpej
Branch: MAIN
Changes since 1.31: +46 -35 lines
Diff to previous 1.31 (colored)

Increase the efficiency of pmap_l{2,3}pte() somewhat, by allowing the
caller to pass an optional 3rd argument, which is the previous level
PTE corresponding the virtual address.  If this argument is non-NULL,
the table walk otherwise necessary will be bypassed.

Revision 1.31 / (download) - annotate - [select for diffs], Wed Apr 15 00:46:57 1998 UTC (24 years, 10 months ago) by mjacob
Branch: MAIN
Changes since 1.30: +6 -5 lines
Diff to previous 1.30 (colored)

add Alpha 4100 support

Revision 1.30 / (download) - annotate - [select for diffs], Mon Mar 30 17:52:03 1998 UTC (24 years, 10 months ago) by cgd
Branch: MAIN
Changes since 1.29: +17 -3 lines
Diff to previous 1.29 (colored)

revert back to 1.28

Revision 1.29 / (download) - annotate - [select for diffs], Sat Mar 28 19:53:42 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.28: +5 -19 lines
Diff to previous 1.28 (colored)

We don't have software-only maps, so a NULL pmap_t will never be passed
to pmap functions.

Revision 1.28 / (download) - annotate - [select for diffs], Sat Mar 28 19:44:49 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.27: +2 -9 lines
Diff to previous 1.27 (colored)

Remove a comment that is not applicable in NetBSD - we don't have
software-only maps.

Revision 1.27 / (download) - annotate - [select for diffs], Fri Mar 27 19:18:04 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.26: +43 -86 lines
Diff to previous 1.26 (colored)

Add a PMAP_KERNEL_PTE() macro that returns the PTE for a given KVA.  If
DEBUG, this performs a table walk.  Othwise, the Virtual Page Table is
used.  Use this macro in a few places where this was done by-hand.

Make vtophys() use PMAP_KERNEL_PTE().  In non-DEBUG cases, this is
a fair bit faster.

Revision 1.26 / (download) - annotate - [select for diffs], Fri Mar 27 00:52:43 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.25: +39 -11 lines
Diff to previous 1.25 (colored)

Add some robustness to pmap_alloc_physpage(): Instead of panic'ing if
we can't get a page, find an inactive pmap and pmap_collect() it,
freeing up a few pages.  Go ahead and die if we can't allocate a page
after 5 tries.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Mar 26 22:18:36 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.24: +9 -2 lines
Diff to previous 1.24 (colored)

Give pmap_collect() some substance: when called, a process is being
swapped out, so remove all of the physical mappings the process has
in order to free up the page table pages.

Since the pmap module is allowed to "forget" mappings, pmap_collect()
may be called in other situations where the memory situation is desperate,
although it's more likely that the pages will simply be needed again the
next time a process runs.

Revision 1.24 / (download) - annotate - [select for diffs], Thu Mar 26 19:06:28 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.23: +30 -7 lines
Diff to previous 1.23 (colored)

Sanity check the virtual addresses in the kernel and non-kernel cases
of pmap_enter() (and pmap_kenter_*()).  Remove diagnostic check for
kernel pmap in pmap_alloc_asn().

Revision 1.23 / (download) - annotate - [select for diffs], Thu Mar 26 02:45:34 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.22: +7 -2 lines
Diff to previous 1.22 (colored)

If NEW_SCC_DRIVER is defined, the 3000/300 and 3000/500 are not
PROM console candidates.

Revision 1.22 / (download) - annotate - [select for diffs], Thu Mar 26 02:18:03 1998 UTC (24 years, 10 months ago) by thorpej
Branch: MAIN
Changes since 1.21: +2784 -2684 lines
Diff to previous 1.21 (colored)

Remove the Mach 3 pmap from the tree, replacing it with the contents of
pmap.old.<whatever>.  To see the history, look at the corresponding
pmap.old.<whatever> file.

Revision 1.19.4.1 / (download) - annotate - [select for diffs], Thu Sep 4 00:52:49 1997 UTC (25 years, 5 months ago) by thorpej
Branch: marc-pcmcia
Changes since 1.19: +26 -30 lines
Diff to previous 1.19 (colored) next main 1.20 (colored)

Update marc-pcmcia branch from trunk.

Revision 1.21 / (download) - annotate - [select for diffs], Tue Sep 2 18:59:02 1997 UTC (25 years, 5 months ago) by thorpej
Branch: MAIN
CVS Tags: thorpej-signal-base, thorpej-signal, netbsd-1-3-base, netbsd-1-3-RELEASE, netbsd-1-3-PATCH003-CANDIDATE2, netbsd-1-3-PATCH003-CANDIDATE1, netbsd-1-3-PATCH003-CANDIDATE0, netbsd-1-3-PATCH003, netbsd-1-3-PATCH002, netbsd-1-3-PATCH001, netbsd-1-3-BETA, netbsd-1-3, marc-pcmcia-base
Changes since 1.20: +26 -29 lines
Diff to previous 1.20 (colored)

- Make the pmap_activate() and pmap_deactivate() interfaces consistent my
  passing them a proc *, which encapsulates all of the information necessary
  to activate an address space.
- Clean up some debugging code.

Revision 1.20 / (download) - annotate - [select for diffs], Tue Sep 2 13:18:28 1997 UTC (25 years, 5 months ago) by thorpej
Branch: MAIN
Changes since 1.19: +2 -3 lines
Diff to previous 1.19 (colored)

Nuke the idea of <machine/options.h>.  It completely defeats the purpose
of fine-grain option dependencies.

Revision 1.17.2.1 / (download) - annotate - [select for diffs], Sun Jun 1 04:11:33 1997 UTC (25 years, 8 months ago) by cgd
Branch: alpha-nwscons
Changes since 1.17: +6 -1 lines
Diff to previous 1.17 (colored) next main 1.18 (colored)

sync the nwscons branch up with yesterday's version of the trunk.
Lots of conflicts/changes because of the RCS Id format changes.
Also, a few cleanups and corrections.

Revision 1.19 / (download) - annotate - [select for diffs], Mon Apr 7 23:39:59 1997 UTC (25 years, 10 months ago) by cgd
Branch: MAIN
CVS Tags: marc-pcmcia-bp, bouyer-scsipi, alpha-nwscons-base
Branch point for: marc-pcmcia
Changes since 1.18: +5 -2 lines
Diff to previous 1.18 (colored)

by default, provide RCS IDs for NetBSD/alpha kernel files in kernel binaries.
This can be disabled (to save a bit of space) with the NO_KERNEL_RCSIDS
options, which is present but commented out in the ALPHA config file.
In ELF-format kernels, these strings are present in the kernel binary but
are not loaded into memory.  (In ECOFF-format kernels, there's no easy way
to keep them from being loaded, so they _are_ loaded into memory.)

Revision 1.18 / (download) - annotate - [select for diffs], Mon Apr 7 00:19:18 1997 UTC (25 years, 10 months ago) by cgd
Branch: MAIN
Changes since 1.17: +3 -1 lines
Diff to previous 1.17 (colored)

clean up NetBSD RCS ID strings, include machine/options.h

Revision 1.17 / (download) - annotate - [select for diffs], Sun Oct 13 02:59:42 1996 UTC (26 years, 4 months ago) by christos
Branch: MAIN
CVS Tags: thorpej-setroot, mrg-vm-swap, is-newarp-before-merge, is-newarp-base, is-newarp
Branch point for: alpha-nwscons
Changes since 1.16: +72 -72 lines
Diff to previous 1.16 (colored)

backout previous kprintf change

Revision 1.16 / (download) - annotate - [select for diffs], Thu Oct 10 23:50:37 1996 UTC (26 years, 4 months ago) by christos
Branch: MAIN
Changes since 1.15: +72 -72 lines
Diff to previous 1.15 (colored)

printf -> kprintf, sprintf -> ksprintf

Revision 1.15 / (download) - annotate - [select for diffs], Tue Aug 20 23:08:08 1996 UTC (26 years, 5 months ago) by cgd
Branch: MAIN
Changes since 1.14: +391 -161 lines
Diff to previous 1.14 (colored)

lots of debugging printf flags, serious clean, add pmap_{,de}activate()

Revision 1.14 / (download) - annotate - [select for diffs], Tue Jul 16 04:51:16 1996 UTC (26 years, 7 months ago) by cgd
Branch: MAIN
Changes since 1.13: +210 -125 lines
Diff to previous 1.13 (colored)

rework bootstrap/startup process to match the BSD pmap startup model.
start adding back in tracing printfs.  add support for the virtual page
table.  Now it gets to user-land code, but fails because i've not
added support to the context switch code to activate and deactivate pmaps.

Revision 1.13 / (download) - annotate - [select for diffs], Sun Jul 14 20:00:22 1996 UTC (26 years, 7 months ago) by cgd
Branch: MAIN
Changes since 1.12: +3 -3 lines
Diff to previous 1.12 (colored)

rename translation buffer invalidation macros to start with ALPHA_,
like all other macros defined in alpha_cpu.h.

Revision 1.12 / (download) - annotate - [select for diffs], Thu Jul 11 03:52:44 1996 UTC (26 years, 7 months ago) by cgd
Branch: MAIN
Changes since 1.11: +4 -4 lines
Diff to previous 1.11 (colored)

update for new alpha_cpu.h definitions.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Jul 10 03:17:12 1996 UTC (26 years, 7 months ago) by cgd
Branch: MAIN
Changes since 1.10: +343 -105 lines
Diff to previous 1.10 (colored)

it compiles, but DEFINITELY does not run

Revision 1.10 / (download) - annotate - [select for diffs], Tue Jul 2 22:51:46 1996 UTC (26 years, 7 months ago) by cgd
Branch: MAIN
Changes since 1.9: +4 -31 lines
Diff to previous 1.9 (colored)

minor cleanups to fit into the NetBSD source tree better (e.g. remove
RCS Log messages).  Haven't even tried to compile it yet.

Revision 1.9 / (download) - annotate - [select for diffs], Tue Jul 2 22:42:39 1996 UTC (26 years, 7 months ago) by cgd
Branch: MAIN
CVS Tags: mach-pmap
Changes since 1.8: +2342 -1812 lines
Diff to previous 1.8 (colored)

pull in the Mach3 alpha pmap, as a base for the new pmap module.  Modified
from the mach3 versions only as much as necessary to allow the old
NetBSD/Alpha pmap code to compile.  THESE WILL NOT WORK AS-IS, and at
minimum will require code to implement reference- and modified-bit
emulation.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Apr 12 02:09:24 1996 UTC (26 years, 10 months ago) by cgd
Branch: MAIN
CVS Tags: netbsd-1-2-base, netbsd-1-2-RELEASE, netbsd-1-2-PATCH001, netbsd-1-2-BETA, netbsd-1-2
Changes since 1.7: +43 -11 lines
Diff to previous 1.7 (colored)

add some sanity checks to avoid lossage when dealing with unmanaged
pages, and clean up a little bit.

Revision 1.7 / (download) - annotate - [select for diffs], Thu Nov 23 02:34:26 1995 UTC (27 years, 2 months ago) by cgd
Branch: MAIN
Changes since 1.6: +179 -107 lines
Diff to previous 1.6 (colored)

wholesale update from my NetBSD/Alpha source tree.  Includes:
	Support for AXPpci CPUs,
	Support for AlphaStation 600 CPUs,
	new boot block structure, which requires an 'installboot'
	    program and works a lot like the NetBSD/sparc boot blocks.

Revision 1.6 / (download) - annotate - [select for diffs], Thu Aug 3 00:52:24 1995 UTC (27 years, 6 months ago) by cgd
Branch: MAIN
CVS Tags: netbsd-1-1-base, netbsd-1-1-RELEASE, netbsd-1-1-PATCH001, netbsd-1-1
Changes since 1.5: +1 -2 lines
Diff to previous 1.5 (colored)

console printf twiddling warning not really necessary now

Revision 1.5 / (download) - annotate - [select for diffs], Wed Jun 28 02:45:15 1995 UTC (27 years, 7 months ago) by cgd
Branch: MAIN
Changes since 1.4: +6 -5 lines
Diff to previous 1.4 (colored)

sync with my current Alpha sources

Revision 1.4 / (download) - annotate - [select for diffs], Mon Apr 10 12:41:29 1995 UTC (27 years, 10 months ago) by mycroft
Branch: MAIN
Changes since 1.3: +28 -28 lines
Diff to previous 1.3 (colored)

Bring back pmap_kernel(), for now always inlined as a pointer to
kernel_pmap_store.

Revision 1.3 / (download) - annotate - [select for diffs], Fri Mar 24 15:07:15 1995 UTC (27 years, 10 months ago) by cgd
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

remove support for double-mapping the user area and kernel stack.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Mar 8 00:38:53 1995 UTC (27 years, 11 months ago) by cgd
Branch: MAIN
Changes since 1.1: +4 -3 lines
Diff to previous 1.1 (colored)

update from my local tree; better CPU configuration, support for 3000/300.

Revision 1.1 / (download) - annotate - [select for diffs], Mon Feb 13 23:07:07 1995 UTC (28 years ago) by cgd
Branch: MAIN

preliminary Alpha support.  note that NOT ALL OF THE MODIFICATIONS TO
THE REST OF THE KERNEL ARE IN THE TREE YET.  Also, some of this is
_incredibly_ hack-ish, etc., but it works.

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>