Home | History | Annotate | Download | only in include
History log of /src/sys/arch/alpha/include/vmparam.h
RevisionDateAuthorComments
 1.40  14-Oct-2020  thorpej Add a mechanism to allow a platform to optionally shelter some region
of physical memory from random allocations from the default VM page
free list. Use this hook to shelter regions within 0-16MB of physical
RAM on Jensen and Irongate systems; those platforms do not have SGMAP
DMA, and so we need to shelter this range so that devices using ISA DMA
(e.g. floppy controller) have an opportunity to allocate DMA-safe memory.

PR port-alpha/27087
 1.39  29-Aug-2020  thorpej Bump UBC_WINSHIFT to 16 (64KB), and UBC_NWINS to 4096 (256MB total).
Alpha has plenty of KVA to use for this.
 1.38  10-Dec-2012  chs enable __USE_TOPDOWN_VM.
 1.37  10-Sep-2012  martin branches: 1.37.2;
Make this file idempotent
 1.36  08-Feb-2011  rmind branches: 1.36.4;
Remove clause 3 (UCB advertising clause) from the University of Utah
copyright. Confirmed by Mike Hibler, mike at cs.utah.edu - thanks!
Also, merge UCB and Utah copyright texts back into one, as they
originally were.

Extra verification by snj@.
 1.35  14-Nov-2010  uebayasi branches: 1.35.2; 1.35.4;
Move struct vm_page_md definition from vmparam.h to pmap.h, because
it's used only by pmap. vmparam.h has definitions for wider
audience.

All GENERIC kernels build tested, except ia64.

powerpc/include/booke/vmparam.h has one too, but it has no pmap.h,
so it's left as is.
 1.34  06-Nov-2010  uebayasi Remove incomplete, never worked dynamic run-time memory registration
(uvm_page_physload(9)). This functionality will be re-added later.
 1.33  06-Mar-2009  joerg branches: 1.33.2; 1.33.4;
Remove SHMMAXPGS from all kernel configs. Dynamically compute the
initial limit as 1/4 of the physical memory. Ensure the limit is at
least 1024 pages, the old default on most platforms.
 1.32  10-Mar-2008  ad branches: 1.32.4; 1.32.12; 1.32.18;
Use atomics to maintain the number of special page references. Should fix
locking problems including in revision 1.232.
 1.31  21-Feb-2008  ad branches: 1.31.2;
Use a hash of locks, instead of one per vm_page.
 1.30  02-Jan-2008  ad branches: 1.30.2;
Merge vmlocking2 to head.
 1.29  11-Dec-2005  christos branches: 1.29.50; 1.29.56; 1.29.60; 1.29.64;
merge ktrace-lwp.
 1.28  22-Mar-2004  matt branches: 1.28.16;
Change default data size to 256MB.
(A native NetBSD build will no longer with a limit of 128MB).
 1.27  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22364, verified by myself.
 1.26  08-Apr-2003  thorpej branches: 1.26.2;
Make PAGE_SIZE, PAGE_SHIFT, and PAGE_MASK compile time constants; we only
support 8K page models at the moment anyway.
 1.25  10-Dec-2002  thorpej Use __LDPGSZ (which must be == USRTEXT) as the text address for a.out
executables, and eliminate the USRTEXT constant, which was only used
by the a.out exec code.
 1.24  15-Nov-2001  soren MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
 1.23  01-May-2001  thorpej branches: 1.23.2; 1.23.4;
Use a single linked list for PV entries. This saves 1MB of space
on my 1G RAM AlphaServer.
 1.22  01-May-2001  thorpej 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.
 1.21  29-Apr-2001  thorpej 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.
 1.20  18-Apr-2001  thorpej Remove an un-true comment regarding the location of the u-area.
 1.19  19-Nov-2000  thorpej branches: 1.19.2;
Make VM_MAX_KERNEL_ADDRESS end on a page boundary.
 1.18  22-May-2000  thorpej Remove the adjustment of VM_PHYS_SIZE for `large memory machines'. The
only adjustment that was really necessary was for VM_KMEM_SIZE, and that
is no longer necessary because there is now generic auto-sizing for
kmem_map.
 1.17  11-Feb-2000  thorpej Update for the NKMEMPAGES changes.
 1.16  26-Jan-2000  tsutsui Remove obsoleted macros.
 1.15  04-Dec-1999  ragge CL* discarding.
 1.14  26-Mar-1999  thorpej branches: 1.14.4; 1.14.8; 1.14.14;
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.
 1.13  16-Jan-1999  chuck MNN is now the only option possible
 1.12  14-Aug-1998  thorpej vm_offset_t -> {paddr_t,vaddr_t}, vm_size_t -> vsize_t
 1.11  08-Jul-1998  thorpej Define one page free list, and put all pages on it.
 1.10  12-Mar-1998  thorpej Increase the maximum userspace address to 4TB. Leave the stack at 8G
for now, but make a note that we might want to move it down to 4G later.
 1.9  27-Feb-1998  thorpej Revamp pv_table management:
- Make pv_table an array of struct pv_head's, which contain LIST_HEADs
for the pv_entry's, as well as page attributes (mod, ref, ptpage).
- Use <sys/queue.h> to manipulate pv_entry lists.
- Fix several obvious bugs in pmap_collect_pv().
- Use K0SEG to access pv_page's.
 1.8  16-Feb-1998  thorpej Add support for non-contiguous physical memory, using MACHINE_NEW_NONCONTIG.
These changes also recover memory that is located before the kernel in
the first system software segment on systems which do not use the PROM
for console I/O. Written by Chris Demetriou and myself.
 1.7  10-Feb-1998  thorpej Make it easier to keep the scaled VM_*_SIZE values in sync w/ the
constants.
 1.6  23-Sep-1997  mjacob A minor barely acceptable hack to handle having a kernel boot on a system
with large amounts of memory and not spew. This doesn't really replace
fixing this problem better later, but it works for now. Basically, if memory
is greater than 128MB, start upping the sizes of some maps.
 1.5  12-Jun-1997  mrg branches: 1.5.4;
bring mrg-vm-swap2 onto mainilne.
 1.4  06-Apr-1997  cgd branches: 1.4.2;
clean up NetBSD RCS ID strings
 1.3  09-Jul-1996  cgd branches: 1.3.2; 1.3.6;
delete cruft, clean up constants
 1.2  23-Nov-1995  cgd 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.
 1.1  13-Feb-1995  cgd 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.
 1.3.6.1  12-Feb-1997  mrg initial work for dynamic swap additions.
 1.3.2.2  22-Jul-1997  cgd sync nwscons branch with changes in -current as of July 21, 1997
 1.3.2.1  01-Jun-1997  cgd 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.
 1.4.2.1  04-May-1997  mrg re-merge mrg-vm-swap into -current, and call it mrg-vm-swap2.
 1.5.4.1  29-Sep-1997  thorpej Update marc-pcmcia branch from trunk.
 1.14.14.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.14.8.3  21-Apr-2001  bouyer Sync with HEAD
 1.14.8.2  22-Nov-2000  bouyer Sync with HEAD.
 1.14.8.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.14.4.1  04-Jul-1999  chs add UBC parameters.
 1.19.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.23.4.3  11-Dec-2002  thorpej Sync with HEAD.
 1.23.4.2  08-Jan-2002  nathanw Catch up to -current.
 1.23.4.1  01-May-2001  nathanw file vmparam.h was added on branch nathanw_sa on 2002-01-08 00:22:54 +0000
 1.23.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.26.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.26.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.26.2.1  03-Aug-2004  skrll Sync with HEAD
 1.28.16.3  17-Mar-2008  yamt sync with head.
 1.28.16.2  27-Feb-2008  yamt sync with head.
 1.28.16.1  21-Jan-2008  yamt sync with head
 1.29.64.1  02-Jan-2008  bouyer Sync with HEAD
 1.29.60.1  30-Dec-2007  ad Locking changes for alpha.
 1.29.56.1  18-Feb-2008  mjf Sync with HEAD.
 1.29.50.2  23-Mar-2008  matt sync with HEAD
 1.29.50.1  09-Jan-2008  matt sync with HEAD
 1.30.2.1  24-Mar-2008  keiichi sync with head.
 1.31.2.2  03-Apr-2008  mjf Sync with HEAD.
 1.31.2.1  21-Feb-2008  mjf file vmparam.h was added on branch mjf-devfs2 on 2008-04-03 12:42:10 +0000
 1.32.18.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.32.12.1  28-Apr-2009  skrll Sync with HEAD.
 1.32.4.1  04-May-2009  yamt sync with head.
 1.33.4.1  05-Mar-2011  rmind sync with head
 1.33.2.3  15-Nov-2010  uebayasi Sync with HEAD.
 1.33.2.2  26-Apr-2010  uebayasi Remove the unfinished code to add a memory segment after uvm_page_init().
It doesn't even compile.

(In the future, we should allocate struct vm_page [] on the added memory
segment for NUMA's sake.)
 1.33.2.1  23-Feb-2010  uebayasi Convert all VM_MDPAGE_INIT()'s to take struct vm_page_md * and paddr_t.
 1.35.4.1  17-Feb-2011  bouyer Sync with HEAD
 1.35.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.36.4.2  16-Jan-2013  yamt sync with (a bit old) head
 1.36.4.1  30-Oct-2012  yamt sync with head
 1.37.2.1  25-Feb-2013  tls resync with head

RSS XML Feed