Home | History | Annotate | Download | only in include
History log of /src/sys/arch/i386/include/vmparam.h
RevisionDateAuthorComments
 1.88  21-Aug-2022  riastradh i386/vmparam.h: Need some constants from i386/pte.h.

These are used by VM_MIN/MAX_KERNEL_ADDRESS. pte.h is small and
likely stable enough that it's not worthwhile to migrate them to
vmparam.h instead.
 1.87  20-Aug-2022  riastradh x86: Split most of pmap.h into pmap_private.h or vmparam.h.

This way pmap.h only contains the MD definition of the MI pmap(9)
API, which loads of things in the kernel rely on, so changing x86
pmap internals no longer requires recompiling the entire kernel every
time.

Callers needing these internals must now use machine/pmap_private.h.
Note: This is not x86/pmap_private.h because it contains three parts:

1. CPU-specific (different for i386/amd64) definitions used by...

2. common definitions, including Xenisms like xpmap_ptetomach,
further used by...

3. more CPU-specific inlines for pmap_pte_* operations

So {amd64,i386}/pmap_private.h defines 1, includes x86/pmap_private.h
for 2, and then defines 3. Maybe we should split that out into a new
pmap_pte.h to reduce this trouble.

No functional change intended, other than that some .c files must
include machine/pmap_private.h when previously uvm/uvm_pmap.h
polluted the namespace with pmap internals.

Note: This migrates part of i386/pmap.h into i386/vmparam.h --
specifically the parts that are needed for several constants defined
in vmparam.h:

VM_MAXUSER_ADDRESS
VM_MAX_ADDRESS
VM_MAX_KERNEL_ADDRESS
VM_MIN_KERNEL_ADDRESS

Since i386 needs PDP_SIZE in vmparam.h, I added it there on amd64
too, just to keep things parallel.
 1.86  11-Feb-2019  cherry We reorganise definitions for XEN source support as follows:

XEN - common sources required for baseline XEN support.
XENPV - sources required for support of XEN in PV mode.
XENPVHVM - sources required for support for XEN in HVM mode.
XENPVH - sources required for support for XEN in PVH mode.
 1.85  23-Jun-2017  joerg branches: 1.85.6;
Recommit exec_subr.c revision 1.79:
Always include a 1MB guard area beyond the end of stack. While ASLR will
normally create a guard area as well, this provides a deterministic area
for all binaries.

Mitigates the rest of CVE-2017-1000374 and CVE-2017-1000375 from
Qualys.

Additionally, change VM_DEFAULT_ADDRESS_TOPDOWN to include
user_stack_guard_size in the size reservation.
 1.84  11-Feb-2017  maxv branches: 1.84.6;
Remove VM_MAX_KERNEL_BUF (unused). Looks like several other ports could
do the same.
 1.83  19-Nov-2016  maxv branches: 1.83.2;
Put a one-page redzone between userland and the PTE space on amd64 and
i386.

The PTE space is a critical region that maps the page tree, and bugs have
been found in both amd64 and i386 where the kernel would wrongly overflow
userland data on this area. This kind of bug is terrible, since it allows
userland to overwrite some entries of the page tree, which makes it easy
to patch the kernel text and get ring0 privileges.
 1.82  07-Aug-2016  dholland Remove unused <sys/tree.h>.
 1.81  24-Jul-2014  riastradh branches: 1.81.4; 1.81.8;
Add a FIRST1G page freelist to x86, for old graphics devices.
 1.80  12-Jun-2014  riastradh Tweak x86 page freelists and add x86_select_freelist.

- Add 4G freelist to i386 -- there may be higher addresses if PAE.
- Add 64G and 1T freelists to amd64.
- Simplify freelist setup code and condense it into a table.
- Add x86_select_freelist to get a freelist guaranteed to yield
addresses no greater than a prescribed maximum address.

x86_select_freelist takes a uint64_t, not a paddr_t or bus_addr_t, so
that you can pass in, e.g., a 36-bit maximum address without needing
to write conditionals for i386/PAE.

No objections on port-x86:

https://mail-index.netbsd.org/port-i386/2014/05/21/msg003277.html
https://mail-index.netbsd.org/port-amd64/2014/05/21/msg002062.html
 1.79  28-Jan-2014  christos branches: 1.79.2;
only limit bottom-up allocations, put back 3G limit on datasize.
 1.78  28-Jan-2014  christos Cut down MAXDSIZE from 3G to 2.5G otherwise bottomup allocation ends up
supplying an out of bounds hint for sigcode (c001e000 > bf000000). Makes
a.out binaries work again.
 1.77  25-Jan-2014  christos delete VM_DEFAULT_ADDRESS; some of those should be GC'ed because they match
the default definition.
 1.76  13-Nov-2012  chs branches: 1.76.2;
bump VM_PHYSSEG_MAX to 32, we've seen a system where 16 wasn't enough.
 1.75  15-Aug-2012  sborrill branches: 1.75.2;
Bump VM_PHYSSEG_MAX to 16 from 10. Modern IBM hardware requires
VM_PHYSSEG_MAX to be turned up to 11 to avoid an early panic.
 1.74  07-May-2012  joerg Raise per-image text size limit to 256MB. 64MB has seen already, so
provide some margin of grows.
 1.73  19-Feb-2012  cherry Removing remaining references to the alternate PTE space. Modify documentation appropriately
 1.72  14-Nov-2010  uebayasi branches: 1.72.8; 1.72.12; 1.72.14;
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.71  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.70  06-Mar-2009  joerg branches: 1.70.2; 1.70.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.69  13-Dec-2008  pooka branches: 1.69.2;
_VMPARAM_H_ -> _$MACHINE_VMPARAM_H_
 1.68  23-Jan-2008  bouyer branches: 1.68.6; 1.68.10; 1.68.18;
Merge the bouyer-xeni386 branch. This brings in PAE support to NetBSD xeni386
(domU only). PAE support is enabled by 'options PAE', see the new XEN3PAE_DOMU
and INSTALL_XEN3PAE_DOMU kernel config files.

See the comments in arch/i386/include/{pte.h,pmap.h} to see how it works.
In short, we still handle it as a 2-level MMU, with the second level page
directory being 4 pages in size. pmap switching is done by switching the
L2 pages in the L3 entries, instead of loading %cr3. This is almost required
by Xen, which handle the last L2 page (the one mapping 0xc0000000 - 0xffffffff)
in a very special way. But this approach should also work for native PAE
support if ever supported (in fact, the pmap should almost suport native
PAE, what's missing is bootstrap code in locore.S).
 1.67  20-Jan-2008  yamt - rewrite P->V tracking.
- use a hash rather than SPLAY trees.
SPLAY tree is a wrong algorithm to use here.
will be revisited if it slows down anything other than
micro-benchmarks.
- optimize the single mapping case (it's a common case) by
embedding an entry into mdpage.
- don't keep a pmap pointer as it can be obtained from ptp.
(discussed on port-i386 some years ago.)
ideally, a single paddr_t should be enough to describe a pte.
but it needs some more thoughts as it can increase computational
costs.
- pmap_enter: simplify and fix races with pmap_sync_pv.
- don't bother to lock pm_obj[i] where i > 0, unless DIAGNOSTIC.
- kill mp_link to save space.
- add many KASSERTs.
 1.66  11-Jan-2008  bouyer Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the
branch is still active and will see i386PAE support developement).
Sumary of changes:
- switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c
pmap bootstrap.
- merge back most of xen/i386/ to i386/i386
- change the build to reduce diffs between i386 and amd64 in file locations
- remove include files that were identical to the i386/amd64 counterparts,
the build will find them via the xen-ma/machine link.
 1.65  06-Jan-2008  ad #include <sys/mutex.h>
 1.64  18-Oct-2007  yamt branches: 1.64.2; 1.64.8;
merge yamt-x86pmap branch.

- reduce differences between amd64 and i386. notably, share pmap.c
between them. it makes several i386 pmap improvements available to
amd64, including tlb shootdown reduction and bug fixes from Stephan Uphoff.
- implement deferred pmap switching for amd64.
- remove LARGEPAGES option. always use large pages if available.
also, make it work on amd64.
 1.63  17-Oct-2007  garbled 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.62  29-Aug-2007  ad branches: 1.62.2; 1.62.4;
Merge most x86 changes from the vmlocking branch, except the threaded soft
interrupt stuff. This is mostly comprised of changes to the pmap modules to
work on multiprocessor systems without kernel_lock, and changes to speed up
tlb shootdowns.
 1.61  27-Sep-2006  cube branches: 1.61.8; 1.61.16; 1.61.22; 1.61.26; 1.61.28;
This is again that time of the millenium where we have to crank up a few
static limits to meet modern bloat requirements.

VM_PHYSSEG_MAX needs it to run on Intel's D946GZIS motherboard, as reported
by rix on #NetBSD-code on freenode. This has a consequence on the initial
number of possible extent allocations for iomem_ex, so increase that value
too.

While there, clarify the action to be taken when VM_PHYSSEG_MAX is maxed
out.

Do that on both amd64 and i386 because the causes, the effects and the code
are mostly the same.
 1.60  20-Sep-2005  christos branches: 1.60.26; 1.60.28;
- Bump default data size from 128M to 256M, allows the java interpreter to
start up without unlimit.
- Bump max data size from 2G to 3G. The actual space we are allowed to allocate
is somewhere between 2G and 3G, so trying to allocate above that will fail.
- Bump max stack size from 32M to 64M.

Approved by fvdl
 1.59  17-Jul-2005  christos Increase the default datasize limit to 2GB.
 1.58  10-Jan-2005  mycroft branches: 1.58.10;
Now that countless UVM bugs have been fixed, enable "topdown" memory
allocation by default.
 1.57  12-May-2004  yamt add a comment on mp_attrs.
 1.56  23-Oct-2003  chs rename pv_next to pv_node. use SPLAY_RIGHT() instead of expanding it inline.
 1.55  23-Oct-2003  provos changed linked list in pmap_remove_pv to a splay tree; approved: fvdl@
 1.54  24-Aug-2003  chs 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.
 1.53  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.52  22-Jul-2003  yamt move pv_head and page attributes into md part of vm_page structure
instead of having separate arrays for them.
(i.e. use __HAVE_VM_PAGE_MD instead of __HAVE_PMAP_PHYSSEG.)
 1.51  02-Apr-2003  thorpej branches: 1.51.2;
Use PAGE_SIZE rather than NBPG.
 1.50  16-Mar-2003  cjep kernal -> kernel
 1.49  23-Feb-2003  atatat #include opt_uvm.h in machine/vmparam.h (for those ports offering the
topdown option) so that including it directly before including
uvm/uvm_param.h (or uvm/uvm_extern.h which includes uvm/uvm_param.h)
and attempting to use topdown won't result in a compiler error.

Problem noted in private email.
 1.48  20-Feb-2003  atatat Introduce "top down" memory management for mmap()ed allocations. This
means that the dynamic linker gets mapped in at the top of available
user virtual memory (typically just below the stack), shared libraries
get mapped downwards from that point, and calls to mmap() that don't
specify a preferred address will get mapped in below those.

This means that the heap and the mmap()ed allocations will grow
towards each other, allowing one or the other to grow larger than
before. Previously, the heap was limited to MAXDSIZ by the placement
of the dynamic linker (and the process's rlimits) and the space
available to mmap was hobbled by this reservation.

This is currently only enabled via an *option* for the i386 platform
(though other platforms are expected to follow). Add "options
USE_TOPDOWN_VM" to your kernel config file, rerun config, and rebuild
your kernel to take advantage of this.

Note that the pmap_prefer() interface has not yet been modified to
play nicely with this, so those platforms require a bit more work
(most notably the sparc) before they can use this new memory
arrangement.

This change also introduces a VM_DEFAULT_ADDRESS() macro that picks
the appropriate default address based on the size of the allocation or
the size of the process's text segment accordingly. Several drivers
and the SYSV SHM address assignment were changed to use this instead
of each one picking their own "default".
 1.47  29-Jan-2003  drochner give some VM which was reserved for the UAREA but not used anymore back
to the user and adjust some comments (which were not accurate anyway
since NOREDZONE)
binary compatibility note: changing VM_MAXUSER_ADDRESS might influence
some sanity check in kvm_proc, where arguments on the stack are dealt
with, but it was a variable anyway and noone did care...
 1.46  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.45  15-Nov-2001  soren branches: 1.45.2;
MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
 1.44  20-Oct-2001  fvdl Until early last year, the i386 port had 256M of kvm, and the max.
amount of kvm used for buffers was set at 70%, some 188M. Then
the total amount of kvm became 1G, and the amount for buffers
thus became some 716M. This is really too much, and some
device drivers want to map quite a bit of kvm these days.

So, cap it at 384M, which gives each buffer a little over 8k (the
default FFS blocksize) physical in an 1G physram configuration.
 1.43  25-Jun-2001  thorpej branches: 1.43.4;
Compute the VM_* constants directly, rather than hard-coding
them (with the formulas in comments).
 1.42  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.41  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.40  03-Jan-2001  fvdl branches: 1.40.4;
Bump shm max pages value to a more realistic one.
 1.39  14-Nov-2000  thorpej The i386 page size is fixed -- override PAGE_SIZE, et al, so that they
are compile-time constants.
 1.38  09-Nov-2000  kim BIOS memory loading messages can be enabled with DEBUG_MEMLOAD.
Increase VM_PHYSSEG_MAX from 3 to 5 to avoid a panic. Suggest
increasing VM_PHYSSEG_MAX in the panic message.
 1.37  18-Jun-2000  castor branches: 1.37.2;
Fix integer overflow in calculation of VM_MAX_KERNEL_BUF.
 1.36  11-Feb-2000  thorpej branches: 1.36.4;
Update for the NKMEMPAGES changes.
 1.35  11-Feb-2000  thorpej Move KERNBASE to 0xc0000000, giving the kernel a more-or-less full 1G
of virtual address space, leaving userland with 3G, and update comments
to match the new reality.

We knew we were going to have to bite this bullet eventually, and there
are a couple of outstanding PRs related to this issue (9389 and 9313).
Complete solution to those PRs is going to involve some sort of run-time
decision on how large kmem_map should be, as well as changing some data
structure allocation strategies in UVM. However, this change will at
least allow the PR submitter to simply throw resources at the problem.
 1.34  26-Jan-2000  tsutsui Remove obsoleted macros.
 1.33  04-Dec-1999  ragge CL* discarding.
 1.32  17-Jun-1999  thorpej branches: 1.32.2; 1.32.8;
PMAP_NEW is no longer optional on the i386; the old pmap's page table
allocation strategy no longer works at all. Move pmap.new.* to pmap.*.

To read the revision history of PMAP_NEW up until this merge, use cvs
rlog of the old pmap.new.* files.
 1.31  26-Apr-1999  thorpej Garbage-collect the VM_MBUF_SIZE constant. Instead, use the size
(nmbclusters * mclbytes), so that the right amount of KVA space is
allocated if those variables are patched.
 1.30  16-Jan-1999  chuck branches: 1.30.2; 1.30.4;
remove non MNN code
 1.29  13-Aug-1998  thorpej vm_offset_t -> {vaddr_t,paddr_t}, vm_size_t -> vsize_t
 1.28  08-Jul-1998  thorpej Define 2 free lists: a default, and a "first16", which is where the first
16M of RAM goes (in an effort to protect ISA DMA-safe memory).
 1.27  04-May-1998  thorpej Whitespace.
 1.26  10-Feb-1998  mrg - add defopt's for UVM, UVMHIST and PMAP_NEW.
- remove unnecessary UVMHIST_DECL's.
 1.25  06-Feb-1998  mrg add the i386 MD portions for UVM.
 1.24  15-Jan-1998  thorpej Just commit to using MACHINE_NEW_NONCONTIG.
 1.23  13-Jan-1998  mrg this is the i386 MD portion of the MACHINE_NEW_NONCONTIG code, as
written by chuck cranor. thanks to mycroft for helping me find the
one little line of code i accidentally deleted while merging it.

this is not enabled by default. `options MACHINE_NEW_NONCONTIG'
will use this code. eventually, this should go into <machine/vmparam.h>
insteaed of MACHINE_NONCONTIG.
 1.22  20-Oct-1997  fvdl Fix typo in VM_MAX_ADDRESS.
 1.21  20-Oct-1997  fvdl Change various constants that depend on the kernel VM base address. Lower
it to 0xf0000000 to give it more breathing space.
 1.20  12-Jul-1997  perry update comment from 1981 on memory and disk prices -- pr-2754 from Curt Sampson
 1.19  12-Jun-1997  mrg bring mrg-vm-swap2 onto mainilne.
 1.18  05-Mar-1997  fvdl branches: 1.18.2;
Bring limits up to 'modern' standards.
 1.17  09-Dec-1996  fvdl branches: 1.17.4; 1.17.6;
Include VM_MAX_KERNEL_BUF constant to put a cap on buffer cache KVM usage.
Override via config file possible.

XXX this is a stopgap measure.
 1.16  15-Nov-1996  fvdl Add MACHINE_NONCONTIG as a define.
 1.15  27-Oct-1994  cgd new RCS ID format.
 1.14  16-Jan-1994  cgd branches: 1.14.2;
SHMMAXPGS now pegged at 1024, where it belongs
 1.13  05-Jan-1994  mycroft Move kernel to 0xf8000000.
 1.12  04-Jan-1994  mycroft Fix VM_{MIN,MAX}_KERNEL_ADDRESS.
 1.11  03-Jan-1994  mycroft Garbage collection.
 1.10  22-Dec-1993  cgd bump MAXSSIZ back down to 8M (from 256M, where charles put it).
execve() currently allocated MAXSSIZ of address space (AND PAGE TABLES)
for the stack. until that's changed, and the stack-handling code is
updated to match, MAXSSIZ==256M will make execve() significantly slower
than MAXSSIZ==8M.
 1.9  20-Dec-1993  mycroft Cleanup and garbage collection; nothing significant. From magnum branch.
 1.8  15-Nov-1993  cgd cut down SHMMAXPGS (temporary)
 1.7  14-Nov-1993  cgd Add the System V message queue and semaphore facilities. Implemented
by Daniel Boulet <danny@BouletFermat.ab.ca>
 1.6  04-Sep-1993  cgd branches: 1.6.2;
change maximum stack size to 8M.
 1.5  04-Sep-1993  cgd decouple MAXDSIZ and MAXSSIZ. MAXSSIZ now is 2M; shouldn't need more,
and saves time in exec.
 1.4  13-Jul-1993  cgd up default data size limit to 16M, like on freefall, so everything will
compile properly with gcc2.
 1.3  18-Jun-1993  cgd convert magic numbers to network byte order, and attendent changes
 1.2  22-May-1993  cgd add rcsids to everything and clean up headers
 1.1  21-Mar-1993  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  21-Mar-1993  cgd initial import of 386bsd-0.1 sources
 1.6.2.4  26-Oct-1993  mycroft Add a default SHMMAXPGS.
 1.6.2.3  15-Oct-1993  mycroft I386_CR3PAT could not justify its existence.
 1.6.2.2  15-Oct-1993  mycroft Major cleanup of include files and constants.
 1.6.2.1  10-Oct-1993  mycroft Remove old and non-working macros.
 1.14.2.2  16-Jan-1994  cgd SHMMAXPGS now pegged at 1024, where it belongs
 1.14.2.1  16-Jan-1994  cgd file vmparam.h was added on branch magnum on 1994-01-16 01:36:08 +0000
 1.17.6.1  12-Mar-1997  is Merge in Changes from The Trunk.
 1.17.4.1  12-Feb-1997  mrg initial work for dynamic swap additions.
 1.18.2.1  04-May-1997  mrg re-merge mrg-vm-swap into -current, and call it mrg-vm-swap2.
 1.30.4.2  04-Jul-1999  chs add UBC parameters.
 1.30.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.30.2.1  19-Feb-2000  he Apply patch (requested by thorpej):
Move KERNBASE to 0xc0000000, giving the kernel a more-or-less
full 1GB of virtual address space, leaving userland with 3GB,
and update comments to match the new reality.
 1.32.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.32.2.3  05-Jan-2001  bouyer Sync with HEAD
 1.32.2.2  22-Nov-2000  bouyer Sync with HEAD.
 1.32.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.36.4.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.37.2.1  30-Mar-2001  he Pull up revision 1.40 (requested by fvdl):
Add some required Linux emulation bits to support the Linux
version of VMware.
 1.40.4.5  11-Dec-2002  thorpej Sync with HEAD.
 1.40.4.4  08-Jan-2002  nathanw Catch up to -current.
 1.40.4.3  22-Oct-2001  nathanw Catch up to -current.
 1.40.4.2  24-Aug-2001  nathanw Catch up with -current.
 1.40.4.1  21-Jun-2001  nathanw Catch up to -current.
 1.43.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.45.2.2  15-Nov-2001  soren MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
 1.45.2.1  15-Nov-2001  soren file vmparam.h was added on branch sommerfeld_i386mp_1 on 2001-11-15 18:06:15 +0000
 1.51.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.51.2.4  17-Jan-2005  skrll Sync with HEAD.
 1.51.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.51.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.51.2.1  03-Aug-2004  skrll Sync with HEAD
 1.58.10.6  04-Feb-2008  yamt sync with head.
 1.58.10.5  21-Jan-2008  yamt sync with head
 1.58.10.4  27-Oct-2007  yamt sync with head.
 1.58.10.3  03-Sep-2007  yamt sync with head.
 1.58.10.2  30-Dec-2006  yamt sync with head.
 1.58.10.1  21-Jun-2006  yamt sync with head.
 1.60.28.1  22-Oct-2006  yamt sync with head
 1.60.26.1  18-Nov-2006  ad Sync with head.
 1.61.28.3  23-Mar-2008  matt sync with HEAD
 1.61.28.2  09-Jan-2008  matt sync with HEAD
 1.61.28.1  06-Nov-2007  matt sync with HEAD
 1.61.26.2  26-Oct-2007  joerg 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.
 1.61.26.1  03-Sep-2007  jmcneill Sync with HEAD.
 1.61.22.1  03-Sep-2007  skrll Sync with HEAD.
 1.61.16.1  03-Oct-2007  garbled Sync with HEAD
 1.61.8.3  23-Oct-2007  ad Sync with head.
 1.61.8.2  05-Apr-2007  ad Fix the pmap locking.
 1.61.8.1  13-Mar-2007  ad Pull in the initial set of changes for the vmlocking branch.
 1.62.4.1  25-Oct-2007  bouyer Sync with HEAD.
 1.62.2.1  23-Sep-2007  yamt - sync with amd64.
- pmap_alloc_level: remove fast call special case.
- tweak some printf to work for both of LP64 and LP32.
- remove machdep.nkpde sysctl.
- remove automatic adjustment of nkpde for now. will revisit later.
 1.64.8.5  20-Jan-2008  bouyer Sync with HEAD
 1.64.8.4  13-Jan-2008  bouyer Reorganize so that there are less #ifdef XEN
 1.64.8.3  10-Jan-2008  bouyer Change xeni386 build to match xenamd64:
- machine/ points to xen/include/i386
- remove includes that were identical to the i386/include/ ones; the build
will find them though the xen-ma/machine link.
- include xen files using xen/ not machine/
 1.64.8.2  08-Jan-2008  bouyer Sync with HEAD
 1.64.8.1  11-Dec-2007  bouyer Switch i386 to x86/x86/pmap.c
 1.64.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.68.18.2  28-Apr-2009  skrll Sync with HEAD.
 1.68.18.1  19-Jan-2009  skrll Sync with HEAD.
 1.68.10.1  04-May-2009  yamt sync with head.
 1.68.6.1  17-Jan-2009  mjf Sync with HEAD.
 1.69.2.3  10-Jan-2011  jym Sync with HEAD
 1.69.2.2  01-Nov-2009  jym Sync with HEAD.
 1.69.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.70.4.1  05-Mar-2011  rmind sync with head
 1.70.2.3  16-Nov-2010  uebayasi Sync with HEAD.
 1.70.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.70.2.1  23-Feb-2010  uebayasi Convert all VM_MDPAGE_INIT()'s to take struct vm_page_md * and paddr_t.
 1.72.14.1  15-Aug-2012  riz Pull up following revision(s) (requested by sborrill in ticket #501):
sys/arch/amd64/include/vmparam.h: revision 1.31
sys/arch/i386/include/vmparam.h: revision 1.75
Bump VM_PHYSSEG_MAX to 16 from 10. Modern IBM hardware requires
VM_PHYSSEG_MAX to be turned up to 11 to avoid an early panic.
Bump VM_PHYSSEG_MAX to 16 from 10. Modern IBM hardware requires
VM_PHYSSEG_MAX to be turned up to 11 to avoid an early panic.
 1.72.12.2  02-Jun-2012  mrg sync to latest -current.
 1.72.12.1  24-Feb-2012  mrg sync to -current.
 1.72.8.5  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.72.8.4  16-Jan-2013  yamt sync with (a bit old) head
 1.72.8.3  30-Oct-2012  yamt sync with head
 1.72.8.2  23-May-2012  yamt sync with head.
 1.72.8.1  17-Apr-2012  yamt sync with head
 1.75.2.3  03-Dec-2017  jdolecek update from HEAD
 1.75.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.75.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.76.2.1  18-May-2014  rmind sync with head
 1.79.2.1  10-Aug-2014  tls Rebase.
 1.81.8.2  20-Mar-2017  pgoyette Sync with HEAD
 1.81.8.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.81.4.3  28-Aug-2017  skrll Sync with HEAD
 1.81.4.2  05-Dec-2016  skrll Sync with HEAD
 1.81.4.1  05-Oct-2016  skrll Sync with HEAD
 1.83.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.84.6.1  31-Aug-2017  bouyer Pull up following revision(s) (requested by joerg in ticket #234):
sys/arch/amd64/include/vmparam.h: revision 1.43
sys/kern/exec_subr.c: revision 1.79
lib/libpthread/pthread_int.h: revision 1.94
sys/arch/mips/include/vmparam.h: revision 1.58
sys/arch/mips/include/vmparam.h: revision 1.59
lib/libpthread/TODO: revision 1.19
sys/arch/powerpc/include/vmparam.h: revision 1.20
sys/arch/riscv/include/vmparam.h: revision 1.2
sys/arch/riscv/include/vmparam.h: revision 1.3
sys/arch/i386/include/vmparam.h: revision 1.85
tests/lib/libpthread/t_join.c: revision 1.9
sys/uvm/uvm_meter.c: revision 1.66
sys/uvm/uvm_param.h: revision 1.36
sys/kern/exec_subr.c: revision 1.80
sys/uvm/uvm_param.h: revision 1.37
sys/kern/exec_subr.c: revision 1.81
sys/kern/exec_subr.c: revision 1.82
lib/libpthread/pthread_attr_getguardsize.3: revision 1.4
lib/libpthread/pthread.c: revision 1.148
lib/libpthread/pthread_attr.c: revision 1.17
sys/arch/amd64/include/vmparam.h: revision 1.42
Always include a 1MB guard area beyond the end of stack. While ASLR will
normally create a guard area as well, this provides a deterministic area
for all binaries.
Mitigates the rest of CVE-2017-1000374 and CVE-2017-1000375 from
Qualys.
Revert for the moment, creates problems on i386.
Recommit exec_subr.c revision 1.79:
Always include a 1MB guard area beyond the end of stack. While ASLR will
normally create a guard area as well, this provides a deterministic area
for all binaries.
Mitigates the rest of CVE-2017-1000374 and CVE-2017-1000375 from
Qualys.
Additionally, change VM_DEFAULT_ADDRESS_TOPDOWN to include
user_stack_guard_size in the size reservation.
Update VM_DEFAULT_ADDRESS32_TOPDOWN to include guard area.
Export the guard size of the main thread via vm.guard_size. Add a
complementary writable sysctl for the initial guard size of threads
created via pthread_create. Let the existing attribut accessors do the
right thing. Raise the default guard size for threads to 64KB.
 1.85.6.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed