/[base]/head/sys/i386/include/vmparam.h
ViewVC logotype

Log of /head/sys/i386/include/vmparam.h

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (download) (annotate)
Sticky Revision:

Revision 366090 - (view) (download) (annotate) - [select for diffs]
Modified Wed Sep 23 19:34:21 2020 UTC (3 years, 9 months ago) by markj
File length: 7770 byte(s)
Diff to previous 365977
Add a vmparam.h constant indicating pmap support for large pages.

Enable SHM_LARGEPAGE support on arm64.

Reviewed by:	alc, kib
Sponsored by:	Juniper Networks, Inc., Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D26467


Revision 365977 - (view) (download) (annotate) - [select for diffs]
Modified Mon Sep 21 22:20:37 2020 UTC (3 years, 9 months ago) by scottph
File length: 7678 byte(s)
Diff to previous 365072
Move vm_page_dump bitset array definition to MI code

These definitions were repeated by all architectures, with small
variations. Consolidate the common definitons in machine
independent code and use bitset(9) macros for manipulation. Many
opportunities for deduplication remain in the machine dependent
minidump logic. The only intended functional change is increasing
the bit index type to vm_pindex_t, allowing the indexing of pages
with address of 8 TiB and greater.

Reviewed by:	kib, markj
Approved by:	scottl (implicit)
MFC after:	1 week
Sponsored by:	Ampere Computing, Inc.
Differential Revision:	https://reviews.freebsd.org/D26129


Revision 365072 - (view) (download) (annotate) - [select for diffs]
Modified Tue Sep 1 21:19:39 2020 UTC (3 years, 10 months ago) by mjg
File length: 7597 byte(s)
Diff to previous 343567
i386: clean up empty lines in .c and .h files


Revision 343567 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jan 30 02:07:13 2019 UTC (5 years, 5 months ago) by kib
File length: 7598 byte(s)
Diff to previous 336774
i386: Merge PAE and non-PAE pmaps into same kernel.

Effectively all i386 kernels now have two pmaps compiled in: one
managing PAE pagetables, and another non-PAE. The implementation is
selected at cold time depending on the CPU features. The vm_paddr_t is
always 64bit now. As result, nx bit can be used on all capable CPUs.

Option PAE only affects the bus_addr_t: it is still 32bit for non-PAE
configs, for drivers compatibility. Kernel layout, esp. max kernel
address, low memory PDEs and max user address (same as trampoline
start) are now same for PAE and for non-PAE regardless of the type of
page tables used.

Non-PAE kernel (when using PAE pagetables) can handle physical memory
up to 24G now, larger memory requires re-tuning the KVA consumers and
instead the code caps the maximum at 24G. Unfortunately, a lot of
drivers do not use busdma(9) properly so by default even 4G barrier is
not easy. There are two tunables added: hw.above4g_allow and
hw.above24g_allow, the first one is kept enabled for now to evaluate
the status on HEAD, second is only for dev use.

i386 now creates three freelists if there is any memory above 4G, to
allow proper bounce pages allocation. Also, VM_KMEM_SIZE_SCALE changed
from 3 to 1.

The PAE_TABLES kernel config option is retired.

In collaboarion with: pho
Discussed with:	emaste
Reviewed by:	markj
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D18894


Revision 336774 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jul 27 18:34:20 2018 UTC (5 years, 11 months ago) by imp
File length: 7107 byte(s)
Diff to previous 336290
Rename VM_FREELIST_ISADMA to VM_FREELIST_LOWMEM.

There's no differene between VM_FREELIST_ISADMA and VM_FREELIST_LOWMEM
except for the default boundary (16MB on x86 and 256MB on MIPS, but
they are otherwise the same). We don't need both for any system we
support (there were some really old ARC systems that did have ISA/EISA
bus, but we never ran on them and they are too old to ever grow
support for).

Differential Review: https://reviews.freebsd.org/D16290


Revision 336290 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jul 14 19:35:41 2018 UTC (5 years, 11 months ago) by alc
File length: 7043 byte(s)
Diff to previous 332489
Correct some typos.

Reviewed by:	kib


Revision 332489 - (view) (download) (annotate) - [select for diffs]
Modified Fri Apr 13 20:30:49 2018 UTC (6 years, 2 months ago) by kib
File length: 7042 byte(s)
Diff to previous 328178
i386 4/4G split.

The change makes the user and kernel address spaces on i386
independent, giving each almost the full 4G of usable virtual addresses
except for one PDE at top used for trampoline and per-CPU trampoline
stacks, and system structures that must be always mapped, namely IDT,
GDT, common TSS and LDT, and process-private TSS and LDT if allocated.

By using 1:1 mapping for the kernel text and data, it appeared
possible to eliminate assembler part of the locore.S which bootstraps
initial page table and KPTmap.  The code is rewritten in C and moved
into the pmap_cold(). The comment in vmparam.h explains the KVA
layout.

There is no PCID mechanism available in protected mode, so each
kernel/user switch forth and back completely flushes the TLB, except
for the trampoline PTD region. The TLB invalidations for userspace
becomes trivial, because IPI handlers switch page tables. On the other
hand, context switches no longer need to reload %cr3.

copyout(9) was rewritten to use vm_fault_quick_hold().  An issue for
new copyout(9) is compatibility with wiring user buffers around sysctl
handlers. This explains two kind of locks for copyout ptes and
accounting of the vslock() calls.  The vm_fault_quick_hold() AKA slow
path, is only tried after the 'fast path' failed, which temporary
changes mapping to the userspace and copies the data to/from small
per-cpu buffer in the trampoline.  If a page fault occurs during the
copy, it is short-circuit by exception.s to not even reach C code.

The change was motivated by the need to implement the Meltdown
mitigation, but instead of KPTI the full split is done.  The i386
architecture already shows the sizing problems, in particular, it is
impossible to link clang and lld with debugging.  I expect that the
issues due to the virtual address space limits would only exaggerate
and the split gives more liveness to the platform.

Tested by: pho
Discussed with:	bde
Sponsored by:	The FreeBSD Foundation
MFC after:	1 month
Differential revision:	https://reviews.freebsd.org/D14633


Revision 328178 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 19 22:17:13 2018 UTC (6 years, 5 months ago) by nwhitehorn
File length: 6127 byte(s)
Diff to previous 328168
Define PHYS_TO_DMAP() and DMAP_TO_PHYS() as panics on the architectures
(i386 and arm) that never implement them. This allows the removal of
#ifdef PHYS_TO_DMAP on code otherwise protected by a runtime check on
PMAP_HAS_DMAP. It also fixes the build on ARM and i386 after I forgot an
#ifdef in r328168.

Reported by:	Milan Obuch
Pointy hat to:	me


Revision 328168 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 19 17:46:31 2018 UTC (6 years, 5 months ago) by nwhitehorn
File length: 5999 byte(s)
Diff to previous 326023
Remove SFBUF_OPTIONAL_DIRECT_MAP and such hacks, replacing them across the
kernel by PHYS_TO_DMAP() as previously present on amd64, arm64, riscv, and
powerpc64. This introduces a new MI macro (PMAP_HAS_DMAP) that can be
evaluated at runtime to determine if the architecture has a direct map;
if it does not (or does) unconditionally and PMAP_HAS_DMAP is either 0 or
1, the compiler can remove the conditional logic.

As part of this, implement PHYS_TO_DMAP() on sparc64 and mips64, which had
similar things but spelled differently. 32-bit MIPS has a partial direct-map
that maps poorly to this concept and is unchanged.

Reviewed by:		kib
Suggestions from:	marius, alc, kib
Runtime tested on:	amd64, powerpc64, powerpc, mips64


Revision 326023 - (view) (download) (annotate) - [select for diffs]
Modified Mon Nov 20 19:43:44 2017 UTC (6 years, 7 months ago) by pfg
File length: 5974 byte(s)
Diff to previous 314436
sys: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 3-Clause license.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

Special thanks to Wind River for providing access to "The Duke of
Highlander" tool: an older (2014) run over FreeBSD tree was useful as a
starting point.


Revision 314436 - (view) (download) (annotate) - [select for diffs]
Modified Tue Feb 28 23:42:47 2017 UTC (7 years, 4 months ago) by imp
File length: 5930 byte(s)
Diff to previous 284147
Renumber copyright clause 4

Renumber cluase 4 to 3, per what everybody else did when BSD granted
them permission to remove clause 3. My insistance on keeping the same
numbering for legal reasons is too pedantic, so give up on that point.

Submitted by:	Jan Schaumann <jschauma@stevens.edu>
Pull Request:	https://github.com/freebsd/freebsd/pull/96


Revision 284147 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 8 04:59:32 2015 UTC (9 years ago) by alc
File length: 5930 byte(s)
Diff to previous 282274
Retire VM_FREEPOOL_CACHE as the next step in eliminating PG_CACHE pages.

Differential Revision:	https://reviews.freebsd.org/D2712
Reviewed by:	kib
Sponsored by:	EMC / Isilon Storage Division


Revision 282274 - (view) (download) (annotate) - [select for diffs]
Modified Thu Apr 30 15:48:48 2015 UTC (9 years, 2 months ago) by jhb
File length: 5959 byte(s)
Diff to previous 281495
Remove support for Xen PV domU kernels.  Support for HVM domU kernels
remains.  Xen is planning to phase out support for PV upstream since it
is harder to maintain and has more overhead.  Modern x86 CPUs include
virtualization extensions that support HVM guests instead of PV guests.
In addition, the PV code was i386 only and not as well maintained recently
as the HVM code.
- Remove the i386-only NATIVE option that was used to disable certain
  components for PV kernels.  These components are now standard as they
  are on amd64.
- Remove !XENHVM bits from PV drivers.
- Remove various shims required for XEN (e.g. PT_UPDATES_FLUSH, LOAD_CR3,
  etc.)
- Remove duplicate copy of <xen/features.h>.
- Remove unused, i386-only xenstored.h.

Differential Revision:	https://reviews.freebsd.org/D2362
Reviewed by:	royger
Tested by:	royger (i386/amd64 HVM domU and amd64 PVH dom0)
Relnotes:	yes


Revision 281495 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 13 15:22:45 2015 UTC (9 years, 2 months ago) by kib
File length: 6119 byte(s)
Diff to previous 274556
Add config option PAE_TABLES for the i386 kernel.  It switches pmap to
use PAE format for the page tables, but does not incur other
consequences of the full PAE config.  In particular, vm_paddr_t and
bus_addr_t are left 32bit, and max supported memory is still limited
by 4GB.

The option allows to have nx permissions for memory mappings on i386
kernel, while keeping the usual i386 KBI and avoiding the kernel data
sizing problems typical for the PAE config.

Intel documented that the PAE format for page tables is available
starting with the Pentium Pro, but it is possible that the plain
Pentium CPUs have the required support (Appendix H).  The goal is to
enable the option and non-exec mappings on i386 for the GENERIC
kernel.  Anybody wanting a useful system on 486, have to reconfigure
the modern i386 kernel anyway.

Discussed with:	alc, jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks


Revision 274556 - (view) (download) (annotate) - [select for diffs]
Modified Sat Nov 15 23:40:44 2014 UTC (9 years, 7 months ago) by alc
File length: 6070 byte(s)
Diff to previous 269577
Enable the use of VM_PHYSSEG_SPARSE on amd64 and i386, making it the default
on i386 PAE.  Previously, VM_PHYSSEG_SPARSE could not be used on amd64 and
i386 because vm_page_startup() would not create vm_page structures for the
kernel page table pages allocated during pmap_bootstrap() but those vm_page
structures are needed when the kernel attempts to promote the corresponding
kernel virtual addresses to superpage mappings.  To address this problem, a
new public function, vm_phys_add_seg(), is introduced and vm_phys_init() is
updated to reflect the creation of vm_phys_seg structures by calls to
vm_phys_add_seg().

Discussed with:	Svatopluk Kraus
MFC after:	3 weeks
Sponsored by:	EMC / Isilon Storage Division


Revision 269577 - (view) (download) (annotate) - [select for diffs]
Modified Tue Aug 5 09:44:10 2014 UTC (9 years, 11 months ago) by glebius
File length: 5880 byte(s)
Diff to previous 257854
Merge all MD sf_buf allocators into one MI, residing in kern/subr_sfbuf.c
The MD allocators were very common, however there were some minor
differencies. These differencies were all consolidated in the MI allocator,
under ifdefs. The defines from machine/vmparam.h turn on features required
for a particular machine. For details look in the comment in sys/sf_buf.h.

As result no MD code left in sys/*/*/vm_machdep.c. Some arches still have
machine/sf_buf.h, which is usually quite small.

Tested by:	glebius (i386), tuexen (arm32), kevlo (arm32)
Reviewed by:	kib
Sponsored by:	Netflix
Sponsored by:	Nginx, Inc.


Revision 257854 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 8 16:25:00 2013 UTC (10 years, 7 months ago) by alc
File length: 5799 byte(s)
Diff to previous 250338
As of r257209, all architectures have defined VM_KMEM_SIZE_SCALE.  In other
words, every architecture is now auto-sizing the kmem arena.  This revision
changes kmeminit() so that the definition of VM_KMEM_SIZE_SCALE becomes
mandatory and the definition of VM_KMEM_SIZE becomes optional.

Replace or eliminate all existing definitions of VM_KMEM_SIZE.  With
auto-sizing enabled, VM_KMEM_SIZE effectively became an alternate spelling
for VM_KMEM_SIZE_MIN on most architectures.  Use VM_KMEM_SIZE_MIN for
clarity.

Change kmeminit() so that the effect of defining VM_KMEM_SIZE is similar to
that of setting the tunable vm.kmem_size.  Whereas the macros
VM_KMEM_SIZE_{MAX,MIN,SCALE} have had the same effect as the tunables
vm.kmem_size_{max,min,scale}, the effects of VM_KMEM_SIZE and vm.kmem_size
have been distinct.  In particular, whereas VM_KMEM_SIZE was overridden by
VM_KMEM_SIZE_{MAX,MIN,SCALE} and vm.kmem_size_{max,min,scale}, vm.kmem_size
was not.  Remedy this inconsistency.  Now, VM_KMEM_SIZE can be used to set
the size of the kmem arena at compile-time without that value being
overridden by auto-sizing.

Update the nearby comments to reflect the kmem submap being replaced by the
kmem arena.  Stop duplicating the auto-sizing formula in every machine-
dependent vmparam.h and place it in kmeminit() where auto-sizing takes
place.

Reviewed by:	kib (an earlier version)
Sponsored by:	EMC / Isilon Storage Division


Revision 250338 - (view) (download) (annotate) - [select for diffs]
Modified Tue May 7 22:46:24 2013 UTC (11 years, 1 month ago) by attilio
File length: 5927 byte(s)
Diff to previous 246207
Rename VM_NDOMAIN into MAXMEMDOM and move it into machine/param.h in
order to match the MAXCPU concept.  The change should also be useful
for consolidation and consistency.

Sponsored by:	EMC / Isilon storage division
Obtained from:	jeff
Reviewed by:	alc


Revision 246207 - (view) (download) (annotate) - [select for diffs]
Modified Fri Feb 1 14:16:37 2013 UTC (11 years, 5 months ago) by andre
File length: 6010 byte(s)
Diff to previous 242847
Remove unused VM_MAX_AUTOTUNE_NMBCLUSTERS define.


Revision 242847 - (view) (download) (annotate) - [select for diffs]
Modified Sat Nov 10 02:08:40 2012 UTC (11 years, 7 months ago) by alfred
File length: 6159 byte(s)
Diff to previous 237435
Allow maxusers to scale on machines with large address space.

Some hooks are added to clamp down maxusers and nmbclusters for
small address space systems.

VM_MAX_AUTOTUNE_MAXUSERS - the max maxusers that will be autotuned based on
physical memory.
VM_MAX_AUTOTUNE_NMBCLUSTERS - max nmbclusters based on physical memory.

These are set to the old values on i386 to preserve the clamping that was
being done to all arches.

Another macro VM_AUTOTUNE_NMBCLUSTERS is provided to allow an override
for the calculation on a MD basis.  Currently no arch defines this.

Reviewed by: peter
MFC after: 2 weeks


Revision 237435 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jun 22 07:16:29 2012 UTC (12 years ago) by kib
File length: 5932 byte(s)
Diff to previous 228398
Enable shared page on i386, now it has a use for vdso_timehands.

MFC after:	1 month


Revision 228398 - (view) (download) (annotate) - [select for diffs]
Modified Sat Dec 10 18:42:00 2011 UTC (12 years, 6 months ago) by alc
File length: 5887 byte(s)
Diff to previous 221855
Avoid the possibility of integer overflow in the calculation of
VM_KMEM_SIZE_MAX.  Specifically, if the user/kernel address space split
was changed such that the kernel address space was greater than or equal
to 2 GB, then overflow would occur.

PR:		161721
MFC after:	3 weeks


Revision 221855 - (view) (download) (annotate) - [select for diffs]
Modified Fri May 13 19:35:01 2011 UTC (13 years, 1 month ago) by mdf
File length: 5760 byte(s)
Diff to previous 219920
Move the ZERO_REGION_SIZE to a machine-dependent file, as on many
architectures (i386, for example) the virtual memory space may be
constrained enough that 2MB is a large chunk.  Use 64K for arches
other than amd64 and ia64, with special handling for sparc64 due to
differing hardware.

Also commit the comment changes to kmem_init_zero_region() that I
missed due to not saving the file.  (Darn the unfamiliar development
environment).

Arch maintainers, please feel free to adjust ZERO_REGION_SIZE as you
see fit.

Requested by:	alc
MFC after:	1 week
MFC with:	r221853


Revision 219920 - (view) (download) (annotate) - [select for diffs]
Modified Wed Mar 23 16:38:29 2011 UTC (13 years, 3 months ago) by alc
File length: 5711 byte(s)
Diff to previous 217192
Modestly increase the maximum allowed size of the kmem map on i386.
Also, express this new maximum as a fraction of the kernel's address
space size rather than a constant so that increasing KVA_PAGES will
automatically increase this maximum.  As a side-effect of this change,
kern.maxvnodes will automatically increase by a proportional amount.

While I'm here ensure that this change doesn't result in an unintended
increase in maxpipekva on i386.  Calculate maxpipekva based upon the
size of the kernel address space and the amount of physical memory
instead of the size of the kmem map.  The memory backing pipes is not
allocated from the kmem map.  It is allocated from its own submap of
the kernel map.  In short, it has no real connection to the kmem map.
(In fact, the commit messages for the maxpipekva auto-sizing talk
about using the kernel map size, cf. r117325 and r117391, even though
the implementation actually used the kmem map size.)  Although the
calculation is now done differently, the resulting value for
maxpipekva should remain almost the same on i386.  However, on amd64,
the value will be reduced by 2/3.  This is intentional.  The recent
change to VM_KMEM_SIZE_SCALE on amd64 for the benefit of ZFS also had
the unnecessary side-effect of increasing maxpipekva.  This change is
effectively restoring maxpipekva on amd64 to its prior value.

Eliminate init_param3() since it is no longer used.


Revision 217192 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jan 9 12:50:44 2011 UTC (13 years, 5 months ago) by kib
File length: 5667 byte(s)
Diff to previous 210550
Move repeated MAXSLP definition from machine/vmparam.h to sys/vmmeter.h.
Update the outdated comments describing MAXSLP and the process
selection algorithm for swap out.

Comments wording and reviewed by:	alc


Revision 210550 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jul 27 20:33:50 2010 UTC (13 years, 11 months ago) by jhb
File length: 6129 byte(s)
Diff to previous 190705
Very rough first cut at NUMA support for the physical page allocator.  For
now it uses a very dumb first-touch allocation policy.  This will change in
the future.
- Each architecture indicates the maximum number of supported memory domains
  via a new VM_NDOMAIN parameter in <machine/vmparam.h>.
- Each cpu now has a PCPU_GET(domain) member to indicate the memory domain
  a CPU belongs to.  Domain values are dense and numbered from 0.
- When a platform supports multiple domains, the default freelist
  (VM_FREELIST_DEFAULT) is split up into N freelists, one for each domain.
  The MD code is required to populate an array of mem_affinity structures.
  Each entry in the array defines a range of memory (start and end) and a
  domain for the range.  Multiple entries may be present for a single
  domain.  The list is terminated by an entry where all fields are zero.
  This array of structures is used to split up phys_avail[] regions that
  fall in VM_FREELIST_DEFAULT into per-domain freelists.
- Each memory domain has a separate lookup-array of freelists that is
  used when fulfulling a physical memory allocation.  Right now the
  per-domain freelists are listed in a round-robin order for each domain.
  In the future a table such as the ACPI SLIT table may be used to order
  the per-domain lookup lists based on the penalty for each memory domain
  relative to a specific domain.  The lookup lists may be examined via a
  new vm.phys.lookup_lists sysctl.
- The first-touch policy is implemented by using PCPU_GET(domain) to
  pick a lookup list when allocating memory.

Reviewed by:	alc


Revision 190705 - (view) (download) (annotate) - [select for diffs]
Modified Sat Apr 4 23:12:14 2009 UTC (15 years, 3 months ago) by alc
File length: 6046 byte(s)
Diff to previous 181775
Retire VM_PROT_READ_IS_EXEC.  It was intended to be a micro-optimization,
but I see no benefit from it today.

VM_PROT_READ_IS_EXEC was only intended for use on processors that do not
distinguish between read and execute permission.  On an mmap(2) or
mprotect(2), it automatically added execute permission if the caller
specified permissions included read permission.  The hope was that this
would reduce the number of vm map entries needed to implement an address
space because there would be fewer neighboring vm map entries that differed
only in the presence or absence of VM_PROT_EXECUTE.  (See vm/vm_mmap.c
revision 1.56.)

Today, I don't see any real applications that benefit from
VM_PROT_READ_IS_EXEC.  In any case, vm map entries are now organized
as a self-adjusting binary search tree instead of an ordered list.  So,
the need for coalescing vm map entries is not as great as it once was.


Revision 181775 - (view) (download) (annotate) - [select for diffs]
Modified Fri Aug 15 20:51:31 2008 UTC (15 years, 10 months ago) by kmacy
File length: 6138 byte(s)
Diff to previous 177624
Integrate support for xen in to i386 common code.

MFC after:	1 month


Revision 177624 - (view) (download) (annotate) - [select for diffs]
Modified Wed Mar 26 03:12:00 2008 UTC (16 years, 3 months ago) by alc
File length: 5952 byte(s)
Diff to previous 174938
Enable the automatic creation of superpage reservations.


Revision 174938 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 27 16:45:39 2007 UTC (16 years, 6 months ago) by alc
File length: 5944 byte(s)
Diff to previous 172317
Add configuration knobs for the superpage reservation system.  Initially,
the reservation will only be enabled on amd64.


Revision 172317 - (view) (download) (annotate) - [select for diffs]
Modified Tue Sep 25 06:25:06 2007 UTC (16 years, 9 months ago) by alc
File length: 5640 byte(s)
Diff to previous 170319
Change the management of cached pages (PQ_CACHE) in two fundamental
ways:

(1) Cached pages are no longer kept in the object's resident page
splay tree and memq.  Instead, they are kept in a separate per-object
splay tree of cached pages.  However, access to this new per-object
splay tree is synchronized by the _free_ page queues lock, not to be
confused with the heavily contended page queues lock.  Consequently, a
cached page can be reclaimed by vm_page_alloc(9) without acquiring the
object's lock or the page queues lock.

This solves a problem independently reported by tegge@ and Isilon.
Specifically, they observed the page daemon consuming a great deal of
CPU time because of pages bouncing back and forth between the cache
queue (PQ_CACHE) and the inactive queue (PQ_INACTIVE).  The source of
this problem turned out to be a deadlock avoidance strategy employed
when selecting a cached page to reclaim in vm_page_select_cache().
However, the root cause was really that reclaiming a cached page
required the acquisition of an object lock while the page queues lock
was already held.  Thus, this change addresses the problem at its
root, by eliminating the need to acquire the object's lock.

Moreover, keeping cached pages in the object's primary splay tree and
memq was, in effect, optimizing for the uncommon case.  Cached pages
are reclaimed far, far more often than they are reactivated.  Instead,
this change makes reclamation cheaper, especially in terms of
synchronization overhead, and reactivation more expensive, because
reactivated pages will have to be reentered into the object's primary
splay tree and memq.

(2) Cached pages are now stored alongside free pages in the physical
memory allocator's buddy queues, increasing the likelihood that large
allocations of contiguous physical memory (i.e., superpages) will
succeed.

Finally, as a result of this change long-standing restrictions on when
and where a cached page can be reclaimed and returned by
vm_page_alloc(9) are eliminated.  Specifically, calls to
vm_page_alloc(9) specifying VM_ALLOC_INTERRUPT can now reclaim and
return a formerly cached page.  Consequently, a call to malloc(9)
specifying M_NOWAIT is less likely to fail.

Discussed with: many over the course of the summer, including jeff@,
   Justin Husted @ Isilon, peter@, tegge@
Tested by: an earlier version by kris@
Approved by: re (kensmith)


Revision 170319 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 5 05:17:20 2007 UTC (17 years, 1 month ago) by alc
File length: 5611 byte(s)
Diff to previous 170033
Add the machine-specific definitions for configuring the new physical
memory allocator.

Set the size of phys_avail[] and dump_avail[] using one of these
definitions.

Approved by:	re


Revision 170033 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 27 20:34:26 2007 UTC (17 years, 1 month ago) by alc
File length: 4539 byte(s)
Diff to previous 169291
Eliminate an unused definition.


Revision 169291 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 5 19:50:28 2007 UTC (17 years, 2 months ago) by alc
File length: 4606 byte(s)
Diff to previous 168920
Define every architecture as either VM_PHYSSEG_DENSE or
VM_PHYSSEG_SPARSE depending on whether the physical address space is
densely or sparsely populated with memory.  The effect of this
definition is to determine which of two implementations of
vm_page_array and PHYS_TO_VM_PAGE() is used.  The legacy
implementation is obtained by defining VM_PHYSSEG_DENSE, and a new
implementation that trades off time for space is obtained by defining
VM_PHYSSEG_SPARSE.  For now, all architectures except for ia64 and
sparc64 define VM_PHYSSEG_DENSE.  Defining VM_PHYSSEG_SPARSE on ia64
allows the entirety of my Itanium 2's memory to be used.  Previously,
only the first 1 GB could be used.  Defining VM_PHYSSEG_SPARSE on
sparc64 allows USIIIi-based systems to boot without crashing.

This change is a combination of Nathan Whitehorn's patch and my own
work in perforce.

Discussed with: kmacy, marius, Nathan Whitehorn
PR:		112194


Revision 168920 - (view) (download) (annotate) - [select for diffs]
Modified Sat Apr 21 01:14:48 2007 UTC (17 years, 2 months ago) by sepotvin
File length: 4521 byte(s)
Diff to previous 168439
Add support for specifying a minimal size for vm.kmem_size in the loader via
vm.kmem_size_min. Useful when using ZFS to make sure that vm.kmem size will
be at least 256mb (for example) without forcing a particular value via vm.kmem_size.

Approved by: njl (mentor)
Reviewed by: alc


Revision 168439 - (view) (download) (annotate) - [select for diffs]
Modified Fri Apr 6 18:15:03 2007 UTC (17 years, 3 months ago) by ru
File length: 4491 byte(s)
Diff to previous 133827
Add the PG_NX support for i386/PAE.

Reviewed by:	alc


Revision 133827 - (view) (download) (annotate) - [select for diffs]
Modified Mon Aug 16 08:35:22 2004 UTC (19 years, 10 months ago) by obrien
File length: 4472 byte(s)
Diff to previous 128019
Increase the scaling of VM_KMEM_SIZE_MAX.

Submitted by:	alc


Revision 128019 - (view) (download) (annotate) - [select for diffs]
Modified Wed Apr 7 20:46:16 2004 UTC (20 years, 3 months ago) by imp
File length: 4472 byte(s)
Diff to previous 120654
Remove advertising clause from University of California Regent's
license, per letter dated July 22, 1999 and email from Peter Wemm,
Alan Cox and Robert Watson.

Approved by: core, peter, alc, rwatson


Revision 120654 - (view) (download) (annotate) - [select for diffs]
Modified Wed Oct 1 23:46:08 2003 UTC (20 years, 9 months ago) by peter
File length: 4709 byte(s)
Diff to previous 114348
Commit Bosko's patch to clean up the PSE/PG_G initialization to and
avoid problems with some Pentium 4 cpus and some older PPro/Pentium2
cpus.  There are several problems, some documented in Intel errata.
This patch:
1) moves the kernel to the second page in the PSE case.  There is an
errata that says that you Must Not point a 4MB page at physical
address zero on older cpus.  We avoided bugs here due to sheer luck.
2) sets up PSE page tables right from the start in locore, rather than
trying to switch from 4K to 4M (or 2M) pages part way through the boot
sequence at the same time that we're messing with PG_G.

For some reason, the pmap work over the last 18 months seems to tickle
the problems, and the PAE infrastructure changes disturb the cpu
bugs even more.

A couple of people have reported a problem with APM bios calls during
boot.  I'll work with people to get this resolved.

Obtained from:	bmilekic


Revision 114348 - (view) (download) (annotate) - [select for diffs]
Modified Thu May 1 00:10:38 2003 UTC (21 years, 2 months ago) by peter
File length: 4610 byte(s)
Diff to previous 113225
KPT_MIN_ADDRESS and KPT_MAX_ADDRESS are not used anywhere.  And if they
were, they are not safe to use outside of the kernel since these values
can change at kernel compile time - ie: we do not want them compiled into
userland binaries.


Revision 113225 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 7 14:27:19 2003 UTC (21 years, 3 months ago) by jake
File length: 4710 byte(s)
Diff to previous 111440
Better fix for previous previous which still allows the 4megs of kva at
the top of the address space to be reclaimed.  The problem is that with
the APTD gone the mapable kernel address space runs right to the end of
the 32 bit address space.  As a max this is 0x100000000, which can't be
represented in 32 bits, so we have to use ptd entry n-1 and pte offset
n-1, instead of ptd entry n and pte offset 0.  There's still 1 page we
can't use, but we gain just under 4 megs of kva (8 megs with PAE).

Sponsored by:	DARPA, Network Associates Laboratories


Revision 111440 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 24 20:29:52 2003 UTC (21 years, 4 months ago) by jake
File length: 4701 byte(s)
Diff to previous 58820
- Removed UMAXPTDI and UMAXPTEOFF.
- Changed VM_MAXUSER_ADDRESS to be defined in terms of PTDPTDI.  In order for
  assumptions about the recursive page table map to work it must be the base
  of the recursive map.  Any pte offset that's not NPTEPG will break these
  assumptions.

Sponsored by:	DARPA, Network Associates Laboratories


Revision 58820 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 30 07:17:05 2000 UTC (24 years, 3 months ago) by peter
File length: 4711 byte(s)
Diff to previous 50477
Make sysv-style shared memory tuneable params fully runtime adjustable
via sysctl.  It's done pretty simply but it should be quite adequate.
Also move SHMMAXPGS from $machine/include/vmparam.h as the comments that
went with it were wrong... we don't allocate KVM space for the pages so
that comment is bogus..  The only practical limit is how much physical
ram you want to lock up as this stuff isn't paged out or swap backed.


Revision 50477 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 28 01:08:13 1999 UTC (24 years, 10 months ago) by peter
File length: 4855 byte(s)
Diff to previous 49068
$Id$ -> $FreeBSD$


Revision 49068 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jul 24 22:26:42 1999 UTC (24 years, 11 months ago) by dg
File length: 4896 byte(s)
Diff to previous 36909
Increased max kmem to 200MB. This should fix some out-of-kmem panics on
large systems.


Revision 36909 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jun 12 09:10:22 1998 UTC (26 years ago) by dg
File length: 4898 byte(s)
Diff to previous 33757
Increased MAXTSIZ to 128MB...there are binaries that get quite large.
Increased DFLDSIZ to 128MB, as it is a better default.
Reviewed by:	jkh


Revision 33757 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 23 07:42:43 1998 UTC (26 years, 4 months ago) by dyson
File length: 4896 byte(s)
Diff to previous 33109
Try to dynamically size the VM_KMEM_SIZE (but is still able to be overridden
in a way identically as before.)  I had problems with the system properly
handling the number of vnodes when there is alot of system memory, and the
default VM_KMEM_SIZE.  Two new options "VM_KMEM_SIZE_SCALE" and
"VM_KMEM_SIZE_MAX" have been added to support better auto-sizing for systems
with greater than 128MB.

Add some accouting for vm_zone memory allocations, and provide properly
for vm_zone allocations out of the kmem_map.  Also move the vm_zone
allocation stats to the VM OID tree from the KERN OID tree.


Revision 33109 - (view) (download) (annotate) - [select for diffs]
Modified Thu Feb 5 03:32:49 1998 UTC (26 years, 5 months ago) by dyson
File length: 4512 byte(s)
Diff to previous 30755
1)	Start using a cleaner and more consistant page allocator instead
	of the various ad-hoc schemes.
2)	When bringing in UPAGES, the pmap code needs to do another vm_page_lookup.
3)	When appropriate, set the PG_A or PG_M bits a-priori to both avoid some
	processor errata, and to minimize redundant processor updating of page
	tables.
4)	Modify pmap_protect so that it can only remove permissions (as it
	originally supported.)  The additional capability is not needed.
5)	Streamline read-only to read-write page mappings.
6)	For pmap_copy_page, don't enable write mapping for source page.
7)	Correct and clean-up pmap_incore.
8)	Cluster initial kern_exec pagin.
9)	Removal of some minor lint from kern_malloc.
10)	Correct some ioopt code.
11)	Remove some dead code from the MI swapout routine.
12)	Correct vm_object_deallocate (to remove backing_object ref.)
13)	Fix dead object handling, that had problems under heavy memory load.
14)	Add minor vm_page_lookup improvements.
15)	Some pages are not in objects, and make sure that the vm_page.c can
	properly support such pages.
16)	Add some more page deficit handling.
17)	Some minor code readability improvements.


Revision 30755 - (view) (download) (annotate) - [select for diffs]
Modified Mon Oct 27 00:38:46 1997 UTC (26 years, 8 months ago) by jkh
File length: 4393 byte(s)
Diff to previous 26945
Bump MAXDSIZ to 512MB so that soft limits have a chance to actually
regulate this.
Reviewed by:	dyson


Revision 26945 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jun 25 20:18:58 1997 UTC (27 years ago) by tegge
File length: 4393 byte(s)
Diff to previous 24696
Allow the kernel configuration file to override the amount of memory
available to the kernel (VM_KMEM_SIZE). The default (32 MB) is too low
when having 512 MB or more physical memory in a server environment. This is
relevant on systems where "panic: kmem_malloc: kmem_map too small" is a
problem.


Revision 24696 - (view) (download) (annotate) - [select for diffs]
Modified Mon Apr 7 09:30:22 1997 UTC (27 years, 3 months ago) by peter
File length: 4365 byte(s)
Diff to previous 22975
Use UPAGES_HOLE instead of UPAGES in case it's changed some time.

Rename the PT* index KSTK* #defines to UMAX*, since we don't have a kernel
stack there any more..

These are used to calculate VM_MAXUSER_ADDRESS and USRSTACK, and really
do not want to be changed with UPAGES since BSD/OS 2.x binary compatability
depends on it.


Revision 22975 - (view) (download) (annotate) - [select for diffs]
Modified Sat Feb 22 09:48:43 1997 UTC (27 years, 4 months ago) by peter
File length: 4316 byte(s)
Diff to previous 21673
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$.  We are not
ready for it yet.


Revision 21673 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 14 07:20:47 1997 UTC (27 years, 5 months ago) by jkh
File length: 4321 byte(s)
Diff to previous 21039
Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.


Revision 21039 - (view) (download) (annotate) - [select for diffs]
Modified Mon Dec 30 05:31:21 1996 UTC (27 years, 6 months ago) by dyson
File length: 4363 byte(s)
Diff to previous 15543
Let the VM system know that on certain arch's that VM_PROT_READ
also implies VM_PROT_EXEC.  We support it that way for now,
since the break system call by default gives VM_PROT_ALL.  Now
we have a better chance of coalesing map entries when mixing
mmap/break type operations.  This was contributing to excessive
numbers of map entries on the modula-3 runtime system.  The
problem is still not "solved", but the situation makes more
sense.

Eventually, when we work on architectures where VM_PROT_READ
is orthogonal to VM_PROT_EXEC, we will have to visit this
issue carefully (esp. regarding security issues.)


Revision 15543 - (view) (download) (annotate) - [select for diffs]
Modified Thu May 2 14:21:14 1996 UTC (28 years, 2 months ago) by phk
File length: 4290 byte(s)
Diff to previous 15472
removed:
        CLBYTES PD_SHIFT PGSHIFT NBPG PGOFSET CLSIZELOG2 CLSIZE pdei()
        ptei() kvtopte() ptetov() ispt() ptetoav() &c &c
new:
        NPDEPG

Major macro cleanup.


Revision 15472 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 30 12:02:12 1996 UTC (28 years, 2 months ago) by phk
File length: 4286 byte(s)
Diff to previous 14595
pte.h: Add the VADDR(pdi,pti) macro to construct virtual address from
page dir+table index.
pmap.h: remove NUPDE, it was wrong and not used.  Sanitize KSTKPTEOFF.
vmparam.h: Calculate virtual addr from PDI+PTI from pmap.h rather than
using magic math.  Remove UPDT, not used.


Revision 14595 - (view) (download) (annotate) - [select for diffs]
Modified Tue Mar 12 15:37:58 1996 UTC (28 years, 3 months ago) by dg
File length: 4259 byte(s)
Diff to previous 8748
Killed some historical #define cruft that we've never used in FreeBSD:

UDOT_SZ
SYSPTSIZE
USRPTSIZE
MSGBUFPTECNT
DMMIN
DMMAX
DMTEXT
USRIOSIZE
VM_PHYS_SIZE


Revision 8748 - (view) (download) (annotate) - [select for diffs]
Modified Thu May 25 07:41:28 1995 UTC (29 years, 1 month ago) by dg
File length: 4852 byte(s)
Diff to previous 5455
Made "NMBCLUSTERS" calculation dynamic and fixed bogus use of "NMBCLUSTERS"
in machdep.c (it should use the global nmbclusters). Moved the calculation
of nmbclusters into conf/param.c (same place where nmbclusters has always
been assigned), and made the calculation include an extra amount based
on "maxusers". NMBCLUSTERS can still be overrided in the kernel config
file as always, but this change will make that generally unnecessary. This
fixes the "bug" reports from people who have misconfigured kernels seeing
the network hang when the mbuf cluster pool runs out.

Reviewed by:	John Dyson


Revision 5455 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 9 16:06:02 1995 UTC (29 years, 6 months ago) by dg
File length: 4897 byte(s)
Diff to previous 3021
These changes embody the support of the fully coherent merged VM buffer cache,
much higher filesystem I/O performance, and much better paging performance. It
represents the culmination of over 6 months of R&D.

The majority of the merged VM/cache work is by John Dyson.

The following highlights the most significant changes. Additionally, there are
(mostly minor) changes to the various filesystem modules (nfs, msdosfs, etc) to
support the new VM/buffer scheme.

vfs_bio.c:
Significant rewrite of most of vfs_bio to support the merged VM buffer cache
scheme.  The scheme is almost fully compatible with the old filesystem
interface.  Significant improvement in the number of opportunities for write
clustering.

vfs_cluster.c, vfs_subr.c
Upgrade and performance enhancements in vfs layer code to support merged
VM/buffer cache.  Fixup of vfs_cluster to eliminate the bogus pagemove stuff.

vm_object.c:
Yet more improvements in the collapse code.  Elimination of some windows that
can cause list corruption.

vm_pageout.c:
Fixed it, it really works better now.  Somehow in 2.0, some "enhancements"
broke the code.  This code has been reworked from the ground-up.

vm_fault.c, vm_page.c, pmap.c, vm_object.c
Support for small-block filesystems with merged VM/buffer cache scheme.

pmap.c vm_map.c
Dynamic kernel VM size, now we dont have to pre-allocate excessive numbers of
kernel PTs.

vm_glue.c
Much simpler and more effective swapping code.  No more gratuitous swapping.

proc.h
Fixed the problem that the p_lock flag was not being cleared on a fork.

swap_pager.c, vnode_pager.c
Removal of old vfs_bio cruft to support the past pseudo-coherency.  Now the
code doesn't need it anymore.

machdep.c
Changes to better support the parameter values for the merged VM/buffer cache
scheme.

machdep.c, kern_exec.c, vm_glue.c
Implemented a seperate submap for temporary exec string space and another one
to contain process upages. This eliminates all map fragmentation problems
that previously existed.

ffs_inode.c, ufs_inode.c, ufs_readwrite.c
Changes for merged VM/buffer cache.  Add "bypass" support for sneaking in on
busy buffers.

Submitted by:	John Dyson and David Greenman


Revision 3021 - (view) (download) (annotate) - [select for diffs]
Modified Fri Sep 23 07:00:12 1994 UTC (29 years, 9 months ago) by dg
File length: 4896 byte(s)
Diff to previous 2689
Increased SHMMAXPGS from 512 to 1024 now that there is plenty of kernel
virtual memory.


Revision 2689 - (view) (download) (annotate) - [select for diffs]
Modified Mon Sep 12 11:38:31 1994 UTC (29 years, 9 months ago) by dg
File length: 4895 byte(s)
Diff to previous 2440
Eliminated a whole pile of ancient (we're taking 4.3BSD) VM system
related #define constants. Corrected incorrect VM_MAX_KERNEL_ADDRESS.

Reviewed by:	John Dyson


Revision 2440 - (view) (download) (annotate) - [select for diffs]
Modified Thu Sep 1 03:16:40 1994 UTC (29 years, 10 months ago) by dg
File length: 8317 byte(s)
Diff to previous 1549
Got rid of some old, unused junk.


Revision 1549 - (view) (download) (annotate) - [select for diffs]
Modified Wed May 25 09:21:21 1994 UTC (30 years, 1 month ago) by rgrimes
File length: 8764 byte(s)
Diff to previous 1288
The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.

Reviewed by:	Rodney W. Grimes
Submitted by:	John Dyson and David Greenman


Revision 1288 - (view) (download) (annotate) - [select for diffs]
Modified Mon Mar 21 09:35:24 1994 UTC (30 years, 3 months ago) by dg
File length: 9151 byte(s)
Diff to previous 974
Changed dynamic stack grow code to grow by "SGROWSIZ" amount. Initially
allocate SGROWSIZ amount of stack. Also set vm_ssize to the initial
stack VM size. Increased DFLSSIZ stack rlimit default to 8MB.


Revision 974 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 14 16:25:31 1994 UTC (30 years, 5 months ago) by dg
File length: 9066 byte(s)
Diff to previous 926
"New" VM system from John Dyson & myself. For a run-down of the
major changes, see the log of any effected file in the sys/vm
directory (swap_pager.c for instance).


Revision 926 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 3 16:00:52 1994 UTC (30 years, 6 months ago) by dg
File length: 8700 byte(s)
Diff to previous 879
Increased maximum and default 'size' limits to more reasonable values.


Revision 879 - (view) (download) (annotate) - [select for diffs]
Modified Sun Dec 19 00:55:01 1993 UTC (30 years, 6 months ago) by wollman
File length: 8700 byte(s)
Diff to previous 719
Make everything compile with -Wtraditional.  Make it easier to distribute
a binary link-kit.  Make all non-optional options (pagers, procfs) standard,
and update LINT to reflect new symtab requirements.

NB: -Wtraditional will henceforth be forgotten.  This editing pass was
primarily intended to detect any constructions where the old code might
have been relying on traditional C semantics or syntax.  These were all
fixed, and the result of fixing some of them means that -Wall is now a
realistic possibility within a few weeks.


Revision 719 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 7 17:43:17 1993 UTC (30 years, 8 months ago) by wollman
File length: 8671 byte(s)
Diff to previous 607
Made all header files idempotent and moved incorrect common data from
headers into a related source file.  Added cons.h as first step towards
moving i386/i386/cons.h to machine/cons.h where it belongs.


Revision 607 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 15 10:07:45 1993 UTC (30 years, 8 months ago) by rgrimes
File length: 8529 byte(s)
Diff to previous 561
param.h:

Mark the fact that PGSHIFT and PDRSHIFT are really the same as
PG_SHIFT and PD_SHIFT, these should be collapsed some day soon.

Document that KERNBASE should really be KPTDPTDI << PDRSHIFT, for
now leave it as the constant 0xFE000000 until I make a seperate
common header file for this stuff (vmaddresses.h?)

Remove NKMEMCLUSTERS define, it was only being used to define
VM_KMEM_SIZE, so why have all the indirection.  Besides who wants
to work in CLBYTE sizes chuncks.


pmap.h:

Fix $Id$ and some other minor format clean ups.

Remove the XXX comment about NKPDE, since it now has the correct value
of 7.

Remove unused LASTPTDI and move the APTD into the very end of memory to
free up 4MB of kernel virtual address space.
Remove unused RSVDPTDI and free up 12MB of kernel virtual address space.


vmparam.h

Fix $Id$.

Increase SHMMAXPGS to 512 (2MB) now that there is room for it to be
bigger.  The XXX comment stays until the kernel moves down in memory
to free up enough space to use the proper default of 4MB.

VM_KMEM_SIZE is now a direct constant stating the size of the kernel
malloc region.  Increased the value from 3MB to 16MB.


Revision 561 - (view) (download) (annotate) - [select for diffs]
Modified Sat Oct 9 15:29:04 1993 UTC (30 years, 9 months ago) by dg
File length: 8648 byte(s)
Diff to previous 511
Correct spelling of "SHMMAXPGS" so the config override will actually work.


Revision 511 - (view) (download) (annotate) - [select for diffs]
Modified Mon Sep 27 00:36:57 1993 UTC (30 years, 9 months ago) by rgrimes
File length: 8647 byte(s)
Diff to previous 373
define SHMMAXPGS where it is suppose to be, you can over ride this with
a kernel config options "SHMAXPGS=xxx", default is currently 64 pages
due to limit kernel map space.


Revision 373 - (view) (download) (annotate) - [select for diffs]
Modified Wed Sep 1 09:38:32 1993 UTC (30 years, 10 months ago) by rgrimes
File length: 8506 byte(s)
Diff to previous 348
Increased stack size to 8MB just to be on the real safe side.


Revision 348 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 28 09:19:01 1993 UTC (30 years, 10 months ago) by rgrimes
File length: 8506 byte(s)
Diff to previous 90
Changed MAXSSIZ from MAXDSIZ to 2MB


Revision 90 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jul 3 21:21:35 1993 UTC (31 years ago) by root
File length: 8501 byte(s)
Diff to previous 5
Increased default data size (DFLDSIZ) to 16MB.  Need to rebuild libutil,
kernel, ps and w for this to work!


Revision 5 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jun 12 14:58:17 1993 UTC (31 years ago) by rgrimes
File length: 8500 byte(s)
Copied from: cvs2svn/branches/unlabeled-1.1.1/sys/i386/include/vmparam.h revision 4
Diff to previous 4
This commit was generated by cvs2svn to compensate for changes in r4,
which included commits to RCS files with non-trunk default branches.


Revision 4 - (view) (download) (annotate) - [select for diffs]
Added Sat Jun 12 14:58:17 1993 UTC (31 years ago) by rgrimes
Original Path: cvs2svn/branches/unlabeled-1.1.1/sys/i386/include/vmparam.h
File length: 8500 byte(s)
Initial import, 0.1 + pk 0.2.4-B1


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC 1.1.27