Commit | Line | Data |
---|---|---|
d60fa9ba C |
1 | /* vmparam.h 4.10 81/04/24 */ |
2 | ||
3 | /* | |
4 | * Machine dependent constants | |
5 | */ | |
6 | #define NPTEPG (NBPG/(sizeof (struct pte))) | |
7 | /* number of ptes per page */ | |
8 | #define USRSTACK (0x80000000-UPAGES*NBPG) | |
9 | /* Start of user stack */ | |
10 | #define P1TOP 0x200000 /* boundary between P0 and P1 regions */ | |
11 | ||
12 | /* | |
13 | * Virtual memory related constants | |
14 | */ | |
15 | #define SLOP 32 | |
16 | #define MAXTSIZ (6*2048-SLOP) /* max text size (clicks) */ | |
17 | #define MAXDSIZ (12*1024-32-SLOP) /* max data size (clicks) */ | |
18 | #define MAXSSIZ (12*1024-32-SLOP) /* max stack size (clicks) */ | |
19 | ||
20 | /* | |
21 | * Sizes of the system and user portions of the system page table. | |
22 | */ | |
23 | /* SYSPTSIZE IS SILLY; IT SHOULD BE COMPUTED AT BOOT TIME */ | |
24 | #define SYSPTSIZE (12*NPTEPG) | |
25 | #define USRPTSIZE (8*NPTEPG) | |
26 | ||
27 | /* | |
28 | * The size of the clock loop. | |
29 | */ | |
30 | #define LOOPPAGES (maxfree - firstfree) | |
31 | ||
32 | /* | |
33 | * The time for a process to be blocked before being very swappable. | |
34 | * This is a number of seconds which the system takes as being a non-trivial | |
35 | * amount of real time. You probably shouldn't change this; | |
36 | * it is used in subtle ways (fractions and multiples of it are, that is, like | |
37 | * half of a ``long time'', almost a long time, etc.) | |
38 | * It is related to human patience and other factors which don't really | |
39 | * change over time. | |
40 | */ | |
41 | #define MAXSLP 20 | |
42 | ||
43 | /* | |
44 | * A swapped in process is given a small amount of core without being bothered | |
45 | * by the page replacement algorithm. Basically this says that if you are | |
46 | * swapped in you deserve some resources. We protect the last SAFERSS | |
47 | * pages against paging and will just swap you out rather than paging you. | |
48 | * Note that each process has at least UPAGES+CLSIZE pages which are not | |
49 | * paged anyways (this is currently 8+2=10 pages or 5k bytes), so this | |
50 | * number just means a swapped in process is given around 25k bytes. | |
51 | * Just for fun: current memory prices are 4600$ a megabyte on VAX (4/22/81), | |
52 | * so we loan each swapped in process memory worth 100$, or just admit | |
53 | * that we don't consider it worthwhile and swap it out to disk which costs | |
54 | * $30/mb or about $0.75. | |
55 | */ | |
56 | #define SAFERSS 32 /* nominal ``small'' resident set size | |
57 | protected against replacement */ | |
58 | ||
59 | /* | |
60 | * DISKRPM is used to estimate the number of paging i/o operations | |
61 | * which one can expect from a single disk controller. | |
62 | */ | |
63 | #define DISKRPM 60 | |
64 | ||
65 | /* | |
66 | * Klustering constants. Klustering is the gathering | |
67 | * of pages together for pagein/pageout, while clustering | |
68 | * is the treatment of hardware page size as though it were | |
69 | * larger than it really is. | |
70 | * | |
71 | * KLMAX gives maximum cluster size in CLSIZE page (cluster-page) | |
72 | * units. Note that KLMAX*CLSIZE must be <= DMMIN in dmap.h. | |
73 | */ | |
74 | ||
75 | #define KLMAX (32/CLSIZE) | |
76 | #define KLSEQL (16/CLSIZE) /* in klust if vadvise(VA_SEQL) */ | |
77 | #define KLIN (8/CLSIZE) /* default data/stack in klust */ | |
78 | #define KLTXT (4/CLSIZE) /* default text in klust */ | |
79 | #define KLOUT (32/CLSIZE) | |
80 | ||
81 | /* | |
82 | * KLSDIST is the advance or retard of the fifo reclaim for sequential | |
83 | * processes data space. | |
84 | */ | |
85 | #define KLSDIST 3 /* klusters advance/retard for seq. fifo */ | |
86 | ||
87 | #ifdef KERNEL | |
88 | int klseql; | |
89 | int klsdist; | |
90 | int klin; | |
91 | int kltxt; | |
92 | int klout; | |
93 | #endif |