Home | History | Annotate | Download | only in include
History log of /src/sys/arch/powerpc/include/vmparam.h
RevisionDateAuthorComments
 1.27  15-Dec-2023  rin powerpc: oea: For OEA64_BRIDGE, 1:1 map up to 3GiB memory

As done for OEA. Note that kva over 3GiB is reserved.

Provide PMAP_MAP_POOLPAGE for OEA64_BRIDGE at the same time, by
which direct-mapped memory is utilized in order to work around
starvation of 512MiB kernel virtual space.

PR kern/57621
 1.26  11-May-2022  andvar branches: 1.26.4;
s/varible/variable/
 1.25  06-Jan-2021  rin Drop unused headers. No functional changes intended.
 1.24  06-Jul-2020  rin branches: 1.24.2;
Correct #ifdef; _MODULE not _MODULAR here.

Now __HAVE_PMAP_PHYSSEG is defined correctly for modules, which was
missing accidentally.
 1.23  27-Jun-2020  rin Restrict {MIN,MAX}_PAGE_SIZE for MODULAR || _MODULE, which makes
non-MODULAR kernel a little bit efficient.

They are also exposed to userland for jemalloc.
 1.22  29-Mar-2019  christos Go back to not always defining PAGE_{SIZE,SHIFT,MASK}
 1.21  27-Mar-2019  christos Provide the (max) defaults for page size for userland.
 1.20  23-Jun-2017  joerg branches: 1.20.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.19  18-Oct-2014  snj branches: 1.19.2; 1.19.12;
src is too big these days to tolerate superfluous apostrophes. It's
"its", people!
 1.18  25-Jan-2014  christos delete VM_DEFAULT_ADDRESS; some of those should be GC'ed because they match
the default definition.
 1.17  23-Feb-2012  matt branches: 1.17.2; 1.17.4;
Export MIN_PAGE_SIZE and MAX_PAGE_SIZE for modular kernels.
 1.16  20-Jun-2011  matt branches: 1.16.2; 1.16.4; 1.16.8; 1.16.10;
Readd powerpc/include/vmparam.h to the set lists
Export it to powerpc/include.h
Protect pmap.h and vmparam.h from getting an #error when included
from userland.
Export safe definitions of VM_MAXUSER_ADDRESS, VM_MIN_ADDRESS,
VM_MAX_ADDRESS when _RUMPKERNEL is defined.
 1.15  20-Jun-2011  matt PowerPC now exports a common view of cpu.h, vmparam.h and pmap.h
when building a MODULAR kernel or compiling _MODULE.
It should be noted that MODULAR or _MODULE export a view of the kernel
as being MULTIPROCESSOR (even if isn't).
The shared pmap TLB uses mdpg in places where it used mdpg to avoid
deadly embrance inclusion problems.
 1.14  20-Jun-2011  matt Don't export USER_SR if _MODULE is defined.
Add a common <powerpc/vmparam.h> like we have for <powerpc/pmap.h>
 1.13  16-Feb-2000  tsubai Unused. (PR 9424)
 1.12  11-Feb-2000  thorpej Update for the NKMEMPAGES changes.
 1.11  04-Dec-1999  ragge CL* discarding.
 1.10  02-May-1999  kleink branches: 1.10.2; 1.10.8;
Garbage-collect VM_MBUF_SIZE leftover.
 1.9  23-Mar-1999  thorpej branches: 1.9.4;
VM_MBUF_SIZE is in terms of MCLBYTES, not CLBYTES.
 1.8  16-Jan-1999  chuck MNN is no longer optional, remove old code
 1.7  31-Aug-1998  tsubai vm_offset_t --> [pv]addr_t
 1.6  08-Jul-1998  thorpej Define one page free list, and put all pages on it.
 1.5  05-Jun-1998  sakamoto Merge in MACHINE_NEW_NONCONTIG support and some fix from Tsubai-San.
UVM support.
 1.4  18-Feb-1998  mycroft Fix typo.
 1.3  12-Jun-1997  mrg bring mrg-vm-swap2 onto mainilne.
 1.2  16-Apr-1997  thorpej branches: 1.2.2;
Always define MACHINE_NONCONTIG.
 1.1  30-Sep-1996  ws branches: 1.1.4;
PowerPC port
 1.1.4.1  12-Feb-1997  mrg initial work for dynamic swap additions.
 1.2.2.1  04-May-1997  mrg re-merge mrg-vm-swap into -current, and call it mrg-vm-swap2.
 1.9.4.2  06-Aug-1999  chs take an initial guess at UBC parameters.
 1.9.4.1  21-Jun-1999  thorpej Sync w/ -current.
 1.10.8.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.10.2.1  20-Nov-2000  bouyer Remove files that are no longer on the trunck
 1.16.10.1  17-May-2012  riz Pull up following revision(s) (requested by matt in ticket #255):
sys/arch/powerpc/include/vmparam.h: revision 1.17
Export MIN_PAGE_SIZE and MAX_PAGE_SIZE for modular kernels.
 1.16.8.1  24-Feb-2012  mrg sync to -current.
 1.16.4.2  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.16.4.1  17-Apr-2012  yamt sync with head
 1.16.2.2  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.16.2.1  20-Jun-2011  cherry file vmparam.h was added on branch cherry-xenmp on 2011-06-23 14:19:31 +0000
 1.17.4.1  18-May-2014  rmind sync with head
 1.17.2.2  03-Dec-2017  jdolecek update from HEAD
 1.17.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.19.12.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.19.2.1  28-Aug-2017  skrll Sync with HEAD
 1.20.6.1  10-Jun-2019  christos Sync with HEAD
 1.24.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.26.4.1  29-Dec-2023  martin Additionally pull up following revision(s) (requested by rin in ticket #400):

sys/arch/powerpc/include/oea/pmap.h: revision 1.39
sys/arch/powerpc/include/pmap.h: revision 1.43
sys/arch/powerpc/oea/pmap_kernel.c: revision 1.14
sys/arch/powerpc/oea/pmap.c: revision 1.117
sys/arch/powerpc/oea/pmap.c: revision 1.118
sys/arch/powerpc/oea/pmap.c: revision 1.119
sys/arch/powerpc/include/vmparam.h: revision 1.27
sys/arch/powerpc/powerpc/trap.c: revision 1.165
sys/arch/powerpc/oea/pmap.c: revision 1.120
sys/arch/powerpc/oea/pmap.c: revision 1.121
sys/arch/powerpc/powerpc/vm_machdep.c: revision 1.106
sys/arch/powerpc/powerpc/bus_dma.c: revision 1.56

powerpc/oea: trap: pmap_{pte,ste}_spill() even in the interrupt context

Page table for oea is something like L2 TLB on memory; kernel and
processes share its entries, and process entries can be spilled out.

As done for MMU based on software-managed TLB, we need to restore
such entries even in the interrupt context.

Note that pmap_pte_spill() require no resouce to restore entries.
Still-not-implemented pmap_ste_spill() for OEA64 should also.
Part of PR kern/57621

powerpc/oea: pmap: Drop unused argument for pmap_pvo_reclaim(), NFC
Part of PR kern/57621

powerpc/oea: pmap: Rework pmap_pte_spill()

It was broken in many ways... Now, it gets working stable both for
OEA and OEA64_BRIDGE, as far as I can see.
Part of PR kern/57621

powerpc/oea: pmap: Fix mostly-pointless overhead of pmap_pvo_pool
(1) Drop __aligned(32) from struct pvo_entry; otherwise,
sizeof(struct pvo_entry) is round-up'ed to a multiple of 32.
(2) Do not set sizeof(struct pvo_entry) to `align` argument for
pool_init(9); it must be power of 2.
(3) Align pvo_entry to 32-byte boundary only if reasonably possible,
i.e., OEA without DIAGNOSTIC (--> POOL_REDZONE) for now.
Part of PR kern/57621

powerpc/oea: pmap_create: Use PR_ZERO and drop memset(9), NFC
Part of PR kern/57621

powerpc: oea: For OEA64_BRIDGE, 1:1 map up to 3GiB memory
As done for OEA. Note that kva over 3GiB is reserved.

Provide PMAP_MAP_POOLPAGE for OEA64_BRIDGE at the same time, by
which direct-mapped memory is utilized in order to work around
starvation of 512MiB kernel virtual space.
PR kern/57621

powerpc: Make sure direct-mapped buffer fits within correct range

For OEA and OEA64_BRIDGE, only first 3GiB memory is direct-mapped.
Part of PR kern/57621

RSS XML Feed