Home | History | Annotate | Download | only in sun3
History log of /src/sys/arch/sun3/sun3/pmap.c
RevisionDateAuthorComments
 1.180  27-Jun-2025  andvar Grammar and spelling fixes, mainly in comments. A few in documentation,
logging, test description, and SCSI ASC/ASCQ assignment descriptions.
 1.179  20-Dec-2024  tsutsui Remove trailing whitespace.
 1.178  13-Jan-2024  thorpej Fix a comment.
 1.177  27-Dec-2023  thorpej Re-factor the 680x0 Function Code definitions into their own
separate file (as was done on the sun2/sun3 ports ages ago)
and switch everyone to the common header.
 1.176  22-Dec-2023  thorpej pv_link(): Seed pv_flags for the page with PG_MOD and PG_REF if
the caller pre-set those bits in the PTE (which pmap_enter() does,
based on hints from uvm_fault()), avoiding the slow path in
pmap_is_{referenced,modified}().
 1.175  17-Dec-2023  andvar Reshuffle ifdef HAVECACHE/DIAGNOSTIC blocks with the main purpose to make
code build without HAVECACHE/DIAGNOSTIC options, as well as some cleanup:
flags in pv_link is used for HAVECACHE only, declare/define it in the block.
flush_by_page declaration can omit ifdef when only conditional body is guarded.
segva is used only in DIAGNOSTIC/HAVECACHE in pmap_protect_mmu.
combine consecutive DIAGNOSTIC/HAVECACHE blocks were possible.

No functional changes intended.
 1.174  02-Jun-2023  andvar follow the steps of Andrew Doran (ad) commit and fix more s/loose/lose/ typos.
also s/beyound/beyond/ and few others along the way, mainly in comments.
 1.173  06-Feb-2022  andvar fix various typos in comments, log messages and documentation.
mainly s/aparently/apparently/ and s/implmented/implemented/.
 1.172  02-Aug-2021  andvar fix various typos in comments and log messages.
 1.171  22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.170  07-Nov-2013  christos branches: 1.170.6; 1.170.10;
fix unused warnings
 1.169  07-Sep-2013  tsutsui Whitespace cleanup.
 1.168  07-Jan-2013  chs branches: 1.168.2;
switch to __USE_TOPDOWN_VM.
 1.167  29-Jan-2012  para branches: 1.167.6;
convert from malloc(9) to kmem(9)
 1.166  03-Jun-2011  tsutsui branches: 1.166.2; 1.166.6;
- remove simple_lock(9) and use atomic_ops(3) to account pmap reference count,
perrequest from rmind@
- while here no need to export struct pmap on sun2/sun3/sun3x

No particular problem for a week on hp300 and sun3x kernels with disabled
tcp_vtw which has been broken for a month on low memory machines.
 1.165  15-Oct-2010  tsutsui branches: 1.165.2; 1.165.6;
Make common kernel module binaries work on both sun3 and sun3x.
Tested on 3/160 (on TME) and (real) 3/80.

XXX: module files can be loaded only on single user?
 1.164  11-Dec-2009  tsutsui branches: 1.164.2; 1.164.4;
Refactoring MD segment related definitions on m68k ports:
- move macro SEGSHIFT, NBSG, and SEGOFFSET from <machine/param.h>
to <machine/pmap.h> where they should belong
- don't use m68k_round_seg() and m68k_trunc_seg() in sun3 pmap sources
and instead define and use sun3_round_seg() and sun3_trunc_seg()
since they are quite pmap implementation dependent
 1.163  21-Nov-2009  rmind Use lwp_getpcb() on sparc{64} and sun2/3 MD code, clean from struct user usage.
 1.162  07-Nov-2009  cegger 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.
 1.161  21-Oct-2009  rmind 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>.
 1.160  21-Apr-2009  cegger change pmap flags argument from int to u_int.
discussed with christos@ on source-changes-d@
 1.159  10-Dec-2008  pooka branches: 1.159.2;
Make kernel_pmap_ptr a const. Requested by steve_martin.
 1.158  09-Dec-2008  pooka 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.
 1.157  28-Apr-2008  martin branches: 1.157.6; 1.157.8;
Remove clause 3 and 4 from TNF licenses
 1.156  27-Apr-2008  tsutsui Make compile with debug options.
 1.155  17-Oct-2007  garbled branches: 1.155.16; 1.155.18; 1.155.20;
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.
 1.154  18-May-2007  tsutsui branches: 1.154.10;
Adapt sun68k ports to yamt-idlelwp.
Tested on TME (sun2 and sun3) and 3/80 (sun3x).
 1.153  12-Mar-2007  ad branches: 1.153.2; 1.153.8;
Pass an ipl argument to pool_init/POOL_INIT to be used when initializing
the pool's lock.
 1.152  22-Feb-2007  thorpej branches: 1.152.4;
TRUE -> true, FALSE -> false
 1.151  21-Feb-2007  thorpej 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.
 1.150  15-Mar-2006  drochner branches: 1.150.16;
adapt to uvm_fault() interface cleanup: kill the useless 3rd argument
 1.149  11-Dec-2005  christos branches: 1.149.4; 1.149.6; 1.149.8; 1.149.10;
merge ktrace-lwp.
 1.148  19-Jun-2005  thorpej branches: 1.148.2;
Move common Sun ID PROM definitions into <dev/sun/idprom.h>.
 1.147  29-May-2005  chs in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.146  01-Apr-2005  yamt merge yamt-km branch.
- don't use managed mappings/backing objects for wired memory allocations.
save some resources like pv_entry. also fix (most of) PR/27030.
- simplify kernel memory management API.
- simplify pmap bootstrap of some ports.
- some related cleanups.
 1.145  22-Jan-2005  chs branches: 1.145.2; 1.145.6;
de-__P, remove register, ansify, b* -> mem*, u_int*_t -> uint*_t.
 1.144  15-Jul-2003  lukem branches: 1.144.2; 1.144.6; 1.144.8;
__KERNEL_RCSID()
 1.143  23-Jun-2003  martin branches: 1.143.2;
Make sure to include opt_foo.h if a defflag option FOO is used.
 1.142  10-May-2003  thorpej 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.
 1.141  08-May-2003  thorpej 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).
 1.140  01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.139  18-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.138  20-Oct-2002  chs merge the 12 copies of vm_machdep.c on the m68k platforms.
clean up some other stuff along the way, including:
- use m68k/cacheops.*, remove duplicates from cpu.h.
- centralize a few declarations in (all the copies of) cpu.h.
- define M68K_VAC on platforms which have a VAC.
- switch the sun platforms to the (now common) proc_trampoline().
- do the phys_map thang on the sun platforms too, no reason not to.
 1.137  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.136  08-Mar-2002  thorpej 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.
 1.135  10-Sep-2001  chris branches: 1.135.4;
Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

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

Reviewed by Jason.
 1.134  07-Sep-2001  tsutsui Fix function names in panic messages.
 1.133  05-Sep-2001  tsutsui branches: 1.133.2;
bcopy() -> memcpy(), bzero() -> memset()
 1.132  03-Jul-2001  chs branches: 1.132.2;
vm_offset_t -> [pv]addr_t.
implement pmap_k{enter_pa,remove}() correctly.
general cleanup.
 1.131  19-Jun-2001  wiz `accessible' only has one `a'.
 1.130  02-Jun-2001  chs replace vm_map{,_entry}_t with struct vm_map{,_entry} *.
 1.129  26-May-2001  chs replace vm_page_t with struct vm_page *.
 1.128  25-Apr-2001  thorpej Garbage-collect pmap_page_index().
 1.127  24-Apr-2001  thorpej Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative. It may be possible to
optimize these a little more.
 1.126  22-Apr-2001  thorpej 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.
 1.125  21-Apr-2001  thorpej #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).
 1.124  15-Mar-2001  chs 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>
 1.123  03-Feb-2001  tsutsui branches: 1.123.2;
m68k/m68k.h is now pulled via machine/cpu.h.
 1.122  14-Jan-2001  thorpej splpmap() -> splvm()
 1.121  24-Nov-2000  tsutsui PAGE_SIZE on sun3/sun3x is now constant;
Use uvmexp.pagesize itself for its initialization.
 1.120  27-Oct-2000  tsutsui Use pool(9) for pmap structures.
 1.119  29-Jun-2000  mrg remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h>
 1.118  26-Jun-2000  mrg 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.
 1.117  25-Jun-2000  mrg remove some redundant <vm/vm_xxx.h> includes
 1.116  13-Nov-1999  thorpej Update for pmap_enter() API change. No functional difference.
 1.115  12-Sep-1999  chs branches: 1.115.2; 1.115.4; 1.115.8;
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.
 1.114  08-Jul-1999  thorpej 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.
 1.113  17-Jun-1999  thorpej pmap_change_wiring() -> pmap_unwire().
 1.112  17-Jun-1999  thorpej 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.
 1.111  26-Mar-1999  mycroft branches: 1.111.4;
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.
 1.110  24-Mar-1999  mrg completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
 1.109  26-Feb-1999  is sun3 part of fix for PR 6152
 1.108  16-Jan-1999  chuck MNN is no longer optional, remove dead code
 1.107  17-Dec-1998  gwr Fix some "unused variable" warnings (if !HAVE_CACHE)
 1.106  19-Jul-1998  thorpej Remove redundant opt_ddb.h
 1.105  08-Jul-1998  thorpej Define one page free list, and put all pages on it.
 1.104  04-Jul-1998  jonathan defopt DDB.
 1.103  08-Jun-1998  gwr Add UVM support
 1.102  19-May-1998  thorpej 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).
 1.101  19-Feb-1998  gwr Support MACHINE_NEW_NONCONTIG
 1.100  08-Feb-1998  gwr Fix pmap_map
 1.99  05-Feb-1998  gwr Merge arch/sun3x into arch/sun3
 1.98  22-Jan-1998  gwr branches: 1.98.2;
Use the same names as the sun3x (DVMA_MAP_*)
 1.97  08-Jan-1998  thorpej Update a comment to reflect the vm_bootstrap_steal_memory() change, and
while I'm here, note which two functions will no longer exist when
new non-contig code is done for this pmap.
 1.96  06-Jan-1998  thorpej Always include pmap_pinit(), since it is a defined pmap interface
function (thought, we might revisit that later). Just call pmap_pinit()
in pmap_create(), instead of inlining what pmap_pinit() does.

Also, g/c a TAILQ_FIRST() macro that is now defined in <sys/queue.h>
 1.95  02-Jan-1998  thorpej Make pmap_activate() take a proc *.
 1.94  02-Dec-1997  gwr Kill some noise from -DDEBUG
 1.93  24-Nov-1997  gwr Remove some outdated comments, fix others.
 1.92  24-Nov-1997  gwr Kill unnecessary arguments to pmap_enter_*
Do pa=PG_PA(pte) in pv_link/pv_unlink so it
does not need to happen in as many places.
 1.91  24-Nov-1997  gwr On the 3/50 it is avail_start that must be less than hole_start,
not avail_end. Identified by Greg Oster <oster@cs.usask.ca>
 1.90  21-Nov-1997  gwr Strengthen DIAGNOSTIC checks in pmap_enter_*
Further simplify protection converter (gone).
 1.89  21-Nov-1997  gwr Minor simplifications.
 1.88  19-Nov-1997  gwr Better definition of PA_IS_DEV, and use it two more places.
 1.87  19-Nov-1997  gwr Correct handling of "physical address" values given to us by the
VM code, which may have low bits specifying device space!
 1.86  03-Nov-1997  gwr More efficient implementations of:
pmap_protect_noctx()
pmap_remove_noctx()
 1.85  03-Nov-1997  gwr More reordering
 1.84  03-Nov-1997  gwr Use a private pool of PV elements. This improves performance,
and avoids reentrance into pmap code via malloc().
 1.83  03-Nov-1997  gwr Implement a "kernel-only" context for processes that have not
touched any user-space address recently. This is efficient
for things that stay in the kernel for a while, waking up
to handle some I/O then going back to sleep (i.e. nfsd).
If and when such a process returns to user-mode, it will
fault and be given a real context at that time.

This also makes context switch faster, because all we need
to do there for the MMU is slam the context register.
 1.82  02-Nov-1997  gwr Give the kernel pmap a soft copy of its segmap (like user pmaps)
so we can optimize away calls where pm_segmap[x] == SEGINV.
 1.81  02-Nov-1997  gwr Change some debug prints to db_printf(), other minor stuff.
 1.80  01-Nov-1997  gwr Clean up spl* handling a bit (move some spl* calls up a level,
and have the callee do a CHECK_SPL for debugging).
Get rid of some private TAILQ_* macros.
some cosmetic stuff.
 1.79  31-Oct-1997  gwr More movement.
 1.78  31-Oct-1997  gwr Move things aroun a little (group by purpose, etc.)
 1.77  30-Oct-1997  gwr Replace PMAP_LOCK/PMAP_UNLOCK with splimp/splx
 1.76  30-Oct-1997  gwr Move some variables from _startup.c into pmap.c (used only there).
Re-organize pmap_bootstrap, and shorten some function names.
 1.75  06-Oct-1997  gwr branches: 1.75.2;
Move some of the VM initialization work from _startup.c to pmap.c
where it is normally found.
 1.74  05-Oct-1997  gwr Do kernel core header initialization a little differently.
 1.73  29-Jul-1997  fair branches: 1.73.2;
fix compiler warnings; %x -> 0x%x; add arg to panic in change_pte appropriate to format string; see PR#3757
 1.72  10-Jun-1997  veego s/_trunc_seg/m68k_trunc_seg/ s/_round_page/m68k_round_page/
 1.71  13-Mar-1997  gwr s/sun3_/_/ in sun3_(round|trunc)_(page|seg) macros
 1.70  28-Feb-1997  gwr Allow pmap_page_index to be a macro (in pmap.h)
Make pmap_free_pages() teturn what actually remains
(Thanks to Wolfgang Solfrank for suggesting the fix.)
Fix some typos while I'm here...
 1.69  18-Feb-1997  gwr Add pmap_wired_pages()
 1.68  02-Feb-1997  thorpej branches: 1.68.4;
Use copypage() and zeropage() in the right places.
 1.67  27-Jan-1997  gwr Use sunmon_abort() instead of mon_panic(), etc.
 1.66  27-Jan-1997  gwr Implement _pmap_fault() (does the VA check and calls pmap_fault_reload).
Correct VA range checks in pmap_protect and elsewhere (lower limit of
kernel VA for our purposes is virtual_avail, not VM_MIN_KERNEL_ADDRESS).
Make pmap_activate flush the cache (only if needed). Fix copyright.
 1.65  17-Dec-1996  gwr Make this compile with -Werror -Wall -Wstrict-prototypes
(finally! yea!) Also get rid of __BROKEN_INDIRECT_CONFIG
 1.64  20-Nov-1996  gwr Most files that were copyright Adam Glass and/or Gordon W. Ross
are now copyright The NetBSD Foundation (rights assigned).
 1.63  13-Oct-1996  christos backout previous kprintf change
 1.62  11-Oct-1996  christos printf -> kprintf, sprintf -> ksprintf
 1.61  05-May-1996  gwr Kernel crash dumps now work on the sun3. (Yea!)
 1.60  28-Feb-1996  gwr update PMAP_PREFER
 1.59  12-Feb-1996  christos make pmap_page_index return int
 1.58  10-Oct-1995  gwr New function: set_segmap_allctx()
 1.57  08-Oct-1995  gwr Minor cleanup re. Debugger() calls...
 1.56  26-Sep-1995  gwr New DVMA interface, and various cleanup.
 1.55  15-Aug-1995  gwr Correct a comment re. splnet
 1.54  13-Aug-1995  mycroft splnet --> splsoftnet
 1.53  08-Aug-1995  gwr Make this link with PMAP_DEBUG turned off.
 1.52  27-Jun-1995  gwr Add/correct some cache-flush logic to deal with the fact that the
VAC has ref/mod bits that need write-back treatment.
 1.51  24-May-1995  gwr Add missing conditional (thanks to Jason Thorpe)
Add pmap_collect()
 1.50  13-Apr-1995  gwr prepare to enable the cache
 1.49  10-Apr-1995  mycroft Bring back pmap_kernel(), for now always inlined as a pointer to
kernel_pmap_store.
 1.48  08-Apr-1995  gwr Do the I-cache flush in the process switch asm code like other ports.
 1.47  07-Apr-1995  gwr Flush the cache when switching contexts (thanks to David Jones).
 1.46  17-Mar-1995  gwr Make the "removing wired pmeg" Debugger call conditional.
 1.45  10-Mar-1995  gwr Define IS_MAIN_MEM(pte) better and explain it.
 1.44  10-Mar-1995  gwr Treat high physical addresses like "device" space,
so frame-buffer devices don't go into the pv_lists.
 1.43  11-Jan-1995  gwr Cleanup
 1.42  12-Dec-1994  gwr New autoconfig interface to support VME, etc.
 1.41  30-Nov-1994  gwr branches: 1.41.2;
Improve diagnostic in pmap_page_index().
 1.40  30-Nov-1994  gwr Optimize pmap_page_index() and fix some comments.
 1.39  28-Nov-1994  gwr Fix syscall arg copyin, etc.
 1.38  21-Nov-1994  gwr Lots of changes. Fairly stable now.
 1.37  26-Oct-1994  gwr Move sun3_round_up_seg() here from param.h as a temporary measure.
Eventually, it should be eliminated from these two files as well.
 1.36  26-Oct-1994  cgd new RCS ID format.
 1.35  29-Jul-1994  gwr branches: 1.35.2;
Remove some overly paranoid and incorrect debugging tests.
 1.34  23-Jul-1994  gwr Fix unterminated comment from when I botched the last change...
 1.33  18-Jul-1994  gwr Kill some over-zealous debugging checks.
Make sure kernel maps DVMA space non-cached.
 1.32  14-Jul-1994  gwr Oops, I inserted that last patch in the wrong place.
 1.31  14-Jul-1994  gwr Avoid trying to unmap DVMA space from pv_remove_all().
 1.30  12-Jul-1994  gwr Fix two more bugs. Seems to work now!
 1.29  11-Jul-1994  gwr Yes!!! Fix use of uninitialized variable in pmap_remove_range_mmu()
Add even more paranoid debugging checks (it's still sick )-:
 1.28  05-Jul-1994  gwr branches: 1.28.2;
Add yet more debugging code... (but still not enough).
 1.27  30-Jun-1994  gwr Add yet more debugging hacks:
set pmap_db_watchva=VADDR to see all activity for that VADDR
 1.26  29-Jun-1994  gwr Make setsoft* use the real software interrupt register.
Integrate several fixes from the amiga port (and drop COMPAT_HPUX for now).
Add lots of debugging checks to pmap.c - still needs work.
 1.25  27-May-1994  gwr Catch up with frame.h chages, merge stuff from new hp300 port.
 1.24  20-May-1994  gwr Add pmap_bootstrap_alloc()
 1.23  06-May-1994  gwr Tracking 4.4 integration
 1.22  04-May-1994  gwr Catch up with changes in the common vm code.
 1.21  02-May-1994  glass ugh. splimp is the greater of splnet and splbio now. used by pmap module for splpmap()
 1.20  24-Apr-1994  glass fixed to use new queue stuff. random diffs to make ddb stuff mostly compile
 1.19  01-Mar-1994  glass bugs fixed and cleanup
 1.18  23-Feb-1994  glass boots, presents shell prompt, and doesn't crash immediately
 1.17  04-Feb-1994  glass sun3 port works under NetBSD-current now. rcsids probably fucked
 1.16  12-Dec-1993  glass snapshot of my private sources
 1.15  23-Nov-1993  glass Now works with current tree, as opposed to the july 8th tree in which it was
written.
Requires magnum infrastructure now, particularly the clock stuff.
Fails to exec init because the /sbin/init binary
is a sunos binary. Next step is to integrate sunos compatibility code
from /sys/compat/sunos, and the amiga port.
Does not yet implement MACHINE_NOCONTIG support.

[from glass Mon Nov 22 21:22:45 PST 1993 home tag: home2]
 1.14  12-Oct-1993  glass sun3 port updated. netboot integrated.
 1.13  28-Aug-1993  glass last snapshot before uploading. we still have serious clock problems
 1.12  22-Aug-1993  glass gets past enablertclock(), now time to deal with the mountroot mess
 1.11  21-Aug-1993  glass snapshot. for uploading. gets lost in swtch after enablertclock()
 1.10  15-Aug-1993  glass runs up to and including configure().
todo: exceptions, interrupt support, make isrs affect vector table
kernel/user stacks
 1.9  13-Aug-1993  glass snapshot. ready to call configure(), partial integration of torek's config
stuff, i.e it looks to do the right thing but we haven't written any code
yet :)
 1.8  10-Aug-1993  glass fixed problem that caused two consecutive segments to be using the same
pmeg unknowingly. still too many printfs, not sure how many are actualy
in the machine dependent code. reaches cpu_startup() where it stops
deliberately. next project: autoconfig(), maybe kgdb
 1.7  08-Aug-1993  glass lots of changes, too many printfs
 1.6  05-Aug-1993  glass gets to consinit() and blows up
 1.5  03-Aug-1993  glass it links with out any unresolved symbols, last few are just stubs
because we aren't likely to get near execing init for a while
 1.4  02-Aug-1993  glass toasted a whole load more undefined symbols
 1.3  02-Aug-1993  glass cleanup, one time compile with -Wall, include systm.h
conversion to new asm.h, removal of ALTENTRY(), ENTRY() pairs replaced by
TWOENTRY().
moved idprom fetching stuff to sun3_startup
bug fixes to pmap
added to sun3_startup.c support for initializing the vm layout, and for
verifying the hardware vs the -Ds from config(8)
still doesn't link. but list is much shorter, and much stupider
 1.2  30-Jul-1993  glass snapshot. working on vm bootstrapping problems, and resolution of undefined
symbols.
 1.1  27-Jul-1993  glass new pmap module
 1.28.2.5  29-Jul-1994  cgd from trunk.
 1.28.2.4  24-Jul-1994  cgd update per gwr.
 1.28.2.3  19-Jul-1994  cgd from trunk, per gwr.
 1.28.2.2  15-Jul-1994  cgd update from trunk.
 1.28.2.1  12-Jul-1994  cgd updates from trunk, per gwr
 1.35.2.2  29-Jul-1994  gwr Remove some overly paranoid and incorrect debugging tests.
 1.35.2.1  29-Jul-1994  gwr file pmap.c was added on branch netbsd-1-0 on 1994-07-29 04:04:32 +0000
 1.41.2.1  30-Nov-1994  gwr Make a branch that works with the 1.0 code base.
 1.68.4.1  12-Mar-1997  is Merge in changes from The Trunk
 1.73.2.1  14-Oct-1997  thorpej Update marc-pcmcia branch from trunk.
 1.75.2.5  15-Dec-1997  mellon Pull rev 1.94 up from trunk (gwr)
 1.75.2.4  25-Nov-1997  mellon Pull rev 1.89 through 1.93 up from trunk (gwr)
 1.75.2.3  19-Nov-1997  mellon Pull rev 1.87 and 1.88 up from trunk (gwr)
 1.75.2.2  05-Nov-1997  mellon Pull rev 1.77 through 1.86 up from trunk (gwr)
 1.75.2.1  30-Oct-1997  mellon Pull rev 1.76 up from trunk (gwr)
 1.98.2.1  27-Jan-1998  gwr Merged Sun3 and Sun3X kernel sources.
 1.111.4.2  02-Aug-1999  thorpej Update from trunk.
 1.111.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.115.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.115.4.1  15-Nov-1999  fvdl Sync with -current
 1.115.2.7  23-Apr-2001  bouyer Sync with HEAD.
 1.115.2.6  27-Mar-2001  bouyer Sync with HEAD.
 1.115.2.5  11-Feb-2001  bouyer Sync with HEAD.
 1.115.2.4  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.115.2.3  08-Dec-2000  bouyer Sync with HEAD.
 1.115.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.115.2.1  20-Nov-2000  bouyer 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.
 1.123.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.123.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.132.2.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.132.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.132.2.1  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.133.2.1  01-Oct-2001  fvdl Catch up with -current.
 1.135.4.7  11-Nov-2002  nathanw Catch up to -current
 1.135.4.6  18-Oct-2002  nathanw Catch up to -current.
 1.135.4.5  12-Jul-2002  nathanw No longer need to pull in lwp.h; proc.h pulls it in for us.
 1.135.4.4  24-Jun-2002  nathanw 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).
 1.135.4.3  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.135.4.2  18-Nov-2001  scw MD Scheduler Activation bits for sun3/3x.
Compile-tested only.
 1.135.4.1  10-Sep-2001  scw file pmap.c was added on branch nathanw_sa on 2001-11-18 19:39:02 +0000
 1.143.2.6  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.143.2.5  01-Apr-2005  skrll Sync with HEAD.
 1.143.2.4  24-Jan-2005  skrll Sync with HEAD.
 1.143.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.143.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.143.2.1  03-Aug-2004  skrll Sync with HEAD
 1.144.8.1  29-Apr-2005  kent sync with -current
 1.144.6.1  08-Jun-2005  tron Pull up revision 1.147 (requested by chs in ticket #1980):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.144.2.1  08-Jun-2005  tron Pull up revision 1.147 (requested by chs in ticket #1980):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.145.6.1  06-Jun-2005  tron Pull up revision 1.147 (requested by chs in ticket #424):
in pmap_enter(), preset the mod/ref bits based on the flags argument.
fixes 25640.
 1.145.2.1  12-Feb-2005  yamt use new apis.
 1.148.2.3  03-Sep-2007  yamt sync with head.
 1.148.2.2  26-Feb-2007  yamt sync with head.
 1.148.2.1  21-Jun-2006  yamt sync with head.
 1.149.10.1  19-Apr-2006  elad sync with head - hopefully this will work
 1.149.8.1  01-Apr-2006  yamt sync with head.
 1.149.6.1  22-Apr-2006  simonb Sync with head.
 1.149.4.1  09-Sep-2006  rpaulo sync with head
 1.150.16.2  24-Mar-2007  yamt sync with head.
 1.150.16.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.152.4.2  27-May-2007  ad Sync with head.
 1.152.4.1  13-Mar-2007  ad Sync with head.
 1.153.8.1  22-May-2007  matt Update to HEAD.
 1.153.2.1  11-Jul-2007  mjf Sync with head.
 1.154.10.1  06-Nov-2007  matt sync with HEAD
 1.155.20.3  11-Mar-2010  yamt sync with head
 1.155.20.2  04-May-2009  yamt sync with head.
 1.155.20.1  16-May-2008  yamt sync with head.
 1.155.18.1  18-May-2008  yamt sync with head.
 1.155.16.2  17-Jan-2009  mjf Sync with HEAD.
 1.155.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.157.8.2  28-Apr-2009  skrll Sync with HEAD.
 1.157.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.157.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.159.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.164.4.2  12-Jun-2011  rmind sync with head
 1.164.4.1  05-Mar-2011  rmind sync with head
 1.164.2.2  30-Oct-2010  uebayasi Implement pmap_physload_device(9) to replace xmd(4) MD backend.
Implement pmap_mmap(9) and use it from mem(4) and xmd(4).
 1.164.2.1  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.165.6.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.165.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.166.6.1  18-Feb-2012  mrg merge to -current.
 1.166.2.3  22-May-2014  yamt 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")
 1.166.2.2  23-Jan-2013  yamt sync with head
 1.166.2.1  17-Apr-2012  yamt sync with head
 1.167.6.3  03-Dec-2017  jdolecek update from HEAD
 1.167.6.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.167.6.1  25-Feb-2013  tls resync with head
 1.168.2.1  18-May-2014  rmind sync with head
 1.170.10.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.170.6.1  05-Feb-2017  skrll Sync with HEAD

RSS XML Feed