diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/dontdiff | 4 | ||||
-rw-r--r-- | Documentation/i386/boot.txt | 23 | ||||
-rw-r--r-- | Documentation/kernel-parameters.txt | 21 | ||||
-rw-r--r-- | Documentation/x86_64/boot-options.txt | 14 | ||||
-rw-r--r-- | Documentation/x86_64/fake-numa-for-cpusets | 66 | ||||
-rw-r--r-- | Documentation/x86_64/machinecheck | 7 |
6 files changed, 123 insertions, 12 deletions
diff --git a/Documentation/dontdiff b/Documentation/dontdiff index 63c2d0c55aa2..64e9f6c4826b 100644 --- a/Documentation/dontdiff +++ b/Documentation/dontdiff | |||
@@ -55,8 +55,8 @@ aic7*seq.h* | |||
55 | aicasm | 55 | aicasm |
56 | aicdb.h* | 56 | aicdb.h* |
57 | asm | 57 | asm |
58 | asm-offsets.* | 58 | asm-offsets.h |
59 | asm_offsets.* | 59 | asm_offsets.h |
60 | autoconf.h* | 60 | autoconf.h* |
61 | bbootsect | 61 | bbootsect |
62 | bin2c | 62 | bin2c |
diff --git a/Documentation/i386/boot.txt b/Documentation/i386/boot.txt index 38fe1f03fb14..6498666ea330 100644 --- a/Documentation/i386/boot.txt +++ b/Documentation/i386/boot.txt | |||
@@ -2,7 +2,7 @@ | |||
2 | ---------------------------- | 2 | ---------------------------- |
3 | 3 | ||
4 | H. Peter Anvin <hpa@zytor.com> | 4 | H. Peter Anvin <hpa@zytor.com> |
5 | Last update 2007-01-26 | 5 | Last update 2007-03-06 |
6 | 6 | ||
7 | On the i386 platform, the Linux kernel uses a rather complicated boot | 7 | On the i386 platform, the Linux kernel uses a rather complicated boot |
8 | convention. This has evolved partially due to historical aspects, as | 8 | convention. This has evolved partially due to historical aspects, as |
@@ -35,9 +35,13 @@ Protocol 2.03: (Kernel 2.4.18-pre1) Explicitly makes the highest possible | |||
35 | initrd address available to the bootloader. | 35 | initrd address available to the bootloader. |
36 | 36 | ||
37 | Protocol 2.04: (Kernel 2.6.14) Extend the syssize field to four bytes. | 37 | Protocol 2.04: (Kernel 2.6.14) Extend the syssize field to four bytes. |
38 | |||
38 | Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable. | 39 | Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable. |
39 | Introduce relocatable_kernel and kernel_alignment fields. | 40 | Introduce relocatable_kernel and kernel_alignment fields. |
40 | 41 | ||
42 | Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of | ||
43 | the boot command line | ||
44 | |||
41 | 45 | ||
42 | **** MEMORY LAYOUT | 46 | **** MEMORY LAYOUT |
43 | 47 | ||
@@ -133,6 +137,8 @@ Offset Proto Name Meaning | |||
133 | 022C/4 2.03+ initrd_addr_max Highest legal initrd address | 137 | 022C/4 2.03+ initrd_addr_max Highest legal initrd address |
134 | 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel | 138 | 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel |
135 | 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not | 139 | 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not |
140 | 0235/3 N/A pad2 Unused | ||
141 | 0238/4 2.06+ cmdline_size Maximum size of the kernel command line | ||
136 | 142 | ||
137 | (1) For backwards compatibility, if the setup_sects field contains 0, the | 143 | (1) For backwards compatibility, if the setup_sects field contains 0, the |
138 | real value is 4. | 144 | real value is 4. |
@@ -233,6 +239,12 @@ filled out, however: | |||
233 | if your ramdisk is exactly 131072 bytes long and this field is | 239 | if your ramdisk is exactly 131072 bytes long and this field is |
234 | 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) | 240 | 0x37FFFFFF, you can start your ramdisk at 0x37FE0000.) |
235 | 241 | ||
242 | cmdline_size: | ||
243 | The maximum size of the command line without the terminating | ||
244 | zero. This means that the command line can contain at most | ||
245 | cmdline_size characters. With protocol version 2.05 and | ||
246 | earlier, the maximum size was 255. | ||
247 | |||
236 | 248 | ||
237 | **** THE KERNEL COMMAND LINE | 249 | **** THE KERNEL COMMAND LINE |
238 | 250 | ||
@@ -241,11 +253,10 @@ loader to communicate with the kernel. Some of its options are also | |||
241 | relevant to the boot loader itself, see "special command line options" | 253 | relevant to the boot loader itself, see "special command line options" |
242 | below. | 254 | below. |
243 | 255 | ||
244 | The kernel command line is a null-terminated string currently up to | 256 | The kernel command line is a null-terminated string. The maximum |
245 | 255 characters long, plus the final null. A string that is too long | 257 | length can be retrieved from the field cmdline_size. Before protocol |
246 | will be automatically truncated by the kernel, a boot loader may allow | 258 | version 2.06, the maximum was 255 characters. A string that is too |
247 | a longer command line to be passed to permit future kernels to extend | 259 | long will be automatically truncated by the kernel. |
248 | this limit. | ||
249 | 260 | ||
250 | If the boot protocol version is 2.02 or later, the address of the | 261 | If the boot protocol version is 2.02 or later, the address of the |
251 | kernel command line is given by the header field cmd_line_ptr (see | 262 | kernel command line is given by the header field cmd_line_ptr (see |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 84c3bd05c639..38d7db3262c7 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -64,6 +64,7 @@ parameter is applicable: | |||
64 | GENERIC_TIME The generic timeofday code is enabled. | 64 | GENERIC_TIME The generic timeofday code is enabled. |
65 | NFS Appropriate NFS support is enabled. | 65 | NFS Appropriate NFS support is enabled. |
66 | OSS OSS sound support is enabled. | 66 | OSS OSS sound support is enabled. |
67 | PV_OPS A paravirtualized kernel | ||
67 | PARIDE The ParIDE subsystem is enabled. | 68 | PARIDE The ParIDE subsystem is enabled. |
68 | PARISC The PA-RISC architecture is enabled. | 69 | PARISC The PA-RISC architecture is enabled. |
69 | PCI PCI bus support is enabled. | 70 | PCI PCI bus support is enabled. |
@@ -695,8 +696,15 @@ and is between 256 and 4096 characters. It is defined in the file | |||
695 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed | 696 | idebus= [HW] (E)IDE subsystem - VLB/PCI bus speed |
696 | See Documentation/ide.txt. | 697 | See Documentation/ide.txt. |
697 | 698 | ||
698 | idle= [HW] | 699 | idle= [X86] |
699 | Format: idle=poll or idle=halt | 700 | Format: idle=poll or idle=mwait |
701 | Poll forces a polling idle loop that can slightly improves the performance | ||
702 | of waking up a idle CPU, but will use a lot of power and make the system | ||
703 | run hot. Not recommended. | ||
704 | idle=mwait. On systems which support MONITOR/MWAIT but the kernel chose | ||
705 | to not use it because it doesn't save as much power as a normal idle | ||
706 | loop use the MONITOR/MWAIT idle loop anyways. Performance should be the same | ||
707 | as idle=poll. | ||
700 | 708 | ||
701 | ignore_loglevel [KNL] | 709 | ignore_loglevel [KNL] |
702 | Ignore loglevel setting - this will print /all/ | 710 | Ignore loglevel setting - this will print /all/ |
@@ -1157,6 +1165,11 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1157 | 1165 | ||
1158 | nomce [IA-32] Machine Check Exception | 1166 | nomce [IA-32] Machine Check Exception |
1159 | 1167 | ||
1168 | noreplace-paravirt [IA-32,PV_OPS] Don't patch paravirt_ops | ||
1169 | |||
1170 | noreplace-smp [IA-32,SMP] Don't replace SMP instructions | ||
1171 | with UP alternatives | ||
1172 | |||
1160 | noresidual [PPC] Don't use residual data on PReP machines. | 1173 | noresidual [PPC] Don't use residual data on PReP machines. |
1161 | 1174 | ||
1162 | noresume [SWSUSP] Disables resume and restores original swap | 1175 | noresume [SWSUSP] Disables resume and restores original swap |
@@ -1562,6 +1575,9 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1562 | smart2= [HW] | 1575 | smart2= [HW] |
1563 | Format: <io1>[,<io2>[,...,<io8>]] | 1576 | Format: <io1>[,<io2>[,...,<io8>]] |
1564 | 1577 | ||
1578 | smp-alt-once [IA-32,SMP] On a hotplug CPU system, only | ||
1579 | attempt to substitute SMP alternatives once at boot. | ||
1580 | |||
1565 | snd-ad1816a= [HW,ALSA] | 1581 | snd-ad1816a= [HW,ALSA] |
1566 | 1582 | ||
1567 | snd-ad1848= [HW,ALSA] | 1583 | snd-ad1848= [HW,ALSA] |
@@ -1820,6 +1836,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1820 | [USBHID] The interval which mice are to be polled at. | 1836 | [USBHID] The interval which mice are to be polled at. |
1821 | 1837 | ||
1822 | vdso= [IA-32,SH] | 1838 | vdso= [IA-32,SH] |
1839 | vdso=2: enable compat VDSO (default with COMPAT_VDSO) | ||
1823 | vdso=1: enable VDSO (default) | 1840 | vdso=1: enable VDSO (default) |
1824 | vdso=0: disable VDSO mapping | 1841 | vdso=0: disable VDSO mapping |
1825 | 1842 | ||
diff --git a/Documentation/x86_64/boot-options.txt b/Documentation/x86_64/boot-options.txt index 85f51e5a749f..6177d881983f 100644 --- a/Documentation/x86_64/boot-options.txt +++ b/Documentation/x86_64/boot-options.txt | |||
@@ -149,7 +149,19 @@ NUMA | |||
149 | 149 | ||
150 | numa=noacpi Don't parse the SRAT table for NUMA setup | 150 | numa=noacpi Don't parse the SRAT table for NUMA setup |
151 | 151 | ||
152 | numa=fake=X Fake X nodes and ignore NUMA setup of the actual machine. | 152 | numa=fake=CMDLINE |
153 | If a number, fakes CMDLINE nodes and ignores NUMA setup of the | ||
154 | actual machine. Otherwise, system memory is configured | ||
155 | depending on the sizes and coefficients listed. For example: | ||
156 | numa=fake=2*512,1024,4*256,*128 | ||
157 | gives two 512M nodes, a 1024M node, four 256M nodes, and the | ||
158 | rest split into 128M chunks. If the last character of CMDLINE | ||
159 | is a *, the remaining memory is divided up equally among its | ||
160 | coefficient: | ||
161 | numa=fake=2*512,2* | ||
162 | gives two 512M nodes and the rest split into two nodes. | ||
163 | Otherwise, the remaining system RAM is allocated to an | ||
164 | additional node. | ||
153 | 165 | ||
154 | numa=hotadd=percent | 166 | numa=hotadd=percent |
155 | Only allow hotadd memory to preallocate page structures upto | 167 | Only allow hotadd memory to preallocate page structures upto |
diff --git a/Documentation/x86_64/fake-numa-for-cpusets b/Documentation/x86_64/fake-numa-for-cpusets new file mode 100644 index 000000000000..d1a985c5b00a --- /dev/null +++ b/Documentation/x86_64/fake-numa-for-cpusets | |||
@@ -0,0 +1,66 @@ | |||
1 | Using numa=fake and CPUSets for Resource Management | ||
2 | Written by David Rientjes <rientjes@cs.washington.edu> | ||
3 | |||
4 | This document describes how the numa=fake x86_64 command-line option can be used | ||
5 | in conjunction with cpusets for coarse memory management. Using this feature, | ||
6 | you can create fake NUMA nodes that represent contiguous chunks of memory and | ||
7 | assign them to cpusets and their attached tasks. This is a way of limiting the | ||
8 | amount of system memory that are available to a certain class of tasks. | ||
9 | |||
10 | For more information on the features of cpusets, see Documentation/cpusets.txt. | ||
11 | There are a number of different configurations you can use for your needs. For | ||
12 | more information on the numa=fake command line option and its various ways of | ||
13 | configuring fake nodes, see Documentation/x86_64/boot-options.txt. | ||
14 | |||
15 | For the purposes of this introduction, we'll assume a very primitive NUMA | ||
16 | emulation setup of "numa=fake=4*512,". This will split our system memory into | ||
17 | four equal chunks of 512M each that we can now use to assign to cpusets. As | ||
18 | you become more familiar with using this combination for resource control, | ||
19 | you'll determine a better setup to minimize the number of nodes you have to deal | ||
20 | with. | ||
21 | |||
22 | A machine may be split as follows with "numa=fake=4*512," as reported by dmesg: | ||
23 | |||
24 | Faking node 0 at 0000000000000000-0000000020000000 (512MB) | ||
25 | Faking node 1 at 0000000020000000-0000000040000000 (512MB) | ||
26 | Faking node 2 at 0000000040000000-0000000060000000 (512MB) | ||
27 | Faking node 3 at 0000000060000000-0000000080000000 (512MB) | ||
28 | ... | ||
29 | On node 0 totalpages: 130975 | ||
30 | On node 1 totalpages: 131072 | ||
31 | On node 2 totalpages: 131072 | ||
32 | On node 3 totalpages: 131072 | ||
33 | |||
34 | Now following the instructions for mounting the cpusets filesystem from | ||
35 | Documentation/cpusets.txt, you can assign fake nodes (i.e. contiguous memory | ||
36 | address spaces) to individual cpusets: | ||
37 | |||
38 | [root@xroads /]# mkdir exampleset | ||
39 | [root@xroads /]# mount -t cpuset none exampleset | ||
40 | [root@xroads /]# mkdir exampleset/ddset | ||
41 | [root@xroads /]# cd exampleset/ddset | ||
42 | [root@xroads /exampleset/ddset]# echo 0-1 > cpus | ||
43 | [root@xroads /exampleset/ddset]# echo 0-1 > mems | ||
44 | |||
45 | Now this cpuset, 'ddset', will only allowed access to fake nodes 0 and 1 for | ||
46 | memory allocations (1G). | ||
47 | |||
48 | You can now assign tasks to these cpusets to limit the memory resources | ||
49 | available to them according to the fake nodes assigned as mems: | ||
50 | |||
51 | [root@xroads /exampleset/ddset]# echo $$ > tasks | ||
52 | [root@xroads /exampleset/ddset]# dd if=/dev/zero of=tmp bs=1024 count=1G | ||
53 | [1] 13425 | ||
54 | |||
55 | Notice the difference between the system memory usage as reported by | ||
56 | /proc/meminfo between the restricted cpuset case above and the unrestricted | ||
57 | case (i.e. running the same 'dd' command without assigning it to a fake NUMA | ||
58 | cpuset): | ||
59 | Unrestricted Restricted | ||
60 | MemTotal: 3091900 kB 3091900 kB | ||
61 | MemFree: 42113 kB 1513236 kB | ||
62 | |||
63 | This allows for coarse memory management for the tasks you assign to particular | ||
64 | cpusets. Since cpusets can form a hierarchy, you can create some pretty | ||
65 | interesting combinations of use-cases for various classes of tasks for your | ||
66 | memory management needs. | ||
diff --git a/Documentation/x86_64/machinecheck b/Documentation/x86_64/machinecheck index 068a6d9904b9..feaeaf6f6e4d 100644 --- a/Documentation/x86_64/machinecheck +++ b/Documentation/x86_64/machinecheck | |||
@@ -36,7 +36,12 @@ between all CPUs. | |||
36 | 36 | ||
37 | check_interval | 37 | check_interval |
38 | How often to poll for corrected machine check errors, in seconds | 38 | How often to poll for corrected machine check errors, in seconds |
39 | (Note output is hexademical). Default 5 minutes. | 39 | (Note output is hexademical). Default 5 minutes. When the poller |
40 | finds MCEs it triggers an exponential speedup (poll more often) on | ||
41 | the polling interval. When the poller stops finding MCEs, it | ||
42 | triggers an exponential backoff (poll less often) on the polling | ||
43 | interval. The check_interval variable is both the initial and | ||
44 | maximum polling interval. | ||
40 | 45 | ||
41 | tolerant | 46 | tolerant |
42 | Tolerance level. When a machine check exception occurs for a non | 47 | Tolerance level. When a machine check exception occurs for a non |