Sat Jun 27 02:51:23 2020 UTC ()
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.


(rin)
diff -r1.22 -r1.23 src/sys/arch/powerpc/include/vmparam.h

cvs diff -r1.22 -r1.23 src/sys/arch/powerpc/include/vmparam.h (expand / switch to unified diff)

--- src/sys/arch/powerpc/include/vmparam.h 2019/03/29 12:51:15 1.22
+++ src/sys/arch/powerpc/include/vmparam.h 2020/06/27 02:51:23 1.23
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: vmparam.h,v 1.22 2019/03/29 12:51:15 christos Exp $ */ 1/* $NetBSD: vmparam.h,v 1.23 2020/06/27 02:51:23 rin Exp $ */
2 2
3#ifndef _POWERPC_VMPARAM_H_ 3#ifndef _POWERPC_VMPARAM_H_
4#define _POWERPC_VMPARAM_H_ 4#define _POWERPC_VMPARAM_H_
5 5
6#ifdef _KERNEL_OPT 6#ifdef _KERNEL_OPT
7#include "opt_modular.h" 7#include "opt_modular.h"
8#include "opt_ppcarch.h" 8#include "opt_ppcarch.h"
9#include "opt_uvm.h" 9#include "opt_uvm.h"
10#endif 10#endif
11 11
12/* 12/*
13 * These are common for BOOKE, IBM4XX, and OEA 13 * These are common for BOOKE, IBM4XX, and OEA
14 */ 14 */
@@ -18,35 +18,38 @@ @@ -18,35 +18,38 @@
18#define VM_NFREELIST 3 18#define VM_NFREELIST 3
19 19
20#define VM_PHYSSEG_MAX 16 20#define VM_PHYSSEG_MAX 16
21 21
22/* 22/*
23 * The address to which unspecified mapping requests default 23 * The address to which unspecified mapping requests default
24 * Put the stack in its own segment and start mmaping at the 24 * Put the stack in its own segment and start mmaping at the
25 * top of the next lower segment. 25 * top of the next lower segment.
26 */ 26 */
27#define __USE_TOPDOWN_VM 27#define __USE_TOPDOWN_VM
28#define VM_DEFAULT_ADDRESS_BOTTOMUP(da, sz) \ 28#define VM_DEFAULT_ADDRESS_BOTTOMUP(da, sz) \
29 round_page((vaddr_t)(da) + (vsize_t)maxdmap) 29 round_page((vaddr_t)(da) + (vsize_t)maxdmap)
30 30
 31#if defined(MODULAR) || defined(_MODULE) || !defined(_KERNEL)
31/* 32/*
32 * If we are a module or a modular kernel, then we need to defined the range 33 * If we are a module or a modular kernel, then we need to defined the range
33 * of our varible page sizes since BOOKE and OEA use 4KB pages while IBM4XX 34 * of our varible page sizes since BOOKE and OEA use 4KB pages while IBM4XX
34 * use 16KB pages. 35 * use 16KB pages.
 36 * This is also required for userland by jemalloc.
35 */ 37 */
36#define MIN_PAGE_SHIFT 12 /* BOOKE/OEA */ 38#define MIN_PAGE_SHIFT 12 /* BOOKE/OEA */
37#define MAX_PAGE_SHIFT 14 /* IBM4XX */ 39#define MAX_PAGE_SHIFT 14 /* IBM4XX */
38#define MIN_PAGE_SIZE (1 << MIN_PAGE_SHIFT) 40#define MIN_PAGE_SIZE (1 << MIN_PAGE_SHIFT)
39#define MAX_PAGE_SIZE (1 << MAX_PAGE_SHIFT) 41#define MAX_PAGE_SIZE (1 << MAX_PAGE_SHIFT)
 42#endif /* MODULAR || _MODULE || !_KERNEL */
40 43
41#if defined(_MODULE) 44#if defined(_MODULE)
42#if defined(_RUMPKERNEL) 45#if defined(_RUMPKERNEL)
43/* 46/*
44 * Safe definitions for RUMP kernels 47 * Safe definitions for RUMP kernels
45 */ 48 */
46#define VM_MAXUSER_ADDRESS 0x7fff8000 49#define VM_MAXUSER_ADDRESS 0x7fff8000
47#define VM_MIN_ADDRESS 0x00000000 50#define VM_MIN_ADDRESS 0x00000000
48#define VM_MAX_ADDRESS VM_MAXUSER_ADDRESS 51#define VM_MAX_ADDRESS VM_MAXUSER_ADDRESS
49#define MAXDSIZ (1024*1024*1024) 52#define MAXDSIZ (1024*1024*1024)
50#define MAXSSIZ (32*1024*1024) 53#define MAXSSIZ (32*1024*1024)
51#define MAXTSIZ (256*1024*1024) 54#define MAXTSIZ (256*1024*1024)
52#else /* !_RUMPKERNEL */ 55#else /* !_RUMPKERNEL */